diff --git a/acf.php b/acf.php index 3356241..22d5533 100644 --- a/acf.php +++ b/acf.php @@ -1,657 +1,775 @@ define( 'ACF', true ); - $this->define( 'ACF_PATH', plugin_dir_path( __FILE__ ) ); - $this->define( 'ACF_BASENAME', plugin_basename( __FILE__ ) ); - $this->define( 'ACF_VERSION', $this->version ); - $this->define( 'ACF_MAJOR_VERSION', 5 ); - - // Define settings. - $this->settings = array( - 'name' => __('Advanced Custom Fields', 'acf'), - 'slug' => dirname( ACF_BASENAME ), - 'version' => ACF_VERSION, - 'basename' => ACF_BASENAME, - 'path' => ACF_PATH, - 'file' => __FILE__, - 'url' => plugin_dir_url( __FILE__ ), - 'show_admin' => true, - 'show_updates' => true, - 'stripslashes' => false, - 'local' => true, - 'json' => true, - 'save_json' => '', - 'load_json' => array(), - 'default_language' => '', - 'current_language' => '', - 'capability' => 'manage_options', - 'uploader' => 'wp', - 'autoload' => false, - 'l10n' => true, - 'l10n_textdomain' => '', - 'google_api_key' => '', - 'google_api_client' => '', - 'enqueue_google_maps' => true, - 'enqueue_select2' => true, - 'enqueue_datepicker' => true, - 'enqueue_datetimepicker' => true, - 'select2_version' => 4, - 'row_index_offset' => 1, - 'remove_wp_meta_box' => true - ); - - // Include utility functions. - include_once( ACF_PATH . 'includes/acf-utility-functions.php'); - - // Include previous API functions. - acf_include('includes/api/api-helpers.php'); - acf_include('includes/api/api-template.php'); - acf_include('includes/api/api-term.php'); - - // Include classes. - acf_include('includes/class-acf-data.php'); - acf_include('includes/fields/class-acf-field.php'); - acf_include('includes/locations/abstract-acf-legacy-location.php'); - acf_include('includes/locations/abstract-acf-location.php'); - - // Include functions. - acf_include('includes/acf-helper-functions.php'); - acf_include('includes/acf-hook-functions.php'); - acf_include('includes/acf-field-functions.php'); - acf_include('includes/acf-field-group-functions.php'); - acf_include('includes/acf-form-functions.php'); - acf_include('includes/acf-meta-functions.php'); - acf_include('includes/acf-post-functions.php'); - acf_include('includes/acf-user-functions.php'); - acf_include('includes/acf-value-functions.php'); - acf_include('includes/acf-input-functions.php'); - acf_include('includes/acf-wp-functions.php'); - - // Include core. - acf_include('includes/fields.php'); - acf_include('includes/locations.php'); - acf_include('includes/assets.php'); - acf_include('includes/compatibility.php'); - acf_include('includes/deprecated.php'); - acf_include('includes/l10n.php'); - acf_include('includes/local-fields.php'); - acf_include('includes/local-meta.php'); - acf_include('includes/local-json.php'); - acf_include('includes/loop.php'); - acf_include('includes/media.php'); - acf_include('includes/revisions.php'); - acf_include('includes/updates.php'); - acf_include('includes/upgrades.php'); - acf_include('includes/validation.php'); - - // Include ajax. - acf_include('includes/ajax/class-acf-ajax.php'); - acf_include('includes/ajax/class-acf-ajax-check-screen.php'); - acf_include('includes/ajax/class-acf-ajax-user-setting.php'); - acf_include('includes/ajax/class-acf-ajax-upgrade.php'); - acf_include('includes/ajax/class-acf-ajax-query.php'); - acf_include('includes/ajax/class-acf-ajax-query-users.php'); - acf_include('includes/ajax/class-acf-ajax-local-json-diff.php'); - - // Include forms. - acf_include('includes/forms/form-attachment.php'); - acf_include('includes/forms/form-comment.php'); - acf_include('includes/forms/form-customizer.php'); - acf_include('includes/forms/form-front.php'); - acf_include('includes/forms/form-nav-menu.php'); - acf_include('includes/forms/form-post.php'); - acf_include('includes/forms/form-gutenberg.php'); - acf_include('includes/forms/form-taxonomy.php'); - acf_include('includes/forms/form-user.php'); - acf_include('includes/forms/form-widget.php'); - - // Include admin. - if( is_admin() ) { - acf_include('includes/admin/admin.php'); - acf_include('includes/admin/admin-field-group.php'); - acf_include('includes/admin/admin-field-groups.php'); - acf_include('includes/admin/admin-notices.php'); - acf_include('includes/admin/admin-tools.php'); - acf_include('includes/admin/admin-upgrade.php'); - } - - // Include legacy. - acf_include('includes/legacy/legacy-locations.php'); - - // Include PRO. - acf_include('pro/acf-pro.php'); - - // Include tests. - if( defined('ACF_DEV') && ACF_DEV ) { - acf_include('tests/tests.php'); - } - - // Add actions. - add_action( 'init', array($this, 'init'), 5 ); - add_action( 'init', array($this, 'register_post_types'), 5 ); - add_action( 'init', array($this, 'register_post_status'), 5 ); - - // Add filters. - add_filter( 'posts_where', array($this, 'posts_where'), 10, 2 ); - } - - /** - * init - * - * Completes the setup process on "init" of earlier. - * - * @date 28/09/13 - * @since 5.0.0 - * - * @param void - * @return void - */ - function init() { - - // Bail early if called directly from functions.php or plugin file. - if( !did_action('plugins_loaded') ) { - return; - } - - // This function may be called directly from template functions. Bail early if already did this. - if( acf_did('init') ) { - return; - } - - // Update url setting. Allows other plugins to modify the URL (force SSL). - acf_update_setting( 'url', plugin_dir_url( __FILE__ ) ); - - // Load textdomain file. - acf_load_textdomain(); - - // Include 3rd party compatiblity. - acf_include('includes/third-party.php'); - - // Include wpml support. - if( defined('ICL_SITEPRESS_VERSION') ) { - acf_include('includes/wpml.php'); - } - - // Include fields. - acf_include('includes/fields/class-acf-field-text.php'); - acf_include('includes/fields/class-acf-field-textarea.php'); - acf_include('includes/fields/class-acf-field-number.php'); - acf_include('includes/fields/class-acf-field-range.php'); - acf_include('includes/fields/class-acf-field-email.php'); - acf_include('includes/fields/class-acf-field-url.php'); - acf_include('includes/fields/class-acf-field-password.php'); - acf_include('includes/fields/class-acf-field-image.php'); - acf_include('includes/fields/class-acf-field-file.php'); - acf_include('includes/fields/class-acf-field-wysiwyg.php'); - acf_include('includes/fields/class-acf-field-oembed.php'); - acf_include('includes/fields/class-acf-field-select.php'); - acf_include('includes/fields/class-acf-field-checkbox.php'); - acf_include('includes/fields/class-acf-field-radio.php'); - acf_include('includes/fields/class-acf-field-button-group.php'); - acf_include('includes/fields/class-acf-field-true_false.php'); - acf_include('includes/fields/class-acf-field-link.php'); - acf_include('includes/fields/class-acf-field-post_object.php'); - acf_include('includes/fields/class-acf-field-page_link.php'); - acf_include('includes/fields/class-acf-field-relationship.php'); - acf_include('includes/fields/class-acf-field-taxonomy.php'); - acf_include('includes/fields/class-acf-field-user.php'); - acf_include('includes/fields/class-acf-field-google-map.php'); - acf_include('includes/fields/class-acf-field-date_picker.php'); - acf_include('includes/fields/class-acf-field-date_time_picker.php'); - acf_include('includes/fields/class-acf-field-time_picker.php'); - acf_include('includes/fields/class-acf-field-color_picker.php'); - acf_include('includes/fields/class-acf-field-message.php'); - acf_include('includes/fields/class-acf-field-accordion.php'); - acf_include('includes/fields/class-acf-field-tab.php'); - acf_include('includes/fields/class-acf-field-group.php'); - - /** - * Fires after field types have been included. - * - * @date 28/09/13 - * @since 5.0.0 - * - * @param int $major_version The major version of ACF. - */ - do_action( 'acf/include_field_types', ACF_MAJOR_VERSION ); - - // Include locations. - acf_include('includes/locations/class-acf-location-post-type.php'); - acf_include('includes/locations/class-acf-location-post-template.php'); - acf_include('includes/locations/class-acf-location-post-status.php'); - acf_include('includes/locations/class-acf-location-post-format.php'); - acf_include('includes/locations/class-acf-location-post-category.php'); - acf_include('includes/locations/class-acf-location-post-taxonomy.php'); - acf_include('includes/locations/class-acf-location-post.php'); - acf_include('includes/locations/class-acf-location-page-template.php'); - acf_include('includes/locations/class-acf-location-page-type.php'); - acf_include('includes/locations/class-acf-location-page-parent.php'); - acf_include('includes/locations/class-acf-location-page.php'); - acf_include('includes/locations/class-acf-location-current-user.php'); - acf_include('includes/locations/class-acf-location-current-user-role.php'); - acf_include('includes/locations/class-acf-location-user-form.php'); - acf_include('includes/locations/class-acf-location-user-role.php'); - acf_include('includes/locations/class-acf-location-taxonomy.php'); - acf_include('includes/locations/class-acf-location-attachment.php'); - acf_include('includes/locations/class-acf-location-comment.php'); - acf_include('includes/locations/class-acf-location-widget.php'); - acf_include('includes/locations/class-acf-location-nav-menu.php'); - acf_include('includes/locations/class-acf-location-nav-menu-item.php'); - - /** - * Fires after location types have been included. - * - * @date 28/09/13 - * @since 5.0.0 - * - * @param int $major_version The major version of ACF. - */ - do_action( 'acf/include_location_rules', ACF_MAJOR_VERSION ); - - /** - * Fires during initialization. Used to add local fields. - * - * @date 28/09/13 - * @since 5.0.0 - * - * @param int $major_version The major version of ACF. - */ - do_action( 'acf/include_fields', ACF_MAJOR_VERSION ); - - /** - * Fires after ACF is completely "initialized". - * - * @date 28/09/13 - * @since 5.0.0 - * - * @param int $major_version The major version of ACF. - */ - do_action( 'acf/init', ACF_MAJOR_VERSION ); - } - - /** - * register_post_types - * - * Registers the ACF post types. - * - * @date 22/10/2015 - * @since 5.3.2 - * - * @param void - * @return void - */ - function register_post_types() { - - // Vars. - $cap = acf_get_setting('capability'); - - // Register the Field Group post type. - register_post_type('acf-field-group', array( - 'labels' => array( - 'name' => __( 'Field Groups', 'acf' ), - 'singular_name' => __( 'Field Group', 'acf' ), - 'add_new' => __( 'Add New' , 'acf' ), - 'add_new_item' => __( 'Add New Field Group' , 'acf' ), - 'edit_item' => __( 'Edit Field Group' , 'acf' ), - 'new_item' => __( 'New Field Group' , 'acf' ), - 'view_item' => __( 'View Field Group', 'acf' ), - 'search_items' => __( 'Search Field Groups', 'acf' ), - 'not_found' => __( 'No Field Groups found', 'acf' ), - 'not_found_in_trash' => __( 'No Field Groups found in Trash', 'acf' ), - ), - 'public' => false, - 'hierarchical' => true, - 'show_ui' => true, - 'show_in_menu' => false, - '_builtin' => false, - 'capability_type' => 'post', - 'capabilities' => array( - 'edit_post' => $cap, - 'delete_post' => $cap, - 'edit_posts' => $cap, - 'delete_posts' => $cap, - ), - 'supports' => array('title'), - 'rewrite' => false, - 'query_var' => false, - )); - - - // Register the Field post type. - register_post_type('acf-field', array( - 'labels' => array( - 'name' => __( 'Fields', 'acf' ), - 'singular_name' => __( 'Field', 'acf' ), - 'add_new' => __( 'Add New' , 'acf' ), - 'add_new_item' => __( 'Add New Field' , 'acf' ), - 'edit_item' => __( 'Edit Field' , 'acf' ), - 'new_item' => __( 'New Field' , 'acf' ), - 'view_item' => __( 'View Field', 'acf' ), - 'search_items' => __( 'Search Fields', 'acf' ), - 'not_found' => __( 'No Fields found', 'acf' ), - 'not_found_in_trash' => __( 'No Fields found in Trash', 'acf' ), - ), - 'public' => false, - 'hierarchical' => true, - 'show_ui' => false, - 'show_in_menu' => false, - '_builtin' => false, - 'capability_type' => 'post', - 'capabilities' => array( - 'edit_post' => $cap, - 'delete_post' => $cap, - 'edit_posts' => $cap, - 'delete_posts' => $cap, - ), - 'supports' => array('title'), - 'rewrite' => false, - 'query_var' => false, - )); - } - - /** - * register_post_status - * - * Registers the ACF post statuses. - * - * @date 22/10/2015 - * @since 5.3.2 - * - * @param void - * @return void - */ - function register_post_status() { - - // Register the Disabled post status. - register_post_status('acf-disabled', array( - 'label' => _x( 'Disabled', 'post status', 'acf' ), - 'public' => true, - 'exclude_from_search' => false, - 'show_in_admin_all_list' => true, - 'show_in_admin_status_list' => true, - 'label_count' => _n_noop( 'Disabled (%s)', 'Disabled (%s)', 'acf' ), - )); - } - - /** - * posts_where - * - * Filters the $where clause allowing for custom WP_Query args. - * - * @date 31/8/19 - * @since 5.8.1 - * - * @param string $where The WHERE clause. - * @return WP_Query $wp_query The query object. - */ - function posts_where( $where, $wp_query ) { - global $wpdb; - - // Add custom "acf_field_key" arg. - if( $field_key = $wp_query->get('acf_field_key') ) { - $where .= $wpdb->prepare(" AND {$wpdb->posts}.post_name = %s", $field_key ); - } - - // Add custom "acf_field_name" arg. - if( $field_name = $wp_query->get('acf_field_name') ) { - $where .= $wpdb->prepare(" AND {$wpdb->posts}.post_excerpt = %s", $field_name ); - } - - // Add custom "acf_group_key" arg. - if( $group_key = $wp_query->get('acf_group_key') ) { - $where .= $wpdb->prepare(" AND {$wpdb->posts}.post_name = %s", $group_key ); - } - - // Return. - return $where; - } - - /** - * define - * - * Defines a constant if doesnt already exist. - * - * @date 3/5/17 - * @since 5.5.13 - * - * @param string $name The constant name. - * @param mixed $value The constant value. - * @return void - */ - function define( $name, $value = true ) { - if( !defined($name) ) { - define( $name, $value ); - } - } - - /** - * has_setting - * - * Returns true if a setting exists for this name. - * - * @date 2/2/18 - * @since 5.6.5 - * - * @param string $name The setting name. - * @return boolean - */ - function has_setting( $name ) { - return isset($this->settings[ $name ]); - } - - /** - * get_setting - * - * Returns a setting or null if doesn't exist. - * - * @date 28/09/13 - * @since 5.0.0 - * - * @param string $name The setting name. - * @return mixed - */ - function get_setting( $name ) { - return isset($this->settings[ $name ]) ? $this->settings[ $name ] : null; - } - - /** - * update_setting - * - * Updates a setting for the given name and value. - * - * @date 28/09/13 - * @since 5.0.0 - * - * @param string $name The setting name. - * @param mixed $value The setting value. - * @return true - */ - function update_setting( $name, $value ) { - $this->settings[ $name ] = $value; - return true; - } - - /** - * get_data - * - * Returns data or null if doesn't exist. - * - * @date 28/09/13 - * @since 5.0.0 - * - * @param string $name The data name. - * @return mixed - */ - function get_data( $name ) { - return isset($this->data[ $name ]) ? $this->data[ $name ] : null; - } - - /** - * set_data - * - * Sets data for the given name and value. - * - * @date 28/09/13 - * @since 5.0.0 - * - * @param string $name The data name. - * @param mixed $value The data value. - * @return void - */ - function set_data( $name, $value ) { - $this->data[ $name ] = $value; - } - - /** - * get_instance - * - * Returns an instance or null if doesn't exist. - * - * @date 13/2/18 - * @since 5.6.9 - * - * @param string $class The instance class name. - * @return object - */ - function get_instance( $class ) { - $name = strtolower($class); - return isset($this->instances[ $name ]) ? $this->instances[ $name ] : null; - } - - /** - * new_instance - * - * Creates and stores an instance of the given class. - * - * @date 13/2/18 - * @since 5.6.9 - * - * @param string $class The instance class name. - * @return object - */ - function new_instance( $class ) { - $instance = new $class(); - $name = strtolower($class); - $this->instances[ $name ] = $instance; - return $instance; - } - - /** - * Magic __isset method for backwards compatibility. - * - * @date 24/4/20 - * @since 5.9.0 - * - * @param string $key Key name. - * @return bool - */ - public function __isset( $key ) { - return in_array( $key, array( 'locations', 'json' ) ); - } - - /** - * Magic __get method for backwards compatibility. - * - * @date 24/4/20 - * @since 5.9.0 - * - * @param string $key Key name. - * @return mixed - */ - public function __get( $key ) { - switch ( $key ) { - case 'locations': - return acf_get_instance( 'ACF_Legacy_Locations' ); - case 'json': - return acf_get_instance( 'ACF_Local_JSON' ); - } - return null; - } -} - -/* - * acf +/** + * Advanced Custom Fields PRO * - * The main function responsible for returning the one true acf Instance to functions everywhere. - * Use this function like you would a global variable, except without needing to declare the global. + * @package ACF + * @author WP Engine * - * Example: - * - * @date 4/09/13 - * @since 4.3.0 - * - * @param void - * @return ACF + * @wordpress-plugin + * Plugin Name: Advanced Custom Fields PRO + * Plugin URI: https://www.advancedcustomfields.com + * Description: Customize WordPress with powerful, professional and intuitive fields. + * Version: 6.1.7 + * Author: WP Engine + * Author URI: https://wpengine.com/?utm_source=wordpress.org&utm_medium=referral&utm_campaign=plugin_directory&utm_content=advanced_custom_fields + * Update URI: https://www.advancedcustomfields.com/pro + * Text Domain: acf + * Domain Path: /lang */ -function acf() { - global $acf; - - // Instantiate only once. - if( !isset($acf) ) { - $acf = new ACF(); - $acf->initialize(); - } - return $acf; + +if ( ! defined( 'ABSPATH' ) ) { + exit; // Exit if accessed directly. } -// Instantiate. -acf(); +if ( ! class_exists( 'ACF' ) ) { -endif; // class_exists check + /** + * The main ACF class + */ + #[AllowDynamicProperties] + class ACF { + + /** + * The plugin version number. + * + * @var string + */ + public $version = '6.1.7'; + + /** + * The plugin settings array. + * + * @var array + */ + public $settings = array(); + + /** + * The plugin data array. + * + * @var array + */ + public $data = array(); + + /** + * Storage for class instances. + * + * @var array + */ + public $instances = array(); + + /** + * A dummy constructor to ensure ACF is only setup once. + * + * @date 23/06/12 + * @since 5.0.0 + * + * @return void + */ + public function __construct() { + // Do nothing. + } + + /** + * Sets up the ACF plugin. + * + * @date 28/09/13 + * @since 5.0.0 + * + * @return void + */ + public function initialize() { + + // Define constants. + $this->define( 'ACF', true ); + $this->define( 'ACF_PATH', plugin_dir_path( __FILE__ ) ); + $this->define( 'ACF_BASENAME', plugin_basename( __FILE__ ) ); + $this->define( 'ACF_VERSION', $this->version ); + $this->define( 'ACF_MAJOR_VERSION', 6 ); + $this->define( 'ACF_FIELD_API_VERSION', 5 ); + $this->define( 'ACF_UPGRADE_VERSION', '5.5.0' ); // Highest version with an upgrade routine. See upgrades.php. + + // Define settings. + $this->settings = array( + 'name' => __( 'Advanced Custom Fields', 'acf' ), + 'slug' => dirname( ACF_BASENAME ), + 'version' => ACF_VERSION, + 'basename' => ACF_BASENAME, + 'path' => ACF_PATH, + 'file' => __FILE__, + 'url' => plugin_dir_url( __FILE__ ), + 'show_admin' => true, + 'show_updates' => true, + 'enable_post_types' => true, + 'stripslashes' => false, + 'local' => true, + 'json' => true, + 'save_json' => '', + 'load_json' => array(), + 'default_language' => '', + 'current_language' => '', + 'capability' => 'manage_options', + 'uploader' => 'wp', + 'autoload' => false, + 'l10n' => true, + 'l10n_textdomain' => '', + 'google_api_key' => '', + 'google_api_client' => '', + 'enqueue_google_maps' => true, + 'enqueue_select2' => true, + 'enqueue_datepicker' => true, + 'enqueue_datetimepicker' => true, + 'select2_version' => 4, + 'row_index_offset' => 1, + 'remove_wp_meta_box' => true, + 'rest_api_enabled' => true, + 'rest_api_format' => 'light', + 'rest_api_embed_links' => true, + 'preload_blocks' => true, + 'enable_shortcode' => true, + ); + + // Include utility functions. + include_once ACF_PATH . 'includes/acf-utility-functions.php'; + + // Include previous API functions. + acf_include( 'includes/api/api-helpers.php' ); + acf_include( 'includes/api/api-template.php' ); + acf_include( 'includes/api/api-term.php' ); + + // Include classes. + acf_include( 'includes/class-acf-data.php' ); + acf_include( 'includes/class-acf-internal-post-type.php' ); + acf_include( 'includes/fields/class-acf-field.php' ); + acf_include( 'includes/locations/abstract-acf-legacy-location.php' ); + acf_include( 'includes/locations/abstract-acf-location.php' ); + + // Include functions. + acf_include( 'includes/acf-helper-functions.php' ); + acf_include( 'includes/acf-hook-functions.php' ); + acf_include( 'includes/acf-field-functions.php' ); + acf_include( 'includes/acf-internal-post-type-functions.php' ); + acf_include( 'includes/acf-post-type-functions.php' ); + acf_include( 'includes/acf-taxonomy-functions.php' ); + acf_include( 'includes/acf-field-group-functions.php' ); + acf_include( 'includes/acf-form-functions.php' ); + acf_include( 'includes/acf-meta-functions.php' ); + acf_include( 'includes/acf-post-functions.php' ); + acf_include( 'includes/acf-user-functions.php' ); + acf_include( 'includes/acf-value-functions.php' ); + acf_include( 'includes/acf-input-functions.php' ); + acf_include( 'includes/acf-wp-functions.php' ); + + // Include core. + acf_include( 'includes/fields.php' ); + acf_include( 'includes/locations.php' ); + acf_include( 'includes/assets.php' ); + acf_include( 'includes/compatibility.php' ); + acf_include( 'includes/deprecated.php' ); + acf_include( 'includes/l10n.php' ); + acf_include( 'includes/local-fields.php' ); + acf_include( 'includes/local-meta.php' ); + acf_include( 'includes/local-json.php' ); + acf_include( 'includes/loop.php' ); + acf_include( 'includes/media.php' ); + acf_include( 'includes/revisions.php' ); + acf_include( 'includes/updates.php' ); + acf_include( 'includes/upgrades.php' ); + acf_include( 'includes/validation.php' ); + acf_include( 'includes/rest-api.php' ); + + // Include field group class. + acf_include( 'includes/post-types/class-acf-field-group.php' ); + + // Include ajax. + acf_include( 'includes/ajax/class-acf-ajax.php' ); + acf_include( 'includes/ajax/class-acf-ajax-check-screen.php' ); + acf_include( 'includes/ajax/class-acf-ajax-user-setting.php' ); + acf_include( 'includes/ajax/class-acf-ajax-upgrade.php' ); + acf_include( 'includes/ajax/class-acf-ajax-query.php' ); + acf_include( 'includes/ajax/class-acf-ajax-query-users.php' ); + acf_include( 'includes/ajax/class-acf-ajax-local-json-diff.php' ); + + // Include forms. + acf_include( 'includes/forms/form-attachment.php' ); + acf_include( 'includes/forms/form-comment.php' ); + acf_include( 'includes/forms/form-customizer.php' ); + acf_include( 'includes/forms/form-front.php' ); + acf_include( 'includes/forms/form-nav-menu.php' ); + acf_include( 'includes/forms/form-post.php' ); + acf_include( 'includes/forms/form-gutenberg.php' ); + acf_include( 'includes/forms/form-taxonomy.php' ); + acf_include( 'includes/forms/form-user.php' ); + acf_include( 'includes/forms/form-widget.php' ); + + // Include admin. + if ( is_admin() ) { + acf_include( 'includes/admin/admin.php' ); + acf_include( 'includes/admin/admin-internal-post-type-list.php' ); + acf_include( 'includes/admin/admin-internal-post-type.php' ); + acf_include( 'includes/admin/admin-notices.php' ); + acf_include( 'includes/admin/admin-tools.php' ); + acf_include( 'includes/admin/admin-upgrade.php' ); + } + + // Include polyfill for < PHP7 unserialize. + if ( PHP_VERSION_ID < 70000 ) { + acf_include( 'vendor/polyfill-unserialize/src/Unserialize.php' ); + acf_include( 'vendor/polyfill-unserialize/src/DisallowedClassesSubstitutor.php' ); + } + + // Include legacy. + acf_include( 'includes/legacy/legacy-locations.php' ); + + // Include PRO. + acf_include( 'pro/acf-pro.php' ); + + // Add actions. + add_action( 'init', array( $this, 'register_post_status' ), 4 ); + add_action( 'init', array( $this, 'init' ), 5 ); + add_action( 'init', array( $this, 'register_post_types' ), 5 ); + add_action( 'activated_plugin', array( $this, 'deactivate_other_instances' ) ); + add_action( 'pre_current_active_plugins', array( $this, 'plugin_deactivated_notice' ) ); + + // Add filters. + add_filter( 'posts_where', array( $this, 'posts_where' ), 10, 2 ); + } + + /** + * Completes the setup process on "init" of earlier. + * + * @date 28/09/13 + * @since 5.0.0 + * + * @return void + */ + public function init() { + + // Bail early if called directly from functions.php or plugin file. + if ( ! did_action( 'plugins_loaded' ) ) { + return; + } + + // This function may be called directly from template functions. Bail early if already did this. + if ( acf_did( 'init' ) ) { + return; + } + + // Update url setting. Allows other plugins to modify the URL (force SSL). + acf_update_setting( 'url', plugin_dir_url( __FILE__ ) ); + + // Load textdomain file. + acf_load_textdomain(); + + // Include 3rd party compatiblity. + acf_include( 'includes/third-party.php' ); + + // Include wpml support. + if ( defined( 'ICL_SITEPRESS_VERSION' ) ) { + acf_include( 'includes/wpml.php' ); + } + + // Add post types and taxonomies. + if ( acf_get_setting( 'enable_post_types' ) ) { + acf_include( 'includes/post-types/class-acf-taxonomy.php' ); + acf_include( 'includes/post-types/class-acf-post-type.php' ); + } + + // Include fields. + acf_include( 'includes/fields/class-acf-field-text.php' ); + acf_include( 'includes/fields/class-acf-field-textarea.php' ); + acf_include( 'includes/fields/class-acf-field-number.php' ); + acf_include( 'includes/fields/class-acf-field-range.php' ); + acf_include( 'includes/fields/class-acf-field-email.php' ); + acf_include( 'includes/fields/class-acf-field-url.php' ); + acf_include( 'includes/fields/class-acf-field-password.php' ); + acf_include( 'includes/fields/class-acf-field-image.php' ); + acf_include( 'includes/fields/class-acf-field-file.php' ); + acf_include( 'includes/fields/class-acf-field-wysiwyg.php' ); + acf_include( 'includes/fields/class-acf-field-oembed.php' ); + acf_include( 'includes/fields/class-acf-field-select.php' ); + acf_include( 'includes/fields/class-acf-field-checkbox.php' ); + acf_include( 'includes/fields/class-acf-field-radio.php' ); + acf_include( 'includes/fields/class-acf-field-button-group.php' ); + acf_include( 'includes/fields/class-acf-field-true_false.php' ); + acf_include( 'includes/fields/class-acf-field-link.php' ); + acf_include( 'includes/fields/class-acf-field-post_object.php' ); + acf_include( 'includes/fields/class-acf-field-page_link.php' ); + acf_include( 'includes/fields/class-acf-field-relationship.php' ); + acf_include( 'includes/fields/class-acf-field-taxonomy.php' ); + acf_include( 'includes/fields/class-acf-field-user.php' ); + acf_include( 'includes/fields/class-acf-field-google-map.php' ); + acf_include( 'includes/fields/class-acf-field-date_picker.php' ); + acf_include( 'includes/fields/class-acf-field-date_time_picker.php' ); + acf_include( 'includes/fields/class-acf-field-time_picker.php' ); + acf_include( 'includes/fields/class-acf-field-color_picker.php' ); + acf_include( 'includes/fields/class-acf-field-message.php' ); + acf_include( 'includes/fields/class-acf-field-accordion.php' ); + acf_include( 'includes/fields/class-acf-field-tab.php' ); + acf_include( 'includes/fields/class-acf-field-group.php' ); + + /** + * Fires after field types have been included. + * + * @date 28/09/13 + * @since 5.0.0 + * + * @param int ACF_FIELD_API_VERSION The field API version. + */ + do_action( 'acf/include_field_types', ACF_FIELD_API_VERSION ); + + // Include locations. + acf_include( 'includes/locations/class-acf-location-post-type.php' ); + acf_include( 'includes/locations/class-acf-location-post-template.php' ); + acf_include( 'includes/locations/class-acf-location-post-status.php' ); + acf_include( 'includes/locations/class-acf-location-post-format.php' ); + acf_include( 'includes/locations/class-acf-location-post-category.php' ); + acf_include( 'includes/locations/class-acf-location-post-taxonomy.php' ); + acf_include( 'includes/locations/class-acf-location-post.php' ); + acf_include( 'includes/locations/class-acf-location-page-template.php' ); + acf_include( 'includes/locations/class-acf-location-page-type.php' ); + acf_include( 'includes/locations/class-acf-location-page-parent.php' ); + acf_include( 'includes/locations/class-acf-location-page.php' ); + acf_include( 'includes/locations/class-acf-location-current-user.php' ); + acf_include( 'includes/locations/class-acf-location-current-user-role.php' ); + acf_include( 'includes/locations/class-acf-location-user-form.php' ); + acf_include( 'includes/locations/class-acf-location-user-role.php' ); + acf_include( 'includes/locations/class-acf-location-taxonomy.php' ); + acf_include( 'includes/locations/class-acf-location-attachment.php' ); + acf_include( 'includes/locations/class-acf-location-comment.php' ); + acf_include( 'includes/locations/class-acf-location-widget.php' ); + acf_include( 'includes/locations/class-acf-location-nav-menu.php' ); + acf_include( 'includes/locations/class-acf-location-nav-menu-item.php' ); + + /** + * Fires after location types have been included. + * + * @date 28/09/13 + * @since 5.0.0 + * + * @param int ACF_FIELD_API_VERSION The field API version. + */ + do_action( 'acf/include_location_rules', ACF_FIELD_API_VERSION ); + + /** + * Fires during initialization. Used to add local fields. + * + * @date 28/09/13 + * @since 5.0.0 + * + * @param int ACF_FIELD_API_VERSION The field API version. + */ + do_action( 'acf/include_fields', ACF_FIELD_API_VERSION ); + + /** + * Fires during initialization. Used to add local post types. + * + * @since 6.1 + * + * @param int ACF_MAJOR_VERSION The major version of ACF. + */ + do_action( 'acf/include_post_types', ACF_MAJOR_VERSION ); + + /** + * Fires during initialization. Used to add local taxonomies. + * + * @since 6.1 + * + * @param int ACF_MAJOR_VERSION The major version of ACF. + */ + do_action( 'acf/include_taxonomies', ACF_MAJOR_VERSION ); + + /** + * Fires after ACF is completely "initialized". + * + * @date 28/09/13 + * @since 5.0.0 + * + * @param int ACF_MAJOR_VERSION The major version of ACF. + */ + do_action( 'acf/init', ACF_MAJOR_VERSION ); + } + + /** + * Registers the ACF post types. + * + * @date 22/10/2015 + * @since 5.3.2 + * + * @return void + */ + public function register_post_types() { + $cap = acf_get_setting( 'capability' ); + + // Register the Field Group post type. + register_post_type( + 'acf-field-group', + array( + 'labels' => array( + 'name' => __( 'Field Groups', 'acf' ), + 'singular_name' => __( 'Field Group', 'acf' ), + 'add_new' => __( 'Add New', 'acf' ), + 'add_new_item' => __( 'Add New Field Group', 'acf' ), + 'edit_item' => __( 'Edit Field Group', 'acf' ), + 'new_item' => __( 'New Field Group', 'acf' ), + 'view_item' => __( 'View Field Group', 'acf' ), + 'search_items' => __( 'Search Field Groups', 'acf' ), + 'not_found' => __( 'No Field Groups found', 'acf' ), + 'not_found_in_trash' => __( 'No Field Groups found in Trash', 'acf' ), + ), + 'public' => false, + 'hierarchical' => true, + 'show_ui' => true, + 'show_in_menu' => false, + '_builtin' => false, + 'capability_type' => 'post', + 'capabilities' => array( + 'edit_post' => $cap, + 'delete_post' => $cap, + 'edit_posts' => $cap, + 'delete_posts' => $cap, + ), + 'supports' => false, + 'rewrite' => false, + 'query_var' => false, + ) + ); + + // Register the Field post type. + register_post_type( + 'acf-field', + array( + 'labels' => array( + 'name' => __( 'Fields', 'acf' ), + 'singular_name' => __( 'Field', 'acf' ), + 'add_new' => __( 'Add New', 'acf' ), + 'add_new_item' => __( 'Add New Field', 'acf' ), + 'edit_item' => __( 'Edit Field', 'acf' ), + 'new_item' => __( 'New Field', 'acf' ), + 'view_item' => __( 'View Field', 'acf' ), + 'search_items' => __( 'Search Fields', 'acf' ), + 'not_found' => __( 'No Fields found', 'acf' ), + 'not_found_in_trash' => __( 'No Fields found in Trash', 'acf' ), + ), + 'public' => false, + 'hierarchical' => true, + 'show_ui' => false, + 'show_in_menu' => false, + '_builtin' => false, + 'capability_type' => 'post', + 'capabilities' => array( + 'edit_post' => $cap, + 'delete_post' => $cap, + 'edit_posts' => $cap, + 'delete_posts' => $cap, + ), + 'supports' => array( 'title' ), + 'rewrite' => false, + 'query_var' => false, + ) + ); + } + + /** + * Registers the ACF post statuses. + * + * @date 22/10/2015 + * @since 5.3.2 + * + * @return void + */ + public function register_post_status() { + + // Register the Inactive post status. + register_post_status( + 'acf-disabled', + array( + 'label' => _x( 'Inactive', 'post status', 'acf' ), + 'public' => true, + 'exclude_from_search' => false, + 'show_in_admin_all_list' => true, + 'show_in_admin_status_list' => true, + /* translators: counts for inactive field groups */ + 'label_count' => _n_noop( 'Inactive (%s)', 'Inactive (%s)', 'acf' ), + ) + ); + } + + /** + * Checks if another version of ACF/ACF PRO is active and deactivates it. + * Hooked on `activated_plugin` so other plugin is deactivated when current plugin is activated. + * + * @param string $plugin The plugin being activated. + */ + public function deactivate_other_instances( $plugin ) { + if ( ! in_array( $plugin, array( 'advanced-custom-fields/acf.php', 'advanced-custom-fields-pro/acf.php' ), true ) ) { + return; + } + + $plugin_to_deactivate = 'advanced-custom-fields/acf.php'; + $deactivated_notice_id = '1'; + + // If we just activated the free version, deactivate the pro version. + if ( $plugin === $plugin_to_deactivate ) { + $plugin_to_deactivate = 'advanced-custom-fields-pro/acf.php'; + $deactivated_notice_id = '2'; + } + + if ( is_multisite() && is_network_admin() ) { + $active_plugins = (array) get_site_option( 'active_sitewide_plugins', array() ); + $active_plugins = array_keys( $active_plugins ); + } else { + $active_plugins = (array) get_option( 'active_plugins', array() ); + } + + foreach ( $active_plugins as $plugin_basename ) { + if ( $plugin_to_deactivate === $plugin_basename ) { + set_transient( 'acf_deactivated_notice_id', $deactivated_notice_id, 1 * HOUR_IN_SECONDS ); + deactivate_plugins( $plugin_basename ); + return; + } + } + } + + /** + * Displays a notice when either ACF or ACF PRO is automatically deactivated. + */ + public function plugin_deactivated_notice() { + $deactivated_notice_id = (int) get_transient( 'acf_deactivated_notice_id' ); + if ( ! in_array( $deactivated_notice_id, array( 1, 2 ), true ) ) { + return; + } + + $message = __( "Advanced Custom Fields and Advanced Custom Fields PRO should not be active at the same time. We've automatically deactivated Advanced Custom Fields.", 'acf' ); + if ( 2 === $deactivated_notice_id ) { + $message = __( "Advanced Custom Fields and Advanced Custom Fields PRO should not be active at the same time. We've automatically deactivated Advanced Custom Fields PRO.", 'acf' ); + } + + ?> +
+

+
+ get( 'acf_field_key' ); + $field_name = $wp_query->get( 'acf_field_name' ); + $group_key = $wp_query->get( 'acf_group_key' ); + $post_type_key = $wp_query->get( 'acf_post_type_key' ); + $taxonomy_key = $wp_query->get( 'acf_taxonomy_key' ); + + // Add custom "acf_field_key" arg. + if ( $field_key ) { + $where .= $wpdb->prepare( " AND {$wpdb->posts}.post_name = %s", $field_key ); + } + + // Add custom "acf_field_name" arg. + if ( $field_name ) { + $where .= $wpdb->prepare( " AND {$wpdb->posts}.post_excerpt = %s", $field_name ); + } + + // Add custom "acf_group_key" arg. + if ( $group_key ) { + $where .= $wpdb->prepare( " AND {$wpdb->posts}.post_name = %s", $group_key ); + } + + // Add custom "acf_post_type_key" arg. + if ( $post_type_key ) { + $where .= $wpdb->prepare( " AND {$wpdb->posts}.post_name = %s", $post_type_key ); + } + + // Add custom "acf_taxonomy_key" arg. + if ( $taxonomy_key ) { + $where .= $wpdb->prepare( " AND {$wpdb->posts}.post_name = %s", $taxonomy_key ); + } + + return $where; + } + + /** + * Defines a constant if doesnt already exist. + * + * @date 3/5/17 + * @since 5.5.13 + * + * @param string $name The constant name. + * @param mixed $value The constant value. + * @return void + */ + public function define( $name, $value = true ) { + if ( ! defined( $name ) ) { + define( $name, $value ); + } + } + + /** + * Returns true if a setting exists for this name. + * + * @date 2/2/18 + * @since 5.6.5 + * + * @param string $name The setting name. + * @return boolean + */ + public function has_setting( $name ) { + return isset( $this->settings[ $name ] ); + } + + /** + * Returns a setting or null if doesn't exist. + * + * @date 28/09/13 + * @since 5.0.0 + * + * @param string $name The setting name. + * @return mixed + */ + public function get_setting( $name ) { + return isset( $this->settings[ $name ] ) ? $this->settings[ $name ] : null; + } + + /** + * Updates a setting for the given name and value. + * + * @date 28/09/13 + * @since 5.0.0 + * + * @param string $name The setting name. + * @param mixed $value The setting value. + * @return true + */ + public function update_setting( $name, $value ) { + $this->settings[ $name ] = $value; + return true; + } + + /** + * Returns data or null if doesn't exist. + * + * @date 28/09/13 + * @since 5.0.0 + * + * @param string $name The data name. + * @return mixed + */ + public function get_data( $name ) { + return isset( $this->data[ $name ] ) ? $this->data[ $name ] : null; + } + + /** + * Sets data for the given name and value. + * + * @date 28/09/13 + * @since 5.0.0 + * + * @param string $name The data name. + * @param mixed $value The data value. + * @return void + */ + public function set_data( $name, $value ) { + $this->data[ $name ] = $value; + } + + /** + * Returns an instance or null if doesn't exist. + * + * @date 13/2/18 + * @since 5.6.9 + * + * @param string $class The instance class name. + * @return object + */ + public function get_instance( $class ) { + $name = strtolower( $class ); + return isset( $this->instances[ $name ] ) ? $this->instances[ $name ] : null; + } + + /** + * Creates and stores an instance of the given class. + * + * @date 13/2/18 + * @since 5.6.9 + * + * @param string $class The instance class name. + * @return object + */ + public function new_instance( $class ) { + $instance = new $class(); + $name = strtolower( $class ); + $this->instances[ $name ] = $instance; + return $instance; + } + + /** + * Magic __isset method for backwards compatibility. + * + * @date 24/4/20 + * @since 5.9.0 + * + * @param string $key Key name. + * @return bool + */ + public function __isset( $key ) { + return in_array( $key, array( 'locations', 'json' ), true ); + } + + /** + * Magic __get method for backwards compatibility. + * + * @date 24/4/20 + * @since 5.9.0 + * + * @param string $key Key name. + * @return mixed + */ + public function __get( $key ) { + switch ( $key ) { + case 'locations': + return acf_get_instance( 'ACF_Legacy_Locations' ); + case 'json': + return acf_get_instance( 'ACF_Local_JSON' ); + } + return null; + } + } + + /** + * The main function responsible for returning the one true acf Instance to functions everywhere. + * Use this function like you would a global variable, except without needing to declare the global. + * + * Example: + * + * @date 4/09/13 + * @since 4.3.0 + * + * @return ACF + */ + function acf() { + global $acf; + + // Instantiate only once. + if ( ! isset( $acf ) ) { + $acf = new ACF(); + $acf->initialize(); + } + return $acf; + } + + // Instantiate. + acf(); + +} // class_exists check diff --git a/assets/build/css/acf-dark.css b/assets/build/css/acf-dark.css new file mode 100644 index 0000000..05ae440 --- /dev/null +++ b/assets/build/css/acf-dark.css @@ -0,0 +1,321 @@ +/*!***************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/advanced-custom-fields-pro/assets/src/sass/acf-dark.scss ***! + \***************************************************************************************************************************************************************************************************************/ +/*-------------------------------------------------------------------------------------------- +* +* Dark mode +* +* WordPress plugin: https://en-au.wordpress.org/plugins/dark-mode/ +* Github Documentation: https://github.com/danieltj27/Dark-Mode/wiki/Help:-Plugin-Compatibility-Guide +* +*--------------------------------------------------------------------------------------------*/ +/*--------------------------------------------------------------------------------------------- +* +* Global +* +*---------------------------------------------------------------------------------------------*/ +.acf-box { + background-color: #32373c; + border-color: #191f25; + color: #bbc8d4; +} +.acf-box .title, +.acf-box .footer { + border-color: #23282d; +} +.acf-box h2 { + color: #bbc8d4; +} +.acf-box table, .acf-box tbody, .acf-box tr { + background: transparent !important; +} + +.acf-thead { + color: #bbc8d4; + border-color: #191f25; +} + +.acf-tfoot { + background-color: #2d3136; + border-color: #23282d; +} + +.acf-table.-clear, +.acf-table.-clear tr { + background: transparent !important; +} + +.acf-loading-overlay { + background: rgba(0, 0, 0, 0.5); +} + +/*--------------------------------------------------------------------------------------------- +* +* Fields +* +*---------------------------------------------------------------------------------------------*/ +.acf-fields > .acf-field { + border-color: #23282d; +} + +.acf-fields.-left > .acf-field:before { + background: rgba(0, 0, 0, 0.1); + border-color: #23282d; +} + +.acf-fields.-border { + background-color: #32373c; + border-color: #191f25; + color: #bbc8d4; +} + +.acf-field[data-width] + .acf-field[data-width] { + border-color: #23282d; +} + +.acf-input-prepend, +.acf-input-append { + background-color: #32373c; + border-color: #191f25; + color: #bbc8d4; +} + +.acf-fields > .acf-tab-wrap { + background-color: #32373c; + border-color: #191f25; + color: #bbc8d4; +} +.acf-fields > .acf-tab-wrap .acf-tab-group { + background-color: #2d3136; + border-color: #23282d; +} +.acf-fields > .acf-tab-wrap .acf-tab-group li a { + background-color: #2d3136; + border-color: #23282d; +} +.acf-fields > .acf-tab-wrap .acf-tab-group li a:hover { + background-color: #2d3136; + border-color: #23282d; + color: #bbc8d4; +} +.acf-fields > .acf-tab-wrap .acf-tab-group li.active a { + background-color: #32373c; + border-color: #191f25; + color: #bbc8d4; +} + +.acf-fields.-sidebar:before { + background-color: #2d3136; + border-color: #23282d; +} + +.acf-fields.-sidebar.-left:before { + background-color: #2d3136; + border-color: #23282d; + background: #23282d; +} +.acf-fields.-sidebar.-left > .acf-tab-wrap.-left .acf-tab-group li a { + background-color: #2d3136; + border-color: #23282d; +} +.acf-fields.-sidebar.-left > .acf-tab-wrap.-left .acf-tab-group li.active a { + background-color: #2d3136; + border-color: #23282d; +} + +.acf-file-uploader .show-if-value { + background-color: #32373c; + border-color: #191f25; + color: #bbc8d4; +} +.acf-file-uploader .show-if-value .file-icon { + background-color: #2d3136; + border-color: #23282d; +} + +.acf-oembed { + background-color: #2d3136; + border-color: #23282d; +} +.acf-oembed .title { + background-color: #50626f; + border-color: #191f25; + color: #fff; +} + +.acf-gallery { + background-color: #2d3136; + border-color: #23282d; +} +.acf-gallery .acf-gallery-main { + background: #23282d; +} +.acf-gallery .acf-gallery-attachment .margin { + background-color: #2d3136; + border-color: #23282d; +} +.acf-gallery .acf-gallery-side { + background-color: #2d3136; + border-color: #23282d; +} +.acf-gallery .acf-gallery-side .acf-gallery-side-info { + background-color: #2d3136; + border-color: #23282d; +} +.acf-gallery .acf-gallery-toolbar { + background-color: #2d3136; + border-color: #23282d; +} + +.acf-button-group label:not(.selected) { + background-color: #2d3136; + border-color: #23282d; +} + +.acf-switch:not(.-on) { + background-color: #2d3136; + border-color: #23282d; +} +.acf-switch:not(.-on) .acf-switch-slider { + background-color: #50626f; + border-color: #191f25; + color: #fff; +} + +.acf-link .link-wrap { + background-color: #2d3136; + border-color: #23282d; +} + +.acf-relationship .filters { + background-color: #32373c; + border-color: #191f25; + color: #bbc8d4; +} +.acf-relationship .selection { + background-color: #2d3136; + border-color: #23282d; +} +.acf-relationship .selection .choices, +.acf-relationship .selection .choices-list, +.acf-relationship .selection .values { + background-color: #2d3136; + border-color: #23282d; +} + +.acf-taxonomy-field .categorychecklist-holder { + background-color: #2d3136; + border-color: #23282d; +} + +.acf-google-map { + background-color: #2d3136; + border-color: #23282d; +} +.acf-google-map .title { + background-color: #50626f; + border-color: #191f25; + color: #fff; +} + +.acf-accordion { + background-color: #32373c; + border-color: #191f25; + color: #bbc8d4; +} + +.acf-field.acf-accordion .acf-accordion-content > .acf-fields { + border-color: #191f25; +} + +.acf-flexible-content .layout { + background-color: #32373c; + border-color: #191f25; + color: #bbc8d4; +} +.acf-flexible-content .layout .acf-fc-layout-handle { + background-color: #2d3136; + border-color: #23282d; +} +.acf-flexible-content .layout .acf-fc-layout-handle .acf-fc-layout-order { + background-color: #32373c; + border-color: #191f25; + color: #bbc8d4; +} + +#wpbody .acf-table { + background-color: #2d3136; + border-color: #23282d; +} +#wpbody .acf-table > tbody > tr, +#wpbody .acf-table > thead > tr { + background: transparent; +} +#wpbody .acf-table > tbody > tr > td, +#wpbody .acf-table > tbody > tr > th, +#wpbody .acf-table > thead > tr > td, +#wpbody .acf-table > thead > tr > th { + border-color: #191f25; +} + +.acf-field select optgroup, .acf-field select optgroup:nth-child(2n) { + background: #50626f; +} + +/*--------------------------------------------------------------------------------------------- +* +* Field Group +* +*---------------------------------------------------------------------------------------------*/ +#acf-field-group-fields .acf-field-list-wrap { + background-color: #32373c; + border-color: #191f25; + color: #bbc8d4; +} +#acf-field-group-fields .acf-field-list .no-fields-message { + background-color: #32373c; + border-color: #191f25; + color: #bbc8d4; +} +#acf-field-group-fields .acf-field-object { + background-color: #32373c; + border-color: #191f25; + color: #bbc8d4; + border-color: #23282d; +} +#acf-field-group-fields .acf-field-object table, #acf-field-group-fields .acf-field-object tbody, #acf-field-group-fields .acf-field-object tr, #acf-field-group-fields .acf-field-object td, #acf-field-group-fields .acf-field-object th { + background: transparent; + border-color: #23282d; +} +#acf-field-group-fields .acf-field-object .acf-field .acf-label { + background-color: #2d3136; + border-color: #23282d; +} +#acf-field-group-fields .acf-field-object.ui-sortable-helper { + border-color: #191f25; + box-shadow: none; +} +#acf-field-group-fields .acf-field-object.ui-sortable-placeholder { + background-color: #2d3136; + border-color: #23282d; + box-shadow: none; +} +#acf-field-group-fields .acf-field-object + .acf-field-object-tab::before, +#acf-field-group-fields .acf-field-object + .acf-field-object-accordion::before { + background-color: #2d3136; + border-color: #23282d; +} + +/*--------------------------------------------------------------------------------------------- +* +* Admin: Tools +* +*---------------------------------------------------------------------------------------------*/ +.acf-meta-box-wrap .acf-fields { + background-color: #50626f; + border-color: #191f25; + color: #fff; + background: transparent; +} + +/*# sourceMappingURL=acf-dark.css.map*/ \ No newline at end of file diff --git a/assets/build/css/acf-dark.css.map b/assets/build/css/acf-dark.css.map new file mode 100644 index 0000000..1430f72 --- /dev/null +++ b/assets/build/css/acf-dark.css.map @@ -0,0 +1 @@ +{"version":3,"file":"acf-dark.css","mappings":"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","sources":["webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/sass/_dark.scss","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/sass/acf-dark.scss"],"sourcesContent":["/*--------------------------------------------------------------------------------------------\n*\n* Dark mode\n*\n* WordPress plugin: https://en-au.wordpress.org/plugins/dark-mode/\n* Github Documentation: https://github.com/danieltj27/Dark-Mode/wiki/Help:-Plugin-Compatibility-Guide\n*\n*--------------------------------------------------------------------------------------------*/\n\n// Dark Mode Colours.\n$white: #ffffff;\n$black: #000000;\n$blue: #0073aa;\n$medium-blue: #00a0d2;\n$clear: transparent;\n\n$accent-red: #dc3232;\n$accent-orange: #f56e28;\n$accent-yellow: #ffb900;\n$accent-green: #46b450;\n$accent-blue: $blue;\n$accent-purple: #826eb4;\n\n$base-grey: #23282d;\n$light-grey: #bbc8d4;\n$heavy-grey: #37444c;\n$dark-grey: #32373c;\n$ultra-grey: #191f25;\n$dark-silver: #50626f;\n$base-blue: #2e74aa;\n$light-blue: #4092d2;\n$dark-blue: #2c5f88;\n$ultra-blue: #1f3f58;\n$bright-blue: #30ceff;\n\n$editor-lavender: #c678dd;\n$editor-sunglo: #e06c75;\n$editor-olivine: #98c379;\n\n// Custom variables.\n$body_text: \t\t\t#bbc8d4;\n$body_background: \t\t#23282d;\n$body_background2: \t\t#191f25;\n$postbox_background: \t#32373c;\n$postbox_border: \t\t#191f25;\n$postbox_divider: \t\t#23282d;\n$input_background: \t\t#50626f;\n$input_text: \t\t\t#fff;\n$input_border: \t\t\t#191f25;\n\n// Mixins.\n@mixin dark-text() {\n\tcolor: $body_text;\n}\n@mixin dark-heading() {\n\tcolor: $body_text;\n}\n@mixin dark-border() {\n\tborder-color: $postbox_border;\n}\n@mixin dark-background() {\n\tbackground: $body_background;\n}\n@mixin darker-background() {\n\tbackground: darken($body_background, 5%);\n}\n@mixin dark-postbox() {\n\tbackground-color: $postbox_background;\n\tborder-color: $postbox_border;\n\tcolor: $body_text;\n}\n@mixin dark-postbox-block() {\n\tbackground-color: #2d3136;\n\tborder-color: $postbox_divider;\n}\n@mixin dark-divider() {\n\tborder-color: $postbox_divider;\n}\n@mixin dark-input() {\n\tbackground-color: $input_background;\n\tborder-color: $input_border;\n\tcolor: $input_text;\n}\n\n\n/*---------------------------------------------------------------------------------------------\n*\n* Global\n*\n*---------------------------------------------------------------------------------------------*/\n\n// acf-box\n.acf-box {\n\t@include dark-postbox();\n\n\t.title,\n\t.footer {\n\t\t@include dark-divider();\n\t}\n\n\th2 {\n\t\t@include dark-heading();\n\t}\n\n\ttable, tbody, tr {\n\t\tbackground: transparent !important;\n\t}\n}\n\n// thead\n.acf-thead {\n\t@include dark-heading();\n\t@include dark-border();\n}\n.acf-tfoot {\n\t@include dark-postbox-block();\n}\n\n// table clear\n.acf-table.-clear,\n.acf-table.-clear tr {\n\tbackground: transparent !important;\n}\n\n// loading overlay\n.acf-loading-overlay {\n\tbackground: rgba(0,0,0,0.5);\n}\n\n\n/*---------------------------------------------------------------------------------------------\n*\n* Fields\n*\n*---------------------------------------------------------------------------------------------*/\n\n// fields\n.acf-fields {\n\n\t// field\n\t> .acf-field {\n\t\t@include dark-divider();\n\t}\n}\n\n// fields (left)\n.acf-fields.-left {\n\n\t> .acf-field {\n\t\t&:before {\n\t\t\tbackground: rgba(0,0,0,0.1);\n\t\t\t@include dark-divider();\n\t\t}\n\t}\n}\n\n// fields (border)\n.acf-fields.-border {\n\t@include dark-postbox();\n}\n\n// width\n.acf-field[data-width] + .acf-field[data-width] {\n\t@include dark-divider();\n}\n\n// text\n.acf-input-prepend,\n.acf-input-append {\n\t@include dark-postbox();\n}\n\n// tab\n.acf-tab-wrap {\n\n}\n\n.acf-fields > .acf-tab-wrap {\n\t@include dark-postbox();\n\n\t.acf-tab-group {\n\t\t@include dark-postbox-block();\n\n\t\tli {\n\t\t\ta {\n\t\t\t\t@include dark-postbox-block();\n\n\t\t\t\t&:hover {\n\t\t\t\t\t@include dark-postbox-block();\n\t\t\t\t\t@include dark-text();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t&.active a {\n\t\t\t\t@include dark-postbox();\n\t\t\t}\n\t\t}\n\t}\n}\n\n.acf-fields.-sidebar {\n\t&:before {\n\t\t@include dark-postbox-block();\n\t}\n}\n\n.acf-fields.-sidebar.-left {\n\t&:before {\n\t\t@include dark-postbox-block();\n\t\tbackground: $body_background;\n\t}\n\t> .acf-tab-wrap.-left {\n\t\t.acf-tab-group li a {\n\t\t\t@include dark-postbox-block();\n\t\t}\n\n\t\t.acf-tab-group li.active a {\n\t\t\t@include dark-postbox-block();\n\t\t}\n\t}\n}\n\n// file\n.acf-file-uploader {\n\n\t.show-if-value {\n\t\t@include dark-postbox();\n\n\t\t.file-icon {\n\t\t\t@include dark-postbox-block();\n\t\t}\n\t}\n}\n\n// acf-oembed\n.acf-oembed {\n\t@include dark-postbox-block();\n\n\t.title {\n\t\t@include dark-input();\n\t}\n}\n\n// gallery\n.acf-gallery {\n\t@include dark-postbox-block();\n\n\t.acf-gallery-main {\n\t\t@include dark-background();\n\t}\n\n\t.acf-gallery-attachment {\n\t\t.margin {\n\t\t\t@include dark-postbox-block();\n\t\t}\n\t}\n\n\t.acf-gallery-side {\n\t\t@include dark-postbox-block();\n\n\t\t.acf-gallery-side-info {\n\t\t\t@include dark-postbox-block();\n\t\t}\n\t}\n\n\t.acf-gallery-toolbar {\n\t\t@include dark-postbox-block();\n\t}\n}\n\n// button group\n.acf-button-group {\n\n\tlabel:not(.selected) {\n\t\t@include dark-postbox-block();\n\t}\n}\n\n// switch\n.acf-switch:not(.-on) {\n\t@include dark-postbox-block();\n\t.acf-switch-slider {\n\t\t@include dark-input();\n\t}\n}\n\n// link\n.acf-link .link-wrap {\n\t@include dark-postbox-block();\n}\n\n// relationship\n.acf-relationship {\n\t.filters {\n\t\t@include dark-postbox();\n\t}\n\t.selection {\n\t\t@include dark-postbox-block();\n\t\t.choices,\n\t\t.choices-list,\n\t\t.values {\n\t\t\t@include dark-postbox-block();\n\t\t}\n\t}\n}\n\n// checkbox\n.acf-taxonomy-field .categorychecklist-holder {\n\t@include dark-postbox-block();\n}\n\n// google map\n.acf-google-map {\n\t@include dark-postbox-block();\n\n\t.title {\n\t\t@include dark-input();\n\t}\n}\n\n// accordion\n.acf-accordion {\n\t@include dark-postbox();\n}\n.acf-field.acf-accordion .acf-accordion-content > .acf-fields {\n\t@include dark-border();\n}\n\n// flexible content\n.acf-flexible-content {\n\t.layout {\n\t\t@include dark-postbox();\n\n\t\t.acf-fc-layout-handle {\n\t\t\t@include dark-postbox-block();\n\n\t\t\t.acf-fc-layout-order {\n\t\t\t\t@include dark-postbox();\n\t\t\t}\n\t\t}\n\t}\n}\n\n// repeater\n#wpbody .acf-table {\n\t@include dark-postbox-block();\n\n\t> tbody,\n\t> thead {\n\t\t> tr {\n\t\t\tbackground: transparent;\n\n\t\t\t> td,\n\t\t\t> th {\n\t\t\t\t@include dark-border();\n\t\t\t}\n\t\t}\n\t}\n}\n\n// Select\n.acf-field select {\n\toptgroup, optgroup:nth-child(2n) {\n\t\tbackground: $input_background;\n\t}\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Field Group\n*\n*---------------------------------------------------------------------------------------------*/\n\n// fields\n#acf-field-group-fields {\n\n\t// field list\n\t.acf-field-list-wrap {\n\t\t@include dark-postbox();\n\t}\n\n\t.acf-field-list {\n\t\t.no-fields-message {\n\t\t\t@include dark-postbox();\n\t\t}\n\t}\n\n\t// field\n\t.acf-field-object {\n\t\t@include dark-postbox();\n\t\t@include dark-divider();\n\n\n\t\ttable, tbody, tr, td, th {\n\t\t\tbackground: transparent;\n\t\t\t@include dark-divider();\n\t\t}\n\n\t\t.acf-field {\n\t\t\t.acf-label {\n\t\t\t\t@include dark-postbox-block();\n\t\t\t}\n\t\t}\n\n\t\t// sortable\n\t\t&.ui-sortable-helper {\n\t\t\t@include dark-border();\n\t\t\tbox-shadow: none;\n\t\t}\n\n\t\t&.ui-sortable-placeholder {\n\t\t\t@include dark-postbox-block();\n\t\t\tbox-shadow: none;\n\t\t}\n\t}\n\n\t.acf-field-object + .acf-field-object-tab::before,\n\t.acf-field-object + .acf-field-object-accordion::before {\n\t\t@include dark-postbox-block();\n\t}\n}\n\n\n/*---------------------------------------------------------------------------------------------\n*\n* Admin: Tools\n*\n*---------------------------------------------------------------------------------------------*/\n\n// tools\n.acf-meta-box-wrap {\n\n\t.acf-fields {\n\t\t@include dark-input();\n\t\tbackground: transparent;\n\t}\n}","/*--------------------------------------------------------------------------------------------\n*\n* Dark mode\n*\n* WordPress plugin: https://en-au.wordpress.org/plugins/dark-mode/\n* Github Documentation: https://github.com/danieltj27/Dark-Mode/wiki/Help:-Plugin-Compatibility-Guide\n*\n*--------------------------------------------------------------------------------------------*/\n/*---------------------------------------------------------------------------------------------\n*\n* Global\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-box {\n background-color: #32373c;\n border-color: #191f25;\n color: #bbc8d4;\n}\n.acf-box .title,\n.acf-box .footer {\n border-color: #23282d;\n}\n.acf-box h2 {\n color: #bbc8d4;\n}\n.acf-box table, .acf-box tbody, .acf-box tr {\n background: transparent !important;\n}\n\n.acf-thead {\n color: #bbc8d4;\n border-color: #191f25;\n}\n\n.acf-tfoot {\n background-color: #2d3136;\n border-color: #23282d;\n}\n\n.acf-table.-clear,\n.acf-table.-clear tr {\n background: transparent !important;\n}\n\n.acf-loading-overlay {\n background: rgba(0, 0, 0, 0.5);\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Fields\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-fields > .acf-field {\n border-color: #23282d;\n}\n\n.acf-fields.-left > .acf-field:before {\n background: rgba(0, 0, 0, 0.1);\n border-color: #23282d;\n}\n\n.acf-fields.-border {\n background-color: #32373c;\n border-color: #191f25;\n color: #bbc8d4;\n}\n\n.acf-field[data-width] + .acf-field[data-width] {\n border-color: #23282d;\n}\n\n.acf-input-prepend,\n.acf-input-append {\n background-color: #32373c;\n border-color: #191f25;\n color: #bbc8d4;\n}\n\n.acf-fields > .acf-tab-wrap {\n background-color: #32373c;\n border-color: #191f25;\n color: #bbc8d4;\n}\n.acf-fields > .acf-tab-wrap .acf-tab-group {\n background-color: #2d3136;\n border-color: #23282d;\n}\n.acf-fields > .acf-tab-wrap .acf-tab-group li a {\n background-color: #2d3136;\n border-color: #23282d;\n}\n.acf-fields > .acf-tab-wrap .acf-tab-group li a:hover {\n background-color: #2d3136;\n border-color: #23282d;\n color: #bbc8d4;\n}\n.acf-fields > .acf-tab-wrap .acf-tab-group li.active a {\n background-color: #32373c;\n border-color: #191f25;\n color: #bbc8d4;\n}\n\n.acf-fields.-sidebar:before {\n background-color: #2d3136;\n border-color: #23282d;\n}\n\n.acf-fields.-sidebar.-left:before {\n background-color: #2d3136;\n border-color: #23282d;\n background: #23282d;\n}\n.acf-fields.-sidebar.-left > .acf-tab-wrap.-left .acf-tab-group li a {\n background-color: #2d3136;\n border-color: #23282d;\n}\n.acf-fields.-sidebar.-left > .acf-tab-wrap.-left .acf-tab-group li.active a {\n background-color: #2d3136;\n border-color: #23282d;\n}\n\n.acf-file-uploader .show-if-value {\n background-color: #32373c;\n border-color: #191f25;\n color: #bbc8d4;\n}\n.acf-file-uploader .show-if-value .file-icon {\n background-color: #2d3136;\n border-color: #23282d;\n}\n\n.acf-oembed {\n background-color: #2d3136;\n border-color: #23282d;\n}\n.acf-oembed .title {\n background-color: #50626f;\n border-color: #191f25;\n color: #fff;\n}\n\n.acf-gallery {\n background-color: #2d3136;\n border-color: #23282d;\n}\n.acf-gallery .acf-gallery-main {\n background: #23282d;\n}\n.acf-gallery .acf-gallery-attachment .margin {\n background-color: #2d3136;\n border-color: #23282d;\n}\n.acf-gallery .acf-gallery-side {\n background-color: #2d3136;\n border-color: #23282d;\n}\n.acf-gallery .acf-gallery-side .acf-gallery-side-info {\n background-color: #2d3136;\n border-color: #23282d;\n}\n.acf-gallery .acf-gallery-toolbar {\n background-color: #2d3136;\n border-color: #23282d;\n}\n\n.acf-button-group label:not(.selected) {\n background-color: #2d3136;\n border-color: #23282d;\n}\n\n.acf-switch:not(.-on) {\n background-color: #2d3136;\n border-color: #23282d;\n}\n.acf-switch:not(.-on) .acf-switch-slider {\n background-color: #50626f;\n border-color: #191f25;\n color: #fff;\n}\n\n.acf-link .link-wrap {\n background-color: #2d3136;\n border-color: #23282d;\n}\n\n.acf-relationship .filters {\n background-color: #32373c;\n border-color: #191f25;\n color: #bbc8d4;\n}\n.acf-relationship .selection {\n background-color: #2d3136;\n border-color: #23282d;\n}\n.acf-relationship .selection .choices,\n.acf-relationship .selection .choices-list,\n.acf-relationship .selection .values {\n background-color: #2d3136;\n border-color: #23282d;\n}\n\n.acf-taxonomy-field .categorychecklist-holder {\n background-color: #2d3136;\n border-color: #23282d;\n}\n\n.acf-google-map {\n background-color: #2d3136;\n border-color: #23282d;\n}\n.acf-google-map .title {\n background-color: #50626f;\n border-color: #191f25;\n color: #fff;\n}\n\n.acf-accordion {\n background-color: #32373c;\n border-color: #191f25;\n color: #bbc8d4;\n}\n\n.acf-field.acf-accordion .acf-accordion-content > .acf-fields {\n border-color: #191f25;\n}\n\n.acf-flexible-content .layout {\n background-color: #32373c;\n border-color: #191f25;\n color: #bbc8d4;\n}\n.acf-flexible-content .layout .acf-fc-layout-handle {\n background-color: #2d3136;\n border-color: #23282d;\n}\n.acf-flexible-content .layout .acf-fc-layout-handle .acf-fc-layout-order {\n background-color: #32373c;\n border-color: #191f25;\n color: #bbc8d4;\n}\n\n#wpbody .acf-table {\n background-color: #2d3136;\n border-color: #23282d;\n}\n#wpbody .acf-table > tbody > tr,\n#wpbody .acf-table > thead > tr {\n background: transparent;\n}\n#wpbody .acf-table > tbody > tr > td,\n#wpbody .acf-table > tbody > tr > th,\n#wpbody .acf-table > thead > tr > td,\n#wpbody .acf-table > thead > tr > th {\n border-color: #191f25;\n}\n\n.acf-field select optgroup, .acf-field select optgroup:nth-child(2n) {\n background: #50626f;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Field Group\n*\n*---------------------------------------------------------------------------------------------*/\n#acf-field-group-fields .acf-field-list-wrap {\n background-color: #32373c;\n border-color: #191f25;\n color: #bbc8d4;\n}\n#acf-field-group-fields .acf-field-list .no-fields-message {\n background-color: #32373c;\n border-color: #191f25;\n color: #bbc8d4;\n}\n#acf-field-group-fields .acf-field-object {\n background-color: #32373c;\n border-color: #191f25;\n color: #bbc8d4;\n border-color: #23282d;\n}\n#acf-field-group-fields .acf-field-object table, #acf-field-group-fields .acf-field-object tbody, #acf-field-group-fields .acf-field-object tr, #acf-field-group-fields .acf-field-object td, #acf-field-group-fields .acf-field-object th {\n background: transparent;\n border-color: #23282d;\n}\n#acf-field-group-fields .acf-field-object .acf-field .acf-label {\n background-color: #2d3136;\n border-color: #23282d;\n}\n#acf-field-group-fields .acf-field-object.ui-sortable-helper {\n border-color: #191f25;\n box-shadow: none;\n}\n#acf-field-group-fields .acf-field-object.ui-sortable-placeholder {\n background-color: #2d3136;\n border-color: #23282d;\n box-shadow: none;\n}\n#acf-field-group-fields .acf-field-object + .acf-field-object-tab::before,\n#acf-field-group-fields .acf-field-object + .acf-field-object-accordion::before {\n background-color: #2d3136;\n border-color: #23282d;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Admin: Tools\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-meta-box-wrap .acf-fields {\n background-color: #50626f;\n border-color: #191f25;\n color: #fff;\n background: transparent;\n}"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/assets/build/css/acf-dark.min.css b/assets/build/css/acf-dark.min.css new file mode 100644 index 0000000..617a79e --- /dev/null +++ b/assets/build/css/acf-dark.min.css @@ -0,0 +1 @@ +.acf-box{background-color:#32373c;border-color:#191f25;color:#bbc8d4}.acf-box .title,.acf-box .footer{border-color:#23282d}.acf-box h2{color:#bbc8d4}.acf-box table,.acf-box tbody,.acf-box tr{background:rgba(0,0,0,0) !important}.acf-thead{color:#bbc8d4;border-color:#191f25}.acf-tfoot{background-color:#2d3136;border-color:#23282d}.acf-table.-clear,.acf-table.-clear tr{background:rgba(0,0,0,0) !important}.acf-loading-overlay{background:rgba(0,0,0,.5)}.acf-fields>.acf-field{border-color:#23282d}.acf-fields.-left>.acf-field:before{background:rgba(0,0,0,.1);border-color:#23282d}.acf-fields.-border{background-color:#32373c;border-color:#191f25;color:#bbc8d4}.acf-field[data-width]+.acf-field[data-width]{border-color:#23282d}.acf-input-prepend,.acf-input-append{background-color:#32373c;border-color:#191f25;color:#bbc8d4}.acf-fields>.acf-tab-wrap{background-color:#32373c;border-color:#191f25;color:#bbc8d4}.acf-fields>.acf-tab-wrap .acf-tab-group{background-color:#2d3136;border-color:#23282d}.acf-fields>.acf-tab-wrap .acf-tab-group li a{background-color:#2d3136;border-color:#23282d}.acf-fields>.acf-tab-wrap .acf-tab-group li a:hover{background-color:#2d3136;border-color:#23282d;color:#bbc8d4}.acf-fields>.acf-tab-wrap .acf-tab-group li.active a{background-color:#32373c;border-color:#191f25;color:#bbc8d4}.acf-fields.-sidebar:before{background-color:#2d3136;border-color:#23282d}.acf-fields.-sidebar.-left:before{background-color:#2d3136;border-color:#23282d;background:#23282d}.acf-fields.-sidebar.-left>.acf-tab-wrap.-left .acf-tab-group li a{background-color:#2d3136;border-color:#23282d}.acf-fields.-sidebar.-left>.acf-tab-wrap.-left .acf-tab-group li.active a{background-color:#2d3136;border-color:#23282d}.acf-file-uploader .show-if-value{background-color:#32373c;border-color:#191f25;color:#bbc8d4}.acf-file-uploader .show-if-value .file-icon{background-color:#2d3136;border-color:#23282d}.acf-oembed{background-color:#2d3136;border-color:#23282d}.acf-oembed .title{background-color:#50626f;border-color:#191f25;color:#fff}.acf-gallery{background-color:#2d3136;border-color:#23282d}.acf-gallery .acf-gallery-main{background:#23282d}.acf-gallery .acf-gallery-attachment .margin{background-color:#2d3136;border-color:#23282d}.acf-gallery .acf-gallery-side{background-color:#2d3136;border-color:#23282d}.acf-gallery .acf-gallery-side .acf-gallery-side-info{background-color:#2d3136;border-color:#23282d}.acf-gallery .acf-gallery-toolbar{background-color:#2d3136;border-color:#23282d}.acf-button-group label:not(.selected){background-color:#2d3136;border-color:#23282d}.acf-switch:not(.-on){background-color:#2d3136;border-color:#23282d}.acf-switch:not(.-on) .acf-switch-slider{background-color:#50626f;border-color:#191f25;color:#fff}.acf-link .link-wrap{background-color:#2d3136;border-color:#23282d}.acf-relationship .filters{background-color:#32373c;border-color:#191f25;color:#bbc8d4}.acf-relationship .selection{background-color:#2d3136;border-color:#23282d}.acf-relationship .selection .choices,.acf-relationship .selection .choices-list,.acf-relationship .selection .values{background-color:#2d3136;border-color:#23282d}.acf-taxonomy-field .categorychecklist-holder{background-color:#2d3136;border-color:#23282d}.acf-google-map{background-color:#2d3136;border-color:#23282d}.acf-google-map .title{background-color:#50626f;border-color:#191f25;color:#fff}.acf-accordion{background-color:#32373c;border-color:#191f25;color:#bbc8d4}.acf-field.acf-accordion .acf-accordion-content>.acf-fields{border-color:#191f25}.acf-flexible-content .layout{background-color:#32373c;border-color:#191f25;color:#bbc8d4}.acf-flexible-content .layout .acf-fc-layout-handle{background-color:#2d3136;border-color:#23282d}.acf-flexible-content .layout .acf-fc-layout-handle .acf-fc-layout-order{background-color:#32373c;border-color:#191f25;color:#bbc8d4}#wpbody .acf-table{background-color:#2d3136;border-color:#23282d}#wpbody .acf-table>tbody>tr,#wpbody .acf-table>thead>tr{background:rgba(0,0,0,0)}#wpbody .acf-table>tbody>tr>td,#wpbody .acf-table>tbody>tr>th,#wpbody .acf-table>thead>tr>td,#wpbody .acf-table>thead>tr>th{border-color:#191f25}.acf-field select optgroup,.acf-field select optgroup:nth-child(2n){background:#50626f}#acf-field-group-fields .acf-field-list-wrap{background-color:#32373c;border-color:#191f25;color:#bbc8d4}#acf-field-group-fields .acf-field-list .no-fields-message{background-color:#32373c;border-color:#191f25;color:#bbc8d4}#acf-field-group-fields .acf-field-object{background-color:#32373c;border-color:#191f25;color:#bbc8d4;border-color:#23282d}#acf-field-group-fields .acf-field-object table,#acf-field-group-fields .acf-field-object tbody,#acf-field-group-fields .acf-field-object tr,#acf-field-group-fields .acf-field-object td,#acf-field-group-fields .acf-field-object th{background:rgba(0,0,0,0);border-color:#23282d}#acf-field-group-fields .acf-field-object .acf-field .acf-label{background-color:#2d3136;border-color:#23282d}#acf-field-group-fields .acf-field-object.ui-sortable-helper{border-color:#191f25;box-shadow:none}#acf-field-group-fields .acf-field-object.ui-sortable-placeholder{background-color:#2d3136;border-color:#23282d;box-shadow:none}#acf-field-group-fields .acf-field-object+.acf-field-object-tab::before,#acf-field-group-fields .acf-field-object+.acf-field-object-accordion::before{background-color:#2d3136;border-color:#23282d}.acf-meta-box-wrap .acf-fields{background-color:#50626f;border-color:#191f25;color:#fff;background:rgba(0,0,0,0)} diff --git a/assets/build/css/acf-field-group.css b/assets/build/css/acf-field-group.css new file mode 100644 index 0000000..7954cc3 --- /dev/null +++ b/assets/build/css/acf-field-group.css @@ -0,0 +1,2947 @@ +/*!**********************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/advanced-custom-fields-pro/assets/src/sass/acf-field-group.scss ***! + \**********************************************************************************************************************************************************************************************************************/ +@charset "UTF-8"; +/*-------------------------------------------------------------------------------------------- +* +* Vars +* +*--------------------------------------------------------------------------------------------*/ +/* colors */ +/* acf-field */ +/* responsive */ +/*-------------------------------------------------------------------------------------------- +* +* ACF 6 ↓ +* +*--------------------------------------------------------------------------------------------*/ +/*-------------------------------------------------------------------------------------------- +* +* Mixins +* +*--------------------------------------------------------------------------------------------*/ +/*-------------------------------------------------------------------------------------------- +* +* Field Group +* +*--------------------------------------------------------------------------------------------*/ +#acf-field-group-fields > .inside, +#acf-field-group-locations > .inside, +#acf-field-group-options > .inside { + padding: 0; + margin: 0; +} + +.postbox .handle-order-higher, +.postbox .handle-order-lower { + display: none; +} + +/*---------------------------------------------------------------------------- +* +* Postbox: Publish +* +*----------------------------------------------------------------------------*/ +#minor-publishing-actions, +#misc-publishing-actions #visibility, +#misc-publishing-actions .edit-timestamp { + display: none; +} + +#minor-publishing { + border-bottom: 0 none; +} + +#misc-pub-section { + border-bottom: 0 none; +} + +#misc-publishing-actions .misc-pub-section { + border-bottom-color: #F5F5F5; +} + +/*---------------------------------------------------------------------------- +* +* Postbox: Fields +* +*----------------------------------------------------------------------------*/ +#acf-field-group-fields { + border: 0 none; + /* links */ + /* Field type */ + /* table header */ + /* show keys */ + /* hide tabs */ + /* fields */ +} +#acf-field-group-fields .inside { + border-top-width: 0; + border-top-style: none; +} +#acf-field-group-fields a { + text-decoration: none; +} +#acf-field-group-fields .li-field-type .field-type-icon { + margin-right: 8px; +} +@media screen and (max-width: 600px) { + #acf-field-group-fields .li-field-type .field-type-icon { + display: none; + } +} +#acf-field-group-fields .li-field-order { + width: 64px; + justify-content: center; +} +@media screen and (max-width: 880px) { + #acf-field-group-fields .li-field-order { + width: 32px; + } +} +#acf-field-group-fields .li-field-label { + width: calc(50% - 64px); +} +#acf-field-group-fields .li-field-name { + width: 25%; + word-break: break-word; +} +#acf-field-group-fields .li-field-key { + display: none; +} +#acf-field-group-fields .li-field-type { + width: 25%; +} +#acf-field-group-fields.show-field-keys .li-field-label { + width: calc(35% - 64px); +} +#acf-field-group-fields.show-field-keys .li-field-name { + width: 15%; +} +#acf-field-group-fields.show-field-keys .li-field-key { + width: 25%; + display: flex; +} +#acf-field-group-fields.show-field-keys .li-field-type { + width: 25%; +} +#acf-field-group-fields.hide-tabs .acf-field-settings-tab-bar { + display: none; +} +#acf-field-group-fields.hide-tabs .acf-field-settings-main { + padding: 0; +} +#acf-field-group-fields.hide-tabs .acf-field-settings-main.acf-field-settings-main-general { + padding-top: 32px; +} +#acf-field-group-fields.hide-tabs .acf-field-settings-main .acf-field { + margin-bottom: 32px; +} +#acf-field-group-fields.hide-tabs .acf-field-settings-main .acf-field-setting-wrapper { + padding-top: 0; + border-top: none; +} +#acf-field-group-fields.hide-tabs .acf-field-settings-main .acf-field-settings-split .acf-field { + border-bottom-width: 1px; + border-bottom-style: solid; + border-bottom-color: #EAECF0; +} +#acf-field-group-fields.hide-tabs .acf-field-settings-main .acf-field-setting-first_day { + padding-top: 0; + border-top: none; +} +#acf-field-group-fields.hide-tabs .acf-field-settings-footer { + margin-top: 32px; +} +#acf-field-group-fields .acf-field-list-wrap { + border: #ccd0d4 solid 1px; +} +#acf-field-group-fields .acf-field-list { + background: #f5f5f5; + margin-top: -1px; + /* no fields */ + /* empty */ +} +#acf-field-group-fields .acf-field-list .acf-tbody > .li-field-name, +#acf-field-group-fields .acf-field-list .acf-tbody > .li-field-key { + align-items: flex-start; +} +#acf-field-group-fields .acf-field-list .copyable:not(.copy-unsupported) { + cursor: pointer; + display: inline-flex; + align-items: center; +} +#acf-field-group-fields .acf-field-list .copyable:not(.copy-unsupported):hover:after { + content: ""; + display: block; + padding-left: 5px; + display: inline-flex; + width: 12px; + height: 12px; + background-color: #667085; + border: none; + border-radius: 0; + -webkit-mask-size: contain; + mask-size: contain; + -webkit-mask-repeat: no-repeat; + mask-repeat: no-repeat; + -webkit-mask-position: center; + mask-position: center; + text-indent: 500%; + white-space: nowrap; + overflow: hidden; + -webkit-mask-image: url("../../images/icons/icon-copy.svg"); + mask-image: url("../../images/icons/icon-copy.svg"); + background-size: cover; +} +#acf-field-group-fields .acf-field-list .copyable:not(.copy-unsupported).copied:hover:after { + -webkit-mask-image: url("../../images/icons/icon-check-circle-solid.svg"); + mask-image: url("../../images/icons/icon-check-circle-solid.svg"); + background-color: #49ad52; +} +#acf-field-group-fields .acf-field-list .no-fields-message { + padding: 15px 15px; + background: #fff; + display: none; +} +#acf-field-group-fields .acf-field-list.-empty .no-fields-message { + display: block; +} +.acf-admin-3-8 #acf-field-group-fields .acf-field-list-wrap { + border-color: #dfdfdf; +} + +.rtl #acf-field-group-fields .li-field-type .field-type-icon { + margin-left: 8px; + margin-right: 0; +} + +/* field object */ +.acf-field-object { + border-top: #eeeeee solid 1px; + background: #fff; + /* sortable */ + /* meta */ + /* handle */ + /* open */ + /* + // debug + &[data-save="meta"] { + > .handle { + border-left: #ffb700 solid 5px !important; + } + } + + &[data-save="settings"] { + > .handle { + border-left: #0ec563 solid 5px !important; + } + } + */ + /* hover */ + /* settings */ + /* conditional logic */ +} +.acf-field-object.ui-sortable-helper { + overflow: hidden !important; + border-width: 1px; + border-style: solid; + border-color: #A5D2E7 !important; + border-radius: 8px; + filter: drop-shadow(0px 10px 20px rgba(16, 24, 40, 0.14)) drop-shadow(0px 1px 3px rgba(16, 24, 40, 0.1)); +} +.acf-field-object.ui-sortable-helper:before { + display: none !important; +} +.acf-field-object.ui-sortable-placeholder { + box-shadow: 0 -1px 0 0 #DFDFDF; + visibility: visible !important; + background: #F9F9F9; + border-top-color: transparent; + min-height: 54px; +} +.acf-field-object.ui-sortable-placeholder:after, .acf-field-object.ui-sortable-placeholder:before { + visibility: hidden; +} +.acf-field-object > .meta { + display: none; +} +.acf-field-object > .handle a { + -webkit-transition: none; + -moz-transition: none; + -o-transition: none; + transition: none; +} +.acf-field-object > .handle li { + word-wrap: break-word; +} +.acf-field-object > .handle strong { + display: block; + padding-bottom: 0; + font-size: 14px; + line-height: 14px; + min-height: 14px; +} +.acf-field-object > .handle .row-options { + display: block; + opacity: 0; + margin-top: 5px; +} +@media screen and (max-width: 880px) { + .acf-field-object > .handle .row-options { + opacity: 1; + margin-bottom: 0; + } +} +.acf-field-object > .handle .row-options a { + margin-right: 4px; +} +.acf-field-object > .handle .row-options a:hover { + color: #044767; +} +.acf-field-object > .handle .row-options a.delete-field { + color: #a00; +} +.acf-field-object > .handle .row-options a.delete-field:hover { + color: #f00; +} +.acf-field-object > .handle .row-options.active { + visibility: visible; +} +.acf-field-object.open + .acf-field-object { + border-top-color: #E1E1E1; +} +.acf-field-object.open > .handle { + background: #2a9bd9; + border: #2696d3 solid 1px; + text-shadow: #268FBB 0 1px 0; + color: #fff; + position: relative; + margin: 0 -1px 0 -1px; +} +.acf-field-object.open > .handle a { + color: #fff !important; +} +.acf-field-object.open > .handle a:hover { + text-decoration: underline !important; +} +.acf-field-object:hover > .handle .row-options, .acf-field-object.-hover > .handle .row-options, .acf-field-object:focus-within > .handle .row-options { + opacity: 1; + margin-bottom: 0; +} +.acf-field-object > .settings { + display: none; + width: 100%; +} +.acf-field-object > .settings > .acf-table { + border: none; +} +.acf-field-object .rule-groups { + margin-top: 20px; +} + +/*---------------------------------------------------------------------------- +* +* Postbox: Locations +* +*----------------------------------------------------------------------------*/ +.rule-groups h4 { + margin: 3px 0; +} +.rule-groups .rule-group { + margin: 0 0 5px; +} +.rule-groups .rule-group h4 { + margin: 0 0 3px; +} +.rule-groups .rule-group td.param { + width: 35%; +} +.rule-groups .rule-group td.operator { + width: 20%; +} +.rule-groups .rule-group td.add { + width: 40px; +} +.rule-groups .rule-group td.remove { + width: 28px; + vertical-align: middle; +} +.rule-groups .rule-group td.remove a { + width: 22px; + height: 22px; + visibility: hidden; +} +.rule-groups .rule-group td.remove a:before { + position: relative; + top: -2px; + font-size: 16px; +} +.rule-groups .rule-group tr:hover td.remove a { + visibility: visible; +} +.rule-groups .rule-group select:empty { + background: #f8f8f8; +} +.rule-groups:not(.rule-groups-multiple) .rule-group:first-child tr:first-child td.remove a { + /* Don't allow user to delete the only rule group */ + visibility: hidden !important; +} + +/*---------------------------------------------------------------------------- +* +* Options +* +*----------------------------------------------------------------------------*/ +#acf-field-group-options tr[data-name=hide_on_screen] li { + float: left; + width: 33%; +} + +@media (max-width: 1100px) { + #acf-field-group-options tr[data-name=hide_on_screen] li { + width: 50%; + } +} +/*---------------------------------------------------------------------------- +* +* Conditional Logic +* +*----------------------------------------------------------------------------*/ +table.conditional-logic-rules { + background: transparent; + border: 0 none; + border-radius: 0; +} + +table.conditional-logic-rules tbody td { + background: transparent; + border: 0 none !important; + padding: 5px 2px !important; +} + +/*---------------------------------------------------------------------------- +* +* Field: Tab +* +*----------------------------------------------------------------------------*/ +.acf-field-object-tab .acf-field-setting-name, +.acf-field-object-tab .acf-field-setting-instructions, +.acf-field-object-tab .acf-field-setting-required, +.acf-field-object-tab .acf-field-setting-warning, +.acf-field-object-tab .acf-field-setting-wrapper { + display: none; +} +.acf-field-object-tab .li-field-name { + visibility: hidden; +} +.acf-field-object-tab p:first-child { + margin: 0.5em 0; +} +.acf-field-object-tab li.acf-settings-type-presentation, +.acf-field-object-tab .acf-field-settings-main-presentation { + display: none !important; +} + +/*---------------------------------------------------------------------------- +* +* Field: Accordion +* +*----------------------------------------------------------------------------*/ +.acf-field-object-accordion .acf-field-setting-name, +.acf-field-object-accordion .acf-field-setting-instructions, +.acf-field-object-accordion .acf-field-setting-required, +.acf-field-object-accordion .acf-field-setting-warning, +.acf-field-object-accordion .acf-field-setting-wrapper { + display: none; +} +.acf-field-object-accordion .li-field-name { + visibility: hidden; +} +.acf-field-object-accordion p:first-child { + margin: 0.5em 0; +} +.acf-field-object-accordion .acf-field-setting-instructions { + display: block; +} + +/*---------------------------------------------------------------------------- +* +* Field: Message +* +*----------------------------------------------------------------------------*/ +.acf-field-object-message tr[data-name=name], +.acf-field-object-message tr[data-name=instructions], +.acf-field-object-message tr[data-name=required] { + display: none !important; +} + +.acf-field-object-message .li-field-name { + visibility: hidden; +} + +.acf-field-object-message textarea { + height: 175px !important; +} + +/*---------------------------------------------------------------------------- +* +* Field: Separator +* +*----------------------------------------------------------------------------*/ +.acf-field-object-separator tr[data-name=name], +.acf-field-object-separator tr[data-name=instructions], +.acf-field-object-separator tr[data-name=required] { + display: none !important; +} + +/*---------------------------------------------------------------------------- +* +* Field: Date Picker +* +*----------------------------------------------------------------------------*/ +.acf-field-object-date-picker .acf-radio-list li, +.acf-field-object-time-picker .acf-radio-list li, +.acf-field-object-date-time-picker .acf-radio-list li { + line-height: 25px; +} +.acf-field-object-date-picker .acf-radio-list span, +.acf-field-object-time-picker .acf-radio-list span, +.acf-field-object-date-time-picker .acf-radio-list span { + display: inline-block; + min-width: 10em; +} +.acf-field-object-date-picker .acf-radio-list input[type=text], +.acf-field-object-time-picker .acf-radio-list input[type=text], +.acf-field-object-date-time-picker .acf-radio-list input[type=text] { + width: 100px; +} + +.acf-field-object-date-time-picker .acf-radio-list span { + min-width: 15em; +} +.acf-field-object-date-time-picker .acf-radio-list input[type=text] { + width: 200px; +} + +/*-------------------------------------------------------------------------------------------- +* +* Slug +* +*--------------------------------------------------------------------------------------------*/ +#slugdiv .inside { + padding: 12px; + margin: 0; +} +#slugdiv input[type=text] { + width: 100%; + height: 28px; + font-size: 14px; +} + +/*-------------------------------------------------------------------------------------------- +* +* RTL +* +*--------------------------------------------------------------------------------------------*/ +html[dir=rtl] .acf-field-object.open > .handle { + margin: 0; +} + +/*---------------------------------------------------------------------------- +* +* Device +* +*----------------------------------------------------------------------------*/ +@media only screen and (max-width: 850px) { + tr.acf-field, + td.acf-label, + td.acf-input { + display: block !important; + width: auto !important; + border: 0 none !important; + } + tr.acf-field { + border-top: #ededed solid 1px !important; + margin-bottom: 0 !important; + } + td.acf-label { + background: transparent !important; + padding-bottom: 0 !important; + } +} +/*---------------------------------------------------------------------------- +* +* Subtle background on accordion & tab fields to separate them from others +* +*----------------------------------------------------------------------------*/ +.post-type-acf-field-group #acf-field-group-fields .acf-field-object-tab, +.post-type-acf-field-group #acf-field-group-fields .acf-field-object-accordion { + background-color: #F9FAFB; +} + +/*--------------------------------------------------------------------------------------------- +* +* Global +* +*---------------------------------------------------------------------------------------------*/ +.acf-admin-page #wpcontent { + line-height: 140%; +} + +/*--------------------------------------------------------------------------------------------- +* +* Links +* +*---------------------------------------------------------------------------------------------*/ +.acf-admin-page a { + color: #0783BE; +} + +/*--------------------------------------------------------------------------------------------- +* +* Headings +* +*---------------------------------------------------------------------------------------------*/ +.acf-h1, .acf-admin-page h1, +.acf-headerbar h1 { + font-size: 21px; + font-weight: 400; +} + +.acf-h2, .post-type-acf-field-group #acf-field-group-fields .acf-field-list.-empty .no-fields-message .no-fields-message-inner h2, .acf-page-title, .acf-admin-page h2, +.acf-headerbar h2 { + font-size: 18px; + font-weight: 400; +} + +.acf-h3, .post-type-acf-field-group .acf-field-settings-fc_head label, .acf-admin-page #acf-popup .acf-popup-box .title h1, +.acf-admin-page #acf-popup .acf-popup-box .title h2, +.acf-admin-page #acf-popup .acf-popup-box .title h3, +.acf-admin-page #acf-popup .acf-popup-box .title h4, .acf-admin-page h3, +.acf-headerbar h3 { + font-size: 16px; + font-weight: 400; +} + +/*--------------------------------------------------------------------------------------------- +* +* Paragraphs +* +*---------------------------------------------------------------------------------------------*/ +.acf-admin-page .p1 { + font-size: 15px; +} +.acf-admin-page .p2, .acf-admin-page .post-type-acf-field-group #acf-field-group-fields .acf-field-list.-empty .no-fields-message .no-fields-message-inner p, .post-type-acf-field-group #acf-field-group-fields .acf-field-list.-empty .no-fields-message .no-fields-message-inner .acf-admin-page p { + font-size: 14px; +} +.acf-admin-page .p3 { + font-size: 13.5px; +} +.acf-admin-page .p4, .acf-admin-page .acf-field-list .acf-sortable-handle, .acf-field-list .acf-admin-page .acf-sortable-handle, .acf-admin-page .post-type-acf-field-group .acf-field-object .handle li.li-field-label a.edit-field, .post-type-acf-field-group .acf-field-object .handle li.li-field-label .acf-admin-page a.edit-field, .acf-admin-page .post-type-acf-field-group .acf-field-object .handle li, .post-type-acf-field-group .acf-field-object .handle .acf-admin-page li, .acf-admin-page .post-type-acf-field-group .acf-thead li, .post-type-acf-field-group .acf-thead .acf-admin-page li, .acf-admin-page .acf-input .select2-container.-acf .select2-selection__rendered, .acf-admin-page .button, .acf-admin-page input[type=text], +.acf-admin-page input[type=search], +.acf-admin-page input[type=number], +.acf-admin-page textarea, +.acf-admin-page select { + font-size: 13px; +} +.acf-admin-page .p5, .acf-admin-page .acf-field-setting-display_format .acf-radio-list li label code, .acf-field-setting-display_format .acf-radio-list li label .acf-admin-page code, +.acf-admin-page .acf-field-setting-return_format .acf-radio-list li label code, +.acf-field-setting-return_format .acf-radio-list li label .acf-admin-page code, .acf-admin-page .acf-field-group-settings-footer .acf-created-on, .acf-field-group-settings-footer .acf-admin-page .acf-created-on, .acf-admin-page .acf-fields .acf-field-settings-tab-bar li a, .acf-fields .acf-field-settings-tab-bar li .acf-admin-page a, +.acf-admin-page .acf-fields .acf-tab-wrap .acf-tab-group li a, +.acf-fields .acf-tab-wrap .acf-tab-group li .acf-admin-page a, +.acf-admin-page.acf-internal-post-type .acf-field-settings-tab-bar li a, +.acf-admin-page.acf-internal-post-type .acf-tab-wrap .acf-tab-group li a, +.acf-admin-page .acf-browse-fields-modal-wrap .acf-field-settings-tab-bar li a, +.acf-browse-fields-modal-wrap .acf-field-settings-tab-bar li .acf-admin-page a, +.acf-admin-page .acf-browse-fields-modal-wrap .acf-tab-wrap .acf-tab-group li a, +.acf-browse-fields-modal-wrap .acf-tab-wrap .acf-tab-group li .acf-admin-page a { + font-size: 12.5px; +} +.acf-admin-page .p6, .acf-admin-page .post-type-acf-field-group #acf-field-group-fields .acf-field-list.-empty .no-fields-message .no-fields-message-inner p.acf-small, .post-type-acf-field-group #acf-field-group-fields .acf-field-list.-empty .no-fields-message .no-fields-message-inner .acf-admin-page p.acf-small, .acf-admin-page .post-type-acf-field-group .acf-field-object .handle li.li-field-label .row-options a, .post-type-acf-field-group .acf-field-object .handle li.li-field-label .row-options .acf-admin-page a, .acf-admin-page .acf-small { + font-size: 12px; +} +.acf-admin-page .p7 { + font-size: 11.5px; +} +.acf-admin-page .p8 { + font-size: 11px; +} + +/*--------------------------------------------------------------------------------------------- +* +* Page titles +* +*---------------------------------------------------------------------------------------------*/ +.acf-page-title { + color: #344054; +} + +/*--------------------------------------------------------------------------------------------- +* +* Hide old / native WP titles from pages +* +*---------------------------------------------------------------------------------------------*/ +.acf-admin-page .acf-settings-wrap h1 { + display: none !important; +} +.acf-admin-page #acf-admin-tools h1:not(.acf-field-group-pro-features-title, .acf-field-group-pro-features-title-sm) { + display: none !important; +} + +/*--------------------------------------------------------------------------------------------- +* +* Small +* +*---------------------------------------------------------------------------------------------*/ +/*--------------------------------------------------------------------------------------------- +* +* Link focus style +* +*---------------------------------------------------------------------------------------------*/ +.acf-admin-page a:focus { + box-shadow: none; + outline: none; +} +.acf-admin-page a:focus-visible { + box-shadow: 0 0 0 1px #4f94d4, 0 0 2px 1px rgba(79, 148, 212, 0.8); + outline: 1px solid transparent; +} + +.acf-admin-page { + /*--------------------------------------------------------------------------------------------- + * + * All Inputs + * + *---------------------------------------------------------------------------------------------*/ + /*--------------------------------------------------------------------------------------------- + * + * Read only text inputs + * + *---------------------------------------------------------------------------------------------*/ + /*--------------------------------------------------------------------------------------------- + * + * Number fields + * + *---------------------------------------------------------------------------------------------*/ + /*--------------------------------------------------------------------------------------------- + * + * Textarea + * + *---------------------------------------------------------------------------------------------*/ + /*--------------------------------------------------------------------------------------------- + * + * Select + * + *---------------------------------------------------------------------------------------------*/ + /*--------------------------------------------------------------------------------------------- + * + * Radio Button & Checkbox base styling + * + *---------------------------------------------------------------------------------------------*/ + /*--------------------------------------------------------------------------------------------- + * + * Radio Buttons + * + *---------------------------------------------------------------------------------------------*/ + /*--------------------------------------------------------------------------------------------- + * + * Checkboxes + * + *---------------------------------------------------------------------------------------------*/ + /*--------------------------------------------------------------------------------------------- + * + * Radio Buttons & Checkbox lists + * + *---------------------------------------------------------------------------------------------*/ + /*--------------------------------------------------------------------------------------------- + * + * ACF Switch + * + *---------------------------------------------------------------------------------------------*/ + /*--------------------------------------------------------------------------------------------- + * + * File input button + * + *---------------------------------------------------------------------------------------------*/ + /*--------------------------------------------------------------------------------------------- + * + * Action Buttons + * + *---------------------------------------------------------------------------------------------*/ + /*--------------------------------------------------------------------------------------------- + * + * Edit field group header + * + *---------------------------------------------------------------------------------------------*/ + /*--------------------------------------------------------------------------------------------- + * + * Select2 inputs + * + *---------------------------------------------------------------------------------------------*/ + /*--------------------------------------------------------------------------------------------- + * + * ACF label + * + *---------------------------------------------------------------------------------------------*/ + /*--------------------------------------------------------------------------------------------- + * + * Tooltip for field name field setting (result of a fix for keyboard navigation) + * + *---------------------------------------------------------------------------------------------*/ + /* Field Type Selection select2 */ + /*--------------------------------------------------------------------------------------------- + * + * RTL arrow position + * + *---------------------------------------------------------------------------------------------*/ +} +.acf-admin-page input[type=text], +.acf-admin-page input[type=search], +.acf-admin-page input[type=number], +.acf-admin-page textarea, +.acf-admin-page select { + box-sizing: border-box; + height: 40px; + padding-right: 12px; + padding-left: 12px; + background-color: #fff; + border-color: #D0D5DD; + box-shadow: 0px 1px 2px rgba(16, 24, 40, 0.1); + border-radius: 6px; + color: #344054; +} +.acf-admin-page input[type=text]:focus, +.acf-admin-page input[type=search]:focus, +.acf-admin-page input[type=number]:focus, +.acf-admin-page textarea:focus, +.acf-admin-page select:focus { + outline: 3px solid #EBF5FA; + border-color: #399CCB; +} +.acf-admin-page input[type=text]:disabled, +.acf-admin-page input[type=search]:disabled, +.acf-admin-page input[type=number]:disabled, +.acf-admin-page textarea:disabled, +.acf-admin-page select:disabled { + background-color: #F9FAFB; + color: #808a9e; +} +.acf-admin-page input[type=text]::placeholder, +.acf-admin-page input[type=search]::placeholder, +.acf-admin-page input[type=number]::placeholder, +.acf-admin-page textarea::placeholder, +.acf-admin-page select::placeholder { + color: #98A2B3; +} +.acf-admin-page input[type=text]:read-only { + background-color: #F9FAFB; + color: #98A2B3; +} +.acf-admin-page .acf-field.acf-field-number .acf-label, +.acf-admin-page .acf-field.acf-field-number .acf-input input[type=number] { + max-width: 180px; +} +.acf-admin-page textarea { + box-sizing: border-box; + padding-top: 10px; + padding-bottom: 10px; + height: 80px; + min-height: 56px; +} +.acf-admin-page select { + min-width: 160px; + max-width: 100%; + padding-right: 40px; + padding-left: 12px; + background-image: url("../../images/icons/icon-chevron-down.svg"); + background-position: right 10px top 50%; + background-size: 20px; +} +.acf-admin-page select:hover, .acf-admin-page select:focus { + color: #0783BE; +} +.acf-admin-page select::before { + content: ""; + display: block; + position: absolute; + top: 5px; + left: 5px; + width: 20px; + height: 20px; +} +.acf-admin-page.rtl select { + padding-right: 12px; + padding-left: 40px; + background-position: left 10px top 50%; +} +.acf-admin-page input[type=radio], +.acf-admin-page input[type=checkbox] { + box-sizing: border-box; + width: 16px; + height: 16px; + padding: 0; + border-width: 1px; + border-style: solid; + border-color: #98A2B3; + background: #fff; + box-shadow: none; +} +.acf-admin-page input[type=radio]:hover, +.acf-admin-page input[type=checkbox]:hover { + background-color: #EBF5FA; + border-color: #0783BE; +} +.acf-admin-page input[type=radio]:checked, .acf-admin-page input[type=radio]:focus-visible, +.acf-admin-page input[type=checkbox]:checked, +.acf-admin-page input[type=checkbox]:focus-visible { + background-color: #EBF5FA; + border-color: #0783BE; +} +.acf-admin-page input[type=radio]:checked:before, .acf-admin-page input[type=radio]:focus-visible:before, +.acf-admin-page input[type=checkbox]:checked:before, +.acf-admin-page input[type=checkbox]:focus-visible:before { + content: ""; + position: relative; + top: -1px; + left: -1px; + width: 16px; + height: 16px; + margin: 0; + padding: 0; + background-color: transparent; + background-size: cover; + background-repeat: no-repeat; + background-position: center; +} +.acf-admin-page input[type=radio]:active, +.acf-admin-page input[type=checkbox]:active { + box-shadow: 0px 0px 0px 3px #EBF5FA, 0px 0px 0px rgba(255, 54, 54, 0.25); +} +.acf-admin-page input[type=radio]:disabled, +.acf-admin-page input[type=checkbox]:disabled { + background-color: #F9FAFB; + border-color: #D0D5DD; +} +.acf-admin-page.rtl input[type=radio]:checked:before, .acf-admin-page.rtl input[type=radio]:focus-visible:before, +.acf-admin-page.rtl input[type=checkbox]:checked:before, +.acf-admin-page.rtl input[type=checkbox]:focus-visible:before { + left: 1px; +} +.acf-admin-page input[type=radio]:checked:before, .acf-admin-page input[type=radio]:focus:before { + background-image: url("../../images/field-states/radio-active.svg"); +} +.acf-admin-page input[type=checkbox]:checked:before, .acf-admin-page input[type=checkbox]:focus:before { + background-image: url("../../images/field-states/checkbox-active.svg"); +} +.acf-admin-page .acf-radio-list li input[type=radio], +.acf-admin-page .acf-radio-list li input[type=checkbox], +.acf-admin-page .acf-checkbox-list li input[type=radio], +.acf-admin-page .acf-checkbox-list li input[type=checkbox] { + margin-right: 6px; +} +.acf-admin-page .acf-radio-list.acf-bl li, +.acf-admin-page .acf-checkbox-list.acf-bl li { + margin-bottom: 8px; +} +.acf-admin-page .acf-radio-list.acf-bl li:last-of-type, +.acf-admin-page .acf-checkbox-list.acf-bl li:last-of-type { + margin-bottom: 0; +} +.acf-admin-page .acf-radio-list label, +.acf-admin-page .acf-checkbox-list label { + display: flex; + align-items: center; + align-content: center; +} +.acf-admin-page .acf-switch { + width: 42px; + height: 24px; + border: none; + background-color: #D0D5DD; + border-radius: 12px; +} +.acf-admin-page .acf-switch:hover { + background-color: #98A2B3; +} +.acf-admin-page .acf-switch:active { + box-shadow: 0px 0px 0px 3px #EBF5FA, 0px 0px 0px rgba(255, 54, 54, 0.25); +} +.acf-admin-page .acf-switch.-on { + background-color: #0783BE; +} +.acf-admin-page .acf-switch.-on:hover { + background-color: #066998; +} +.acf-admin-page .acf-switch.-on .acf-switch-slider { + left: 20px; +} +.acf-admin-page .acf-switch .acf-switch-off, +.acf-admin-page .acf-switch .acf-switch-on { + visibility: hidden; +} +.acf-admin-page .acf-switch .acf-switch-slider { + width: 20px; + height: 20px; + border: none; + border-radius: 100px; + box-shadow: 0px 1px 3px rgba(16, 24, 40, 0.1), 0px 1px 2px rgba(16, 24, 40, 0.06); +} +.acf-admin-page .acf-field-true-false { + display: flex; + align-items: flex-start; +} +.acf-admin-page .acf-field-true-false .acf-label { + order: 2; + display: block; + align-items: center; + margin-top: 2px; + margin-bottom: 0; + margin-left: 12px; +} +.acf-admin-page .acf-field-true-false .acf-label label { + margin-bottom: 0; +} +.acf-admin-page .acf-field-true-false .acf-label .acf-tip { + margin-left: 12px; +} +.acf-admin-page .acf-field-true-false .acf-label .description { + display: block; + margin-top: 2px; + margin-left: 0; +} +.acf-admin-page.rtl .acf-field-true-false .acf-label { + margin-right: 12px; + margin-left: 0; +} +.acf-admin-page.rtl .acf-field-true-false .acf-tip { + margin-right: 12px; + margin-left: 0; +} +.acf-admin-page input::file-selector-button { + box-sizing: border-box; + min-height: 40px; + margin-right: 16px; + padding-top: 8px; + padding-right: 16px; + padding-bottom: 8px; + padding-left: 16px; + background-color: transparent; + color: #0783BE !important; + border-radius: 6px; + border-width: 1px; + border-style: solid; + border-color: #0783BE; + text-decoration: none; +} +.acf-admin-page input::file-selector-button:hover { + border-color: #066998; + cursor: pointer; + color: #066998 !important; +} +.acf-admin-page .button { + display: inline-flex; + align-items: center; + height: 40px; + padding-right: 16px; + padding-left: 16px; + background-color: transparent; + border-width: 1px; + border-style: solid; + border-color: #0783BE; + border-radius: 6px; + color: #0783BE; +} +.acf-admin-page .button:hover { + background-color: #f3f9fc; + border-color: #0783BE; + color: #0783BE; +} +.acf-admin-page .button:focus { + background-color: #f3f9fc; + outline: 3px solid #EBF5FA; + color: #0783BE; +} +.acf-admin-page .edit-field-group-header { + display: block !important; +} +.acf-admin-page .acf-input .select2-container.-acf .select2-selection { + border: none; + line-height: 1; +} +.acf-admin-page .acf-input .select2-container.-acf .select2-selection__rendered { + box-sizing: border-box; + padding-right: 0; + padding-left: 0; + background-color: #fff; + border-width: 1px; + border-style: solid; + border-color: #D0D5DD; + box-shadow: 0px 1px 2px rgba(16, 24, 40, 0.1); + border-radius: 6px; + color: #344054; +} +.acf-admin-page .acf-input .select2-container--focus { + outline: 3px solid #EBF5FA; + border-color: #399CCB; + border-radius: 6px; +} +.acf-admin-page .acf-input .select2-container--focus .select2-selection__rendered { + border-color: #399CCB !important; +} +.acf-admin-page .acf-input .select2-container--focus.select2-container--below.select2-container--open .select2-selection__rendered { + border-bottom-right-radius: 0 !important; + border-bottom-left-radius: 0 !important; +} +.acf-admin-page .acf-input .select2-container--focus.select2-container--above.select2-container--open .select2-selection__rendered { + border-top-right-radius: 0 !important; + border-top-left-radius: 0 !important; +} +.acf-admin-page .acf-input .select2-container .select2-search--inline .select2-search__field { + margin: 0; + padding-left: 6px; +} +.acf-admin-page .acf-input .select2-container .select2-search--inline .select2-search__field:focus { + outline: none; + border: none; +} +.acf-admin-page .acf-input .select2-container--default .select2-selection--multiple .select2-selection__rendered { + padding-top: 0; + padding-right: 6px; + padding-bottom: 0; + padding-left: 6px; +} +.acf-admin-page .acf-input .select2-selection__clear { + width: 18px; + height: 18px; + margin-top: 12px; + margin-right: 1px; + text-indent: 100%; + white-space: nowrap; + overflow: hidden; + color: #fff; +} +.acf-admin-page .acf-input .select2-selection__clear:before { + content: ""; + display: block; + width: 16px; + height: 16px; + top: 0; + left: 0; + border: none; + border-radius: 0; + -webkit-mask-size: contain; + mask-size: contain; + -webkit-mask-repeat: no-repeat; + mask-repeat: no-repeat; + -webkit-mask-position: center; + mask-position: center; + -webkit-mask-image: url("../../images/icons/icon-close.svg"); + mask-image: url("../../images/icons/icon-close.svg"); + background-color: #98A2B3; +} +.acf-admin-page .acf-input .select2-selection__clear:hover::before { + background-color: #0783BE; +} +.acf-admin-page .acf-label { + display: flex; + align-items: center; + justify-content: space-between; +} +.acf-admin-page .acf-label .acf-icon-help { + width: 18px; + height: 18px; + background-color: #98A2B3; +} +.acf-admin-page .acf-label label { + margin-bottom: 0; +} +.acf-admin-page .acf-label .description { + margin-top: 2px; +} +.acf-admin-page .acf-field-setting-name .acf-tip { + position: absolute; + top: 0; + left: 654px; + color: #98A2B3; +} +.rtl.acf-admin-page .acf-field-setting-name .acf-tip { + left: auto; + right: 654px; +} + +.acf-admin-page .acf-field-setting-name .acf-tip .acf-icon-help { + width: 18px; + height: 18px; +} +.acf-admin-page .acf-field-setting-type .select2-container.-acf, +.acf-admin-page .acf-field-permalink-rewrite .select2-container.-acf, +.acf-admin-page .acf-field-query-var .select2-container.-acf, +.acf-admin-page .acf-field-manage-terms .select2-container.-acf, +.acf-admin-page .acf-field-edit-terms .select2-container.-acf, +.acf-admin-page .acf-field-delete-terms .select2-container.-acf, +.acf-admin-page .acf-field-assign-terms .select2-container.-acf, +.acf-admin-page .acf-field-meta-box .select2-container.-acf { + min-height: 40px; +} +.acf-admin-page .acf-field-setting-type .select2-container--default .select2-selection--single .select2-selection__rendered, +.acf-admin-page .acf-field-permalink-rewrite .select2-container--default .select2-selection--single .select2-selection__rendered, +.acf-admin-page .acf-field-query-var .select2-container--default .select2-selection--single .select2-selection__rendered, +.acf-admin-page .acf-field-manage-terms .select2-container--default .select2-selection--single .select2-selection__rendered, +.acf-admin-page .acf-field-edit-terms .select2-container--default .select2-selection--single .select2-selection__rendered, +.acf-admin-page .acf-field-delete-terms .select2-container--default .select2-selection--single .select2-selection__rendered, +.acf-admin-page .acf-field-assign-terms .select2-container--default .select2-selection--single .select2-selection__rendered, +.acf-admin-page .acf-field-meta-box .select2-container--default .select2-selection--single .select2-selection__rendered { + display: flex; + align-items: center; + position: relative; + z-index: 800; + min-height: 40px; + padding-top: 0; + padding-right: 12px; + padding-bottom: 0; + padding-left: 12px; +} +.acf-admin-page .acf-field-setting-type .select2-container--default .select2-selection--single .field-type-icon, +.acf-admin-page .acf-field-permalink-rewrite .select2-container--default .select2-selection--single .field-type-icon, +.acf-admin-page .acf-field-query-var .select2-container--default .select2-selection--single .field-type-icon, +.acf-admin-page .acf-field-manage-terms .select2-container--default .select2-selection--single .field-type-icon, +.acf-admin-page .acf-field-edit-terms .select2-container--default .select2-selection--single .field-type-icon, +.acf-admin-page .acf-field-delete-terms .select2-container--default .select2-selection--single .field-type-icon, +.acf-admin-page .acf-field-assign-terms .select2-container--default .select2-selection--single .field-type-icon, +.acf-admin-page .acf-field-meta-box .select2-container--default .select2-selection--single .field-type-icon { + top: auto; + width: 18px; + height: 18px; + margin-right: 2px; +} +.acf-admin-page .acf-field-setting-type .select2-container--default .select2-selection--single .field-type-icon:before, +.acf-admin-page .acf-field-permalink-rewrite .select2-container--default .select2-selection--single .field-type-icon:before, +.acf-admin-page .acf-field-query-var .select2-container--default .select2-selection--single .field-type-icon:before, +.acf-admin-page .acf-field-manage-terms .select2-container--default .select2-selection--single .field-type-icon:before, +.acf-admin-page .acf-field-edit-terms .select2-container--default .select2-selection--single .field-type-icon:before, +.acf-admin-page .acf-field-delete-terms .select2-container--default .select2-selection--single .field-type-icon:before, +.acf-admin-page .acf-field-assign-terms .select2-container--default .select2-selection--single .field-type-icon:before, +.acf-admin-page .acf-field-meta-box .select2-container--default .select2-selection--single .field-type-icon:before { + width: 9px; + height: 9px; +} +.acf-admin-page .acf-field-setting-type .select2-container--open .select2-selection__rendered, +.acf-admin-page .acf-field-permalink-rewrite .select2-container--open .select2-selection__rendered, +.acf-admin-page .acf-field-query-var .select2-container--open .select2-selection__rendered, +.acf-admin-page .acf-field-manage-terms .select2-container--open .select2-selection__rendered, +.acf-admin-page .acf-field-edit-terms .select2-container--open .select2-selection__rendered, +.acf-admin-page .acf-field-delete-terms .select2-container--open .select2-selection__rendered, +.acf-admin-page .acf-field-assign-terms .select2-container--open .select2-selection__rendered, +.acf-admin-page .acf-field-meta-box .select2-container--open .select2-selection__rendered { + border-color: #6BB5D8 !important; + border-bottom-color: #D0D5DD !important; +} +.acf-admin-page .acf-field-setting-type .select2-container--open.select2-container--below .select2-selection__rendered, +.acf-admin-page .acf-field-permalink-rewrite .select2-container--open.select2-container--below .select2-selection__rendered, +.acf-admin-page .acf-field-query-var .select2-container--open.select2-container--below .select2-selection__rendered, +.acf-admin-page .acf-field-manage-terms .select2-container--open.select2-container--below .select2-selection__rendered, +.acf-admin-page .acf-field-edit-terms .select2-container--open.select2-container--below .select2-selection__rendered, +.acf-admin-page .acf-field-delete-terms .select2-container--open.select2-container--below .select2-selection__rendered, +.acf-admin-page .acf-field-assign-terms .select2-container--open.select2-container--below .select2-selection__rendered, +.acf-admin-page .acf-field-meta-box .select2-container--open.select2-container--below .select2-selection__rendered { + border-bottom-right-radius: 0 !important; + border-bottom-left-radius: 0 !important; +} +.acf-admin-page .acf-field-setting-type .select2-container--open.select2-container--above .select2-selection__rendered, +.acf-admin-page .acf-field-permalink-rewrite .select2-container--open.select2-container--above .select2-selection__rendered, +.acf-admin-page .acf-field-query-var .select2-container--open.select2-container--above .select2-selection__rendered, +.acf-admin-page .acf-field-manage-terms .select2-container--open.select2-container--above .select2-selection__rendered, +.acf-admin-page .acf-field-edit-terms .select2-container--open.select2-container--above .select2-selection__rendered, +.acf-admin-page .acf-field-delete-terms .select2-container--open.select2-container--above .select2-selection__rendered, +.acf-admin-page .acf-field-assign-terms .select2-container--open.select2-container--above .select2-selection__rendered, +.acf-admin-page .acf-field-meta-box .select2-container--open.select2-container--above .select2-selection__rendered { + border-top-right-radius: 0 !important; + border-top-left-radius: 0 !important; + border-bottom-color: #6BB5D8 !important; + border-top-color: #D0D5DD !important; +} +.acf-admin-page .acf-field-setting-type .acf-selection.has-icon, +.acf-admin-page .acf-field-permalink-rewrite .acf-selection.has-icon, +.acf-admin-page .acf-field-query-var .acf-selection.has-icon, +.acf-admin-page .acf-field-manage-terms .acf-selection.has-icon, +.acf-admin-page .acf-field-edit-terms .acf-selection.has-icon, +.acf-admin-page .acf-field-delete-terms .acf-selection.has-icon, +.acf-admin-page .acf-field-assign-terms .acf-selection.has-icon, +.acf-admin-page .acf-field-meta-box .acf-selection.has-icon { + margin-left: 6px; +} +.rtl.acf-admin-page .acf-field-setting-type .acf-selection.has-icon, .acf-admin-page .acf-field-permalink-rewrite .acf-selection.has-icon, .acf-admin-page .acf-field-query-var .acf-selection.has-icon, .acf-admin-page .acf-field-manage-terms .acf-selection.has-icon, .acf-admin-page .acf-field-edit-terms .acf-selection.has-icon, .acf-admin-page .acf-field-delete-terms .acf-selection.has-icon, .acf-admin-page .acf-field-assign-terms .acf-selection.has-icon, .acf-admin-page .acf-field-meta-box .acf-selection.has-icon { + margin-right: 6px; +} + +.acf-admin-page .acf-field-setting-type .select2-selection__arrow, +.acf-admin-page .acf-field-permalink-rewrite .select2-selection__arrow, +.acf-admin-page .acf-field-query-var .select2-selection__arrow, +.acf-admin-page .acf-field-manage-terms .select2-selection__arrow, +.acf-admin-page .acf-field-edit-terms .select2-selection__arrow, +.acf-admin-page .acf-field-delete-terms .select2-selection__arrow, +.acf-admin-page .acf-field-assign-terms .select2-selection__arrow, +.acf-admin-page .acf-field-meta-box .select2-selection__arrow { + width: 20px; + height: 20px; + top: calc(50% - 10px); + right: 12px; + background-color: transparent; +} +.acf-admin-page .acf-field-setting-type .select2-selection__arrow:after, +.acf-admin-page .acf-field-permalink-rewrite .select2-selection__arrow:after, +.acf-admin-page .acf-field-query-var .select2-selection__arrow:after, +.acf-admin-page .acf-field-manage-terms .select2-selection__arrow:after, +.acf-admin-page .acf-field-edit-terms .select2-selection__arrow:after, +.acf-admin-page .acf-field-delete-terms .select2-selection__arrow:after, +.acf-admin-page .acf-field-assign-terms .select2-selection__arrow:after, +.acf-admin-page .acf-field-meta-box .select2-selection__arrow:after { + content: ""; + display: block; + position: absolute; + z-index: 850; + top: 1px; + left: 0; + width: 20px; + height: 20px; + -webkit-mask-image: url("../../images/icons/icon-chevron-down.svg"); + mask-image: url("../../images/icons/icon-chevron-down.svg"); + background-color: #667085; + border: none; + border-radius: 0; + -webkit-mask-size: contain; + mask-size: contain; + -webkit-mask-repeat: no-repeat; + mask-repeat: no-repeat; + -webkit-mask-position: center; + mask-position: center; + text-indent: 500%; + white-space: nowrap; + overflow: hidden; +} +.acf-admin-page .acf-field-setting-type .select2-selection__arrow b[role=presentation], +.acf-admin-page .acf-field-permalink-rewrite .select2-selection__arrow b[role=presentation], +.acf-admin-page .acf-field-query-var .select2-selection__arrow b[role=presentation], +.acf-admin-page .acf-field-manage-terms .select2-selection__arrow b[role=presentation], +.acf-admin-page .acf-field-edit-terms .select2-selection__arrow b[role=presentation], +.acf-admin-page .acf-field-delete-terms .select2-selection__arrow b[role=presentation], +.acf-admin-page .acf-field-assign-terms .select2-selection__arrow b[role=presentation], +.acf-admin-page .acf-field-meta-box .select2-selection__arrow b[role=presentation] { + display: none; +} +.acf-admin-page .acf-field-setting-type .select2-container--open .select2-selection__arrow:after, +.acf-admin-page .acf-field-permalink-rewrite .select2-container--open .select2-selection__arrow:after, +.acf-admin-page .acf-field-query-var .select2-container--open .select2-selection__arrow:after, +.acf-admin-page .acf-field-manage-terms .select2-container--open .select2-selection__arrow:after, +.acf-admin-page .acf-field-edit-terms .select2-container--open .select2-selection__arrow:after, +.acf-admin-page .acf-field-delete-terms .select2-container--open .select2-selection__arrow:after, +.acf-admin-page .acf-field-assign-terms .select2-container--open .select2-selection__arrow:after, +.acf-admin-page .acf-field-meta-box .select2-container--open .select2-selection__arrow:after { + -webkit-mask-image: url("../../images/icons/icon-chevron-up.svg"); + mask-image: url("../../images/icons/icon-chevron-up.svg"); +} +.acf-admin-page .field-type-select-results { + position: relative; + top: 4px; + z-index: 1002; + border-radius: 0 0 6px 6px; + box-shadow: 0px 8px 24px 4px rgba(16, 24, 40, 0.12); +} +.acf-admin-page .field-type-select-results.select2-dropdown--above { + display: flex; + flex-direction: column-reverse; + top: 0; + border-radius: 6px 6px 0 0; + z-index: 1030; +} +.select2-container.select2-container--open.acf-admin-page .field-type-select-results { + box-shadow: 0px 0px 0px 3px #EBF5FA, 0px 8px 24px 4px rgba(16, 24, 40, 0.12); +} + +.acf-admin-page .field-type-select-results .acf-selection.has-icon { + margin-left: 6px; +} +.rtl.acf-admin-page .field-type-select-results .acf-selection.has-icon { + margin-right: 6px; +} + +.acf-admin-page .field-type-select-results .select2-search { + position: relative; + margin: 0; + padding: 0; +} +.acf-admin-page .field-type-select-results .select2-search--dropdown:after { + content: ""; + display: block; + position: absolute; + top: 12px; + left: 13px; + width: 16px; + height: 16px; + -webkit-mask-image: url("../../images/icons/icon-search.svg"); + mask-image: url("../../images/icons/icon-search.svg"); + background-color: #98A2B3; + border: none; + border-radius: 0; + -webkit-mask-size: contain; + mask-size: contain; + -webkit-mask-repeat: no-repeat; + mask-repeat: no-repeat; + -webkit-mask-position: center; + mask-position: center; + text-indent: 500%; + white-space: nowrap; + overflow: hidden; +} +.rtl.acf-admin-page .field-type-select-results .select2-search--dropdown:after { + right: 12px; + left: auto; +} + +.acf-admin-page .field-type-select-results .select2-search .select2-search__field { + padding-left: 38px; + border-right: 0; + border-bottom: 0; + border-left: 0; + border-radius: 0; +} +.rtl.acf-admin-page .field-type-select-results .select2-search .select2-search__field { + padding-right: 38px; + padding-left: 0; +} + +.acf-admin-page .field-type-select-results .select2-search .select2-search__field:focus { + border-top-color: #D0D5DD; + outline: 0; +} +.acf-admin-page .field-type-select-results .select2-results__options { + max-height: 440px; +} +.acf-admin-page .field-type-select-results .select2-results__option .select2-results__option--highlighted { + background-color: #0783BE !important; + color: #F9FAFB !important; +} +.acf-admin-page .field-type-select-results .select2-results__option .select2-results__option { + display: inline-flex; + position: relative; + width: calc(100% - 24px); + min-height: 32px; + padding-top: 0; + padding-right: 12px; + padding-bottom: 0; + padding-left: 12px; + align-items: center; +} +.acf-admin-page .field-type-select-results .select2-results__option .select2-results__option .field-type-icon { + top: auto; + width: 18px; + height: 18px; + margin-right: 2px; + box-shadow: 0 0 0 1px #F9FAFB; +} +.acf-admin-page .field-type-select-results .select2-results__option .select2-results__option .field-type-icon:before { + width: 9px; + height: 9px; +} +.acf-admin-page .field-type-select-results .select2-results__option[aria-selected=true] { + background-color: #EBF5FA !important; + color: #344054 !important; +} +.acf-admin-page .field-type-select-results .select2-results__option[aria-selected=true]:after { + content: ""; + right: 13px; + position: absolute; + width: 16px; + height: 16px; + -webkit-mask-image: url("../../images/icons/icon-check.svg"); + mask-image: url("../../images/icons/icon-check.svg"); + background-color: #0783BE; + border: none; + border-radius: 0; + -webkit-mask-size: contain; + mask-size: contain; + -webkit-mask-repeat: no-repeat; + mask-repeat: no-repeat; + -webkit-mask-position: center; + mask-position: center; + text-indent: 500%; + white-space: nowrap; + overflow: hidden; +} +.rtl.acf-admin-page .field-type-select-results .select2-results__option[aria-selected=true]:after { + left: 13px; + right: auto; +} + +.acf-admin-page .field-type-select-results .select2-results__group { + display: inline-flex; + align-items: center; + width: calc(100% - 24px); + min-height: 25px; + background-color: #F9FAFB; + border-top-width: 1px; + border-top-style: solid; + border-top-color: #EAECF0; + border-bottom-width: 1px; + border-bottom-style: solid; + border-bottom-color: #EAECF0; + color: #98A2B3; + font-size: 11px; + margin-bottom: 0; + padding-top: 0; + padding-right: 12px; + padding-bottom: 0; + padding-left: 12px; + font-weight: normal; +} +.acf-admin-page.rtl .acf-field-setting-type .select2-selection__arrow:after, +.acf-admin-page.rtl .acf-field-permalink-rewrite .select2-selection__arrow:after, +.acf-admin-page.rtl .acf-field-query-var .select2-selection__arrow:after { + right: auto; + left: 10px; +} + +.rtl.post-type-acf-field-group .acf-field-setting-name .acf-tip, +.rtl.acf-internal-post-type .acf-field-setting-name .acf-tip { + left: auto; + right: 654px; +} + +/*---------------------------------------------------------------------------- +* +* Container sizes +* +*----------------------------------------------------------------------------*/ +.post-type-acf-field-group .metabox-holder.columns-1 #acf-field-group-fields, +.post-type-acf-field-group .metabox-holder.columns-1 #acf-field-group-options, +.post-type-acf-field-group .metabox-holder.columns-1 .meta-box-sortables.ui-sortable, +.post-type-acf-field-group .metabox-holder.columns-1 .notice { + max-width: 1440px; +} + +/*---------------------------------------------------------------------------- +* +* Max width for notices in 1 column edit field group layout +* +*----------------------------------------------------------------------------*/ +.post-type-acf-field-group.columns-1 .notice { + max-width: 1440px; +} + +/*---------------------------------------------------------------------------- +* +* Widen edit field group headerbar for 2 column layout +* +*----------------------------------------------------------------------------*/ +.post-type-acf-field-group.columns-2 .acf-headerbar .acf-headerbar-inner { + max-width: 100%; +} + +/*---------------------------------------------------------------------------- +* +* Post stuff +* +*----------------------------------------------------------------------------*/ +.post-type-acf-field-group #poststuff { + margin-top: 0; + margin-right: 0; + margin-bottom: 0; + margin-left: 0; + padding-top: 0; + padding-right: 0; + padding-bottom: 0; + padding-left: 0; +} + +/*---------------------------------------------------------------------------- +* +* Table +* +*----------------------------------------------------------------------------*/ +.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap { + overflow: hidden; + border: none; + border-radius: 0 0 8px 8px; + box-shadow: 0px 1px 2px rgba(16, 24, 40, 0.1); +} +.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap.-empty { + border-top-width: 1px; + border-top-style: solid; + border-top-color: #EAECF0; +} +.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap.-empty .acf-thead, +.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap.-empty .acf-tfoot { + display: none; +} +.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap.-empty .no-fields-message { + min-height: 280px; +} + +/*---------------------------------------------------------------------------- +* +* Table header +* +*----------------------------------------------------------------------------*/ +.post-type-acf-field-group .acf-thead { + background-color: #F9FAFB; + border-top-width: 1px; + border-top-style: solid; + border-top-color: #EAECF0; + border-bottom-width: 1px; + border-bottom-style: solid; + border-bottom-color: #EAECF0; +} +.post-type-acf-field-group .acf-thead li { + display: flex; + align-items: center; + min-height: 48px; + padding-top: 0; + padding-bottom: 0; + color: #344054; + font-weight: 500; +} + +/*---------------------------------------------------------------------------- +* +* Table body +* +*----------------------------------------------------------------------------*/ +.post-type-acf-field-group .acf-field-object { + border-top-width: 1px; + border-top-style: solid; + border-top-color: #EAECF0; +} +.post-type-acf-field-group .acf-field-object:hover .acf-sortable-handle:before { + display: inline-flex; +} +.post-type-acf-field-group .acf-field-object.acf-field-is-endpoint:before { + display: block; + content: ""; + height: 2px; + width: 100%; + background: #D0D5DD; + margin-top: -1px; +} +.post-type-acf-field-group .acf-field-object.acf-field-is-endpoint.acf-field-object-accordion:before { + display: none; +} +.post-type-acf-field-group .acf-field-object.acf-field-is-endpoint.acf-field-object-accordion:after { + display: block; + content: ""; + height: 2px; + width: 100%; + background: #D0D5DD; + z-index: 500; +} +.post-type-acf-field-group .acf-field-object:hover { + background-color: #f7fbfd; +} +.post-type-acf-field-group .acf-field-object.open { + background-color: #fff; + border-top-color: #A5D2E7; +} +.post-type-acf-field-group .acf-field-object.open .handle { + background-color: #D8EBF5; + border: none; + text-shadow: none; +} +.post-type-acf-field-group .acf-field-object.open .handle a { + color: #0783BE !important; +} +.post-type-acf-field-group .acf-field-object.open .handle a.delete-field { + color: #a00 !important; +} +.post-type-acf-field-group .acf-field-object .acf-field-setting-type .acf-hl { + margin: 0; +} +.post-type-acf-field-group .acf-field-object .acf-field-setting-type .acf-hl li { + width: auto; +} +.post-type-acf-field-group .acf-field-object .acf-field-setting-type .acf-hl li:first-child { + flex-grow: 1; + margin-left: -10px; +} +.post-type-acf-field-group .acf-field-object .acf-field-setting-type .acf-hl li:nth-child(2) { + padding-right: 0; +} +.post-type-acf-field-group .acf-field-object ul.acf-hl { + display: flex; + align-items: stretch; +} +.post-type-acf-field-group .acf-field-object .handle li { + display: flex; + align-items: top; + flex-wrap: wrap; + min-height: 60px; + color: #344054; +} +.post-type-acf-field-group .acf-field-object .handle li.li-field-label { + display: flex; + flex-wrap: wrap; + justify-content: flex-start; + align-content: flex-start; + align-items: flex-start; + width: auto; +} +.post-type-acf-field-group .acf-field-object .handle li.li-field-label strong { + font-weight: 500; +} +.post-type-acf-field-group .acf-field-object .handle li.li-field-label .row-options { + width: 100%; +} +/*---------------------------------------------------------------------------- +* +* Table footer +* +*----------------------------------------------------------------------------*/ +.post-type-acf-field-group .acf-tfoot { + display: flex; + align-items: center; + justify-content: flex-end; + min-height: 80px; + box-sizing: border-box; + padding-top: 8px; + padding-right: 24px; + padding-bottom: 8px; + padding-left: 24px; + background-color: #fff; + border-top-width: 1px; + border-top-style: solid; + border-top-color: #EAECF0; +} +.post-type-acf-field-group .acf-tfoot .acf-fr { + margin-top: 0; + margin-right: 0; + margin-bottom: 0; + margin-left: 0; + padding-top: 0; + padding-right: 0; + padding-bottom: 0; + padding-left: 0; +} + +/*---------------------------------------------------------------------------- +* +* Edit field settings +* +*----------------------------------------------------------------------------*/ +.post-type-acf-field-group .acf-field-object .settings { + box-sizing: border-box; + padding-top: 0; + padding-bottom: 0; + background-color: #fff; + border-left-width: 4px; + border-left-style: solid; + border-left-color: #6BB5D8; +} + +/*---------------------------------------------------------------------------- +* +* Main field settings container +* +*----------------------------------------------------------------------------*/ +.acf-field-settings-main { + padding-top: 32px; + padding-right: 0; + padding-bottom: 32px; + padding-left: 0; +} +.acf-field-settings-main .acf-field:last-of-type { + margin-bottom: 0; +} + +/*---------------------------------------------------------------------------- +* +* Field label +* +*----------------------------------------------------------------------------*/ +.acf-field-settings .acf-label { + display: block; + justify-content: space-between; + align-items: center; + align-content: center; + margin-top: 0; + margin-right: 0; + margin-bottom: 6px; + margin-left: 0; +} + +/*---------------------------------------------------------------------------- +* +* Single field +* +*----------------------------------------------------------------------------*/ +.acf-field-settings .acf-field { + box-sizing: border-box; + width: 100%; + margin-top: 0; + margin-right: 0; + margin-bottom: 32px; + margin-left: 0; + padding-top: 0; + padding-right: 72px; + padding-bottom: 0; + padding-left: 72px; +} +@media screen and (max-width: 600px) { + .acf-field-settings .acf-field { + padding-right: 12px; + padding-left: 12px; + } +} +.acf-field-settings .acf-field .acf-label, +.acf-field-settings .acf-field .acf-input { + max-width: 600px; +} +.acf-field-settings .acf-field .acf-label.acf-input-sub, +.acf-field-settings .acf-field .acf-input.acf-input-sub { + max-width: 100%; +} +.acf-field-settings .acf-field .acf-label .acf-btn:disabled, +.acf-field-settings .acf-field .acf-input .acf-btn:disabled { + background-color: #F2F4F7; + color: #98A2B3 !important; + border: 1px #D0D5DD solid; + cursor: default; +} +.acf-field-settings .acf-field .acf-input-wrap { + overflow: visible; +} + +/*---------------------------------------------------------------------------- +* +* Field separators +* +*----------------------------------------------------------------------------*/ +.acf-field-settings .acf-field.acf-field-setting-label, +.acf-field-settings .acf-field-setting-wrapper { + padding-top: 24px; + border-top-width: 1px; + border-top-style: solid; + border-top-color: #EAECF0; +} + +.acf-field-settings .acf-field-setting-wrapper { + margin-top: 24px; +} + +/*---------------------------------------------------------------------------- +* +* Edit fields footer +* +*----------------------------------------------------------------------------*/ +.acf-field-settings .acf-field-settings-footer { + display: flex; + align-items: center; + min-height: 72px; + box-sizing: border-box; + width: 100%; + margin-top: 0; + margin-right: 0; + margin-bottom: 0; + margin-left: 0; + padding-top: 0; + padding-right: 0; + padding-bottom: 0; + padding-left: 72px; + border-top-width: 1px; + border-top-style: solid; + border-top-color: #EAECF0; +} +@media screen and (max-width: 600px) { + .acf-field-settings .acf-field-settings-footer { + padding-left: 12px; + } +} + +.rtl .acf-field-settings .acf-field-settings-footer { + padding-top: 0; + padding-right: 72px; + padding-bottom: 0; + padding-left: 0; +} + +/*---------------------------------------------------------------------------- +* +* Tabs +* +*----------------------------------------------------------------------------*/ +.acf-fields .acf-tab-wrap, +.acf-admin-page.acf-internal-post-type .acf-tab-wrap, +.acf-browse-fields-modal-wrap .acf-tab-wrap { + background: #F9FAFB; + border-bottom-color: #1D2939; +} +.acf-fields .acf-tab-wrap .acf-tab-group, +.acf-admin-page.acf-internal-post-type .acf-tab-wrap .acf-tab-group, +.acf-browse-fields-modal-wrap .acf-tab-wrap .acf-tab-group { + padding-right: 24px; + padding-left: 24px; + border-top-width: 0; + border-bottom-width: 1px; + border-bottom-style: solid; + border-bottom-color: #EAECF0; +} +.acf-fields .acf-field-settings-tab-bar, +.acf-fields .acf-tab-wrap .acf-tab-group, +.acf-admin-page.acf-internal-post-type .acf-field-settings-tab-bar, +.acf-admin-page.acf-internal-post-type .acf-tab-wrap .acf-tab-group, +.acf-browse-fields-modal-wrap .acf-field-settings-tab-bar, +.acf-browse-fields-modal-wrap .acf-tab-wrap .acf-tab-group { + display: flex; + align-items: stretch; + min-height: 48px; + padding-top: 0; + padding-right: 0; + padding-bottom: 0; + padding-left: 24px; + margin-top: 0; + margin-bottom: 0; + border-bottom-width: 1px; + border-bottom-style: solid; + border-bottom-color: #EAECF0; +} +.acf-fields .acf-field-settings-tab-bar li, +.acf-fields .acf-tab-wrap .acf-tab-group li, +.acf-admin-page.acf-internal-post-type .acf-field-settings-tab-bar li, +.acf-admin-page.acf-internal-post-type .acf-tab-wrap .acf-tab-group li, +.acf-browse-fields-modal-wrap .acf-field-settings-tab-bar li, +.acf-browse-fields-modal-wrap .acf-tab-wrap .acf-tab-group li { + display: flex; + margin-top: 0; + margin-right: 24px; + margin-bottom: 0; + margin-left: 0; + padding: 0; +} +.acf-fields .acf-field-settings-tab-bar li a, +.acf-fields .acf-tab-wrap .acf-tab-group li a, +.acf-admin-page.acf-internal-post-type .acf-field-settings-tab-bar li a, +.acf-admin-page.acf-internal-post-type .acf-tab-wrap .acf-tab-group li a, +.acf-browse-fields-modal-wrap .acf-field-settings-tab-bar li a, +.acf-browse-fields-modal-wrap .acf-tab-wrap .acf-tab-group li a { + box-sizing: border-box; + display: inline-flex; + align-items: center; + height: 100%; + padding-top: 3px; + padding-right: 0; + padding-bottom: 0; + padding-left: 0; + background: none; + border-top: none; + border-right: none; + border-bottom-width: 3px; + border-bottom-style: solid; + border-bottom-color: transparent; + border-left: none; + color: #667085; + font-weight: normal; +} +.acf-fields .acf-field-settings-tab-bar li a:focus-visible, +.acf-fields .acf-tab-wrap .acf-tab-group li a:focus-visible, +.acf-admin-page.acf-internal-post-type .acf-field-settings-tab-bar li a:focus-visible, +.acf-admin-page.acf-internal-post-type .acf-tab-wrap .acf-tab-group li a:focus-visible, +.acf-browse-fields-modal-wrap .acf-field-settings-tab-bar li a:focus-visible, +.acf-browse-fields-modal-wrap .acf-tab-wrap .acf-tab-group li a:focus-visible { + border: 1px solid #5897fb; +} +.acf-fields .acf-field-settings-tab-bar li a:hover, +.acf-fields .acf-tab-wrap .acf-tab-group li a:hover, +.acf-admin-page.acf-internal-post-type .acf-field-settings-tab-bar li a:hover, +.acf-admin-page.acf-internal-post-type .acf-tab-wrap .acf-tab-group li a:hover, +.acf-browse-fields-modal-wrap .acf-field-settings-tab-bar li a:hover, +.acf-browse-fields-modal-wrap .acf-tab-wrap .acf-tab-group li a:hover { + color: #1D2939; +} +.acf-fields .acf-field-settings-tab-bar li a:hover, +.acf-fields .acf-tab-wrap .acf-tab-group li a:hover, +.acf-admin-page.acf-internal-post-type .acf-field-settings-tab-bar li a:hover, +.acf-admin-page.acf-internal-post-type .acf-tab-wrap .acf-tab-group li a:hover, +.acf-browse-fields-modal-wrap .acf-field-settings-tab-bar li a:hover, +.acf-browse-fields-modal-wrap .acf-tab-wrap .acf-tab-group li a:hover { + background-color: transparent; +} +.acf-fields .acf-field-settings-tab-bar li.active a, +.acf-fields .acf-tab-wrap .acf-tab-group li.active a, +.acf-admin-page.acf-internal-post-type .acf-field-settings-tab-bar li.active a, +.acf-admin-page.acf-internal-post-type .acf-tab-wrap .acf-tab-group li.active a, +.acf-browse-fields-modal-wrap .acf-field-settings-tab-bar li.active a, +.acf-browse-fields-modal-wrap .acf-tab-wrap .acf-tab-group li.active a { + background: none; + border-bottom-color: #0783BE; + color: #0783BE; +} +.acf-fields .acf-field-settings-tab-bar li.active a:focus-visible, +.acf-fields .acf-tab-wrap .acf-tab-group li.active a:focus-visible, +.acf-admin-page.acf-internal-post-type .acf-field-settings-tab-bar li.active a:focus-visible, +.acf-admin-page.acf-internal-post-type .acf-tab-wrap .acf-tab-group li.active a:focus-visible, +.acf-browse-fields-modal-wrap .acf-field-settings-tab-bar li.active a:focus-visible, +.acf-browse-fields-modal-wrap .acf-tab-wrap .acf-tab-group li.active a:focus-visible { + border-bottom-color: #0783BE; + border-bottom-width: 3px; +} + +.acf-admin-page.acf-internal-post-type .acf-field-editor .acf-field-settings-tab-bar { + padding-left: 72px; +} +@media screen and (max-width: 600px) { + .acf-admin-page.acf-internal-post-type .acf-field-editor .acf-field-settings-tab-bar { + padding-left: 12px; + } +} + +/*---------------------------------------------------------------------------- +* +* Field group settings +* +*----------------------------------------------------------------------------*/ +#acf-field-group-options .field-group-settings-tab { + padding-top: 24px; + padding-right: 24px; + padding-bottom: 24px; + padding-left: 24px; +} +#acf-field-group-options .field-group-settings-tab .acf-field:last-of-type { + padding: 0; +} +#acf-field-group-options .acf-field { + border: none; + margin-top: 0; + margin-right: 0; + margin-bottom: 0; + margin-left: 0; + padding-top: 0; + padding-right: 0; + padding-bottom: 24px; + padding-left: 0; +} +#acf-field-group-options .field-group-setting-split-container { + display: flex; + padding-top: 0; + padding-right: 0; + padding-bottom: 0; + padding-left: 0; +} +#acf-field-group-options .field-group-setting-split-container .field-group-setting-split { + box-sizing: border-box; + padding-top: 24px; + padding-right: 24px; + padding-bottom: 24px; + padding-left: 24px; +} +#acf-field-group-options .field-group-setting-split-container .field-group-setting-split:nth-child(1) { + flex: 1 0 auto; +} +#acf-field-group-options .field-group-setting-split-container .field-group-setting-split:nth-child(2n) { + flex: 1 0 auto; + max-width: 320px; + margin-top: 0; + margin-right: 0; + margin-bottom: 0; + margin-left: 32px; + padding-right: 32px; + padding-left: 32px; + border-left-width: 1px; + border-left-style: solid; + border-left-color: #EAECF0; +} +#acf-field-group-options .acf-field[data-name=description] { + max-width: 600px; +} +#acf-field-group-options .acf-button-group { + display: inline-flex; +} + +.rtl #acf-field-group-options .field-group-setting-split-container .field-group-setting-split:nth-child(2n) { + margin-right: 32px; + margin-left: 0; + border-left: none; + border-right-width: 1px; + border-right-style: solid; + border-right-color: #EAECF0; +} + +/*---------------------------------------------------------------------------- +* +* Reorder handles +* +*----------------------------------------------------------------------------*/ +.acf-field-list .li-field-order { + padding: 0; + display: flex; + flex-direction: row; + flex-wrap: nowrap; + justify-content: center; + align-content: stretch; + align-items: stretch; + background-color: transparent; +} +.acf-field-list .acf-sortable-handle { + display: flex; + flex-direction: row; + flex-wrap: nowrap; + justify-content: center; + align-content: flex-start; + align-items: flex-start; + width: 100%; + height: 100%; + position: relative; + padding-top: 11px; + padding-bottom: 8px; + background-color: transparent; + border: none; + border-radius: 0; +} +.acf-field-list .acf-sortable-handle:hover { + cursor: grab; +} +.acf-field-list .acf-sortable-handle:before { + content: ""; + display: none; + position: absolute; + top: 16px; + left: 8px; + width: 16px; + height: 16px; + width: 12px; + height: 12px; + background-color: #98A2B3; + border: none; + border-radius: 0; + -webkit-mask-size: contain; + mask-size: contain; + -webkit-mask-repeat: no-repeat; + mask-repeat: no-repeat; + -webkit-mask-position: center; + mask-position: center; + text-indent: 500%; + white-space: nowrap; + overflow: hidden; + -webkit-mask-image: url("../../images/icons/icon-draggable.svg"); + mask-image: url("../../images/icons/icon-draggable.svg"); +} + +.rtl .acf-field-list .acf-sortable-handle:before { + left: 0; + right: 8px; +} + +/*---------------------------------------------------------------------------- +* +* Expand / collapse field icon +* +*----------------------------------------------------------------------------*/ +.acf-field-object .li-field-label { + position: relative; + padding-left: 40px; +} +.acf-field-object .li-field-label:before { + content: ""; + display: block; + position: absolute; + left: 6px; + display: inline-flex; + width: 18px; + height: 18px; + margin-top: -2px; + background-color: #667085; + border: none; + border-radius: 0; + -webkit-mask-size: contain; + mask-size: contain; + -webkit-mask-repeat: no-repeat; + mask-repeat: no-repeat; + -webkit-mask-position: center; + mask-position: center; + text-indent: 500%; + white-space: nowrap; + overflow: hidden; + -webkit-mask-image: url("../../images/icons/icon-chevron-down.svg"); + mask-image: url("../../images/icons/icon-chevron-down.svg"); +} +.acf-field-object .li-field-label:hover:before { + cursor: pointer; +} + +.rtl .acf-field-object .li-field-label { + padding-left: 0; + padding-right: 40px; +} +.rtl .acf-field-object .li-field-label:before { + left: 0; + right: 6px; + -webkit-mask-image: url("../../images/icons/icon-chevron-down.svg"); + mask-image: url("../../images/icons/icon-chevron-down.svg"); +} +.rtl .acf-field-object.open .li-field-label:before { + -webkit-mask-image: url("../../images/icons/icon-chevron-down.svg"); + mask-image: url("../../images/icons/icon-chevron-down.svg"); +} +.rtl .acf-field-object.open .acf-input-sub .li-field-label:before { + -webkit-mask-image: url("../../images/icons/icon-chevron-right.svg"); + mask-image: url("../../images/icons/icon-chevron-right.svg"); +} +.rtl .acf-field-object.open .acf-input-sub .acf-field-object.open .li-field-label:before { + -webkit-mask-image: url("../../images/icons/icon-chevron-down.svg"); + mask-image: url("../../images/icons/icon-chevron-down.svg"); +} + +.acf-thead .li-field-label { + padding-left: 40px; +} +.rtl .acf-thead .li-field-label { + padding-left: 0; + padding-right: 40px; +} + +/*---------------------------------------------------------------------------- +* +* Conditional logic layout +* +*----------------------------------------------------------------------------*/ +.acf-field-settings-main-conditional-logic .acf-conditional-toggle { + display: flex; + padding-right: 72px; + padding-left: 72px; +} +@media screen and (max-width: 600px) { + .acf-field-settings-main-conditional-logic .acf-conditional-toggle { + padding-left: 12px; + } +} +.acf-field-settings-main-conditional-logic .acf-field { + flex-wrap: wrap; + margin-bottom: 0; + padding-right: 0; + padding-left: 0; +} +.acf-field-settings-main-conditional-logic .acf-field .rule-groups { + flex: 0 1 100%; + order: 3; + margin-top: 32px; + padding-top: 32px; + padding-right: 72px; + padding-left: 72px; + border-top-width: 1px; + border-top-style: solid; + border-top-color: #EAECF0; +} +@media screen and (max-width: 600px) { + .acf-field-settings-main-conditional-logic .acf-field .rule-groups { + padding-left: 12px; + } + .acf-field-settings-main-conditional-logic .acf-field .rule-groups table.acf-table tbody tr { + display: flex; + flex-wrap: wrap; + justify-content: flex-start; + align-content: flex-start; + align-items: flex-start; + } + .acf-field-settings-main-conditional-logic .acf-field .rule-groups table.acf-table tbody tr td { + flex: 1 1 100%; + } +} + +/*---------------------------------------------------------------------------- +* +* Prefix & append styling +* +*----------------------------------------------------------------------------*/ +.acf-input .acf-input-prepend, +.acf-input .acf-input-append { + display: inline-flex; + align-items: center; + height: 100%; + min-height: 40px; + padding-right: 12px; + padding-left: 12px; + background-color: #F9FAFB; + border-color: #D0D5DD; + box-shadow: 0px 1px 2px rgba(16, 24, 40, 0.1); + color: #667085; +} +.acf-input .acf-input-prepend { + border-radius: 6px 0 0 6px; +} +.acf-input .acf-input-append { + border-radius: 0 6px 6px 0; +} + +/*---------------------------------------------------------------------------- +* +* ACF input wrap +* +*----------------------------------------------------------------------------*/ +.acf-input-wrap { + display: flex; +} + +.acf-field-settings-main-presentation .acf-input-wrap { + display: flex; +} + +/*---------------------------------------------------------------------------- +* +* Empty state +* +*----------------------------------------------------------------------------*/ +.post-type-acf-field-group #acf-field-group-fields .acf-field-list.-empty .no-fields-message { + display: flex; + justify-content: center; + padding-top: 48px; + padding-bottom: 48px; +} +.post-type-acf-field-group #acf-field-group-fields .acf-field-list.-empty .no-fields-message .no-fields-message-inner { + display: flex; + flex-wrap: wrap; + justify-content: center; + align-content: center; + align-items: flex-start; + text-align: center; + max-width: 400px; +} +.post-type-acf-field-group #acf-field-group-fields .acf-field-list.-empty .no-fields-message .no-fields-message-inner img, +.post-type-acf-field-group #acf-field-group-fields .acf-field-list.-empty .no-fields-message .no-fields-message-inner h2, +.post-type-acf-field-group #acf-field-group-fields .acf-field-list.-empty .no-fields-message .no-fields-message-inner p { + flex: 1 0 100%; +} +.post-type-acf-field-group #acf-field-group-fields .acf-field-list.-empty .no-fields-message .no-fields-message-inner h2 { + margin-top: 32px; + margin-bottom: 0; + padding: 0; + color: #344054; +} +.post-type-acf-field-group #acf-field-group-fields .acf-field-list.-empty .no-fields-message .no-fields-message-inner p { + margin-top: 12px; + margin-bottom: 0; + padding: 0; + color: #667085; +} +.post-type-acf-field-group #acf-field-group-fields .acf-field-list.-empty .no-fields-message .no-fields-message-inner p.acf-small { + margin-top: 32px; +} +.post-type-acf-field-group #acf-field-group-fields .acf-field-list.-empty .no-fields-message .no-fields-message-inner img { + max-width: 284px; + margin-bottom: 0; +} +.post-type-acf-field-group #acf-field-group-fields .acf-field-list.-empty .no-fields-message .no-fields-message-inner .acf-btn { + margin-top: 32px; +} + +/*---------------------------------------------------------------------------- +* +* Hide add title prompt label +* +*----------------------------------------------------------------------------*/ +.post-type-acf-field-group .acf-headerbar #title-prompt-text { + display: none; +} + +/*---------------------------------------------------------------------------- +* +* Modal styling +* +*----------------------------------------------------------------------------*/ +.acf-admin-page #acf-popup .acf-popup-box { + min-width: 480px; +} +.acf-admin-page #acf-popup .acf-popup-box .title { + display: flex; + align-items: center; + align-content: center; + justify-content: space-between; + min-height: 64px; + box-sizing: border-box; + margin: 0; + padding-right: 24px; + padding-left: 24px; + border-bottom-width: 1px; + border-bottom-style: solid; + border-bottom-color: #EAECF0; +} +.acf-admin-page #acf-popup .acf-popup-box .title h1, +.acf-admin-page #acf-popup .acf-popup-box .title h2, +.acf-admin-page #acf-popup .acf-popup-box .title h3, +.acf-admin-page #acf-popup .acf-popup-box .title h4 { + padding-left: 0; + color: #344054; +} +.acf-admin-page #acf-popup .acf-popup-box .title .acf-icon { + display: block; + position: relative; + top: auto; + right: auto; + width: 22px; + height: 22px; + background-color: transparent; + color: transparent; +} +.acf-admin-page #acf-popup .acf-popup-box .title .acf-icon:before { + display: inline-flex; + position: absolute; + top: 0; + left: 0; + width: 22px; + height: 22px; + background-color: #667085; + border: none; + border-radius: 0; + -webkit-mask-size: contain; + mask-size: contain; + -webkit-mask-repeat: no-repeat; + mask-repeat: no-repeat; + -webkit-mask-position: center; + mask-position: center; + text-indent: 500%; + white-space: nowrap; + overflow: hidden; + -webkit-mask-image: url("../../images/icons/icon-close-circle.svg"); + mask-image: url("../../images/icons/icon-close-circle.svg"); +} +.acf-admin-page #acf-popup .acf-popup-box .title .acf-icon:hover:before { + background-color: #0783BE; +} +.acf-admin-page #acf-popup .acf-popup-box .inner { + box-sizing: border-box; + margin: 0; + padding-top: 24px; + padding-right: 24px; + padding-bottom: 24px; + padding-left: 24px; + border-top: none; +} +.acf-admin-page #acf-popup .acf-popup-box .inner p { + margin-top: 0; + margin-bottom: 0; +} +.acf-admin-page #acf-popup .acf-popup-box #acf-move-field-form .acf-field-select, +.acf-admin-page #acf-popup .acf-popup-box #acf-link-field-groups-form .acf-field-select { + margin-top: 0; +} +.acf-admin-page .acf-link-field-groups-popup .acf-popup-box .title h3 { + color: #1D2939; + font-weight: 500; +} +.acf-admin-page .acf-link-field-groups-popup .acf-popup-box .title h3:before { + content: ""; + width: 18px; + height: 18px; + background: #98A2B3; + margin-right: 9px; +} +.acf-admin-page .acf-link-field-groups-popup .acf-popup-box .inner { + padding: 0 !important; +} +.acf-admin-page .acf-link-field-groups-popup .acf-popup-box .inner .acf-field-select, +.acf-admin-page .acf-link-field-groups-popup .acf-popup-box .inner .acf-link-successful { + padding: 32px 24px; + margin-bottom: 0; +} +.acf-admin-page .acf-link-field-groups-popup .acf-popup-box .inner .acf-field-select .description, +.acf-admin-page .acf-link-field-groups-popup .acf-popup-box .inner .acf-link-successful .description { + font-size: 13px; + font-weight: 500; + color: #344054; +} +.acf-admin-page .acf-link-field-groups-popup .acf-popup-box .inner .acf-actions { + background: #F9FAFB; + border-top: 1px solid #EAECF0; + padding-top: 20px; + padding-left: 24px; + padding-bottom: 20px; + padding-right: 24px; + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; +} +.acf-admin-page .acf-link-field-groups-popup .acf-popup-box .inner .acf-actions .acf-btn { + display: inline-block; + margin-left: 8px; +} +.acf-admin-page .acf-link-field-groups-popup .acf-popup-box .inner .acf-actions .acf-btn.acf-btn-primary { + width: 120px; +} + +/*---------------------------------------------------------------------------- +* +* Hide original #post-body-content from edit field group page +* +*----------------------------------------------------------------------------*/ +.acf-admin-single-field-group #post-body-content { + display: none; +} + +/*---------------------------------------------------------------------------- +* +* Settings section footer +* +*----------------------------------------------------------------------------*/ +.acf-field-group-settings-footer { + display: flex; + justify-content: space-between; + align-content: stretch; + align-items: center; + position: relative; + min-height: 88px; + margin-right: -24px; + margin-left: -24px; + margin-bottom: -24px; + padding-right: 24px; + padding-left: 24px; + border-top-width: 1px; + border-top-style: solid; + border-top-color: #EAECF0; +} +.acf-field-group-settings-footer .acf-created-on { + display: inline-flex; + justify-content: flex-start; + align-content: stretch; + align-items: center; + color: #667085; +} +.acf-field-group-settings-footer .acf-created-on:before { + content: ""; + display: inline-block; + width: 20px; + height: 20px; + margin-right: 8px; + background-color: #98A2B3; + border: none; + border-radius: 0; + -webkit-mask-size: contain; + mask-size: contain; + -webkit-mask-repeat: no-repeat; + mask-repeat: no-repeat; + -webkit-mask-position: center; + mask-position: center; + -webkit-mask-image: url("../../images/icons/icon-time.svg"); + mask-image: url("../../images/icons/icon-time.svg"); +} + +/*---------------------------------------------------------------------------- +* +* Conditional logic enabled badge +* +*----------------------------------------------------------------------------*/ +.conditional-logic-badge { + display: none; +} +.conditional-logic-badge.is-enabled { + display: inline-block; + width: 6px; + height: 6px; + overflow: hidden; + margin-left: 8px; + background-color: rgba(82, 170, 89, 0.4); + border-width: 1px; + border-style: solid; + border-color: #52AA59; + border-radius: 100px; + text-indent: 100%; + white-space: nowrap; +} + +/*---------------------------------------------------------------------------- +* +* Split field settings +* +*----------------------------------------------------------------------------*/ +.acf-field-settings-split { + display: flex; + border-top-width: 1px; + border-top-style: solid; + border-top-color: #EAECF0; +} +.acf-field-settings-split .acf-field { + margin: 0; + padding-top: 32px; + padding-bottom: 32px; +} +.acf-field-settings-split .acf-field:nth-child(2n) { + border-left-width: 1px; + border-left-style: solid; + border-left-color: #EAECF0; +} + +/*---------------------------------------------------------------------------- +* +* Display & return format +* +*----------------------------------------------------------------------------*/ +.acf-field-setting-display_format .acf-label, +.acf-field-setting-return_format .acf-label { + margin-bottom: 6px; +} +.acf-field-setting-display_format .acf-radio-list li, +.acf-field-setting-return_format .acf-radio-list li { + display: flex; +} +.acf-field-setting-display_format .acf-radio-list li label, +.acf-field-setting-return_format .acf-radio-list li label { + display: inline-flex; + width: 100%; +} +.acf-field-setting-display_format .acf-radio-list li label span, +.acf-field-setting-return_format .acf-radio-list li label span { + flex: 1 1 auto; +} +.acf-field-setting-display_format .acf-radio-list li label code, +.acf-field-setting-return_format .acf-radio-list li label code { + padding-right: 8px; + padding-left: 8px; + background-color: #F2F4F7; + border-radius: 4px; + color: #475467; +} +.acf-field-setting-display_format .acf-radio-list li input[type=text], +.acf-field-setting-return_format .acf-radio-list li input[type=text] { + height: 32px; +} + +.acf-field-settings .acf-field-setting-first_day { + padding-top: 32px; + border-top-width: 1px; + border-top-style: solid; + border-top-color: #EAECF0; +} + +/*---------------------------------------------------------------------------- +* +* Image and Gallery fields +* +*----------------------------------------------------------------------------*/ +.acf-field-object-image .acf-hl[data-cols="3"] > li, +.acf-field-object-gallery .acf-hl[data-cols="3"] > li { + width: auto; +} + +/*---------------------------------------------------------------------------- +* +* Appended fields fields +* +*----------------------------------------------------------------------------*/ +.acf-field-settings .acf-field-appended { + overflow: auto; +} +.acf-field-settings .acf-field-appended .acf-input { + float: left; +} + +/*---------------------------------------------------------------------------- +* +* Flexible widths for image minimum / maximum size fields +* +*----------------------------------------------------------------------------*/ +.acf-field-settings .acf-field.acf-field-setting-min_width .acf-input, +.acf-field-settings .acf-field.acf-field-setting-max_width .acf-input { + max-width: none; +} +.acf-field-settings .acf-field.acf-field-setting-min_width .acf-input-wrap input[type=text], +.acf-field-settings .acf-field.acf-field-setting-max_width .acf-input-wrap input[type=text] { + max-width: 81px; +} + +/*---------------------------------------------------------------------------- +* +* Temporary fix to hide pagination setting for repeaters used as subfields. +* +*----------------------------------------------------------------------------*/ +.post-type-acf-field-group .acf-field-object-flexible-content .acf-field-setting-pagination { + display: none; +} +.post-type-acf-field-group .acf-field-object-repeater .acf-field-object-repeater .acf-field-setting-pagination { + display: none; +} + +/*---------------------------------------------------------------------------- +* +* Flexible content field width +* +*----------------------------------------------------------------------------*/ +.acf-admin-single-field-group .acf-field-object-flexible-content .acf-is-subfields .acf-field-object .acf-label, +.acf-admin-single-field-group .acf-field-object-flexible-content .acf-is-subfields .acf-field-object .acf-input { + max-width: 600px; +} + +/*---------------------------------------------------------------------------- +* +* Fix default value checkbox focus state +* +*----------------------------------------------------------------------------*/ +.acf-admin-single-field-group .acf-field.acf-field-true-false.acf-field-setting-default_value .acf-true-false { + border: none; +} +.acf-admin-single-field-group .acf-field.acf-field-true-false.acf-field-setting-default_value .acf-true-false input[type=checkbox] { + margin-right: 0; +} + +/*---------------------------------------------------------------------------- +* +* With front field extra spacing +* +*----------------------------------------------------------------------------*/ +.acf-field.acf-field-with-front { + margin-top: 32px; +} + +/*--------------------------------------------------------------------------------------------- +* +* Sub-fields layout +* +*---------------------------------------------------------------------------------------------*/ +.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub { + max-width: 100%; + overflow: hidden; + border-radius: 8px; + border-width: 1px; + border-style: solid; + border-color: #dbdfe5; + box-shadow: 0px 1px 2px rgba(16, 24, 40, 0.1); +} +.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-sub-field-list-header { + display: flex; + justify-content: space-between; + align-content: stretch; + align-items: center; + min-height: 64px; + padding-right: 24px; + padding-left: 24px; +} +.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-field-list-wrap { + box-shadow: none; +} +.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-hl.acf-tfoot { + min-height: 64px; + align-items: center; +} +.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-input.acf-input-sub { + max-width: 100%; + margin-right: 0; + margin-left: 0; +} + +.post-type-acf-field-group .acf-input-sub .acf-field-object .acf-sortable-handle { + width: 100%; + height: 100%; +} + +.post-type-acf-field-group .acf-field-object:hover .acf-input-sub .acf-sortable-handle:before { + display: none; +} + +.post-type-acf-field-group .acf-field-object:hover .acf-input-sub .acf-field-list .acf-field-object:hover .acf-sortable-handle:before { + display: block; +} + +.post-type-acf-field-group .acf-field-object .acf-is-subfields .acf-thead .li-field-label:before { + display: none; +} + +.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-field-object.open { + border-top-color: #dbdfe5; +} + +/*--------------------------------------------------------------------------------------------- +* +* Flexible content field +* +*---------------------------------------------------------------------------------------------*/ +.post-type-acf-field-group i.acf-icon.-duplicate.duplicate-layout { + margin: 0 auto !important; + background-color: #667085; + color: #667085; +} +.post-type-acf-field-group i.acf-icon.acf-icon-trash.delete-layout { + margin: 0 auto !important; + background-color: #667085; + color: #667085; +} +.post-type-acf-field-group button.acf-btn.acf-btn-tertiary.acf-field-setting-fc-duplicate, .post-type-acf-field-group button.acf-btn.acf-btn-tertiary.acf-field-setting-fc-delete { + background-color: #ffffff !important; + box-shadow: 0px 1px 2px rgba(16, 24, 40, 0.1); + border-radius: 6px; + width: 32px; + height: 32px !important; + min-height: 32px; + padding: 0; +} +.post-type-acf-field-group button.add-layout.acf-btn.acf-btn-primary.add-field, +.post-type-acf-field-group .acf-sub-field-list-header a.acf-btn.acf-btn-secondary.add-field, +.post-type-acf-field-group .acf-field-list-wrap.acf-is-subfields a.acf-btn.acf-btn-secondary.add-field { + height: 32px !important; + min-height: 32px; + margin-left: 5px; +} +.post-type-acf-field-group .acf-field.acf-field-setting-fc_layout { + background-color: #ffffff; + margin-bottom: 16px; +} +.post-type-acf-field-group .acf-field-setting-fc_layout { + overflow: hidden; + width: calc(100% - 144px); + margin-right: 72px; + margin-left: 72px; + padding-right: 0; + padding-left: 0; + border-width: 1px; + border-style: solid; + border-color: #dbdfe5; + border-radius: 8px; + box-shadow: 0px 1px 2px rgba(16, 24, 40, 0.1); +} +.post-type-acf-field-group .acf-field-setting-fc_layout .acf-field-layout-settings.open { + background-color: #ffffff; + border-top-width: 1px; + border-top-style: solid; + border-top-color: #EAECF0; +} +@media screen and (max-width: 768px) { + .post-type-acf-field-group .acf-field-setting-fc_layout { + width: calc(100% - 16px); + margin-right: 8px; + margin-left: 8px; + } +} +.post-type-acf-field-group .acf-field-setting-fc_layout .acf-input-sub { + max-width: 100%; + margin-right: 0; + margin-left: 0; +} +.post-type-acf-field-group .acf-field-setting-fc_layout .acf-label, +.post-type-acf-field-group .acf-field-setting-fc_layout .acf-input { + max-width: 100% !important; +} +.post-type-acf-field-group .acf-field-setting-fc_layout .acf-input-sub { + margin-right: 32px; + margin-bottom: 32px; + margin-left: 32px; +} +.post-type-acf-field-group .acf-field-setting-fc_layout .acf-fc-meta { + max-width: 100%; + padding-top: 24px; + padding-right: 32px; + padding-left: 32px; +} +.post-type-acf-field-group .acf-field-settings-fc_head { + background-color: #F9FAFB; + border-radius: 8px 8px 0px 0px; + display: flex; + min-height: 64px; + margin-bottom: 0px; + padding-right: 24px; +} +.post-type-acf-field-group .acf-field-settings-fc_head .acf-fc_draggable { + min-height: 64px; + padding-left: 24px; + display: flex; +} +.post-type-acf-field-group .acf-field-settings-fc_head span.toggle-indicator { + pointer-events: none; + margin-top: 7px; +} +.post-type-acf-field-group .acf-field-settings-fc_head label { + display: inline-flex; + align-items: center; +} +.post-type-acf-field-group .acf-field-settings-fc_head label:before { + content: ""; + display: inline-block; + width: 20px; + height: 20px; + margin-right: 8px; + background-color: #98A2B3; + border: none; + border-radius: 0; + -webkit-mask-size: contain; + mask-size: contain; + -webkit-mask-repeat: no-repeat; + mask-repeat: no-repeat; + -webkit-mask-position: center; + mask-position: center; +} +.rtl.post-type-acf-field-group .acf-field-settings-fc_head label:before { + padding-right: 10px; +} + +.post-type-acf-field-group .acf-field-settings-fc_head .acf-fl-actions { + display: flex; + align-items: center; +} +.post-type-acf-field-group .acf-field-settings-fc_head .acf-fl-actions .acf-fc-add-layout { + margin-left: 10px; +} +.post-type-acf-field-group .acf-field-settings-fc_head .acf-fl-actions .acf-fc-add-layout .add-field { + margin-left: 0px !important; +} +.post-type-acf-field-group .acf-field-settings-fc_head .acf-fl-actions li { + margin-right: 4px; +} +.post-type-acf-field-group .acf-field-settings-fc_head .acf-fl-actions li:last-of-type { + margin-right: 0; +} + +/*--------------------------------------------------------------------------------------------- +* +* Field open / closed icon state +* +*---------------------------------------------------------------------------------------------*/ +.post-type-acf-field-group .acf-field-object.open > .handle > .acf-tbody > .li-field-label::before { + -webkit-mask-image: url("../../images/icons/icon-chevron-up.svg"); + mask-image: url("../../images/icons/icon-chevron-up.svg"); +} + +/*--------------------------------------------------------------------------------------------- +* +* Different coloured levels (current 5 supported) +* +*---------------------------------------------------------------------------------------------*/ +.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-field-object .handle { + background-color: transparent; +} +.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-field-object .handle:hover { + background-color: #f9f2fb; +} +.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-field-object.open .handle { + background-color: #f5eaf9; +} +.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-field-object .settings { + border-left-color: #BF7DD7; +} +.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-input-sub .acf-field-object .handle { + background-color: transparent; +} +.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-input-sub .acf-field-object .handle:hover { + background-color: #ebf7f4; +} +.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-input-sub .acf-field-object.open .handle { + background-color: #e3f4f0; +} +.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-input-sub .acf-field-object .settings { + border-left-color: #7CCDB9; +} +.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-input-sub .acf-input-sub .acf-field-object .handle { + background-color: transparent; +} +.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-input-sub .acf-input-sub .acf-field-object .handle:hover { + background-color: #fcf5f2; +} +.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-input-sub .acf-input-sub .acf-field-object.open .handle { + background-color: #fbeee9; +} +.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-input-sub .acf-input-sub .acf-field-object .settings { + border-left-color: #E29473; +} +.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-input-sub .acf-input-sub .acf-input-sub .acf-field-object .handle { + background-color: transparent; +} +.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-input-sub .acf-input-sub .acf-input-sub .acf-field-object .handle:hover { + background-color: #fafbfb; +} +.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-input-sub .acf-input-sub .acf-input-sub .acf-field-object.open .handle { + background-color: #f4f6f7; +} +.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-input-sub .acf-input-sub .acf-input-sub .acf-field-object .settings { + border-left-color: #A3B1B9; +} + +/*# sourceMappingURL=acf-field-group.css.map*/ \ No newline at end of file diff --git a/assets/build/css/acf-field-group.css.map b/assets/build/css/acf-field-group.css.map new file mode 100644 index 0000000..87ce022 --- /dev/null +++ b/assets/build/css/acf-field-group.css.map @@ -0,0 +1 @@ +{"version":3,"file":"acf-field-group.css","mappings":";;;AAAA,gBAAgB;ACAhB;;;;8FAAA;AAMA;AAOA;AAQA;AAgBA;;;;8FAAA;ACrCA;;;;8FAAA;ACAA;;;;8FAAA;AAOA;;;EAGC;EACA;AHkBD;;AGbC;;EAEC;AHgBF;;AGZA;;;;8EAAA;AAKA;;;EAGC;AHeD;;AGZA;EACC;AHeD;;AGZA;EACC;AHeD;;AGZA;EACC;AHeD;;AGXA;;;;8EAAA;AAKA;EACC;EASA;EAKA;EAgBA;EAeA;EAUA;EAyCA;AH5ED;AGlBC;EAEE;EACA;AHmBH;AGdC;EACC;AHgBF;AGVE;EAEE;AHWJ;AGRG;EALD;IAME;EHWF;AACF;AGJC;EACC;EACA;AHMF;AGJE;EAJD;IAKE;EHOD;AACF;AGJC;EAAkB;AHOnB;AGNC;EAAiB;EAAY;AHU9B;AGTC;EAAgB;AHYjB;AGXC;EAAiB;AHclB;AGTE;EAAkB;AHYpB;AGXE;EAAiB;AHcnB;AGbE;EAAgB;EAAa;AHiB/B;AGhBE;EAAiB;AHmBnB;AGbE;EACC;AHeH;AGZE;EACC;AHcH;AGZG;EACC;AHcJ;AGXG;EACC;AHaJ;AGVG;EACC;EACA;AHYJ;AGTG;EAEE;EACA;EACA,4BFvFM;ADiGX;AGNG;EACC;EACA;AHQJ;AGJE;EACC;AHMH;AGDC;EACC;AHGF;AGAC;EACC;EACA;EA8CA;EAOA;AHjDF;AGAG;;EAEC;AHEJ;AGGE;EACC;EACA;EACA;AHDH;AGEG;EACC;EACA;EACA;EAEA;EACA,WAFY;EAGZ,YAHY;EAIZ,yBFjIO;EEkIP;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AHDJ;AGGG;EACC;EACA;EACA,yBF3LU;AD0Ld;AGME;EACC;EACA;EACA;AHJH;AGSG;EACC;AHPJ;AGcE;EACC,qBF1LkB;AD8KrB;;AGoBE;EAEE;EACA;AHlBJ;;AGwBA;AACA;EACC;EACA;EAEA;EA+BA;EAMA;EA0DA;EA2BA;;;;;;;;;;;;;GAAA;EAgBA;EAcA;EAWA;AHrKD;AGGC;EACC;EAEC;EACA;EACA;EAED,kBFrKU;EEsKV;AHHF;AGKE;EACC;AHHH;AGQC;EACC;EACA;EACA;EACA;EACA;AHNF;AGSE;EACC;AHPH;AGaC;EACC;AHXF;AGkBE;EACC;EACA;EACA;EACA;AHhBH;AGmBE;EACC;AHjBH;AGoBE;EACC;EACA;EACA;EACA;EACA;AHlBH;AGqBE;EACC;EACA;EAEC;AHpBJ;AGuBG;EAPD;IAQE;IAEC;EHrBH;AACF;AGwBG;EACC;AHtBJ;AGwBI;EACC;AHtBL;AG2BG;EACC;AHzBJ;AG2BI;EAAU;AHxBd;AG2BG;EACC;AHzBJ;AGkCE;EACC;AHhCH;AGmCE;EACC,mBFjVQ;EEkVR;EACA;EACA;EACA;EACA;AHjCH;AGmCG;EACC;AHjCJ;AGmCI;EACC;AHjCL;AG8DG;EACC;EACA;AH5DJ;AGoEC;EACC;EACA;AHlEF;AGoEE;EACC;AHlEH;AGwEC;EACC;AHtEF;;AG4EA;;;;8EAAA;AAQC;EACC;AH5EF;AG+EC;EACC;AH7EF;AG+EE;EACC;AH7EH;AGgFE;EACC;AH9EH;AGiFE;EACC;AH/EH;AGkFE;EACC;AHhFH;AGmFE;EACC;EACA;AHjFH;AGmFG;EACC;EACA;EACA;AHjFJ;AGmFI;EACC;EACA;EACA;AHjFL;AGuFE;EACC;AHrFH;AGyFE;EACC;AHvFH;AG8FG;EACC;EACA;AH5FJ;;AGmGA;;;;8EAAA;AAMA;EACC;EACA;AHjGD;;AGoGA;EAEC;IACC;EHlGA;AACF;AGuGA;;;;8EAAA;AAMA;EACC;EACA;EACA;AHtGD;;AGyGA;EACC;EACA;EACA;AHtGD;;AG0GA;;;;8EAAA;AASC;;;;;EAKC;AH3GF;AG+GC;EACC;AH7GF;AGgHC;EACC;AH9GF;AGkHC;;EAEC;AHhHF;;AGoHA;;;;8EAAA;AASC;;;;;EAKC;AHrHF;AGyHC;EACC;AHvHF;AG0HC;EACC;AHxHF;AG4HC;EACC;AH1HF;;AGgIA;;;;8EAAA;AAMA;;;EAGC;AH9HD;;AGiIA;EACC;AH9HD;;AGiIA;EACC;AH9HD;;AGkIA;;;;8EAAA;AAMA;;;EAGC;AHhID;;AGoIA;;;;8EAAA;AAYE;;;EACC;AHtIH;AGyIE;;;EACC;EACA;AHrIH;AGwIE;;;EACC;AHpIH;;AG8IE;EACC;AH3IH;AG8IE;EACC;AH5IH;;AGmJA;;;;8FAAA;AAQC;EACC;EACA;AHnJF;AGsJC;EACC;EACA;EACA;AHpJF;;AGyJA;;;;8FAAA;AAMA;EACC;AHvJD;;AG0JA;;;;8EAAA;AAMA;EAEC;;;IAGC;IACA;IACA;EHzJA;EG4JD;IACC;IACA;EH1JA;EG6JD;IACC;IACA;EH3JA;AACF;AGgKA;;;;8EAAA;AASE;;EAEC,yBFtrBQ;ADohBX;;AIhkBA;;;;+FAAA;AAMC;EACC;AJkkBF;;AI9jBA;;;;+FAAA;AAOC;EACC,cH0CS;ADqhBX;;AI1jBA;;;;+FAAA;AAMA;;EACC;EACA;AJ6jBD;;AI1jBA;;EACC;EACA;AJ8jBD;;AI3jBA;;;;;EACC;EACA;AJkkBD;;AI9iBA;;;;+FAAA;AAQC;EACC;AJ8iBF;AI3iBC;EACC;AJ6iBF;AI1iBC;EACC;AJ4iBF;AIziBC;;;;;EACC;AJ+iBF;AI5iBC;;;;;;;;;;;EACC;AJwjBF;AIrjBC;EACC;AJujBF;AIpjBC;EACC;AJsjBF;AInjBC;EACC;AJqjBF;;AIhjBA;;;;+FAAA;AAKA;EAEC,cH5DU;AD8mBX;;AI/iBA;;;;+FAAA;AAOC;EACC;AJgjBF;AI7iBC;EACC;AJ+iBF;;AI1iBA;;;;+FAAA;AASA;;;;+FAAA;AAMC;EACC;EACA;AJwiBF;AIriBC;EACC;EACA;AJuiBF;;AKhsBA;EAEC;;;;iGAAA;EAuCA;;;;iGAAA;EAcA;;;;iGAAA;EAcA;;;;iGAAA;EAeA;;;;iGAAA;EA4CA;;;;iGAAA;EAsEA;;;;iGAAA;EAkBA;;;;iGAAA;EAkBA;;;;iGAAA;EAqCA;;;;iGAAA;EAwGA;;;;iGAAA;EAqCA;;;;iGAAA;EAkCA;;;;iGAAA;EASA;;;;iGAAA;EA0HA;;;;iGAAA;EA+BA;;;;iGAAA;EAsBA;EA6TA;;;;iGAAA;AL1JD;AKlxBC;;;;;EAKC;EACA;EAEC;EACA;EAED;EACA,qBJ4BS;EI3BT,6CJoEa;EInEb,kBJ8DU;EI5DV,cJ4BS;ADqvBX;AK/wBE;;;;;EACC,0BJiEO;EIhEP,qBJiCQ;ADovBX;AKlxBE;;;;;EACC,yBJaQ;EIZR;ALwxBH;AKrxBE;;;;;EACC,cJYQ;AD+wBX;AK/wBE;EACC,yBJLQ;EIMR,cJFQ;ADmxBX;AKrwBE;;EAEC;ALuwBH;AK7vBC;EACC;EAEC;EACA;EAED;EACA;AL6vBF;AKrvBC;EACC;EACA;EAEC;EACA;EAED;EACA;EACA;ALqvBF;AKlvBE;EAEC,cJ1CQ;AD6xBX;AKhvBE;EACC;EACA;EACA;EACA;EACA;EACA;EACA;ALkvBH;AK5uBE;EAEE;EACA;EAED;AL4uBH;AKnuBC;;EAEC;EACA;EACA;EACA;EAEC;EACA;EACA,qBJ9FQ;EIgGT;EACA;ALmuBF;AKjuBE;;EACC,yBJ5FQ;EI6FR,qBJxFQ;AD4zBX;AKjuBE;;;EAEC,yBJlGQ;EImGR,qBJ9FQ;ADk0BX;AKluBG;;;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;ALsuBJ;AKjuBE;;EACC;ALouBH;AKjuBE;;EACC,yBJvIQ;EIwIR,qBJrIQ;ADy2BX;AK1tBI;;;EACC;AL8tBL;AK7sBG;EACC;AL+sBJ;AK9rBG;EACC;ALgsBJ;AKjrBE;;;;EAGE;ALorBJ;AKhrBE;;EAEE;ALkrBJ;AK/qBG;;EAEE;ALirBL;AK1qBE;;EACC;EACA;EACA;AL6qBH;AKnqBC;EACC;EACA;EACA;EACA,yBJzOS;EI0OT;ALqqBF;AKnqBE;EACC,yBJ5OQ;ADi5BX;AKlqBE;EACC;ALoqBH;AKjqBE;EACC,yBJvOQ;AD04BX;AKjqBG;EACC,yBJzOO;AD44BX;AKhqBG;EACC;ALkqBJ;AK7pBE;;EAEC;AL+pBH;AK5pBE;EACC;EACA;EACA;EACA;EACA;AL8pBH;AKzpBC;EACC;EACA;AL2pBF;AKzpBE;EACC;EACA;EACA;EAEC;EACA;EACA;AL0pBJ;AKvpBG;EAEE;ALwpBL;AKppBG;EAEE;ALqpBL;AKjpBG;EACC;EAEC;EACA;ALkpBL;AKxoBG;EAEE;EACA;ALyoBL;AKroBG;EAEE;EACA;ALsoBL;AK1nBC;EACC;EACA;EAEC;EAGA;EACA;EACA;EACA;EAED;EACA;EACA,kBJxTU;EI0TT;EACA;EACA,qBJlVQ;EIoVT;ALsnBF;AKpnBE;EACC,qBJtVQ;EIuVR;EACA;ALsnBH;AK3mBC;EACC;EACA;EACA;EAEC;EACA;EAED;EACA;EACA;EACA,qBJ/WS;EIgXT,kBJ1VU;EI4VV,cJlXS;AD49BX;AKxmBE;EACC;EACA,qBJtXQ;EIuXR,cJvXQ;ADi+BX;AKxmBE;EACC;EACA,0BJ7VO;EI8VP,cJ5XQ;ADs+BX;AKhmBC;EACC;ALkmBF;AKxlBE;EACC;EACA;AL0lBH;AKvlBE;EACC;EAEC;EACA;EAED;EAEC;EACA;EACA,qBJ9aO;EIgbR,6CJvYY;EIwYZ,kBJ7YS;EI+YT,cJ/aQ;ADmgCX;AKjlBE;EACC,0BJ3YO;EI4YP,qBJ3aQ;EI4aR,kBJrZS;ADw+BZ;AKjlBG;EACC;ALmlBJ;AK9kBI;EACC;EACA;ALglBL;AKzkBI;EACC;EACA;AL2kBL;AKpkBE;EACC;EAEC;ALqkBJ;AKlkBG;EACC;EACA;ALokBJ;AK/jBE;EAEE;EACA;EACA;EACA;ALgkBJ;AK5jBE;EACC;EACA;EAEC;EACA;EAED;EACA;EACA;EACA;AL4jBH;AK1jBG;EACC;EAEA;EACA,WAFY;EAGZ,YAHY;EAIZ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,yBJtgBO;ADikCX;AKxjBG;EACC,yBJ7fO;ADujCX;AK9iBC;EACC;EACA;EACA;ALgjBF;AK9iBE;EAEC,WADY;EAEZ,YAFY;EAGZ,yBJ/hBQ;AD8kCX;AK5iBE;EAEE;AL6iBJ;AKziBE;EAEE;AL0iBJ;AK/hBC;EACC;EACA;EACA;EACA;ALiiBF;AK/hBW;EACR;EACA;ALiiBH;;AK9hBE;EACC;EACA;ALiiBH;AKnhBE;;;;;;;;EACC;AL4hBH;AKxhBG;;;;;;;;EACC;EACA;EACA;EACA;EACA;EAEC;EACA;EACA;EACA;ALgiBL;AK7hBG;;;;;;;;EACC;EACA;EACA;EAEC;ALqiBL;AKliBI;;;;;;;;EACC;EACA;AL2iBL;AKriBE;;;;;;;;EACC;EACA;AL8iBH;AK3iBE;;;;;;;;EACC;EACA;ALojBH;AKjjBE;;;;;;;;EACC;EACA;EACA;EACA;AL0jBH;AKtjBE;;;;;;;;EACC;AL+jBH;AK7jBY;EACR;AL+jBJ;;AK1jBE;;;;;;;;EACC;EACA;EACA;EACA;EACA;ALokBH;AKlkBG;;;;;;;;EACC;EAEA;EACA;EACA;EACA;EACA;EACA,WANY;EAOZ,YAPY;EAQZ;EACA;EACA,yBJ/pBO;EIgqBP;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AL0kBJ;AKvkBG;;;;;;;;EACC;ALglBJ;AKvkBG;;;;;;;;EACC;EACA;ALglBJ;AKzkBC;EACC;EACA;EACA;EACA;EACA;AL2kBF;AK1kBE;EACC;EACA;EACA;EACA;EACA;AL4kBH;AKzkBW;EAER;AL0kBH;;AKtkBE;EACC;ALykBH;AKvkBY;EACR;ALykBJ;;AKpkBE;EACC;EACA;EACA;ALukBH;AKpkBI;EACC;EAEA;EACA;EACA;EACA;EACA,WALY;EAMZ,YANY;EAOZ;EACA;EACA,yBJ/uBM;EIgvBN;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;ALqkBL;AKnkBc;EACR;EACA;ALqkBN;;AKhkBG;EACC;EAEA;EACA;EACA;EACA;ALkkBJ;AKhkBa;EACR;EACA;ALkkBL;;AK/jBI;EACC,yBJlxBM;EImxBN;ALkkBL;AK5jBE;EACC;AL8jBH;AK1jBG;EACC;EACA;AL4jBJ;AKvjBE;EACC;EACA;EACA;EACA;EAEC;EACA;EACA;EACA;EAED;ALujBH;AKrjBG;EACC;EACA;EACA;EAEC;EAED;ALqjBJ;AKnjBI;EACC;EACA;ALqjBL;AK9iBE;EACC;EACA;ALgjBH;AK9iBG;EACC;EAEA;EACA;EACA,WAHY;EAIZ,YAJY;EAKZ;EACA;EACA,yBJn0BO;EIo0BP;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AL+iBJ;AK7iBa;EACR;EACA;AL+iBL;;AK1iBE;EACC;EACA;EACA;EACA;EACA,yBJ72BQ;EI+2BP;EACA;EACA,yBJ/2BO;EIk3BP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;;EACC;ANg1CL;AM30CG;;;;;;EACC;EAEC,4BLniBM;EKqiBP,cLriBO;ADq3DX;AM90CI;;;;;;EAEE,4BLziBK;EK0iBL;ANo1CN;;AMz0CA;EAEE;AN20CF;AMx0CC;EALD;IAOG;EN00CD;AACF;;AMr0CA;;;;8EAAA;AAOC;EAEE;EACA;EACA;EACA;ANq0CH;AMl0CE;EACC;ANo0CH;AM/zCC;EACC;EAEC;EACA;EACA;EACA;EAGA;EACA;EACA;EACA;AN8zCH;AMzzCC;EACC;EAEC;EACA;EACA;EACA;AN0zCH;AMvzCE;EACC;EAEC;EACA;EACA;EACA;ANwzCJ;AMpzCE;EACC;ANszCH;AMnzCE;EACC;EACA;EAEC;EACA;EACA;EACA;EAGA;EACA;EAGA;EACA;EACA,0BL9pBO;AD88DX;AMzyCC;EACC;AN2yCF;AMvyCC;EACC;ANyyCF;;AMlyCE;EAEE;EACA;EAED;EAEC;EACA;EACA,2BL3rBO;AD69DX;;AM5xCA;;;;8EAAA;AAOC;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AN6xCF;AM1xCC;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEC;EACA;EAGD;EACA;EACA;ANyxCF;AMvxCE;EACC;ANyxCH;AMtxCE;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EAEA,WADY;EAEZ,YAFY;EAGZ,yBLnvBQ;EKovBR;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;ANuxCH;;AM7wCE;EACC;EACA;ANgxCH;;AM1wCA;;;;8EAAA;AAOC;EACC;EAEC;AN0wCH;AMvwCE;EACC;EACA;EACA;EACA;EAEA;EACA,WAFY;EAGZ,YAHY;EAKX;EAED,yBL1yBQ;EK2yBR;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;ANswCH;AMnwCE;EACC;ANqwCH;;AM3vCE;EAEE;EACA;AN6vCJ;AM1vCG;EACC;EACA;EACA;EACA;AN4vCJ;AMtvCG;EACC;EACA;ANwvCJ;AMrvCG;EACC;EACA;ANuvCJ;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YAHY;EAKX;EAED,yBN3KO;EM4KP;EACA;EACA;EACA;EACA;EACA;EACA;EACA;APskFJ;AOpkFa;EACR;APskFL;;AO/jFE;EACC;EACA;APkkFH;AOhkFG;EACC;APkkFJ;AO/jFG;EACC;APikFJ;AO9jFG;EAEE;AP+jFL;AO5jFI;EAEE;AP6jFN;;AOjjFA;;;;+FAAA;AAMA;EACC;EACA;APmjFD;;AOhjFA;;;;+FAAA;AAWC;EAA4B;AP8iF7B;AO9iF4D;EAAU;APijFtE;AO/iFC;EAAiC;APkjFlC;AOhjFC;EAA6C,0BAN9B;APyjFhB;AO7iFE;EAA4B;APgjF9B;AOhjF6D;EAAU;APmjFvE;AOjjFE;EAAiC;APojFnC;AOljFE;EAA6C,0BAN9B;AP2jFjB;AO/iFG;EAA4B;APkjF/B;AOljF8D;EAAU;APqjFxE;AOnjFG;EAAiC;APsjFpC;AOpjFG;EAA6C,0BAN9B;AP6jFlB;AOjjFI;EAA4B;APojFhC;AOpjF+D;EAAU;APujFzE;AOrjFI;EAAiC;APwjFrC;AOtjFI;EAA6C,0BAN9B;AP+jFnB,C","sources":["webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/sass/acf-field-group.scss","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/sass/_variables.scss","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/sass/_mixins.scss","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/sass/_field-group.scss","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/sass/_typography.scss","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/sass/_admin-inputs.scss","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/sass/_edit-field-group.scss","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/sass/_sub-field-groups.scss"],"sourcesContent":["@charset \"UTF-8\";\n/*--------------------------------------------------------------------------------------------\n*\n*\tVars\n*\n*--------------------------------------------------------------------------------------------*/\n/* colors */\n/* acf-field */\n/* responsive */\n/*--------------------------------------------------------------------------------------------\n*\n*\tACF 6 ↓\n*\n*--------------------------------------------------------------------------------------------*/\n/*--------------------------------------------------------------------------------------------\n*\n* Mixins\n*\n*--------------------------------------------------------------------------------------------*/\n/*--------------------------------------------------------------------------------------------\n*\n*\tField Group\n*\n*--------------------------------------------------------------------------------------------*/\n#acf-field-group-fields > .inside,\n#acf-field-group-locations > .inside,\n#acf-field-group-options > .inside {\n padding: 0;\n margin: 0;\n}\n\n.postbox .handle-order-higher,\n.postbox .handle-order-lower {\n display: none;\n}\n\n/*----------------------------------------------------------------------------\n*\n* Postbox: Publish\n*\n*----------------------------------------------------------------------------*/\n#minor-publishing-actions,\n#misc-publishing-actions #visibility,\n#misc-publishing-actions .edit-timestamp {\n display: none;\n}\n\n#minor-publishing {\n border-bottom: 0 none;\n}\n\n#misc-pub-section {\n border-bottom: 0 none;\n}\n\n#misc-publishing-actions .misc-pub-section {\n border-bottom-color: #F5F5F5;\n}\n\n/*----------------------------------------------------------------------------\n*\n* Postbox: Fields\n*\n*----------------------------------------------------------------------------*/\n#acf-field-group-fields {\n border: 0 none;\n /* links */\n /* Field type */\n /* table header */\n /* show keys */\n /* hide tabs */\n /* fields */\n}\n#acf-field-group-fields .inside {\n border-top-width: 0;\n border-top-style: none;\n}\n#acf-field-group-fields a {\n text-decoration: none;\n}\n#acf-field-group-fields .li-field-type .field-type-icon {\n margin-right: 8px;\n}\n@media screen and (max-width: 600px) {\n #acf-field-group-fields .li-field-type .field-type-icon {\n display: none;\n }\n}\n#acf-field-group-fields .li-field-order {\n width: 64px;\n justify-content: center;\n}\n@media screen and (max-width: 880px) {\n #acf-field-group-fields .li-field-order {\n width: 32px;\n }\n}\n#acf-field-group-fields .li-field-label {\n width: calc(50% - 64px);\n}\n#acf-field-group-fields .li-field-name {\n width: 25%;\n word-break: break-word;\n}\n#acf-field-group-fields .li-field-key {\n display: none;\n}\n#acf-field-group-fields .li-field-type {\n width: 25%;\n}\n#acf-field-group-fields.show-field-keys .li-field-label {\n width: calc(35% - 64px);\n}\n#acf-field-group-fields.show-field-keys .li-field-name {\n width: 15%;\n}\n#acf-field-group-fields.show-field-keys .li-field-key {\n width: 25%;\n display: flex;\n}\n#acf-field-group-fields.show-field-keys .li-field-type {\n width: 25%;\n}\n#acf-field-group-fields.hide-tabs .acf-field-settings-tab-bar {\n display: none;\n}\n#acf-field-group-fields.hide-tabs .acf-field-settings-main {\n padding: 0;\n}\n#acf-field-group-fields.hide-tabs .acf-field-settings-main.acf-field-settings-main-general {\n padding-top: 32px;\n}\n#acf-field-group-fields.hide-tabs .acf-field-settings-main .acf-field {\n margin-bottom: 32px;\n}\n#acf-field-group-fields.hide-tabs .acf-field-settings-main .acf-field-setting-wrapper {\n padding-top: 0;\n border-top: none;\n}\n#acf-field-group-fields.hide-tabs .acf-field-settings-main .acf-field-settings-split .acf-field {\n border-bottom-width: 1px;\n border-bottom-style: solid;\n border-bottom-color: #EAECF0;\n}\n#acf-field-group-fields.hide-tabs .acf-field-settings-main .acf-field-setting-first_day {\n padding-top: 0;\n border-top: none;\n}\n#acf-field-group-fields.hide-tabs .acf-field-settings-footer {\n margin-top: 32px;\n}\n#acf-field-group-fields .acf-field-list-wrap {\n border: #ccd0d4 solid 1px;\n}\n#acf-field-group-fields .acf-field-list {\n background: #f5f5f5;\n margin-top: -1px;\n /* no fields */\n /* empty */\n}\n#acf-field-group-fields .acf-field-list .acf-tbody > .li-field-name,\n#acf-field-group-fields .acf-field-list .acf-tbody > .li-field-key {\n align-items: flex-start;\n}\n#acf-field-group-fields .acf-field-list .copyable:not(.copy-unsupported) {\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n}\n#acf-field-group-fields .acf-field-list .copyable:not(.copy-unsupported):hover:after {\n content: \"\";\n display: block;\n padding-left: 5px;\n display: inline-flex;\n width: 12px;\n height: 12px;\n background-color: #667085;\n border: none;\n border-radius: 0;\n -webkit-mask-size: contain;\n mask-size: contain;\n -webkit-mask-repeat: no-repeat;\n mask-repeat: no-repeat;\n -webkit-mask-position: center;\n mask-position: center;\n text-indent: 500%;\n white-space: nowrap;\n overflow: hidden;\n -webkit-mask-image: url(\"../../images/icons/icon-copy.svg\");\n mask-image: url(\"../../images/icons/icon-copy.svg\");\n background-size: cover;\n}\n#acf-field-group-fields .acf-field-list .copyable:not(.copy-unsupported).copied:hover:after {\n -webkit-mask-image: url(\"../../images/icons/icon-check-circle-solid.svg\");\n mask-image: url(\"../../images/icons/icon-check-circle-solid.svg\");\n background-color: #49ad52;\n}\n#acf-field-group-fields .acf-field-list .no-fields-message {\n padding: 15px 15px;\n background: #fff;\n display: none;\n}\n#acf-field-group-fields .acf-field-list.-empty .no-fields-message {\n display: block;\n}\n.acf-admin-3-8 #acf-field-group-fields .acf-field-list-wrap {\n border-color: #dfdfdf;\n}\n\n.rtl #acf-field-group-fields .li-field-type .field-type-icon {\n margin-left: 8px;\n margin-right: 0;\n}\n\n/* field object */\n.acf-field-object {\n border-top: #eeeeee solid 1px;\n background: #fff;\n /* sortable */\n /* meta */\n /* handle */\n /* open */\n /*\n \t// debug\n \t&[data-save=\"meta\"] {\n \t\t> .handle {\n \t\t\tborder-left: #ffb700 solid 5px !important;\n \t\t}\n \t}\n\n \t&[data-save=\"settings\"] {\n \t\t> .handle {\n \t\t\tborder-left: #0ec563 solid 5px !important;\n \t\t}\n \t}\n */\n /* hover */\n /* settings */\n /* conditional logic */\n}\n.acf-field-object.ui-sortable-helper {\n overflow: hidden !important;\n border-width: 1px;\n border-style: solid;\n border-color: #A5D2E7 !important;\n border-radius: 8px;\n filter: drop-shadow(0px 10px 20px rgba(16, 24, 40, 0.14)) drop-shadow(0px 1px 3px rgba(16, 24, 40, 0.1));\n}\n.acf-field-object.ui-sortable-helper:before {\n display: none !important;\n}\n.acf-field-object.ui-sortable-placeholder {\n box-shadow: 0 -1px 0 0 #DFDFDF;\n visibility: visible !important;\n background: #F9F9F9;\n border-top-color: transparent;\n min-height: 54px;\n}\n.acf-field-object.ui-sortable-placeholder:after, .acf-field-object.ui-sortable-placeholder:before {\n visibility: hidden;\n}\n.acf-field-object > .meta {\n display: none;\n}\n.acf-field-object > .handle a {\n -webkit-transition: none;\n -moz-transition: none;\n -o-transition: none;\n transition: none;\n}\n.acf-field-object > .handle li {\n word-wrap: break-word;\n}\n.acf-field-object > .handle strong {\n display: block;\n padding-bottom: 0;\n font-size: 14px;\n line-height: 14px;\n min-height: 14px;\n}\n.acf-field-object > .handle .row-options {\n display: block;\n opacity: 0;\n margin-top: 5px;\n}\n@media screen and (max-width: 880px) {\n .acf-field-object > .handle .row-options {\n opacity: 1;\n margin-bottom: 0;\n }\n}\n.acf-field-object > .handle .row-options a {\n margin-right: 4px;\n}\n.acf-field-object > .handle .row-options a:hover {\n color: #044767;\n}\n.acf-field-object > .handle .row-options a.delete-field {\n color: #a00;\n}\n.acf-field-object > .handle .row-options a.delete-field:hover {\n color: #f00;\n}\n.acf-field-object > .handle .row-options.active {\n visibility: visible;\n}\n.acf-field-object.open + .acf-field-object {\n border-top-color: #E1E1E1;\n}\n.acf-field-object.open > .handle {\n background: #2a9bd9;\n border: #2696d3 solid 1px;\n text-shadow: #268FBB 0 1px 0;\n color: #fff;\n position: relative;\n margin: 0 -1px 0 -1px;\n}\n.acf-field-object.open > .handle a {\n color: #fff !important;\n}\n.acf-field-object.open > .handle a:hover {\n text-decoration: underline !important;\n}\n.acf-field-object:hover > .handle .row-options, .acf-field-object.-hover > .handle .row-options, .acf-field-object:focus-within > .handle .row-options {\n opacity: 1;\n margin-bottom: 0;\n}\n.acf-field-object > .settings {\n display: none;\n width: 100%;\n}\n.acf-field-object > .settings > .acf-table {\n border: none;\n}\n.acf-field-object .rule-groups {\n margin-top: 20px;\n}\n\n/*----------------------------------------------------------------------------\n*\n* Postbox: Locations\n*\n*----------------------------------------------------------------------------*/\n.rule-groups h4 {\n margin: 3px 0;\n}\n.rule-groups .rule-group {\n margin: 0 0 5px;\n}\n.rule-groups .rule-group h4 {\n margin: 0 0 3px;\n}\n.rule-groups .rule-group td.param {\n width: 35%;\n}\n.rule-groups .rule-group td.operator {\n width: 20%;\n}\n.rule-groups .rule-group td.add {\n width: 40px;\n}\n.rule-groups .rule-group td.remove {\n width: 28px;\n vertical-align: middle;\n}\n.rule-groups .rule-group td.remove a {\n width: 22px;\n height: 22px;\n visibility: hidden;\n}\n.rule-groups .rule-group td.remove a:before {\n position: relative;\n top: -2px;\n font-size: 16px;\n}\n.rule-groups .rule-group tr:hover td.remove a {\n visibility: visible;\n}\n.rule-groups .rule-group select:empty {\n background: #f8f8f8;\n}\n.rule-groups:not(.rule-groups-multiple) .rule-group:first-child tr:first-child td.remove a {\n /* Don't allow user to delete the only rule group */\n visibility: hidden !important;\n}\n\n/*----------------------------------------------------------------------------\n*\n*\tOptions\n*\n*----------------------------------------------------------------------------*/\n#acf-field-group-options tr[data-name=hide_on_screen] li {\n float: left;\n width: 33%;\n}\n\n@media (max-width: 1100px) {\n #acf-field-group-options tr[data-name=hide_on_screen] li {\n width: 50%;\n }\n}\n/*----------------------------------------------------------------------------\n*\n*\tConditional Logic\n*\n*----------------------------------------------------------------------------*/\ntable.conditional-logic-rules {\n background: transparent;\n border: 0 none;\n border-radius: 0;\n}\n\ntable.conditional-logic-rules tbody td {\n background: transparent;\n border: 0 none !important;\n padding: 5px 2px !important;\n}\n\n/*----------------------------------------------------------------------------\n*\n*\tField: Tab\n*\n*----------------------------------------------------------------------------*/\n.acf-field-object-tab .acf-field-setting-name,\n.acf-field-object-tab .acf-field-setting-instructions,\n.acf-field-object-tab .acf-field-setting-required,\n.acf-field-object-tab .acf-field-setting-warning,\n.acf-field-object-tab .acf-field-setting-wrapper {\n display: none;\n}\n.acf-field-object-tab .li-field-name {\n visibility: hidden;\n}\n.acf-field-object-tab p:first-child {\n margin: 0.5em 0;\n}\n.acf-field-object-tab li.acf-settings-type-presentation,\n.acf-field-object-tab .acf-field-settings-main-presentation {\n display: none !important;\n}\n\n/*----------------------------------------------------------------------------\n*\n*\tField: Accordion\n*\n*----------------------------------------------------------------------------*/\n.acf-field-object-accordion .acf-field-setting-name,\n.acf-field-object-accordion .acf-field-setting-instructions,\n.acf-field-object-accordion .acf-field-setting-required,\n.acf-field-object-accordion .acf-field-setting-warning,\n.acf-field-object-accordion .acf-field-setting-wrapper {\n display: none;\n}\n.acf-field-object-accordion .li-field-name {\n visibility: hidden;\n}\n.acf-field-object-accordion p:first-child {\n margin: 0.5em 0;\n}\n.acf-field-object-accordion .acf-field-setting-instructions {\n display: block;\n}\n\n/*----------------------------------------------------------------------------\n*\n*\tField: Message\n*\n*----------------------------------------------------------------------------*/\n.acf-field-object-message tr[data-name=name],\n.acf-field-object-message tr[data-name=instructions],\n.acf-field-object-message tr[data-name=required] {\n display: none !important;\n}\n\n.acf-field-object-message .li-field-name {\n visibility: hidden;\n}\n\n.acf-field-object-message textarea {\n height: 175px !important;\n}\n\n/*----------------------------------------------------------------------------\n*\n*\tField: Separator\n*\n*----------------------------------------------------------------------------*/\n.acf-field-object-separator tr[data-name=name],\n.acf-field-object-separator tr[data-name=instructions],\n.acf-field-object-separator tr[data-name=required] {\n display: none !important;\n}\n\n/*----------------------------------------------------------------------------\n*\n*\tField: Date Picker\n*\n*----------------------------------------------------------------------------*/\n.acf-field-object-date-picker .acf-radio-list li,\n.acf-field-object-time-picker .acf-radio-list li,\n.acf-field-object-date-time-picker .acf-radio-list li {\n line-height: 25px;\n}\n.acf-field-object-date-picker .acf-radio-list span,\n.acf-field-object-time-picker .acf-radio-list span,\n.acf-field-object-date-time-picker .acf-radio-list span {\n display: inline-block;\n min-width: 10em;\n}\n.acf-field-object-date-picker .acf-radio-list input[type=text],\n.acf-field-object-time-picker .acf-radio-list input[type=text],\n.acf-field-object-date-time-picker .acf-radio-list input[type=text] {\n width: 100px;\n}\n\n.acf-field-object-date-time-picker .acf-radio-list span {\n min-width: 15em;\n}\n.acf-field-object-date-time-picker .acf-radio-list input[type=text] {\n width: 200px;\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tSlug\n*\n*--------------------------------------------------------------------------------------------*/\n#slugdiv .inside {\n padding: 12px;\n margin: 0;\n}\n#slugdiv input[type=text] {\n width: 100%;\n height: 28px;\n font-size: 14px;\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tRTL\n*\n*--------------------------------------------------------------------------------------------*/\nhtml[dir=rtl] .acf-field-object.open > .handle {\n margin: 0;\n}\n\n/*----------------------------------------------------------------------------\n*\n* Device\n*\n*----------------------------------------------------------------------------*/\n@media only screen and (max-width: 850px) {\n tr.acf-field,\n td.acf-label,\n td.acf-input {\n display: block !important;\n width: auto !important;\n border: 0 none !important;\n }\n tr.acf-field {\n border-top: #ededed solid 1px !important;\n margin-bottom: 0 !important;\n }\n td.acf-label {\n background: transparent !important;\n padding-bottom: 0 !important;\n }\n}\n/*----------------------------------------------------------------------------\n*\n* Subtle background on accordion & tab fields to separate them from others\n*\n*----------------------------------------------------------------------------*/\n.post-type-acf-field-group #acf-field-group-fields .acf-field-object-tab,\n.post-type-acf-field-group #acf-field-group-fields .acf-field-object-accordion {\n background-color: #F9FAFB;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Global\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-admin-page #wpcontent {\n line-height: 140%;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Links\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-admin-page a {\n color: #0783BE;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Headings\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-h1, .acf-admin-page h1,\n.acf-headerbar h1 {\n font-size: 21px;\n font-weight: 400;\n}\n\n.acf-h2, .post-type-acf-field-group #acf-field-group-fields .acf-field-list.-empty .no-fields-message .no-fields-message-inner h2, .acf-page-title, .acf-admin-page h2,\n.acf-headerbar h2 {\n font-size: 18px;\n font-weight: 400;\n}\n\n.acf-h3, .post-type-acf-field-group .acf-field-settings-fc_head label, .acf-admin-page #acf-popup .acf-popup-box .title h1,\n.acf-admin-page #acf-popup .acf-popup-box .title h2,\n.acf-admin-page #acf-popup .acf-popup-box .title h3,\n.acf-admin-page #acf-popup .acf-popup-box .title h4, .acf-admin-page h3,\n.acf-headerbar h3 {\n font-size: 16px;\n font-weight: 400;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Paragraphs\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-admin-page .p1 {\n font-size: 15px;\n}\n.acf-admin-page .p2, .acf-admin-page .post-type-acf-field-group #acf-field-group-fields .acf-field-list.-empty .no-fields-message .no-fields-message-inner p, .post-type-acf-field-group #acf-field-group-fields .acf-field-list.-empty .no-fields-message .no-fields-message-inner .acf-admin-page p {\n font-size: 14px;\n}\n.acf-admin-page .p3 {\n font-size: 13.5px;\n}\n.acf-admin-page .p4, .acf-admin-page .acf-field-list .acf-sortable-handle, .acf-field-list .acf-admin-page .acf-sortable-handle, .acf-admin-page .post-type-acf-field-group .acf-field-object .handle li.li-field-label a.edit-field, .post-type-acf-field-group .acf-field-object .handle li.li-field-label .acf-admin-page a.edit-field, .acf-admin-page .post-type-acf-field-group .acf-field-object .handle li, .post-type-acf-field-group .acf-field-object .handle .acf-admin-page li, .acf-admin-page .post-type-acf-field-group .acf-thead li, .post-type-acf-field-group .acf-thead .acf-admin-page li, .acf-admin-page .acf-input .select2-container.-acf .select2-selection__rendered, .acf-admin-page .button, .acf-admin-page input[type=text],\n.acf-admin-page input[type=search],\n.acf-admin-page input[type=number],\n.acf-admin-page textarea,\n.acf-admin-page select {\n font-size: 13px;\n}\n.acf-admin-page .p5, .acf-admin-page .acf-field-setting-display_format .acf-radio-list li label code, .acf-field-setting-display_format .acf-radio-list li label .acf-admin-page code,\n.acf-admin-page .acf-field-setting-return_format .acf-radio-list li label code,\n.acf-field-setting-return_format .acf-radio-list li label .acf-admin-page code, .acf-admin-page .acf-field-group-settings-footer .acf-created-on, .acf-field-group-settings-footer .acf-admin-page .acf-created-on, .acf-admin-page .acf-fields .acf-field-settings-tab-bar li a, .acf-fields .acf-field-settings-tab-bar li .acf-admin-page a,\n.acf-admin-page .acf-fields .acf-tab-wrap .acf-tab-group li a,\n.acf-fields .acf-tab-wrap .acf-tab-group li .acf-admin-page a,\n.acf-admin-page.acf-internal-post-type .acf-field-settings-tab-bar li a,\n.acf-admin-page.acf-internal-post-type .acf-tab-wrap .acf-tab-group li a,\n.acf-admin-page .acf-browse-fields-modal-wrap .acf-field-settings-tab-bar li a,\n.acf-browse-fields-modal-wrap .acf-field-settings-tab-bar li .acf-admin-page a,\n.acf-admin-page .acf-browse-fields-modal-wrap .acf-tab-wrap .acf-tab-group li a,\n.acf-browse-fields-modal-wrap .acf-tab-wrap .acf-tab-group li .acf-admin-page a {\n font-size: 12.5px;\n}\n.acf-admin-page .p6, .acf-admin-page .post-type-acf-field-group #acf-field-group-fields .acf-field-list.-empty .no-fields-message .no-fields-message-inner p.acf-small, .post-type-acf-field-group #acf-field-group-fields .acf-field-list.-empty .no-fields-message .no-fields-message-inner .acf-admin-page p.acf-small, .acf-admin-page .post-type-acf-field-group .acf-field-object .handle li.li-field-label .row-options a, .post-type-acf-field-group .acf-field-object .handle li.li-field-label .row-options .acf-admin-page a, .acf-admin-page .acf-small {\n font-size: 12px;\n}\n.acf-admin-page .p7 {\n font-size: 11.5px;\n}\n.acf-admin-page .p8 {\n font-size: 11px;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Page titles\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-page-title {\n color: #344054;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Hide old / native WP titles from pages\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-admin-page .acf-settings-wrap h1 {\n display: none !important;\n}\n.acf-admin-page #acf-admin-tools h1:not(.acf-field-group-pro-features-title, .acf-field-group-pro-features-title-sm) {\n display: none !important;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Small\n*\n*---------------------------------------------------------------------------------------------*/\n/*---------------------------------------------------------------------------------------------\n*\n* Link focus style\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-admin-page a:focus {\n box-shadow: none;\n outline: none;\n}\n.acf-admin-page a:focus-visible {\n box-shadow: 0 0 0 1px #4f94d4, 0 0 2px 1px rgba(79, 148, 212, 0.8);\n outline: 1px solid transparent;\n}\n\n.acf-admin-page {\n /*---------------------------------------------------------------------------------------------\n *\n * All Inputs\n *\n *---------------------------------------------------------------------------------------------*/\n /*---------------------------------------------------------------------------------------------\n *\n * Read only text inputs\n *\n *---------------------------------------------------------------------------------------------*/\n /*---------------------------------------------------------------------------------------------\n *\n * Number fields\n *\n *---------------------------------------------------------------------------------------------*/\n /*---------------------------------------------------------------------------------------------\n *\n * Textarea\n *\n *---------------------------------------------------------------------------------------------*/\n /*---------------------------------------------------------------------------------------------\n *\n * Select\n *\n *---------------------------------------------------------------------------------------------*/\n /*---------------------------------------------------------------------------------------------\n *\n * Radio Button & Checkbox base styling\n *\n *---------------------------------------------------------------------------------------------*/\n /*---------------------------------------------------------------------------------------------\n *\n * Radio Buttons\n *\n *---------------------------------------------------------------------------------------------*/\n /*---------------------------------------------------------------------------------------------\n *\n * Checkboxes\n *\n *---------------------------------------------------------------------------------------------*/\n /*---------------------------------------------------------------------------------------------\n *\n * Radio Buttons & Checkbox lists\n *\n *---------------------------------------------------------------------------------------------*/\n /*---------------------------------------------------------------------------------------------\n *\n * ACF Switch\n *\n *---------------------------------------------------------------------------------------------*/\n /*---------------------------------------------------------------------------------------------\n *\n * File input button\n *\n *---------------------------------------------------------------------------------------------*/\n /*---------------------------------------------------------------------------------------------\n *\n * Action Buttons\n *\n *---------------------------------------------------------------------------------------------*/\n /*---------------------------------------------------------------------------------------------\n *\n * Edit field group header\n *\n *---------------------------------------------------------------------------------------------*/\n /*---------------------------------------------------------------------------------------------\n *\n * Select2 inputs\n *\n *---------------------------------------------------------------------------------------------*/\n /*---------------------------------------------------------------------------------------------\n *\n * ACF label\n *\n *---------------------------------------------------------------------------------------------*/\n /*---------------------------------------------------------------------------------------------\n *\n * Tooltip for field name field setting (result of a fix for keyboard navigation)\n *\n *---------------------------------------------------------------------------------------------*/\n /* Field Type Selection select2 */\n /*---------------------------------------------------------------------------------------------\n *\n * RTL arrow position\n *\n *---------------------------------------------------------------------------------------------*/\n}\n.acf-admin-page input[type=text],\n.acf-admin-page input[type=search],\n.acf-admin-page input[type=number],\n.acf-admin-page textarea,\n.acf-admin-page select {\n box-sizing: border-box;\n height: 40px;\n padding-right: 12px;\n padding-left: 12px;\n background-color: #fff;\n border-color: #D0D5DD;\n box-shadow: 0px 1px 2px rgba(16, 24, 40, 0.1);\n border-radius: 6px;\n color: #344054;\n}\n.acf-admin-page input[type=text]:focus,\n.acf-admin-page input[type=search]:focus,\n.acf-admin-page input[type=number]:focus,\n.acf-admin-page textarea:focus,\n.acf-admin-page select:focus {\n outline: 3px solid #EBF5FA;\n border-color: #399CCB;\n}\n.acf-admin-page input[type=text]:disabled,\n.acf-admin-page input[type=search]:disabled,\n.acf-admin-page input[type=number]:disabled,\n.acf-admin-page textarea:disabled,\n.acf-admin-page select:disabled {\n background-color: #F9FAFB;\n color: #808a9e;\n}\n.acf-admin-page input[type=text]::placeholder,\n.acf-admin-page input[type=search]::placeholder,\n.acf-admin-page input[type=number]::placeholder,\n.acf-admin-page textarea::placeholder,\n.acf-admin-page select::placeholder {\n color: #98A2B3;\n}\n.acf-admin-page input[type=text]:read-only {\n background-color: #F9FAFB;\n color: #98A2B3;\n}\n.acf-admin-page .acf-field.acf-field-number .acf-label,\n.acf-admin-page .acf-field.acf-field-number .acf-input input[type=number] {\n max-width: 180px;\n}\n.acf-admin-page textarea {\n box-sizing: border-box;\n padding-top: 10px;\n padding-bottom: 10px;\n height: 80px;\n min-height: 56px;\n}\n.acf-admin-page select {\n min-width: 160px;\n max-width: 100%;\n padding-right: 40px;\n padding-left: 12px;\n background-image: url(\"../../images/icons/icon-chevron-down.svg\");\n background-position: right 10px top 50%;\n background-size: 20px;\n}\n.acf-admin-page select:hover, .acf-admin-page select:focus {\n color: #0783BE;\n}\n.acf-admin-page select::before {\n content: \"\";\n display: block;\n position: absolute;\n top: 5px;\n left: 5px;\n width: 20px;\n height: 20px;\n}\n.acf-admin-page.rtl select {\n padding-right: 12px;\n padding-left: 40px;\n background-position: left 10px top 50%;\n}\n.acf-admin-page input[type=radio],\n.acf-admin-page input[type=checkbox] {\n box-sizing: border-box;\n width: 16px;\n height: 16px;\n padding: 0;\n border-width: 1px;\n border-style: solid;\n border-color: #98A2B3;\n background: #fff;\n box-shadow: none;\n}\n.acf-admin-page input[type=radio]:hover,\n.acf-admin-page input[type=checkbox]:hover {\n background-color: #EBF5FA;\n border-color: #0783BE;\n}\n.acf-admin-page input[type=radio]:checked, .acf-admin-page input[type=radio]:focus-visible,\n.acf-admin-page input[type=checkbox]:checked,\n.acf-admin-page input[type=checkbox]:focus-visible {\n background-color: #EBF5FA;\n border-color: #0783BE;\n}\n.acf-admin-page input[type=radio]:checked:before, .acf-admin-page input[type=radio]:focus-visible:before,\n.acf-admin-page input[type=checkbox]:checked:before,\n.acf-admin-page input[type=checkbox]:focus-visible:before {\n content: \"\";\n position: relative;\n top: -1px;\n left: -1px;\n width: 16px;\n height: 16px;\n margin: 0;\n padding: 0;\n background-color: transparent;\n background-size: cover;\n background-repeat: no-repeat;\n background-position: center;\n}\n.acf-admin-page input[type=radio]:active,\n.acf-admin-page input[type=checkbox]:active {\n box-shadow: 0px 0px 0px 3px #EBF5FA, 0px 0px 0px rgba(255, 54, 54, 0.25);\n}\n.acf-admin-page input[type=radio]:disabled,\n.acf-admin-page input[type=checkbox]:disabled {\n background-color: #F9FAFB;\n border-color: #D0D5DD;\n}\n.acf-admin-page.rtl input[type=radio]:checked:before, .acf-admin-page.rtl input[type=radio]:focus-visible:before,\n.acf-admin-page.rtl input[type=checkbox]:checked:before,\n.acf-admin-page.rtl input[type=checkbox]:focus-visible:before {\n left: 1px;\n}\n.acf-admin-page input[type=radio]:checked:before, .acf-admin-page input[type=radio]:focus:before {\n background-image: url(\"../../images/field-states/radio-active.svg\");\n}\n.acf-admin-page input[type=checkbox]:checked:before, .acf-admin-page input[type=checkbox]:focus:before {\n background-image: url(\"../../images/field-states/checkbox-active.svg\");\n}\n.acf-admin-page .acf-radio-list li input[type=radio],\n.acf-admin-page .acf-radio-list li input[type=checkbox],\n.acf-admin-page .acf-checkbox-list li input[type=radio],\n.acf-admin-page .acf-checkbox-list li input[type=checkbox] {\n margin-right: 6px;\n}\n.acf-admin-page .acf-radio-list.acf-bl li,\n.acf-admin-page .acf-checkbox-list.acf-bl li {\n margin-bottom: 8px;\n}\n.acf-admin-page .acf-radio-list.acf-bl li:last-of-type,\n.acf-admin-page .acf-checkbox-list.acf-bl li:last-of-type {\n margin-bottom: 0;\n}\n.acf-admin-page .acf-radio-list label,\n.acf-admin-page .acf-checkbox-list label {\n display: flex;\n align-items: center;\n align-content: center;\n}\n.acf-admin-page .acf-switch {\n width: 42px;\n height: 24px;\n border: none;\n background-color: #D0D5DD;\n border-radius: 12px;\n}\n.acf-admin-page .acf-switch:hover {\n background-color: #98A2B3;\n}\n.acf-admin-page .acf-switch:active {\n box-shadow: 0px 0px 0px 3px #EBF5FA, 0px 0px 0px rgba(255, 54, 54, 0.25);\n}\n.acf-admin-page .acf-switch.-on {\n background-color: #0783BE;\n}\n.acf-admin-page .acf-switch.-on:hover {\n background-color: #066998;\n}\n.acf-admin-page .acf-switch.-on .acf-switch-slider {\n left: 20px;\n}\n.acf-admin-page .acf-switch .acf-switch-off,\n.acf-admin-page .acf-switch .acf-switch-on {\n visibility: hidden;\n}\n.acf-admin-page .acf-switch .acf-switch-slider {\n width: 20px;\n height: 20px;\n border: none;\n border-radius: 100px;\n box-shadow: 0px 1px 3px rgba(16, 24, 40, 0.1), 0px 1px 2px rgba(16, 24, 40, 0.06);\n}\n.acf-admin-page .acf-field-true-false {\n display: flex;\n align-items: flex-start;\n}\n.acf-admin-page .acf-field-true-false .acf-label {\n order: 2;\n display: block;\n align-items: center;\n margin-top: 2px;\n margin-bottom: 0;\n margin-left: 12px;\n}\n.acf-admin-page .acf-field-true-false .acf-label label {\n margin-bottom: 0;\n}\n.acf-admin-page .acf-field-true-false .acf-label .acf-tip {\n margin-left: 12px;\n}\n.acf-admin-page .acf-field-true-false .acf-label .description {\n display: block;\n margin-top: 2px;\n margin-left: 0;\n}\n.acf-admin-page.rtl .acf-field-true-false .acf-label {\n margin-right: 12px;\n margin-left: 0;\n}\n.acf-admin-page.rtl .acf-field-true-false .acf-tip {\n margin-right: 12px;\n margin-left: 0;\n}\n.acf-admin-page input::file-selector-button {\n box-sizing: border-box;\n min-height: 40px;\n margin-right: 16px;\n padding-top: 8px;\n padding-right: 16px;\n padding-bottom: 8px;\n padding-left: 16px;\n background-color: transparent;\n color: #0783BE !important;\n border-radius: 6px;\n border-width: 1px;\n border-style: solid;\n border-color: #0783BE;\n text-decoration: none;\n}\n.acf-admin-page input::file-selector-button:hover {\n border-color: #066998;\n cursor: pointer;\n color: #066998 !important;\n}\n.acf-admin-page .button {\n display: inline-flex;\n align-items: center;\n height: 40px;\n padding-right: 16px;\n padding-left: 16px;\n background-color: transparent;\n border-width: 1px;\n border-style: solid;\n border-color: #0783BE;\n border-radius: 6px;\n color: #0783BE;\n}\n.acf-admin-page .button:hover {\n background-color: #f3f9fc;\n border-color: #0783BE;\n color: #0783BE;\n}\n.acf-admin-page .button:focus {\n background-color: #f3f9fc;\n outline: 3px solid #EBF5FA;\n color: #0783BE;\n}\n.acf-admin-page .edit-field-group-header {\n display: block !important;\n}\n.acf-admin-page .acf-input .select2-container.-acf .select2-selection {\n border: none;\n line-height: 1;\n}\n.acf-admin-page .acf-input .select2-container.-acf .select2-selection__rendered {\n box-sizing: border-box;\n padding-right: 0;\n padding-left: 0;\n background-color: #fff;\n border-width: 1px;\n border-style: solid;\n border-color: #D0D5DD;\n box-shadow: 0px 1px 2px rgba(16, 24, 40, 0.1);\n border-radius: 6px;\n color: #344054;\n}\n.acf-admin-page .acf-input .select2-container--focus {\n outline: 3px solid #EBF5FA;\n border-color: #399CCB;\n border-radius: 6px;\n}\n.acf-admin-page .acf-input .select2-container--focus .select2-selection__rendered {\n border-color: #399CCB !important;\n}\n.acf-admin-page .acf-input .select2-container--focus.select2-container--below.select2-container--open .select2-selection__rendered {\n border-bottom-right-radius: 0 !important;\n border-bottom-left-radius: 0 !important;\n}\n.acf-admin-page .acf-input .select2-container--focus.select2-container--above.select2-container--open .select2-selection__rendered {\n border-top-right-radius: 0 !important;\n border-top-left-radius: 0 !important;\n}\n.acf-admin-page .acf-input .select2-container .select2-search--inline .select2-search__field {\n margin: 0;\n padding-left: 6px;\n}\n.acf-admin-page .acf-input .select2-container .select2-search--inline .select2-search__field:focus {\n outline: none;\n border: none;\n}\n.acf-admin-page .acf-input .select2-container--default .select2-selection--multiple .select2-selection__rendered {\n padding-top: 0;\n padding-right: 6px;\n padding-bottom: 0;\n padding-left: 6px;\n}\n.acf-admin-page .acf-input .select2-selection__clear {\n width: 18px;\n height: 18px;\n margin-top: 12px;\n margin-right: 1px;\n text-indent: 100%;\n white-space: nowrap;\n overflow: hidden;\n color: #fff;\n}\n.acf-admin-page .acf-input .select2-selection__clear:before {\n content: \"\";\n display: block;\n width: 16px;\n height: 16px;\n top: 0;\n left: 0;\n border: none;\n border-radius: 0;\n -webkit-mask-size: contain;\n mask-size: contain;\n -webkit-mask-repeat: no-repeat;\n mask-repeat: no-repeat;\n -webkit-mask-position: center;\n mask-position: center;\n -webkit-mask-image: url(\"../../images/icons/icon-close.svg\");\n mask-image: url(\"../../images/icons/icon-close.svg\");\n background-color: #98A2B3;\n}\n.acf-admin-page .acf-input .select2-selection__clear:hover::before {\n background-color: #0783BE;\n}\n.acf-admin-page .acf-label {\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n.acf-admin-page .acf-label .acf-icon-help {\n width: 18px;\n height: 18px;\n background-color: #98A2B3;\n}\n.acf-admin-page .acf-label label {\n margin-bottom: 0;\n}\n.acf-admin-page .acf-label .description {\n margin-top: 2px;\n}\n.acf-admin-page .acf-field-setting-name .acf-tip {\n position: absolute;\n top: 0;\n left: 654px;\n color: #98A2B3;\n}\n.rtl.acf-admin-page .acf-field-setting-name .acf-tip {\n left: auto;\n right: 654px;\n}\n\n.acf-admin-page .acf-field-setting-name .acf-tip .acf-icon-help {\n width: 18px;\n height: 18px;\n}\n.acf-admin-page .acf-field-setting-type .select2-container.-acf,\n.acf-admin-page .acf-field-permalink-rewrite .select2-container.-acf,\n.acf-admin-page .acf-field-query-var .select2-container.-acf,\n.acf-admin-page .acf-field-manage-terms .select2-container.-acf,\n.acf-admin-page .acf-field-edit-terms .select2-container.-acf,\n.acf-admin-page .acf-field-delete-terms .select2-container.-acf,\n.acf-admin-page .acf-field-assign-terms .select2-container.-acf,\n.acf-admin-page .acf-field-meta-box .select2-container.-acf {\n min-height: 40px;\n}\n.acf-admin-page .acf-field-setting-type .select2-container--default .select2-selection--single .select2-selection__rendered,\n.acf-admin-page .acf-field-permalink-rewrite .select2-container--default .select2-selection--single .select2-selection__rendered,\n.acf-admin-page .acf-field-query-var .select2-container--default .select2-selection--single .select2-selection__rendered,\n.acf-admin-page .acf-field-manage-terms .select2-container--default .select2-selection--single .select2-selection__rendered,\n.acf-admin-page .acf-field-edit-terms .select2-container--default .select2-selection--single .select2-selection__rendered,\n.acf-admin-page .acf-field-delete-terms .select2-container--default .select2-selection--single .select2-selection__rendered,\n.acf-admin-page .acf-field-assign-terms .select2-container--default .select2-selection--single .select2-selection__rendered,\n.acf-admin-page .acf-field-meta-box .select2-container--default .select2-selection--single .select2-selection__rendered {\n display: flex;\n align-items: center;\n position: relative;\n z-index: 800;\n min-height: 40px;\n padding-top: 0;\n padding-right: 12px;\n padding-bottom: 0;\n padding-left: 12px;\n}\n.acf-admin-page .acf-field-setting-type .select2-container--default .select2-selection--single .field-type-icon,\n.acf-admin-page .acf-field-permalink-rewrite .select2-container--default .select2-selection--single .field-type-icon,\n.acf-admin-page .acf-field-query-var .select2-container--default .select2-selection--single .field-type-icon,\n.acf-admin-page .acf-field-manage-terms .select2-container--default .select2-selection--single .field-type-icon,\n.acf-admin-page .acf-field-edit-terms .select2-container--default .select2-selection--single .field-type-icon,\n.acf-admin-page .acf-field-delete-terms .select2-container--default .select2-selection--single .field-type-icon,\n.acf-admin-page .acf-field-assign-terms .select2-container--default .select2-selection--single .field-type-icon,\n.acf-admin-page .acf-field-meta-box .select2-container--default .select2-selection--single .field-type-icon {\n top: auto;\n width: 18px;\n height: 18px;\n margin-right: 2px;\n}\n.acf-admin-page .acf-field-setting-type .select2-container--default .select2-selection--single .field-type-icon:before,\n.acf-admin-page .acf-field-permalink-rewrite .select2-container--default .select2-selection--single .field-type-icon:before,\n.acf-admin-page .acf-field-query-var .select2-container--default .select2-selection--single .field-type-icon:before,\n.acf-admin-page .acf-field-manage-terms .select2-container--default .select2-selection--single .field-type-icon:before,\n.acf-admin-page .acf-field-edit-terms .select2-container--default .select2-selection--single .field-type-icon:before,\n.acf-admin-page .acf-field-delete-terms .select2-container--default .select2-selection--single .field-type-icon:before,\n.acf-admin-page .acf-field-assign-terms .select2-container--default .select2-selection--single .field-type-icon:before,\n.acf-admin-page .acf-field-meta-box .select2-container--default .select2-selection--single .field-type-icon:before {\n width: 9px;\n height: 9px;\n}\n.acf-admin-page .acf-field-setting-type .select2-container--open .select2-selection__rendered,\n.acf-admin-page .acf-field-permalink-rewrite .select2-container--open .select2-selection__rendered,\n.acf-admin-page .acf-field-query-var .select2-container--open .select2-selection__rendered,\n.acf-admin-page .acf-field-manage-terms .select2-container--open .select2-selection__rendered,\n.acf-admin-page .acf-field-edit-terms .select2-container--open .select2-selection__rendered,\n.acf-admin-page .acf-field-delete-terms .select2-container--open .select2-selection__rendered,\n.acf-admin-page .acf-field-assign-terms .select2-container--open .select2-selection__rendered,\n.acf-admin-page .acf-field-meta-box .select2-container--open .select2-selection__rendered {\n border-color: #6BB5D8 !important;\n border-bottom-color: #D0D5DD !important;\n}\n.acf-admin-page .acf-field-setting-type .select2-container--open.select2-container--below .select2-selection__rendered,\n.acf-admin-page .acf-field-permalink-rewrite .select2-container--open.select2-container--below .select2-selection__rendered,\n.acf-admin-page .acf-field-query-var .select2-container--open.select2-container--below .select2-selection__rendered,\n.acf-admin-page .acf-field-manage-terms .select2-container--open.select2-container--below .select2-selection__rendered,\n.acf-admin-page .acf-field-edit-terms .select2-container--open.select2-container--below .select2-selection__rendered,\n.acf-admin-page .acf-field-delete-terms .select2-container--open.select2-container--below .select2-selection__rendered,\n.acf-admin-page .acf-field-assign-terms .select2-container--open.select2-container--below .select2-selection__rendered,\n.acf-admin-page .acf-field-meta-box .select2-container--open.select2-container--below .select2-selection__rendered {\n border-bottom-right-radius: 0 !important;\n border-bottom-left-radius: 0 !important;\n}\n.acf-admin-page .acf-field-setting-type .select2-container--open.select2-container--above .select2-selection__rendered,\n.acf-admin-page .acf-field-permalink-rewrite .select2-container--open.select2-container--above .select2-selection__rendered,\n.acf-admin-page .acf-field-query-var .select2-container--open.select2-container--above .select2-selection__rendered,\n.acf-admin-page .acf-field-manage-terms .select2-container--open.select2-container--above .select2-selection__rendered,\n.acf-admin-page .acf-field-edit-terms .select2-container--open.select2-container--above .select2-selection__rendered,\n.acf-admin-page .acf-field-delete-terms .select2-container--open.select2-container--above .select2-selection__rendered,\n.acf-admin-page .acf-field-assign-terms .select2-container--open.select2-container--above .select2-selection__rendered,\n.acf-admin-page .acf-field-meta-box .select2-container--open.select2-container--above .select2-selection__rendered {\n border-top-right-radius: 0 !important;\n border-top-left-radius: 0 !important;\n border-bottom-color: #6BB5D8 !important;\n border-top-color: #D0D5DD !important;\n}\n.acf-admin-page .acf-field-setting-type .acf-selection.has-icon,\n.acf-admin-page .acf-field-permalink-rewrite .acf-selection.has-icon,\n.acf-admin-page .acf-field-query-var .acf-selection.has-icon,\n.acf-admin-page .acf-field-manage-terms .acf-selection.has-icon,\n.acf-admin-page .acf-field-edit-terms .acf-selection.has-icon,\n.acf-admin-page .acf-field-delete-terms .acf-selection.has-icon,\n.acf-admin-page .acf-field-assign-terms .acf-selection.has-icon,\n.acf-admin-page .acf-field-meta-box .acf-selection.has-icon {\n margin-left: 6px;\n}\n.rtl.acf-admin-page .acf-field-setting-type .acf-selection.has-icon, .acf-admin-page .acf-field-permalink-rewrite .acf-selection.has-icon, .acf-admin-page .acf-field-query-var .acf-selection.has-icon, .acf-admin-page .acf-field-manage-terms .acf-selection.has-icon, .acf-admin-page .acf-field-edit-terms .acf-selection.has-icon, .acf-admin-page .acf-field-delete-terms .acf-selection.has-icon, .acf-admin-page .acf-field-assign-terms .acf-selection.has-icon, .acf-admin-page .acf-field-meta-box .acf-selection.has-icon {\n margin-right: 6px;\n}\n\n.acf-admin-page .acf-field-setting-type .select2-selection__arrow,\n.acf-admin-page .acf-field-permalink-rewrite .select2-selection__arrow,\n.acf-admin-page .acf-field-query-var .select2-selection__arrow,\n.acf-admin-page .acf-field-manage-terms .select2-selection__arrow,\n.acf-admin-page .acf-field-edit-terms .select2-selection__arrow,\n.acf-admin-page .acf-field-delete-terms .select2-selection__arrow,\n.acf-admin-page .acf-field-assign-terms .select2-selection__arrow,\n.acf-admin-page .acf-field-meta-box .select2-selection__arrow {\n width: 20px;\n height: 20px;\n top: calc(50% - 10px);\n right: 12px;\n background-color: transparent;\n}\n.acf-admin-page .acf-field-setting-type .select2-selection__arrow:after,\n.acf-admin-page .acf-field-permalink-rewrite .select2-selection__arrow:after,\n.acf-admin-page .acf-field-query-var .select2-selection__arrow:after,\n.acf-admin-page .acf-field-manage-terms .select2-selection__arrow:after,\n.acf-admin-page .acf-field-edit-terms .select2-selection__arrow:after,\n.acf-admin-page .acf-field-delete-terms .select2-selection__arrow:after,\n.acf-admin-page .acf-field-assign-terms .select2-selection__arrow:after,\n.acf-admin-page .acf-field-meta-box .select2-selection__arrow:after {\n content: \"\";\n display: block;\n position: absolute;\n z-index: 850;\n top: 1px;\n left: 0;\n width: 20px;\n height: 20px;\n -webkit-mask-image: url(\"../../images/icons/icon-chevron-down.svg\");\n mask-image: url(\"../../images/icons/icon-chevron-down.svg\");\n background-color: #667085;\n border: none;\n border-radius: 0;\n -webkit-mask-size: contain;\n mask-size: contain;\n -webkit-mask-repeat: no-repeat;\n mask-repeat: no-repeat;\n -webkit-mask-position: center;\n mask-position: center;\n text-indent: 500%;\n white-space: nowrap;\n overflow: hidden;\n}\n.acf-admin-page .acf-field-setting-type .select2-selection__arrow b[role=presentation],\n.acf-admin-page .acf-field-permalink-rewrite .select2-selection__arrow b[role=presentation],\n.acf-admin-page .acf-field-query-var .select2-selection__arrow b[role=presentation],\n.acf-admin-page .acf-field-manage-terms .select2-selection__arrow b[role=presentation],\n.acf-admin-page .acf-field-edit-terms .select2-selection__arrow b[role=presentation],\n.acf-admin-page .acf-field-delete-terms .select2-selection__arrow b[role=presentation],\n.acf-admin-page .acf-field-assign-terms .select2-selection__arrow b[role=presentation],\n.acf-admin-page .acf-field-meta-box .select2-selection__arrow b[role=presentation] {\n display: none;\n}\n.acf-admin-page .acf-field-setting-type .select2-container--open .select2-selection__arrow:after,\n.acf-admin-page .acf-field-permalink-rewrite .select2-container--open .select2-selection__arrow:after,\n.acf-admin-page .acf-field-query-var .select2-container--open .select2-selection__arrow:after,\n.acf-admin-page .acf-field-manage-terms .select2-container--open .select2-selection__arrow:after,\n.acf-admin-page .acf-field-edit-terms .select2-container--open .select2-selection__arrow:after,\n.acf-admin-page .acf-field-delete-terms .select2-container--open .select2-selection__arrow:after,\n.acf-admin-page .acf-field-assign-terms .select2-container--open .select2-selection__arrow:after,\n.acf-admin-page .acf-field-meta-box .select2-container--open .select2-selection__arrow:after {\n -webkit-mask-image: url(\"../../images/icons/icon-chevron-up.svg\");\n mask-image: url(\"../../images/icons/icon-chevron-up.svg\");\n}\n.acf-admin-page .field-type-select-results {\n position: relative;\n top: 4px;\n z-index: 1002;\n border-radius: 0 0 6px 6px;\n box-shadow: 0px 8px 24px 4px rgba(16, 24, 40, 0.12);\n}\n.acf-admin-page .field-type-select-results.select2-dropdown--above {\n display: flex;\n flex-direction: column-reverse;\n top: 0;\n border-radius: 6px 6px 0 0;\n z-index: 1030;\n}\n.select2-container.select2-container--open.acf-admin-page .field-type-select-results {\n box-shadow: 0px 0px 0px 3px #EBF5FA, 0px 8px 24px 4px rgba(16, 24, 40, 0.12);\n}\n\n.acf-admin-page .field-type-select-results .acf-selection.has-icon {\n margin-left: 6px;\n}\n.rtl.acf-admin-page .field-type-select-results .acf-selection.has-icon {\n margin-right: 6px;\n}\n\n.acf-admin-page .field-type-select-results .select2-search {\n position: relative;\n margin: 0;\n padding: 0;\n}\n.acf-admin-page .field-type-select-results .select2-search--dropdown:after {\n content: \"\";\n display: block;\n position: absolute;\n top: 12px;\n left: 13px;\n width: 16px;\n height: 16px;\n -webkit-mask-image: url(\"../../images/icons/icon-search.svg\");\n mask-image: url(\"../../images/icons/icon-search.svg\");\n background-color: #98A2B3;\n border: none;\n border-radius: 0;\n -webkit-mask-size: contain;\n mask-size: contain;\n -webkit-mask-repeat: no-repeat;\n mask-repeat: no-repeat;\n -webkit-mask-position: center;\n mask-position: center;\n text-indent: 500%;\n white-space: nowrap;\n overflow: hidden;\n}\n.rtl.acf-admin-page .field-type-select-results .select2-search--dropdown:after {\n right: 12px;\n left: auto;\n}\n\n.acf-admin-page .field-type-select-results .select2-search .select2-search__field {\n padding-left: 38px;\n border-right: 0;\n border-bottom: 0;\n border-left: 0;\n border-radius: 0;\n}\n.rtl.acf-admin-page .field-type-select-results .select2-search .select2-search__field {\n padding-right: 38px;\n padding-left: 0;\n}\n\n.acf-admin-page .field-type-select-results .select2-search .select2-search__field:focus {\n border-top-color: #D0D5DD;\n outline: 0;\n}\n.acf-admin-page .field-type-select-results .select2-results__options {\n max-height: 440px;\n}\n.acf-admin-page .field-type-select-results .select2-results__option .select2-results__option--highlighted {\n background-color: #0783BE !important;\n color: #F9FAFB !important;\n}\n.acf-admin-page .field-type-select-results .select2-results__option .select2-results__option {\n display: inline-flex;\n position: relative;\n width: calc(100% - 24px);\n min-height: 32px;\n padding-top: 0;\n padding-right: 12px;\n padding-bottom: 0;\n padding-left: 12px;\n align-items: center;\n}\n.acf-admin-page .field-type-select-results .select2-results__option .select2-results__option .field-type-icon {\n top: auto;\n width: 18px;\n height: 18px;\n margin-right: 2px;\n box-shadow: 0 0 0 1px #F9FAFB;\n}\n.acf-admin-page .field-type-select-results .select2-results__option .select2-results__option .field-type-icon:before {\n width: 9px;\n height: 9px;\n}\n.acf-admin-page .field-type-select-results .select2-results__option[aria-selected=true] {\n background-color: #EBF5FA !important;\n color: #344054 !important;\n}\n.acf-admin-page .field-type-select-results .select2-results__option[aria-selected=true]:after {\n content: \"\";\n right: 13px;\n position: absolute;\n width: 16px;\n height: 16px;\n -webkit-mask-image: url(\"../../images/icons/icon-check.svg\");\n mask-image: url(\"../../images/icons/icon-check.svg\");\n background-color: #0783BE;\n border: none;\n border-radius: 0;\n -webkit-mask-size: contain;\n mask-size: contain;\n -webkit-mask-repeat: no-repeat;\n mask-repeat: no-repeat;\n -webkit-mask-position: center;\n mask-position: center;\n text-indent: 500%;\n white-space: nowrap;\n overflow: hidden;\n}\n.rtl.acf-admin-page .field-type-select-results .select2-results__option[aria-selected=true]:after {\n left: 13px;\n right: auto;\n}\n\n.acf-admin-page .field-type-select-results .select2-results__group {\n display: inline-flex;\n align-items: center;\n width: calc(100% - 24px);\n min-height: 25px;\n background-color: #F9FAFB;\n border-top-width: 1px;\n border-top-style: solid;\n border-top-color: #EAECF0;\n border-bottom-width: 1px;\n border-bottom-style: solid;\n border-bottom-color: #EAECF0;\n color: #98A2B3;\n font-size: 11px;\n margin-bottom: 0;\n padding-top: 0;\n padding-right: 12px;\n padding-bottom: 0;\n padding-left: 12px;\n font-weight: normal;\n}\n.acf-admin-page.rtl .acf-field-setting-type .select2-selection__arrow:after,\n.acf-admin-page.rtl .acf-field-permalink-rewrite .select2-selection__arrow:after,\n.acf-admin-page.rtl .acf-field-query-var .select2-selection__arrow:after {\n right: auto;\n left: 10px;\n}\n\n.rtl.post-type-acf-field-group .acf-field-setting-name .acf-tip,\n.rtl.acf-internal-post-type .acf-field-setting-name .acf-tip {\n left: auto;\n right: 654px;\n}\n\n/*----------------------------------------------------------------------------\n*\n* Container sizes\n*\n*----------------------------------------------------------------------------*/\n.post-type-acf-field-group .metabox-holder.columns-1 #acf-field-group-fields,\n.post-type-acf-field-group .metabox-holder.columns-1 #acf-field-group-options,\n.post-type-acf-field-group .metabox-holder.columns-1 .meta-box-sortables.ui-sortable,\n.post-type-acf-field-group .metabox-holder.columns-1 .notice {\n max-width: 1440px;\n}\n\n/*----------------------------------------------------------------------------\n*\n* Max width for notices in 1 column edit field group layout\n*\n*----------------------------------------------------------------------------*/\n.post-type-acf-field-group.columns-1 .notice {\n max-width: 1440px;\n}\n\n/*----------------------------------------------------------------------------\n*\n* Widen edit field group headerbar for 2 column layout\n*\n*----------------------------------------------------------------------------*/\n.post-type-acf-field-group.columns-2 .acf-headerbar .acf-headerbar-inner {\n max-width: 100%;\n}\n\n/*----------------------------------------------------------------------------\n*\n* Post stuff\n*\n*----------------------------------------------------------------------------*/\n.post-type-acf-field-group #poststuff {\n margin-top: 0;\n margin-right: 0;\n margin-bottom: 0;\n margin-left: 0;\n padding-top: 0;\n padding-right: 0;\n padding-bottom: 0;\n padding-left: 0;\n}\n\n/*----------------------------------------------------------------------------\n*\n* Table\n*\n*----------------------------------------------------------------------------*/\n.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap {\n overflow: hidden;\n border: none;\n border-radius: 0 0 8px 8px;\n box-shadow: 0px 1px 2px rgba(16, 24, 40, 0.1);\n}\n.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap.-empty {\n border-top-width: 1px;\n border-top-style: solid;\n border-top-color: #EAECF0;\n}\n.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap.-empty .acf-thead,\n.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap.-empty .acf-tfoot {\n display: none;\n}\n.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap.-empty .no-fields-message {\n min-height: 280px;\n}\n\n/*----------------------------------------------------------------------------\n*\n* Table header\n*\n*----------------------------------------------------------------------------*/\n.post-type-acf-field-group .acf-thead {\n background-color: #F9FAFB;\n border-top-width: 1px;\n border-top-style: solid;\n border-top-color: #EAECF0;\n border-bottom-width: 1px;\n border-bottom-style: solid;\n border-bottom-color: #EAECF0;\n}\n.post-type-acf-field-group .acf-thead li {\n display: flex;\n align-items: center;\n min-height: 48px;\n padding-top: 0;\n padding-bottom: 0;\n color: #344054;\n font-weight: 500;\n}\n\n/*----------------------------------------------------------------------------\n*\n* Table body\n*\n*----------------------------------------------------------------------------*/\n.post-type-acf-field-group .acf-field-object {\n border-top-width: 1px;\n border-top-style: solid;\n border-top-color: #EAECF0;\n}\n.post-type-acf-field-group .acf-field-object:hover .acf-sortable-handle:before {\n display: inline-flex;\n}\n.post-type-acf-field-group .acf-field-object.acf-field-is-endpoint:before {\n display: block;\n content: \"\";\n height: 2px;\n width: 100%;\n background: #D0D5DD;\n margin-top: -1px;\n}\n.post-type-acf-field-group .acf-field-object.acf-field-is-endpoint.acf-field-object-accordion:before {\n display: none;\n}\n.post-type-acf-field-group .acf-field-object.acf-field-is-endpoint.acf-field-object-accordion:after {\n display: block;\n content: \"\";\n height: 2px;\n width: 100%;\n background: #D0D5DD;\n z-index: 500;\n}\n.post-type-acf-field-group .acf-field-object:hover {\n background-color: #f7fbfd;\n}\n.post-type-acf-field-group .acf-field-object.open {\n background-color: #fff;\n border-top-color: #A5D2E7;\n}\n.post-type-acf-field-group .acf-field-object.open .handle {\n background-color: #D8EBF5;\n border: none;\n text-shadow: none;\n}\n.post-type-acf-field-group .acf-field-object.open .handle a {\n color: #0783BE !important;\n}\n.post-type-acf-field-group .acf-field-object.open .handle a.delete-field {\n color: #a00 !important;\n}\n.post-type-acf-field-group .acf-field-object .acf-field-setting-type .acf-hl {\n margin: 0;\n}\n.post-type-acf-field-group .acf-field-object .acf-field-setting-type .acf-hl li {\n width: auto;\n}\n.post-type-acf-field-group .acf-field-object .acf-field-setting-type .acf-hl li:first-child {\n flex-grow: 1;\n margin-left: -10px;\n}\n.post-type-acf-field-group .acf-field-object .acf-field-setting-type .acf-hl li:nth-child(2) {\n padding-right: 0;\n}\n.post-type-acf-field-group .acf-field-object ul.acf-hl {\n display: flex;\n align-items: stretch;\n}\n.post-type-acf-field-group .acf-field-object .handle li {\n display: flex;\n align-items: top;\n flex-wrap: wrap;\n min-height: 60px;\n color: #344054;\n}\n.post-type-acf-field-group .acf-field-object .handle li.li-field-label {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start;\n align-content: flex-start;\n align-items: flex-start;\n width: auto;\n}\n.post-type-acf-field-group .acf-field-object .handle li.li-field-label strong {\n font-weight: 500;\n}\n.post-type-acf-field-group .acf-field-object .handle li.li-field-label .row-options {\n width: 100%;\n}\n/*----------------------------------------------------------------------------\n*\n* Table footer\n*\n*----------------------------------------------------------------------------*/\n.post-type-acf-field-group .acf-tfoot {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n min-height: 80px;\n box-sizing: border-box;\n padding-top: 8px;\n padding-right: 24px;\n padding-bottom: 8px;\n padding-left: 24px;\n background-color: #fff;\n border-top-width: 1px;\n border-top-style: solid;\n border-top-color: #EAECF0;\n}\n.post-type-acf-field-group .acf-tfoot .acf-fr {\n margin-top: 0;\n margin-right: 0;\n margin-bottom: 0;\n margin-left: 0;\n padding-top: 0;\n padding-right: 0;\n padding-bottom: 0;\n padding-left: 0;\n}\n\n/*----------------------------------------------------------------------------\n*\n* Edit field settings\n*\n*----------------------------------------------------------------------------*/\n.post-type-acf-field-group .acf-field-object .settings {\n box-sizing: border-box;\n padding-top: 0;\n padding-bottom: 0;\n background-color: #fff;\n border-left-width: 4px;\n border-left-style: solid;\n border-left-color: #6BB5D8;\n}\n\n/*----------------------------------------------------------------------------\n*\n* Main field settings container\n*\n*----------------------------------------------------------------------------*/\n.acf-field-settings-main {\n padding-top: 32px;\n padding-right: 0;\n padding-bottom: 32px;\n padding-left: 0;\n}\n.acf-field-settings-main .acf-field:last-of-type {\n margin-bottom: 0;\n}\n\n/*----------------------------------------------------------------------------\n*\n* Field label\n*\n*----------------------------------------------------------------------------*/\n.acf-field-settings .acf-label {\n display: block;\n justify-content: space-between;\n align-items: center;\n align-content: center;\n margin-top: 0;\n margin-right: 0;\n margin-bottom: 6px;\n margin-left: 0;\n}\n\n/*----------------------------------------------------------------------------\n*\n* Single field\n*\n*----------------------------------------------------------------------------*/\n.acf-field-settings .acf-field {\n box-sizing: border-box;\n width: 100%;\n margin-top: 0;\n margin-right: 0;\n margin-bottom: 32px;\n margin-left: 0;\n padding-top: 0;\n padding-right: 72px;\n padding-bottom: 0;\n padding-left: 72px;\n}\n@media screen and (max-width: 600px) {\n .acf-field-settings .acf-field {\n padding-right: 12px;\n padding-left: 12px;\n }\n}\n.acf-field-settings .acf-field .acf-label,\n.acf-field-settings .acf-field .acf-input {\n max-width: 600px;\n}\n.acf-field-settings .acf-field .acf-label.acf-input-sub,\n.acf-field-settings .acf-field .acf-input.acf-input-sub {\n max-width: 100%;\n}\n.acf-field-settings .acf-field .acf-label .acf-btn:disabled,\n.acf-field-settings .acf-field .acf-input .acf-btn:disabled {\n background-color: #F2F4F7;\n color: #98A2B3 !important;\n border: 1px #D0D5DD solid;\n cursor: default;\n}\n.acf-field-settings .acf-field .acf-input-wrap {\n overflow: visible;\n}\n\n/*----------------------------------------------------------------------------\n*\n* Field separators\n*\n*----------------------------------------------------------------------------*/\n.acf-field-settings .acf-field.acf-field-setting-label,\n.acf-field-settings .acf-field-setting-wrapper {\n padding-top: 24px;\n border-top-width: 1px;\n border-top-style: solid;\n border-top-color: #EAECF0;\n}\n\n.acf-field-settings .acf-field-setting-wrapper {\n margin-top: 24px;\n}\n\n/*----------------------------------------------------------------------------\n*\n* Edit fields footer\n*\n*----------------------------------------------------------------------------*/\n.acf-field-settings .acf-field-settings-footer {\n display: flex;\n align-items: center;\n min-height: 72px;\n box-sizing: border-box;\n width: 100%;\n margin-top: 0;\n margin-right: 0;\n margin-bottom: 0;\n margin-left: 0;\n padding-top: 0;\n padding-right: 0;\n padding-bottom: 0;\n padding-left: 72px;\n border-top-width: 1px;\n border-top-style: solid;\n border-top-color: #EAECF0;\n}\n@media screen and (max-width: 600px) {\n .acf-field-settings .acf-field-settings-footer {\n padding-left: 12px;\n }\n}\n\n.rtl .acf-field-settings .acf-field-settings-footer {\n padding-top: 0;\n padding-right: 72px;\n padding-bottom: 0;\n padding-left: 0;\n}\n\n/*----------------------------------------------------------------------------\n*\n* Tabs\n*\n*----------------------------------------------------------------------------*/\n.acf-fields .acf-tab-wrap,\n.acf-admin-page.acf-internal-post-type .acf-tab-wrap,\n.acf-browse-fields-modal-wrap .acf-tab-wrap {\n background: #F9FAFB;\n border-bottom-color: #1D2939;\n}\n.acf-fields .acf-tab-wrap .acf-tab-group,\n.acf-admin-page.acf-internal-post-type .acf-tab-wrap .acf-tab-group,\n.acf-browse-fields-modal-wrap .acf-tab-wrap .acf-tab-group {\n padding-right: 24px;\n padding-left: 24px;\n border-top-width: 0;\n border-bottom-width: 1px;\n border-bottom-style: solid;\n border-bottom-color: #EAECF0;\n}\n.acf-fields .acf-field-settings-tab-bar,\n.acf-fields .acf-tab-wrap .acf-tab-group,\n.acf-admin-page.acf-internal-post-type .acf-field-settings-tab-bar,\n.acf-admin-page.acf-internal-post-type .acf-tab-wrap .acf-tab-group,\n.acf-browse-fields-modal-wrap .acf-field-settings-tab-bar,\n.acf-browse-fields-modal-wrap .acf-tab-wrap .acf-tab-group {\n display: flex;\n align-items: stretch;\n min-height: 48px;\n padding-top: 0;\n padding-right: 0;\n padding-bottom: 0;\n padding-left: 24px;\n margin-top: 0;\n margin-bottom: 0;\n border-bottom-width: 1px;\n border-bottom-style: solid;\n border-bottom-color: #EAECF0;\n}\n.acf-fields .acf-field-settings-tab-bar li,\n.acf-fields .acf-tab-wrap .acf-tab-group li,\n.acf-admin-page.acf-internal-post-type .acf-field-settings-tab-bar li,\n.acf-admin-page.acf-internal-post-type .acf-tab-wrap .acf-tab-group li,\n.acf-browse-fields-modal-wrap .acf-field-settings-tab-bar li,\n.acf-browse-fields-modal-wrap .acf-tab-wrap .acf-tab-group li {\n display: flex;\n margin-top: 0;\n margin-right: 24px;\n margin-bottom: 0;\n margin-left: 0;\n padding: 0;\n}\n.acf-fields .acf-field-settings-tab-bar li a,\n.acf-fields .acf-tab-wrap .acf-tab-group li a,\n.acf-admin-page.acf-internal-post-type .acf-field-settings-tab-bar li a,\n.acf-admin-page.acf-internal-post-type .acf-tab-wrap .acf-tab-group li a,\n.acf-browse-fields-modal-wrap .acf-field-settings-tab-bar li a,\n.acf-browse-fields-modal-wrap .acf-tab-wrap .acf-tab-group li a {\n box-sizing: border-box;\n display: inline-flex;\n align-items: center;\n height: 100%;\n padding-top: 3px;\n padding-right: 0;\n padding-bottom: 0;\n padding-left: 0;\n background: none;\n border-top: none;\n border-right: none;\n border-bottom-width: 3px;\n border-bottom-style: solid;\n border-bottom-color: transparent;\n border-left: none;\n color: #667085;\n font-weight: normal;\n}\n.acf-fields .acf-field-settings-tab-bar li a:focus-visible,\n.acf-fields .acf-tab-wrap .acf-tab-group li a:focus-visible,\n.acf-admin-page.acf-internal-post-type .acf-field-settings-tab-bar li a:focus-visible,\n.acf-admin-page.acf-internal-post-type .acf-tab-wrap .acf-tab-group li a:focus-visible,\n.acf-browse-fields-modal-wrap .acf-field-settings-tab-bar li a:focus-visible,\n.acf-browse-fields-modal-wrap .acf-tab-wrap .acf-tab-group li a:focus-visible {\n border: 1px solid #5897fb;\n}\n.acf-fields .acf-field-settings-tab-bar li a:hover,\n.acf-fields .acf-tab-wrap .acf-tab-group li a:hover,\n.acf-admin-page.acf-internal-post-type .acf-field-settings-tab-bar li a:hover,\n.acf-admin-page.acf-internal-post-type .acf-tab-wrap .acf-tab-group li a:hover,\n.acf-browse-fields-modal-wrap .acf-field-settings-tab-bar li a:hover,\n.acf-browse-fields-modal-wrap .acf-tab-wrap .acf-tab-group li a:hover {\n color: #1D2939;\n}\n.acf-fields .acf-field-settings-tab-bar li a:hover,\n.acf-fields .acf-tab-wrap .acf-tab-group li a:hover,\n.acf-admin-page.acf-internal-post-type .acf-field-settings-tab-bar li a:hover,\n.acf-admin-page.acf-internal-post-type .acf-tab-wrap .acf-tab-group li a:hover,\n.acf-browse-fields-modal-wrap .acf-field-settings-tab-bar li a:hover,\n.acf-browse-fields-modal-wrap .acf-tab-wrap .acf-tab-group li a:hover {\n background-color: transparent;\n}\n.acf-fields .acf-field-settings-tab-bar li.active a,\n.acf-fields .acf-tab-wrap .acf-tab-group li.active a,\n.acf-admin-page.acf-internal-post-type .acf-field-settings-tab-bar li.active a,\n.acf-admin-page.acf-internal-post-type .acf-tab-wrap .acf-tab-group li.active a,\n.acf-browse-fields-modal-wrap .acf-field-settings-tab-bar li.active a,\n.acf-browse-fields-modal-wrap .acf-tab-wrap .acf-tab-group li.active a {\n background: none;\n border-bottom-color: #0783BE;\n color: #0783BE;\n}\n.acf-fields .acf-field-settings-tab-bar li.active a:focus-visible,\n.acf-fields .acf-tab-wrap .acf-tab-group li.active a:focus-visible,\n.acf-admin-page.acf-internal-post-type .acf-field-settings-tab-bar li.active a:focus-visible,\n.acf-admin-page.acf-internal-post-type .acf-tab-wrap .acf-tab-group li.active a:focus-visible,\n.acf-browse-fields-modal-wrap .acf-field-settings-tab-bar li.active a:focus-visible,\n.acf-browse-fields-modal-wrap .acf-tab-wrap .acf-tab-group li.active a:focus-visible {\n border-bottom-color: #0783BE;\n border-bottom-width: 3px;\n}\n\n.acf-admin-page.acf-internal-post-type .acf-field-editor .acf-field-settings-tab-bar {\n padding-left: 72px;\n}\n@media screen and (max-width: 600px) {\n .acf-admin-page.acf-internal-post-type .acf-field-editor .acf-field-settings-tab-bar {\n padding-left: 12px;\n }\n}\n\n/*----------------------------------------------------------------------------\n*\n* Field group settings\n*\n*----------------------------------------------------------------------------*/\n#acf-field-group-options .field-group-settings-tab {\n padding-top: 24px;\n padding-right: 24px;\n padding-bottom: 24px;\n padding-left: 24px;\n}\n#acf-field-group-options .field-group-settings-tab .acf-field:last-of-type {\n padding: 0;\n}\n#acf-field-group-options .acf-field {\n border: none;\n margin-top: 0;\n margin-right: 0;\n margin-bottom: 0;\n margin-left: 0;\n padding-top: 0;\n padding-right: 0;\n padding-bottom: 24px;\n padding-left: 0;\n}\n#acf-field-group-options .field-group-setting-split-container {\n display: flex;\n padding-top: 0;\n padding-right: 0;\n padding-bottom: 0;\n padding-left: 0;\n}\n#acf-field-group-options .field-group-setting-split-container .field-group-setting-split {\n box-sizing: border-box;\n padding-top: 24px;\n padding-right: 24px;\n padding-bottom: 24px;\n padding-left: 24px;\n}\n#acf-field-group-options .field-group-setting-split-container .field-group-setting-split:nth-child(1) {\n flex: 1 0 auto;\n}\n#acf-field-group-options .field-group-setting-split-container .field-group-setting-split:nth-child(2n) {\n flex: 1 0 auto;\n max-width: 320px;\n margin-top: 0;\n margin-right: 0;\n margin-bottom: 0;\n margin-left: 32px;\n padding-right: 32px;\n padding-left: 32px;\n border-left-width: 1px;\n border-left-style: solid;\n border-left-color: #EAECF0;\n}\n#acf-field-group-options .acf-field[data-name=description] {\n max-width: 600px;\n}\n#acf-field-group-options .acf-button-group {\n display: inline-flex;\n}\n\n.rtl #acf-field-group-options .field-group-setting-split-container .field-group-setting-split:nth-child(2n) {\n margin-right: 32px;\n margin-left: 0;\n border-left: none;\n border-right-width: 1px;\n border-right-style: solid;\n border-right-color: #EAECF0;\n}\n\n/*----------------------------------------------------------------------------\n*\n* Reorder handles\n*\n*----------------------------------------------------------------------------*/\n.acf-field-list .li-field-order {\n padding: 0;\n display: flex;\n flex-direction: row;\n flex-wrap: nowrap;\n justify-content: center;\n align-content: stretch;\n align-items: stretch;\n background-color: transparent;\n}\n.acf-field-list .acf-sortable-handle {\n display: flex;\n flex-direction: row;\n flex-wrap: nowrap;\n justify-content: center;\n align-content: flex-start;\n align-items: flex-start;\n width: 100%;\n height: 100%;\n position: relative;\n padding-top: 11px;\n padding-bottom: 8px;\n background-color: transparent;\n border: none;\n border-radius: 0;\n}\n.acf-field-list .acf-sortable-handle:hover {\n cursor: grab;\n}\n.acf-field-list .acf-sortable-handle:before {\n content: \"\";\n display: none;\n position: absolute;\n top: 16px;\n left: 8px;\n width: 16px;\n height: 16px;\n width: 12px;\n height: 12px;\n background-color: #98A2B3;\n border: none;\n border-radius: 0;\n -webkit-mask-size: contain;\n mask-size: contain;\n -webkit-mask-repeat: no-repeat;\n mask-repeat: no-repeat;\n -webkit-mask-position: center;\n mask-position: center;\n text-indent: 500%;\n white-space: nowrap;\n overflow: hidden;\n -webkit-mask-image: url(\"../../images/icons/icon-draggable.svg\");\n mask-image: url(\"../../images/icons/icon-draggable.svg\");\n}\n\n.rtl .acf-field-list .acf-sortable-handle:before {\n left: 0;\n right: 8px;\n}\n\n/*----------------------------------------------------------------------------\n*\n* Expand / collapse field icon\n*\n*----------------------------------------------------------------------------*/\n.acf-field-object .li-field-label {\n position: relative;\n padding-left: 40px;\n}\n.acf-field-object .li-field-label:before {\n content: \"\";\n display: block;\n position: absolute;\n left: 6px;\n display: inline-flex;\n width: 18px;\n height: 18px;\n margin-top: -2px;\n background-color: #667085;\n border: none;\n border-radius: 0;\n -webkit-mask-size: contain;\n mask-size: contain;\n -webkit-mask-repeat: no-repeat;\n mask-repeat: no-repeat;\n -webkit-mask-position: center;\n mask-position: center;\n text-indent: 500%;\n white-space: nowrap;\n overflow: hidden;\n -webkit-mask-image: url(\"../../images/icons/icon-chevron-down.svg\");\n mask-image: url(\"../../images/icons/icon-chevron-down.svg\");\n}\n.acf-field-object .li-field-label:hover:before {\n cursor: pointer;\n}\n\n.rtl .acf-field-object .li-field-label {\n padding-left: 0;\n padding-right: 40px;\n}\n.rtl .acf-field-object .li-field-label:before {\n left: 0;\n right: 6px;\n -webkit-mask-image: url(\"../../images/icons/icon-chevron-down.svg\");\n mask-image: url(\"../../images/icons/icon-chevron-down.svg\");\n}\n.rtl .acf-field-object.open .li-field-label:before {\n -webkit-mask-image: url(\"../../images/icons/icon-chevron-down.svg\");\n mask-image: url(\"../../images/icons/icon-chevron-down.svg\");\n}\n.rtl .acf-field-object.open .acf-input-sub .li-field-label:before {\n -webkit-mask-image: url(\"../../images/icons/icon-chevron-right.svg\");\n mask-image: url(\"../../images/icons/icon-chevron-right.svg\");\n}\n.rtl .acf-field-object.open .acf-input-sub .acf-field-object.open .li-field-label:before {\n -webkit-mask-image: url(\"../../images/icons/icon-chevron-down.svg\");\n mask-image: url(\"../../images/icons/icon-chevron-down.svg\");\n}\n\n.acf-thead .li-field-label {\n padding-left: 40px;\n}\n.rtl .acf-thead .li-field-label {\n padding-left: 0;\n padding-right: 40px;\n}\n\n/*----------------------------------------------------------------------------\n*\n* Conditional logic layout\n*\n*----------------------------------------------------------------------------*/\n.acf-field-settings-main-conditional-logic .acf-conditional-toggle {\n display: flex;\n padding-right: 72px;\n padding-left: 72px;\n}\n@media screen and (max-width: 600px) {\n .acf-field-settings-main-conditional-logic .acf-conditional-toggle {\n padding-left: 12px;\n }\n}\n.acf-field-settings-main-conditional-logic .acf-field {\n flex-wrap: wrap;\n margin-bottom: 0;\n padding-right: 0;\n padding-left: 0;\n}\n.acf-field-settings-main-conditional-logic .acf-field .rule-groups {\n flex: 0 1 100%;\n order: 3;\n margin-top: 32px;\n padding-top: 32px;\n padding-right: 72px;\n padding-left: 72px;\n border-top-width: 1px;\n border-top-style: solid;\n border-top-color: #EAECF0;\n}\n@media screen and (max-width: 600px) {\n .acf-field-settings-main-conditional-logic .acf-field .rule-groups {\n padding-left: 12px;\n }\n .acf-field-settings-main-conditional-logic .acf-field .rule-groups table.acf-table tbody tr {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start;\n align-content: flex-start;\n align-items: flex-start;\n }\n .acf-field-settings-main-conditional-logic .acf-field .rule-groups table.acf-table tbody tr td {\n flex: 1 1 100%;\n }\n}\n\n/*----------------------------------------------------------------------------\n*\n* Prefix & append styling\n*\n*----------------------------------------------------------------------------*/\n.acf-input .acf-input-prepend,\n.acf-input .acf-input-append {\n display: inline-flex;\n align-items: center;\n height: 100%;\n min-height: 40px;\n padding-right: 12px;\n padding-left: 12px;\n background-color: #F9FAFB;\n border-color: #D0D5DD;\n box-shadow: 0px 1px 2px rgba(16, 24, 40, 0.1);\n color: #667085;\n}\n.acf-input .acf-input-prepend {\n border-radius: 6px 0 0 6px;\n}\n.acf-input .acf-input-append {\n border-radius: 0 6px 6px 0;\n}\n\n/*----------------------------------------------------------------------------\n*\n* ACF input wrap\n*\n*----------------------------------------------------------------------------*/\n.acf-input-wrap {\n display: flex;\n}\n\n.acf-field-settings-main-presentation .acf-input-wrap {\n display: flex;\n}\n\n/*----------------------------------------------------------------------------\n*\n* Empty state\n*\n*----------------------------------------------------------------------------*/\n.post-type-acf-field-group #acf-field-group-fields .acf-field-list.-empty .no-fields-message {\n display: flex;\n justify-content: center;\n padding-top: 48px;\n padding-bottom: 48px;\n}\n.post-type-acf-field-group #acf-field-group-fields .acf-field-list.-empty .no-fields-message .no-fields-message-inner {\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n align-content: center;\n align-items: flex-start;\n text-align: center;\n max-width: 400px;\n}\n.post-type-acf-field-group #acf-field-group-fields .acf-field-list.-empty .no-fields-message .no-fields-message-inner img,\n.post-type-acf-field-group #acf-field-group-fields .acf-field-list.-empty .no-fields-message .no-fields-message-inner h2,\n.post-type-acf-field-group #acf-field-group-fields .acf-field-list.-empty .no-fields-message .no-fields-message-inner p {\n flex: 1 0 100%;\n}\n.post-type-acf-field-group #acf-field-group-fields .acf-field-list.-empty .no-fields-message .no-fields-message-inner h2 {\n margin-top: 32px;\n margin-bottom: 0;\n padding: 0;\n color: #344054;\n}\n.post-type-acf-field-group #acf-field-group-fields .acf-field-list.-empty .no-fields-message .no-fields-message-inner p {\n margin-top: 12px;\n margin-bottom: 0;\n padding: 0;\n color: #667085;\n}\n.post-type-acf-field-group #acf-field-group-fields .acf-field-list.-empty .no-fields-message .no-fields-message-inner p.acf-small {\n margin-top: 32px;\n}\n.post-type-acf-field-group #acf-field-group-fields .acf-field-list.-empty .no-fields-message .no-fields-message-inner img {\n max-width: 284px;\n margin-bottom: 0;\n}\n.post-type-acf-field-group #acf-field-group-fields .acf-field-list.-empty .no-fields-message .no-fields-message-inner .acf-btn {\n margin-top: 32px;\n}\n\n/*----------------------------------------------------------------------------\n*\n* Hide add title prompt label\n*\n*----------------------------------------------------------------------------*/\n.post-type-acf-field-group .acf-headerbar #title-prompt-text {\n display: none;\n}\n\n/*----------------------------------------------------------------------------\n*\n* Modal styling\n*\n*----------------------------------------------------------------------------*/\n.acf-admin-page #acf-popup .acf-popup-box {\n min-width: 480px;\n}\n.acf-admin-page #acf-popup .acf-popup-box .title {\n display: flex;\n align-items: center;\n align-content: center;\n justify-content: space-between;\n min-height: 64px;\n box-sizing: border-box;\n margin: 0;\n padding-right: 24px;\n padding-left: 24px;\n border-bottom-width: 1px;\n border-bottom-style: solid;\n border-bottom-color: #EAECF0;\n}\n.acf-admin-page #acf-popup .acf-popup-box .title h1,\n.acf-admin-page #acf-popup .acf-popup-box .title h2,\n.acf-admin-page #acf-popup .acf-popup-box .title h3,\n.acf-admin-page #acf-popup .acf-popup-box .title h4 {\n padding-left: 0;\n color: #344054;\n}\n.acf-admin-page #acf-popup .acf-popup-box .title .acf-icon {\n display: block;\n position: relative;\n top: auto;\n right: auto;\n width: 22px;\n height: 22px;\n background-color: transparent;\n color: transparent;\n}\n.acf-admin-page #acf-popup .acf-popup-box .title .acf-icon:before {\n display: inline-flex;\n position: absolute;\n top: 0;\n left: 0;\n width: 22px;\n height: 22px;\n background-color: #667085;\n border: none;\n border-radius: 0;\n -webkit-mask-size: contain;\n mask-size: contain;\n -webkit-mask-repeat: no-repeat;\n mask-repeat: no-repeat;\n -webkit-mask-position: center;\n mask-position: center;\n text-indent: 500%;\n white-space: nowrap;\n overflow: hidden;\n -webkit-mask-image: url(\"../../images/icons/icon-close-circle.svg\");\n mask-image: url(\"../../images/icons/icon-close-circle.svg\");\n}\n.acf-admin-page #acf-popup .acf-popup-box .title .acf-icon:hover:before {\n background-color: #0783BE;\n}\n.acf-admin-page #acf-popup .acf-popup-box .inner {\n box-sizing: border-box;\n margin: 0;\n padding-top: 24px;\n padding-right: 24px;\n padding-bottom: 24px;\n padding-left: 24px;\n border-top: none;\n}\n.acf-admin-page #acf-popup .acf-popup-box .inner p {\n margin-top: 0;\n margin-bottom: 0;\n}\n.acf-admin-page #acf-popup .acf-popup-box #acf-move-field-form .acf-field-select,\n.acf-admin-page #acf-popup .acf-popup-box #acf-link-field-groups-form .acf-field-select {\n margin-top: 0;\n}\n.acf-admin-page .acf-link-field-groups-popup .acf-popup-box .title h3 {\n color: #1D2939;\n font-weight: 500;\n}\n.acf-admin-page .acf-link-field-groups-popup .acf-popup-box .title h3:before {\n content: \"\";\n width: 18px;\n height: 18px;\n background: #98A2B3;\n margin-right: 9px;\n}\n.acf-admin-page .acf-link-field-groups-popup .acf-popup-box .inner {\n padding: 0 !important;\n}\n.acf-admin-page .acf-link-field-groups-popup .acf-popup-box .inner .acf-field-select,\n.acf-admin-page .acf-link-field-groups-popup .acf-popup-box .inner .acf-link-successful {\n padding: 32px 24px;\n margin-bottom: 0;\n}\n.acf-admin-page .acf-link-field-groups-popup .acf-popup-box .inner .acf-field-select .description,\n.acf-admin-page .acf-link-field-groups-popup .acf-popup-box .inner .acf-link-successful .description {\n font-size: 13px;\n font-weight: 500;\n color: #344054;\n}\n.acf-admin-page .acf-link-field-groups-popup .acf-popup-box .inner .acf-actions {\n background: #F9FAFB;\n border-top: 1px solid #EAECF0;\n padding-top: 20px;\n padding-left: 24px;\n padding-bottom: 20px;\n padding-right: 24px;\n border-bottom-left-radius: 8px;\n border-bottom-right-radius: 8px;\n}\n.acf-admin-page .acf-link-field-groups-popup .acf-popup-box .inner .acf-actions .acf-btn {\n display: inline-block;\n margin-left: 8px;\n}\n.acf-admin-page .acf-link-field-groups-popup .acf-popup-box .inner .acf-actions .acf-btn.acf-btn-primary {\n width: 120px;\n}\n\n/*----------------------------------------------------------------------------\n*\n* Hide original #post-body-content from edit field group page\n*\n*----------------------------------------------------------------------------*/\n.acf-admin-single-field-group #post-body-content {\n display: none;\n}\n\n/*----------------------------------------------------------------------------\n*\n* Settings section footer\n*\n*----------------------------------------------------------------------------*/\n.acf-field-group-settings-footer {\n display: flex;\n justify-content: space-between;\n align-content: stretch;\n align-items: center;\n position: relative;\n min-height: 88px;\n margin-right: -24px;\n margin-left: -24px;\n margin-bottom: -24px;\n padding-right: 24px;\n padding-left: 24px;\n border-top-width: 1px;\n border-top-style: solid;\n border-top-color: #EAECF0;\n}\n.acf-field-group-settings-footer .acf-created-on {\n display: inline-flex;\n justify-content: flex-start;\n align-content: stretch;\n align-items: center;\n color: #667085;\n}\n.acf-field-group-settings-footer .acf-created-on:before {\n content: \"\";\n display: inline-block;\n width: 20px;\n height: 20px;\n margin-right: 8px;\n background-color: #98A2B3;\n border: none;\n border-radius: 0;\n -webkit-mask-size: contain;\n mask-size: contain;\n -webkit-mask-repeat: no-repeat;\n mask-repeat: no-repeat;\n -webkit-mask-position: center;\n mask-position: center;\n -webkit-mask-image: url(\"../../images/icons/icon-time.svg\");\n mask-image: url(\"../../images/icons/icon-time.svg\");\n}\n\n/*----------------------------------------------------------------------------\n*\n* Conditional logic enabled badge\n*\n*----------------------------------------------------------------------------*/\n.conditional-logic-badge {\n display: none;\n}\n.conditional-logic-badge.is-enabled {\n display: inline-block;\n width: 6px;\n height: 6px;\n overflow: hidden;\n margin-left: 8px;\n background-color: rgba(82, 170, 89, 0.4);\n border-width: 1px;\n border-style: solid;\n border-color: #52AA59;\n border-radius: 100px;\n text-indent: 100%;\n white-space: nowrap;\n}\n\n/*----------------------------------------------------------------------------\n*\n* Split field settings\n*\n*----------------------------------------------------------------------------*/\n.acf-field-settings-split {\n display: flex;\n border-top-width: 1px;\n border-top-style: solid;\n border-top-color: #EAECF0;\n}\n.acf-field-settings-split .acf-field {\n margin: 0;\n padding-top: 32px;\n padding-bottom: 32px;\n}\n.acf-field-settings-split .acf-field:nth-child(2n) {\n border-left-width: 1px;\n border-left-style: solid;\n border-left-color: #EAECF0;\n}\n\n/*----------------------------------------------------------------------------\n*\n* Display & return format\n*\n*----------------------------------------------------------------------------*/\n.acf-field-setting-display_format .acf-label,\n.acf-field-setting-return_format .acf-label {\n margin-bottom: 6px;\n}\n.acf-field-setting-display_format .acf-radio-list li,\n.acf-field-setting-return_format .acf-radio-list li {\n display: flex;\n}\n.acf-field-setting-display_format .acf-radio-list li label,\n.acf-field-setting-return_format .acf-radio-list li label {\n display: inline-flex;\n width: 100%;\n}\n.acf-field-setting-display_format .acf-radio-list li label span,\n.acf-field-setting-return_format .acf-radio-list li label span {\n flex: 1 1 auto;\n}\n.acf-field-setting-display_format .acf-radio-list li label code,\n.acf-field-setting-return_format .acf-radio-list li label code {\n padding-right: 8px;\n padding-left: 8px;\n background-color: #F2F4F7;\n border-radius: 4px;\n color: #475467;\n}\n.acf-field-setting-display_format .acf-radio-list li input[type=text],\n.acf-field-setting-return_format .acf-radio-list li input[type=text] {\n height: 32px;\n}\n\n.acf-field-settings .acf-field-setting-first_day {\n padding-top: 32px;\n border-top-width: 1px;\n border-top-style: solid;\n border-top-color: #EAECF0;\n}\n\n/*----------------------------------------------------------------------------\n*\n* Image and Gallery fields\n*\n*----------------------------------------------------------------------------*/\n.acf-field-object-image .acf-hl[data-cols=\"3\"] > li,\n.acf-field-object-gallery .acf-hl[data-cols=\"3\"] > li {\n width: auto;\n}\n\n/*----------------------------------------------------------------------------\n*\n* Appended fields fields\n*\n*----------------------------------------------------------------------------*/\n.acf-field-settings .acf-field-appended {\n overflow: auto;\n}\n.acf-field-settings .acf-field-appended .acf-input {\n float: left;\n}\n\n/*----------------------------------------------------------------------------\n*\n* Flexible widths for image minimum / maximum size fields\n*\n*----------------------------------------------------------------------------*/\n.acf-field-settings .acf-field.acf-field-setting-min_width .acf-input,\n.acf-field-settings .acf-field.acf-field-setting-max_width .acf-input {\n max-width: none;\n}\n.acf-field-settings .acf-field.acf-field-setting-min_width .acf-input-wrap input[type=text],\n.acf-field-settings .acf-field.acf-field-setting-max_width .acf-input-wrap input[type=text] {\n max-width: 81px;\n}\n\n/*----------------------------------------------------------------------------\n*\n* Temporary fix to hide pagination setting for repeaters used as subfields.\n*\n*----------------------------------------------------------------------------*/\n.post-type-acf-field-group .acf-field-object-flexible-content .acf-field-setting-pagination {\n display: none;\n}\n.post-type-acf-field-group .acf-field-object-repeater .acf-field-object-repeater .acf-field-setting-pagination {\n display: none;\n}\n\n/*----------------------------------------------------------------------------\n*\n* Flexible content field width\n*\n*----------------------------------------------------------------------------*/\n.acf-admin-single-field-group .acf-field-object-flexible-content .acf-is-subfields .acf-field-object .acf-label,\n.acf-admin-single-field-group .acf-field-object-flexible-content .acf-is-subfields .acf-field-object .acf-input {\n max-width: 600px;\n}\n\n/*----------------------------------------------------------------------------\n*\n* Fix default value checkbox focus state\n*\n*----------------------------------------------------------------------------*/\n.acf-admin-single-field-group .acf-field.acf-field-true-false.acf-field-setting-default_value .acf-true-false {\n border: none;\n}\n.acf-admin-single-field-group .acf-field.acf-field-true-false.acf-field-setting-default_value .acf-true-false input[type=checkbox] {\n margin-right: 0;\n}\n\n/*----------------------------------------------------------------------------\n*\n* With front field extra spacing\n*\n*----------------------------------------------------------------------------*/\n.acf-field.acf-field-with-front {\n margin-top: 32px;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Sub-fields layout\n*\n*---------------------------------------------------------------------------------------------*/\n.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub {\n max-width: 100%;\n overflow: hidden;\n border-radius: 8px;\n border-width: 1px;\n border-style: solid;\n border-color: #dbdfe5;\n box-shadow: 0px 1px 2px rgba(16, 24, 40, 0.1);\n}\n.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-sub-field-list-header {\n display: flex;\n justify-content: space-between;\n align-content: stretch;\n align-items: center;\n min-height: 64px;\n padding-right: 24px;\n padding-left: 24px;\n}\n.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-field-list-wrap {\n box-shadow: none;\n}\n.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-hl.acf-tfoot {\n min-height: 64px;\n align-items: center;\n}\n.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-input.acf-input-sub {\n max-width: 100%;\n margin-right: 0;\n margin-left: 0;\n}\n\n.post-type-acf-field-group .acf-input-sub .acf-field-object .acf-sortable-handle {\n width: 100%;\n height: 100%;\n}\n\n.post-type-acf-field-group .acf-field-object:hover .acf-input-sub .acf-sortable-handle:before {\n display: none;\n}\n\n.post-type-acf-field-group .acf-field-object:hover .acf-input-sub .acf-field-list .acf-field-object:hover .acf-sortable-handle:before {\n display: block;\n}\n\n.post-type-acf-field-group .acf-field-object .acf-is-subfields .acf-thead .li-field-label:before {\n display: none;\n}\n\n.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-field-object.open {\n border-top-color: #dbdfe5;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Flexible content field\n*\n*---------------------------------------------------------------------------------------------*/\n.post-type-acf-field-group i.acf-icon.-duplicate.duplicate-layout {\n margin: 0 auto !important;\n background-color: #667085;\n color: #667085;\n}\n.post-type-acf-field-group i.acf-icon.acf-icon-trash.delete-layout {\n margin: 0 auto !important;\n background-color: #667085;\n color: #667085;\n}\n.post-type-acf-field-group button.acf-btn.acf-btn-tertiary.acf-field-setting-fc-duplicate, .post-type-acf-field-group button.acf-btn.acf-btn-tertiary.acf-field-setting-fc-delete {\n background-color: #ffffff !important;\n box-shadow: 0px 1px 2px rgba(16, 24, 40, 0.1);\n border-radius: 6px;\n width: 32px;\n height: 32px !important;\n min-height: 32px;\n padding: 0;\n}\n.post-type-acf-field-group button.add-layout.acf-btn.acf-btn-primary.add-field,\n.post-type-acf-field-group .acf-sub-field-list-header a.acf-btn.acf-btn-secondary.add-field,\n.post-type-acf-field-group .acf-field-list-wrap.acf-is-subfields a.acf-btn.acf-btn-secondary.add-field {\n height: 32px !important;\n min-height: 32px;\n margin-left: 5px;\n}\n.post-type-acf-field-group .acf-field.acf-field-setting-fc_layout {\n background-color: #ffffff;\n margin-bottom: 16px;\n}\n.post-type-acf-field-group .acf-field-setting-fc_layout {\n overflow: hidden;\n width: calc(100% - 144px);\n margin-right: 72px;\n margin-left: 72px;\n padding-right: 0;\n padding-left: 0;\n border-width: 1px;\n border-style: solid;\n border-color: #dbdfe5;\n border-radius: 8px;\n box-shadow: 0px 1px 2px rgba(16, 24, 40, 0.1);\n}\n.post-type-acf-field-group .acf-field-setting-fc_layout .acf-field-layout-settings.open {\n background-color: #ffffff;\n border-top-width: 1px;\n border-top-style: solid;\n border-top-color: #EAECF0;\n}\n@media screen and (max-width: 768px) {\n .post-type-acf-field-group .acf-field-setting-fc_layout {\n width: calc(100% - 16px);\n margin-right: 8px;\n margin-left: 8px;\n }\n}\n.post-type-acf-field-group .acf-field-setting-fc_layout .acf-input-sub {\n max-width: 100%;\n margin-right: 0;\n margin-left: 0;\n}\n.post-type-acf-field-group .acf-field-setting-fc_layout .acf-label,\n.post-type-acf-field-group .acf-field-setting-fc_layout .acf-input {\n max-width: 100% !important;\n}\n.post-type-acf-field-group .acf-field-setting-fc_layout .acf-input-sub {\n margin-right: 32px;\n margin-bottom: 32px;\n margin-left: 32px;\n}\n.post-type-acf-field-group .acf-field-setting-fc_layout .acf-fc-meta {\n max-width: 100%;\n padding-top: 24px;\n padding-right: 32px;\n padding-left: 32px;\n}\n.post-type-acf-field-group .acf-field-settings-fc_head {\n background-color: #F9FAFB;\n border-radius: 8px 8px 0px 0px;\n display: flex;\n min-height: 64px;\n margin-bottom: 0px;\n padding-right: 24px;\n}\n.post-type-acf-field-group .acf-field-settings-fc_head .acf-fc_draggable {\n min-height: 64px;\n padding-left: 24px;\n display: flex;\n}\n.post-type-acf-field-group .acf-field-settings-fc_head span.toggle-indicator {\n pointer-events: none;\n margin-top: 7px;\n}\n.post-type-acf-field-group .acf-field-settings-fc_head label {\n display: inline-flex;\n align-items: center;\n}\n.post-type-acf-field-group .acf-field-settings-fc_head label:before {\n content: \"\";\n display: inline-block;\n width: 20px;\n height: 20px;\n margin-right: 8px;\n background-color: #98A2B3;\n border: none;\n border-radius: 0;\n -webkit-mask-size: contain;\n mask-size: contain;\n -webkit-mask-repeat: no-repeat;\n mask-repeat: no-repeat;\n -webkit-mask-position: center;\n mask-position: center;\n}\n.rtl.post-type-acf-field-group .acf-field-settings-fc_head label:before {\n padding-right: 10px;\n}\n\n.post-type-acf-field-group .acf-field-settings-fc_head .acf-fl-actions {\n display: flex;\n align-items: center;\n}\n.post-type-acf-field-group .acf-field-settings-fc_head .acf-fl-actions .acf-fc-add-layout {\n margin-left: 10px;\n}\n.post-type-acf-field-group .acf-field-settings-fc_head .acf-fl-actions .acf-fc-add-layout .add-field {\n margin-left: 0px !important;\n}\n.post-type-acf-field-group .acf-field-settings-fc_head .acf-fl-actions li {\n margin-right: 4px;\n}\n.post-type-acf-field-group .acf-field-settings-fc_head .acf-fl-actions li:last-of-type {\n margin-right: 0;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Field open / closed icon state\n*\n*---------------------------------------------------------------------------------------------*/\n.post-type-acf-field-group .acf-field-object.open > .handle > .acf-tbody > .li-field-label::before {\n -webkit-mask-image: url(\"../../images/icons/icon-chevron-up.svg\");\n mask-image: url(\"../../images/icons/icon-chevron-up.svg\");\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Different coloured levels (current 5 supported)\n*\n*---------------------------------------------------------------------------------------------*/\n.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-field-object .handle {\n background-color: transparent;\n}\n.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-field-object .handle:hover {\n background-color: #f9f2fb;\n}\n.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-field-object.open .handle {\n background-color: #f5eaf9;\n}\n.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-field-object .settings {\n border-left-color: #BF7DD7;\n}\n.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-input-sub .acf-field-object .handle {\n background-color: transparent;\n}\n.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-input-sub .acf-field-object .handle:hover {\n background-color: #ebf7f4;\n}\n.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-input-sub .acf-field-object.open .handle {\n background-color: #e3f4f0;\n}\n.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-input-sub .acf-field-object .settings {\n border-left-color: #7CCDB9;\n}\n.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-input-sub .acf-input-sub .acf-field-object .handle {\n background-color: transparent;\n}\n.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-input-sub .acf-input-sub .acf-field-object .handle:hover {\n background-color: #fcf5f2;\n}\n.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-input-sub .acf-input-sub .acf-field-object.open .handle {\n background-color: #fbeee9;\n}\n.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-input-sub .acf-input-sub .acf-field-object .settings {\n border-left-color: #E29473;\n}\n.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-input-sub .acf-input-sub .acf-input-sub .acf-field-object .handle {\n background-color: transparent;\n}\n.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-input-sub .acf-input-sub .acf-input-sub .acf-field-object .handle:hover {\n background-color: #fafbfb;\n}\n.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-input-sub .acf-input-sub .acf-input-sub .acf-field-object.open .handle {\n background-color: #f4f6f7;\n}\n.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-input-sub .acf-input-sub .acf-input-sub .acf-field-object .settings {\n border-left-color: #A3B1B9;\n}","/*--------------------------------------------------------------------------------------------\n*\n*\tVars\n*\n*--------------------------------------------------------------------------------------------*/\n\n/* colors */\n$acf_blue: #2a9bd9;\n$acf_notice: #2a9bd9;\n$acf_error: #d94f4f;\n$acf_success: #49ad52;\n$acf_warning: #fd8d3b;\n\n/* acf-field */\n$field_padding: 15px 12px;\n$field_padding_x: 12px;\n$field_padding_y: 15px;\n$fp: 15px 12px;\n$fy: 15px;\n$fx: 12px;\n\n/* responsive */\n$md: 880px;\n$sm: 640px;\n\n// Admin.\n$wp-card-border: #ccd0d4;\t\t\t// Card border.\n$wp-card-border-1: #d5d9dd;\t\t // Card inner border 1: Structural (darker).\n$wp-card-border-2: #eeeeee;\t\t // Card inner border 2: Fields (lighter).\n$wp-input-border: #7e8993;\t\t // Input border.\n\n// Admin 3.8\n$wp38-card-border: #E5E5E5;\t\t // Card border.\n$wp38-card-border-1: #dfdfdf;\t\t// Card inner border 1: Structural (darker).\n$wp38-card-border-2: #eeeeee;\t\t// Card inner border 2: Fields (lighter).\n$wp38-input-border: #dddddd;\t\t // Input border.\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tACF 6 ↓\n*\n*--------------------------------------------------------------------------------------------*/\n\n// Grays\n$gray-50: #F9FAFB;\n$gray-100: #F2F4F7;\n$gray-200: #EAECF0;\n$gray-300: #D0D5DD;\n$gray-400: #98A2B3;\n$gray-500: #667085;\n$gray-600: #475467;\n$gray-700: #344054;\n$gray-800: #1D2939;\n$gray-900: #101828;\n\n// Blues\n$blue-50: #EBF5FA;\n$blue-100: #D8EBF5;\n$blue-200: #A5D2E7;\n$blue-300: #6BB5D8;\n$blue-400: #399CCB;\n$blue-500: #0783BE;\n$blue-600: #066998;\n$blue-700: #044E71;\n$blue-800: #033F5B;\n$blue-900: #032F45;\n\n// Utility\n$color-info:\t#2D69DA;\n$color-success:\t#52AA59;\n$color-warning:\t#F79009;\n$color-danger:\t#D13737;\n\n$color-primary: $blue-500;\n$color-primary-hover: $blue-600;\n$color-secondary: $gray-500;\n$color-secondary-hover: $gray-400;\n\n// Gradients\n$gradient-pro: linear-gradient(90.52deg, #3E8BFF 0.44%, #A45CFF 113.3%);\n\n// Border radius\n$radius-sm:\t4px;\n$radius-md: 6px;\n$radius-lg: 8px;\n$radius-xl: 12px;\n\n// Elevations / Box shadows\n$elevation-01: 0px 1px 2px rgba($gray-900, 0.10);\n\n// Input & button focus outline\n$outline: 3px solid $blue-50;\n\n// Link colours\n$link-color: $blue-500;\n\n// Responsive\n$max-width: 1440px;","/*--------------------------------------------------------------------------------------------\n*\n* Mixins\n*\n*--------------------------------------------------------------------------------------------*/\n@mixin clearfix() {\n\t&:after {\n\t\tdisplay: block;\n\t\tclear: both;\n\t\tcontent: \"\";\n\t}\n}\n\n@mixin border-box() {\n\t-webkit-box-sizing: border-box;\n\t-moz-box-sizing: border-box;\n\tbox-sizing: border-box;\n}\n\n@mixin centered() {\n\tposition: absolute;\n\ttop: 50%;\n\tleft: 50%;\n\ttransform: translate(-50%, -50%);\n}\n\n@mixin animate( $properties: 'all' ) {\n\t-webkit-transition: $properties 0.3s ease; // Safari 3.2+, Chrome\n -moz-transition: $properties 0.3s ease; \t// Firefox 4-15\n -o-transition: $properties 0.3s ease; \t\t// Opera 10.5–12.00\n transition: $properties 0.3s ease; \t\t// Firefox 16+, Opera 12.50+\n}\n\n@mixin rtl() {\n\thtml[dir=\"rtl\"] & {\n\t\ttext-align: right;\n\t\t@content;\n\t}\n}\n\n@mixin wp-admin( $version: '3-8' ) {\n\t.acf-admin-#{$version} & {\n\t\t@content;\n\t}\n}","/*--------------------------------------------------------------------------------------------\n*\n*\tField Group\n*\n*--------------------------------------------------------------------------------------------*/\n\n// Reset postbox inner padding.\n#acf-field-group-fields > .inside,\n#acf-field-group-locations > .inside,\n#acf-field-group-options > .inside {\n\tpadding: 0;\n\tmargin: 0;\n}\n\n// Hide metabox order buttons added in WP 5.5.\n.postbox {\n\t.handle-order-higher,\n\t.handle-order-lower {\n\t\tdisplay: none;\n\t}\n}\n\n/*----------------------------------------------------------------------------\n*\n* Postbox: Publish\n*\n*----------------------------------------------------------------------------*/\n#minor-publishing-actions,\n#misc-publishing-actions #visibility,\n#misc-publishing-actions .edit-timestamp {\n\tdisplay: none;\n}\n\n#minor-publishing {\n\tborder-bottom: 0 none;\n}\n\n#misc-pub-section {\n\tborder-bottom: 0 none;\n}\n\n#misc-publishing-actions .misc-pub-section {\n\tborder-bottom-color: #F5F5F5;\n}\n\n\n/*----------------------------------------------------------------------------\n*\n* Postbox: Fields\n*\n*----------------------------------------------------------------------------*/\n#acf-field-group-fields {\n\tborder: 0 none;\n\n\t.inside {\n\t\tborder-top: {\n\t\t\twidth: 0;\n\t\t\tstyle: none;\n\t\t};\n\t}\n\n\t/* links */\n\ta {\n\t\ttext-decoration: none;\n\t}\n\n\t/* Field type */\n\t.li-field-type {\n\n\t\t.field-type-icon {\n\t\t\tmargin: {\n\t\t\t\tright: 8px;\n\t\t\t};\n\n\t\t\t@media screen and (max-width: 600px) {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t/* table header */\n\t.li-field-order {\n\t\twidth: 64px;\n\t\tjustify-content: center;\n\n\t\t@media screen and (max-width: $md) {\n\t\t\twidth: 32px;\n\t\t}\n\n\t}\n\t.li-field-label { width: calc(50% - 64px); }\n\t.li-field-name { width: 25%; word-break: break-word; }\n\t.li-field-key { display: none; }\n\t.li-field-type { width: 25%; }\n\n\t/* show keys */\n\t&.show-field-keys {\n\n\t\t.li-field-label { width: calc(35% - 64px); };\n\t\t.li-field-name { width: 15%; };\n\t\t.li-field-key { width: 25%; display: flex; };\n\t\t.li-field-type { width: 25%; };\n\n\t}\n\n\t/* hide tabs */\n\t&.hide-tabs {\n\t\t.acf-field-settings-tab-bar {\n\t\t\tdisplay: none;\n\t\t}\n\n\t\t.acf-field-settings-main {\n\t\t\tpadding: 0;\n\n\t\t\t&.acf-field-settings-main-general {\n\t\t\t\tpadding-top: 32px;\n\t\t\t}\n\n\t\t\t.acf-field {\n\t\t\t\tmargin-bottom: 32px;\n\t\t\t}\n\n\t\t\t.acf-field-setting-wrapper {\n\t\t\t\tpadding-top: 0;\n\t\t\t\tborder-top: none;\n\t\t\t}\n\n\t\t\t.acf-field-settings-split .acf-field {\n\t\t\t\tborder-bottom: {\n\t\t\t\t\twidth: 1px;\n\t\t\t\t\tstyle: solid;\n\t\t\t\t\tcolor: $gray-200;\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t.acf-field-setting-first_day {\n\t\t\t\tpadding-top: 0;\n\t\t\t\tborder-top: none;\n\t\t\t}\n\t\t}\n\n\t\t.acf-field-settings-footer {\n\t\t\tmargin-top: 32px;\n\t\t}\n\t}\n\n\t/* fields */\n\t.acf-field-list-wrap {\n\t\tborder: $wp-card-border solid 1px;\n\t}\n\n\t.acf-field-list {\n\t\tbackground: #f5f5f5;\n\t\tmargin-top: -1px;\n\n\t\t.acf-tbody {\n\n\t\t\t> .li-field-name,\n\t\t\t> .li-field-key {\n\t\t\t\talign-items: flex-start;\n\t\t\t}\n\n\t\t}\n\n\t\t.copyable:not(.copy-unsupported) {\n\t\t\tcursor: pointer;\n\t\t\tdisplay: inline-flex;\n\t\t\talign-items: center;\n\t\t\t&:hover:after {\n\t\t\t\tcontent: '';\n\t\t\t\tdisplay: block;\n\t\t\t\tpadding-left: 5px;\n\t\t\t\t$icon-size: 12px;\n\t\t\t\tdisplay: inline-flex;\n\t\t\t\twidth: $icon-size;\n\t\t\t\theight: $icon-size;\n\t\t\t\tbackground-color: $gray-500;\n\t\t\t\tborder: none;\n\t\t\t\tborder-radius: 0;\n\t\t\t\t-webkit-mask-size: contain;\n\t\t\t\tmask-size: contain;\n\t\t\t\t-webkit-mask-repeat: no-repeat;\n\t\t\t\tmask-repeat: no-repeat;\n\t\t\t\t-webkit-mask-position: center;\n\t\t\t\tmask-position: center;\n\t\t\t\ttext-indent: 500%;\n\t\t\t\twhite-space: nowrap;\n\t\t\t\toverflow: hidden;\n\t\t\t\t-webkit-mask-image: url('../../images/icons/icon-copy.svg');\n\t\t\t\tmask-image: url('../../images/icons/icon-copy.svg');\n\t\t\t\tbackground-size: cover;\n\t\t\t}\n\t\t\t&.copied:hover:after {\n\t\t\t\t-webkit-mask-image: url('../../images/icons/icon-check-circle-solid.svg');\n\t\t\t\tmask-image: url('../../images/icons/icon-check-circle-solid.svg');\n\t\t\t\tbackground-color: $acf_success;\n\t\t\t}\n\t\t}\n\n\t\t/* no fields */\n\t\t.no-fields-message {\n\t\t\tpadding: 15px 15px;\n\t\t\tbackground: #fff;\n\t\t\tdisplay: none;\n\t\t}\n\n\t\t/* empty */\n\t\t&.-empty {\n\t\t\t.no-fields-message {\n\t\t\t\tdisplay: block;\n\t\t\t}\n\t\t}\n\t}\n\n\t// WP Admin 3.8\n\t@include wp-admin('3-8') {\n\t\t.acf-field-list-wrap {\n\t\t\tborder-color: $wp38-card-border-1;\n\t\t}\n\t}\n}\n\n\n.rtl #acf-field-group-fields {\n\t.li-field-type {\n\t\t.field-type-icon {\n\t\t\tmargin: {\n\t\t\t\tleft: 8px;\n\t\t\t\tright: 0;\n\t\t\t};\n\t\t}\n\t}\n}\n\n/* field object */\n.acf-field-object {\n\tborder-top: $wp38-card-border-2 solid 1px;\n\tbackground: #fff;\n\n\t/* sortable */\n\t&.ui-sortable-helper {\n\t\toverflow: hidden !important;\n\t\tborder: {\n\t\t\twidth: 1px;\n\t\t\tstyle: solid;\n\t\t\tcolor: $blue-200 !important;\n\t\t};\n\t\tborder-radius: $radius-lg;\n\t\tfilter: drop-shadow(0px 10px 20px rgba(16, 24, 40, 0.14)) drop-shadow(0px 1px 3px rgba(16, 24, 40, 0.1));\n\n\t\t&:before {\n\t\t\tdisplay: none !important;\n\t\t}\n\n\t}\n\n\t&.ui-sortable-placeholder {\n\t\tbox-shadow: 0 -1px 0 0 #DFDFDF;\n\t\tvisibility: visible !important;\n\t\tbackground: #F9F9F9;\n\t\tborder-top-color: transparent;\n\t\tmin-height: 54px;\n\n\t\t// hide tab field separator\n\t\t&:after, &:before {\n\t\t\tvisibility: hidden;\n\t\t}\n\t}\n\n\n\t/* meta */\n\t> .meta {\n\t\tdisplay: none;\n\t}\n\n\n\t/* handle */\n\t> .handle {\n\n\t\ta {\n\t\t\t-webkit-transition: none;\n\t\t\t-moz-transition: none;\n\t\t\t-o-transition: none;\n\t\t\ttransition: none;\n\t\t}\n\n\t\tli {\n\t\t\tword-wrap: break-word;\n\t\t}\n\n\t\tstrong {\n\t\t\tdisplay: block;\n\t\t\tpadding-bottom: 0;\n\t\t\tfont-size: 14px;\n\t\t\tline-height: 14px;\n\t\t\tmin-height: 14px;\n\t\t}\n\n\t\t.row-options {\n\t\t\tdisplay: block;\n\t\t\topacity: 0;\n\t\t\tmargin: {\n\t\t\t\ttop: 5px;\n\t\t\t};\n\n\t\t\t@media screen and (max-width: 880px) {\n\t\t\t\topacity: 1;\n\t\t\t\tmargin: {\n\t\t\t\t\tbottom: 0;\n\t\t\t\t};\n\t\t\t}\n\n\t\t\ta {\n\t\t\t\tmargin-right: 4px;\n\n\t\t\t\t&:hover {\n\t\t\t\t\tcolor: darken($color-primary-hover, 10%);\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\ta.delete-field {\n\t\t\t\tcolor: #a00;\n\n\t\t\t\t&:hover { color: #f00; }\n\t\t\t}\n\n\t\t\t&.active {\n\t\t\t\tvisibility: visible;\n\t\t\t}\n\t\t}\n\n\t}\n\n\t/* open */\n\t&.open {\n\n\t\t+ .acf-field-object {\n\t\t\tborder-top-color: #E1E1E1;\n\t\t}\n\n\t\t> .handle {\n\t\t\tbackground: $acf_blue;\n\t\t\tborder: darken($acf_blue, 2%) solid 1px;\n\t\t\ttext-shadow: #268FBB 0 1px 0;\n\t\t\tcolor: #fff;\n\t\t\tposition: relative;\n\t\t\tmargin: 0 -1px 0 -1px;\n\n\t\t\ta {\n\t\t\t\tcolor: #fff !important;\n\n\t\t\t\t&:hover {\n\t\t\t\t\ttext-decoration: underline !important;\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t}\n\n\n\t/*\n\t// debug\n\t&[data-save=\"meta\"] {\n\t\t> .handle {\n\t\t\tborder-left: #ffb700 solid 5px !important;\n\t\t}\n\t}\n\n\t&[data-save=\"settings\"] {\n\t\t> .handle {\n\t\t\tborder-left: #0ec563 solid 5px !important;\n\t\t}\n\t}\n*/\n\n\n\t/* hover */\n\t&:hover, &.-hover, &:focus-within {\n\n\t\t> .handle {\n\n\t\t\t.row-options {\n\t\t\t\topacity: 1;\n\t\t\t\tmargin-bottom: 0;\n\t\t\t}\n\n\t\t}\n\t}\n\n\n\t/* settings */\n\t> .settings {\n\t\tdisplay: none;\n\t\twidth: 100%;\n\n\t\t> .acf-table {\n\t\t\tborder: none;\n\t\t}\n\t}\n\n\n\t/* conditional logic */\n\t.rule-groups {\n\t\tmargin-top: 20px;\n\t}\n\n}\n\n\n/*----------------------------------------------------------------------------\n*\n* Postbox: Locations\n*\n*----------------------------------------------------------------------------*/\n\n.rule-groups {\n\n\th4 {\n\t\tmargin: 3px 0;\n\t}\n\n\t.rule-group {\n\t\tmargin: 0 0 5px;\n\n\t\th4 {\n\t\t\tmargin: 0 0 3px;\n\t\t}\n\n\t\ttd.param {\n\t\t\twidth: 35%;\n\t\t}\n\n\t\ttd.operator {\n\t\t\twidth: 20%;\n\t\t}\n\n\t\ttd.add {\n\t\t\twidth: 40px;\n\t\t}\n\n\t\ttd.remove {\n\t\t\twidth: 28px;\n\t\t\tvertical-align: middle;\n\n\t\t\ta {\n\t\t\t\twidth: 22px;\n\t\t\t\theight: 22px;\n\t\t\t\tvisibility: hidden;\n\n\t\t\t\t&:before {\n\t\t\t\t\tposition: relative;\n\t\t\t\t\ttop: -2px;\n\t\t\t\t\tfont-size: 16px;\n\t\t\t\t}\n\n\t\t\t}\n\t\t}\n\n\t\ttr:hover td.remove a {\n\t\t\tvisibility: visible;\n\t\t}\n\n\t\t// empty select\n\t\tselect:empty {\n\t\t\tbackground: #f8f8f8;\n\t\t}\n\t}\n\n\n\t&:not(.rule-groups-multiple) {\n\t\t.rule-group {\n\t\t\t&:first-child tr:first-child td.remove a {\n\t\t\t\t/* Don't allow user to delete the only rule group */\n\t\t\t\tvisibility: hidden !important;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n/*----------------------------------------------------------------------------\n*\n*\tOptions\n*\n*----------------------------------------------------------------------------*/\n\n#acf-field-group-options tr[data-name=\"hide_on_screen\"] li {\n\tfloat: left;\n\twidth: 33%;\n}\n\n@media (max-width: 1100px) {\n\n\t#acf-field-group-options tr[data-name=\"hide_on_screen\"] li {\n\t\twidth: 50%;\n\t}\n\n}\n\n\n/*----------------------------------------------------------------------------\n*\n*\tConditional Logic\n*\n*----------------------------------------------------------------------------*/\n\ntable.conditional-logic-rules {\n\tbackground: transparent;\n\tborder: 0 none;\n\tborder-radius: 0;\n}\n\ntable.conditional-logic-rules tbody td {\n\tbackground: transparent;\n\tborder: 0 none !important;\n\tpadding: 5px 2px !important;\n}\n\n\n/*----------------------------------------------------------------------------\n*\n*\tField: Tab\n*\n*----------------------------------------------------------------------------*/\n\n.acf-field-object-tab {\n\n\t// hide setting\n\t.acf-field-setting-name,\n\t.acf-field-setting-instructions,\n\t.acf-field-setting-required,\n\t.acf-field-setting-warning,\n\t.acf-field-setting-wrapper {\n\t\tdisplay: none;\n\t}\n\n\t// hide name\n\t.li-field-name {\n\t\tvisibility: hidden;\n\t}\n\n\tp:first-child {\n\t\tmargin: 0.5em 0;\n\t}\n\n\t// hide presentation setting tabs.\n\tli.acf-settings-type-presentation,\n\t.acf-field-settings-main-presentation {\n\t\tdisplay: none !important;\n\t}\n}\n\n/*----------------------------------------------------------------------------\n*\n*\tField: Accordion\n*\n*----------------------------------------------------------------------------*/\n\n.acf-field-object-accordion {\n\n\t// hide setting\n\t.acf-field-setting-name,\n\t.acf-field-setting-instructions,\n\t.acf-field-setting-required,\n\t.acf-field-setting-warning,\n\t.acf-field-setting-wrapper {\n\t\tdisplay: none;\n\t}\n\n\t// hide name\n\t.li-field-name {\n\t\tvisibility: hidden;\n\t}\n\n\tp:first-child {\n\t\tmargin: 0.5em 0;\n\t}\n\n\t// show settings\n\t.acf-field-setting-instructions {\n\t\tdisplay: block;\n\t}\n\n}\n\n\n/*----------------------------------------------------------------------------\n*\n*\tField: Message\n*\n*----------------------------------------------------------------------------*/\n\n.acf-field-object-message tr[data-name=\"name\"],\n.acf-field-object-message tr[data-name=\"instructions\"],\n.acf-field-object-message tr[data-name=\"required\"] {\n\tdisplay: none !important;\n}\n\n.acf-field-object-message .li-field-name {\n\tvisibility: hidden;\n}\n\n.acf-field-object-message textarea {\n\theight: 175px !important;\n}\n\n\n/*----------------------------------------------------------------------------\n*\n*\tField: Separator\n*\n*----------------------------------------------------------------------------*/\n\n.acf-field-object-separator tr[data-name=\"name\"],\n.acf-field-object-separator tr[data-name=\"instructions\"],\n.acf-field-object-separator tr[data-name=\"required\"] {\n\tdisplay: none !important;\n}\n\n\n/*----------------------------------------------------------------------------\n*\n*\tField: Date Picker\n*\n*----------------------------------------------------------------------------*/\n\n.acf-field-object-date-picker,\n.acf-field-object-time-picker,\n.acf-field-object-date-time-picker {\n\n\t.acf-radio-list {\n\n\t\tli {\n\t\t\tline-height: 25px;\n\t\t}\n\n\t\tspan {\n\t\t\tdisplay: inline-block;\n\t\t\tmin-width: 10em;\n\t\t}\n\n\t\tinput[type=\"text\"] {\n\t\t\twidth: 100px;\n\t\t}\n\t}\n\n}\n\n.acf-field-object-date-time-picker {\n\n\t.acf-radio-list {\n\n\t\tspan {\n\t\t\tmin-width: 15em;\n\t\t}\n\n\t\tinput[type=\"text\"] {\n\t\t\twidth: 200px;\n\t\t}\n\t}\n\n}\n\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tSlug\n*\n*--------------------------------------------------------------------------------------------*/\n\n#slugdiv {\n\n\t.inside {\n\t\tpadding: 12px;\n\t\tmargin: 0;\n\t}\n\n\tinput[type=\"text\"] {\n\t\twidth: 100%;\n\t\theight: 28px;\n\t\tfont-size: 14px;\n\t}\n}\n\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tRTL\n*\n*--------------------------------------------------------------------------------------------*/\n\nhtml[dir=\"rtl\"] .acf-field-object.open > .handle {\n\tmargin: 0\n}\n\n/*----------------------------------------------------------------------------\n*\n* Device\n*\n*----------------------------------------------------------------------------*/\n\n@media only screen and (max-width: 850px) {\n\n\ttr.acf-field,\n\ttd.acf-label,\n\ttd.acf-input {\n\t\tdisplay: block !important;\n\t\twidth: auto !important;\n\t\tborder: 0 none !important;\n\t}\n\n\ttr.acf-field {\n\t\tborder-top: #ededed solid 1px !important;\n\t\tmargin-bottom: 0 !important;\n\t}\n\n\ttd.acf-label {\n\t\tbackground: transparent !important;\n\t\tpadding-bottom: 0 !important;\n\n\t}\n\n}\n\n/*----------------------------------------------------------------------------\n*\n* Subtle background on accordion & tab fields to separate them from others\n*\n*----------------------------------------------------------------------------*/\n.post-type-acf-field-group {\n\n\t#acf-field-group-fields {\n\n\t\t.acf-field-object-tab,\n\t\t.acf-field-object-accordion {\n\t\t\tbackground-color: $gray-50;\n\t\t}\n\n\t}\n\n}","/*---------------------------------------------------------------------------------------------\n*\n* Global\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-admin-page {\n\t#wpcontent {\n\t\tline-height: 140%;\n\t}\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Links\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-admin-page {\n\n\ta {\n\t\tcolor: $blue-500;\n\t}\n\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Headings\n*\n*---------------------------------------------------------------------------------------------*/\n\n.acf-h1 {\n\tfont-size: 21px;\n\tfont-weight: 400;\n}\n\n.acf-h2 {\n\tfont-size: 18px;\n\tfont-weight: 400;\n}\n\n.acf-h3 {\n\tfont-size: 16px;\n\tfont-weight: 400;\n}\n\n.acf-admin-page,\n.acf-headerbar {\n\n\th1 {\n\t\t@extend .acf-h1;\n\t}\n\n\th2 {\n\t\t@extend .acf-h2;\n\t}\n\n\th3 {\n\t\t@extend .acf-h3;\n\t}\n\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Paragraphs\n*\n*---------------------------------------------------------------------------------------------*/\n\n.acf-admin-page {\n\n\t.p1 {\n\t\tfont-size: 15px;\n\t}\n\n\t.p2 {\n\t\tfont-size: 14px;\n\t}\n\n\t.p3 {\n\t\tfont-size: 13.5px;\n\t}\n\n\t.p4 {\n\t\tfont-size: 13px;\n\t}\n\n\t.p5 {\n\t\tfont-size: 12.5px;\n\t}\n\n\t.p6 {\n\t\tfont-size: 12px;\n\t}\n\n\t.p7 {\n\t\tfont-size: 11.5px;\n\t}\n\n\t.p8 {\n\t\tfont-size: 11px;\n\t}\n\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Page titles\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-page-title {\n\t@extend .acf-h2;\n\tcolor: $gray-700;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Hide old / native WP titles from pages\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-admin-page {\n\n\t.acf-settings-wrap h1 {\n\t\tdisplay: none !important;\n\t}\n\n\t#acf-admin-tools h1:not(.acf-field-group-pro-features-title, .acf-field-group-pro-features-title-sm) {\n\t\tdisplay: none !important;\n\t}\n\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Small\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-small {\n\t@extend .p6;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Link focus style\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-admin-page {\n\ta:focus {\n\t\tbox-shadow: none;\n\t\toutline: none;\n\t}\n\n\ta:focus-visible {\n\t\tbox-shadow: 0 0 0 1px #4f94d4, 0 0 2px 1px rgb(79 148 212 / 80%);\n\t\toutline: 1px solid transparent;\n\t}\n}\n",".acf-admin-page {\n\n\t/*---------------------------------------------------------------------------------------------\n\t*\n\t* All Inputs\n\t*\n\t*---------------------------------------------------------------------------------------------*/\n\tinput[type=\"text\"],\n\tinput[type=\"search\"],\n\tinput[type=\"number\"],\n\ttextarea,\n\tselect {\n\t\tbox-sizing: border-box;\n\t\theight: 40px;\n\t\tpadding: {\n\t\t\tright: 12px;\n\t\t\tleft: 12px;\n\t\t};\n\t\tbackground-color: #fff;\n\t\tborder-color: $gray-300;\n\t\tbox-shadow: $elevation-01;\n\t\tborder-radius: $radius-md;\n\t\t@extend .p4;\n\t\tcolor: $gray-700;\n\n\t\t&:focus {\n\t\t\toutline: $outline;\n\t\t\tborder-color: $blue-400;\n\t\t}\n\n\t\t&:disabled {\n\t\t\tbackground-color: $gray-50;\n\t\t\tcolor: lighten($gray-500, 10%);\n\t\t}\n\n\t\t&::placeholder {\n\t\t\tcolor: $gray-400;\n\t\t}\n\n\t}\n\n\t/*---------------------------------------------------------------------------------------------\n\t*\n\t* Read only text inputs\n\t*\n\t*---------------------------------------------------------------------------------------------*/\n\tinput[type=\"text\"] {\n\n\t\t&:read-only {\n\t\t\tbackground-color: $gray-50;\n\t\t\tcolor: $gray-400;\n\t\t}\n\n\t}\n\n\t/*---------------------------------------------------------------------------------------------\n\t*\n\t* Number fields\n\t*\n\t*---------------------------------------------------------------------------------------------*/\n\t.acf-field.acf-field-number {\n\n\t\t.acf-label,\n\t\t.acf-input input[type=\"number\"] {\n\t\t\tmax-width: 180px;\n\t\t}\n\n\t}\n\n\t/*---------------------------------------------------------------------------------------------\n\t*\n\t* Textarea\n\t*\n\t*---------------------------------------------------------------------------------------------*/\n\ttextarea {\n\t\tbox-sizing: border-box;\n\t\tpadding: {\n\t\t\ttop: 10px;\n\t\t\tbottom: 10px;\n\t\t};\n\t\theight: 80px;\n\t\tmin-height: 56px;\n\t}\n\n\t/*---------------------------------------------------------------------------------------------\n\t*\n\t* Select\n\t*\n\t*---------------------------------------------------------------------------------------------*/\n\tselect {\n\t\tmin-width: 160px;\n\t\tmax-width: 100%;\n\t\tpadding: {\n\t\t\tright: 40px;\n\t\t\tleft: 12px;\n\t\t};\n\t\tbackground-image: url('../../images/icons/icon-chevron-down.svg');\n\t\tbackground-position: right 10px top 50%;\n\t\tbackground-size: 20px;\n\t\t@extend .p4;\n\n\t\t&:hover,\n\t\t&:focus {\n\t\t\tcolor: $blue-500;\n\t\t}\n\n\t\t&::before {\n\t\t\tcontent: '';\n\t\t\tdisplay: block;\n\t\t\tposition: absolute;\n\t\t\ttop: 5px;\n\t\t\tleft: 5px;\n\t\t\twidth: 20px;\n\t\t\theight: 20px;\n\t\t}\n\n\t}\n\n\t&.rtl {\n\t\tselect {\n\t\t\tpadding: {\n\t\t\t\tright: 12px;\n\t\t\t\tleft: 40px;\n\t\t\t};\n\t\t\tbackground-position: left 10px top 50%;\n\t\t}\n\t}\n\n\t/*---------------------------------------------------------------------------------------------\n\t*\n\t* Radio Button & Checkbox base styling\n\t*\n\t*---------------------------------------------------------------------------------------------*/\n\tinput[type=\"radio\"],\n\tinput[type=\"checkbox\"] {\n\t\tbox-sizing: border-box;\n\t\twidth: 16px;\n\t\theight: 16px;\n\t\tpadding: 0;\n\t\tborder: {\n\t\t\twidth: 1px;\n\t\t\tstyle: solid;\n\t\t\tcolor: $gray-400;\n\t\t};\n\t\tbackground: #fff;\n\t\tbox-shadow: none;\n\n\t\t&:hover {\n\t\t\tbackground-color: $blue-50;\n\t\t\tborder-color: $blue-500;\n\t\t}\n\n\t\t&:checked,\n\t\t&:focus-visible {\n\t\t\tbackground-color: $blue-50;\n\t\t\tborder-color: $blue-500;\n\n\t\t\t&:before {\n\t\t\t\tcontent: '';\n\t\t\t\tposition: relative;\n\t\t\t\ttop: -1px;\n\t\t\t\tleft: -1px;\n\t\t\t\twidth: 16px;\n\t\t\t\theight: 16px;\n\t\t\t\tmargin: 0;\n\t\t\t\tpadding: 0;\n\t\t\t\tbackground-color: transparent;\n\t\t\t\tbackground-size: cover;\n\t\t\t\tbackground-repeat: no-repeat;\n\t\t\t\tbackground-position: center;\n\t\t\t}\n\n\t\t}\n\n\t\t&:active {\n\t\t\tbox-shadow: 0px 0px 0px 3px $blue-50, 0px 0px 0px rgba(255, 54, 54, 0.25);\n\t\t}\n\n\t\t&:disabled {\n\t\t\tbackground-color: $gray-50;\n\t\t\tborder-color: $gray-300;\n\t\t}\n\n\t}\n\n\t&.rtl {\n\t\tinput[type=\"radio\"],\n\t\tinput[type=\"checkbox\"] {\n\t\t\t&:checked,\n\t\t\t&:focus-visible {\n\t\t\t\t&:before {\n\t\t\t\t\tleft: 1px;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\n\t/*---------------------------------------------------------------------------------------------\n\t*\n\t* Radio Buttons\n\t*\n\t*---------------------------------------------------------------------------------------------*/\n\tinput[type=\"radio\"] {\n\n\t\t&:checked,\n\t\t&:focus {\n\n\t\t\t&:before {\n\t\t\t\tbackground-image: url('../../images/field-states/radio-active.svg');\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t/*---------------------------------------------------------------------------------------------\n\t*\n\t* Checkboxes\n\t*\n\t*---------------------------------------------------------------------------------------------*/\n\tinput[type=\"checkbox\"] {\n\n\t\t&:checked,\n\t\t&:focus {\n\n\t\t\t&:before {\n\t\t\t\tbackground-image: url('../../images/field-states/checkbox-active.svg');\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t/*---------------------------------------------------------------------------------------------\n\t*\n\t* Radio Buttons & Checkbox lists\n\t*\n\t*---------------------------------------------------------------------------------------------*/\n\t.acf-radio-list,\n\t.acf-checkbox-list {\n\n\t\tli input[type=\"radio\"],\n\t\tli input[type=\"checkbox\"] {\n\t\t\tmargin: {\n\t\t\t\tright: 6px;\n\t\t\t};\n\t\t}\n\n\t\t&.acf-bl li {\n\t\t\tmargin: {\n\t\t\t\tbottom: 8px;\n\t\t\t};\n\n\t\t\t&:last-of-type {\n\t\t\t\tmargin: {\n\t\t\t\t\tbottom: 0;\n\t\t\t\t};\n\t\t\t}\n\n\n\t\t}\n\n\t\tlabel {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\talign-content: center;\n\t\t}\n\n\t}\n\n\t/*---------------------------------------------------------------------------------------------\n\t*\n\t* ACF Switch\n\t*\n\t*---------------------------------------------------------------------------------------------*/\n\t.acf-switch {\n\t\twidth: 42px;\n\t\theight: 24px;\n\t\tborder: none;\n\t\tbackground-color: $gray-300;\n\t\tborder-radius: 12px;\n\n\t\t&:hover {\n\t\t\tbackground-color: $gray-400;\n\t\t}\n\n\t\t&:active {\n\t\t\tbox-shadow: 0px 0px 0px 3px $blue-50, 0px 0px 0px rgba(255, 54, 54, 0.25);\n\t\t}\n\n\t\t&.-on {\n\t\t\tbackground-color: $color-primary;\n\n\t\t\t&:hover {\n\t\t\t\tbackground-color: $color-primary-hover;\n\t\t\t}\n\n\t\t\t.acf-switch-slider {\n\t\t\t\tleft: 20px;\n\t\t\t}\n\n\t\t}\n\n\t\t.acf-switch-off,\n\t\t.acf-switch-on {\n\t\t\tvisibility: hidden;\n\t\t}\n\n\t\t.acf-switch-slider {\n\t\t\twidth: 20px;\n\t\t\theight: 20px;\n\t\t\tborder: none;\n\t\t\tborder-radius: 100px;\n\t\t\tbox-shadow: 0px 1px 3px rgba(16, 24, 40, 0.1), 0px 1px 2px rgba(16, 24, 40, 0.06);\n\t\t}\n\n\t}\n\n\t.acf-field-true-false {\n\t\tdisplay: flex;\n\t\talign-items: flex-start;\n\n\t\t.acf-label {\n\t\t\torder: 2;\n\t\t\tdisplay: block;\n\t\t\talign-items: center;\n\t\t\tmargin: {\n\t\t\t\ttop: 2px;\n\t\t\t\tbottom: 0;\n\t\t\t\tleft: 12px;\n\t\t\t};\n\n\t\t\tlabel {\n\t\t\t\tmargin: {\n\t\t\t\t\tbottom: 0;\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t.acf-tip {\n\t\t\t\tmargin: {\n\t\t\t\t\tleft: 12px;\n\t\t\t\t};\n\t\t\t}\n\t\t\t\n\t\t\t.description {\n\t\t\t\tdisplay: block;\n\t\t\t\tmargin: {\n\t\t\t\t\ttop: 2px;\n\t\t\t\t\tleft: 0;\n\t\t\t\t};\t\t\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t&.rtl {\n\t\t.acf-field-true-false {\n\t\t\t.acf-label {\n\t\t\t\tmargin: {\n\t\t\t\t\tright: 12px;\n\t\t\t\t\tleft: 0;\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t.acf-tip {\n\t\t\t\tmargin: {\n\t\t\t\t\tright: 12px;\n\t\t\t\t\tleft: 0;\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t}\n\n\t/*---------------------------------------------------------------------------------------------\n\t*\n\t* File input button\n\t*\n\t*---------------------------------------------------------------------------------------------*/\n\n\tinput::file-selector-button {\n\t\tbox-sizing: border-box;\n\t\tmin-height: 40px;\n\t\tmargin: {\n\t\t\tright: 16px;\n\t\t};\n\t\tpadding: {\n\t\t\ttop: 8px;\n\t\t\tright: 16px;\n\t\t\tbottom: 8px;\n\t\t\tleft: 16px;\n\t\t};\n\t\tbackground-color: transparent;\n\t\tcolor: $color-primary !important;\n\t\tborder-radius: $radius-md;\n\t\tborder: {\n\t\t\twidth: 1px;\n\t\t\tstyle: solid;\n\t\t\tcolor: $color-primary;\n\t\t};\n\t\ttext-decoration: none;\n\n\t\t&:hover {\n\t\t\tborder-color: $color-primary-hover;\n\t\t\tcursor: pointer;\n\t\t\tcolor: $color-primary-hover !important;\n\t\t}\n\n\t}\n\n\n\t/*---------------------------------------------------------------------------------------------\n\t*\n\t* Action Buttons\n\t*\n\t*---------------------------------------------------------------------------------------------*/\n\t.button {\n\t\tdisplay: inline-flex;\n\t\talign-items: center;\n\t\theight: 40px;\n\t\tpadding: {\n\t\t\tright: 16px;\n\t\t\tleft: 16px;\n\t\t};\n\t\tbackground-color: transparent;\n\t\tborder-width: 1px;\n\t\tborder-style: solid;\n\t\tborder-color: $blue-500;\n\t\tborder-radius: $radius-md;\n\t\t@extend .p4;\n\t\tcolor: $blue-500;\n\n\t\t&:hover {\n\t\t\tbackground-color: lighten($blue-50, 2%);\n\t\t\tborder-color: $color-primary;\n\t\t\tcolor: $color-primary;\n\t\t}\n\t\t&:focus {\n\t\t\tbackground-color: lighten($blue-50, 2%);\n\t\t\toutline: $outline;\n\t\t\tcolor: $color-primary;\n\t\t}\n\n\t}\n\n\t/*---------------------------------------------------------------------------------------------\n\t*\n\t* Edit field group header\n\t*\n\t*---------------------------------------------------------------------------------------------*/\n\t.edit-field-group-header {\n\t\tdisplay: block !important;\n\t}\n\n\t/*---------------------------------------------------------------------------------------------\n\t*\n\t* Select2 inputs\n\t*\n\t*---------------------------------------------------------------------------------------------*/\n\t.acf-input {\n\n\t\t.select2-container.-acf .select2-selection {\n\t\t\tborder: none;\n\t\t\tline-height: 1;\n\t\t}\n\n\t\t.select2-container.-acf .select2-selection__rendered {\n\t\t\tbox-sizing: border-box;\n\t\t\tpadding: {\n\t\t\t\tright: 0;\n\t\t\t\tleft: 0;\n\t\t\t};\n\t\t\tbackground-color: #fff;\n\t\t\tborder: {\n\t\t\t\twidth: 1px;\n\t\t\t\tstyle: solid;\n\t\t\t\tcolor: $gray-300;\n\t\t\t};\n\t\t\tbox-shadow: $elevation-01;\n\t\t\tborder-radius: $radius-md;\n\t\t\t@extend .p4;\n\t\t\tcolor: $gray-700;\n\t\t}\n\n\t\t.select2-container--focus {\n\t\t\toutline: $outline;\n\t\t\tborder-color: $blue-400;\n\t\t\tborder-radius: $radius-md;\n\n\t\t\t.select2-selection__rendered {\n\t\t\t\tborder-color: $blue-400 !important;\n\t\t\t}\n\n\t\t\t&.select2-container--below.select2-container--open {\n\n\t\t\t\t.select2-selection__rendered {\n\t\t\t\t\tborder-bottom-right-radius: 0 !important;\n\t\t\t\t\tborder-bottom-left-radius: 0 !important;\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t&.select2-container--above.select2-container--open {\n\n\t\t\t\t.select2-selection__rendered {\n\t\t\t\t\tborder-top-right-radius: 0 !important;\n\t\t\t\t\tborder-top-left-radius: 0 !important;\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\t.select2-container .select2-search--inline .select2-search__field {\n\t\t\tmargin: 0;\n\t\t\tpadding: {\n\t\t\t\tleft: 6px;\n\t\t\t};\n\n\t\t\t&:focus {\n\t\t\t\toutline: none;\n\t\t\t\tborder: none;\n\t\t\t}\n\n\t\t}\n\n\t\t.select2-container--default .select2-selection--multiple .select2-selection__rendered {\n\t\t\tpadding: {\n\t\t\t\ttop: 0;\n\t\t\t\tright: 6px;\n\t\t\t\tbottom: 0;\n\t\t\t\tleft: 6px;\n\t\t\t};\n\t\t}\n\n\t\t.select2-selection__clear {\n\t\t\twidth: 18px;\n\t\t\theight: 18px;\n\t\t\tmargin: {\n\t\t\t\ttop: 12px;\n\t\t\t\tright: 1px;\n\t\t\t};\n\t\t\ttext-indent: 100%;\n\t\t\twhite-space: nowrap;\n\t\t\toverflow: hidden;\n\t\t\tcolor: #fff;\n\n\t\t\t&:before {\n\t\t\t\tcontent: '';\n\t\t\t\t$icon-size: 16px;\n\t\t\t\tdisplay: block;\n\t\t\t\twidth: $icon-size;\n\t\t\t\theight: $icon-size;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 0;\n\t\t\t\tborder: none;\n\t\t\t\tborder-radius: 0;\n\t\t\t\t-webkit-mask-size: contain;\n\t\t\t\tmask-size: contain;\n\t\t\t\t-webkit-mask-repeat: no-repeat;\n\t\t\t\tmask-repeat: no-repeat;\n\t\t\t\t-webkit-mask-position: center;\n\t\t\t\tmask-position: center;\n\t\t\t\t-webkit-mask-image: url('../../images/icons/icon-close.svg');\n\t\t\t\tmask-image: url('../../images/icons/icon-close.svg');\n\t\t\t\tbackground-color: $gray-400;\n\t\t\t}\n\n\t\t\t&:hover::before {\n\t\t\t\tbackground-color: $blue-500;\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t/*---------------------------------------------------------------------------------------------\n\t*\n\t* ACF label\n\t*\n\t*---------------------------------------------------------------------------------------------*/\n\t.acf-label {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: space-between;\n\n\t\t.acf-icon-help {\n\t\t\t$icon-size: 18px;\n\t\t\twidth: $icon-size;\n\t\t\theight: $icon-size;\n\t\t\tbackground-color: $gray-400;\n\t\t}\n\n\t\tlabel {\n\t\t\tmargin: {\n\t\t\t\tbottom: 0;\n\t\t\t};\n\t\t}\n\t\t\n\t\t.description {\n\t\t\tmargin: {\n\t\t\t\ttop: 2px;\n\t\t\t};\n\t\t}\n\n\t}\n\n\t/*---------------------------------------------------------------------------------------------\n\t*\n\t* Tooltip for field name field setting (result of a fix for keyboard navigation)\n\t*\n\t*---------------------------------------------------------------------------------------------*/\n\t.acf-field-setting-name .acf-tip {\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tleft: 654px;\n\t\tcolor: #98A2B3;\n\n\t\t@at-root .rtl#{&} {\n\t\t\tleft: auto;\n\t\t\tright: 654px;\n\t\t}\n\n\t\t.acf-icon-help {\n\t\t\twidth: 18px;\n\t\t\theight: 18px;\n\t\t}\n\t}\n\n\t/* Field Type Selection select2 */\n\t.acf-field-setting-type,\n\t.acf-field-permalink-rewrite,\n\t.acf-field-query-var,\n\t.acf-field-manage-terms,\n\t.acf-field-edit-terms,\n\t.acf-field-delete-terms,\n\t.acf-field-assign-terms,\n\t.acf-field-meta-box {\n\t\t\n\t\t.select2-container.-acf {\n\t\t\tmin-height: 40px;\n\t\t}\n\n\t\t.select2-container--default .select2-selection--single {\n\t\t\t.select2-selection__rendered {\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tposition: relative;\n\t\t\t\tz-index: 800;\n\t\t\t\tmin-height: 40px;\n\t\t\t\tpadding: {\n\t\t\t\t\ttop: 0;\n\t\t\t\t\tright: 12px;\n\t\t\t\t\tbottom: 0;\n\t\t\t\t\tleft: 12px;\n\t\t\t\t};\n\t\t\t}\n\t\t\t.field-type-icon {\n\t\t\t\ttop: auto;\n\t\t\t\twidth: 18px;\n\t\t\t\theight: 18px;\n\t\t\t\tmargin: {\n\t\t\t\t\tright: 2px;\n\t\t\t\t};\n\n\t\t\t\t&:before {\n\t\t\t\t\twidth: 9px;\n\t\t\t\t\theight: 9px;\n\t\t\t\t}\n\n\t\t\t}\n\t\t}\n\n\t\t.select2-container--open .select2-selection__rendered {\n\t\t\tborder-color: $blue-300 !important;\n\t\t\tborder-bottom-color: $gray-300 !important;\n\t\t}\n\n\t\t.select2-container--open.select2-container--below .select2-selection__rendered {\n\t\t\tborder-bottom-right-radius: 0 !important;\n\t\t\tborder-bottom-left-radius: 0 !important;\n\t\t}\n\n\t\t.select2-container--open.select2-container--above .select2-selection__rendered {\n\t\t\tborder-top-right-radius: 0 !important;\n\t\t\tborder-top-left-radius: 0 !important;\n\t\t\tborder-bottom-color: $blue-300 !important;\n\t\t\tborder-top-color: $gray-300 !important;\n\t\t}\n\n\t\t// icon margins\n\t\t.acf-selection.has-icon {\n\t\t\tmargin-left: 6px;\n\t\n\t\t\t@at-root .rtl#{&} {\n\t\t\t\tmargin-right: 6px;\n\t\t\t}\n\t\t}\n\t\t\n\t\t// Dropdown icon\n\t\t.select2-selection__arrow {\n\t\t\twidth: 20px;\n\t\t\theight: 20px;\n\t\t\ttop: calc(50% - 10px);\n\t\t\tright: 12px;\n\t\t\tbackground-color: transparent;\n\t\t\t\n\t\t\t&:after {\n\t\t\t\tcontent: \"\";\n\t\t\t\t$icon-size: 20px;\n\t\t\t\tdisplay: block;\n\t\t\t\tposition: absolute;\n\t\t\t\tz-index: 850;\n\t\t\t\ttop: 1px;\n\t\t\t\tleft: 0;\n\t\t\t\twidth: $icon-size;\n\t\t\t\theight: $icon-size;\n\t\t\t\t-webkit-mask-image: url(\"../../images/icons/icon-chevron-down.svg\");\n\t\t\t\tmask-image: url(\"../../images/icons/icon-chevron-down.svg\");\n\t\t\t\tbackground-color: $gray-500;\n\t\t\t\tborder: none;\n\t\t\t\tborder-radius: 0;\n\t\t\t\t-webkit-mask-size: contain;\n\t\t\t\tmask-size: contain;\n\t\t\t\t-webkit-mask-repeat: no-repeat;\n\t\t\t\tmask-repeat: no-repeat;\n\t\t\t\t-webkit-mask-position: center;\n\t\t\t\tmask-position: center;\n\t\t\t\ttext-indent: 500%;\n\t\t\t\twhite-space: nowrap;\n\t\t\t\toverflow: hidden;\t\n\t\t\t}\n\t\t\t\n\t\t\tb[role=\"presentation\"] {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\t// Open state\n\t\t.select2-container--open {\n\t\t\t\n\t\t\t// Swap chevron icon\n\t\t\t.select2-selection__arrow:after {\n\t\t\t\t-webkit-mask-image: url(\"../../images/icons/icon-chevron-up.svg\");\n\t\t\t\tmask-image: url(\"../../images/icons/icon-chevron-up.svg\");\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t}\n\n\t.field-type-select-results {\n\t\tposition: relative;\n\t\ttop: 4px;\n\t\tz-index: 1002;\n\t\tborder-radius: 0 0 $radius-md $radius-md;\n\t\tbox-shadow: 0px 8px 24px 4px rgba(16, 24, 40, 0.12);\n\t\t&.select2-dropdown--above {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column-reverse;\t \n\t\t\ttop: 0;\n\t\t\tborder-radius: $radius-md $radius-md 0 0;\n\t\t\tz-index: 1030;\n\t\t}\n\t\t\n\t\t@at-root .select2-container.select2-container--open#{&} {\n\t\t\t// outline: 3px solid $blue-50;\n\t\t\tbox-shadow: 0px 0px 0px 3px #EBF5FA, 0px 8px 24px 4px rgba(16, 24, 40, 0.12);\n\t\t}\n\n\t\t// icon margins\n\t\t.acf-selection.has-icon {\n\t\t\tmargin-left: 6px;\n\n\t\t\t@at-root .rtl#{&} {\n\t\t\t\tmargin-right: 6px;\n\t\t\t}\n\t\t}\n\n\t\t// Search field\n\t\t.select2-search {\n\t\t\tposition: relative;\n\t\t\tmargin: 0;\n\t\t\tpadding: 0;\n\n\t\t\t&--dropdown {\n\t\t\t\t&:after {\n\t\t\t\t\tcontent: \"\";\n\t\t\t\t\t$icon-size: 16px;\n\t\t\t\t\tdisplay: block;\n\t\t\t\t\tposition: absolute;\n\t\t\t\t\ttop: 12px;\n\t\t\t\t\tleft: 13px;\n\t\t\t\t\twidth: $icon-size;\n\t\t\t\t\theight: $icon-size;\n\t\t\t\t\t-webkit-mask-image: url(\"../../images/icons/icon-search.svg\");\n\t\t\t\t\tmask-image: url(\"../../images/icons/icon-search.svg\");\n\t\t\t\t\tbackground-color: $gray-400;\n\t\t\t\t\tborder: none;\n\t\t\t\t\tborder-radius: 0;\n\t\t\t\t\t-webkit-mask-size: contain;\n\t\t\t\t\tmask-size: contain;\n\t\t\t\t\t-webkit-mask-repeat: no-repeat;\n\t\t\t\t\tmask-repeat: no-repeat;\n\t\t\t\t\t-webkit-mask-position: center;\n\t\t\t\t\tmask-position: center;\n\t\t\t\t\ttext-indent: 500%;\n\t\t\t\t\twhite-space: nowrap;\n\t\t\t\t\toverflow: hidden;\n\n\t\t\t\t\t@at-root .rtl#{&} {\n\t\t\t\t\t\tright: 12px;\n\t\t\t\t\t\tleft: auto;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t.select2-search__field {\n\t\t\t\tpadding-left: 38px;\n\n\t\t\t\tborder-right: 0;\n\t\t\t\tborder-bottom: 0;\n\t\t\t\tborder-left: 0;\n\t\t\t\tborder-radius: 0;\n\n\t\t\t\t@at-root .rtl#{&} {\n\t\t\t\t\tpadding-right: 38px;\n\t\t\t\t\tpadding-left: 0;\n\t\t\t\t}\n\n\t\t\t\t&:focus {\n\t\t\t\t\tborder-top-color: $gray-300;\n\t\t\t\t\toutline: 0;\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t\t.select2-results__options {\n\t\t\tmax-height: 440px;\n\t\t}\n\t\t\n\t\t.select2-results__option {\n\t\t\t.select2-results__option--highlighted {\n\t\t\t\tbackground-color: $blue-500 !important;\n\t\t\t\tcolor: $gray-50 !important;\n\t\t\t}\n\t\t}\n\n\t\t// List items\n\t\t.select2-results__option .select2-results__option {\n\t\t\tdisplay: inline-flex;\n\t\t\tposition: relative;\n\t\t\twidth: calc(100% - 24px);\n\t\t\tmin-height: 32px;\n\t\t\tpadding: {\n\t\t\t\ttop: 0;\n\t\t\t\tright: 12px;\n\t\t\t\tbottom: 0;\n\t\t\t\tleft: 12px;\n\t\t\t}\n\t\t\talign-items: center;\n\t\t\t\n\t\t\t.field-type-icon {\n\t\t\t\ttop: auto;\n\t\t\t\twidth: 18px;\n\t\t\t\theight: 18px;\n\t\t\t\tmargin: {\n\t\t\t\t\tright: 2px;\n\t\t\t\t};\n\t\t\t\tbox-shadow: 0 0 0 1px $gray-50;\n\t\t\t\n\t\t\t\t&:before {\n\t\t\t\t\twidth: 9px;\n\t\t\t\t\theight: 9px;\n\t\t\t\t}\n\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\t.select2-results__option[aria-selected=\"true\"] {\n\t\t\tbackground-color: $blue-50 !important;\n\t\t\tcolor: $gray-700 !important;\n\t\t\t\n\t\t\t&:after {\n\t\t\t\tcontent: \"\";\n\t\t\t\t$icon-size: 16px;\n\t\t\t\tright: 13px;\n\t\t\t\tposition: absolute;\n\t\t\t\twidth: $icon-size;\n\t\t\t\theight: $icon-size;\n\t\t\t\t-webkit-mask-image: url(\"../../images/icons/icon-check.svg\");\n\t\t\t\tmask-image: url(\"../../images/icons/icon-check.svg\");\n\t\t\t\tbackground-color: $blue-500;\n\t\t\t\tborder: none;\n\t\t\t\tborder-radius: 0;\n\t\t\t\t-webkit-mask-size: contain;\n\t\t\t\tmask-size: contain;\n\t\t\t\t-webkit-mask-repeat: no-repeat;\n\t\t\t\tmask-repeat: no-repeat;\n\t\t\t\t-webkit-mask-position: center;\n\t\t\t\tmask-position: center;\n\t\t\t\ttext-indent: 500%;\n\t\t\t\twhite-space: nowrap;\n\t\t\t\toverflow: hidden;\n\n\t\t\t\t@at-root .rtl#{&} {\n\t\t\t\t\tleft: 13px;\n\t\t\t\t\tright: auto;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t.select2-results__group {\n\t\t\tdisplay: inline-flex;\n\t\t\talign-items: center;\n\t\t\twidth: calc(100% - 24px);\n\t\t\tmin-height: 25px;\n\t\t\tbackground-color: $gray-50;\n\t\t\tborder-top: {\n\t\t\t\twidth: 1px;\n\t\t\t\tstyle: solid;\n\t\t\t\tcolor: $gray-200;\n\t\t\t};\n\t\t\tborder-bottom: {\n\t\t\t\twidth: 1px;\n\t\t\t\tstyle: solid;\n\t\t\t\tcolor: $gray-200;\n\t\t\t};\n\t\t\tcolor: $gray-400;\n\t\t\tfont-size: 11px;\n\t\t\tmargin: {\n\t\t\t\tbottom: 0;\n\t\t\t};\n\t\t\tpadding: {\n\t\t\t\ttop: 0;\n\t\t\t\tright: 12px;\n\t\t\t\tbottom: 0;\n\t\t\t\tleft: 12px;\n\t\t\t};\n\t\t\tfont-weight: normal;\n\t\t}\n\t}\n\t\n\t/*---------------------------------------------------------------------------------------------\n\t*\n\t* RTL arrow position\n\t*\n\t*---------------------------------------------------------------------------------------------*/\n\t&.rtl {\n\t\t\n\t\t.acf-field-setting-type,\n\t\t.acf-field-permalink-rewrite,\n\t\t.acf-field-query-var {\n\t\t\t\n\t\t\t.select2-selection__arrow:after {\n\t\t\tright: auto;\n\t\t\tleft: 10px;\n\t\t\t}\n\t\t}\n\t\t\n\t}\n\t\n}\n\n.rtl.post-type-acf-field-group,\n.rtl.acf-internal-post-type {\n\t.acf-field-setting-name .acf-tip {\n\t\tleft: auto;\n\t\tright: 654px;\n\t}\n}","/*----------------------------------------------------------------------------\n*\n* Container sizes\n*\n*----------------------------------------------------------------------------*/\n.post-type-acf-field-group .metabox-holder.columns-1 {\n\n\t#acf-field-group-fields,\n\t#acf-field-group-options,\n\t.meta-box-sortables.ui-sortable,\n\t.notice {\n\t\tmax-width: $max-width;\n\t}\n\n}\n\n/*----------------------------------------------------------------------------\n*\n* Max width for notices in 1 column edit field group layout\n*\n*----------------------------------------------------------------------------*/\n.post-type-acf-field-group.columns-1 {\n\n\t.notice {\n\t\tmax-width: $max-width;\n\t}\n\n}\n\n/*----------------------------------------------------------------------------\n*\n* Widen edit field group headerbar for 2 column layout\n*\n*----------------------------------------------------------------------------*/\n.post-type-acf-field-group.columns-2 {\n\n\t.acf-headerbar .acf-headerbar-inner{\n\t\tmax-width: 100%;\n\t}\n\n}\n\n\n/*----------------------------------------------------------------------------\n*\n* Post stuff\n*\n*----------------------------------------------------------------------------*/\n.post-type-acf-field-group {\n\n\t#poststuff {\n\t\tmargin: {\n\t\t\ttop: 0;\n\t\t\tright: 0;\n\t\t\tbottom: 0;\n\t\t\tleft: 0;\n\t\t};\n\t\tpadding: {\n\t\t\ttop: 0;\n\t\t\tright: 0;\n\t\t\tbottom: 0;\n\t\t\tleft: 0;\n\t\t};\n\t}\n\n}\n\n/*----------------------------------------------------------------------------\n*\n* Table\n*\n*----------------------------------------------------------------------------*/\n.post-type-acf-field-group {\n\n\t#acf-field-group-fields .acf-field-list-wrap {\n\t\toverflow: hidden;\n\t\tborder: none;\n\t\tborder-radius: 0 0 $radius-lg $radius-lg;\n\t\tbox-shadow: $elevation-01;\n\n\t\t&.-empty {\n\t\t\tborder-top: {\n\t\t\t\twidth: 1px;\n\t\t\t\tstyle: solid;\n\t\t\t\tcolor: $gray-200;\n\t\t\t};\n\n\t\t\t.acf-thead,\n\t\t\t.acf-tfoot {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\n\t\t\t.no-fields-message {\n\t\t\t\tmin-height: 280px;\n\t\t\t}\n\n\t\t}\n\n\t}\n\n}\n\n/*----------------------------------------------------------------------------\n*\n* Table header\n*\n*----------------------------------------------------------------------------*/\n.post-type-acf-field-group {\n\n\t.acf-thead {\n\t\tbackground-color: $gray-50;\n\t\tborder-top: {\n\t\t\twidth: 1px;\n\t\t\tstyle: solid;\n\t\t\tcolor: $gray-200;\n\t\t};\n\t\tborder-bottom: {\n\t\t\twidth: 1px;\n\t\t\tstyle: solid;\n\t\t\tcolor: $gray-200;\n\t\t};\n\n\t\tli {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tmin-height: 48px;\n\t\t\tpadding: {\n\t\t\t\ttop: 0;\n\t\t\t\tbottom: 0;\n\t\t\t};\n\t\t\t@extend .p4;\n\t\t\tcolor: $gray-700;\n\t\t\tfont-weight: 500;\n\t\t}\n\n\t}\n\n}\n\n/*----------------------------------------------------------------------------\n*\n* Table body\n*\n*----------------------------------------------------------------------------*/\n.post-type-acf-field-group {\n\n\t.acf-field-object {\n\t\tborder-top: {\n\t\t\twidth: 1px;\n\t\t\tstyle: solid;\n\t\t\tcolor: $gray-200;\n\t\t};\n\n\t\t&:hover {\n\n\t\t\t.acf-sortable-handle:before {\n\t\t\t\tdisplay: inline-flex;\n\t\t\t}\n\n\t\t}\n\n\t\t// Add divider to show which fields have endpoint\n\t\t&.acf-field-is-endpoint {\n\n\t\t\t&:before {\n\t\t\t\tdisplay: block;\n\t\t\t\tcontent: \"\";\n\t\t\t\theight: 2px;\n\t\t\t\twidth: 100%;\n\t\t\t\tbackground: $gray-300;\n\t\t\t\tmargin-top: -1px;\n\t\t\t}\n\n\t\t\t&.acf-field-object-accordion {\n\n\t\t\t\t&:before {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t}\n\n\t\t\t\t&:after {\n\t\t\t\t\tdisplay: block;\n\t\t\t\t\tcontent: \"\";\n\t\t\t\t\theight: 2px;\n\t\t\t\t\twidth: 100%;\n\t\t\t\t\tbackground: $gray-300;\n\t\t\t\t\tz-index: 500;\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\t&:hover {\n\t\t\tbackground-color: lighten($blue-50, 3%);\n\t\t}\n\n\t\t&.open {\n\t\t\tbackground-color: #fff;\n\t\t\tborder-top-color: $blue-200;\n\t\t}\n\n\t\t&.open .handle {\n\t\t\tbackground-color: $blue-100;\n\t\t\tborder: none;\n\t\t\ttext-shadow: none;\n\n\t\t\ta {\n\t\t\t\tcolor: $link-color !important;\n\n\t\t\t\t&.delete-field {\n\t\t\t\t\tcolor: #a00 !important;\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t\t.acf-field-setting-type .acf-hl {\n\t\t\tmargin: 0;\n\n\t\t\tli {\n\t\t\t\twidth: auto;\n\n\t\t\t\t&:first-child {\n\t\t\t\t\tflex-grow: 1;\n\t\t\t\t\tmargin-left: -10px;\n\t\t\t\t}\n\n\t\t\t\t&:nth-child( 2 ) {\n\t\t\t\t\tpadding-right: 0;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tul.acf-hl {\n\t\t\tdisplay: flex;\n\t\t\talign-items: stretch;\n\t\t}\n\n\t\t.handle li {\n\t\t\tdisplay: flex;\n\t\t\talign-items: top;\n\t\t\tflex-wrap: wrap;\n\t\t\tmin-height: 60px;\n\t\t\t@extend .p4;\n\t\t\tcolor: $gray-700;\n\n\t\t\t&.li-field-label {\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-wrap: wrap;\n\t\t\t\tjustify-content: flex-start;\n\t\t\t\talign-content: flex-start;\n\t\t\t\talign-items: flex-start;\n\t\t\t\twidth: auto;\n\n\t\t\t\ta.edit-field {\n\t\t\t\t\t@extend .p4;\n\t\t\t\t}\n\n\t\t\t\tstrong {\n\t\t\t\t\tfont-weight: 500;\n\t\t\t\t}\n\n\t\t\t\t.row-options {\n\t\t\t\t\twidth: 100%;\n\t\t\t\t}\n\n\t\t\t\t.row-options a {\n\t\t\t\t\t@extend .p6;\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n}\n\n/*----------------------------------------------------------------------------\n*\n* Table footer\n*\n*----------------------------------------------------------------------------*/\n.post-type-acf-field-group {\n\n\t.acf-tfoot {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: flex-end;\n\t\tmin-height: 80px;\n\t\tbox-sizing: border-box;\n\t\tpadding: {\n\t\t\ttop: 8px;\n\t\t\tright: 24px;\n\t\t\tbottom: 8px;\n\t\t\tleft: 24px;\n\t\t};\n\t\tbackground-color: #fff;\n\t\tborder-top: {\n\t\t\twidth: 1px;\n\t\t\tstyle: solid;\n\t\t\tcolor: $gray-200;\n\t\t};\n\n\t\t.acf-fr {\n\t\t\tmargin: {\n\t\t\t\ttop: 0;\n\t\t\t\tright: 0;\n\t\t\t\tbottom: 0;\n\t\t\t\tleft: 0;\n\t\t\t};\n\t\t\tpadding: {\n\t\t\t\ttop: 0;\n\t\t\t\tright: 0;\n\t\t\t\tbottom: 0;\n\t\t\t\tleft: 0;\n\t\t\t};\n\t\t}\n\n\t}\n\n}\n\n/*----------------------------------------------------------------------------\n*\n* Edit field settings\n*\n*----------------------------------------------------------------------------*/\n.post-type-acf-field-group .acf-field-object .settings {\n\tbox-sizing: border-box;\n\tpadding: {\n\t\ttop: 0;\n\t\tbottom: 0;\n\t};\n\tbackground-color: #fff;\n\tborder-left: {\n\t\twidth: 4px;\n\t\tstyle: solid;\n\t\tcolor: $blue-300;\n\t}\n}\n\n\n/*----------------------------------------------------------------------------\n*\n* Main field settings container\n*\n*----------------------------------------------------------------------------*/\n.acf-field-settings-main {\n\tpadding: {\n\t\ttop: 32px;\n\t\tright: 0;\n\t\tbottom: 32px;\n\t\tleft: 0;\n\t};\n\n\t.acf-field:last-of-type {\n\t\tmargin: {\n\t\t\tbottom: 0;\n\t\t};\n\t}\n\n}\n\n/*----------------------------------------------------------------------------\n*\n* Field label\n*\n*----------------------------------------------------------------------------*/\n.acf-field-settings .acf-label {\n\tdisplay: block;\n\tjustify-content: space-between;\n\talign-items: center;\n\talign-content: center;\n\tmargin: {\n\t\ttop: 0;\n\t\tright: 0;\n\t\tbottom: 6px;\n\t\tleft: 0;\n\t};\n}\n\n/*----------------------------------------------------------------------------\n*\n* Single field\n*\n*----------------------------------------------------------------------------*/\n.acf-field-settings .acf-field {\n\tbox-sizing: border-box;\n\twidth: 100%;\n\tmargin: {\n\t\ttop: 0;\n\t\tright: 0;\n\t\tbottom: 32px;\n\t\tleft: 0;\n\t}\n\tpadding: {\n\t\ttop: 0;\n\t\tright: 72px;\n\t\tbottom: 0;\n\t\tleft: 72px;\n\t};\n\n\t@media screen and (max-width: 600px) {\n\t\tpadding: {\n\t\t\tright: 12px;\n\t\t\tleft: 12px;\n\t\t};\n\t}\n\n\t.acf-label,\n\t.acf-input {\n\t\tmax-width: 600px;\n\n\t\t&.acf-input-sub {\n\t\t\tmax-width: 100%;\n\t\t}\n\n\t\t.acf-btn {\n\n\t\t\t&:disabled {\n\t\t\t\tbackground-color: $gray-100;\n\t\t\t\tcolor: $gray-400 !important;\n\t\t\t\tborder: 1px $gray-300 solid;\n\t\t\t\tcursor: default;\n\t\t\t}\n\t\t}\n\t}\n\n\t.acf-input-wrap {\n\t\toverflow: visible;\n\t}\n\n}\n\n/*----------------------------------------------------------------------------\n*\n* Field separators\n*\n*----------------------------------------------------------------------------*/\n\n.acf-field-settings .acf-field.acf-field-setting-label,\n.acf-field-settings .acf-field-setting-wrapper {\n\tpadding: {\n\t\ttop: 24px;\n\t};\n\tborder-top: {\n\t\twidth: 1px;\n\t\tstyle: solid;\n\t\tcolor: $gray-200;\n\t};\n}\n\n.acf-field-settings .acf-field-setting-wrapper {\n\tmargin: {\n\t\ttop: 24px;\n\t};\n}\n\n/*----------------------------------------------------------------------------\n*\n* Edit fields footer\n*\n*----------------------------------------------------------------------------*/\n.acf-field-settings .acf-field-settings-footer {\n\tdisplay: flex;\n\talign-items: center;\n\tmin-height: 72px;\n\tbox-sizing: border-box;\n\twidth: 100%;\n\tmargin: {\n\t\ttop: 0;\n\t\tright: 0;\n\t\tbottom: 0;\n\t\tleft: 0;\n\t}\n\tpadding: {\n\t\ttop: 0;\n\t\tright: 0;\n\t\tbottom: 0;\n\t\tleft: 72px;\n\t};\n\tborder-top: {\n\t\twidth: 1px;\n\t\tstyle: solid;\n\t\tcolor: $gray-200;\n\t};\n\n\t@media screen and (max-width: 600px) {\n\t\tpadding: {\n\t\t\tleft: 12px;\n\t\t};\n\t}\n\n}\n\n.rtl .acf-field-settings .acf-field-settings-footer {\n\tpadding: {\n\t\ttop: 0;\n\t\tright: 72px;\n\t\tbottom: 0;\n\t\tleft: 0;\n\t};\n}\n\n/*----------------------------------------------------------------------------\n*\n* Tabs\n*\n*----------------------------------------------------------------------------*/\n.acf-fields,\n.acf-admin-page.acf-internal-post-type,\n.acf-browse-fields-modal-wrap {\n\t.acf-tab-wrap {\n\t\tbackground: $gray-50;\n\t\tborder-bottom: {\n\t\t\tcolor: $gray-800;\n\t\t};\n\n\t\t.acf-tab-group {\n\t\t\tpadding: {\n\t\t\t\tright: 24px;\n\t\t\t\tleft: 24px;\n\t\t\t};\n\t\t\tborder-top: {\n\t\t\t\twidth: 0;\n\t\t\t};\n\t\t\tborder-bottom: {\n\t\t\t\twidth: 1px;\n\t\t\t\tstyle: solid;\n\t\t\t\tcolor: $gray-200;\n\t\t\t};\n\t\t}\n\n\t}\n\n\t.acf-field-settings-tab-bar,\n\t.acf-tab-wrap .acf-tab-group {\n\t\tdisplay: flex;\n\t\talign-items: stretch;\n\t\tmin-height: 48px;\n\t\tpadding: {\n\t\t\ttop: 0;\n\t\t\tright: 0;\n\t\t\tbottom: 0;\n\t\t\tleft: 24px;\n\t\t};\n\t\tmargin: {\n\t\t\ttop: 0;\n\t\t\tbottom: 0;\n\t\t};\n\t\tborder-bottom: {\n\t\t\twidth: 1px;\n\t\t\tstyle: solid;\n\t\t\tcolor: $gray-200;\n\t\t};\n\t\tli {\n\t\t\tdisplay: flex;\n\t\t\tmargin: {\n\t\t\t\ttop: 0;\n\t\t\t\tright: 24px;\n\t\t\t\tbottom: 0;\n\t\t\t\tleft: 0;\n\t\t\t};\n\t\t\tpadding: 0;\n\n\t\t\ta {\n\n\t\t\t\t&:focus-visible {\n\t\t\t\t\tborder: 1px solid #5897fb;\n\t\t\t\t}\n\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\tdisplay: inline-flex;\n\t\t\t\talign-items: center;\n\t\t\t\theight: 100%;\n\t\t\t\tpadding: {\n\t\t\t\t\ttop: 3px;\n\t\t\t\t\tright: 0;\n\t\t\t\t\tbottom: 0;\n\t\t\t\t\tleft: 0;\n\t\t\t\t};\n\t\t\t\tbackground: none;\n\t\t\t\tborder-top: none;\n\t\t\t\tborder-right: none;\n\t\t\t\tborder-bottom: {\n\t\t\t\t\twidth: 3px;\n\t\t\t\t\tstyle: solid;\n\t\t\t\t\tcolor: transparent;\n\t\t\t\t};\n\t\t\t\tborder-left: none;\n\t\t\t\tcolor: $gray-500;\n\t\t\t\t@extend .p5;\n\t\t\t\tfont-weight: normal;\n\n\t\t\t\t&:hover {\n\t\t\t\t\tcolor: $gray-800;\n\t\t\t\t}\n\n\t\t\t\t&:hover {\n\t\t\t\t\tbackground-color: transparent;\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t&.active a {\n\t\t\t\tbackground: none;\n\t\t\t\tborder-bottom: {\n\t\t\t\t\tcolor: $color-primary;\n\t\t\t\t};\n\t\t\t\tcolor: $blue-500;\n\n\t\t\t\t&:focus-visible {\n\t\t\t\t\tborder-bottom: {\n\t\t\t\t\t\tcolor: $color-primary;\n\t\t\t\t\t\twidth: 3px;\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t}\n\n}\n\n.acf-admin-page.acf-internal-post-type .acf-field-editor .acf-field-settings-tab-bar {\n\tpadding: {\n\t\tleft: 72px;\n\t};\n\n\t@media screen and (max-width: 600px) {\n\t\tpadding: {\n\t\t\tleft: 12px;\n\t\t};\n\t}\n\n}\n\n/*----------------------------------------------------------------------------\n*\n* Field group settings\n*\n*----------------------------------------------------------------------------*/\n#acf-field-group-options {\n\n\t.field-group-settings-tab {\n\t\tpadding: {\n\t\t\ttop: 24px;\n\t\t\tright: 24px;\n\t\t\tbottom: 24px;\n\t\t\tleft: 24px;\n\t\t};\n\n\t\t.acf-field:last-of-type {\n\t\t\tpadding: 0;\n\t\t}\n\n\t}\n\n\t.acf-field {\n\t\tborder: none;\n\t\tmargin: {\n\t\t\ttop: 0;\n\t\t\tright: 0;\n\t\t\tbottom: 0;\n\t\t\tleft: 0;\n\t\t}\n\t\tpadding: {\n\t\t\ttop: 0;\n\t\t\tright: 0;\n\t\t\tbottom: 24px;\n\t\t\tleft: 0;\n\t\t}\n\t}\n\n\t// Split layout\n\t.field-group-setting-split-container {\n\t\tdisplay: flex;\n\t\tpadding: {\n\t\t\ttop: 0;\n\t\t\tright: 0;\n\t\t\tbottom: 0;\n\t\t\tleft: 0;\n\t\t}\n\n\t\t.field-group-setting-split {\n\t\t\tbox-sizing: border-box;\n\t\t\tpadding: {\n\t\t\t\ttop: 24px;\n\t\t\t\tright: 24px;\n\t\t\t\tbottom: 24px;\n\t\t\t\tleft: 24px;\n\t\t\t};\n\t\t}\n\n\t\t.field-group-setting-split:nth-child(1) {\n\t\t\tflex: 1 0 auto;\n\t\t}\n\n\t\t.field-group-setting-split:nth-child(2n) {\n\t\t\tflex: 1 0 auto;\n\t\t\tmax-width: 320px;\n\t\t\tmargin: {\n\t\t\t\ttop: 0;\n\t\t\t\tright: 0;\n\t\t\t\tbottom: 0;\n\t\t\t\tleft: 32px;\n\t\t\t}\n\t\t\tpadding: {\n\t\t\t\tright: 32px;\n\t\t\t\tleft: 32px;\n\t\t\t}\n\t\t\tborder-left: {\n\t\t\t\twidth: 1px;\n\t\t\t\tstyle: solid;\n\t\t\t\tcolor: $gray-200;\n\t\t\t};\n\t\t}\n\n\t}\n\n\t// Description field\n\t.acf-field[data-name=\"description\"] {\n\t\tmax-width: 600px;\n\t}\n\n\t// Button group\n\t.acf-button-group {\n\t\tdisplay: inline-flex;\n\t}\n\n}\n\n.rtl #acf-field-group-options {\n\t.field-group-setting-split-container {\n\t\t.field-group-setting-split:nth-child(2n) {\n\t\t\tmargin: {\n\t\t\t\tright: 32px;\n\t\t\t\tleft: 0;\n\t\t\t}\n\t\t\tborder-left: none;\n\t\t\tborder-right: {\n\t\t\t\twidth: 1px;\n\t\t\t\tstyle: solid;\n\t\t\t\tcolor: $gray-200;\n\t\t\t};\n\t\t}\n\t}\n}\n\n/*----------------------------------------------------------------------------\n*\n* Reorder handles\n*\n*----------------------------------------------------------------------------*/\n.acf-field-list {\n\n\t.li-field-order {\n\t\tpadding: 0;\n\t\tdisplay: flex;\n\t\tflex-direction: row;\n\t\tflex-wrap: nowrap;\n\t\tjustify-content: center;\n\t\talign-content: stretch;\n\t\talign-items: stretch;\n\t\tbackground-color: transparent;\n\t}\n\n\t.acf-sortable-handle {\n\t\tdisplay: flex;\n\t\tflex-direction: row;\n\t\tflex-wrap: nowrap;\n\t\tjustify-content: center;\n\t\talign-content: flex-start;\n\t\talign-items: flex-start;\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\tposition: relative;\n\t\tpadding: {\n\t\t\ttop: 11px;\n\t\t\tbottom: 8px;\n\t\t};\n\t\t@extend .p4;\n\t\tbackground-color: transparent;\n\t\tborder: none;\n\t\tborder-radius: 0;\n\n\t\t&:hover {\n\t\t\tcursor: grab;\n\t\t}\n\n\t\t&:before {\n\t\t\tcontent: '';\n\t\t\tdisplay: none;\n\t\t\tposition: absolute;\n\t\t\ttop: 16px;\n\t\t\tleft: 8px;\n\t\t\twidth: 16px;\n\t\t\theight: 16px;\n\t\t\t$icon-size: 12px;\n\t\t\twidth: $icon-size;\n\t\t\theight: $icon-size;\n\t\t\tbackground-color: $gray-400;\n\t\t\tborder: none;\n\t\t\tborder-radius: 0;\n\t\t\t-webkit-mask-size: contain;\n\t\t\tmask-size: contain;\n\t\t\t-webkit-mask-repeat: no-repeat;\n\t\t\tmask-repeat: no-repeat;\n\t\t\t-webkit-mask-position: center;\n\t\t\tmask-position: center;\n\t\t\ttext-indent: 500%;\n\t\t\twhite-space: nowrap;\n\t\t\toverflow: hidden;\n\t\t\t-webkit-mask-image: url('../../images/icons/icon-draggable.svg');\n\t\t\tmask-image: url('../../images/icons/icon-draggable.svg');\n\t\t}\n\n\t}\n\n}\n\n.rtl .acf-field-list {\n\n\t.acf-sortable-handle {\n\t\t&:before {\n\t\t\tleft: 0;\n\t\t\tright: 8px;\n\t\t}\n\t}\n\n}\n\n/*----------------------------------------------------------------------------\n*\n* Expand / collapse field icon\n*\n*----------------------------------------------------------------------------*/\n.acf-field-object {\n\n\t.li-field-label {\n\t\tposition: relative;\n\t\tpadding: {\n\t\t\tleft: 40px;\n\t\t}\n\n\t\t&:before {\n\t\t\tcontent: '';\n\t\t\tdisplay: block;\n\t\t\tposition: absolute;\n\t\t\tleft: 6px;\n\t\t\t$icon-size: 18px;\n\t\t\tdisplay: inline-flex;\n\t\t\twidth: $icon-size;\n\t\t\theight: $icon-size;\n\t\t\tmargin: {\n\t\t\t\ttop: -2px;\n\t\t\t};\n\t\t\tbackground-color: $gray-500;\n\t\t\tborder: none;\n\t\t\tborder-radius: 0;\n\t\t\t-webkit-mask-size: contain;\n\t\t\tmask-size: contain;\n\t\t\t-webkit-mask-repeat: no-repeat;\n\t\t\tmask-repeat: no-repeat;\n\t\t\t-webkit-mask-position: center;\n\t\t\tmask-position: center;\n\t\t\ttext-indent: 500%;\n\t\t\twhite-space: nowrap;\n\t\t\toverflow: hidden;\n\t\t\t-webkit-mask-image: url('../../images/icons/icon-chevron-down.svg');\n\t\t\tmask-image: url('../../images/icons/icon-chevron-down.svg');\n\t\t}\n\n\t\t&:hover:before {\n\t\t\tcursor: pointer;\n\t\t}\n\n\t}\n\n}\n\n.rtl {\n\t.acf-field-object {\n\n\t\t.li-field-label {\n\t\t\tpadding: {\n\t\t\t\tleft: 0;\n\t\t\t\tright: 40px;\n\t\t\t}\n\n\t\t\t&:before {\n\t\t\t\tleft: 0;\n\t\t\t\tright: 6px;\n\t\t\t\t-webkit-mask-image: url('../../images/icons/icon-chevron-down.svg');\n\t\t\t\tmask-image: url('../../images/icons/icon-chevron-down.svg');\n\t\t\t}\n\t\t}\n\n\t\t// Open\n\t\t&.open {\n\t\t\t.li-field-label:before {\n\t\t\t\t-webkit-mask-image: url('../../images/icons/icon-chevron-down.svg');\n\t\t\t\tmask-image: url('../../images/icons/icon-chevron-down.svg');\n\t\t\t}\n\n\t\t\t.acf-input-sub .li-field-label:before {\n\t\t\t\t-webkit-mask-image: url('../../images/icons/icon-chevron-right.svg');\n\t\t\t\tmask-image: url('../../images/icons/icon-chevron-right.svg');\n\t\t\t}\n\n\t\t\t.acf-input-sub .acf-field-object.open .li-field-label:before {\n\t\t\t\t-webkit-mask-image: url('../../images/icons/icon-chevron-down.svg');\n\t\t\t\tmask-image: url('../../images/icons/icon-chevron-down.svg');\n\t\t\t}\n\t\t}\n\n\t}\n}\n\n.acf-thead {\n\t.li-field-label {\n\t\tpadding: {\n\t\t\tleft: 40px;\n\t\t};\n\t}\n\t.rtl & {\n\t\t.li-field-label {\n\t\t\tpadding: {\n\t\t\t\tleft: 0;\n\t\t\t\tright: 40px;\n\t\t\t};\n\t\t}\n\t}\n}\n\n\n/*----------------------------------------------------------------------------\n*\n* Conditional logic layout\n*\n*----------------------------------------------------------------------------*/\n.acf-field-settings-main-conditional-logic {\n\n\t.acf-conditional-toggle {\n\t\tdisplay: flex;\n\t\tpadding: {\n\t\t\tright: 72px;\n\t\t\tleft: 72px;\n\t\t};\n\n\t\t@media screen and (max-width: 600px) {\n\t\t\tpadding: {\n\t\t\t\tleft: 12px;\n\t\t\t};\n\t\t}\n\n\t}\n\n\t.acf-field {\n\t\tflex-wrap: wrap;\n\t\tmargin: {\n\t\t\tbottom: 0;\n\t\t};\n\t\tpadding: {\n\t\t\tright: 0;\n\t\t\tleft: 0;\n\t\t};\n\n\t\t.rule-groups {\n\t\t\tflex: 0 1 100%;\n\t\t\torder: 3;\n\t\t\tmargin: {\n\t\t\t\ttop: 32px;\n\t\t\t};\n\t\t\tpadding: {\n\t\t\t\ttop: 32px;\n\t\t\t\tright: 72px;\n\t\t\t\tleft: 72px;\n\t\t\t};\n\t\t\tborder-top: {\n\t\t\t\twidth: 1px;\n\t\t\t\tstyle: solid;\n\t\t\t\tcolor: $gray-200;\n\t\t\t};\n\n\t\t\t@media screen and (max-width: 600px) {\n\t\t\t\tpadding: {\n\t\t\t\t\tleft: 12px;\n\t\t\t\t};\n\n\t\t\t\ttable.acf-table tbody tr {\n\t\t\t\t\tdisplay: flex;\n\t\t\t\t\tflex-wrap: wrap;\n\t\t\t\t\tjustify-content: flex-start;\n\t\t\t\t\talign-content: flex-start;\n\t\t\t\t\talign-items: flex-start;\n\n\t\t\t\t\ttd {\n\t\t\t\t\t\tflex: 1 1 100%;\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n}\n\n/*----------------------------------------------------------------------------\n*\n* Prefix & append styling\n*\n*----------------------------------------------------------------------------*/\n.acf-input {\n\n\t.acf-input-prepend,\n\t.acf-input-append {\n\t\tdisplay: inline-flex;\n\t\talign-items: center;\n\t\theight: 100%;\n\t\tmin-height: 40px;\n\t\tpadding: {\n\t\t\tright: 12px;\n\t\t\tleft: 12px;\n\t\t};\n\t\tbackground-color: $gray-50;\n\t\tborder-color: $gray-300;\n\t\tbox-shadow: $elevation-01;\n\t\tcolor: $gray-500;\n\t}\n\n\t.acf-input-prepend {\n\t\tborder-radius: $radius-md 0 0 $radius-md;\n\t}\n\n\t.acf-input-append {\n\t\tborder-radius: 0 $radius-md $radius-md 0;\n\t}\n\n}\n\n/*----------------------------------------------------------------------------\n*\n* ACF input wrap\n*\n*----------------------------------------------------------------------------*/\n.acf-input-wrap {\n\tdisplay: flex;\n}\n\n.acf-field-settings-main-presentation .acf-input-wrap {\n\tdisplay: flex;\n}\n\n/*----------------------------------------------------------------------------\n*\n* Empty state\n*\n*----------------------------------------------------------------------------*/\n.post-type-acf-field-group #acf-field-group-fields .acf-field-list.-empty .no-fields-message {\n\tdisplay: flex;\n\tjustify-content: center;\n\tpadding: {\n\t\ttop: 48px;\n\t\tbottom: 48px;\n\t};\n\n\t.no-fields-message-inner {\n\t\tdisplay: flex;\n\t\tflex-wrap: wrap;\n\t\tjustify-content: center;\n\t\talign-content: center;\n\t\talign-items: flex-start;\n\t\ttext-align: center;\n\t\tmax-width: 400px;\n\n\t\timg,\n\t\th2,\n\t\tp {\n\t\t\tflex: 1 0 100%;\n\t\t}\n\n\t\th2 {\n\t\t\t@extend .acf-h2;\n\t\t\tmargin: {\n\t\t\t\ttop: 32px;\n\t\t\t\tbottom: 0;\n\t\t\t};\n\t\t\tpadding: 0;\n\t\t\tcolor: $gray-700;\n\t\t}\n\n\t\tp {\n\t\t\t@extend .p2;\n\t\t\tmargin: {\n\t\t\t\ttop: 12px;\n\t\t\t\tbottom: 0;\n\t\t\t};\n\t\t\tpadding: 0;\n\t\t\tcolor: $gray-500;\n\n\t\t\t&.acf-small {\n\t\t\t\t@extend .p6;\n\t\t\t\tmargin: {\n\t\t\t\t\ttop: 32px;\n\t\t\t\t};\n\t\t\t}\n\n\t\t}\n\n\n\t\timg {\n\t\t\tmax-width: 284px;\n\t\t\tmargin: {\n\t\t\t\tbottom: 0;\n\t\t\t};\n\t\t}\n\n\t\t.acf-btn {\n\t\t\tmargin: {\n\t\t\t\ttop: 32px;\n\t\t\t};\n\t\t}\n\n\t}\n\n}\n\n/*----------------------------------------------------------------------------\n*\n* Hide add title prompt label\n*\n*----------------------------------------------------------------------------*/\n.post-type-acf-field-group {\n\n\t.acf-headerbar {\n\n\t\t#title-prompt-text {\n\t\t\tdisplay: none;\n\t\t}\n\n\t}\n\n}\n\n/*----------------------------------------------------------------------------\n*\n* Modal styling\n*\n*----------------------------------------------------------------------------*/\n.acf-admin-page {\n\n\t#acf-popup .acf-popup-box {\n\t\tmin-width: 480px;\n\n\t\t.title {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\talign-content: center;\n\t\t\tjustify-content: space-between;\n\t\t\tmin-height: 64px;\n\t\t\tbox-sizing: border-box;\n\t\t\tmargin: 0;\n\t\t\tpadding: {\n\t\t\t\tright: 24px;\n\t\t\t\tleft: 24px;\n\t\t\t};\n\t\t\tborder-bottom: {\n\t\t\t\twidth: 1px;\n\t\t\t\tstyle: solid;\n\t\t\t\tcolor: $gray-200;\n\t\t\t};\n\n\t\t\th1,\n\t\t\th2,\n\t\t\th3,\n\t\t\th4 {\n\t\t\t\t@extend .acf-h3;\n\t\t\t\tpadding: {\n\t\t\t\t\tleft: 0;\n\t\t\t\t}\n\t\t\t\tcolor: $gray-700;\n\t\t\t}\n\n\t\t\t.acf-icon {\n\t\t\t\tdisplay: block;\n\t\t\t\tposition: relative;\n\t\t\t\ttop: auto;\n\t\t\t\tright: auto;\n\t\t\t\twidth: 22px;\n\t\t\t\theight: 22px;\n\t\t\t\tbackground-color: transparent;\n\t\t\t\tcolor: transparent;\n\n\t\t\t\t&:before {\n\t\t\t\t\t$icon-size: 22px;\n\t\t\t\t\tdisplay: inline-flex;\n\t\t\t\t\tposition: absolute;\n\t\t\t\t\ttop: 0;\n\t\t\t\t\tleft: 0;\n\t\t\t\t\twidth: $icon-size;\n\t\t\t\t\theight: $icon-size;\n\t\t\t\t\tbackground-color: $gray-500;\n\t\t\t\t\tborder: none;\n\t\t\t\t\tborder-radius: 0;\n\t\t\t\t\t-webkit-mask-size: contain;\n\t\t\t\t\tmask-size: contain;\n\t\t\t\t\t-webkit-mask-repeat: no-repeat;\n\t\t\t\t\tmask-repeat: no-repeat;\n\t\t\t\t\t-webkit-mask-position: center;\n\t\t\t\t\tmask-position: center;\n\t\t\t\t\ttext-indent: 500%;\n\t\t\t\t\twhite-space: nowrap;\n\t\t\t\t\toverflow: hidden;\n\t\t\t\t\t-webkit-mask-image: url('../../images/icons/icon-close-circle.svg');\n\t\t\t\t\tmask-image: url('../../images/icons/icon-close-circle.svg');\n\t\t\t\t}\n\n\t\t\t\t&:hover:before {\n\t\t\t\t\tbackground-color: $color-primary;\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\t.inner {\n\t\t\tbox-sizing: border-box;\n\t\t\tmargin: 0;\n\t\t\tpadding: {\n\t\t\t\ttop: 24px;\n\t\t\t\tright: 24px;\n\t\t\t\tbottom: 24px;\n\t\t\t\tleft: 24px;\n\t\t\t};\n\t\t\tborder-top: none;\n\n\t\t\tp {\n\t\t\t\tmargin: {\n\t\t\t\t\ttop: 0;\n\t\t\t\t\tbottom: 0;\n\t\t\t\t};\n\t\t\t}\n\n\t\t}\n\n\t\t// Custom styling for move custom field modal/link field groups modal.\n\t\t#acf-move-field-form,\n\t\t#acf-link-field-groups-form {\n\t\t\t.acf-field-select {\n\t\t\t\tmargin: {\n\t\t\t\t\ttop: 0;\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t}\n\n\t// Custom styling for the link field groups modal.\n\t.acf-link-field-groups-popup .acf-popup-box {\n\t\t.title h3 {\n\t\t\tcolor: $gray-800;\n\t\t\tfont-weight: 500;\n\n\t\t\t&:before {\n\t\t\t\tcontent: \"\";\n\t\t\t\twidth: 18px;\n\t\t\t\theight: 18px;\n\t\t\t\tbackground: $gray-400;\n\t\t\t\tmargin-right: 9px;\n\t\t\t}\n\t\t}\n\n\t\t.inner {\n\t\t\tpadding: 0 !important;\n\n\t\t\t.acf-field-select,\n\t\t\t.acf-link-successful {\n\t\t\t\tpadding: 32px 24px;\n\t\t\t\tmargin-bottom: 0;\n\n\t\t\t\t.description {\n\t\t\t\t\tfont-size: 13px;\n\t\t\t\t\tfont-weight: 500;\n\t\t\t\t\tcolor: $gray-700;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t.acf-actions {\n\t\t\t\tbackground: $gray-50;\n\t\t\t\tborder-top: 1px solid $gray-200;\n\t\t\t\tpadding: {\n\t\t\t\t\ttop: 20px;\n\t\t\t\t\tleft: 24px;\n\t\t\t\t\tbottom: 20px;\n\t\t\t\t\tright: 24px;\n\t\t\t\t};\n\t\t\t\tborder-bottom-left-radius: 8px;\n\t\t\t\tborder-bottom-right-radius: 8px;\n\n\t\t\t\t.acf-btn {\n\t\t\t\t\tdisplay: inline-block;\n\t\t\t\t\tmargin-left: 8px;\n\n\t\t\t\t\t&.acf-btn-primary {\n\t\t\t\t\t\twidth: 120px;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n}\n\n/*----------------------------------------------------------------------------\n*\n* Hide original #post-body-content from edit field group page\n*\n*----------------------------------------------------------------------------*/\n.acf-admin-single-field-group {\n\n\t#post-body-content {\n\t\tdisplay: none;\n\t}\n\n}\n\n/*----------------------------------------------------------------------------\n*\n* Settings section footer\n*\n*----------------------------------------------------------------------------*/\n.acf-field-group-settings-footer {\n\tdisplay: flex;\n\tjustify-content: space-between;\n\talign-content: stretch;\n\talign-items: center;\n\tposition: relative;\n\tmin-height: 88px;\n\tmargin: {\n\t\tright: -24px;\n\t\tleft: -24px;\n\t\tbottom: -24px;\n\t};\n\tpadding: {\n\t\tright: 24px;\n\t\tleft: 24px;\n\t};\n\tborder-top: {\n\t\twidth: 1px;\n\t\tstyle: solid;\n\t\tcolor: $gray-200;\n\t};\n\n\t.acf-created-on {\n\t\tdisplay: inline-flex;\n\t\tjustify-content: flex-start;\n\t\talign-content: stretch;\n\t\talign-items: center;\n\t\t@extend .p5;\n\t\tcolor: $gray-500;\n\n\t\t&:before {\n\t\t\tcontent: '';\n\t\t\t$icon-size: 20px;\n\t\t\tdisplay: inline-block;\n\t\t\twidth: $icon-size;\n\t\t\theight: $icon-size;\n\t\t\tmargin: {\n\t\t\t\tright: 8px;\n\t\t\t};\n\t\t\tbackground-color: $gray-400;\n\t\t\tborder: none;\n\t\t\tborder-radius: 0;\n\t\t\t-webkit-mask-size: contain;\n\t\t\tmask-size: contain;\n\t\t\t-webkit-mask-repeat: no-repeat;\n\t\t\tmask-repeat: no-repeat;\n\t\t\t-webkit-mask-position: center;\n\t\t\tmask-position: center;\n\t\t\t-webkit-mask-image: url('../../images/icons/icon-time.svg');\n\t\t\tmask-image: url('../../images/icons/icon-time.svg');\n\t\t}\n\t}\n\n}\n\n/*----------------------------------------------------------------------------\n*\n* Conditional logic enabled badge\n*\n*----------------------------------------------------------------------------*/\n.conditional-logic-badge {\n\tdisplay: none;\n\n\t&.is-enabled {\n\t\tdisplay: inline-block;\n\t\twidth: 6px;\n\t\theight: 6px;\n\t\toverflow: hidden;\n\t\tmargin: {\n\t\t\tleft: 8px;\n\t\t};\n\t\tbackground-color: rgba($color-success,.4);\n\t\tborder: {\n\t\t\twidth: 1px;\n\t\t\tstyle: solid;\n\t\t\tcolor: $color-success;\n\t\t};\n\t\tborder-radius: 100px;\n\t\ttext-indent: 100%;\n\t\twhite-space: nowrap;\n\t}\n\n}\n\n/*----------------------------------------------------------------------------\n*\n* Split field settings\n*\n*----------------------------------------------------------------------------*/\n.acf-field-settings-split {\n\tdisplay: flex;\n\tborder-top: {\n\t\twidth: 1px;\n\t\tstyle: solid;\n\t\tcolor: $gray-200;\n\t};\n\t.acf-field {\n\t\tmargin: 0;\n\t\tpadding: {\n\t\t\ttop: 32px;\n\t\t\tbottom: 32px;\n\t\t};\n\n\t\t&:nth-child(2n) {\n\t\t\tborder-left: {\n\t\t\t\twidth: 1px;\n\t\t\t\tstyle: solid;\n\t\t\t\tcolor: $gray-200;\n\t\t\t};\n\t\t};\n\n\t}\n\n}\n\n/*----------------------------------------------------------------------------\n*\n* Display & return format\n*\n*----------------------------------------------------------------------------*/\n.acf-field-setting-display_format,\n.acf-field-setting-return_format {\n\n\t.acf-label {\n\t\tmargin: {\n\t\t\tbottom: 6px;\n\t\t};\n\t}\n\n\t.acf-radio-list {\n\n\t\tli {\n\t\t\tdisplay: flex;\n\n\t\t\tlabel {\n\t\t\t\tdisplay: inline-flex;\n\t\t\t\twidth: 100%;\n\n\t\t\t\tspan {\n\t\t\t\t\tflex: 1 1 auto;\n\t\t\t\t}\n\n\t\t\t\tcode {\n\t\t\t\t\tpadding: {\n\t\t\t\t\t\tright: 8px;\n\t\t\t\t\t\tleft: 8px;\n\t\t\t\t\t};\n\t\t\t\t\tbackground-color: $gray-100;\n\t\t\t\t\tborder-radius: 4px;\n\t\t\t\t\t@extend .p5;\n\t\t\t\t\tcolor: $gray-600;\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tinput[type=\"text\"] {\n\t\t\t\theight: 32px;\n\t\t\t}\n\n\t\t}\n\n\t}\n\n}\n\n.acf-field-settings .acf-field-setting-first_day {\n\tpadding: {\n\t\ttop: 32px;\n\t};\n\tborder-top: {\n\t\twidth: 1px;\n\t\tstyle: solid;\n\t\tcolor: $gray-200;\n\t};\n}\n\n/*----------------------------------------------------------------------------\n*\n* Image and Gallery fields\n*\n*----------------------------------------------------------------------------*/\n.acf-field-object-image,\n.acf-field-object-gallery {\n\n\t.acf-hl[data-cols=\"3\"] > li {\n\t\twidth: auto;\n\t}\n\n}\n\n/*----------------------------------------------------------------------------\n*\n* Appended fields fields\n*\n*----------------------------------------------------------------------------*/\n.acf-field-settings .acf-field-appended {\n\toverflow: auto;\n\n\t.acf-input {\n\t\tfloat: left;\n\t}\n}\n\n/*----------------------------------------------------------------------------\n*\n* Flexible widths for image minimum / maximum size fields\n*\n*----------------------------------------------------------------------------*/\n.acf-field-settings .acf-field.acf-field-setting-min_width,\n.acf-field-settings .acf-field.acf-field-setting-max_width {\n\n\t.acf-input {\n\t\tmax-width: none;\n\t}\n\n\t.acf-input-wrap input[type=\"text\"] {\n\t\tmax-width: 81px;\n\t}\n\n}\n\n/*----------------------------------------------------------------------------\n*\n* Temporary fix to hide pagination setting for repeaters used as subfields.\n*\n*----------------------------------------------------------------------------*/\n.post-type-acf-field-group {\n\t.acf-field-object-flexible-content {\n\t\t.acf-field-setting-pagination {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\n\t.acf-field-object-repeater {\n\t\t.acf-field-object-repeater {\n\t\t\t.acf-field-setting-pagination {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/*----------------------------------------------------------------------------\n*\n* Flexible content field width\n*\n*----------------------------------------------------------------------------*/\n\n.acf-admin-single-field-group .acf-field-object-flexible-content .acf-is-subfields .acf-field-object {\n\n\t.acf-label,\n\t.acf-input {\n\t\tmax-width: 600px;\n\t}\n\n}\n\n/*----------------------------------------------------------------------------\n*\n* Fix default value checkbox focus state\n*\n*----------------------------------------------------------------------------*/\n\n.acf-admin-single-field-group {\n\n\t.acf-field.acf-field-true-false.acf-field-setting-default_value .acf-true-false {\n\t\tborder: none;\n\n\t\tinput[type=\"checkbox\"] {\n\t\t\tmargin-right: 0;\n\t\t}\n\n\t}\n\n}\n\n/*----------------------------------------------------------------------------\n*\n* With front field extra spacing\n*\n*----------------------------------------------------------------------------*/\n.acf-field.acf-field-with-front {\n\tmargin: {\n\t\ttop: 32px;\n\t}\n}","/*---------------------------------------------------------------------------------------------\n*\n* Sub-fields layout\n*\n*---------------------------------------------------------------------------------------------*/\n.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub {\n\tmax-width: 100%;\n\toverflow: hidden;\n\tborder-radius: $radius-lg;\n\tborder: {\n\t\twidth: 1px;\n\t\tstyle: solid;\n\t\tcolor: darken($gray-200, 5%);\n\t};\n\tbox-shadow: $elevation-01;\n\n\t// Header\n\t.acf-sub-field-list-header {\n\t\tdisplay: flex;\n\t\tjustify-content: space-between;\n\t\talign-content: stretch;\n\t\talign-items: center;\n\t\tmin-height: 64px;\n\t\tpadding: {\n\t\t\tright: 24px;\n\t\t\tleft: 24px;\n\t\t};\n\t}\n\n\t// Main sub-fields wrapper\n\t.acf-field-list-wrap {\n\t\tbox-shadow: none;\n\t}\n\n\t// Sub-field footer\n\t.acf-hl.acf-tfoot {\n\t\tmin-height: 64px;\n\t\talign-items: center;\n\t}\n\t\n\t// Secondary level sub-fields\n\t.acf-input.acf-input-sub {\n\t\tmax-width: 100%;\n\t\tmargin: {\n\t\t\tright: 0;\n\t\t\tleft: 0;\n\t\t};\n\t}\n\n}\n\n.post-type-acf-field-group .acf-input-sub .acf-field-object .acf-sortable-handle {\n\twidth: 100%;\n\theight: 100%;\n}\n\n.post-type-acf-field-group .acf-field-object:hover .acf-input-sub .acf-sortable-handle:before {\n\tdisplay: none;\n}\n\n.post-type-acf-field-group .acf-field-object:hover .acf-input-sub .acf-field-list .acf-field-object:hover .acf-sortable-handle:before {\n\tdisplay: block;\n}\n\n.post-type-acf-field-group .acf-field-object .acf-is-subfields .acf-thead .li-field-label:before {\n\tdisplay: none;\n}\n\n.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-field-object.open {\n\tborder-top-color: darken($gray-200, 5%);\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Flexible content field\n*\n*---------------------------------------------------------------------------------------------*/\n.post-type-acf-field-group {\n\n\ti.acf-icon.-duplicate.duplicate-layout {\n\t\tmargin: 0 auto !important;\n\t\tbackground-color: $gray-500;\n\t\tcolor: $gray-500;\n\t}\n\ti.acf-icon.acf-icon-trash.delete-layout {\n\t\tmargin: 0 auto !important;\n\t\tbackground-color: $gray-500;\n\t\tcolor: $gray-500;\n\t}\n\n\tbutton.acf-btn.acf-btn-tertiary.acf-field-setting-fc-duplicate, button.acf-btn.acf-btn-tertiary.acf-field-setting-fc-delete {\n\t\tbackground-color: #ffffff !important;\n\t\tbox-shadow: $elevation-01;\n\t\tborder-radius: 6px;\n\t\twidth: 32px;\n\t\theight: 32px !important;\n\t\tmin-height: 32px;\n\t\tpadding: 0;\n\t}\n\n\tbutton.add-layout.acf-btn.acf-btn-primary.add-field,\n\t.acf-sub-field-list-header a.acf-btn.acf-btn-secondary.add-field, \n\t.acf-field-list-wrap.acf-is-subfields a.acf-btn.acf-btn-secondary.add-field {\n\t\theight: 32px !important;\n\t\tmin-height: 32px;\n\t\tmargin-left: 5px;\n\t}\n\n\t.acf-field.acf-field-setting-fc_layout {\n\t\tbackground-color: #ffffff;\n\t\tmargin-bottom: 16px;\n\t}\n\t\n\t.acf-field-setting-fc_layout {\n\t\t.acf-field-layout-settings.open {\n\t\t\tbackground-color: #ffffff;\n\t\t\tborder-top: {\n\t\t\t\twidth: 1px;\n\t\t\t\tstyle: solid;\n\t\t\t\tcolor: $gray-200;\n\t\t\t};\n\t\t}\n\n\t\toverflow: hidden;\n\t\twidth: calc(100% - 144px);\n\t\tmargin: {\n\t\t\tright: 72px;\n\t\t\tleft: 72px;\n\t\t};\n\t\tpadding: {\n\t\t\tright: 0;\n\t\t\tleft: 0;\n\t\t};\n\t\tborder: {\n\t\t\twidth: 1px;\n\t\t\tstyle: solid;\n\t\t\tcolor: darken($gray-200, 5%);\n\t\t};\n\t\tborder-radius: $radius-lg;\n\t\tbox-shadow: $elevation-01;\n\n\t\t@media screen and (max-width: 768px) {\n\t\t\twidth: calc(100% - 16px);\n\t\t\tmargin: {\n\t\t\t\tright: 8px;\n\t\t\t\tleft: 8px;\n\t\t\t};\n\t\t}\n\n\t\t// Secondary level sub-fields\n\t\t.acf-input-sub {\n\t\t\tmax-width: 100%;\n\t\t\tmargin: {\n\t\t\t\tright: 0;\n\t\t\t\tleft: 0;\n\t\t\t};\n\t\t}\n\n\t\t.acf-label,\n\t\t.acf-input {\n\t\t\tmax-width: 100% !important;\n\t\t}\n\n\t\t.acf-input-sub {\n\t\t\tmargin: {\n\t\t\t\tright: 32px;\n\t\t\t\tbottom: 32px;\n\t\t\t\tleft: 32px;\n\t\t\t};\n\t\t}\n\n\t\t.acf-fc-meta {\n\t\t\tmax-width: 100%;\n\t\t\tpadding: {\n\t\t\t\ttop: 24px;\n\t\t\t\tright: 32px;\n\t\t\t\tleft: 32px;\n\t\t\t};\n\t\t}\n\n\t}\n\n\t.acf-field-settings-fc_head {\n\t\tbackground-color: $gray-50;\n\t\tborder-radius: 8px 8px 0px 0px;\n\t\tdisplay: flex;\n\t\tmin-height: 64px;\n\t\tmargin: {\n\t\t\tbottom: 0px;\n\t\t};\n\t\tpadding: {\n\t\t\tright: 24px;\n\t\t};\n\n\t\t.acf-fc_draggable {\n\t\t\tmin-height: 64px;\n\t\t\tpadding-left: 24px;\n\t\t\tdisplay: flex;\n\t\t}\n\n\t\tspan.toggle-indicator {\n\t\t\tpointer-events: none;\n\t\t\tmargin-top: 7px;\n\t\t}\n\n\t\tlabel {\n\t\t\tdisplay: inline-flex;\n\t\t\talign-items: center;\n\t\t\t@extend .acf-h3;\n\n\t\t\t&:before {\n\t\t\t\tcontent: '';\n\t\t\t\t$icon-size: 20px;\n\t\t\t\tdisplay: inline-block;\n\t\t\t\twidth: $icon-size;\n\t\t\t\theight: $icon-size;\n\t\t\t\tmargin: {\n\t\t\t\t\tright: 8px;\n\t\t\t\t};\n\t\t\t\tbackground-color: $gray-400;\n\t\t\t\tborder: none;\n\t\t\t\tborder-radius: 0;\n\t\t\t\t-webkit-mask-size: contain;\n\t\t\t\tmask-size: contain;\n\t\t\t\t-webkit-mask-repeat: no-repeat;\n\t\t\t\tmask-repeat: no-repeat;\n\t\t\t\t-webkit-mask-position: center;\n\t\t\t\tmask-position: center;\n\n\t\t\t\t@at-root .rtl#{&} {\n\t\t\t\t\tpadding-right: 10px;\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\t.acf-fl-actions {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\n\t\t\t.acf-fc-add-layout {\n\t\t\t\tmargin-left: 10px;\n\t\t\t}\n\n\t\t\t.acf-fc-add-layout .add-field {\n\t\t\t\tmargin-left: 0px !important;\n\t\t\t}\n\n\t\t\tli {\n\t\t\t\tmargin: {\n\t\t\t\t\tright: 4px;\n\t\t\t\t};\n\n\t\t\t\t&:last-of-type {\n\t\t\t\t\tmargin: {\n\t\t\t\t\t\tright: 0;\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Field open / closed icon state\n*\n*---------------------------------------------------------------------------------------------*/\n\n.post-type-acf-field-group .acf-field-object.open > .handle > .acf-tbody > .li-field-label::before {\n\t-webkit-mask-image: url('../../images/icons/icon-chevron-up.svg');\n\tmask-image: url('../../images/icons/icon-chevron-up.svg');\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Different coloured levels (current 5 supported)\n*\n*---------------------------------------------------------------------------------------------*/\n\n.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub {\n\t\n\t// Second level\n\t$nested-color: #BF7DD7;\n\t// Row hover color \n\t.acf-field-object .handle { background-color: transparent; &:hover { background-color: lighten($nested-color, 30%); } }\n\t// Active row color \n\t.acf-field-object.open .handle { background-color: lighten($nested-color, 28%); }\n\t// Active border color \n\t.acf-field-object .settings { border-left: { color: $nested-color; }; }\n\t\n\t// Third level\n\t.acf-input-sub {\n\t\t$nested-color: #7CCDB9;\n\t\t// Row hover color \n\t\t.acf-field-object .handle { background-color: transparent; &:hover { background-color: lighten($nested-color, 30%); } }\n\t\t// Active row color \n\t\t.acf-field-object.open .handle { background-color: lighten($nested-color, 28%); }\n\t\t// Active border color \n\t\t.acf-field-object .settings { border-left: { color: $nested-color; }; }\n\t\t\n\t\t// Fourth level\n\t\t.acf-input-sub {\n\t\t\t$nested-color: #E29473;\n\t\t\t// Row hover color \n\t\t\t.acf-field-object .handle { background-color: transparent; &:hover { background-color: lighten($nested-color, 30%); } }\n\t\t\t// Active row color \n\t\t\t.acf-field-object.open .handle { background-color: lighten($nested-color, 28%); }\n\t\t\t// Active border color \n\t\t\t.acf-field-object .settings { border-left: { color: $nested-color; }; }\n\t\t\t\n\t\t\t// Fifth level\n\t\t\t.acf-input-sub {\n\t\t\t\t$nested-color: #A3B1B9;\n\t\t\t\t// Row hover color \n\t\t\t\t.acf-field-object .handle { background-color: transparent; &:hover { background-color: lighten($nested-color, 30%); } }\n\t\t\t\t// Active row color \n\t\t\t\t.acf-field-object.open .handle { background-color: lighten($nested-color, 28%); }\n\t\t\t\t// Active border color \n\t\t\t\t.acf-field-object .settings { border-left: { color: $nested-color; }; }\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t}\n\t\n}"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/assets/build/css/acf-field-group.min.css b/assets/build/css/acf-field-group.min.css new file mode 100644 index 0000000..d8e14f6 --- /dev/null +++ b/assets/build/css/acf-field-group.min.css @@ -0,0 +1 @@ +#acf-field-group-fields>.inside,#acf-field-group-locations>.inside,#acf-field-group-options>.inside{padding:0;margin:0}.postbox .handle-order-higher,.postbox .handle-order-lower{display:none}#minor-publishing-actions,#misc-publishing-actions #visibility,#misc-publishing-actions .edit-timestamp{display:none}#minor-publishing{border-bottom:0 none}#misc-pub-section{border-bottom:0 none}#misc-publishing-actions .misc-pub-section{border-bottom-color:#f5f5f5}#acf-field-group-fields{border:0 none}#acf-field-group-fields .inside{border-top-width:0;border-top-style:none}#acf-field-group-fields a{text-decoration:none}#acf-field-group-fields .li-field-type .field-type-icon{margin-right:8px}@media screen and (max-width: 600px){#acf-field-group-fields .li-field-type .field-type-icon{display:none}}#acf-field-group-fields .li-field-order{width:64px;justify-content:center}@media screen and (max-width: 880px){#acf-field-group-fields .li-field-order{width:32px}}#acf-field-group-fields .li-field-label{width:calc(50% - 64px)}#acf-field-group-fields .li-field-name{width:25%;word-break:break-word}#acf-field-group-fields .li-field-key{display:none}#acf-field-group-fields .li-field-type{width:25%}#acf-field-group-fields.show-field-keys .li-field-label{width:calc(35% - 64px)}#acf-field-group-fields.show-field-keys .li-field-name{width:15%}#acf-field-group-fields.show-field-keys .li-field-key{width:25%;display:flex}#acf-field-group-fields.show-field-keys .li-field-type{width:25%}#acf-field-group-fields.hide-tabs .acf-field-settings-tab-bar{display:none}#acf-field-group-fields.hide-tabs .acf-field-settings-main{padding:0}#acf-field-group-fields.hide-tabs .acf-field-settings-main.acf-field-settings-main-general{padding-top:32px}#acf-field-group-fields.hide-tabs .acf-field-settings-main .acf-field{margin-bottom:32px}#acf-field-group-fields.hide-tabs .acf-field-settings-main .acf-field-setting-wrapper{padding-top:0;border-top:none}#acf-field-group-fields.hide-tabs .acf-field-settings-main .acf-field-settings-split .acf-field{border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#eaecf0}#acf-field-group-fields.hide-tabs .acf-field-settings-main .acf-field-setting-first_day{padding-top:0;border-top:none}#acf-field-group-fields.hide-tabs .acf-field-settings-footer{margin-top:32px}#acf-field-group-fields .acf-field-list-wrap{border:#ccd0d4 solid 1px}#acf-field-group-fields .acf-field-list{background:#f5f5f5;margin-top:-1px}#acf-field-group-fields .acf-field-list .acf-tbody>.li-field-name,#acf-field-group-fields .acf-field-list .acf-tbody>.li-field-key{align-items:flex-start}#acf-field-group-fields .acf-field-list .copyable:not(.copy-unsupported){cursor:pointer;display:inline-flex;align-items:center}#acf-field-group-fields .acf-field-list .copyable:not(.copy-unsupported):hover:after{content:"";display:block;padding-left:5px;display:inline-flex;width:12px;height:12px;background-color:#667085;border:none;border-radius:0;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;text-indent:500%;white-space:nowrap;overflow:hidden;-webkit-mask-image:url("../../images/icons/icon-copy.svg");mask-image:url("../../images/icons/icon-copy.svg");background-size:cover}#acf-field-group-fields .acf-field-list .copyable:not(.copy-unsupported).copied:hover:after{-webkit-mask-image:url("../../images/icons/icon-check-circle-solid.svg");mask-image:url("../../images/icons/icon-check-circle-solid.svg");background-color:#49ad52}#acf-field-group-fields .acf-field-list .no-fields-message{padding:15px 15px;background:#fff;display:none}#acf-field-group-fields .acf-field-list.-empty .no-fields-message{display:block}.acf-admin-3-8 #acf-field-group-fields .acf-field-list-wrap{border-color:#dfdfdf}.rtl #acf-field-group-fields .li-field-type .field-type-icon{margin-left:8px;margin-right:0}.acf-field-object{border-top:#eee solid 1px;background:#fff}.acf-field-object.ui-sortable-helper{overflow:hidden !important;border-width:1px;border-style:solid;border-color:#a5d2e7 !important;border-radius:8px;filter:drop-shadow(0px 10px 20px rgba(16, 24, 40, 0.14)) drop-shadow(0px 1px 3px rgba(16, 24, 40, 0.1))}.acf-field-object.ui-sortable-helper:before{display:none !important}.acf-field-object.ui-sortable-placeholder{box-shadow:0 -1px 0 0 #dfdfdf;visibility:visible !important;background:#f9f9f9;border-top-color:rgba(0,0,0,0);min-height:54px}.acf-field-object.ui-sortable-placeholder:after,.acf-field-object.ui-sortable-placeholder:before{visibility:hidden}.acf-field-object>.meta{display:none}.acf-field-object>.handle a{-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none}.acf-field-object>.handle li{word-wrap:break-word}.acf-field-object>.handle strong{display:block;padding-bottom:0;font-size:14px;line-height:14px;min-height:14px}.acf-field-object>.handle .row-options{display:block;opacity:0;margin-top:5px}@media screen and (max-width: 880px){.acf-field-object>.handle .row-options{opacity:1;margin-bottom:0}}.acf-field-object>.handle .row-options a{margin-right:4px}.acf-field-object>.handle .row-options a:hover{color:#044767}.acf-field-object>.handle .row-options a.delete-field{color:#a00}.acf-field-object>.handle .row-options a.delete-field:hover{color:red}.acf-field-object>.handle .row-options.active{visibility:visible}.acf-field-object.open+.acf-field-object{border-top-color:#e1e1e1}.acf-field-object.open>.handle{background:#2a9bd9;border:#2696d3 solid 1px;text-shadow:#268fbb 0 1px 0;color:#fff;position:relative;margin:0 -1px 0 -1px}.acf-field-object.open>.handle a{color:#fff !important}.acf-field-object.open>.handle a:hover{text-decoration:underline !important}.acf-field-object:hover>.handle .row-options,.acf-field-object.-hover>.handle .row-options,.acf-field-object:focus-within>.handle .row-options{opacity:1;margin-bottom:0}.acf-field-object>.settings{display:none;width:100%}.acf-field-object>.settings>.acf-table{border:none}.acf-field-object .rule-groups{margin-top:20px}.rule-groups h4{margin:3px 0}.rule-groups .rule-group{margin:0 0 5px}.rule-groups .rule-group h4{margin:0 0 3px}.rule-groups .rule-group td.param{width:35%}.rule-groups .rule-group td.operator{width:20%}.rule-groups .rule-group td.add{width:40px}.rule-groups .rule-group td.remove{width:28px;vertical-align:middle}.rule-groups .rule-group td.remove a{width:22px;height:22px;visibility:hidden}.rule-groups .rule-group td.remove a:before{position:relative;top:-2px;font-size:16px}.rule-groups .rule-group tr:hover td.remove a{visibility:visible}.rule-groups .rule-group select:empty{background:#f8f8f8}.rule-groups:not(.rule-groups-multiple) .rule-group:first-child tr:first-child td.remove a{visibility:hidden !important}#acf-field-group-options tr[data-name=hide_on_screen] li{float:left;width:33%}@media(max-width: 1100px){#acf-field-group-options tr[data-name=hide_on_screen] li{width:50%}}table.conditional-logic-rules{background:rgba(0,0,0,0);border:0 none;border-radius:0}table.conditional-logic-rules tbody td{background:rgba(0,0,0,0);border:0 none !important;padding:5px 2px !important}.acf-field-object-tab .acf-field-setting-name,.acf-field-object-tab .acf-field-setting-instructions,.acf-field-object-tab .acf-field-setting-required,.acf-field-object-tab .acf-field-setting-warning,.acf-field-object-tab .acf-field-setting-wrapper{display:none}.acf-field-object-tab .li-field-name{visibility:hidden}.acf-field-object-tab p:first-child{margin:.5em 0}.acf-field-object-tab li.acf-settings-type-presentation,.acf-field-object-tab .acf-field-settings-main-presentation{display:none !important}.acf-field-object-accordion .acf-field-setting-name,.acf-field-object-accordion .acf-field-setting-instructions,.acf-field-object-accordion .acf-field-setting-required,.acf-field-object-accordion .acf-field-setting-warning,.acf-field-object-accordion .acf-field-setting-wrapper{display:none}.acf-field-object-accordion .li-field-name{visibility:hidden}.acf-field-object-accordion p:first-child{margin:.5em 0}.acf-field-object-accordion .acf-field-setting-instructions{display:block}.acf-field-object-message tr[data-name=name],.acf-field-object-message tr[data-name=instructions],.acf-field-object-message tr[data-name=required]{display:none !important}.acf-field-object-message .li-field-name{visibility:hidden}.acf-field-object-message textarea{height:175px !important}.acf-field-object-separator tr[data-name=name],.acf-field-object-separator tr[data-name=instructions],.acf-field-object-separator tr[data-name=required]{display:none !important}.acf-field-object-date-picker .acf-radio-list li,.acf-field-object-time-picker .acf-radio-list li,.acf-field-object-date-time-picker .acf-radio-list li{line-height:25px}.acf-field-object-date-picker .acf-radio-list span,.acf-field-object-time-picker .acf-radio-list span,.acf-field-object-date-time-picker .acf-radio-list span{display:inline-block;min-width:10em}.acf-field-object-date-picker .acf-radio-list input[type=text],.acf-field-object-time-picker .acf-radio-list input[type=text],.acf-field-object-date-time-picker .acf-radio-list input[type=text]{width:100px}.acf-field-object-date-time-picker .acf-radio-list span{min-width:15em}.acf-field-object-date-time-picker .acf-radio-list input[type=text]{width:200px}#slugdiv .inside{padding:12px;margin:0}#slugdiv input[type=text]{width:100%;height:28px;font-size:14px}html[dir=rtl] .acf-field-object.open>.handle{margin:0}@media only screen and (max-width: 850px){tr.acf-field,td.acf-label,td.acf-input{display:block !important;width:auto !important;border:0 none !important}tr.acf-field{border-top:#ededed solid 1px !important;margin-bottom:0 !important}td.acf-label{background:rgba(0,0,0,0) !important;padding-bottom:0 !important}}.post-type-acf-field-group #acf-field-group-fields .acf-field-object-tab,.post-type-acf-field-group #acf-field-group-fields .acf-field-object-accordion{background-color:#f9fafb}.acf-admin-page #wpcontent{line-height:140%}.acf-admin-page a{color:#0783be}.acf-h1,.acf-admin-page h1,.acf-headerbar h1{font-size:21px;font-weight:400}.acf-h2,.post-type-acf-field-group #acf-field-group-fields .acf-field-list.-empty .no-fields-message .no-fields-message-inner h2,.acf-page-title,.acf-admin-page h2,.acf-headerbar h2{font-size:18px;font-weight:400}.acf-h3,.post-type-acf-field-group .acf-field-settings-fc_head label,.acf-admin-page #acf-popup .acf-popup-box .title h1,.acf-admin-page #acf-popup .acf-popup-box .title h2,.acf-admin-page #acf-popup .acf-popup-box .title h3,.acf-admin-page #acf-popup .acf-popup-box .title h4,.acf-admin-page h3,.acf-headerbar h3{font-size:16px;font-weight:400}.acf-admin-page .p1{font-size:15px}.acf-admin-page .p2,.acf-admin-page .post-type-acf-field-group #acf-field-group-fields .acf-field-list.-empty .no-fields-message .no-fields-message-inner p,.post-type-acf-field-group #acf-field-group-fields .acf-field-list.-empty .no-fields-message .no-fields-message-inner .acf-admin-page p{font-size:14px}.acf-admin-page .p3{font-size:13.5px}.acf-admin-page .p4,.acf-admin-page .acf-field-list .acf-sortable-handle,.acf-field-list .acf-admin-page .acf-sortable-handle,.acf-admin-page .post-type-acf-field-group .acf-field-object .handle li.li-field-label a.edit-field,.post-type-acf-field-group .acf-field-object .handle li.li-field-label .acf-admin-page a.edit-field,.acf-admin-page .post-type-acf-field-group .acf-field-object .handle li,.post-type-acf-field-group .acf-field-object .handle .acf-admin-page li,.acf-admin-page .post-type-acf-field-group .acf-thead li,.post-type-acf-field-group .acf-thead .acf-admin-page li,.acf-admin-page .acf-input .select2-container.-acf .select2-selection__rendered,.acf-admin-page .button,.acf-admin-page input[type=text],.acf-admin-page input[type=search],.acf-admin-page input[type=number],.acf-admin-page textarea,.acf-admin-page select{font-size:13px}.acf-admin-page .p5,.acf-admin-page .acf-field-setting-display_format .acf-radio-list li label code,.acf-field-setting-display_format .acf-radio-list li label .acf-admin-page code,.acf-admin-page .acf-field-setting-return_format .acf-radio-list li label code,.acf-field-setting-return_format .acf-radio-list li label .acf-admin-page code,.acf-admin-page .acf-field-group-settings-footer .acf-created-on,.acf-field-group-settings-footer .acf-admin-page .acf-created-on,.acf-admin-page .acf-fields .acf-field-settings-tab-bar li a,.acf-fields .acf-field-settings-tab-bar li .acf-admin-page a,.acf-admin-page .acf-fields .acf-tab-wrap .acf-tab-group li a,.acf-fields .acf-tab-wrap .acf-tab-group li .acf-admin-page a,.acf-admin-page.acf-internal-post-type .acf-field-settings-tab-bar li a,.acf-admin-page.acf-internal-post-type .acf-tab-wrap .acf-tab-group li a,.acf-admin-page .acf-browse-fields-modal-wrap .acf-field-settings-tab-bar li a,.acf-browse-fields-modal-wrap .acf-field-settings-tab-bar li .acf-admin-page a,.acf-admin-page .acf-browse-fields-modal-wrap .acf-tab-wrap .acf-tab-group li a,.acf-browse-fields-modal-wrap .acf-tab-wrap .acf-tab-group li .acf-admin-page a{font-size:12.5px}.acf-admin-page .p6,.acf-admin-page .post-type-acf-field-group #acf-field-group-fields .acf-field-list.-empty .no-fields-message .no-fields-message-inner p.acf-small,.post-type-acf-field-group #acf-field-group-fields .acf-field-list.-empty .no-fields-message .no-fields-message-inner .acf-admin-page p.acf-small,.acf-admin-page .post-type-acf-field-group .acf-field-object .handle li.li-field-label .row-options a,.post-type-acf-field-group .acf-field-object .handle li.li-field-label .row-options .acf-admin-page a,.acf-admin-page .acf-small{font-size:12px}.acf-admin-page .p7{font-size:11.5px}.acf-admin-page .p8{font-size:11px}.acf-page-title{color:#344054}.acf-admin-page .acf-settings-wrap h1{display:none !important}.acf-admin-page #acf-admin-tools h1:not(.acf-field-group-pro-features-title,.acf-field-group-pro-features-title-sm){display:none !important}.acf-admin-page a:focus{box-shadow:none;outline:none}.acf-admin-page a:focus-visible{box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8);outline:1px solid rgba(0,0,0,0)}.acf-admin-page input[type=text],.acf-admin-page input[type=search],.acf-admin-page input[type=number],.acf-admin-page textarea,.acf-admin-page select{box-sizing:border-box;height:40px;padding-right:12px;padding-left:12px;background-color:#fff;border-color:#d0d5dd;box-shadow:0px 1px 2px rgba(16,24,40,.1);border-radius:6px;color:#344054}.acf-admin-page input[type=text]:focus,.acf-admin-page input[type=search]:focus,.acf-admin-page input[type=number]:focus,.acf-admin-page textarea:focus,.acf-admin-page select:focus{outline:3px solid #ebf5fa;border-color:#399ccb}.acf-admin-page input[type=text]:disabled,.acf-admin-page input[type=search]:disabled,.acf-admin-page input[type=number]:disabled,.acf-admin-page textarea:disabled,.acf-admin-page select:disabled{background-color:#f9fafb;color:#808a9e}.acf-admin-page input[type=text]::placeholder,.acf-admin-page input[type=search]::placeholder,.acf-admin-page input[type=number]::placeholder,.acf-admin-page textarea::placeholder,.acf-admin-page select::placeholder{color:#98a2b3}.acf-admin-page input[type=text]:read-only{background-color:#f9fafb;color:#98a2b3}.acf-admin-page .acf-field.acf-field-number .acf-label,.acf-admin-page .acf-field.acf-field-number .acf-input input[type=number]{max-width:180px}.acf-admin-page textarea{box-sizing:border-box;padding-top:10px;padding-bottom:10px;height:80px;min-height:56px}.acf-admin-page select{min-width:160px;max-width:100%;padding-right:40px;padding-left:12px;background-image:url("../../images/icons/icon-chevron-down.svg");background-position:right 10px top 50%;background-size:20px}.acf-admin-page select:hover,.acf-admin-page select:focus{color:#0783be}.acf-admin-page select::before{content:"";display:block;position:absolute;top:5px;left:5px;width:20px;height:20px}.acf-admin-page.rtl select{padding-right:12px;padding-left:40px;background-position:left 10px top 50%}.acf-admin-page input[type=radio],.acf-admin-page input[type=checkbox]{box-sizing:border-box;width:16px;height:16px;padding:0;border-width:1px;border-style:solid;border-color:#98a2b3;background:#fff;box-shadow:none}.acf-admin-page input[type=radio]:hover,.acf-admin-page input[type=checkbox]:hover{background-color:#ebf5fa;border-color:#0783be}.acf-admin-page input[type=radio]:checked,.acf-admin-page input[type=radio]:focus-visible,.acf-admin-page input[type=checkbox]:checked,.acf-admin-page input[type=checkbox]:focus-visible{background-color:#ebf5fa;border-color:#0783be}.acf-admin-page input[type=radio]:checked:before,.acf-admin-page input[type=radio]:focus-visible:before,.acf-admin-page input[type=checkbox]:checked:before,.acf-admin-page input[type=checkbox]:focus-visible:before{content:"";position:relative;top:-1px;left:-1px;width:16px;height:16px;margin:0;padding:0;background-color:rgba(0,0,0,0);background-size:cover;background-repeat:no-repeat;background-position:center}.acf-admin-page input[type=radio]:active,.acf-admin-page input[type=checkbox]:active{box-shadow:0px 0px 0px 3px #ebf5fa,0px 0px 0px rgba(255,54,54,.25)}.acf-admin-page input[type=radio]:disabled,.acf-admin-page input[type=checkbox]:disabled{background-color:#f9fafb;border-color:#d0d5dd}.acf-admin-page.rtl input[type=radio]:checked:before,.acf-admin-page.rtl input[type=radio]:focus-visible:before,.acf-admin-page.rtl input[type=checkbox]:checked:before,.acf-admin-page.rtl input[type=checkbox]:focus-visible:before{left:1px}.acf-admin-page input[type=radio]:checked:before,.acf-admin-page input[type=radio]:focus:before{background-image:url("../../images/field-states/radio-active.svg")}.acf-admin-page input[type=checkbox]:checked:before,.acf-admin-page input[type=checkbox]:focus:before{background-image:url("../../images/field-states/checkbox-active.svg")}.acf-admin-page .acf-radio-list li input[type=radio],.acf-admin-page .acf-radio-list li input[type=checkbox],.acf-admin-page .acf-checkbox-list li input[type=radio],.acf-admin-page .acf-checkbox-list li input[type=checkbox]{margin-right:6px}.acf-admin-page .acf-radio-list.acf-bl li,.acf-admin-page .acf-checkbox-list.acf-bl li{margin-bottom:8px}.acf-admin-page .acf-radio-list.acf-bl li:last-of-type,.acf-admin-page .acf-checkbox-list.acf-bl li:last-of-type{margin-bottom:0}.acf-admin-page .acf-radio-list label,.acf-admin-page .acf-checkbox-list label{display:flex;align-items:center;align-content:center}.acf-admin-page .acf-switch{width:42px;height:24px;border:none;background-color:#d0d5dd;border-radius:12px}.acf-admin-page .acf-switch:hover{background-color:#98a2b3}.acf-admin-page .acf-switch:active{box-shadow:0px 0px 0px 3px #ebf5fa,0px 0px 0px rgba(255,54,54,.25)}.acf-admin-page .acf-switch.-on{background-color:#0783be}.acf-admin-page .acf-switch.-on:hover{background-color:#066998}.acf-admin-page .acf-switch.-on .acf-switch-slider{left:20px}.acf-admin-page .acf-switch .acf-switch-off,.acf-admin-page .acf-switch .acf-switch-on{visibility:hidden}.acf-admin-page .acf-switch .acf-switch-slider{width:20px;height:20px;border:none;border-radius:100px;box-shadow:0px 1px 3px rgba(16,24,40,.1),0px 1px 2px rgba(16,24,40,.06)}.acf-admin-page .acf-field-true-false{display:flex;align-items:flex-start}.acf-admin-page .acf-field-true-false .acf-label{order:2;display:block;align-items:center;margin-top:2px;margin-bottom:0;margin-left:12px}.acf-admin-page .acf-field-true-false .acf-label label{margin-bottom:0}.acf-admin-page .acf-field-true-false .acf-label .acf-tip{margin-left:12px}.acf-admin-page .acf-field-true-false .acf-label .description{display:block;margin-top:2px;margin-left:0}.acf-admin-page.rtl .acf-field-true-false .acf-label{margin-right:12px;margin-left:0}.acf-admin-page.rtl .acf-field-true-false .acf-tip{margin-right:12px;margin-left:0}.acf-admin-page input::file-selector-button{box-sizing:border-box;min-height:40px;margin-right:16px;padding-top:8px;padding-right:16px;padding-bottom:8px;padding-left:16px;background-color:rgba(0,0,0,0);color:#0783be !important;border-radius:6px;border-width:1px;border-style:solid;border-color:#0783be;text-decoration:none}.acf-admin-page input::file-selector-button:hover{border-color:#066998;cursor:pointer;color:#066998 !important}.acf-admin-page .button{display:inline-flex;align-items:center;height:40px;padding-right:16px;padding-left:16px;background-color:rgba(0,0,0,0);border-width:1px;border-style:solid;border-color:#0783be;border-radius:6px;color:#0783be}.acf-admin-page .button:hover{background-color:#f3f9fc;border-color:#0783be;color:#0783be}.acf-admin-page .button:focus{background-color:#f3f9fc;outline:3px solid #ebf5fa;color:#0783be}.acf-admin-page .edit-field-group-header{display:block !important}.acf-admin-page .acf-input .select2-container.-acf .select2-selection{border:none;line-height:1}.acf-admin-page .acf-input .select2-container.-acf .select2-selection__rendered{box-sizing:border-box;padding-right:0;padding-left:0;background-color:#fff;border-width:1px;border-style:solid;border-color:#d0d5dd;box-shadow:0px 1px 2px rgba(16,24,40,.1);border-radius:6px;color:#344054}.acf-admin-page .acf-input .select2-container--focus{outline:3px solid #ebf5fa;border-color:#399ccb;border-radius:6px}.acf-admin-page .acf-input .select2-container--focus .select2-selection__rendered{border-color:#399ccb !important}.acf-admin-page .acf-input .select2-container--focus.select2-container--below.select2-container--open .select2-selection__rendered{border-bottom-right-radius:0 !important;border-bottom-left-radius:0 !important}.acf-admin-page .acf-input .select2-container--focus.select2-container--above.select2-container--open .select2-selection__rendered{border-top-right-radius:0 !important;border-top-left-radius:0 !important}.acf-admin-page .acf-input .select2-container .select2-search--inline .select2-search__field{margin:0;padding-left:6px}.acf-admin-page .acf-input .select2-container .select2-search--inline .select2-search__field:focus{outline:none;border:none}.acf-admin-page .acf-input .select2-container--default .select2-selection--multiple .select2-selection__rendered{padding-top:0;padding-right:6px;padding-bottom:0;padding-left:6px}.acf-admin-page .acf-input .select2-selection__clear{width:18px;height:18px;margin-top:12px;margin-right:1px;text-indent:100%;white-space:nowrap;overflow:hidden;color:#fff}.acf-admin-page .acf-input .select2-selection__clear:before{content:"";display:block;width:16px;height:16px;top:0;left:0;border:none;border-radius:0;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-image:url("../../images/icons/icon-close.svg");mask-image:url("../../images/icons/icon-close.svg");background-color:#98a2b3}.acf-admin-page .acf-input .select2-selection__clear:hover::before{background-color:#0783be}.acf-admin-page .acf-label{display:flex;align-items:center;justify-content:space-between}.acf-admin-page .acf-label .acf-icon-help{width:18px;height:18px;background-color:#98a2b3}.acf-admin-page .acf-label label{margin-bottom:0}.acf-admin-page .acf-label .description{margin-top:2px}.acf-admin-page .acf-field-setting-name .acf-tip{position:absolute;top:0;left:654px;color:#98a2b3}.rtl.acf-admin-page .acf-field-setting-name .acf-tip{left:auto;right:654px}.acf-admin-page .acf-field-setting-name .acf-tip .acf-icon-help{width:18px;height:18px}.acf-admin-page .acf-field-setting-type .select2-container.-acf,.acf-admin-page .acf-field-permalink-rewrite .select2-container.-acf,.acf-admin-page .acf-field-query-var .select2-container.-acf,.acf-admin-page .acf-field-manage-terms .select2-container.-acf,.acf-admin-page .acf-field-edit-terms .select2-container.-acf,.acf-admin-page .acf-field-delete-terms .select2-container.-acf,.acf-admin-page .acf-field-assign-terms .select2-container.-acf,.acf-admin-page .acf-field-meta-box .select2-container.-acf{min-height:40px}.acf-admin-page .acf-field-setting-type .select2-container--default .select2-selection--single .select2-selection__rendered,.acf-admin-page .acf-field-permalink-rewrite .select2-container--default .select2-selection--single .select2-selection__rendered,.acf-admin-page .acf-field-query-var .select2-container--default .select2-selection--single .select2-selection__rendered,.acf-admin-page .acf-field-manage-terms .select2-container--default .select2-selection--single .select2-selection__rendered,.acf-admin-page .acf-field-edit-terms .select2-container--default .select2-selection--single .select2-selection__rendered,.acf-admin-page .acf-field-delete-terms .select2-container--default .select2-selection--single .select2-selection__rendered,.acf-admin-page .acf-field-assign-terms .select2-container--default .select2-selection--single .select2-selection__rendered,.acf-admin-page .acf-field-meta-box .select2-container--default .select2-selection--single .select2-selection__rendered{display:flex;align-items:center;position:relative;z-index:800;min-height:40px;padding-top:0;padding-right:12px;padding-bottom:0;padding-left:12px}.acf-admin-page .acf-field-setting-type .select2-container--default .select2-selection--single .field-type-icon,.acf-admin-page .acf-field-permalink-rewrite .select2-container--default .select2-selection--single .field-type-icon,.acf-admin-page .acf-field-query-var .select2-container--default .select2-selection--single .field-type-icon,.acf-admin-page .acf-field-manage-terms .select2-container--default .select2-selection--single .field-type-icon,.acf-admin-page .acf-field-edit-terms .select2-container--default .select2-selection--single .field-type-icon,.acf-admin-page .acf-field-delete-terms .select2-container--default .select2-selection--single .field-type-icon,.acf-admin-page .acf-field-assign-terms .select2-container--default .select2-selection--single .field-type-icon,.acf-admin-page .acf-field-meta-box .select2-container--default .select2-selection--single .field-type-icon{top:auto;width:18px;height:18px;margin-right:2px}.acf-admin-page .acf-field-setting-type .select2-container--default .select2-selection--single .field-type-icon:before,.acf-admin-page .acf-field-permalink-rewrite .select2-container--default .select2-selection--single .field-type-icon:before,.acf-admin-page .acf-field-query-var .select2-container--default .select2-selection--single .field-type-icon:before,.acf-admin-page .acf-field-manage-terms .select2-container--default .select2-selection--single .field-type-icon:before,.acf-admin-page .acf-field-edit-terms .select2-container--default .select2-selection--single .field-type-icon:before,.acf-admin-page .acf-field-delete-terms .select2-container--default .select2-selection--single .field-type-icon:before,.acf-admin-page .acf-field-assign-terms .select2-container--default .select2-selection--single .field-type-icon:before,.acf-admin-page .acf-field-meta-box .select2-container--default .select2-selection--single .field-type-icon:before{width:9px;height:9px}.acf-admin-page .acf-field-setting-type .select2-container--open .select2-selection__rendered,.acf-admin-page .acf-field-permalink-rewrite .select2-container--open .select2-selection__rendered,.acf-admin-page .acf-field-query-var .select2-container--open .select2-selection__rendered,.acf-admin-page .acf-field-manage-terms .select2-container--open .select2-selection__rendered,.acf-admin-page .acf-field-edit-terms .select2-container--open .select2-selection__rendered,.acf-admin-page .acf-field-delete-terms .select2-container--open .select2-selection__rendered,.acf-admin-page .acf-field-assign-terms .select2-container--open .select2-selection__rendered,.acf-admin-page .acf-field-meta-box .select2-container--open .select2-selection__rendered{border-color:#6bb5d8 !important;border-bottom-color:#d0d5dd !important}.acf-admin-page .acf-field-setting-type .select2-container--open.select2-container--below .select2-selection__rendered,.acf-admin-page .acf-field-permalink-rewrite .select2-container--open.select2-container--below .select2-selection__rendered,.acf-admin-page .acf-field-query-var .select2-container--open.select2-container--below .select2-selection__rendered,.acf-admin-page .acf-field-manage-terms .select2-container--open.select2-container--below .select2-selection__rendered,.acf-admin-page .acf-field-edit-terms .select2-container--open.select2-container--below .select2-selection__rendered,.acf-admin-page .acf-field-delete-terms .select2-container--open.select2-container--below .select2-selection__rendered,.acf-admin-page .acf-field-assign-terms .select2-container--open.select2-container--below .select2-selection__rendered,.acf-admin-page .acf-field-meta-box .select2-container--open.select2-container--below .select2-selection__rendered{border-bottom-right-radius:0 !important;border-bottom-left-radius:0 !important}.acf-admin-page .acf-field-setting-type .select2-container--open.select2-container--above .select2-selection__rendered,.acf-admin-page .acf-field-permalink-rewrite .select2-container--open.select2-container--above .select2-selection__rendered,.acf-admin-page .acf-field-query-var .select2-container--open.select2-container--above .select2-selection__rendered,.acf-admin-page .acf-field-manage-terms .select2-container--open.select2-container--above .select2-selection__rendered,.acf-admin-page .acf-field-edit-terms .select2-container--open.select2-container--above .select2-selection__rendered,.acf-admin-page .acf-field-delete-terms .select2-container--open.select2-container--above .select2-selection__rendered,.acf-admin-page .acf-field-assign-terms .select2-container--open.select2-container--above .select2-selection__rendered,.acf-admin-page .acf-field-meta-box .select2-container--open.select2-container--above .select2-selection__rendered{border-top-right-radius:0 !important;border-top-left-radius:0 !important;border-bottom-color:#6bb5d8 !important;border-top-color:#d0d5dd !important}.acf-admin-page .acf-field-setting-type .acf-selection.has-icon,.acf-admin-page .acf-field-permalink-rewrite .acf-selection.has-icon,.acf-admin-page .acf-field-query-var .acf-selection.has-icon,.acf-admin-page .acf-field-manage-terms .acf-selection.has-icon,.acf-admin-page .acf-field-edit-terms .acf-selection.has-icon,.acf-admin-page .acf-field-delete-terms .acf-selection.has-icon,.acf-admin-page .acf-field-assign-terms .acf-selection.has-icon,.acf-admin-page .acf-field-meta-box .acf-selection.has-icon{margin-left:6px}.rtl.acf-admin-page .acf-field-setting-type .acf-selection.has-icon,.acf-admin-page .acf-field-permalink-rewrite .acf-selection.has-icon,.acf-admin-page .acf-field-query-var .acf-selection.has-icon,.acf-admin-page .acf-field-manage-terms .acf-selection.has-icon,.acf-admin-page .acf-field-edit-terms .acf-selection.has-icon,.acf-admin-page .acf-field-delete-terms .acf-selection.has-icon,.acf-admin-page .acf-field-assign-terms .acf-selection.has-icon,.acf-admin-page .acf-field-meta-box .acf-selection.has-icon{margin-right:6px}.acf-admin-page .acf-field-setting-type .select2-selection__arrow,.acf-admin-page .acf-field-permalink-rewrite .select2-selection__arrow,.acf-admin-page .acf-field-query-var .select2-selection__arrow,.acf-admin-page .acf-field-manage-terms .select2-selection__arrow,.acf-admin-page .acf-field-edit-terms .select2-selection__arrow,.acf-admin-page .acf-field-delete-terms .select2-selection__arrow,.acf-admin-page .acf-field-assign-terms .select2-selection__arrow,.acf-admin-page .acf-field-meta-box .select2-selection__arrow{width:20px;height:20px;top:calc(50% - 10px);right:12px;background-color:rgba(0,0,0,0)}.acf-admin-page .acf-field-setting-type .select2-selection__arrow:after,.acf-admin-page .acf-field-permalink-rewrite .select2-selection__arrow:after,.acf-admin-page .acf-field-query-var .select2-selection__arrow:after,.acf-admin-page .acf-field-manage-terms .select2-selection__arrow:after,.acf-admin-page .acf-field-edit-terms .select2-selection__arrow:after,.acf-admin-page .acf-field-delete-terms .select2-selection__arrow:after,.acf-admin-page .acf-field-assign-terms .select2-selection__arrow:after,.acf-admin-page .acf-field-meta-box .select2-selection__arrow:after{content:"";display:block;position:absolute;z-index:850;top:1px;left:0;width:20px;height:20px;-webkit-mask-image:url("../../images/icons/icon-chevron-down.svg");mask-image:url("../../images/icons/icon-chevron-down.svg");background-color:#667085;border:none;border-radius:0;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;text-indent:500%;white-space:nowrap;overflow:hidden}.acf-admin-page .acf-field-setting-type .select2-selection__arrow b[role=presentation],.acf-admin-page .acf-field-permalink-rewrite .select2-selection__arrow b[role=presentation],.acf-admin-page .acf-field-query-var .select2-selection__arrow b[role=presentation],.acf-admin-page .acf-field-manage-terms .select2-selection__arrow b[role=presentation],.acf-admin-page .acf-field-edit-terms .select2-selection__arrow b[role=presentation],.acf-admin-page .acf-field-delete-terms .select2-selection__arrow b[role=presentation],.acf-admin-page .acf-field-assign-terms .select2-selection__arrow b[role=presentation],.acf-admin-page .acf-field-meta-box .select2-selection__arrow b[role=presentation]{display:none}.acf-admin-page .acf-field-setting-type .select2-container--open .select2-selection__arrow:after,.acf-admin-page .acf-field-permalink-rewrite .select2-container--open .select2-selection__arrow:after,.acf-admin-page .acf-field-query-var .select2-container--open .select2-selection__arrow:after,.acf-admin-page .acf-field-manage-terms .select2-container--open .select2-selection__arrow:after,.acf-admin-page .acf-field-edit-terms .select2-container--open .select2-selection__arrow:after,.acf-admin-page .acf-field-delete-terms .select2-container--open .select2-selection__arrow:after,.acf-admin-page .acf-field-assign-terms .select2-container--open .select2-selection__arrow:after,.acf-admin-page .acf-field-meta-box .select2-container--open .select2-selection__arrow:after{-webkit-mask-image:url("../../images/icons/icon-chevron-up.svg");mask-image:url("../../images/icons/icon-chevron-up.svg")}.acf-admin-page .field-type-select-results{position:relative;top:4px;z-index:1002;border-radius:0 0 6px 6px;box-shadow:0px 8px 24px 4px rgba(16,24,40,.12)}.acf-admin-page .field-type-select-results.select2-dropdown--above{display:flex;flex-direction:column-reverse;top:0;border-radius:6px 6px 0 0;z-index:1030}.select2-container.select2-container--open.acf-admin-page .field-type-select-results{box-shadow:0px 0px 0px 3px #ebf5fa,0px 8px 24px 4px rgba(16,24,40,.12)}.acf-admin-page .field-type-select-results .acf-selection.has-icon{margin-left:6px}.rtl.acf-admin-page .field-type-select-results .acf-selection.has-icon{margin-right:6px}.acf-admin-page .field-type-select-results .select2-search{position:relative;margin:0;padding:0}.acf-admin-page .field-type-select-results .select2-search--dropdown:after{content:"";display:block;position:absolute;top:12px;left:13px;width:16px;height:16px;-webkit-mask-image:url("../../images/icons/icon-search.svg");mask-image:url("../../images/icons/icon-search.svg");background-color:#98a2b3;border:none;border-radius:0;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;text-indent:500%;white-space:nowrap;overflow:hidden}.rtl.acf-admin-page .field-type-select-results .select2-search--dropdown:after{right:12px;left:auto}.acf-admin-page .field-type-select-results .select2-search .select2-search__field{padding-left:38px;border-right:0;border-bottom:0;border-left:0;border-radius:0}.rtl.acf-admin-page .field-type-select-results .select2-search .select2-search__field{padding-right:38px;padding-left:0}.acf-admin-page .field-type-select-results .select2-search .select2-search__field:focus{border-top-color:#d0d5dd;outline:0}.acf-admin-page .field-type-select-results .select2-results__options{max-height:440px}.acf-admin-page .field-type-select-results .select2-results__option .select2-results__option--highlighted{background-color:#0783be !important;color:#f9fafb !important}.acf-admin-page .field-type-select-results .select2-results__option .select2-results__option{display:inline-flex;position:relative;width:calc(100% - 24px);min-height:32px;padding-top:0;padding-right:12px;padding-bottom:0;padding-left:12px;align-items:center}.acf-admin-page .field-type-select-results .select2-results__option .select2-results__option .field-type-icon{top:auto;width:18px;height:18px;margin-right:2px;box-shadow:0 0 0 1px #f9fafb}.acf-admin-page .field-type-select-results .select2-results__option .select2-results__option .field-type-icon:before{width:9px;height:9px}.acf-admin-page .field-type-select-results .select2-results__option[aria-selected=true]{background-color:#ebf5fa !important;color:#344054 !important}.acf-admin-page .field-type-select-results .select2-results__option[aria-selected=true]:after{content:"";right:13px;position:absolute;width:16px;height:16px;-webkit-mask-image:url("../../images/icons/icon-check.svg");mask-image:url("../../images/icons/icon-check.svg");background-color:#0783be;border:none;border-radius:0;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;text-indent:500%;white-space:nowrap;overflow:hidden}.rtl.acf-admin-page .field-type-select-results .select2-results__option[aria-selected=true]:after{left:13px;right:auto}.acf-admin-page .field-type-select-results .select2-results__group{display:inline-flex;align-items:center;width:calc(100% - 24px);min-height:25px;background-color:#f9fafb;border-top-width:1px;border-top-style:solid;border-top-color:#eaecf0;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#eaecf0;color:#98a2b3;font-size:11px;margin-bottom:0;padding-top:0;padding-right:12px;padding-bottom:0;padding-left:12px;font-weight:normal}.acf-admin-page.rtl .acf-field-setting-type .select2-selection__arrow:after,.acf-admin-page.rtl .acf-field-permalink-rewrite .select2-selection__arrow:after,.acf-admin-page.rtl .acf-field-query-var .select2-selection__arrow:after{right:auto;left:10px}.rtl.post-type-acf-field-group .acf-field-setting-name .acf-tip,.rtl.acf-internal-post-type .acf-field-setting-name .acf-tip{left:auto;right:654px}.post-type-acf-field-group .metabox-holder.columns-1 #acf-field-group-fields,.post-type-acf-field-group .metabox-holder.columns-1 #acf-field-group-options,.post-type-acf-field-group .metabox-holder.columns-1 .meta-box-sortables.ui-sortable,.post-type-acf-field-group .metabox-holder.columns-1 .notice{max-width:1440px}.post-type-acf-field-group.columns-1 .notice{max-width:1440px}.post-type-acf-field-group.columns-2 .acf-headerbar .acf-headerbar-inner{max-width:100%}.post-type-acf-field-group #poststuff{margin-top:0;margin-right:0;margin-bottom:0;margin-left:0;padding-top:0;padding-right:0;padding-bottom:0;padding-left:0}.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap{overflow:hidden;border:none;border-radius:0 0 8px 8px;box-shadow:0px 1px 2px rgba(16,24,40,.1)}.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap.-empty{border-top-width:1px;border-top-style:solid;border-top-color:#eaecf0}.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap.-empty .acf-thead,.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap.-empty .acf-tfoot{display:none}.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap.-empty .no-fields-message{min-height:280px}.post-type-acf-field-group .acf-thead{background-color:#f9fafb;border-top-width:1px;border-top-style:solid;border-top-color:#eaecf0;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#eaecf0}.post-type-acf-field-group .acf-thead li{display:flex;align-items:center;min-height:48px;padding-top:0;padding-bottom:0;color:#344054;font-weight:500}.post-type-acf-field-group .acf-field-object{border-top-width:1px;border-top-style:solid;border-top-color:#eaecf0}.post-type-acf-field-group .acf-field-object:hover .acf-sortable-handle:before{display:inline-flex}.post-type-acf-field-group .acf-field-object.acf-field-is-endpoint:before{display:block;content:"";height:2px;width:100%;background:#d0d5dd;margin-top:-1px}.post-type-acf-field-group .acf-field-object.acf-field-is-endpoint.acf-field-object-accordion:before{display:none}.post-type-acf-field-group .acf-field-object.acf-field-is-endpoint.acf-field-object-accordion:after{display:block;content:"";height:2px;width:100%;background:#d0d5dd;z-index:500}.post-type-acf-field-group .acf-field-object:hover{background-color:#f7fbfd}.post-type-acf-field-group .acf-field-object.open{background-color:#fff;border-top-color:#a5d2e7}.post-type-acf-field-group .acf-field-object.open .handle{background-color:#d8ebf5;border:none;text-shadow:none}.post-type-acf-field-group .acf-field-object.open .handle a{color:#0783be !important}.post-type-acf-field-group .acf-field-object.open .handle a.delete-field{color:#a00 !important}.post-type-acf-field-group .acf-field-object .acf-field-setting-type .acf-hl{margin:0}.post-type-acf-field-group .acf-field-object .acf-field-setting-type .acf-hl li{width:auto}.post-type-acf-field-group .acf-field-object .acf-field-setting-type .acf-hl li:first-child{flex-grow:1;margin-left:-10px}.post-type-acf-field-group .acf-field-object .acf-field-setting-type .acf-hl li:nth-child(2){padding-right:0}.post-type-acf-field-group .acf-field-object ul.acf-hl{display:flex;align-items:stretch}.post-type-acf-field-group .acf-field-object .handle li{display:flex;align-items:top;flex-wrap:wrap;min-height:60px;color:#344054}.post-type-acf-field-group .acf-field-object .handle li.li-field-label{display:flex;flex-wrap:wrap;justify-content:flex-start;align-content:flex-start;align-items:flex-start;width:auto}.post-type-acf-field-group .acf-field-object .handle li.li-field-label strong{font-weight:500}.post-type-acf-field-group .acf-field-object .handle li.li-field-label .row-options{width:100%}.post-type-acf-field-group .acf-tfoot{display:flex;align-items:center;justify-content:flex-end;min-height:80px;box-sizing:border-box;padding-top:8px;padding-right:24px;padding-bottom:8px;padding-left:24px;background-color:#fff;border-top-width:1px;border-top-style:solid;border-top-color:#eaecf0}.post-type-acf-field-group .acf-tfoot .acf-fr{margin-top:0;margin-right:0;margin-bottom:0;margin-left:0;padding-top:0;padding-right:0;padding-bottom:0;padding-left:0}.post-type-acf-field-group .acf-field-object .settings{box-sizing:border-box;padding-top:0;padding-bottom:0;background-color:#fff;border-left-width:4px;border-left-style:solid;border-left-color:#6bb5d8}.acf-field-settings-main{padding-top:32px;padding-right:0;padding-bottom:32px;padding-left:0}.acf-field-settings-main .acf-field:last-of-type{margin-bottom:0}.acf-field-settings .acf-label{display:block;justify-content:space-between;align-items:center;align-content:center;margin-top:0;margin-right:0;margin-bottom:6px;margin-left:0}.acf-field-settings .acf-field{box-sizing:border-box;width:100%;margin-top:0;margin-right:0;margin-bottom:32px;margin-left:0;padding-top:0;padding-right:72px;padding-bottom:0;padding-left:72px}@media screen and (max-width: 600px){.acf-field-settings .acf-field{padding-right:12px;padding-left:12px}}.acf-field-settings .acf-field .acf-label,.acf-field-settings .acf-field .acf-input{max-width:600px}.acf-field-settings .acf-field .acf-label.acf-input-sub,.acf-field-settings .acf-field .acf-input.acf-input-sub{max-width:100%}.acf-field-settings .acf-field .acf-label .acf-btn:disabled,.acf-field-settings .acf-field .acf-input .acf-btn:disabled{background-color:#f2f4f7;color:#98a2b3 !important;border:1px #d0d5dd solid;cursor:default}.acf-field-settings .acf-field .acf-input-wrap{overflow:visible}.acf-field-settings .acf-field.acf-field-setting-label,.acf-field-settings .acf-field-setting-wrapper{padding-top:24px;border-top-width:1px;border-top-style:solid;border-top-color:#eaecf0}.acf-field-settings .acf-field-setting-wrapper{margin-top:24px}.acf-field-settings .acf-field-settings-footer{display:flex;align-items:center;min-height:72px;box-sizing:border-box;width:100%;margin-top:0;margin-right:0;margin-bottom:0;margin-left:0;padding-top:0;padding-right:0;padding-bottom:0;padding-left:72px;border-top-width:1px;border-top-style:solid;border-top-color:#eaecf0}@media screen and (max-width: 600px){.acf-field-settings .acf-field-settings-footer{padding-left:12px}}.rtl .acf-field-settings .acf-field-settings-footer{padding-top:0;padding-right:72px;padding-bottom:0;padding-left:0}.acf-fields .acf-tab-wrap,.acf-admin-page.acf-internal-post-type .acf-tab-wrap,.acf-browse-fields-modal-wrap .acf-tab-wrap{background:#f9fafb;border-bottom-color:#1d2939}.acf-fields .acf-tab-wrap .acf-tab-group,.acf-admin-page.acf-internal-post-type .acf-tab-wrap .acf-tab-group,.acf-browse-fields-modal-wrap .acf-tab-wrap .acf-tab-group{padding-right:24px;padding-left:24px;border-top-width:0;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#eaecf0}.acf-fields .acf-field-settings-tab-bar,.acf-fields .acf-tab-wrap .acf-tab-group,.acf-admin-page.acf-internal-post-type .acf-field-settings-tab-bar,.acf-admin-page.acf-internal-post-type .acf-tab-wrap .acf-tab-group,.acf-browse-fields-modal-wrap .acf-field-settings-tab-bar,.acf-browse-fields-modal-wrap .acf-tab-wrap .acf-tab-group{display:flex;align-items:stretch;min-height:48px;padding-top:0;padding-right:0;padding-bottom:0;padding-left:24px;margin-top:0;margin-bottom:0;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#eaecf0}.acf-fields .acf-field-settings-tab-bar li,.acf-fields .acf-tab-wrap .acf-tab-group li,.acf-admin-page.acf-internal-post-type .acf-field-settings-tab-bar li,.acf-admin-page.acf-internal-post-type .acf-tab-wrap .acf-tab-group li,.acf-browse-fields-modal-wrap .acf-field-settings-tab-bar li,.acf-browse-fields-modal-wrap .acf-tab-wrap .acf-tab-group li{display:flex;margin-top:0;margin-right:24px;margin-bottom:0;margin-left:0;padding:0}.acf-fields .acf-field-settings-tab-bar li a,.acf-fields .acf-tab-wrap .acf-tab-group li a,.acf-admin-page.acf-internal-post-type .acf-field-settings-tab-bar li a,.acf-admin-page.acf-internal-post-type .acf-tab-wrap .acf-tab-group li a,.acf-browse-fields-modal-wrap .acf-field-settings-tab-bar li a,.acf-browse-fields-modal-wrap .acf-tab-wrap .acf-tab-group li a{box-sizing:border-box;display:inline-flex;align-items:center;height:100%;padding-top:3px;padding-right:0;padding-bottom:0;padding-left:0;background:none;border-top:none;border-right:none;border-bottom-width:3px;border-bottom-style:solid;border-bottom-color:rgba(0,0,0,0);border-left:none;color:#667085;font-weight:normal}.acf-fields .acf-field-settings-tab-bar li a:focus-visible,.acf-fields .acf-tab-wrap .acf-tab-group li a:focus-visible,.acf-admin-page.acf-internal-post-type .acf-field-settings-tab-bar li a:focus-visible,.acf-admin-page.acf-internal-post-type .acf-tab-wrap .acf-tab-group li a:focus-visible,.acf-browse-fields-modal-wrap .acf-field-settings-tab-bar li a:focus-visible,.acf-browse-fields-modal-wrap .acf-tab-wrap .acf-tab-group li a:focus-visible{border:1px solid #5897fb}.acf-fields .acf-field-settings-tab-bar li a:hover,.acf-fields .acf-tab-wrap .acf-tab-group li a:hover,.acf-admin-page.acf-internal-post-type .acf-field-settings-tab-bar li a:hover,.acf-admin-page.acf-internal-post-type .acf-tab-wrap .acf-tab-group li a:hover,.acf-browse-fields-modal-wrap .acf-field-settings-tab-bar li a:hover,.acf-browse-fields-modal-wrap .acf-tab-wrap .acf-tab-group li a:hover{color:#1d2939}.acf-fields .acf-field-settings-tab-bar li a:hover,.acf-fields .acf-tab-wrap .acf-tab-group li a:hover,.acf-admin-page.acf-internal-post-type .acf-field-settings-tab-bar li a:hover,.acf-admin-page.acf-internal-post-type .acf-tab-wrap .acf-tab-group li a:hover,.acf-browse-fields-modal-wrap .acf-field-settings-tab-bar li a:hover,.acf-browse-fields-modal-wrap .acf-tab-wrap .acf-tab-group li a:hover{background-color:rgba(0,0,0,0)}.acf-fields .acf-field-settings-tab-bar li.active a,.acf-fields .acf-tab-wrap .acf-tab-group li.active a,.acf-admin-page.acf-internal-post-type .acf-field-settings-tab-bar li.active a,.acf-admin-page.acf-internal-post-type .acf-tab-wrap .acf-tab-group li.active a,.acf-browse-fields-modal-wrap .acf-field-settings-tab-bar li.active a,.acf-browse-fields-modal-wrap .acf-tab-wrap .acf-tab-group li.active a{background:none;border-bottom-color:#0783be;color:#0783be}.acf-fields .acf-field-settings-tab-bar li.active a:focus-visible,.acf-fields .acf-tab-wrap .acf-tab-group li.active a:focus-visible,.acf-admin-page.acf-internal-post-type .acf-field-settings-tab-bar li.active a:focus-visible,.acf-admin-page.acf-internal-post-type .acf-tab-wrap .acf-tab-group li.active a:focus-visible,.acf-browse-fields-modal-wrap .acf-field-settings-tab-bar li.active a:focus-visible,.acf-browse-fields-modal-wrap .acf-tab-wrap .acf-tab-group li.active a:focus-visible{border-bottom-color:#0783be;border-bottom-width:3px}.acf-admin-page.acf-internal-post-type .acf-field-editor .acf-field-settings-tab-bar{padding-left:72px}@media screen and (max-width: 600px){.acf-admin-page.acf-internal-post-type .acf-field-editor .acf-field-settings-tab-bar{padding-left:12px}}#acf-field-group-options .field-group-settings-tab{padding-top:24px;padding-right:24px;padding-bottom:24px;padding-left:24px}#acf-field-group-options .field-group-settings-tab .acf-field:last-of-type{padding:0}#acf-field-group-options .acf-field{border:none;margin-top:0;margin-right:0;margin-bottom:0;margin-left:0;padding-top:0;padding-right:0;padding-bottom:24px;padding-left:0}#acf-field-group-options .field-group-setting-split-container{display:flex;padding-top:0;padding-right:0;padding-bottom:0;padding-left:0}#acf-field-group-options .field-group-setting-split-container .field-group-setting-split{box-sizing:border-box;padding-top:24px;padding-right:24px;padding-bottom:24px;padding-left:24px}#acf-field-group-options .field-group-setting-split-container .field-group-setting-split:nth-child(1){flex:1 0 auto}#acf-field-group-options .field-group-setting-split-container .field-group-setting-split:nth-child(2n){flex:1 0 auto;max-width:320px;margin-top:0;margin-right:0;margin-bottom:0;margin-left:32px;padding-right:32px;padding-left:32px;border-left-width:1px;border-left-style:solid;border-left-color:#eaecf0}#acf-field-group-options .acf-field[data-name=description]{max-width:600px}#acf-field-group-options .acf-button-group{display:inline-flex}.rtl #acf-field-group-options .field-group-setting-split-container .field-group-setting-split:nth-child(2n){margin-right:32px;margin-left:0;border-left:none;border-right-width:1px;border-right-style:solid;border-right-color:#eaecf0}.acf-field-list .li-field-order{padding:0;display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:center;align-content:stretch;align-items:stretch;background-color:rgba(0,0,0,0)}.acf-field-list .acf-sortable-handle{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:center;align-content:flex-start;align-items:flex-start;width:100%;height:100%;position:relative;padding-top:11px;padding-bottom:8px;background-color:rgba(0,0,0,0);border:none;border-radius:0}.acf-field-list .acf-sortable-handle:hover{cursor:grab}.acf-field-list .acf-sortable-handle:before{content:"";display:none;position:absolute;top:16px;left:8px;width:16px;height:16px;width:12px;height:12px;background-color:#98a2b3;border:none;border-radius:0;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;text-indent:500%;white-space:nowrap;overflow:hidden;-webkit-mask-image:url("../../images/icons/icon-draggable.svg");mask-image:url("../../images/icons/icon-draggable.svg")}.rtl .acf-field-list .acf-sortable-handle:before{left:0;right:8px}.acf-field-object .li-field-label{position:relative;padding-left:40px}.acf-field-object .li-field-label:before{content:"";display:block;position:absolute;left:6px;display:inline-flex;width:18px;height:18px;margin-top:-2px;background-color:#667085;border:none;border-radius:0;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;text-indent:500%;white-space:nowrap;overflow:hidden;-webkit-mask-image:url("../../images/icons/icon-chevron-down.svg");mask-image:url("../../images/icons/icon-chevron-down.svg")}.acf-field-object .li-field-label:hover:before{cursor:pointer}.rtl .acf-field-object .li-field-label{padding-left:0;padding-right:40px}.rtl .acf-field-object .li-field-label:before{left:0;right:6px;-webkit-mask-image:url("../../images/icons/icon-chevron-down.svg");mask-image:url("../../images/icons/icon-chevron-down.svg")}.rtl .acf-field-object.open .li-field-label:before{-webkit-mask-image:url("../../images/icons/icon-chevron-down.svg");mask-image:url("../../images/icons/icon-chevron-down.svg")}.rtl .acf-field-object.open .acf-input-sub .li-field-label:before{-webkit-mask-image:url("../../images/icons/icon-chevron-right.svg");mask-image:url("../../images/icons/icon-chevron-right.svg")}.rtl .acf-field-object.open .acf-input-sub .acf-field-object.open .li-field-label:before{-webkit-mask-image:url("../../images/icons/icon-chevron-down.svg");mask-image:url("../../images/icons/icon-chevron-down.svg")}.acf-thead .li-field-label{padding-left:40px}.rtl .acf-thead .li-field-label{padding-left:0;padding-right:40px}.acf-field-settings-main-conditional-logic .acf-conditional-toggle{display:flex;padding-right:72px;padding-left:72px}@media screen and (max-width: 600px){.acf-field-settings-main-conditional-logic .acf-conditional-toggle{padding-left:12px}}.acf-field-settings-main-conditional-logic .acf-field{flex-wrap:wrap;margin-bottom:0;padding-right:0;padding-left:0}.acf-field-settings-main-conditional-logic .acf-field .rule-groups{flex:0 1 100%;order:3;margin-top:32px;padding-top:32px;padding-right:72px;padding-left:72px;border-top-width:1px;border-top-style:solid;border-top-color:#eaecf0}@media screen and (max-width: 600px){.acf-field-settings-main-conditional-logic .acf-field .rule-groups{padding-left:12px}.acf-field-settings-main-conditional-logic .acf-field .rule-groups table.acf-table tbody tr{display:flex;flex-wrap:wrap;justify-content:flex-start;align-content:flex-start;align-items:flex-start}.acf-field-settings-main-conditional-logic .acf-field .rule-groups table.acf-table tbody tr td{flex:1 1 100%}}.acf-input .acf-input-prepend,.acf-input .acf-input-append{display:inline-flex;align-items:center;height:100%;min-height:40px;padding-right:12px;padding-left:12px;background-color:#f9fafb;border-color:#d0d5dd;box-shadow:0px 1px 2px rgba(16,24,40,.1);color:#667085}.acf-input .acf-input-prepend{border-radius:6px 0 0 6px}.acf-input .acf-input-append{border-radius:0 6px 6px 0}.acf-input-wrap{display:flex}.acf-field-settings-main-presentation .acf-input-wrap{display:flex}.post-type-acf-field-group #acf-field-group-fields .acf-field-list.-empty .no-fields-message{display:flex;justify-content:center;padding-top:48px;padding-bottom:48px}.post-type-acf-field-group #acf-field-group-fields .acf-field-list.-empty .no-fields-message .no-fields-message-inner{display:flex;flex-wrap:wrap;justify-content:center;align-content:center;align-items:flex-start;text-align:center;max-width:400px}.post-type-acf-field-group #acf-field-group-fields .acf-field-list.-empty .no-fields-message .no-fields-message-inner img,.post-type-acf-field-group #acf-field-group-fields .acf-field-list.-empty .no-fields-message .no-fields-message-inner h2,.post-type-acf-field-group #acf-field-group-fields .acf-field-list.-empty .no-fields-message .no-fields-message-inner p{flex:1 0 100%}.post-type-acf-field-group #acf-field-group-fields .acf-field-list.-empty .no-fields-message .no-fields-message-inner h2{margin-top:32px;margin-bottom:0;padding:0;color:#344054}.post-type-acf-field-group #acf-field-group-fields .acf-field-list.-empty .no-fields-message .no-fields-message-inner p{margin-top:12px;margin-bottom:0;padding:0;color:#667085}.post-type-acf-field-group #acf-field-group-fields .acf-field-list.-empty .no-fields-message .no-fields-message-inner p.acf-small{margin-top:32px}.post-type-acf-field-group #acf-field-group-fields .acf-field-list.-empty .no-fields-message .no-fields-message-inner img{max-width:284px;margin-bottom:0}.post-type-acf-field-group #acf-field-group-fields .acf-field-list.-empty .no-fields-message .no-fields-message-inner .acf-btn{margin-top:32px}.post-type-acf-field-group .acf-headerbar #title-prompt-text{display:none}.acf-admin-page #acf-popup .acf-popup-box{min-width:480px}.acf-admin-page #acf-popup .acf-popup-box .title{display:flex;align-items:center;align-content:center;justify-content:space-between;min-height:64px;box-sizing:border-box;margin:0;padding-right:24px;padding-left:24px;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#eaecf0}.acf-admin-page #acf-popup .acf-popup-box .title h1,.acf-admin-page #acf-popup .acf-popup-box .title h2,.acf-admin-page #acf-popup .acf-popup-box .title h3,.acf-admin-page #acf-popup .acf-popup-box .title h4{padding-left:0;color:#344054}.acf-admin-page #acf-popup .acf-popup-box .title .acf-icon{display:block;position:relative;top:auto;right:auto;width:22px;height:22px;background-color:rgba(0,0,0,0);color:rgba(0,0,0,0)}.acf-admin-page #acf-popup .acf-popup-box .title .acf-icon:before{display:inline-flex;position:absolute;top:0;left:0;width:22px;height:22px;background-color:#667085;border:none;border-radius:0;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;text-indent:500%;white-space:nowrap;overflow:hidden;-webkit-mask-image:url("../../images/icons/icon-close-circle.svg");mask-image:url("../../images/icons/icon-close-circle.svg")}.acf-admin-page #acf-popup .acf-popup-box .title .acf-icon:hover:before{background-color:#0783be}.acf-admin-page #acf-popup .acf-popup-box .inner{box-sizing:border-box;margin:0;padding-top:24px;padding-right:24px;padding-bottom:24px;padding-left:24px;border-top:none}.acf-admin-page #acf-popup .acf-popup-box .inner p{margin-top:0;margin-bottom:0}.acf-admin-page #acf-popup .acf-popup-box #acf-move-field-form .acf-field-select,.acf-admin-page #acf-popup .acf-popup-box #acf-link-field-groups-form .acf-field-select{margin-top:0}.acf-admin-page .acf-link-field-groups-popup .acf-popup-box .title h3{color:#1d2939;font-weight:500}.acf-admin-page .acf-link-field-groups-popup .acf-popup-box .title h3:before{content:"";width:18px;height:18px;background:#98a2b3;margin-right:9px}.acf-admin-page .acf-link-field-groups-popup .acf-popup-box .inner{padding:0 !important}.acf-admin-page .acf-link-field-groups-popup .acf-popup-box .inner .acf-field-select,.acf-admin-page .acf-link-field-groups-popup .acf-popup-box .inner .acf-link-successful{padding:32px 24px;margin-bottom:0}.acf-admin-page .acf-link-field-groups-popup .acf-popup-box .inner .acf-field-select .description,.acf-admin-page .acf-link-field-groups-popup .acf-popup-box .inner .acf-link-successful .description{font-size:13px;font-weight:500;color:#344054}.acf-admin-page .acf-link-field-groups-popup .acf-popup-box .inner .acf-actions{background:#f9fafb;border-top:1px solid #eaecf0;padding-top:20px;padding-left:24px;padding-bottom:20px;padding-right:24px;border-bottom-left-radius:8px;border-bottom-right-radius:8px}.acf-admin-page .acf-link-field-groups-popup .acf-popup-box .inner .acf-actions .acf-btn{display:inline-block;margin-left:8px}.acf-admin-page .acf-link-field-groups-popup .acf-popup-box .inner .acf-actions .acf-btn.acf-btn-primary{width:120px}.acf-admin-single-field-group #post-body-content{display:none}.acf-field-group-settings-footer{display:flex;justify-content:space-between;align-content:stretch;align-items:center;position:relative;min-height:88px;margin-right:-24px;margin-left:-24px;margin-bottom:-24px;padding-right:24px;padding-left:24px;border-top-width:1px;border-top-style:solid;border-top-color:#eaecf0}.acf-field-group-settings-footer .acf-created-on{display:inline-flex;justify-content:flex-start;align-content:stretch;align-items:center;color:#667085}.acf-field-group-settings-footer .acf-created-on:before{content:"";display:inline-block;width:20px;height:20px;margin-right:8px;background-color:#98a2b3;border:none;border-radius:0;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-image:url("../../images/icons/icon-time.svg");mask-image:url("../../images/icons/icon-time.svg")}.conditional-logic-badge{display:none}.conditional-logic-badge.is-enabled{display:inline-block;width:6px;height:6px;overflow:hidden;margin-left:8px;background-color:rgba(82,170,89,.4);border-width:1px;border-style:solid;border-color:#52aa59;border-radius:100px;text-indent:100%;white-space:nowrap}.acf-field-settings-split{display:flex;border-top-width:1px;border-top-style:solid;border-top-color:#eaecf0}.acf-field-settings-split .acf-field{margin:0;padding-top:32px;padding-bottom:32px}.acf-field-settings-split .acf-field:nth-child(2n){border-left-width:1px;border-left-style:solid;border-left-color:#eaecf0}.acf-field-setting-display_format .acf-label,.acf-field-setting-return_format .acf-label{margin-bottom:6px}.acf-field-setting-display_format .acf-radio-list li,.acf-field-setting-return_format .acf-radio-list li{display:flex}.acf-field-setting-display_format .acf-radio-list li label,.acf-field-setting-return_format .acf-radio-list li label{display:inline-flex;width:100%}.acf-field-setting-display_format .acf-radio-list li label span,.acf-field-setting-return_format .acf-radio-list li label span{flex:1 1 auto}.acf-field-setting-display_format .acf-radio-list li label code,.acf-field-setting-return_format .acf-radio-list li label code{padding-right:8px;padding-left:8px;background-color:#f2f4f7;border-radius:4px;color:#475467}.acf-field-setting-display_format .acf-radio-list li input[type=text],.acf-field-setting-return_format .acf-radio-list li input[type=text]{height:32px}.acf-field-settings .acf-field-setting-first_day{padding-top:32px;border-top-width:1px;border-top-style:solid;border-top-color:#eaecf0}.acf-field-object-image .acf-hl[data-cols="3"]>li,.acf-field-object-gallery .acf-hl[data-cols="3"]>li{width:auto}.acf-field-settings .acf-field-appended{overflow:auto}.acf-field-settings .acf-field-appended .acf-input{float:left}.acf-field-settings .acf-field.acf-field-setting-min_width .acf-input,.acf-field-settings .acf-field.acf-field-setting-max_width .acf-input{max-width:none}.acf-field-settings .acf-field.acf-field-setting-min_width .acf-input-wrap input[type=text],.acf-field-settings .acf-field.acf-field-setting-max_width .acf-input-wrap input[type=text]{max-width:81px}.post-type-acf-field-group .acf-field-object-flexible-content .acf-field-setting-pagination{display:none}.post-type-acf-field-group .acf-field-object-repeater .acf-field-object-repeater .acf-field-setting-pagination{display:none}.acf-admin-single-field-group .acf-field-object-flexible-content .acf-is-subfields .acf-field-object .acf-label,.acf-admin-single-field-group .acf-field-object-flexible-content .acf-is-subfields .acf-field-object .acf-input{max-width:600px}.acf-admin-single-field-group .acf-field.acf-field-true-false.acf-field-setting-default_value .acf-true-false{border:none}.acf-admin-single-field-group .acf-field.acf-field-true-false.acf-field-setting-default_value .acf-true-false input[type=checkbox]{margin-right:0}.acf-field.acf-field-with-front{margin-top:32px}.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub{max-width:100%;overflow:hidden;border-radius:8px;border-width:1px;border-style:solid;border-color:#dbdfe5;box-shadow:0px 1px 2px rgba(16,24,40,.1)}.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-sub-field-list-header{display:flex;justify-content:space-between;align-content:stretch;align-items:center;min-height:64px;padding-right:24px;padding-left:24px}.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-field-list-wrap{box-shadow:none}.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-hl.acf-tfoot{min-height:64px;align-items:center}.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-input.acf-input-sub{max-width:100%;margin-right:0;margin-left:0}.post-type-acf-field-group .acf-input-sub .acf-field-object .acf-sortable-handle{width:100%;height:100%}.post-type-acf-field-group .acf-field-object:hover .acf-input-sub .acf-sortable-handle:before{display:none}.post-type-acf-field-group .acf-field-object:hover .acf-input-sub .acf-field-list .acf-field-object:hover .acf-sortable-handle:before{display:block}.post-type-acf-field-group .acf-field-object .acf-is-subfields .acf-thead .li-field-label:before{display:none}.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-field-object.open{border-top-color:#dbdfe5}.post-type-acf-field-group i.acf-icon.-duplicate.duplicate-layout{margin:0 auto !important;background-color:#667085;color:#667085}.post-type-acf-field-group i.acf-icon.acf-icon-trash.delete-layout{margin:0 auto !important;background-color:#667085;color:#667085}.post-type-acf-field-group button.acf-btn.acf-btn-tertiary.acf-field-setting-fc-duplicate,.post-type-acf-field-group button.acf-btn.acf-btn-tertiary.acf-field-setting-fc-delete{background-color:#fff !important;box-shadow:0px 1px 2px rgba(16,24,40,.1);border-radius:6px;width:32px;height:32px !important;min-height:32px;padding:0}.post-type-acf-field-group button.add-layout.acf-btn.acf-btn-primary.add-field,.post-type-acf-field-group .acf-sub-field-list-header a.acf-btn.acf-btn-secondary.add-field,.post-type-acf-field-group .acf-field-list-wrap.acf-is-subfields a.acf-btn.acf-btn-secondary.add-field{height:32px !important;min-height:32px;margin-left:5px}.post-type-acf-field-group .acf-field.acf-field-setting-fc_layout{background-color:#fff;margin-bottom:16px}.post-type-acf-field-group .acf-field-setting-fc_layout{overflow:hidden;width:calc(100% - 144px);margin-right:72px;margin-left:72px;padding-right:0;padding-left:0;border-width:1px;border-style:solid;border-color:#dbdfe5;border-radius:8px;box-shadow:0px 1px 2px rgba(16,24,40,.1)}.post-type-acf-field-group .acf-field-setting-fc_layout .acf-field-layout-settings.open{background-color:#fff;border-top-width:1px;border-top-style:solid;border-top-color:#eaecf0}@media screen and (max-width: 768px){.post-type-acf-field-group .acf-field-setting-fc_layout{width:calc(100% - 16px);margin-right:8px;margin-left:8px}}.post-type-acf-field-group .acf-field-setting-fc_layout .acf-input-sub{max-width:100%;margin-right:0;margin-left:0}.post-type-acf-field-group .acf-field-setting-fc_layout .acf-label,.post-type-acf-field-group .acf-field-setting-fc_layout .acf-input{max-width:100% !important}.post-type-acf-field-group .acf-field-setting-fc_layout .acf-input-sub{margin-right:32px;margin-bottom:32px;margin-left:32px}.post-type-acf-field-group .acf-field-setting-fc_layout .acf-fc-meta{max-width:100%;padding-top:24px;padding-right:32px;padding-left:32px}.post-type-acf-field-group .acf-field-settings-fc_head{background-color:#f9fafb;border-radius:8px 8px 0px 0px;display:flex;min-height:64px;margin-bottom:0px;padding-right:24px}.post-type-acf-field-group .acf-field-settings-fc_head .acf-fc_draggable{min-height:64px;padding-left:24px;display:flex}.post-type-acf-field-group .acf-field-settings-fc_head span.toggle-indicator{pointer-events:none;margin-top:7px}.post-type-acf-field-group .acf-field-settings-fc_head label{display:inline-flex;align-items:center}.post-type-acf-field-group .acf-field-settings-fc_head label:before{content:"";display:inline-block;width:20px;height:20px;margin-right:8px;background-color:#98a2b3;border:none;border-radius:0;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}.rtl.post-type-acf-field-group .acf-field-settings-fc_head label:before{padding-right:10px}.post-type-acf-field-group .acf-field-settings-fc_head .acf-fl-actions{display:flex;align-items:center}.post-type-acf-field-group .acf-field-settings-fc_head .acf-fl-actions .acf-fc-add-layout{margin-left:10px}.post-type-acf-field-group .acf-field-settings-fc_head .acf-fl-actions .acf-fc-add-layout .add-field{margin-left:0px !important}.post-type-acf-field-group .acf-field-settings-fc_head .acf-fl-actions li{margin-right:4px}.post-type-acf-field-group .acf-field-settings-fc_head .acf-fl-actions li:last-of-type{margin-right:0}.post-type-acf-field-group .acf-field-object.open>.handle>.acf-tbody>.li-field-label::before{-webkit-mask-image:url("../../images/icons/icon-chevron-up.svg");mask-image:url("../../images/icons/icon-chevron-up.svg")}.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-field-object .handle{background-color:rgba(0,0,0,0)}.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-field-object .handle:hover{background-color:#f9f2fb}.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-field-object.open .handle{background-color:#f5eaf9}.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-field-object .settings{border-left-color:#bf7dd7}.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-input-sub .acf-field-object .handle{background-color:rgba(0,0,0,0)}.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-input-sub .acf-field-object .handle:hover{background-color:#ebf7f4}.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-input-sub .acf-field-object.open .handle{background-color:#e3f4f0}.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-input-sub .acf-field-object .settings{border-left-color:#7ccdb9}.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-input-sub .acf-input-sub .acf-field-object .handle{background-color:rgba(0,0,0,0)}.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-input-sub .acf-input-sub .acf-field-object .handle:hover{background-color:#fcf5f2}.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-input-sub .acf-input-sub .acf-field-object.open .handle{background-color:#fbeee9}.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-input-sub .acf-input-sub .acf-field-object .settings{border-left-color:#e29473}.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-input-sub .acf-input-sub .acf-input-sub .acf-field-object .handle{background-color:rgba(0,0,0,0)}.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-input-sub .acf-input-sub .acf-input-sub .acf-field-object .handle:hover{background-color:#fafbfb}.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-input-sub .acf-input-sub .acf-input-sub .acf-field-object.open .handle{background-color:#f4f6f7}.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-input-sub .acf-input-sub .acf-input-sub .acf-field-object .settings{border-left-color:#a3b1b9} diff --git a/assets/build/css/acf-global.css b/assets/build/css/acf-global.css new file mode 100644 index 0000000..cbc129d --- /dev/null +++ b/assets/build/css/acf-global.css @@ -0,0 +1,6279 @@ +/*!*****************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/advanced-custom-fields-pro/assets/src/sass/acf-global.scss ***! + \*****************************************************************************************************************************************************************************************************************/ +@charset "UTF-8"; +/*-------------------------------------------------------------------------------------------- +* +* Vars +* +*--------------------------------------------------------------------------------------------*/ +/* colors */ +/* acf-field */ +/* responsive */ +/*-------------------------------------------------------------------------------------------- +* +* ACF 6 ↓ +* +*--------------------------------------------------------------------------------------------*/ +/*-------------------------------------------------------------------------------------------- +* +* Mixins +* +*--------------------------------------------------------------------------------------------*/ +/*-------------------------------------------------------------------------------------------- +* +* Global +* +*--------------------------------------------------------------------------------------------*/ +/* Horizontal List */ +.acf-hl { + padding: 0; + margin: 0; + list-style: none; + display: block; + position: relative; +} + +.acf-hl > li { + float: left; + display: block; + margin: 0; + padding: 0; +} + +.acf-hl > li.acf-fr { + float: right; +} + +/* Horizontal List: Clearfix */ +.acf-hl:before, +.acf-hl:after, +.acf-bl:before, +.acf-bl:after, +.acf-cf:before, +.acf-cf:after { + content: ""; + display: block; + line-height: 0; +} + +.acf-hl:after, +.acf-bl:after, +.acf-cf:after { + clear: both; +} + +/* Block List */ +.acf-bl { + padding: 0; + margin: 0; + list-style: none; + display: block; + position: relative; +} + +.acf-bl > li { + display: block; + margin: 0; + padding: 0; + float: none; +} + +/* Visibility */ +.acf-hidden { + display: none !important; +} + +.acf-empty { + display: table-cell !important; +} +.acf-empty * { + display: none !important; +} + +/* Float */ +.acf-fl { + float: left; +} + +.acf-fr { + float: right; +} + +.acf-fn { + float: none; +} + +/* Align */ +.acf-al { + text-align: left; +} + +.acf-ar { + text-align: right; +} + +.acf-ac { + text-align: center; +} + +/* loading */ +.acf-loading, +.acf-spinner { + display: inline-block; + height: 20px; + width: 20px; + vertical-align: text-top; + background: transparent url(../../images/spinner.gif) no-repeat 50% 50%; +} + +/* spinner */ +.acf-spinner { + display: none; +} + +.acf-spinner.is-active { + display: inline-block; +} + +/* WP < 4.2 */ +.spinner.is-active { + display: inline-block; +} + +/* required */ +.acf-required { + color: #f00; +} + +/* Allow pointer events in reusable blocks */ +.acf-button, +.acf-tab-button { + pointer-events: auto !important; +} + +/* show on hover */ +.acf-soh .acf-soh-target { + -webkit-transition: opacity 0.25s 0s ease-in-out, visibility 0s linear 0.25s; + -moz-transition: opacity 0.25s 0s ease-in-out, visibility 0s linear 0.25s; + -o-transition: opacity 0.25s 0s ease-in-out, visibility 0s linear 0.25s; + transition: opacity 0.25s 0s ease-in-out, visibility 0s linear 0.25s; + visibility: hidden; + opacity: 0; +} + +.acf-soh:hover .acf-soh-target { + -webkit-transition-delay: 0s; + -moz-transition-delay: 0s; + -o-transition-delay: 0s; + transition-delay: 0s; + visibility: visible; + opacity: 1; +} + +/* show if value */ +.show-if-value { + display: none; +} + +.hide-if-value { + display: block; +} + +.has-value .show-if-value { + display: block; +} + +.has-value .hide-if-value { + display: none; +} + +/* select2 WP animation fix */ +.select2-search-choice-close { + -webkit-transition: none; + -moz-transition: none; + -o-transition: none; + transition: none; +} + +/*--------------------------------------------------------------------------------------------- +* +* tooltip +* +*---------------------------------------------------------------------------------------------*/ +/* tooltip */ +.acf-tooltip { + background: #1D2939; + border-radius: 6px; + color: #D0D5DD; + padding-top: 8px; + padding-right: 12px; + padding-bottom: 10px; + padding-left: 12px; + position: absolute; + z-index: 900000; + max-width: 280px; + box-shadow: 0px 12px 16px -4px rgba(16, 24, 40, 0.08), 0px 4px 6px -2px rgba(16, 24, 40, 0.03); + /* tip */ + /* positions */ +} +.acf-tooltip:before { + border: solid; + border-color: transparent; + border-width: 6px; + content: ""; + position: absolute; +} +.acf-tooltip.top { + margin-top: -8px; +} +.acf-tooltip.top:before { + top: 100%; + left: 50%; + margin-left: -6px; + border-top-color: #2f353e; + border-bottom-width: 0; +} +.acf-tooltip.right { + margin-left: 8px; +} +.acf-tooltip.right:before { + top: 50%; + margin-top: -6px; + right: 100%; + border-right-color: #2f353e; + border-left-width: 0; +} +.acf-tooltip.bottom { + margin-top: 8px; +} +.acf-tooltip.bottom:before { + bottom: 100%; + left: 50%; + margin-left: -6px; + border-bottom-color: #2f353e; + border-top-width: 0; +} +.acf-tooltip.left { + margin-left: -8px; +} +.acf-tooltip.left:before { + top: 50%; + margin-top: -6px; + left: 100%; + border-left-color: #2f353e; + border-right-width: 0; +} +.acf-tooltip .acf-overlay { + z-index: -1; +} + +/* confirm */ +.acf-tooltip.-confirm { + z-index: 900001; +} +.acf-tooltip.-confirm a { + text-decoration: none; + color: #9ea3a8; +} +.acf-tooltip.-confirm a:hover { + text-decoration: underline; +} +.acf-tooltip.-confirm a[data-event=confirm] { + color: #f55e4f; +} + +.acf-overlay { + position: fixed; + top: 0; + bottom: 0; + left: 0; + right: 0; + cursor: default; +} + +.acf-tooltip-target { + position: relative; + z-index: 900002; +} + +/*--------------------------------------------------------------------------------------------- +* +* loading +* +*---------------------------------------------------------------------------------------------*/ +.acf-loading-overlay { + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + cursor: default; + z-index: 99; + background: rgba(249, 249, 249, 0.5); +} +.acf-loading-overlay i { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); +} + +/*-------------------------------------------------------------------------------------------- +* +* acf-icon +* +*--------------------------------------------------------------------------------------------*/ +.acf-icon { + display: inline-block; + height: 28px; + width: 28px; + border: transparent solid 1px; + border-radius: 100%; + font-size: 20px; + line-height: 21px; + text-align: center; + text-decoration: none; + vertical-align: top; + box-sizing: border-box; +} +.acf-icon:before { + font-family: dashicons; + display: inline-block; + line-height: 1; + font-weight: 400; + font-style: normal; + speak: none; + text-decoration: inherit; + text-transform: none; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + width: 1em; + height: 1em; + vertical-align: middle; + text-align: center; +} + +.acf-icon.-plus:before { + content: "\f543"; +} + +.acf-icon.-minus:before { + content: "\f460"; +} + +.acf-icon.-cancel:before { + content: "\f335"; + margin: -1px 0 0 -1px; +} + +.acf-icon.-pencil:before { + content: "\f464"; +} + +.acf-icon.-location:before { + content: "\f230"; +} + +.acf-icon.-up:before { + content: "\f343"; + margin-top: -0.1em; +} + +.acf-icon.-down:before { + content: "\f347"; + margin-top: 0.1em; +} + +.acf-icon.-left:before { + content: "\f341"; + margin-left: -0.1em; +} + +.acf-icon.-right:before { + content: "\f345"; + margin-left: 0.1em; +} + +.acf-icon.-sync:before { + content: "\f463"; +} + +.acf-icon.-globe:before { + content: "\f319"; + margin-top: 0.1em; + margin-left: 0.1em; +} + +.acf-icon.-picture:before { + content: "\f128"; +} + +.acf-icon.-check:before { + content: "\f147"; + margin-left: -0.1em; +} + +.acf-icon.-dot-3:before { + content: "\f533"; + margin-top: -0.1em; +} + +.acf-icon.-arrow-combo:before { + content: "\f156"; +} + +.acf-icon.-arrow-up:before { + content: "\f142"; + margin-left: -0.1em; +} + +.acf-icon.-arrow-down:before { + content: "\f140"; + margin-left: -0.1em; +} + +.acf-icon.-search:before { + content: "\f179"; +} + +.acf-icon.-link-ext:before { + content: "\f504"; +} + +.acf-icon.-duplicate { + position: relative; +} +.acf-icon.-duplicate:before, .acf-icon.-duplicate:after { + content: ""; + display: block; + box-sizing: border-box; + width: 46%; + height: 46%; + position: absolute; + top: 33%; + left: 23%; +} +.acf-icon.-duplicate:before { + margin: -1px 0 0 1px; + box-shadow: 2px -2px 0px 0px currentColor; +} +.acf-icon.-duplicate:after { + border: solid 2px currentColor; +} + +.acf-icon.-trash { + position: relative; +} +.acf-icon.-trash:before, .acf-icon.-trash:after { + content: ""; + display: block; + box-sizing: border-box; + width: 46%; + height: 46%; + position: absolute; + top: 33%; + left: 23%; +} +.acf-icon.-trash:before { + margin: -1px 0 0 1px; + box-shadow: 2px -2px 0px 0px currentColor; +} +.acf-icon.-trash:after { + border: solid 2px currentColor; +} + +.acf-icon.-collapse:before { + content: "\f142"; + margin-left: -0.1em; +} + +.-collapsed .acf-icon.-collapse:before { + content: "\f140"; + margin-left: -0.1em; +} + +span.acf-icon { + color: #555d66; + border-color: #b5bcc2; + background-color: #fff; +} + +a.acf-icon { + color: #555d66; + border-color: #b5bcc2; + background-color: #fff; + position: relative; + transition: none; + cursor: pointer; +} +a.acf-icon:hover { + background: #f3f5f6; + border-color: #0071a1; + color: #0071a1; +} +a.acf-icon.-minus:hover, a.acf-icon.-cancel:hover { + background: #f7efef; + border-color: #a10000; + color: #dc3232; +} +a.acf-icon:active, a.acf-icon:focus { + outline: none; + box-shadow: none; +} + +.acf-icon.-clear { + border-color: transparent; + background: transparent; + color: #444; +} + +.acf-icon.light { + border-color: transparent; + background: #f5f5f5; + color: #23282d; +} + +.acf-icon.dark { + border-color: transparent !important; + background: #23282d; + color: #eee; +} + +a.acf-icon.dark:hover { + background: #191e23; + color: #00b9eb; +} +a.acf-icon.dark.-minus:hover, a.acf-icon.dark.-cancel:hover { + color: #d54e21; +} + +.acf-icon.grey { + border-color: transparent !important; + background: #b4b9be; + color: #fff !important; +} +.acf-icon.grey:hover { + background: #00a0d2; + color: #fff; +} +.acf-icon.grey.-minus:hover, .acf-icon.grey.-cancel:hover { + background: #32373c; +} + +.acf-icon.small, +.acf-icon.-small { + width: 20px; + height: 20px; + line-height: 14px; + font-size: 14px; +} +.acf-icon.small.-duplicate:before, .acf-icon.small.-duplicate:after, +.acf-icon.-small.-duplicate:before, +.acf-icon.-small.-duplicate:after { + opacity: 0.8; +} + +/*-------------------------------------------------------------------------------------------- +* +* acf-box +* +*--------------------------------------------------------------------------------------------*/ +.acf-box { + background: #ffffff; + border: 1px solid #ccd0d4; + position: relative; + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04); + /* title */ + /* footer */ +} +.acf-box .title { + border-bottom: 1px solid #ccd0d4; + margin: 0; + padding: 15px; +} +.acf-box .title h3 { + display: flex; + align-items: center; + font-size: 14px; + line-height: 1em; + margin: 0; + padding: 0; +} +.acf-box .inner { + padding: 15px; +} +.acf-box h2 { + color: #333333; + font-size: 26px; + line-height: 1.25em; + margin: 0.25em 0 0.75em; + padding: 0; +} +.acf-box h3 { + margin: 1.5em 0 0; +} +.acf-box p { + margin-top: 0.5em; +} +.acf-box a { + text-decoration: none; +} +.acf-box i.dashicons-external { + margin-top: -1px; +} +.acf-box .footer { + border-top: 1px solid #ccd0d4; + padding: 12px; + font-size: 13px; + line-height: 1.5; +} +.acf-box .footer p { + margin: 0; +} +.acf-admin-3-8 .acf-box { + border-color: #E5E5E5; +} +.acf-admin-3-8 .acf-box .title, +.acf-admin-3-8 .acf-box .footer { + border-color: #E5E5E5; +} + +/*-------------------------------------------------------------------------------------------- +* +* acf-notice +* +*--------------------------------------------------------------------------------------------*/ +.acf-notice { + position: relative; + display: block; + color: #fff; + margin: 5px 0 15px; + padding: 3px 12px; + background: #2a9bd9; + border-left: #1f7db1 solid 3px; +} +.acf-notice p { + font-size: 13px; + line-height: 1.5; + margin: 0.5em 0; + text-shadow: none; + color: inherit; +} +.acf-notice .acf-notice-dismiss { + position: absolute; + top: 9px; + right: 12px; + background: transparent !important; + color: inherit !important; + border-color: #fff !important; + opacity: 0.75; +} +.acf-notice .acf-notice-dismiss:hover { + opacity: 1; +} +.acf-notice.-dismiss { + padding-right: 40px; +} +.acf-notice.-error { + background: #d94f4f; + border-color: #c92c2c; +} +.acf-notice.-success { + background: #49ad52; + border-color: #3a8941; +} +.acf-notice.-warning { + background: #fd8d3b; + border-color: #fc7009; +} + +/*-------------------------------------------------------------------------------------------- +* +* acf-table +* +*--------------------------------------------------------------------------------------------*/ +.acf-table { + border: #ccd0d4 solid 1px; + background: #fff; + border-spacing: 0; + border-radius: 0; + table-layout: auto; + padding: 0; + margin: 0; + width: 100%; + clear: both; + box-sizing: content-box; + /* defaults */ + /* thead */ + /* tbody */ + /* -clear */ +} +.acf-table > tbody > tr > th, +.acf-table > tbody > tr > td, +.acf-table > thead > tr > th, +.acf-table > thead > tr > td { + padding: 8px; + vertical-align: top; + background: #fff; + text-align: left; + border-style: solid; + font-weight: normal; +} +.acf-table > tbody > tr > th, +.acf-table > thead > tr > th { + position: relative; + color: #333333; +} +.acf-table > thead > tr > th { + border-color: #d5d9dd; + border-width: 0 0 1px 1px; +} +.acf-table > thead > tr > th:first-child { + border-left-width: 0; +} +.acf-table > tbody > tr { + z-index: 1; +} +.acf-table > tbody > tr > td { + border-color: #eeeeee; + border-width: 1px 0 0 1px; +} +.acf-table > tbody > tr > td:first-child { + border-left-width: 0; +} +.acf-table > tbody > tr:first-child > td { + border-top-width: 0; +} +.acf-table.-clear { + border: 0 none; +} +.acf-table.-clear > tbody > tr > td, +.acf-table.-clear > tbody > tr > th, +.acf-table.-clear > thead > tr > td, +.acf-table.-clear > thead > tr > th { + border: 0 none; + padding: 4px; +} + +/* remove tr */ +.acf-remove-element { + -webkit-transition: all 0.25s ease-out; + -moz-transition: all 0.25s ease-out; + -o-transition: all 0.25s ease-out; + transition: all 0.25s ease-out; + transform: translate(50px, 0); + opacity: 0; +} + +/* fade-up */ +.acf-fade-up { + -webkit-transition: all 0.25s ease-out; + -moz-transition: all 0.25s ease-out; + -o-transition: all 0.25s ease-out; + transition: all 0.25s ease-out; + transform: translate(0, -10px); + opacity: 0; +} + +/*--------------------------------------------------------------------------------------------- +* +* Fake table +* +*---------------------------------------------------------------------------------------------*/ +.acf-thead, +.acf-tbody, +.acf-tfoot { + width: 100%; + padding: 0; + margin: 0; +} +.acf-thead > li, +.acf-tbody > li, +.acf-tfoot > li { + box-sizing: border-box; + padding-top: 14px; + font-size: 12px; + line-height: 14px; +} + +.acf-thead { + border-bottom: #ccd0d4 solid 1px; + color: #23282d; +} +.acf-thead > li { + font-size: 14px; + line-height: 1.4; + font-weight: bold; +} +.acf-admin-3-8 .acf-thead { + border-color: #dfdfdf; +} + +.acf-tfoot { + background: #f5f5f5; + border-top: #d5d9dd solid 1px; +} + +/*-------------------------------------------------------------------------------------------- +* +* Settings +* +*--------------------------------------------------------------------------------------------*/ +.acf-settings-wrap #poststuff { + padding-top: 15px; +} +.acf-settings-wrap .acf-box { + margin: 20px 0; +} +.acf-settings-wrap table { + margin: 0; +} +.acf-settings-wrap table .button { + vertical-align: middle; +} + +/*-------------------------------------------------------------------------------------------- +* +* acf-popup +* +*--------------------------------------------------------------------------------------------*/ +#acf-popup { + position: fixed; + z-index: 900000; + top: 0; + left: 0; + right: 0; + bottom: 0; + text-align: center; +} +#acf-popup .bg { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + z-index: 0; + background: rgba(0, 0, 0, 0.25); +} +#acf-popup:before { + content: ""; + display: inline-block; + height: 100%; + vertical-align: middle; +} +#acf-popup .acf-popup-box { + display: inline-block; + vertical-align: middle; + z-index: 1; + min-width: 300px; + min-height: 160px; + border-color: #aaaaaa; + box-shadow: 0 5px 30px -5px rgba(0, 0, 0, 0.25); + text-align: left; +} +html[dir=rtl] #acf-popup .acf-popup-box { + text-align: right; +} +#acf-popup .acf-popup-box .title { + min-height: 15px; + line-height: 15px; +} +#acf-popup .acf-popup-box .title .acf-icon { + position: absolute; + top: 10px; + right: 10px; +} +html[dir=rtl] #acf-popup .acf-popup-box .title .acf-icon { + right: auto; + left: 10px; +} +#acf-popup .acf-popup-box .inner { + min-height: 50px; + padding: 0; + margin: 15px; +} +#acf-popup .acf-popup-box .loading { + position: absolute; + top: 45px; + left: 0; + right: 0; + bottom: 0; + z-index: 2; + background: rgba(0, 0, 0, 0.1); + display: none; +} +#acf-popup .acf-popup-box .loading i { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); +} + +.acf-submit { + margin-bottom: 0; + line-height: 28px; +} +.acf-submit span { + float: right; + color: #999; +} +.acf-submit span.-error { + color: #dd4232; +} +.acf-submit .button { + margin-right: 5px; +} + +/*-------------------------------------------------------------------------------------------- +* +* upgrade notice +* +*--------------------------------------------------------------------------------------------*/ +#acf-upgrade-notice { + position: relative; + background: #fff; + padding: 20px; +} +#acf-upgrade-notice:after { + display: block; + clear: both; + content: ""; +} +#acf-upgrade-notice .col-content { + float: left; + width: 55%; + padding-left: 90px; +} +#acf-upgrade-notice .notice-container { + display: flex; + justify-content: space-between; + align-items: flex-start; + align-content: flex-start; +} +#acf-upgrade-notice .col-actions { + float: right; + text-align: center; +} +#acf-upgrade-notice img { + float: left; + width: 64px; + height: 64px; + margin: 0 0 0 -90px; +} +#acf-upgrade-notice h2 { + display: inline-block; + font-size: 16px; + margin: 2px 0 6.5px; +} +#acf-upgrade-notice p { + padding: 0; + margin: 0; +} +#acf-upgrade-notice .button:before { + margin-top: 11px; +} +@media screen and (max-width: 640px) { + #acf-upgrade-notice .col-content, + #acf-upgrade-notice .col-actions { + float: none; + padding-left: 90px; + width: auto; + text-align: left; + } +} + +#acf-upgrade-notice:has(.notice-container)::before, +#acf-upgrade-notice:has(.notice-container)::after { + display: none; +} + +#acf-upgrade-notice:has(.notice-container) { + padding-left: 20px !important; +} + +/*-------------------------------------------------------------------------------------------- +* +* Welcome +* +*--------------------------------------------------------------------------------------------*/ +.acf-wrap h1 { + margin-top: 0; + padding-top: 20px; +} +.acf-wrap .about-text { + margin-top: 0.5em; + min-height: 50px; +} +.acf-wrap .about-headline-callout { + font-size: 2.4em; + font-weight: 300; + line-height: 1.3; + margin: 1.1em 0 0.2em; + text-align: center; +} +.acf-wrap .feature-section { + padding: 40px 0; +} +.acf-wrap .feature-section h2 { + margin-top: 20px; +} +.acf-wrap .changelog { + list-style: disc; + padding-left: 15px; +} +.acf-wrap .changelog li { + margin: 0 0 0.75em; +} +.acf-wrap .acf-three-col { + display: flex; + flex-wrap: wrap; + justify-content: space-between; +} +.acf-wrap .acf-three-col > div { + flex: 1; + align-self: flex-start; + min-width: 31%; + max-width: 31%; +} +@media screen and (max-width: 880px) { + .acf-wrap .acf-three-col > div { + min-width: 48%; + } +} +@media screen and (max-width: 640px) { + .acf-wrap .acf-three-col > div { + min-width: 100%; + } +} +.acf-wrap .acf-three-col h3 .badge { + display: inline-block; + vertical-align: top; + border-radius: 5px; + background: #fc9700; + color: #fff; + font-weight: normal; + font-size: 12px; + padding: 2px 5px; +} +.acf-wrap .acf-three-col img + h3 { + margin-top: 0.5em; +} + +/*-------------------------------------------------------------------------------------------- +* +* acf-hl cols +* +*--------------------------------------------------------------------------------------------*/ +.acf-hl[data-cols] { + margin-left: -10px; + margin-right: -10px; +} +.acf-hl[data-cols] > li { + padding: 0 6px 0 10px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +/* sizes */ +.acf-hl[data-cols="2"] > li { + width: 50%; +} + +.acf-hl[data-cols="3"] > li { + width: 33.333%; +} + +.acf-hl[data-cols="4"] > li { + width: 25%; +} + +/* mobile */ +@media screen and (max-width: 640px) { + .acf-hl[data-cols] { + flex-wrap: wrap; + justify-content: flex-start; + align-content: flex-start; + align-items: flex-start; + margin-left: 0; + margin-right: 0; + margin-top: -10px; + } + .acf-hl[data-cols] > li { + flex: 1 1 100%; + width: 100% !important; + padding: 10px 0 0; + } +} +/*-------------------------------------------------------------------------------------------- +* +* misc +* +*--------------------------------------------------------------------------------------------*/ +.acf-actions { + text-align: right; + z-index: 1; + /* hover */ + /* rtl */ +} +.acf-actions.-hover { + position: absolute; + display: none; + top: 0; + right: 0; + padding: 5px; + z-index: 1050; +} +html[dir=rtl] .acf-actions.-hover { + right: auto; + left: 0; +} + +/* ul compatibility */ +ul.acf-actions li { + float: right; + margin-left: 4px; +} + +/*-------------------------------------------------------------------------------------------- +* +* RTL +* +*--------------------------------------------------------------------------------------------*/ +html[dir=rtl] .acf-fl { + float: right; +} + +html[dir=rtl] .acf-fr { + float: left; +} + +html[dir=rtl] .acf-hl > li { + float: right; +} + +html[dir=rtl] .acf-hl > li.acf-fr { + float: left; +} + +html[dir=rtl] .acf-icon.logo { + left: 0; + right: auto; +} + +html[dir=rtl] .acf-table thead th { + text-align: right; + border-right-width: 1px; + border-left-width: 0px; +} + +html[dir=rtl] .acf-table > tbody > tr > td { + text-align: right; + border-right-width: 1px; + border-left-width: 0px; +} + +html[dir=rtl] .acf-table > thead > tr > th:first-child, +html[dir=rtl] .acf-table > tbody > tr > td:first-child { + border-right-width: 0; +} + +html[dir=rtl] .acf-table > tbody > tr > td.order + td { + border-right-color: #e1e1e1; +} + +/*--------------------------------------------------------------------------------------------- +* +* acf-postbox-columns +* +*---------------------------------------------------------------------------------------------*/ +.acf-postbox-columns { + position: relative; + margin-top: -11px; + margin-bottom: -12px; + margin-left: -12px; + margin-right: 268px; +} +.acf-postbox-columns:after { + display: block; + clear: both; + content: ""; +} +.acf-postbox-columns .acf-postbox-main, +.acf-postbox-columns .acf-postbox-side { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + padding: 0 12px 12px; +} +.acf-postbox-columns .acf-postbox-main { + float: left; + width: 100%; +} +.acf-postbox-columns .acf-postbox-side { + float: right; + width: 280px; + margin-right: -280px; +} +.acf-postbox-columns .acf-postbox-side:before { + content: ""; + display: block; + position: absolute; + width: 1px; + height: 100%; + top: 0; + right: 0; + background: #d5d9dd; +} +.acf-admin-3-8 .acf-postbox-columns .acf-postbox-side:before { + background: #dfdfdf; +} + +/* mobile */ +@media only screen and (max-width: 850px) { + .acf-postbox-columns { + margin: 0; + } + .acf-postbox-columns .acf-postbox-main, + .acf-postbox-columns .acf-postbox-side { + float: none; + width: auto; + margin: 0; + padding: 0; + } + .acf-postbox-columns .acf-postbox-side { + margin-top: 1em; + } + .acf-postbox-columns .acf-postbox-side:before { + display: none; + } +} +/*--------------------------------------------------------------------------------------------- +* +* acf-panel +* +*---------------------------------------------------------------------------------------------*/ +.acf-panel { + margin-top: -1px; + border-top: 1px solid #d5d9dd; + border-bottom: 1px solid #d5d9dd; + /* open */ + /* inside postbox */ + /* fields */ +} +.acf-panel .acf-panel-title { + margin: 0; + padding: 12px; + font-weight: bold; + cursor: pointer; + font-size: inherit; +} +.acf-panel .acf-panel-title i { + float: right; +} +.acf-panel .acf-panel-inside { + margin: 0; + padding: 0 12px 12px; + display: none; +} +.acf-panel.-open .acf-panel-inside { + display: block; +} +.postbox .acf-panel { + margin-left: -12px; + margin-right: -12px; +} +.acf-panel .acf-field { + margin: 20px 0 0; +} +.acf-panel .acf-field .acf-label label { + color: #555d66; + font-weight: normal; +} +.acf-panel .acf-field:first-child { + margin-top: 0; +} +.acf-admin-3-8 .acf-panel { + border-color: #dfdfdf; +} + +/*--------------------------------------------------------------------------------------------- +* +* Admin Tools +* +*---------------------------------------------------------------------------------------------*/ +#acf-admin-tools .notice { + margin-top: 10px; +} +#acf-admin-tools .acf-meta-box-wrap { + /* acf-fields */ +} +#acf-admin-tools .acf-meta-box-wrap .inside { + border-top: none; +} +#acf-admin-tools .acf-meta-box-wrap .acf-fields { + margin-bottom: 24px; + border: none; + background: #fff; + border-radius: 0; +} +#acf-admin-tools .acf-meta-box-wrap .acf-fields .acf-field { + padding: 0; + margin-bottom: 19px; + border-top: none; +} +#acf-admin-tools .acf-meta-box-wrap .acf-fields .acf-label { + margin-bottom: 16px; +} +#acf-admin-tools .acf-meta-box-wrap .acf-fields .acf-input { + padding-top: 16px; + padding-right: 16px; + padding-bottom: 16px; + padding-left: 16px; + border-width: 1px; + border-style: solid; + border-color: #D0D5DD; + border-radius: 6px; +} +#acf-admin-tools .acf-meta-box-wrap .acf-fields.import-cptui { + margin-top: 19px; +} + +.acf-meta-box-wrap .postbox { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +.acf-meta-box-wrap .postbox .inside { + margin-bottom: 0; +} +.acf-meta-box-wrap .postbox .hndle { + font-size: 14px; + padding: 8px 12px; + margin: 0; + line-height: 1.4; + position: relative; + z-index: 1; + cursor: default; +} +.acf-meta-box-wrap .postbox .handlediv, +.acf-meta-box-wrap .postbox .handle-order-higher, +.acf-meta-box-wrap .postbox .handle-order-lower { + display: none; +} + +/* grid */ +.acf-meta-box-wrap.-grid { + margin-left: 8px; + margin-right: 8px; +} +.acf-meta-box-wrap.-grid .postbox { + float: left; + clear: left; + width: 50%; + margin: 0 0 16px; +} +.acf-meta-box-wrap.-grid .postbox:nth-child(odd) { + margin-left: -8px; +} +.acf-meta-box-wrap.-grid .postbox:nth-child(even) { + float: right; + clear: right; + margin-right: -8px; +} + +/* mobile */ +@media only screen and (max-width: 850px) { + .acf-meta-box-wrap.-grid { + margin-left: 0; + margin-right: 0; + } + .acf-meta-box-wrap.-grid .postbox { + margin-left: 0 !important; + margin-right: 0 !important; + width: 100%; + } +} +/* export tool */ +#acf-admin-tool-export { + /* panel: selection */ +} +#acf-admin-tool-export p { + max-width: 800px; +} +#acf-admin-tool-export ul { + display: flex; + flex-wrap: wrap; + width: 100%; +} +#acf-admin-tool-export ul li { + flex: 0 1 33.33%; +} +@media screen and (max-width: 1600px) { + #acf-admin-tool-export ul li { + flex: 0 1 50%; + } +} +@media screen and (max-width: 1200px) { + #acf-admin-tool-export ul li { + flex: 0 1 100%; + } +} +#acf-admin-tool-export .acf-postbox-side ul { + display: block; +} +#acf-admin-tool-export .acf-postbox-side .button { + margin: 0; + width: 100%; +} +#acf-admin-tool-export textarea { + display: block; + width: 100%; + min-height: 500px; + background: #F9FAFB; + border-color: #D0D5DD; + box-shadow: none; + padding: 7px; + border-radius: 6px; +} +#acf-admin-tool-export .acf-panel-selection .acf-label label { + font-weight: bold; + color: #344054; +} + +#acf-admin-tool-import ul { + column-width: 200px; +} + +.acf-css-tooltip { + position: relative; +} +.acf-css-tooltip:before { + content: attr(aria-label); + display: none; + position: absolute; + z-index: 999; + bottom: 100%; + left: 50%; + transform: translate(-50%, -8px); + background: #191e23; + border-radius: 2px; + padding: 5px 10px; + color: #fff; + font-size: 12px; + line-height: 1.4em; + white-space: pre; +} +.acf-css-tooltip:after { + content: ""; + display: none; + position: absolute; + z-index: 998; + bottom: 100%; + left: 50%; + transform: translate(-50%, 4px); + border: solid 6px transparent; + border-top-color: #191e23; +} +.acf-css-tooltip:hover:before, .acf-css-tooltip:hover:after, .acf-css-tooltip:focus:before, .acf-css-tooltip:focus:after { + display: block; +} + +.acf-diff .acf-diff-title { + position: absolute; + top: 0; + left: 0; + right: 0; + height: 40px; + padding: 14px 16px; + background: #f3f3f3; + border-bottom: #dddddd solid 1px; +} +.acf-diff .acf-diff-title strong { + font-size: 14px; + display: block; +} +.acf-diff .acf-diff-title .acf-diff-title-left, +.acf-diff .acf-diff-title .acf-diff-title-right { + width: 50%; + float: left; +} +.acf-diff .acf-diff-content { + position: absolute; + top: 70px; + left: 0; + right: 0; + bottom: 0; + overflow: auto; +} +.acf-diff table.diff { + border-spacing: 0; +} +.acf-diff table.diff col.diffsplit.middle { + width: 0; +} +.acf-diff table.diff td, +.acf-diff table.diff th { + padding-top: 0.25em; + padding-bottom: 0.25em; +} +.acf-diff table.diff tr td:nth-child(2) { + width: auto; +} +.acf-diff table.diff td:nth-child(3) { + border-left: #dddddd solid 1px; +} +@media screen and (max-width: 600px) { + .acf-diff .acf-diff-title { + height: 70px; + } + .acf-diff .acf-diff-content { + top: 100px; + } +} + +/*--------------------------------------------------------------------------------------------- +* +* Modal +* +*---------------------------------------------------------------------------------------------*/ +.acf-modal { + position: fixed; + top: 30px; + left: 30px; + right: 30px; + bottom: 30px; + z-index: 160000; + box-shadow: 0 5px 15px rgba(0, 0, 0, 0.7); + background: #fcfcfc; +} +.acf-modal .acf-modal-title, +.acf-modal .acf-modal-content, +.acf-modal .acf-modal-toolbar { + box-sizing: border-box; + position: absolute; + left: 0; + right: 0; +} +.acf-modal .acf-modal-title { + height: 50px; + top: 0; + border-bottom: 1px solid #ddd; +} +.acf-modal .acf-modal-title h2 { + margin: 0; + padding: 0 16px; + line-height: 50px; +} +.acf-modal .acf-modal-title .acf-modal-close { + position: absolute; + top: 0; + right: 0; + height: 50px; + width: 50px; + border: none; + border-left: 1px solid #ddd; + background: transparent; + cursor: pointer; + color: #666; +} +.acf-modal .acf-modal-title .acf-modal-close:hover { + color: #00a0d2; +} +.acf-modal .acf-modal-content { + top: 50px; + bottom: 60px; + background: #fff; + overflow: auto; + padding: 16px; +} +.acf-modal .acf-modal-feedback { + position: absolute; + top: 50%; + margin: -10px 0; + left: 0; + right: 0; + text-align: center; + opacity: 0.75; +} +.acf-modal .acf-modal-feedback.error { + opacity: 1; + color: #b52727; +} +.acf-modal .acf-modal-toolbar { + height: 60px; + bottom: 0; + padding: 15px 16px; + border-top: 1px solid #ddd; +} +.acf-modal .acf-modal-toolbar .button { + float: right; +} +@media only screen and (max-width: 640px) { + .acf-modal { + top: 0; + left: 0; + right: 0; + bottom: 0; + } +} + +.acf-modal-backdrop { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: #101828; + opacity: 0.8; + z-index: 159900; +} + +/*--------------------------------------------------------------------------------------------- +* +* Retina +* +*---------------------------------------------------------------------------------------------*/ +@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx) { + .acf-loading, + .acf-spinner { + background-image: url(../../images/spinner@2x.gif); + background-size: 20px 20px; + } +} +/*-------------------------------------------------------------------------------------------- +* +* Wrap +* +*--------------------------------------------------------------------------------------------*/ +.acf-admin-page .wrap { + margin-top: 48px; + margin-right: 32px; + margin-bottom: 0; + margin-left: 12px; +} +@media screen and (max-width: 768px) { + .acf-admin-page .wrap { + margin-right: 8px; + margin-left: 8px; + } +} +.acf-admin-page.rtl .wrap { + margin-right: 12px; + margin-left: 32px; +} +@media screen and (max-width: 768px) { + .acf-admin-page.rtl .wrap { + margin-right: 8px; + margin-left: 8px; + } +} +@media screen and (max-width: 768px) { + .acf-admin-page #wpcontent { + padding-left: 0; + } +} + +/*--------------------------------------------------------------------------------------------- +* +* Admin Postbox & ACF Postbox +* +*---------------------------------------------------------------------------------------------*/ +.acf-admin-page .postbox, +.acf-admin-page .acf-box { + border: none; + border-radius: 8px; + box-shadow: 0px 1px 2px rgba(16, 24, 40, 0.1); +} +.acf-admin-page .postbox .inside, +.acf-admin-page .acf-box .inside { + padding-top: 24px; + padding-right: 24px; + padding-bottom: 24px; + padding-left: 24px; +} +.acf-admin-page .postbox .acf-postbox-inner, +.acf-admin-page .acf-box .acf-postbox-inner { + margin-top: 0; + margin-right: 0; + margin-bottom: 0; + margin-left: 0; + padding-top: 24px; + padding-right: 0; + padding-bottom: 0; + padding-left: 0; +} +.acf-admin-page .postbox .inner, +.acf-admin-page .postbox .inside, +.acf-admin-page .acf-box .inner, +.acf-admin-page .acf-box .inside { + margin-top: 0 !important; + margin-right: 0 !important; + margin-bottom: 0 !important; + margin-left: 0 !important; + border-top-width: 1px; + border-top-style: solid; + border-top-color: #EAECF0; +} +.acf-admin-page .postbox .postbox-header, +.acf-admin-page .postbox .title, +.acf-admin-page .acf-box .postbox-header, +.acf-admin-page .acf-box .title { + display: flex; + align-items: center; + box-sizing: border-box; + min-height: 64px; + margin-top: 0; + margin-right: 0; + margin-bottom: 0; + margin-left: 0; + padding-top: 0; + padding-right: 24px; + padding-bottom: 0; + padding-left: 24px; + border-bottom-width: 0; + border-bottom-style: none; +} +.acf-admin-page .postbox .postbox-header h2, +.acf-admin-page .postbox .postbox-header h3, +.acf-admin-page .postbox .title h2, +.acf-admin-page .postbox .title h3, +.acf-admin-page .acf-box .postbox-header h2, +.acf-admin-page .acf-box .postbox-header h3, +.acf-admin-page .acf-box .title h2, +.acf-admin-page .acf-box .title h3 { + margin-top: 0; + margin-right: 0; + margin-bottom: 0; + margin-left: 0; + padding-top: 0; + padding-right: 0; + padding-bottom: 0; + padding-left: 0; + color: #344054; +} +.acf-admin-page .postbox .hndle, +.acf-admin-page .acf-box .hndle { + padding-top: 0; + padding-right: 24px; + padding-bottom: 0; + padding-left: 24px; +} + +/*--------------------------------------------------------------------------------------------- +* +* Custom ACF postbox header +* +*---------------------------------------------------------------------------------------------*/ +.acf-postbox-header { + display: flex; + align-items: center; + justify-content: space-between; + box-sizing: border-box; + min-height: 64px; + margin-top: -24px; + margin-right: -24px; + margin-bottom: 0; + margin-left: -24px; + padding-top: 0; + padding-right: 24px; + padding-bottom: 0; + padding-left: 24px; + border-bottom-width: 1px; + border-bottom-style: solid; + border-bottom-color: #EAECF0; +} +.acf-postbox-header h2.acf-postbox-title { + margin-top: 0; + margin-right: 0; + margin-bottom: 0; + margin-left: 0; + padding-top: 0; + padding-right: 24px; + padding-bottom: 0; + padding-left: 0; + color: #344054; +} +.rtl .acf-postbox-header h2.acf-postbox-title { + padding-right: 0; + padding-left: 24px; +} +.acf-postbox-header .acf-icon { + background-color: #98A2B3; +} + +/*--------------------------------------------------------------------------------------------- +* +* Screen options button & screen meta container +* +*---------------------------------------------------------------------------------------------*/ +.acf-admin-page #screen-meta-links { + margin-right: 32px; +} +.acf-admin-page #screen-meta-links .show-settings { + border-color: #D0D5DD; +} +@media screen and (max-width: 768px) { + .acf-admin-page #screen-meta-links { + margin-right: 16px; + margin-bottom: 0; + } +} +.acf-admin-page.rtl #screen-meta-links { + margin-right: 0; + margin-left: 32px; +} +@media screen and (max-width: 768px) { + .acf-admin-page.rtl #screen-meta-links { + margin-right: 0; + margin-left: 16px; + } +} +.acf-admin-page #screen-meta { + border-color: #D0D5DD; +} + +/*--------------------------------------------------------------------------------------------- +* +* Postbox headings +* +*---------------------------------------------------------------------------------------------*/ +.acf-admin-page #poststuff .postbox-header h2, +.acf-admin-page #poststuff .postbox-header h3 { + justify-content: flex-start; + margin-top: 0; + margin-right: 0; + margin-bottom: 0; + margin-left: 0; + padding-top: 0; + padding-right: 0; + padding-bottom: 0; + padding-left: 0; + color: #344054 !important; +} + +/*--------------------------------------------------------------------------------------------- +* +* Postbox drag state +* +*---------------------------------------------------------------------------------------------*/ +.acf-admin-page.is-dragging-metaboxes .metabox-holder .postbox-container .meta-box-sortables { + box-sizing: border-box; + padding: 2px; + outline: none; + background-image: repeating-linear-gradient(0deg, #667085, #667085 5px, transparent 5px, transparent 10px, #667085 10px), repeating-linear-gradient(90deg, #667085, #667085 5px, transparent 5px, transparent 10px, #667085 10px), repeating-linear-gradient(180deg, #667085, #667085 5px, transparent 5px, transparent 10px, #667085 10px), repeating-linear-gradient(270deg, #667085, #667085 5px, transparent 5px, transparent 10px, #667085 10px); + background-size: 1.5px 100%, 100% 1.5px, 1.5px 100%, 100% 1.5px; + background-position: 0 0, 0 0, 100% 0, 0 100%; + background-repeat: no-repeat; + border-radius: 8px; +} +.acf-admin-page .ui-sortable-placeholder { + border: none; +} + +/*-------------------------------------------------------------------------------------------- +* +* Search summary +* +*--------------------------------------------------------------------------------------------*/ +.acf-admin-page .subtitle { + display: inline-flex; + align-items: center; + height: 24px; + margin: 0; + padding-top: 4px; + padding-right: 12px; + padding-bottom: 4px; + padding-left: 12px; + background-color: #EBF5FA; + border-width: 1px; + border-style: solid; + border-color: #A5D2E7; + border-radius: 6px; +} +.acf-admin-page .subtitle strong { + margin-left: 5px; +} + +/*-------------------------------------------------------------------------------------------- +* +* Action strip +* +*--------------------------------------------------------------------------------------------*/ +.acf-actions-strip { + display: flex; +} +.acf-actions-strip .acf-btn { + margin-right: 8px; +} + +/*-------------------------------------------------------------------------------------------- +* +* Notices +* +*--------------------------------------------------------------------------------------------*/ +.acf-admin-page .acf-notice, +.acf-admin-page .notice, +.acf-admin-page #lost-connection-notice { + position: relative; + box-sizing: border-box; + max-width: 1440px; + min-height: 48px; + margin-top: 0 !important; + margin-right: 0 !important; + margin-bottom: 16px !important; + margin-left: 0 !important; + padding-top: 13px !important; + padding-right: 16px !important; + padding-bottom: 12px !important; + padding-left: 50px !important; + background-color: #e7eff9; + border-width: 1px; + border-style: solid; + border-color: #9dbaee; + border-radius: 8px; + box-shadow: 0px 1px 2px rgba(16, 24, 40, 0.1); + color: #344054; +} +.acf-admin-page .acf-notice.update-nag, +.acf-admin-page .notice.update-nag, +.acf-admin-page #lost-connection-notice.update-nag { + display: block; + position: relative; + width: calc(100% - 44px); + margin-top: 48px !important; + margin-right: 44px !important; + margin-bottom: -32px !important; + margin-left: 12px !important; +} +.acf-admin-page .acf-notice .button, +.acf-admin-page .notice .button, +.acf-admin-page #lost-connection-notice .button { + height: auto; + margin-left: 8px; + padding: 0; + border: none; +} +.acf-admin-page .acf-notice > div, +.acf-admin-page .notice > div, +.acf-admin-page #lost-connection-notice > div { + margin-top: 0; + margin-bottom: 0; +} +.acf-admin-page .acf-notice p, +.acf-admin-page .notice p, +.acf-admin-page #lost-connection-notice p { + flex: 1 0 auto; + max-width: 100%; + line-height: 18px; + margin: 0; + padding: 0; +} +.acf-admin-page .acf-notice p.help, +.acf-admin-page .notice p.help, +.acf-admin-page #lost-connection-notice p.help { + margin-top: 0; + padding-top: 0; + color: rgba(52, 64, 84, 0.7); +} +.acf-admin-page .acf-notice .acf-notice-dismiss, +.acf-admin-page .acf-notice .notice-dismiss, +.acf-admin-page .notice .acf-notice-dismiss, +.acf-admin-page .notice .notice-dismiss, +.acf-admin-page #lost-connection-notice .acf-notice-dismiss, +.acf-admin-page #lost-connection-notice .notice-dismiss { + position: absolute; + top: 4px; + right: 8px; + padding: 9px; + border: none; +} +.acf-admin-page .acf-notice .acf-notice-dismiss:before, +.acf-admin-page .acf-notice .notice-dismiss:before, +.acf-admin-page .notice .acf-notice-dismiss:before, +.acf-admin-page .notice .notice-dismiss:before, +.acf-admin-page #lost-connection-notice .acf-notice-dismiss:before, +.acf-admin-page #lost-connection-notice .notice-dismiss:before { + content: ""; + display: block; + position: relative; + z-index: 600; + width: 20px; + height: 20px; + background-color: #667085; + border: none; + border-radius: 0; + -webkit-mask-size: contain; + mask-size: contain; + -webkit-mask-repeat: no-repeat; + mask-repeat: no-repeat; + -webkit-mask-position: center; + mask-position: center; + -webkit-mask-image: url("../../images/icons/icon-close.svg"); + mask-image: url("../../images/icons/icon-close.svg"); +} +.acf-admin-page .acf-notice .acf-notice-dismiss:hover::before, +.acf-admin-page .acf-notice .notice-dismiss:hover::before, +.acf-admin-page .notice .acf-notice-dismiss:hover::before, +.acf-admin-page .notice .notice-dismiss:hover::before, +.acf-admin-page #lost-connection-notice .acf-notice-dismiss:hover::before, +.acf-admin-page #lost-connection-notice .notice-dismiss:hover::before { + background-color: #344054; +} +.acf-admin-page .acf-notice a.acf-notice-dismiss, +.acf-admin-page .notice a.acf-notice-dismiss, +.acf-admin-page #lost-connection-notice a.acf-notice-dismiss { + position: absolute; + top: 5px; + right: 24px; +} +.acf-admin-page .acf-notice a.acf-notice-dismiss:before, +.acf-admin-page .notice a.acf-notice-dismiss:before, +.acf-admin-page #lost-connection-notice a.acf-notice-dismiss:before { + background-color: #475467; +} +.acf-admin-page .acf-notice:before, +.acf-admin-page .notice:before, +.acf-admin-page #lost-connection-notice:before { + content: ""; + display: block; + position: absolute; + top: 15px; + left: 18px; + z-index: 600; + width: 16px; + height: 16px; + margin-right: 8px; + background-color: #fff; + border: none; + border-radius: 0; + -webkit-mask-size: contain; + mask-size: contain; + -webkit-mask-repeat: no-repeat; + mask-repeat: no-repeat; + -webkit-mask-position: center; + mask-position: center; + -webkit-mask-image: url("../../images/icons/icon-info-solid.svg"); + mask-image: url("../../images/icons/icon-info-solid.svg"); +} +.acf-admin-page .acf-notice:after, +.acf-admin-page .notice:after, +.acf-admin-page #lost-connection-notice:after { + content: ""; + display: block; + position: absolute; + top: 9px; + left: 12px; + z-index: 500; + width: 28px; + height: 28px; + background-color: #2D69DA; + border-radius: 6px; + box-shadow: 0px 1px 2px rgba(16, 24, 40, 0.1); +} +.acf-admin-page .acf-notice .local-restore, +.acf-admin-page .notice .local-restore, +.acf-admin-page #lost-connection-notice .local-restore { + align-items: center; + margin-top: -6px; + margin-bottom: 0; +} +.acf-admin-page .notice.is-dismissible { + padding-right: 56px; +} +.acf-admin-page .notice.notice-success { + background-color: #edf7ef; + border-color: #b6deb9; +} +.acf-admin-page .notice.notice-success:before { + -webkit-mask-image: url("../../images/icons/icon-check-circle-solid.svg"); + mask-image: url("../../images/icons/icon-check-circle-solid.svg"); +} +.acf-admin-page .notice.notice-success:after { + background-color: #52AA59; +} +.acf-admin-page .acf-notice.acf-error-message, +.acf-admin-page .notice.notice-error, +.acf-admin-page #lost-connection-notice { + background-color: #f7eeeb; + border-color: #f1b6b3; +} +.acf-admin-page .acf-notice.acf-error-message:before, +.acf-admin-page .notice.notice-error:before, +.acf-admin-page #lost-connection-notice:before { + -webkit-mask-image: url("../../images/icons/icon-warning.svg"); + mask-image: url("../../images/icons/icon-warning.svg"); +} +.acf-admin-page .acf-notice.acf-error-message:after, +.acf-admin-page .notice.notice-error:after, +.acf-admin-page #lost-connection-notice:after { + background-color: #D13737; +} + +.acf-admin-single-taxonomy .notice-success .acf-item-saved-text, +.acf-admin-single-post-type .notice-success .acf-item-saved-text { + font-weight: 600; +} +.acf-admin-single-taxonomy .notice-success .acf-item-saved-links, +.acf-admin-single-post-type .notice-success .acf-item-saved-links { + display: flex; + gap: 12px; +} +.acf-admin-single-taxonomy .notice-success .acf-item-saved-links a, +.acf-admin-single-post-type .notice-success .acf-item-saved-links a { + text-decoration: none; + opacity: 1; +} +.acf-admin-single-taxonomy .notice-success .acf-item-saved-links a:after, +.acf-admin-single-post-type .notice-success .acf-item-saved-links a:after { + content: ""; + width: 1px; + height: 13px; + display: inline-flex; + position: relative; + top: 2px; + left: 6px; + background-color: #475467; + opacity: 0.3; +} +.acf-admin-single-taxonomy .notice-success .acf-item-saved-links a:last-child:after, +.acf-admin-single-post-type .notice-success .acf-item-saved-links a:last-child:after { + content: none; +} + +.rtl.acf-field-group .notice, +.rtl.acf-internal-post-type .notice { + padding-right: 50px !important; +} +.rtl.acf-field-group .notice .notice-dismiss, +.rtl.acf-internal-post-type .notice .notice-dismiss { + left: 8px; + right: unset; +} +.rtl.acf-field-group .notice:before, +.rtl.acf-internal-post-type .notice:before { + left: unset; + right: 10px; +} +.rtl.acf-field-group .notice:after, +.rtl.acf-internal-post-type .notice:after { + left: unset; + right: 12px; +} +.rtl.acf-field-group.acf-admin-single-taxonomy .notice-success .acf-item-saved-links a:after, .rtl.acf-field-group.acf-admin-single-post-type .notice-success .acf-item-saved-links a:after, +.rtl.acf-internal-post-type.acf-admin-single-taxonomy .notice-success .acf-item-saved-links a:after, +.rtl.acf-internal-post-type.acf-admin-single-post-type .notice-success .acf-item-saved-links a:after { + left: unset; + right: 6px; +} + +/*-------------------------------------------------------------------------------------------- +* +* ACF PRO label +* +*--------------------------------------------------------------------------------------------*/ +.acf-pro-label { + display: inline-flex; + align-items: center; + min-height: 22px; + padding-right: 8px; + padding-left: 8px; + background: linear-gradient(90.52deg, #3E8BFF 0.44%, #A45CFF 113.3%); + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.16); + border: none; + border-radius: 100px; + font-size: 11px; + text-transform: uppercase; + text-decoration: none; + color: #fff; +} + +/*-------------------------------------------------------------------------------------------- +* +* Inline notice overrides +* +*--------------------------------------------------------------------------------------------*/ +.acf-admin-page .acf-field .acf-notice { + display: flex; + align-items: center; + min-height: 40px !important; + margin-bottom: 6px !important; + padding-top: 6px !important; + padding-left: 40px !important; + padding-bottom: 6px !important; + margin: 0 0 15px; + background: #edf2ff; + color: #344054 !important; + border-color: #2183b9; + border-radius: 6px; +} +.acf-admin-page .acf-field .acf-notice:after { + top: 8px; + left: 8px; + width: 22px; + height: 22px; +} +.acf-admin-page .acf-field .acf-notice:before { + top: 12px; + left: 12px; + width: 14px; + height: 14px; +} +.acf-admin-page .acf-field .acf-notice.-error { + background: #f7eeeb; + border-color: #f1b6b3; +} +.acf-admin-page .acf-field .acf-notice.-success { + background: #edf7ef; + border-color: #b6deb9; +} +.acf-admin-page .acf-field .acf-notice.-warning { + background: #fdf8eb; + border-color: #f4dbb4; +} + +/*--------------------------------------------------------------------------------------------- +* +* Global +* +*---------------------------------------------------------------------------------------------*/ +.acf-admin-page #wpcontent { + line-height: 140%; +} + +/*--------------------------------------------------------------------------------------------- +* +* Links +* +*---------------------------------------------------------------------------------------------*/ +.acf-admin-page a { + color: #0783BE; +} + +/*--------------------------------------------------------------------------------------------- +* +* Headings +* +*---------------------------------------------------------------------------------------------*/ +.acf-h1, #tmpl-acf-field-group-pro-features h1, +#acf-field-group-pro-features h1, .acf-admin-page h1, +.acf-headerbar h1 { + font-size: 21px; + font-weight: 400; +} + +.acf-h2, .acf-no-field-groups-wrapper .acf-no-field-groups-inner h2, +.acf-no-field-groups-wrapper .acf-no-taxonomies-inner h2, +.acf-no-field-groups-wrapper .acf-no-post-types-inner h2, +.acf-no-taxonomies-wrapper .acf-no-field-groups-inner h2, +.acf-no-taxonomies-wrapper .acf-no-taxonomies-inner h2, +.acf-no-taxonomies-wrapper .acf-no-post-types-inner h2, +.acf-no-post-types-wrapper .acf-no-field-groups-inner h2, +.acf-no-post-types-wrapper .acf-no-taxonomies-inner h2, +.acf-no-post-types-wrapper .acf-no-post-types-inner h2, .acf-page-title, .acf-admin-page h2, +.acf-headerbar h2 { + font-size: 18px; + font-weight: 400; +} + +.acf-h3, .acf-admin-page h3, +.acf-headerbar h3, .acf-admin-page .postbox .postbox-header h2, +.acf-admin-page .postbox .postbox-header h3, +.acf-admin-page .postbox .title h2, +.acf-admin-page .postbox .title h3, +.acf-admin-page .acf-box .postbox-header h2, +.acf-admin-page .acf-box .postbox-header h3, +.acf-admin-page .acf-box .title h2, +.acf-admin-page .acf-box .title h3, .acf-postbox-header h2.acf-postbox-title, .acf-admin-page #poststuff .postbox-header h2, +.acf-admin-page #poststuff .postbox-header h3 { + font-size: 16px; + font-weight: 400; +} + +/*--------------------------------------------------------------------------------------------- +* +* Paragraphs +* +*---------------------------------------------------------------------------------------------*/ +.acf-admin-page .p1 { + font-size: 15px; +} +.acf-admin-page .p2, .acf-admin-page .acf-no-field-groups-wrapper .acf-no-field-groups-inner p, .acf-no-field-groups-wrapper .acf-no-field-groups-inner .acf-admin-page p, +.acf-admin-page .acf-no-field-groups-wrapper .acf-no-taxonomies-inner p, +.acf-no-field-groups-wrapper .acf-no-taxonomies-inner .acf-admin-page p, +.acf-admin-page .acf-no-field-groups-wrapper .acf-no-post-types-inner p, +.acf-no-field-groups-wrapper .acf-no-post-types-inner .acf-admin-page p, +.acf-admin-page .acf-no-taxonomies-wrapper .acf-no-field-groups-inner p, +.acf-no-taxonomies-wrapper .acf-no-field-groups-inner .acf-admin-page p, +.acf-admin-page .acf-no-taxonomies-wrapper .acf-no-taxonomies-inner p, +.acf-no-taxonomies-wrapper .acf-no-taxonomies-inner .acf-admin-page p, +.acf-admin-page .acf-no-taxonomies-wrapper .acf-no-post-types-inner p, +.acf-no-taxonomies-wrapper .acf-no-post-types-inner .acf-admin-page p, +.acf-admin-page .acf-no-post-types-wrapper .acf-no-field-groups-inner p, +.acf-no-post-types-wrapper .acf-no-field-groups-inner .acf-admin-page p, +.acf-admin-page .acf-no-post-types-wrapper .acf-no-taxonomies-inner p, +.acf-no-post-types-wrapper .acf-no-taxonomies-inner .acf-admin-page p, +.acf-admin-page .acf-no-post-types-wrapper .acf-no-post-types-inner p, +.acf-no-post-types-wrapper .acf-no-post-types-inner .acf-admin-page p, .acf-admin-page #acf-admin-tools .acf-meta-box-wrap .acf-fields .acf-label, #acf-admin-tools .acf-meta-box-wrap .acf-fields .acf-admin-page .acf-label { + font-size: 14px; +} +.acf-admin-page .p3, .acf-admin-page .acf-internal-post-type .wp-list-table .post-state, .acf-internal-post-type .wp-list-table .acf-admin-page .post-state, .acf-admin-page .subtitle { + font-size: 13.5px; +} +.acf-admin-page .p4, .acf-admin-page .acf-admin-toolbar a.acf-admin-toolbar-upgrade-btn p, .acf-admin-toolbar a.acf-admin-toolbar-upgrade-btn .acf-admin-page p, .acf-admin-page #acf-update-information .form-table th, #acf-update-information .form-table .acf-admin-page th, +.acf-admin-page #acf-update-information .form-table td, +#acf-update-information .form-table .acf-admin-page td, .acf-admin-page #acf-admin-tools.tool-export .acf-panel h3, #acf-admin-tools.tool-export .acf-panel .acf-admin-page h3, .acf-admin-page .acf-btn.acf-btn-sm, .acf-admin-page .acf-admin-toolbar .acf-tab, .acf-admin-toolbar .acf-admin-page .acf-tab, .acf-admin-page .acf-internal-post-type .subsubsub li, .acf-internal-post-type .subsubsub .acf-admin-page li, .acf-admin-page .acf-internal-post-type .wp-list-table tbody th, .acf-internal-post-type .wp-list-table tbody .acf-admin-page th, +.acf-admin-page .acf-internal-post-type .wp-list-table tbody td, +.acf-internal-post-type .wp-list-table tbody .acf-admin-page td, .acf-admin-page .acf-internal-post-type .wp-list-table thead th, .acf-internal-post-type .wp-list-table thead .acf-admin-page th, .acf-admin-page .acf-internal-post-type .wp-list-table thead td, .acf-internal-post-type .wp-list-table thead .acf-admin-page td, +.acf-admin-page .acf-internal-post-type .wp-list-table tfoot th, +.acf-internal-post-type .wp-list-table tfoot .acf-admin-page th, .acf-admin-page .acf-internal-post-type .wp-list-table tfoot td, .acf-internal-post-type .wp-list-table tfoot .acf-admin-page td, .acf-admin-page .acf-input .select2-container.-acf .select2-selection__rendered, .acf-admin-page .button, .acf-admin-page input[type=text], +.acf-admin-page input[type=search], +.acf-admin-page input[type=number], +.acf-admin-page textarea, +.acf-admin-page select { + font-size: 13px; +} +.acf-admin-page .p5, .acf-admin-page .acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-types-tab .acf-field-type .field-type-label, .acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-types-tab .acf-field-type .acf-admin-page .field-type-label, +.acf-admin-page .acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-type-search-results .acf-field-type .field-type-label, +.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-type-search-results .acf-field-type .acf-admin-page .field-type-label, .acf-admin-page .acf-internal-post-type .row-actions, .acf-internal-post-type .acf-admin-page .row-actions, .acf-admin-page .acf-notice .button, +.acf-admin-page .notice .button, +.acf-admin-page #lost-connection-notice .button { + font-size: 12.5px; +} +.acf-admin-page .p6, .acf-admin-page #acf-update-information .acf-update-changelog p em, #acf-update-information .acf-update-changelog p .acf-admin-page em, .acf-admin-page .acf-no-field-groups-wrapper .acf-no-field-groups-inner p.acf-small, .acf-no-field-groups-wrapper .acf-no-field-groups-inner .acf-admin-page p.acf-small, +.acf-admin-page .acf-no-field-groups-wrapper .acf-no-taxonomies-inner p.acf-small, +.acf-no-field-groups-wrapper .acf-no-taxonomies-inner .acf-admin-page p.acf-small, +.acf-admin-page .acf-no-field-groups-wrapper .acf-no-post-types-inner p.acf-small, +.acf-no-field-groups-wrapper .acf-no-post-types-inner .acf-admin-page p.acf-small, +.acf-admin-page .acf-no-taxonomies-wrapper .acf-no-field-groups-inner p.acf-small, +.acf-no-taxonomies-wrapper .acf-no-field-groups-inner .acf-admin-page p.acf-small, +.acf-admin-page .acf-no-taxonomies-wrapper .acf-no-taxonomies-inner p.acf-small, +.acf-no-taxonomies-wrapper .acf-no-taxonomies-inner .acf-admin-page p.acf-small, +.acf-admin-page .acf-no-taxonomies-wrapper .acf-no-post-types-inner p.acf-small, +.acf-no-taxonomies-wrapper .acf-no-post-types-inner .acf-admin-page p.acf-small, +.acf-admin-page .acf-no-post-types-wrapper .acf-no-field-groups-inner p.acf-small, +.acf-no-post-types-wrapper .acf-no-field-groups-inner .acf-admin-page p.acf-small, +.acf-admin-page .acf-no-post-types-wrapper .acf-no-taxonomies-inner p.acf-small, +.acf-no-post-types-wrapper .acf-no-taxonomies-inner .acf-admin-page p.acf-small, +.acf-admin-page .acf-no-post-types-wrapper .acf-no-post-types-inner p.acf-small, +.acf-no-post-types-wrapper .acf-no-post-types-inner .acf-admin-page p.acf-small, .acf-admin-page .acf-internal-post-type .row-actions, .acf-internal-post-type .acf-admin-page .row-actions, .acf-admin-page .acf-small { + font-size: 12px; +} +.acf-admin-page .p7, .acf-admin-page .acf-tooltip, .acf-admin-page .acf-notice p.help, +.acf-admin-page .notice p.help, +.acf-admin-page #lost-connection-notice p.help { + font-size: 11.5px; +} +.acf-admin-page .p8 { + font-size: 11px; +} + +/*--------------------------------------------------------------------------------------------- +* +* Page titles +* +*---------------------------------------------------------------------------------------------*/ +.acf-page-title { + color: #344054; +} + +/*--------------------------------------------------------------------------------------------- +* +* Hide old / native WP titles from pages +* +*---------------------------------------------------------------------------------------------*/ +.acf-admin-page .acf-settings-wrap h1 { + display: none !important; +} +.acf-admin-page #acf-admin-tools h1:not(.acf-field-group-pro-features-title, .acf-field-group-pro-features-title-sm) { + display: none !important; +} + +/*--------------------------------------------------------------------------------------------- +* +* Small +* +*---------------------------------------------------------------------------------------------*/ +/*--------------------------------------------------------------------------------------------- +* +* Link focus style +* +*---------------------------------------------------------------------------------------------*/ +.acf-admin-page a:focus { + box-shadow: none; + outline: none; +} +.acf-admin-page a:focus-visible { + box-shadow: 0 0 0 1px #4f94d4, 0 0 2px 1px rgba(79, 148, 212, 0.8); + outline: 1px solid transparent; +} + +.acf-admin-page { + /*--------------------------------------------------------------------------------------------- + * + * All Inputs + * + *---------------------------------------------------------------------------------------------*/ + /*--------------------------------------------------------------------------------------------- + * + * Read only text inputs + * + *---------------------------------------------------------------------------------------------*/ + /*--------------------------------------------------------------------------------------------- + * + * Number fields + * + *---------------------------------------------------------------------------------------------*/ + /*--------------------------------------------------------------------------------------------- + * + * Textarea + * + *---------------------------------------------------------------------------------------------*/ + /*--------------------------------------------------------------------------------------------- + * + * Select + * + *---------------------------------------------------------------------------------------------*/ + /*--------------------------------------------------------------------------------------------- + * + * Radio Button & Checkbox base styling + * + *---------------------------------------------------------------------------------------------*/ + /*--------------------------------------------------------------------------------------------- + * + * Radio Buttons + * + *---------------------------------------------------------------------------------------------*/ + /*--------------------------------------------------------------------------------------------- + * + * Checkboxes + * + *---------------------------------------------------------------------------------------------*/ + /*--------------------------------------------------------------------------------------------- + * + * Radio Buttons & Checkbox lists + * + *---------------------------------------------------------------------------------------------*/ + /*--------------------------------------------------------------------------------------------- + * + * ACF Switch + * + *---------------------------------------------------------------------------------------------*/ + /*--------------------------------------------------------------------------------------------- + * + * File input button + * + *---------------------------------------------------------------------------------------------*/ + /*--------------------------------------------------------------------------------------------- + * + * Action Buttons + * + *---------------------------------------------------------------------------------------------*/ + /*--------------------------------------------------------------------------------------------- + * + * Edit field group header + * + *---------------------------------------------------------------------------------------------*/ + /*--------------------------------------------------------------------------------------------- + * + * Select2 inputs + * + *---------------------------------------------------------------------------------------------*/ + /*--------------------------------------------------------------------------------------------- + * + * ACF label + * + *---------------------------------------------------------------------------------------------*/ + /*--------------------------------------------------------------------------------------------- + * + * Tooltip for field name field setting (result of a fix for keyboard navigation) + * + *---------------------------------------------------------------------------------------------*/ + /* Field Type Selection select2 */ + /*--------------------------------------------------------------------------------------------- + * + * RTL arrow position + * + *---------------------------------------------------------------------------------------------*/ +} +.acf-admin-page input[type=text], +.acf-admin-page input[type=search], +.acf-admin-page input[type=number], +.acf-admin-page textarea, +.acf-admin-page select { + box-sizing: border-box; + height: 40px; + padding-right: 12px; + padding-left: 12px; + background-color: #fff; + border-color: #D0D5DD; + box-shadow: 0px 1px 2px rgba(16, 24, 40, 0.1); + border-radius: 6px; + color: #344054; +} +.acf-admin-page input[type=text]:focus, +.acf-admin-page input[type=search]:focus, +.acf-admin-page input[type=number]:focus, +.acf-admin-page textarea:focus, +.acf-admin-page select:focus { + outline: 3px solid #EBF5FA; + border-color: #399CCB; +} +.acf-admin-page input[type=text]:disabled, +.acf-admin-page input[type=search]:disabled, +.acf-admin-page input[type=number]:disabled, +.acf-admin-page textarea:disabled, +.acf-admin-page select:disabled { + background-color: #F9FAFB; + color: #808a9e; +} +.acf-admin-page input[type=text]::placeholder, +.acf-admin-page input[type=search]::placeholder, +.acf-admin-page input[type=number]::placeholder, +.acf-admin-page textarea::placeholder, +.acf-admin-page select::placeholder { + color: #98A2B3; +} +.acf-admin-page input[type=text]:read-only { + background-color: #F9FAFB; + color: #98A2B3; +} +.acf-admin-page .acf-field.acf-field-number .acf-label, +.acf-admin-page .acf-field.acf-field-number .acf-input input[type=number] { + max-width: 180px; +} +.acf-admin-page textarea { + box-sizing: border-box; + padding-top: 10px; + padding-bottom: 10px; + height: 80px; + min-height: 56px; +} +.acf-admin-page select { + min-width: 160px; + max-width: 100%; + padding-right: 40px; + padding-left: 12px; + background-image: url("../../images/icons/icon-chevron-down.svg"); + background-position: right 10px top 50%; + background-size: 20px; +} +.acf-admin-page select:hover, .acf-admin-page select:focus { + color: #0783BE; +} +.acf-admin-page select::before { + content: ""; + display: block; + position: absolute; + top: 5px; + left: 5px; + width: 20px; + height: 20px; +} +.acf-admin-page.rtl select { + padding-right: 12px; + padding-left: 40px; + background-position: left 10px top 50%; +} +.acf-admin-page input[type=radio], +.acf-admin-page input[type=checkbox] { + box-sizing: border-box; + width: 16px; + height: 16px; + padding: 0; + border-width: 1px; + border-style: solid; + border-color: #98A2B3; + background: #fff; + box-shadow: none; +} +.acf-admin-page input[type=radio]:hover, +.acf-admin-page input[type=checkbox]:hover { + background-color: #EBF5FA; + border-color: #0783BE; +} +.acf-admin-page input[type=radio]:checked, .acf-admin-page input[type=radio]:focus-visible, +.acf-admin-page input[type=checkbox]:checked, +.acf-admin-page input[type=checkbox]:focus-visible { + background-color: #EBF5FA; + border-color: #0783BE; +} +.acf-admin-page input[type=radio]:checked:before, .acf-admin-page input[type=radio]:focus-visible:before, +.acf-admin-page input[type=checkbox]:checked:before, +.acf-admin-page input[type=checkbox]:focus-visible:before { + content: ""; + position: relative; + top: -1px; + left: -1px; + width: 16px; + height: 16px; + margin: 0; + padding: 0; + background-color: transparent; + background-size: cover; + background-repeat: no-repeat; + background-position: center; +} +.acf-admin-page input[type=radio]:active, +.acf-admin-page input[type=checkbox]:active { + box-shadow: 0px 0px 0px 3px #EBF5FA, 0px 0px 0px rgba(255, 54, 54, 0.25); +} +.acf-admin-page input[type=radio]:disabled, +.acf-admin-page input[type=checkbox]:disabled { + background-color: #F9FAFB; + border-color: #D0D5DD; +} +.acf-admin-page.rtl input[type=radio]:checked:before, .acf-admin-page.rtl input[type=radio]:focus-visible:before, +.acf-admin-page.rtl input[type=checkbox]:checked:before, +.acf-admin-page.rtl input[type=checkbox]:focus-visible:before { + left: 1px; +} +.acf-admin-page input[type=radio]:checked:before, .acf-admin-page input[type=radio]:focus:before { + background-image: url("../../images/field-states/radio-active.svg"); +} +.acf-admin-page input[type=checkbox]:checked:before, .acf-admin-page input[type=checkbox]:focus:before { + background-image: url("../../images/field-states/checkbox-active.svg"); +} +.acf-admin-page .acf-radio-list li input[type=radio], +.acf-admin-page .acf-radio-list li input[type=checkbox], +.acf-admin-page .acf-checkbox-list li input[type=radio], +.acf-admin-page .acf-checkbox-list li input[type=checkbox] { + margin-right: 6px; +} +.acf-admin-page .acf-radio-list.acf-bl li, +.acf-admin-page .acf-checkbox-list.acf-bl li { + margin-bottom: 8px; +} +.acf-admin-page .acf-radio-list.acf-bl li:last-of-type, +.acf-admin-page .acf-checkbox-list.acf-bl li:last-of-type { + margin-bottom: 0; +} +.acf-admin-page .acf-radio-list label, +.acf-admin-page .acf-checkbox-list label { + display: flex; + align-items: center; + align-content: center; +} +.acf-admin-page .acf-switch { + width: 42px; + height: 24px; + border: none; + background-color: #D0D5DD; + border-radius: 12px; +} +.acf-admin-page .acf-switch:hover { + background-color: #98A2B3; +} +.acf-admin-page .acf-switch:active { + box-shadow: 0px 0px 0px 3px #EBF5FA, 0px 0px 0px rgba(255, 54, 54, 0.25); +} +.acf-admin-page .acf-switch.-on { + background-color: #0783BE; +} +.acf-admin-page .acf-switch.-on:hover { + background-color: #066998; +} +.acf-admin-page .acf-switch.-on .acf-switch-slider { + left: 20px; +} +.acf-admin-page .acf-switch .acf-switch-off, +.acf-admin-page .acf-switch .acf-switch-on { + visibility: hidden; +} +.acf-admin-page .acf-switch .acf-switch-slider { + width: 20px; + height: 20px; + border: none; + border-radius: 100px; + box-shadow: 0px 1px 3px rgba(16, 24, 40, 0.1), 0px 1px 2px rgba(16, 24, 40, 0.06); +} +.acf-admin-page .acf-field-true-false { + display: flex; + align-items: flex-start; +} +.acf-admin-page .acf-field-true-false .acf-label { + order: 2; + display: block; + align-items: center; + margin-top: 2px; + margin-bottom: 0; + margin-left: 12px; +} +.acf-admin-page .acf-field-true-false .acf-label label { + margin-bottom: 0; +} +.acf-admin-page .acf-field-true-false .acf-label .acf-tip { + margin-left: 12px; +} +.acf-admin-page .acf-field-true-false .acf-label .description { + display: block; + margin-top: 2px; + margin-left: 0; +} +.acf-admin-page.rtl .acf-field-true-false .acf-label { + margin-right: 12px; + margin-left: 0; +} +.acf-admin-page.rtl .acf-field-true-false .acf-tip { + margin-right: 12px; + margin-left: 0; +} +.acf-admin-page input::file-selector-button { + box-sizing: border-box; + min-height: 40px; + margin-right: 16px; + padding-top: 8px; + padding-right: 16px; + padding-bottom: 8px; + padding-left: 16px; + background-color: transparent; + color: #0783BE !important; + border-radius: 6px; + border-width: 1px; + border-style: solid; + border-color: #0783BE; + text-decoration: none; +} +.acf-admin-page input::file-selector-button:hover { + border-color: #066998; + cursor: pointer; + color: #066998 !important; +} +.acf-admin-page .button { + display: inline-flex; + align-items: center; + height: 40px; + padding-right: 16px; + padding-left: 16px; + background-color: transparent; + border-width: 1px; + border-style: solid; + border-color: #0783BE; + border-radius: 6px; + color: #0783BE; +} +.acf-admin-page .button:hover { + background-color: #f3f9fc; + border-color: #0783BE; + color: #0783BE; +} +.acf-admin-page .button:focus { + background-color: #f3f9fc; + outline: 3px solid #EBF5FA; + color: #0783BE; +} +.acf-admin-page .edit-field-group-header { + display: block !important; +} +.acf-admin-page .acf-input .select2-container.-acf .select2-selection { + border: none; + line-height: 1; +} +.acf-admin-page .acf-input .select2-container.-acf .select2-selection__rendered { + box-sizing: border-box; + padding-right: 0; + padding-left: 0; + background-color: #fff; + border-width: 1px; + border-style: solid; + border-color: #D0D5DD; + box-shadow: 0px 1px 2px rgba(16, 24, 40, 0.1); + border-radius: 6px; + color: #344054; +} +.acf-admin-page .acf-input .select2-container--focus { + outline: 3px solid #EBF5FA; + border-color: #399CCB; + border-radius: 6px; +} +.acf-admin-page .acf-input .select2-container--focus .select2-selection__rendered { + border-color: #399CCB !important; +} +.acf-admin-page .acf-input .select2-container--focus.select2-container--below.select2-container--open .select2-selection__rendered { + border-bottom-right-radius: 0 !important; + border-bottom-left-radius: 0 !important; +} +.acf-admin-page .acf-input .select2-container--focus.select2-container--above.select2-container--open .select2-selection__rendered { + border-top-right-radius: 0 !important; + border-top-left-radius: 0 !important; +} +.acf-admin-page .acf-input .select2-container .select2-search--inline .select2-search__field { + margin: 0; + padding-left: 6px; +} +.acf-admin-page .acf-input .select2-container .select2-search--inline .select2-search__field:focus { + outline: none; + border: none; +} +.acf-admin-page .acf-input .select2-container--default .select2-selection--multiple .select2-selection__rendered { + padding-top: 0; + padding-right: 6px; + padding-bottom: 0; + padding-left: 6px; +} +.acf-admin-page .acf-input .select2-selection__clear { + width: 18px; + height: 18px; + margin-top: 12px; + margin-right: 1px; + text-indent: 100%; + white-space: nowrap; + overflow: hidden; + color: #fff; +} +.acf-admin-page .acf-input .select2-selection__clear:before { + content: ""; + display: block; + width: 16px; + height: 16px; + top: 0; + left: 0; + border: none; + border-radius: 0; + -webkit-mask-size: contain; + mask-size: contain; + -webkit-mask-repeat: no-repeat; + mask-repeat: no-repeat; + -webkit-mask-position: center; + mask-position: center; + -webkit-mask-image: url("../../images/icons/icon-close.svg"); + mask-image: url("../../images/icons/icon-close.svg"); + background-color: #98A2B3; +} +.acf-admin-page .acf-input .select2-selection__clear:hover::before { + background-color: #0783BE; +} +.acf-admin-page .acf-label { + display: flex; + align-items: center; + justify-content: space-between; +} +.acf-admin-page .acf-label .acf-icon-help { + width: 18px; + height: 18px; + background-color: #98A2B3; +} +.acf-admin-page .acf-label label { + margin-bottom: 0; +} +.acf-admin-page .acf-label .description { + margin-top: 2px; +} +.acf-admin-page .acf-field-setting-name .acf-tip { + position: absolute; + top: 0; + left: 654px; + color: #98A2B3; +} +.rtl.acf-admin-page .acf-field-setting-name .acf-tip { + left: auto; + right: 654px; +} + +.acf-admin-page .acf-field-setting-name .acf-tip .acf-icon-help { + width: 18px; + height: 18px; +} +.acf-admin-page .acf-field-setting-type .select2-container.-acf, +.acf-admin-page .acf-field-permalink-rewrite .select2-container.-acf, +.acf-admin-page .acf-field-query-var .select2-container.-acf, +.acf-admin-page .acf-field-manage-terms .select2-container.-acf, +.acf-admin-page .acf-field-edit-terms .select2-container.-acf, +.acf-admin-page .acf-field-delete-terms .select2-container.-acf, +.acf-admin-page .acf-field-assign-terms .select2-container.-acf, +.acf-admin-page .acf-field-meta-box .select2-container.-acf { + min-height: 40px; +} +.acf-admin-page .acf-field-setting-type .select2-container--default .select2-selection--single .select2-selection__rendered, +.acf-admin-page .acf-field-permalink-rewrite .select2-container--default .select2-selection--single .select2-selection__rendered, +.acf-admin-page .acf-field-query-var .select2-container--default .select2-selection--single .select2-selection__rendered, +.acf-admin-page .acf-field-manage-terms .select2-container--default .select2-selection--single .select2-selection__rendered, +.acf-admin-page .acf-field-edit-terms .select2-container--default .select2-selection--single .select2-selection__rendered, +.acf-admin-page .acf-field-delete-terms .select2-container--default .select2-selection--single .select2-selection__rendered, +.acf-admin-page .acf-field-assign-terms .select2-container--default .select2-selection--single .select2-selection__rendered, +.acf-admin-page .acf-field-meta-box .select2-container--default .select2-selection--single .select2-selection__rendered { + display: flex; + align-items: center; + position: relative; + z-index: 800; + min-height: 40px; + padding-top: 0; + padding-right: 12px; + padding-bottom: 0; + padding-left: 12px; +} +.acf-admin-page .acf-field-setting-type .select2-container--default .select2-selection--single .field-type-icon, +.acf-admin-page .acf-field-permalink-rewrite .select2-container--default .select2-selection--single .field-type-icon, +.acf-admin-page .acf-field-query-var .select2-container--default .select2-selection--single .field-type-icon, +.acf-admin-page .acf-field-manage-terms .select2-container--default .select2-selection--single .field-type-icon, +.acf-admin-page .acf-field-edit-terms .select2-container--default .select2-selection--single .field-type-icon, +.acf-admin-page .acf-field-delete-terms .select2-container--default .select2-selection--single .field-type-icon, +.acf-admin-page .acf-field-assign-terms .select2-container--default .select2-selection--single .field-type-icon, +.acf-admin-page .acf-field-meta-box .select2-container--default .select2-selection--single .field-type-icon { + top: auto; + width: 18px; + height: 18px; + margin-right: 2px; +} +.acf-admin-page .acf-field-setting-type .select2-container--default .select2-selection--single .field-type-icon:before, +.acf-admin-page .acf-field-permalink-rewrite .select2-container--default .select2-selection--single .field-type-icon:before, +.acf-admin-page .acf-field-query-var .select2-container--default .select2-selection--single .field-type-icon:before, +.acf-admin-page .acf-field-manage-terms .select2-container--default .select2-selection--single .field-type-icon:before, +.acf-admin-page .acf-field-edit-terms .select2-container--default .select2-selection--single .field-type-icon:before, +.acf-admin-page .acf-field-delete-terms .select2-container--default .select2-selection--single .field-type-icon:before, +.acf-admin-page .acf-field-assign-terms .select2-container--default .select2-selection--single .field-type-icon:before, +.acf-admin-page .acf-field-meta-box .select2-container--default .select2-selection--single .field-type-icon:before { + width: 9px; + height: 9px; +} +.acf-admin-page .acf-field-setting-type .select2-container--open .select2-selection__rendered, +.acf-admin-page .acf-field-permalink-rewrite .select2-container--open .select2-selection__rendered, +.acf-admin-page .acf-field-query-var .select2-container--open .select2-selection__rendered, +.acf-admin-page .acf-field-manage-terms .select2-container--open .select2-selection__rendered, +.acf-admin-page .acf-field-edit-terms .select2-container--open .select2-selection__rendered, +.acf-admin-page .acf-field-delete-terms .select2-container--open .select2-selection__rendered, +.acf-admin-page .acf-field-assign-terms .select2-container--open .select2-selection__rendered, +.acf-admin-page .acf-field-meta-box .select2-container--open .select2-selection__rendered { + border-color: #6BB5D8 !important; + border-bottom-color: #D0D5DD !important; +} +.acf-admin-page .acf-field-setting-type .select2-container--open.select2-container--below .select2-selection__rendered, +.acf-admin-page .acf-field-permalink-rewrite .select2-container--open.select2-container--below .select2-selection__rendered, +.acf-admin-page .acf-field-query-var .select2-container--open.select2-container--below .select2-selection__rendered, +.acf-admin-page .acf-field-manage-terms .select2-container--open.select2-container--below .select2-selection__rendered, +.acf-admin-page .acf-field-edit-terms .select2-container--open.select2-container--below .select2-selection__rendered, +.acf-admin-page .acf-field-delete-terms .select2-container--open.select2-container--below .select2-selection__rendered, +.acf-admin-page .acf-field-assign-terms .select2-container--open.select2-container--below .select2-selection__rendered, +.acf-admin-page .acf-field-meta-box .select2-container--open.select2-container--below .select2-selection__rendered { + border-bottom-right-radius: 0 !important; + border-bottom-left-radius: 0 !important; +} +.acf-admin-page .acf-field-setting-type .select2-container--open.select2-container--above .select2-selection__rendered, +.acf-admin-page .acf-field-permalink-rewrite .select2-container--open.select2-container--above .select2-selection__rendered, +.acf-admin-page .acf-field-query-var .select2-container--open.select2-container--above .select2-selection__rendered, +.acf-admin-page .acf-field-manage-terms .select2-container--open.select2-container--above .select2-selection__rendered, +.acf-admin-page .acf-field-edit-terms .select2-container--open.select2-container--above .select2-selection__rendered, +.acf-admin-page .acf-field-delete-terms .select2-container--open.select2-container--above .select2-selection__rendered, +.acf-admin-page .acf-field-assign-terms .select2-container--open.select2-container--above .select2-selection__rendered, +.acf-admin-page .acf-field-meta-box .select2-container--open.select2-container--above .select2-selection__rendered { + border-top-right-radius: 0 !important; + border-top-left-radius: 0 !important; + border-bottom-color: #6BB5D8 !important; + border-top-color: #D0D5DD !important; +} +.acf-admin-page .acf-field-setting-type .acf-selection.has-icon, +.acf-admin-page .acf-field-permalink-rewrite .acf-selection.has-icon, +.acf-admin-page .acf-field-query-var .acf-selection.has-icon, +.acf-admin-page .acf-field-manage-terms .acf-selection.has-icon, +.acf-admin-page .acf-field-edit-terms .acf-selection.has-icon, +.acf-admin-page .acf-field-delete-terms .acf-selection.has-icon, +.acf-admin-page .acf-field-assign-terms .acf-selection.has-icon, +.acf-admin-page .acf-field-meta-box .acf-selection.has-icon { + margin-left: 6px; +} +.rtl.acf-admin-page .acf-field-setting-type .acf-selection.has-icon, .acf-admin-page .acf-field-permalink-rewrite .acf-selection.has-icon, .acf-admin-page .acf-field-query-var .acf-selection.has-icon, .acf-admin-page .acf-field-manage-terms .acf-selection.has-icon, .acf-admin-page .acf-field-edit-terms .acf-selection.has-icon, .acf-admin-page .acf-field-delete-terms .acf-selection.has-icon, .acf-admin-page .acf-field-assign-terms .acf-selection.has-icon, .acf-admin-page .acf-field-meta-box .acf-selection.has-icon { + margin-right: 6px; +} + +.acf-admin-page .acf-field-setting-type .select2-selection__arrow, +.acf-admin-page .acf-field-permalink-rewrite .select2-selection__arrow, +.acf-admin-page .acf-field-query-var .select2-selection__arrow, +.acf-admin-page .acf-field-manage-terms .select2-selection__arrow, +.acf-admin-page .acf-field-edit-terms .select2-selection__arrow, +.acf-admin-page .acf-field-delete-terms .select2-selection__arrow, +.acf-admin-page .acf-field-assign-terms .select2-selection__arrow, +.acf-admin-page .acf-field-meta-box .select2-selection__arrow { + width: 20px; + height: 20px; + top: calc(50% - 10px); + right: 12px; + background-color: transparent; +} +.acf-admin-page .acf-field-setting-type .select2-selection__arrow:after, +.acf-admin-page .acf-field-permalink-rewrite .select2-selection__arrow:after, +.acf-admin-page .acf-field-query-var .select2-selection__arrow:after, +.acf-admin-page .acf-field-manage-terms .select2-selection__arrow:after, +.acf-admin-page .acf-field-edit-terms .select2-selection__arrow:after, +.acf-admin-page .acf-field-delete-terms .select2-selection__arrow:after, +.acf-admin-page .acf-field-assign-terms .select2-selection__arrow:after, +.acf-admin-page .acf-field-meta-box .select2-selection__arrow:after { + content: ""; + display: block; + position: absolute; + z-index: 850; + top: 1px; + left: 0; + width: 20px; + height: 20px; + -webkit-mask-image: url("../../images/icons/icon-chevron-down.svg"); + mask-image: url("../../images/icons/icon-chevron-down.svg"); + background-color: #667085; + border: none; + border-radius: 0; + -webkit-mask-size: contain; + mask-size: contain; + -webkit-mask-repeat: no-repeat; + mask-repeat: no-repeat; + -webkit-mask-position: center; + mask-position: center; + text-indent: 500%; + white-space: nowrap; + overflow: hidden; +} +.acf-admin-page .acf-field-setting-type .select2-selection__arrow b[role=presentation], +.acf-admin-page .acf-field-permalink-rewrite .select2-selection__arrow b[role=presentation], +.acf-admin-page .acf-field-query-var .select2-selection__arrow b[role=presentation], +.acf-admin-page .acf-field-manage-terms .select2-selection__arrow b[role=presentation], +.acf-admin-page .acf-field-edit-terms .select2-selection__arrow b[role=presentation], +.acf-admin-page .acf-field-delete-terms .select2-selection__arrow b[role=presentation], +.acf-admin-page .acf-field-assign-terms .select2-selection__arrow b[role=presentation], +.acf-admin-page .acf-field-meta-box .select2-selection__arrow b[role=presentation] { + display: none; +} +.acf-admin-page .acf-field-setting-type .select2-container--open .select2-selection__arrow:after, +.acf-admin-page .acf-field-permalink-rewrite .select2-container--open .select2-selection__arrow:after, +.acf-admin-page .acf-field-query-var .select2-container--open .select2-selection__arrow:after, +.acf-admin-page .acf-field-manage-terms .select2-container--open .select2-selection__arrow:after, +.acf-admin-page .acf-field-edit-terms .select2-container--open .select2-selection__arrow:after, +.acf-admin-page .acf-field-delete-terms .select2-container--open .select2-selection__arrow:after, +.acf-admin-page .acf-field-assign-terms .select2-container--open .select2-selection__arrow:after, +.acf-admin-page .acf-field-meta-box .select2-container--open .select2-selection__arrow:after { + -webkit-mask-image: url("../../images/icons/icon-chevron-up.svg"); + mask-image: url("../../images/icons/icon-chevron-up.svg"); +} +.acf-admin-page .field-type-select-results { + position: relative; + top: 4px; + z-index: 1002; + border-radius: 0 0 6px 6px; + box-shadow: 0px 8px 24px 4px rgba(16, 24, 40, 0.12); +} +.acf-admin-page .field-type-select-results.select2-dropdown--above { + display: flex; + flex-direction: column-reverse; + top: 0; + border-radius: 6px 6px 0 0; + z-index: 1030; +} +.select2-container.select2-container--open.acf-admin-page .field-type-select-results { + box-shadow: 0px 0px 0px 3px #EBF5FA, 0px 8px 24px 4px rgba(16, 24, 40, 0.12); +} + +.acf-admin-page .field-type-select-results .acf-selection.has-icon { + margin-left: 6px; +} +.rtl.acf-admin-page .field-type-select-results .acf-selection.has-icon { + margin-right: 6px; +} + +.acf-admin-page .field-type-select-results .select2-search { + position: relative; + margin: 0; + padding: 0; +} +.acf-admin-page .field-type-select-results .select2-search--dropdown:after { + content: ""; + display: block; + position: absolute; + top: 12px; + left: 13px; + width: 16px; + height: 16px; + -webkit-mask-image: url("../../images/icons/icon-search.svg"); + mask-image: url("../../images/icons/icon-search.svg"); + background-color: #98A2B3; + border: none; + border-radius: 0; + -webkit-mask-size: contain; + mask-size: contain; + -webkit-mask-repeat: no-repeat; + mask-repeat: no-repeat; + -webkit-mask-position: center; + mask-position: center; + text-indent: 500%; + white-space: nowrap; + overflow: hidden; +} +.rtl.acf-admin-page .field-type-select-results .select2-search--dropdown:after { + right: 12px; + left: auto; +} + +.acf-admin-page .field-type-select-results .select2-search .select2-search__field { + padding-left: 38px; + border-right: 0; + border-bottom: 0; + border-left: 0; + border-radius: 0; +} +.rtl.acf-admin-page .field-type-select-results .select2-search .select2-search__field { + padding-right: 38px; + padding-left: 0; +} + +.acf-admin-page .field-type-select-results .select2-search .select2-search__field:focus { + border-top-color: #D0D5DD; + outline: 0; +} +.acf-admin-page .field-type-select-results .select2-results__options { + max-height: 440px; +} +.acf-admin-page .field-type-select-results .select2-results__option .select2-results__option--highlighted { + background-color: #0783BE !important; + color: #F9FAFB !important; +} +.acf-admin-page .field-type-select-results .select2-results__option .select2-results__option { + display: inline-flex; + position: relative; + width: calc(100% - 24px); + min-height: 32px; + padding-top: 0; + padding-right: 12px; + padding-bottom: 0; + padding-left: 12px; + align-items: center; +} +.acf-admin-page .field-type-select-results .select2-results__option .select2-results__option .field-type-icon { + top: auto; + width: 18px; + height: 18px; + margin-right: 2px; + box-shadow: 0 0 0 1px #F9FAFB; +} +.acf-admin-page .field-type-select-results .select2-results__option .select2-results__option .field-type-icon:before { + width: 9px; + height: 9px; +} +.acf-admin-page .field-type-select-results .select2-results__option[aria-selected=true] { + background-color: #EBF5FA !important; + color: #344054 !important; +} +.acf-admin-page .field-type-select-results .select2-results__option[aria-selected=true]:after { + content: ""; + right: 13px; + position: absolute; + width: 16px; + height: 16px; + -webkit-mask-image: url("../../images/icons/icon-check.svg"); + mask-image: url("../../images/icons/icon-check.svg"); + background-color: #0783BE; + border: none; + border-radius: 0; + -webkit-mask-size: contain; + mask-size: contain; + -webkit-mask-repeat: no-repeat; + mask-repeat: no-repeat; + -webkit-mask-position: center; + mask-position: center; + text-indent: 500%; + white-space: nowrap; + overflow: hidden; +} +.rtl.acf-admin-page .field-type-select-results .select2-results__option[aria-selected=true]:after { + left: 13px; + right: auto; +} + +.acf-admin-page .field-type-select-results .select2-results__group { + display: inline-flex; + align-items: center; + width: calc(100% - 24px); + min-height: 25px; + background-color: #F9FAFB; + border-top-width: 1px; + border-top-style: solid; + border-top-color: #EAECF0; + border-bottom-width: 1px; + border-bottom-style: solid; + border-bottom-color: #EAECF0; + color: #98A2B3; + font-size: 11px; + margin-bottom: 0; + padding-top: 0; + padding-right: 12px; + padding-bottom: 0; + padding-left: 12px; + font-weight: normal; +} +.acf-admin-page.rtl .acf-field-setting-type .select2-selection__arrow:after, +.acf-admin-page.rtl .acf-field-permalink-rewrite .select2-selection__arrow:after, +.acf-admin-page.rtl .acf-field-query-var .select2-selection__arrow:after { + right: auto; + left: 10px; +} + +.rtl.post-type-acf-field-group .acf-field-setting-name .acf-tip, +.rtl.acf-internal-post-type .acf-field-setting-name .acf-tip { + left: auto; + right: 654px; +} + +/*--------------------------------------------------------------------------------------------- +* +* Field Groups +* +*---------------------------------------------------------------------------------------------*/ +.acf-internal-post-type .tablenav.top { + display: none; +} +.acf-internal-post-type .subsubsub { + margin-bottom: 3px; +} +.acf-internal-post-type .wp-list-table { + margin-top: 0; + margin-right: 0; + margin-bottom: 0; + margin-left: 0; + border-radius: 8px; + border: none; + overflow: hidden; + box-shadow: 0px 1px 2px rgba(16, 24, 40, 0.1); +} +.acf-internal-post-type .wp-list-table strong { + color: #98A2B3; + margin: 0; +} +.acf-internal-post-type .wp-list-table a.row-title { + font-size: 13px !important; + font-weight: 500; +} +.acf-internal-post-type .wp-list-table th, +.acf-internal-post-type .wp-list-table td { + color: #344054; +} +.acf-internal-post-type .wp-list-table th.sortable a, +.acf-internal-post-type .wp-list-table td.sortable a { + padding: 0; +} +.acf-internal-post-type .wp-list-table th.check-column, +.acf-internal-post-type .wp-list-table td.check-column { + padding-top: 12px; + padding-right: 16px; + padding-left: 16px; +} +@media screen and (max-width: 880px) { + .acf-internal-post-type .wp-list-table th.check-column, + .acf-internal-post-type .wp-list-table td.check-column { + vertical-align: top; + padding-right: 2px; + padding-left: 10px; + } +} +.acf-internal-post-type .wp-list-table th input, +.acf-internal-post-type .wp-list-table td input { + margin: 0; + padding: 0; +} +.acf-internal-post-type .wp-list-table th .acf-more-items, +.acf-internal-post-type .wp-list-table td .acf-more-items { + display: inline-flex; + flex-direction: row; + justify-content: center; + align-items: center; + padding: 0px 6px 1px; + gap: 8px; + width: 25px; + height: 16px; + background: #EAECF0; + border-radius: 100px; + font-weight: 400; + font-size: 10px; + color: #475467; +} +.acf-internal-post-type .wp-list-table th .acf-emdash, +.acf-internal-post-type .wp-list-table td .acf-emdash { + color: #D0D5DD; +} +.acf-internal-post-type .wp-list-table thead th, .acf-internal-post-type .wp-list-table thead td, +.acf-internal-post-type .wp-list-table tfoot th, .acf-internal-post-type .wp-list-table tfoot td { + height: 48px; + padding-right: 24px; + padding-left: 24px; + box-sizing: border-box; + background-color: #F9FAFB; + border-color: #EAECF0; + font-weight: 500; +} +@media screen and (max-width: 880px) { + .acf-internal-post-type .wp-list-table thead th, .acf-internal-post-type .wp-list-table thead td, + .acf-internal-post-type .wp-list-table tfoot th, .acf-internal-post-type .wp-list-table tfoot td { + padding-right: 16px; + padding-left: 8px; + } +} +@media screen and (max-width: 880px) { + .acf-internal-post-type .wp-list-table thead th.check-column, .acf-internal-post-type .wp-list-table thead td.check-column, + .acf-internal-post-type .wp-list-table tfoot th.check-column, .acf-internal-post-type .wp-list-table tfoot td.check-column { + vertical-align: middle; + } +} +.acf-internal-post-type .wp-list-table tbody th, +.acf-internal-post-type .wp-list-table tbody td { + box-sizing: border-box; + height: 60px; + padding-top: 10px; + padding-right: 24px; + padding-bottom: 10px; + padding-left: 24px; + vertical-align: top; + background-color: #fff; + border-bottom-width: 1px; + border-bottom-color: #EAECF0; + border-bottom-style: solid; +} +@media screen and (max-width: 880px) { + .acf-internal-post-type .wp-list-table tbody th, + .acf-internal-post-type .wp-list-table tbody td { + padding-right: 16px; + padding-left: 8px; + } +} +.acf-internal-post-type .wp-list-table .column-acf-key { + white-space: nowrap; +} +.acf-internal-post-type .wp-list-table .column-acf-key .acf-icon-key-solid { + display: inline-block; + position: relative; + bottom: -2px; + width: 15px; + height: 15px; + margin-right: 4px; + color: #98A2B3; +} +.acf-internal-post-type .wp-list-table .acf-location .dashicons { + position: relative; + bottom: -2px; + width: 16px; + height: 16px; + margin-right: 6px; + font-size: 16px; + color: #98A2B3; +} +.acf-internal-post-type .wp-list-table .post-state { + color: #667085; +} +.acf-internal-post-type .wp-list-table tr:hover, +.acf-internal-post-type .wp-list-table tr:focus-within { + background: #f7f7f7; +} +.acf-internal-post-type .wp-list-table tr:hover .row-actions, +.acf-internal-post-type .wp-list-table tr:focus-within .row-actions { + margin-bottom: 0; +} +@media screen and (min-width: 782px) { + .acf-internal-post-type .wp-list-table .column-acf-count { + width: 10%; + } +} +.acf-internal-post-type .wp-list-table .row-actions span.file { + display: block; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +.acf-internal-post-type.rtl .wp-list-table .column-acf-key .acf-icon-key-solid { + margin-left: 4px; + margin-right: 0; +} +.acf-internal-post-type.rtl .wp-list-table .acf-location .dashicons { + margin-left: 6px; + margin-right: 0; +} +.acf-internal-post-type .row-actions { + margin-top: 2px; + padding-top: 0; + padding-right: 0; + padding-bottom: 0; + padding-left: 0; + line-height: 14px; + color: #D0D5DD; +} +.acf-internal-post-type .row-actions .trash a { + color: #d94f4f; +} +.acf-internal-post-type .widefat thead td.check-column, +.acf-internal-post-type .widefat tfoot td.check-column { + padding-top: 0; +} + +/*-------------------------------------------------------------------------------------------- +* +* Row actions +* +*--------------------------------------------------------------------------------------------*/ +.acf-internal-post-type .row-actions a:hover { + color: #044767; +} +.acf-internal-post-type .row-actions .trash a { + color: #a00; +} +.acf-internal-post-type .row-actions .trash a:hover { + color: #f00; +} +.acf-internal-post-type .row-actions.visible { + margin-bottom: 0; + opacity: 1; +} + +/*-------------------------------------------------------------------------------------------- +* +* Row hover +* +*--------------------------------------------------------------------------------------------*/ +.acf-internal-post-type #the-list tr:hover td, +.acf-internal-post-type #the-list tr:hover th { + background-color: #f7fbfd; +} + +/*--------------------------------------------------------------------------------------------- +* +* Table Nav +* +*---------------------------------------------------------------------------------------------*/ +.acf-internal-post-type .tablenav { + margin-top: 24px; + margin-right: 0; + margin-bottom: 0; + margin-left: 0; + padding-top: 0; + padding-right: 0; + padding-bottom: 0; + padding-left: 0; + color: #667085; +} + +/*-------------------------------------------------------------------------------------------- +* +* Search box +* +*--------------------------------------------------------------------------------------------*/ +.acf-internal-post-type #posts-filter p.search-box { + margin-top: 5px; + margin-right: 0; + margin-bottom: 24px; + margin-left: 0; +} +.acf-internal-post-type #posts-filter p.search-box #post-search-input { + min-width: 280px; + margin-top: 0; + margin-right: 8px; + margin-bottom: 0; + margin-left: 0; +} +@media screen and (max-width: 768px) { + .acf-internal-post-type #posts-filter p.search-box { + display: flex; + box-sizing: border-box; + padding-right: 24px; + margin-right: 16px; + position: inherit; + } + .acf-internal-post-type #posts-filter p.search-box #post-search-input { + min-width: auto; + } +} + +.rtl.acf-internal-post-type #posts-filter p.search-box #post-search-input { + margin-right: 0; + margin-left: 8px; +} +@media screen and (max-width: 768px) { + .rtl.acf-internal-post-type #posts-filter p.search-box { + padding-left: 24px; + padding-right: 0; + margin-left: 16px; + margin-right: 0; + } +} + +/*-------------------------------------------------------------------------------------------- +* +* Status tabs +* +*--------------------------------------------------------------------------------------------*/ +.acf-internal-post-type .subsubsub { + display: flex; + align-items: flex-end; + height: 40px; + margin-bottom: 16px; +} +.acf-internal-post-type .subsubsub li { + margin-top: 0; + margin-right: 4px; + color: #98A2B3; +} +.acf-internal-post-type .subsubsub li .count { + color: #667085; +} + +/*-------------------------------------------------------------------------------------------- +* +* Pagination +* +*--------------------------------------------------------------------------------------------*/ +.acf-internal-post-type .tablenav-pages { + display: flex; + align-items: center; +} +.acf-internal-post-type .tablenav-pages.no-pages { + display: none; +} +.acf-internal-post-type .tablenav-pages .displaying-num { + margin-top: 0; + margin-right: 16px; + margin-bottom: 0; + margin-left: 0; +} +.acf-internal-post-type .tablenav-pages .pagination-links { + display: flex; + align-items: center; +} +.acf-internal-post-type .tablenav-pages .pagination-links #table-paging { + margin-top: 0; + margin-right: 4px; + margin-bottom: 0; + margin-left: 8px; +} +.acf-internal-post-type .tablenav-pages .pagination-links #table-paging .total-pages { + margin-right: 0; +} +.acf-internal-post-type .tablenav-pages.one-page .pagination-links { + display: none; +} + +/*-------------------------------------------------------------------------------------------- +* +* Pagination buttons & icons +* +*--------------------------------------------------------------------------------------------*/ +.acf-internal-post-type .tablenav-pages .pagination-links .button { + display: inline-flex; + align-items: center; + align-content: center; + justify-content: center; + min-width: 40px; + margin-top: 0; + margin-right: 0; + margin-bottom: 0; + margin-left: 0; + padding-top: 0; + padding-right: 0; + padding-bottom: 0; + padding-left: 0; + background-color: transparent; +} +.acf-internal-post-type .tablenav-pages .pagination-links .button:nth-child(1), .acf-internal-post-type .tablenav-pages .pagination-links .button:nth-child(2), .acf-internal-post-type .tablenav-pages .pagination-links .button:last-child, .acf-internal-post-type .tablenav-pages .pagination-links .button:nth-last-child(2) { + display: inline-block; + position: relative; + text-indent: 100%; + white-space: nowrap; + overflow: hidden; + margin-left: 4px; +} +.acf-internal-post-type .tablenav-pages .pagination-links .button:nth-child(1):before, .acf-internal-post-type .tablenav-pages .pagination-links .button:nth-child(2):before, .acf-internal-post-type .tablenav-pages .pagination-links .button:last-child:before, .acf-internal-post-type .tablenav-pages .pagination-links .button:nth-last-child(2):before { + content: ""; + display: block; + position: absolute; + width: 100%; + height: 100%; + top: 0; + left: 0; + background-color: #0783BE; + border-radius: 0; + -webkit-mask-size: 20px; + mask-size: 20px; + -webkit-mask-repeat: no-repeat; + mask-repeat: no-repeat; + -webkit-mask-position: center; + mask-position: center; +} +.acf-internal-post-type .tablenav-pages .pagination-links .button:nth-child(1):before { + -webkit-mask-image: url("../../images/icons/icon-chevron-left-double.svg"); + mask-image: url("../../images/icons/icon-chevron-left-double.svg"); +} +.acf-internal-post-type .tablenav-pages .pagination-links .button:nth-child(2):before { + -webkit-mask-image: url("../../images/icons/icon-chevron-left.svg"); + mask-image: url("../../images/icons/icon-chevron-left.svg"); +} +.acf-internal-post-type .tablenav-pages .pagination-links .button:nth-last-child(2):before { + -webkit-mask-image: url("../../images/icons/icon-chevron-right.svg"); + mask-image: url("../../images/icons/icon-chevron-right.svg"); +} +.acf-internal-post-type .tablenav-pages .pagination-links .button:last-child:before { + -webkit-mask-image: url("../../images/icons/icon-chevron-right-double.svg"); + mask-image: url("../../images/icons/icon-chevron-right-double.svg"); +} +.acf-internal-post-type .tablenav-pages .pagination-links .button:hover { + border-color: #066998; + background-color: rgba(7, 131, 190, 0.05); +} +.acf-internal-post-type .tablenav-pages .pagination-links .button:hover:before { + background-color: #066998; +} +.acf-internal-post-type .tablenav-pages .pagination-links .button.disabled { + background-color: transparent !important; +} +.acf-internal-post-type .tablenav-pages .pagination-links .button.disabled.disabled:before { + background-color: #D0D5DD; +} + +/*--------------------------------------------------------------------------------------------- +* +* Empty state +* +*---------------------------------------------------------------------------------------------*/ +.acf-no-field-groups-wrapper, +.acf-no-taxonomies-wrapper, +.acf-no-post-types-wrapper { + display: flex; + justify-content: center; + padding-top: 48px; + padding-bottom: 48px; +} +.acf-no-field-groups-wrapper .acf-no-field-groups-inner, +.acf-no-field-groups-wrapper .acf-no-taxonomies-inner, +.acf-no-field-groups-wrapper .acf-no-post-types-inner, +.acf-no-taxonomies-wrapper .acf-no-field-groups-inner, +.acf-no-taxonomies-wrapper .acf-no-taxonomies-inner, +.acf-no-taxonomies-wrapper .acf-no-post-types-inner, +.acf-no-post-types-wrapper .acf-no-field-groups-inner, +.acf-no-post-types-wrapper .acf-no-taxonomies-inner, +.acf-no-post-types-wrapper .acf-no-post-types-inner { + display: flex; + flex-wrap: wrap; + justify-content: center; + align-content: center; + align-items: flex-start; + text-align: center; + max-width: 380px; + min-height: 320px; +} +.acf-no-field-groups-wrapper .acf-no-field-groups-inner img, +.acf-no-field-groups-wrapper .acf-no-field-groups-inner h2, +.acf-no-field-groups-wrapper .acf-no-field-groups-inner p, +.acf-no-field-groups-wrapper .acf-no-taxonomies-inner img, +.acf-no-field-groups-wrapper .acf-no-taxonomies-inner h2, +.acf-no-field-groups-wrapper .acf-no-taxonomies-inner p, +.acf-no-field-groups-wrapper .acf-no-post-types-inner img, +.acf-no-field-groups-wrapper .acf-no-post-types-inner h2, +.acf-no-field-groups-wrapper .acf-no-post-types-inner p, +.acf-no-taxonomies-wrapper .acf-no-field-groups-inner img, +.acf-no-taxonomies-wrapper .acf-no-field-groups-inner h2, +.acf-no-taxonomies-wrapper .acf-no-field-groups-inner p, +.acf-no-taxonomies-wrapper .acf-no-taxonomies-inner img, +.acf-no-taxonomies-wrapper .acf-no-taxonomies-inner h2, +.acf-no-taxonomies-wrapper .acf-no-taxonomies-inner p, +.acf-no-taxonomies-wrapper .acf-no-post-types-inner img, +.acf-no-taxonomies-wrapper .acf-no-post-types-inner h2, +.acf-no-taxonomies-wrapper .acf-no-post-types-inner p, +.acf-no-post-types-wrapper .acf-no-field-groups-inner img, +.acf-no-post-types-wrapper .acf-no-field-groups-inner h2, +.acf-no-post-types-wrapper .acf-no-field-groups-inner p, +.acf-no-post-types-wrapper .acf-no-taxonomies-inner img, +.acf-no-post-types-wrapper .acf-no-taxonomies-inner h2, +.acf-no-post-types-wrapper .acf-no-taxonomies-inner p, +.acf-no-post-types-wrapper .acf-no-post-types-inner img, +.acf-no-post-types-wrapper .acf-no-post-types-inner h2, +.acf-no-post-types-wrapper .acf-no-post-types-inner p { + flex: 1 0 100%; +} +.acf-no-field-groups-wrapper .acf-no-field-groups-inner h2, +.acf-no-field-groups-wrapper .acf-no-taxonomies-inner h2, +.acf-no-field-groups-wrapper .acf-no-post-types-inner h2, +.acf-no-taxonomies-wrapper .acf-no-field-groups-inner h2, +.acf-no-taxonomies-wrapper .acf-no-taxonomies-inner h2, +.acf-no-taxonomies-wrapper .acf-no-post-types-inner h2, +.acf-no-post-types-wrapper .acf-no-field-groups-inner h2, +.acf-no-post-types-wrapper .acf-no-taxonomies-inner h2, +.acf-no-post-types-wrapper .acf-no-post-types-inner h2 { + margin-top: 32px; + margin-bottom: 0; + padding: 0; + color: #344054; +} +.acf-no-field-groups-wrapper .acf-no-field-groups-inner p, +.acf-no-field-groups-wrapper .acf-no-taxonomies-inner p, +.acf-no-field-groups-wrapper .acf-no-post-types-inner p, +.acf-no-taxonomies-wrapper .acf-no-field-groups-inner p, +.acf-no-taxonomies-wrapper .acf-no-taxonomies-inner p, +.acf-no-taxonomies-wrapper .acf-no-post-types-inner p, +.acf-no-post-types-wrapper .acf-no-field-groups-inner p, +.acf-no-post-types-wrapper .acf-no-taxonomies-inner p, +.acf-no-post-types-wrapper .acf-no-post-types-inner p { + margin-top: 12px; + margin-bottom: 0; + padding: 0; + color: #667085; +} +.acf-no-field-groups-wrapper .acf-no-field-groups-inner p.acf-small, +.acf-no-field-groups-wrapper .acf-no-taxonomies-inner p.acf-small, +.acf-no-field-groups-wrapper .acf-no-post-types-inner p.acf-small, +.acf-no-taxonomies-wrapper .acf-no-field-groups-inner p.acf-small, +.acf-no-taxonomies-wrapper .acf-no-taxonomies-inner p.acf-small, +.acf-no-taxonomies-wrapper .acf-no-post-types-inner p.acf-small, +.acf-no-post-types-wrapper .acf-no-field-groups-inner p.acf-small, +.acf-no-post-types-wrapper .acf-no-taxonomies-inner p.acf-small, +.acf-no-post-types-wrapper .acf-no-post-types-inner p.acf-small { + display: block; + position: relative; + margin-top: 32px; +} +.acf-no-field-groups-wrapper .acf-no-field-groups-inner img, +.acf-no-field-groups-wrapper .acf-no-taxonomies-inner img, +.acf-no-field-groups-wrapper .acf-no-post-types-inner img, +.acf-no-taxonomies-wrapper .acf-no-field-groups-inner img, +.acf-no-taxonomies-wrapper .acf-no-taxonomies-inner img, +.acf-no-taxonomies-wrapper .acf-no-post-types-inner img, +.acf-no-post-types-wrapper .acf-no-field-groups-inner img, +.acf-no-post-types-wrapper .acf-no-taxonomies-inner img, +.acf-no-post-types-wrapper .acf-no-post-types-inner img { + max-width: 284px; + margin-bottom: 0; +} +.acf-no-field-groups-wrapper .acf-no-field-groups-inner .acf-btn, +.acf-no-field-groups-wrapper .acf-no-taxonomies-inner .acf-btn, +.acf-no-field-groups-wrapper .acf-no-post-types-inner .acf-btn, +.acf-no-taxonomies-wrapper .acf-no-field-groups-inner .acf-btn, +.acf-no-taxonomies-wrapper .acf-no-taxonomies-inner .acf-btn, +.acf-no-taxonomies-wrapper .acf-no-post-types-inner .acf-btn, +.acf-no-post-types-wrapper .acf-no-field-groups-inner .acf-btn, +.acf-no-post-types-wrapper .acf-no-taxonomies-inner .acf-btn, +.acf-no-post-types-wrapper .acf-no-post-types-inner .acf-btn { + margin-top: 32px; +} +.acf-no-field-groups-wrapper .acf-no-post-types-inner img, +.acf-no-taxonomies-wrapper .acf-no-post-types-inner img, +.acf-no-post-types-wrapper .acf-no-post-types-inner img { + width: 106px; + height: 88px; +} +.acf-no-field-groups-wrapper .acf-no-taxonomies-inner img, +.acf-no-taxonomies-wrapper .acf-no-taxonomies-inner img, +.acf-no-post-types-wrapper .acf-no-taxonomies-inner img { + width: 98px; + height: 88px; +} + +.acf-no-field-groups #the-list tr:hover td, +.acf-no-field-groups #the-list tr:hover th, +.acf-no-field-groups .acf-admin-field-groups .wp-list-table tr:hover, +.acf-no-field-groups .striped > tbody > :nth-child(odd), .acf-no-field-groups ul.striped > :nth-child(odd), .acf-no-field-groups .alternate, +.acf-no-post-types #the-list tr:hover td, +.acf-no-post-types #the-list tr:hover th, +.acf-no-post-types .acf-admin-field-groups .wp-list-table tr:hover, +.acf-no-post-types .striped > tbody > :nth-child(odd), +.acf-no-post-types ul.striped > :nth-child(odd), +.acf-no-post-types .alternate, +.acf-no-taxonomies #the-list tr:hover td, +.acf-no-taxonomies #the-list tr:hover th, +.acf-no-taxonomies .acf-admin-field-groups .wp-list-table tr:hover, +.acf-no-taxonomies .striped > tbody > :nth-child(odd), +.acf-no-taxonomies ul.striped > :nth-child(odd), +.acf-no-taxonomies .alternate { + background-color: transparent !important; +} +.acf-no-field-groups .wp-list-table thead, +.acf-no-field-groups .wp-list-table tfoot, +.acf-no-post-types .wp-list-table thead, +.acf-no-post-types .wp-list-table tfoot, +.acf-no-taxonomies .wp-list-table thead, +.acf-no-taxonomies .wp-list-table tfoot { + display: none; +} + +.acf-internal-post-type #the-list .no-items td { + vertical-align: middle; +} + +/*--------------------------------------------------------------------------------------------- +* +* Small screen list table info toggle +* +*---------------------------------------------------------------------------------------------*/ +.acf-internal-post-type .wp-list-table .toggle-row:before { + top: 4px; + left: 16px; + border-radius: 0; + content: ""; + display: block; + position: absolute; + width: 16px; + height: 16px; + background-color: #0783BE; + border-radius: 0; + -webkit-mask-size: 20px; + mask-size: 20px; + -webkit-mask-repeat: no-repeat; + mask-repeat: no-repeat; + -webkit-mask-position: center; + mask-position: center; + -webkit-mask-image: url("../../images/icons/icon-chevron-down.svg"); + mask-image: url("../../images/icons/icon-chevron-down.svg"); + text-indent: 100%; + white-space: nowrap; + overflow: hidden; +} +.acf-internal-post-type .wp-list-table .is-expanded .toggle-row:before { + -webkit-mask-image: url("../../images/icons/icon-chevron-up.svg"); + mask-image: url("../../images/icons/icon-chevron-up.svg"); +} + +/*--------------------------------------------------------------------------------------------- +* +* Small screen checkbox +* +*---------------------------------------------------------------------------------------------*/ +@media screen and (max-width: 880px) { + .acf-internal-post-type .widefat th input[type=checkbox], + .acf-internal-post-type .widefat thead td input[type=checkbox], + .acf-internal-post-type .widefat tfoot td input[type=checkbox] { + margin-bottom: 0; + } +} + +/*--------------------------------------------------------------------------------------------- +* +* Admin Navigation +* +*---------------------------------------------------------------------------------------------*/ +.acf-admin-toolbar { + position: unset; + top: 32px; + height: 72px; + z-index: 800; + background: #344054; + color: #98A2B3; +} +.acf-admin-toolbar .acf-admin-toolbar-inner { + display: flex; + justify-content: space-between; + align-content: center; + align-items: center; + max-width: 100%; +} +.acf-admin-toolbar .acf-admin-toolbar-inner .acf-nav-wrap { + display: flex; + align-items: center; +} +.acf-admin-toolbar .acf-admin-toolbar-inner .acf-nav-upgrade-wrap { + display: flex; + align-items: center; +} +.acf-admin-toolbar .acf-admin-toolbar-inner .acf-nav-wpengine-logo { + display: inline-flex; + margin-left: 24px; +} +@media screen and (max-width: 1465px) { + .acf-admin-toolbar .acf-admin-toolbar-inner .acf-nav-wpengine-logo { + display: none; + } +} +@media screen and (max-width: 880px) { + .acf-admin-toolbar { + position: static; + } +} +.acf-admin-toolbar .acf-logo { + display: flex; + margin-right: 24px; + text-decoration: none; +} +.acf-admin-toolbar .acf-logo .acf-pro-label { + margin-left: 8px; +} +.acf-admin-toolbar .acf-logo img { + display: block; + max-width: 55px; + line-height: 0%; +} +.acf-admin-toolbar h2 { + display: none; + color: #F9FAFB; +} +.acf-admin-toolbar .acf-tab { + display: flex; + align-items: center; + box-sizing: border-box; + min-height: 40px; + margin-right: 8px; + padding-top: 8px; + padding-right: 16px; + padding-bottom: 8px; + padding-left: 16px; + border-width: 1px; + border-style: solid; + border-color: transparent; + border-radius: 6px; + color: #98A2B3; + text-decoration: none; +} +.acf-admin-toolbar .acf-tab.is-active { + background-color: #475467; + color: #fff; +} +.acf-admin-toolbar .acf-tab:hover { + background-color: #475467; + color: #F9FAFB; +} +.acf-admin-toolbar .acf-tab:focus-visible { + border-width: 1px; + border-style: solid; + border-color: #667085; +} +.acf-admin-toolbar .acf-tab:focus { + box-shadow: none; +} +.acf-admin-toolbar .acf-more:hover .acf-tab.acf-more-tab { + background-color: #475467; + color: #F9FAFB; +} +.acf-admin-toolbar .acf-more ul { + display: none; + position: absolute; + box-sizing: border-box; + background: #fff; + z-index: 1051; + overflow: hidden; + min-width: 280px; + margin-top: 0; + margin-right: 0; + margin-bottom: 0; + margin-left: 0; + padding-top: 0; + padding-right: 16px; + padding-bottom: 0; + padding-left: 16px; + border-radius: 8px; + box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.04), 0px 8px 23px rgba(0, 0, 0, 0.12); +} +.acf-admin-toolbar .acf-more ul li { + margin: 0; + padding: 0; +} +.acf-admin-toolbar .acf-more ul li a { + margin: 0; + padding: 0; + color: #1D2939; + border-radius: 0; + border-bottom-width: 1px; + border-bottom-style: solid; + border-bottom-color: #F2F4F7; +} +.acf-admin-toolbar .acf-more ul li a:hover, .acf-admin-toolbar .acf-more ul li a.acf-tab.is-active { + background-color: unset; + color: #0783BE; +} +.acf-admin-toolbar .acf-more ul li a i.acf-icon { + display: none !important; + width: 16px; + height: 16px; + -webkit-mask-size: 16px; + mask-size: 16px; + background-color: #98A2B3 !important; +} +.acf-admin-toolbar .acf-more ul li:last-child a { + border-bottom: none; +} +.acf-admin-toolbar .acf-more ul:hover, .acf-admin-toolbar .acf-more ul:focus { + display: block; +} +.acf-admin-toolbar .acf-more:hover ul, .acf-admin-toolbar .acf-more:focus ul { + display: block; +} +#wpcontent .acf-admin-toolbar { + box-sizing: border-box; + margin-left: -20px; + padding-top: 16px; + padding-right: 32px; + padding-bottom: 16px; + padding-left: 32px; +} +@media screen and (max-width: 600px) { + .acf-admin-toolbar { + display: none; + } +} + +.acf-internal-post-type.post-php .acf-admin-toolbar .acf-admin-toolbar-inner { + max-width: 1440px; +} + +.rtl #wpcontent .acf-admin-toolbar { + margin-left: 0; + margin-right: -20px; +} +.rtl #wpcontent .acf-admin-toolbar .acf-tab { + margin-left: 8px; + margin-right: 0; +} +.rtl .acf-logo { + margin-right: 0; + margin-left: 32px; +} + +/*--------------------------------------------------------------------------------------------- +* +* Admin Toolbar Icons +* +*---------------------------------------------------------------------------------------------*/ +.acf-admin-toolbar .acf-tab i.acf-icon, +.acf-admin-toolbar .acf-more i.acf-icon { + display: none; + margin-right: 8px; + margin-left: -2px; +} +.acf-admin-toolbar .acf-tab i.acf-icon.acf-icon-dropdown, +.acf-admin-toolbar .acf-more i.acf-icon.acf-icon-dropdown { + -webkit-mask-image: url("../../images/icons/icon-chevron-down.svg"); + mask-image: url("../../images/icons/icon-chevron-down.svg"); + width: 16px; + height: 16px; + -webkit-mask-size: 16px; + mask-size: 16px; + margin-right: -6px; + margin-left: 6px; +} +.acf-admin-toolbar .acf-tab.acf-header-tab-acf-field-group i.acf-icon, .acf-admin-toolbar .acf-tab.acf-header-tab-acf-post-type i.acf-icon, .acf-admin-toolbar .acf-tab.acf-header-tab-acf-taxonomy i.acf-icon, .acf-admin-toolbar .acf-tab.acf-header-tab-acf-tools i.acf-icon, .acf-admin-toolbar .acf-tab.acf-header-tab-acf-settings-updates i.acf-icon, .acf-admin-toolbar .acf-tab.acf-header-tab-acf-more i.acf-icon, +.acf-admin-toolbar .acf-more.acf-header-tab-acf-field-group i.acf-icon, +.acf-admin-toolbar .acf-more.acf-header-tab-acf-post-type i.acf-icon, +.acf-admin-toolbar .acf-more.acf-header-tab-acf-taxonomy i.acf-icon, +.acf-admin-toolbar .acf-more.acf-header-tab-acf-tools i.acf-icon, +.acf-admin-toolbar .acf-more.acf-header-tab-acf-settings-updates i.acf-icon, +.acf-admin-toolbar .acf-more.acf-header-tab-acf-more i.acf-icon { + display: inline-flex; +} +.acf-admin-toolbar .acf-tab.is-active i.acf-icon, .acf-admin-toolbar .acf-tab:hover i.acf-icon, +.acf-admin-toolbar .acf-more.is-active i.acf-icon, +.acf-admin-toolbar .acf-more:hover i.acf-icon { + background-color: #EAECF0; +} +.rtl .acf-admin-toolbar .acf-tab i.acf-icon { + margin-right: -2px; + margin-left: 8px; +} +.acf-admin-toolbar .acf-header-tab-acf-field-group i.acf-icon { + -webkit-mask-image: url("../../images/icons/icon-field-groups.svg"); + mask-image: url("../../images/icons/icon-field-groups.svg"); +} +.acf-admin-toolbar .acf-header-tab-acf-post-type i.acf-icon { + -webkit-mask-image: url("../../images/icons/icon-post-type.svg"); + mask-image: url("../../images/icons/icon-post-type.svg"); +} +.acf-admin-toolbar .acf-header-tab-acf-taxonomy i.acf-icon { + -webkit-mask-image: url("../../images/icons/icon-taxonomies.svg"); + mask-image: url("../../images/icons/icon-taxonomies.svg"); +} +.acf-admin-toolbar .acf-header-tab-acf-tools i.acf-icon { + -webkit-mask-image: url("../../images/icons/icon-tools.svg"); + mask-image: url("../../images/icons/icon-tools.svg"); +} +.acf-admin-toolbar .acf-header-tab-acf-settings-updates i.acf-icon { + -webkit-mask-image: url("../../images/icons/icon-updates.svg"); + mask-image: url("../../images/icons/icon-updates.svg"); +} +.acf-admin-toolbar .acf-header-tab-acf-more i.acf-icon-more { + -webkit-mask-image: url("../../images/icons/icon-extended-menu.svg"); + mask-image: url("../../images/icons/icon-extended-menu.svg"); +} + +/*--------------------------------------------------------------------------------------------- +* +* Hide WP default controls +* +*---------------------------------------------------------------------------------------------*/ +.acf-admin-page h1.wp-heading-inline { + display: none; +} +.acf-admin-page .wrap .wp-heading-inline + .page-title-action { + display: none; +} + +/*--------------------------------------------------------------------------------------------- +* +* Headerbar +* +*---------------------------------------------------------------------------------------------*/ +.acf-headerbar { + display: flex; + align-items: center; + position: sticky; + top: 32px; + z-index: 700; + box-sizing: border-box; + min-height: 72px; + margin-left: -20px; + padding-top: 8px; + padding-right: 32px; + padding-bottom: 8px; + padding-left: 32px; + background-color: #fff; + box-shadow: 0px 1px 2px rgba(16, 24, 40, 0.1); +} +.acf-headerbar .acf-headerbar-inner { + flex: 1 1 auto; + display: flex; + align-items: center; + justify-content: space-between; + max-width: 1440px; +} +.acf-headerbar .acf-page-title { + margin-top: 0; + margin-right: 16px; + margin-bottom: 0; + margin-left: 0; + padding-top: 0; + padding-right: 0; + padding-bottom: 0; + padding-left: 0; +} +@media screen and (max-width: 880px) { + .acf-headerbar { + position: static; + } +} +@media screen and (max-width: 600px) { + .acf-headerbar { + justify-content: space-between; + position: relative; + top: 46px; + min-height: 64px; + padding-right: 12px; + } +} +.acf-headerbar .acf-headerbar-content { + flex: 1 1 auto; + display: flex; + align-items: center; +} +@media screen and (max-width: 880px) { + .acf-headerbar .acf-headerbar-content { + flex-wrap: wrap; + } + .acf-headerbar .acf-headerbar-content .acf-headerbar-title, + .acf-headerbar .acf-headerbar-content .acf-title-wrap { + flex: 1 1 100%; + } + .acf-headerbar .acf-headerbar-content .acf-title-wrap { + margin-top: 8px; + } +} +.acf-headerbar .acf-input-error { + border: 1px rgba(209, 55, 55, 0.5) solid !important; + box-shadow: 0px 0px 0px 3px rgba(209, 55, 55, 0.12), 0px 0px 0px rgba(255, 54, 54, 0.25) !important; + background-image: url("../../images/icons/icon-warning-alt-red.svg"); + background-position: right 10px top 50%; + background-size: 20px; + background-repeat: no-repeat; +} +.acf-headerbar .acf-input-error:focus { + outline: none !important; + border: 1px rgba(209, 55, 55, 0.8) solid !important; + box-shadow: 0px 0px 0px 3px rgba(209, 55, 55, 0.16), 0px 0px 0px rgba(255, 54, 54, 0.25) !important; +} +.acf-headerbar .acf-headerbar-title-field { + min-width: 320px; +} +@media screen and (max-width: 880px) { + .acf-headerbar .acf-headerbar-title-field { + min-width: 100%; + } +} +.acf-headerbar .acf-headerbar-actions { + display: flex; +} +.acf-headerbar .acf-headerbar-actions .acf-btn { + margin-left: 8px; +} +.acf-headerbar .acf-headerbar-actions .disabled { + background-color: #F2F4F7; + color: #98A2B3 !important; + border: 1px #D0D5DD solid; + cursor: default; +} + +/*--------------------------------------------------------------------------------------------- +* +* Edit Field Group Headerbar +* +*---------------------------------------------------------------------------------------------*/ +.acf-headerbar-field-editor { + position: sticky; + top: 32px; + z-index: 1020; + margin-left: -20px; + width: calc(100% + 20px); +} +@media screen and (max-width: 880px) { + .acf-headerbar-field-editor { + position: relative; + top: 0; + width: 100%; + margin-left: 0; + padding-right: 8px; + padding-left: 8px; + } +} +@media screen and (max-width: 640px) { + .acf-headerbar-field-editor { + position: relative; + top: 46px; + } +} +@media screen and (max-width: 880px) { + .acf-headerbar-field-editor .acf-headerbar-inner { + flex-wrap: wrap; + justify-content: flex-start; + align-content: flex-start; + align-items: flex-start; + width: 100%; + } + .acf-headerbar-field-editor .acf-headerbar-inner .acf-page-title { + flex: 1 1 auto; + } + .acf-headerbar-field-editor .acf-headerbar-inner .acf-headerbar-actions { + flex: 1 1 100%; + margin-top: 8px; + gap: 8px; + } + .acf-headerbar-field-editor .acf-headerbar-inner .acf-headerbar-actions .acf-btn { + width: 100%; + display: inline-flex; + justify-content: center; + margin: 0; + } +} +.acf-headerbar-field-editor .acf-page-title { + margin-right: 16px; +} + +.rtl .acf-headerbar, +.rtl .acf-headerbar-field-editor { + margin-left: 0; + margin-right: -20px; +} +.rtl .acf-headerbar .acf-page-title, +.rtl .acf-headerbar-field-editor .acf-page-title { + margin-left: 16px; + margin-right: 0; +} +.rtl .acf-headerbar .acf-headerbar-actions .acf-btn, +.rtl .acf-headerbar-field-editor .acf-headerbar-actions .acf-btn { + margin-left: 0; + margin-right: 8px; +} + +/*--------------------------------------------------------------------------------------------- +* +* ACF Buttons +* +*---------------------------------------------------------------------------------------------*/ +.acf-btn { + display: inline-flex; + align-items: center; + box-sizing: border-box; + min-height: 40px; + padding-top: 8px; + padding-right: 16px; + padding-bottom: 8px; + padding-left: 16px; + background-color: #0783BE; + border-radius: 6px; + border-width: 1px; + border-style: solid; + border-color: rgba(16, 24, 40, 0.2); + text-decoration: none; + color: #fff !important; + transition: all 0.2s ease-in-out; + transition-property: background, border, box-shadow; +} +.acf-btn:disabled { + background-color: red; +} +.acf-btn:hover { + background-color: #066998; + color: #fff; + cursor: pointer; +} +.acf-btn.acf-btn-sm { + min-height: 32px; + padding-top: 4px; + padding-right: 12px; + padding-bottom: 4px; + padding-left: 12px; +} +.acf-btn.acf-btn-secondary { + background-color: transparent; + color: #0783BE !important; + border-color: #0783BE; +} +.acf-btn.acf-btn-secondary:hover { + background-color: #f3f9fc; +} +.acf-btn.acf-btn-tertiary { + background-color: transparent; + color: #667085 !important; + border-color: #D0D5DD; +} +.acf-btn.acf-btn-tertiary:hover { + color: #667085 !important; + border-color: #98A2B3; +} +.acf-btn.acf-btn-clear { + background-color: transparent; + color: #667085 !important; + border-color: transparent; +} +.acf-btn.acf-btn-clear:hover { + color: #0783BE !important; +} +.acf-btn.acf-btn-pro { + background: linear-gradient(90.52deg, #3E8BFF 0.44%, #A45CFF 113.3%); + background-size: 180% 80%; + background-position: 100% 0; + transition: background-position 0.5s; +} +.acf-btn.acf-btn-pro:hover { + background-position: 0 0; +} + +/*--------------------------------------------------------------------------------------------- +* +* Button icons +* +*---------------------------------------------------------------------------------------------*/ +.acf-btn i.acf-icon { + width: 20px; + height: 20px; + -webkit-mask-size: 20px; + mask-size: 20px; + margin-right: 6px; + margin-left: -4px; +} +.acf-btn.acf-btn-sm i.acf-icon { + width: 16px; + height: 16px; + -webkit-mask-size: 16px; + mask-size: 16px; + margin-right: 6px; + margin-left: -2px; +} + +.rtl .acf-btn i.acf-icon { + margin-right: -4px; + margin-left: 6px; +} +.rtl .acf-btn.acf-btn-sm i.acf-icon { + margin-right: -4px; + margin-left: 2px; +} + +/*--------------------------------------------------------------------------------------------- +* +* Delete field group button +* +*---------------------------------------------------------------------------------------------*/ +.acf-btn.acf-delete-field-group:hover { + background-color: #fbeded; + border-color: #D13737 !important; + color: #D13737 !important; +} + +/*-------------------------------------------------------------------------------------------- +* +* Icon base styling +* +*--------------------------------------------------------------------------------------------*/ +.acf-internal-post-type i.acf-icon, +.post-type-acf-field-group i.acf-icon { + display: inline-flex; + width: 20px; + height: 20px; + background-color: currentColor; + border: none; + border-radius: 0; + -webkit-mask-size: contain; + mask-size: contain; + -webkit-mask-repeat: no-repeat; + mask-repeat: no-repeat; + -webkit-mask-position: center; + mask-position: center; + text-indent: 500%; + white-space: nowrap; + overflow: hidden; +} + +/*-------------------------------------------------------------------------------------------- +* +* Icons +* +*--------------------------------------------------------------------------------------------*/ +.acf-admin-page { + /*-------------------------------------------------------------------------------------------- + * + * Inactive group icon + * + *--------------------------------------------------------------------------------------------*/ +} +.acf-admin-page i.acf-field-setting-fc-delete, .acf-admin-page i.acf-field-setting-fc-duplicate { + box-sizing: border-box; + /* Auto layout */ + display: flex; + flex-direction: row; + justify-content: center; + align-items: center; + padding: 8px; + cursor: pointer; + width: 32px; + height: 32px; + /* Base / White */ + background: #FFFFFF; + /* Gray/300 */ + border: 1px solid #D0D5DD; + /* Elevation/01 */ + box-shadow: 0px 1px 2px rgba(16, 24, 40, 0.1); + border-radius: 6px; + /* Inside auto layout */ + flex: none; + order: 0; + flex-grow: 0; +} +.acf-admin-page i.acf-icon-plus { + -webkit-mask-image: url("../../images/icons/icon-add.svg"); + mask-image: url("../../images/icons/icon-add.svg"); +} +.acf-admin-page i.acf-icon-stars { + -webkit-mask-image: url("../../images/icons/icon-stars.svg"); + mask-image: url("../../images/icons/icon-stars.svg"); +} +.acf-admin-page i.acf-icon-help { + -webkit-mask-image: url("../../images/icons/icon-help.svg"); + mask-image: url("../../images/icons/icon-help.svg"); +} +.acf-admin-page i.acf-icon-key { + -webkit-mask-image: url("../../images/icons/icon-key.svg"); + mask-image: url("../../images/icons/icon-key.svg"); +} +.acf-admin-page i.acf-icon-regenerate { + -webkit-mask-image: url("../../images/icons/icon-regenerate.svg"); + mask-image: url("../../images/icons/icon-regenerate.svg"); +} +.acf-admin-page i.acf-icon-trash, .acf-admin-page button.acf-icon-trash { + -webkit-mask-image: url("../../images/icons/icon-trash.svg"); + mask-image: url("../../images/icons/icon-trash.svg"); +} +.acf-admin-page i.acf-icon-extended-menu, .acf-admin-page button.acf-icon-extended-menu { + -webkit-mask-image: url("../../images/icons/icon-extended-menu.svg"); + mask-image: url("../../images/icons/icon-extended-menu.svg"); +} +.acf-admin-page i.acf-icon.-duplicate, .acf-admin-page button.acf-icon-duplicate { + -webkit-mask-image: url("../../images/field-type-icons/icon-field-clone.svg"); + mask-image: url("../../images/field-type-icons/icon-field-clone.svg"); +} +.acf-admin-page i.acf-icon.-duplicate:before, .acf-admin-page i.acf-icon.-duplicate:after, .acf-admin-page button.acf-icon-duplicate:before, .acf-admin-page button.acf-icon-duplicate:after { + content: none; +} +.acf-admin-page i.acf-icon-arrow-right { + -webkit-mask-image: url("../../images/icons/icon-arrow-right.svg"); + mask-image: url("../../images/icons/icon-arrow-right.svg"); +} +.acf-admin-page i.acf-icon-arrow-up-right { + -webkit-mask-image: url("../../images/icons/icon-arrow-up-right.svg"); + mask-image: url("../../images/icons/icon-arrow-up-right.svg"); +} +.acf-admin-page i.acf-icon-arrow-left { + -webkit-mask-image: url("../../images/icons/icon-arrow-left.svg"); + mask-image: url("../../images/icons/icon-arrow-left.svg"); +} +.acf-admin-page i.acf-icon-chevron-right, +.acf-admin-page .acf-icon.-right { + -webkit-mask-image: url("../../images/icons/icon-chevron-right.svg"); + mask-image: url("../../images/icons/icon-chevron-right.svg"); +} +.acf-admin-page i.acf-icon-chevron-left, +.acf-admin-page .acf-icon.-left { + -webkit-mask-image: url("../../images/icons/icon-chevron-left.svg"); + mask-image: url("../../images/icons/icon-chevron-left.svg"); +} +.acf-admin-page i.acf-icon-key-solid { + -webkit-mask-image: url("../../images/icons/icon-key-solid.svg"); + mask-image: url("../../images/icons/icon-key-solid.svg"); +} +.acf-admin-page i.acf-icon-globe, +.acf-admin-page .acf-icon.-globe { + -webkit-mask-image: url("../../images/icons/icon-globe.svg"); + mask-image: url("../../images/icons/icon-globe.svg"); +} +.acf-admin-page i.acf-icon-image, +.acf-admin-page .acf-icon.-picture { + -webkit-mask-image: url("../../images/field-type-icons/icon-field-image.svg"); + mask-image: url("../../images/field-type-icons/icon-field-image.svg"); +} +.acf-admin-page i.acf-icon-warning { + -webkit-mask-image: url("../../images/icons/icon-warning-alt.svg"); + mask-image: url("../../images/icons/icon-warning-alt.svg"); +} +.acf-admin-page i.acf-icon-warning-red { + -webkit-mask-image: url("../../images/icons/icon-warning-alt-red.svg"); + mask-image: url("../../images/icons/icon-warning-alt-red.svg"); +} +.acf-admin-page i.acf-icon-dots-grid { + -webkit-mask-image: url("../../images/icons/icon-dots-grid.svg"); + mask-image: url("../../images/icons/icon-dots-grid.svg"); +} +.acf-admin-page i.acf-icon-play { + -webkit-mask-image: url("../../images/icons/icon-play.svg"); + mask-image: url("../../images/icons/icon-play.svg"); +} +.acf-admin-page i.acf-icon-lock { + -webkit-mask-image: url("../../images/icons/icon-lock.svg"); + mask-image: url("../../images/icons/icon-lock.svg"); +} +.acf-admin-page i.acf-icon-document { + -webkit-mask-image: url("../../images/icons/icon-document.svg"); + mask-image: url("../../images/icons/icon-document.svg"); +} +.acf-admin-page .post-type-acf-field-group .post-state, +.acf-admin-page .acf-internal-post-type .post-state { + font-weight: normal; +} +.acf-admin-page .post-type-acf-field-group .post-state .dashicons.dashicons-hidden, +.acf-admin-page .acf-internal-post-type .post-state .dashicons.dashicons-hidden { + display: inline-flex; + width: 18px; + height: 18px; + background-color: #98A2B3; + border: none; + border-radius: 0; + -webkit-mask-size: 18px; + mask-size: 18px; + -webkit-mask-repeat: no-repeat; + mask-repeat: no-repeat; + -webkit-mask-position: center; + mask-position: center; + -webkit-mask-image: url("../../images/icons/icon-hidden.svg"); + mask-image: url("../../images/icons/icon-hidden.svg"); +} +.acf-admin-page .post-type-acf-field-group .post-state .dashicons.dashicons-hidden:before, +.acf-admin-page .acf-internal-post-type .post-state .dashicons.dashicons-hidden:before { + display: none; +} + +/*-------------------------------------------------------------------------------------------- +* +* Edit field group page postbox header icons +* +*--------------------------------------------------------------------------------------------*/ +#acf-field-group-fields .postbox-header h2, +#acf-field-group-fields .postbox-header h3, +#acf-field-group-fields .acf-sub-field-list-header h2, +#acf-field-group-fields .acf-sub-field-list-header h3, +#acf-field-group-options .postbox-header h2, +#acf-field-group-options .postbox-header h3, +#acf-field-group-options .acf-sub-field-list-header h2, +#acf-field-group-options .acf-sub-field-list-header h3, +#acf-advanced-settings .postbox-header h2, +#acf-advanced-settings .postbox-header h3, +#acf-advanced-settings .acf-sub-field-list-header h2, +#acf-advanced-settings .acf-sub-field-list-header h3 { + display: inline-flex; + justify-content: flex-start; + align-content: stretch; + align-items: center; +} +#acf-field-group-fields .postbox-header h2:before, +#acf-field-group-fields .postbox-header h3:before, +#acf-field-group-fields .acf-sub-field-list-header h2:before, +#acf-field-group-fields .acf-sub-field-list-header h3:before, +#acf-field-group-options .postbox-header h2:before, +#acf-field-group-options .postbox-header h3:before, +#acf-field-group-options .acf-sub-field-list-header h2:before, +#acf-field-group-options .acf-sub-field-list-header h3:before, +#acf-advanced-settings .postbox-header h2:before, +#acf-advanced-settings .postbox-header h3:before, +#acf-advanced-settings .acf-sub-field-list-header h2:before, +#acf-advanced-settings .acf-sub-field-list-header h3:before { + content: ""; + display: inline-block; + width: 20px; + height: 20px; + margin-right: 8px; + background-color: #98A2B3; + border: none; + border-radius: 0; + -webkit-mask-size: contain; + mask-size: contain; + -webkit-mask-repeat: no-repeat; + mask-repeat: no-repeat; + -webkit-mask-position: center; + mask-position: center; +} + +.rtl #acf-field-group-fields .postbox-header h2:before, +.rtl #acf-field-group-fields .postbox-header h3:before, +.rtl #acf-field-group-fields .acf-sub-field-list-header h2:before, +.rtl #acf-field-group-fields .acf-sub-field-list-header h3:before, +.rtl #acf-field-group-options .postbox-header h2:before, +.rtl #acf-field-group-options .postbox-header h3:before, +.rtl #acf-field-group-options .acf-sub-field-list-header h2:before, +.rtl #acf-field-group-options .acf-sub-field-list-header h3:before { + margin-right: 0; + margin-left: 8px; +} + +#acf-field-group-fields .postbox-header h2:before, +h3.acf-sub-field-list-title:before, +.acf-link-field-groups-popup h3:before { + -webkit-mask-image: url("../../images/icons/icon-fields.svg"); + mask-image: url("../../images/icons/icon-fields.svg"); +} + +#acf-field-group-options .postbox-header h2:before { + -webkit-mask-image: url("../../images/icons/icon-settings.svg"); + mask-image: url("../../images/icons/icon-settings.svg"); +} + +.acf-field-setting-fc_layout .acf-field-settings-fc_head label:before { + -webkit-mask-image: url("../../images/icons/icon-layout.svg"); + mask-image: url("../../images/icons/icon-layout.svg"); +} + +.acf-admin-single-post-type #acf-advanced-settings .postbox-header h2:before, +.acf-admin-single-taxonomy #acf-advanced-settings .postbox-header h2:before { + -webkit-mask-image: url("../../images/icons/icon-post-type.svg"); + mask-image: url("../../images/icons/icon-post-type.svg"); +} + +.acf-field-setting-fc_layout .acf-field-settings-fc_head:hover .reorder-layout:before { + width: 20px; + height: 11px; + background-color: #475467 !important; + -webkit-mask-image: url("../../images/icons/icon-draggable.svg"); + mask-image: url("../../images/icons/icon-draggable.svg"); +} + +/*-------------------------------------------------------------------------------------------- +* +* Postbox expand / collapse icon +* +*--------------------------------------------------------------------------------------------*/ +.post-type-acf-field-group .postbox-header .handle-actions, +.post-type-acf-field-group #acf-field-group-fields .postbox-header .handle-actions, +.post-type-acf-field-group #acf-field-group-options .postbox-header .handle-actions, +.post-type-acf-field-group .postbox .postbox-header .handle-actions, +.acf-admin-single-post-type #acf-advanced-settings .postbox-header .handle-actions, +.acf-admin-single-taxonomy #acf-advanced-settings .postbox-header .handle-actions { + display: flex; +} +.post-type-acf-field-group .postbox-header .handle-actions .toggle-indicator:before, +.post-type-acf-field-group #acf-field-group-fields .postbox-header .handle-actions .toggle-indicator:before, +.post-type-acf-field-group #acf-field-group-options .postbox-header .handle-actions .toggle-indicator:before, +.post-type-acf-field-group .postbox .postbox-header .handle-actions .toggle-indicator:before, +.acf-admin-single-post-type #acf-advanced-settings .postbox-header .handle-actions .toggle-indicator:before, +.acf-admin-single-taxonomy #acf-advanced-settings .postbox-header .handle-actions .toggle-indicator:before { + content: ""; + display: inline-flex; + width: 20px; + height: 20px; + background-color: currentColor; + border: none; + border-radius: 0; + -webkit-mask-size: contain; + mask-size: contain; + -webkit-mask-repeat: no-repeat; + mask-repeat: no-repeat; + -webkit-mask-position: center; + mask-position: center; + -webkit-mask-image: url("../../images/icons/icon-chevron-up.svg"); + mask-image: url("../../images/icons/icon-chevron-up.svg"); +} +.post-type-acf-field-group.closed .postbox-header .handle-actions .toggle-indicator:before, +.post-type-acf-field-group #acf-field-group-fields.closed .postbox-header .handle-actions .toggle-indicator:before, +.post-type-acf-field-group #acf-field-group-options.closed .postbox-header .handle-actions .toggle-indicator:before, +.post-type-acf-field-group .postbox.closed .postbox-header .handle-actions .toggle-indicator:before, +.acf-admin-single-post-type #acf-advanced-settings.closed .postbox-header .handle-actions .toggle-indicator:before, +.acf-admin-single-taxonomy #acf-advanced-settings.closed .postbox-header .handle-actions .toggle-indicator:before { + -webkit-mask-image: url("../../images/icons/icon-chevron-down.svg"); + mask-image: url("../../images/icons/icon-chevron-down.svg"); +} + +/*--------------------------------------------------------------------------------------------- +* +* Tools & updates page heading icons +* +*---------------------------------------------------------------------------------------------*/ +.post-type-acf-field-group #acf-admin-tool-export h2, +.post-type-acf-field-group #acf-admin-tool-export h3, +.post-type-acf-field-group #acf-admin-tool-import h2, +.post-type-acf-field-group #acf-admin-tool-import h3, +.post-type-acf-field-group #acf-license-information h2, +.post-type-acf-field-group #acf-license-information h3, +.post-type-acf-field-group #acf-update-information h2, +.post-type-acf-field-group #acf-update-information h3 { + display: inline-flex; + justify-content: flex-start; + align-content: stretch; + align-items: center; +} +.post-type-acf-field-group #acf-admin-tool-export h2:before, +.post-type-acf-field-group #acf-admin-tool-export h3:before, +.post-type-acf-field-group #acf-admin-tool-import h2:before, +.post-type-acf-field-group #acf-admin-tool-import h3:before, +.post-type-acf-field-group #acf-license-information h2:before, +.post-type-acf-field-group #acf-license-information h3:before, +.post-type-acf-field-group #acf-update-information h2:before, +.post-type-acf-field-group #acf-update-information h3:before { + content: ""; + display: inline-block; + width: 20px; + height: 20px; + margin-right: 8px; + background-color: #98A2B3; + border: none; + border-radius: 0; + -webkit-mask-size: contain; + mask-size: contain; + -webkit-mask-repeat: no-repeat; + mask-repeat: no-repeat; + -webkit-mask-position: center; + mask-position: center; +} +.post-type-acf-field-group.rtl #acf-admin-tool-export h2:before, +.post-type-acf-field-group.rtl #acf-admin-tool-export h3:before, +.post-type-acf-field-group.rtl #acf-admin-tool-import h2:before, +.post-type-acf-field-group.rtl #acf-admin-tool-import h3:before, +.post-type-acf-field-group.rtl #acf-license-information h2:before, +.post-type-acf-field-group.rtl #acf-license-information h3:before, +.post-type-acf-field-group.rtl #acf-update-information h2:before, +.post-type-acf-field-group.rtl #acf-update-information h3:before { + margin-right: 0; + margin-left: 8px; +} + +.post-type-acf-field-group #acf-admin-tool-export h2:before { + -webkit-mask-image: url("../../images/icons/icon-export.svg"); + mask-image: url("../../images/icons/icon-export.svg"); +} + +.post-type-acf-field-group #acf-admin-tool-import h2:before { + -webkit-mask-image: url("../../images/icons/icon-import.svg"); + mask-image: url("../../images/icons/icon-import.svg"); +} + +.post-type-acf-field-group #acf-license-information h3:before { + -webkit-mask-image: url("../../images/icons/icon-key.svg"); + mask-image: url("../../images/icons/icon-key.svg"); +} + +.post-type-acf-field-group #acf-update-information h3:before { + -webkit-mask-image: url("../../images/icons/icon-info.svg"); + mask-image: url("../../images/icons/icon-info.svg"); +} + +/*-------------------------------------------------------------------------------------------- +* +* Admin field icons +* +*--------------------------------------------------------------------------------------------*/ +.acf-admin-single-field-group .acf-input .acf-icon { + width: 18px; + height: 18px; +} + +/*-------------------------------------------------------------------------------------------- +* +* Field type icon base styling +* +*--------------------------------------------------------------------------------------------*/ +.field-type-icon { + box-sizing: border-box; + display: inline-flex; + align-content: center; + align-items: center; + justify-content: center; + position: relative; + width: 24px; + height: 24px; + top: -4px; + background-color: #EBF5FA; + border-width: 1px; + border-style: solid; + border-color: #A5D2E7; + border-radius: 100%; +} +.field-type-icon:before { + content: ""; + width: 14px; + height: 14px; + position: relative; + background-color: #0783BE; + -webkit-mask-size: cover; + mask-size: cover; + -webkit-mask-repeat: no-repeat; + mask-repeat: no-repeat; + -webkit-mask-position: center; + mask-position: center; + -webkit-mask-image: url("../../images/field-type-icons/icon-field-default.svg"); + mask-image: url("../../images/field-type-icons/icon-field-default.svg"); +} + +/*-------------------------------------------------------------------------------------------- +* +* Field type icons +* +*--------------------------------------------------------------------------------------------*/ +.field-type-icon.field-type-icon-text:before { + -webkit-mask-image: url("../../images/field-type-icons/icon-field-text.svg"); + mask-image: url("../../images/field-type-icons/icon-field-text.svg"); +} + +.field-type-icon.field-type-icon-textarea:before { + -webkit-mask-image: url("../../images/field-type-icons/icon-field-textarea.svg"); + mask-image: url("../../images/field-type-icons/icon-field-textarea.svg"); +} + +.field-type-icon.field-type-icon-textarea:before { + -webkit-mask-image: url("../../images/field-type-icons/icon-field-textarea.svg"); + mask-image: url("../../images/field-type-icons/icon-field-textarea.svg"); +} + +.field-type-icon.field-type-icon-number:before { + -webkit-mask-image: url("../../images/field-type-icons/icon-field-number.svg"); + mask-image: url("../../images/field-type-icons/icon-field-number.svg"); +} + +.field-type-icon.field-type-icon-range:before { + -webkit-mask-image: url("../../images/field-type-icons/icon-field-range.svg"); + mask-image: url("../../images/field-type-icons/icon-field-range.svg"); +} + +.field-type-icon.field-type-icon-email:before { + -webkit-mask-image: url("../../images/field-type-icons/icon-field-email.svg"); + mask-image: url("../../images/field-type-icons/icon-field-email.svg"); +} + +.field-type-icon.field-type-icon-url:before { + -webkit-mask-image: url("../../images/field-type-icons/icon-field-url.svg"); + mask-image: url("../../images/field-type-icons/icon-field-url.svg"); +} + +.field-type-icon.field-type-icon-password:before { + -webkit-mask-image: url("../../images/field-type-icons/icon-field-password.svg"); + mask-image: url("../../images/field-type-icons/icon-field-password.svg"); +} + +.field-type-icon.field-type-icon-image:before { + -webkit-mask-image: url("../../images/field-type-icons/icon-field-image.svg"); + mask-image: url("../../images/field-type-icons/icon-field-image.svg"); +} + +.field-type-icon.field-type-icon-file:before { + -webkit-mask-image: url("../../images/field-type-icons/icon-field-file.svg"); + mask-image: url("../../images/field-type-icons/icon-field-file.svg"); +} + +.field-type-icon.field-type-icon-wysiwyg:before { + -webkit-mask-image: url("../../images/field-type-icons/icon-field-wysiwyg.svg"); + mask-image: url("../../images/field-type-icons/icon-field-wysiwyg.svg"); +} + +.field-type-icon.field-type-icon-oembed:before { + -webkit-mask-image: url("../../images/field-type-icons/icon-field-oembed.svg"); + mask-image: url("../../images/field-type-icons/icon-field-oembed.svg"); +} + +.field-type-icon.field-type-icon-gallery:before { + -webkit-mask-image: url("../../images/field-type-icons/icon-field-gallery.svg"); + mask-image: url("../../images/field-type-icons/icon-field-gallery.svg"); +} + +.field-type-icon.field-type-icon-select:before { + -webkit-mask-image: url("../../images/field-type-icons/icon-field-select.svg"); + mask-image: url("../../images/field-type-icons/icon-field-select.svg"); +} + +.field-type-icon.field-type-icon-checkbox:before { + -webkit-mask-image: url("../../images/field-type-icons/icon-field-checkbox.svg"); + mask-image: url("../../images/field-type-icons/icon-field-checkbox.svg"); +} + +.field-type-icon.field-type-icon-radio:before { + -webkit-mask-image: url("../../images/field-type-icons/icon-field-radio.svg"); + mask-image: url("../../images/field-type-icons/icon-field-radio.svg"); +} + +.field-type-icon.field-type-icon-button-group:before { + -webkit-mask-image: url("../../images/field-type-icons/icon-field-button-group.svg"); + mask-image: url("../../images/field-type-icons/icon-field-button-group.svg"); +} + +.field-type-icon.field-type-icon-true-false:before { + -webkit-mask-image: url("../../images/field-type-icons/icon-field-true-false.svg"); + mask-image: url("../../images/field-type-icons/icon-field-true-false.svg"); +} + +.field-type-icon.field-type-icon-link:before { + -webkit-mask-image: url("../../images/field-type-icons/icon-field-link.svg"); + mask-image: url("../../images/field-type-icons/icon-field-link.svg"); +} + +.field-type-icon.field-type-icon-post-object:before { + -webkit-mask-image: url("../../images/field-type-icons/icon-field-post-object.svg"); + mask-image: url("../../images/field-type-icons/icon-field-post-object.svg"); +} + +.field-type-icon.field-type-icon-page-link:before { + -webkit-mask-image: url("../../images/field-type-icons/icon-field-page-link.svg"); + mask-image: url("../../images/field-type-icons/icon-field-page-link.svg"); +} + +.field-type-icon.field-type-icon-relationship:before { + -webkit-mask-image: url("../../images/field-type-icons/icon-field-relationship.svg"); + mask-image: url("../../images/field-type-icons/icon-field-relationship.svg"); +} + +.field-type-icon.field-type-icon-taxonomy:before { + -webkit-mask-image: url("../../images/field-type-icons/icon-field-taxonomy.svg"); + mask-image: url("../../images/field-type-icons/icon-field-taxonomy.svg"); +} + +.field-type-icon.field-type-icon-user:before { + -webkit-mask-image: url("../../images/field-type-icons/icon-field-user.svg"); + mask-image: url("../../images/field-type-icons/icon-field-user.svg"); +} + +.field-type-icon.field-type-icon-google-map:before { + -webkit-mask-image: url("../../images/field-type-icons/icon-field-google-map.svg"); + mask-image: url("../../images/field-type-icons/icon-field-google-map.svg"); +} + +.field-type-icon.field-type-icon-date-picker:before { + -webkit-mask-image: url("../../images/field-type-icons/icon-field-date-picker.svg"); + mask-image: url("../../images/field-type-icons/icon-field-date-picker.svg"); +} + +.field-type-icon.field-type-icon-date-time-picker:before { + -webkit-mask-image: url("../../images/field-type-icons/icon-field-date-time-picker.svg"); + mask-image: url("../../images/field-type-icons/icon-field-date-time-picker.svg"); +} + +.field-type-icon.field-type-icon-time-picker:before { + -webkit-mask-image: url("../../images/field-type-icons/icon-field-time-picker.svg"); + mask-image: url("../../images/field-type-icons/icon-field-time-picker.svg"); +} + +.field-type-icon.field-type-icon-color-picker:before { + -webkit-mask-image: url("../../images/field-type-icons/icon-field-color-picker.svg"); + mask-image: url("../../images/field-type-icons/icon-field-color-picker.svg"); +} + +.field-type-icon.field-type-icon-message:before { + -webkit-mask-image: url("../../images/field-type-icons/icon-field-message.svg"); + mask-image: url("../../images/field-type-icons/icon-field-message.svg"); +} + +.field-type-icon.field-type-icon-accordion:before { + -webkit-mask-image: url("../../images/field-type-icons/icon-field-accordion.svg"); + mask-image: url("../../images/field-type-icons/icon-field-accordion.svg"); +} + +.field-type-icon.field-type-icon-tab:before { + -webkit-mask-image: url("../../images/field-type-icons/icon-field-tab.svg"); + mask-image: url("../../images/field-type-icons/icon-field-tab.svg"); +} + +.field-type-icon.field-type-icon-group:before { + -webkit-mask-image: url("../../images/field-type-icons/icon-field-group.svg"); + mask-image: url("../../images/field-type-icons/icon-field-group.svg"); +} + +.field-type-icon.field-type-icon-repeater:before { + -webkit-mask-image: url("../../images/field-type-icons/icon-field-repeater.svg"); + mask-image: url("../../images/field-type-icons/icon-field-repeater.svg"); +} + +.field-type-icon.field-type-icon-flexible-content:before { + -webkit-mask-image: url("../../images/field-type-icons/icon-field-flexible-content.svg"); + mask-image: url("../../images/field-type-icons/icon-field-flexible-content.svg"); +} + +.field-type-icon.field-type-icon-clone:before { + -webkit-mask-image: url("../../images/field-type-icons/icon-field-clone.svg"); + mask-image: url("../../images/field-type-icons/icon-field-clone.svg"); +} + +/*--------------------------------------------------------------------------------------------- +* +* Tools page layout +* +*---------------------------------------------------------------------------------------------*/ +#acf-admin-tools .postbox-header { + display: none; +} +#acf-admin-tools .acf-meta-box-wrap.-grid { + margin-top: 0; + margin-right: 0; + margin-bottom: 0; + margin-left: 0; +} +#acf-admin-tools .acf-meta-box-wrap.-grid .postbox { + width: 100%; + clear: none; + float: none; + margin-bottom: 0; +} +@media screen and (max-width: 880px) { + #acf-admin-tools .acf-meta-box-wrap.-grid .postbox { + flex: 1 1 100%; + } +} +#acf-admin-tools .acf-meta-box-wrap.-grid .postbox:nth-child(odd) { + margin-left: 0; +} +#acf-admin-tools .meta-box-sortables { + display: grid; + grid-template-columns: repeat(2, 1fr); + grid-template-rows: repeat(1, 1fr); + grid-column-gap: 32px; + grid-row-gap: 32px; +} +@media screen and (max-width: 880px) { + #acf-admin-tools .meta-box-sortables { + display: flex; + flex-wrap: wrap; + justify-content: flex-start; + align-content: flex-start; + align-items: center; + grid-column-gap: 8px; + grid-row-gap: 8px; + } +} + +/*--------------------------------------------------------------------------------------------- +* +* Tools export pages +* +*---------------------------------------------------------------------------------------------*/ +#acf-admin-tools.tool-export .inside { + margin: 0; +} +#acf-admin-tools.tool-export .acf-postbox-header { + margin-bottom: 24px; +} +#acf-admin-tools.tool-export .acf-postbox-main { + border: none; + margin: 0; + padding-top: 0; + padding-right: 24px; + padding-bottom: 0; + padding-left: 0; +} +#acf-admin-tools.tool-export .acf-postbox-columns { + margin-top: 0; + margin-right: 280px; + margin-bottom: 0; + margin-left: 0; + padding: 0; +} +#acf-admin-tools.tool-export .acf-postbox-columns .acf-postbox-side { + padding: 0; +} +#acf-admin-tools.tool-export .acf-postbox-columns .acf-postbox-side .acf-panel { + margin: 0; + padding: 0; +} +#acf-admin-tools.tool-export .acf-postbox-columns .acf-postbox-side:before { + display: none; +} +#acf-admin-tools.tool-export .acf-postbox-columns .acf-postbox-side .acf-btn { + display: block; + width: 100%; + text-align: center; +} +#acf-admin-tools.tool-export .meta-box-sortables { + display: block; +} +#acf-admin-tools.tool-export .acf-panel { + border: none; +} +#acf-admin-tools.tool-export .acf-panel h3 { + margin: 0; + padding: 0; + color: #344054; +} +#acf-admin-tools.tool-export .acf-panel h3:before { + display: none; +} +#acf-admin-tools.tool-export .acf-checkbox-list { + margin-top: 16px; + border-width: 1px; + border-style: solid; + border-color: #D0D5DD; + border-radius: 6px; +} +#acf-admin-tools.tool-export .acf-checkbox-list li { + display: inline-flex; + box-sizing: border-box; + width: 100%; + height: 48px; + align-items: center; + margin: 0; + padding-right: 12px; + padding-left: 12px; + border-bottom-width: 1px; + border-bottom-style: solid; + border-bottom-color: #EAECF0; +} +#acf-admin-tools.tool-export .acf-checkbox-list li:last-child { + border-bottom: none; +} + +/*--------------------------------------------------------------------------------------------- +* +* Updates layout +* +*---------------------------------------------------------------------------------------------*/ +.acf-settings-wrap.acf-updates { + display: flex; + flex-direction: row; + flex-wrap: wrap; + justify-content: flex-start; + align-content: flex-start; + align-items: flex-start; +} + +.custom-fields_page_acf-settings-updates .acf-admin-notice, +.custom-fields_page_acf-settings-updates .acf-upgrade-notice, +.custom-fields_page_acf-settings-updates .notice { + flex: 1 1 100%; +} + +/*--------------------------------------------------------------------------------------------- +* +* ACF Box +* +*---------------------------------------------------------------------------------------------*/ +.acf-settings-wrap.acf-updates .acf-box { + margin-top: 0; + margin-right: 0; + margin-bottom: 0; + margin-left: 0; +} +.acf-settings-wrap.acf-updates .acf-box .inner { + padding-top: 24px; + padding-right: 24px; + padding-bottom: 24px; + padding-left: 24px; +} +@media screen and (max-width: 880px) { + .acf-settings-wrap.acf-updates .acf-box { + flex: 1 1 100%; + } +} + +/*--------------------------------------------------------------------------------------------- +* +* Notices +* +*---------------------------------------------------------------------------------------------*/ +.acf-settings-wrap.acf-updates .acf-admin-notice { + flex: 1 1 100%; + margin-top: 16px; + margin-right: 0; + margin-left: 0; +} + +/*--------------------------------------------------------------------------------------------- +* +* License information +* +*---------------------------------------------------------------------------------------------*/ +#acf-license-information { + flex: 1 1 65%; + margin-right: 32px; +} +@media screen and (max-width: 1024px) { + #acf-license-information { + margin-right: 0; + margin-bottom: 32px; + } +} +#acf-license-information .acf-activation-form { + margin-top: 24px; +} +#acf-license-information label { + font-weight: 500; +} +#acf-license-information .acf-input-wrap { + margin-top: 8px; + margin-bottom: 24px; +} +#acf-license-information #acf_pro_license { + width: 100%; +} + +/*--------------------------------------------------------------------------------------------- +* +* Update information table +* +*---------------------------------------------------------------------------------------------*/ +#acf-update-information { + flex: 1 1 35%; + max-width: calc(35% - 32px); +} +#acf-update-information .form-table th, +#acf-update-information .form-table td { + padding-top: 0; + padding-right: 0; + padding-bottom: 24px; + padding-left: 0; + color: #344054; +} +#acf-update-information .acf-update-changelog { + margin-top: 8px; + margin-bottom: 24px; + padding-top: 8px; + border-top-width: 1px; + border-top-style: solid; + border-top-color: #EAECF0; + color: #344054; +} +#acf-update-information .acf-update-changelog h4 { + margin-bottom: 0; +} +#acf-update-information .acf-update-changelog p { + margin-top: 0; + margin-bottom: 16px; +} +#acf-update-information .acf-update-changelog p:last-of-type { + margin-bottom: 0; +} +#acf-update-information .acf-update-changelog p em { + color: #667085; +} +#acf-update-information .acf-btn { + display: inline-flex; +} + +/*-------------------------------------------------------------------------------------------- +* +* Header pro upgrade button +* +*--------------------------------------------------------------------------------------------*/ +.acf-admin-toolbar a.acf-admin-toolbar-upgrade-btn { + display: inline-flex; + align-items: center; + align-self: stretch; + padding-top: 0; + padding-right: 16px; + padding-bottom: 0; + padding-left: 16px; + background: linear-gradient(90.52deg, #3E8BFF 0.44%, #A45CFF 113.3%); + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.16); + background-size: 180% 80%; + background-position: 100% 0; + transition: background-position 0.5s; + border-radius: 6px; + text-decoration: none; +} +@media screen and (max-width: 768px) { + .acf-admin-toolbar a.acf-admin-toolbar-upgrade-btn { + display: none; + } +} +.acf-admin-toolbar a.acf-admin-toolbar-upgrade-btn:hover { + background-position: 0 0; +} +.acf-admin-toolbar a.acf-admin-toolbar-upgrade-btn:focus { + border: none; + outline: none; + box-shadow: none; +} +.acf-admin-toolbar a.acf-admin-toolbar-upgrade-btn p { + margin: 0; + padding-top: 8px; + padding-bottom: 8px; + font-weight: normal; + text-transform: none; + color: #fff; +} +.acf-admin-toolbar a.acf-admin-toolbar-upgrade-btn .acf-icon { + width: 18px; + height: 18px; + margin-right: 6px; + margin-left: -2px; + background-color: #F9FAFB; +} + +/*-------------------------------------------------------------------------------------------- +* +* Upsell block +* +*--------------------------------------------------------------------------------------------*/ +#tmpl-acf-field-group-pro-features, +#acf-field-group-pro-features { + display: none; + align-items: center; + min-height: 120px; + background-color: #121833; + background-image: url(../../images/pro-upgrade-grid-bg.svg), url(../../images/pro-upgrade-overlay.svg); + background-repeat: repeat, no-repeat; + background-size: 1224px, 1880px; + background-position: left top, -520px -680px; + color: #EAECF0; + border-radius: 8px; + margin-top: 24px; + margin-bottom: 24px; +} +@media screen and (max-width: 768px) { + #tmpl-acf-field-group-pro-features, + #acf-field-group-pro-features { + background-size: 1024px, 980px; + background-position: left top, -500px -200px; + } +} +@media screen and (max-width: 1200px) { + #tmpl-acf-field-group-pro-features, + #acf-field-group-pro-features { + background-size: 1024px, 1880px; + background-position: left top, -520px -300px; + } +} +#tmpl-acf-field-group-pro-features .postbox-header, +#acf-field-group-pro-features .postbox-header { + display: none; +} +#tmpl-acf-field-group-pro-features .inside, +#acf-field-group-pro-features .inside { + width: 100%; + border: none; + padding: 0; +} +#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper, +#acf-field-group-pro-features .acf-field-group-pro-features-wrapper { + display: flex; + justify-content: center; + align-content: stretch; + align-items: center; + gap: 96px; + height: 358px; + max-width: 950px; + margin: 0 auto; + padding: 0 35px; +} +@media screen and (max-width: 1200px) { + #tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper, + #acf-field-group-pro-features .acf-field-group-pro-features-wrapper { + gap: 48px; + } +} +@media screen and (max-width: 768px) { + #tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper, + #acf-field-group-pro-features .acf-field-group-pro-features-wrapper { + gap: 0; + } +} +#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-title, +#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-title-sm, +#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-title, +#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-title-sm { + font-weight: 590; + line-height: 150%; +} +#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-title .acf-pro-label, +#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-title-sm .acf-pro-label, +#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-title .acf-pro-label, +#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-title-sm .acf-pro-label { + font-weight: normal; + margin-top: -4px; + margin-left: 2px; + vertical-align: middle; + height: 22px; +} +#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-title-sm, +#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-title-sm { + display: none; + font-size: 18px; +} +#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-title-sm .acf-pro-label, +#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-title-sm .acf-pro-label { + font-size: 10px; + height: 20px; +} +@media screen and (max-width: 768px) { + #tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-title-sm, + #acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-title-sm { + width: 100%; + text-align: center; + } +} +@media screen and (max-width: 768px) { + #tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper, + #acf-field-group-pro-features .acf-field-group-pro-features-wrapper { + flex-direction: column; + flex-wrap: wrap; + justify-content: flex-start; + align-content: flex-start; + align-items: flex-start; + padding: 32px 32px 0 32px; + height: unset; + } + #tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-title-sm, + #acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-title-sm { + display: block; + margin-bottom: 24px; + } +} +#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-content, +#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-content { + display: flex; + flex-direction: column; + width: 416px; +} +#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-content .acf-field-group-pro-features-desc, +#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-content .acf-field-group-pro-features-desc { + margin-top: 8px; + margin-bottom: 24px; + font-size: 15px; + font-weight: 300; + color: #D0D5DD; +} +@media screen and (max-width: 768px) { + #tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-content, + #acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-content { + width: 100%; + order: 1; + margin-right: 0; + margin-bottom: 8px; + } + #tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-content .acf-field-group-pro-features-title, + #tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-content .acf-field-group-pro-features-desc, + #acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-content .acf-field-group-pro-features-title, + #acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-content .acf-field-group-pro-features-desc { + display: none; + } +} +#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-actions, +#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-actions { + display: flex; + flex-direction: row; + align-items: flex-start; + min-width: 160px; + gap: 12px; +} +@media screen and (max-width: 768px) { + #tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-actions, + #acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-actions { + justify-content: flex-start; + flex-direction: column; + margin-bottom: 24px; + } + #tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-actions a, + #acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-actions a { + justify-content: center; + text-align: center; + width: 100%; + } +} +#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid, +#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid { + display: flex; + flex-direction: row; + flex-wrap: wrap; + gap: 16px; + width: 416px; +} +#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature, +#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + width: 128px; + height: 124px; + background: rgba(255, 255, 255, 0.08); + box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.04), 0px 8px 16px rgba(0, 0, 0, 0.08), inset 0 0 0 1px rgba(255, 255, 255, 0.08); + backdrop-filter: blur(6px); + border-radius: 8px; +} +#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .field-type-icon, +#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .field-type-icon { + border: none; + background: none; + width: 24px; + opacity: 0.8; +} +#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .field-type-icon::before, +#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .field-type-icon::before { + background-color: #fff; + width: 20px; + height: 20px; +} +@media screen and (max-width: 1200px) { + #tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .field-type-icon::before, + #acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .field-type-icon::before { + width: 18px; + height: 18px; + } +} +#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .pro-feature-blocks::before, +#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .pro-feature-blocks::before { + -webkit-mask-image: url("../../images/icons/icon-extended-menu.svg"); + mask-image: url("../../images/icons/icon-extended-menu.svg"); +} +#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .pro-feature-options-pages::before, +#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .pro-feature-options-pages::before { + -webkit-mask-image: url("../../images/icons/icon-settings.svg"); + mask-image: url("../../images/icons/icon-settings.svg"); +} +#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .field-type-label, +#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .field-type-label { + margin-top: 4px; + font-size: 13px; + font-weight: 300; + text-align: center; + color: #fff; +} +@media screen and (max-width: 1200px) { + #tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid, + #acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid { + flex-direction: column; + gap: 8px; + width: 288px; + } + #tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature, + #acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature { + width: 100%; + height: 40px; + flex-direction: row; + justify-content: unset; + gap: 8px; + } + #tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .field-type-icon, + #acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .field-type-icon { + position: initial; + margin-left: 16px; + } + #tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .field-type-label, + #acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .field-type-label { + margin-top: 0; + } +} +@media screen and (max-width: 768px) { + #tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid, + #acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid { + gap: 0; + width: 100%; + height: auto; + margin-bottom: 16px; + flex-direction: unset; + flex-wrap: wrap; + } + #tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature, + #acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature { + flex: 1 0 50%; + margin-bottom: 8px; + width: auto; + height: auto; + justify-content: center; + background: none; + box-shadow: none; + backdrop-filter: none; + } + #tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .field-type-label, + #acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .field-type-label { + margin-left: 2px; + } + #tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .field-type-icon, + #acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .field-type-icon { + position: initial; + margin-left: 0; + } + #tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .field-type-icon:before, + #acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .field-type-icon:before { + height: 16px; + width: 16px; + } + #tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .field-type-label, + #acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .field-type-label { + font-size: 12px; + margin-top: 0; + } +} +#tmpl-acf-field-group-pro-features h1, +#acf-field-group-pro-features h1 { + margin-top: 0; + margin-bottom: 4px; + padding-top: 0; + padding-bottom: 0; + font-weight: bold; + color: #F9FAFB; +} +#tmpl-acf-field-group-pro-features h1 .acf-icon, +#acf-field-group-pro-features h1 .acf-icon { + margin-right: 8px; +} +#tmpl-acf-field-group-pro-features .acf-btn, +#acf-field-group-pro-features .acf-btn { + display: inline-flex; + background-color: rgba(255, 255, 255, 0.1); + border: none; + box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.04), 0px 4px 8px rgba(0, 0, 0, 0.06), inset 0 0 0 1px rgba(255, 255, 255, 0.16); + backdrop-filter: blur(6px); + padding: 8px 24px; + height: 48px; +} +#tmpl-acf-field-group-pro-features .acf-btn:hover, +#acf-field-group-pro-features .acf-btn:hover { + background-color: rgba(255, 255, 255, 0.2); +} +#tmpl-acf-field-group-pro-features .acf-btn .acf-icon, +#acf-field-group-pro-features .acf-btn .acf-icon { + margin-right: -2px; + margin-left: 6px; +} +#tmpl-acf-field-group-pro-features .acf-btn.acf-pro-features-upgrade, +#acf-field-group-pro-features .acf-btn.acf-pro-features-upgrade { + background: linear-gradient(90.52deg, #3E8BFF 0.44%, #A45CFF 113.3%); + background-size: 160% 80%; + background-position: 100% 0; + box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.04), 0px 4px 8px rgba(0, 0, 0, 0.06), inset 0 0 0 1px rgba(255, 255, 255, 0.16); + border-radius: 6px; + transition: background-position 0.5s; +} +#tmpl-acf-field-group-pro-features .acf-btn.acf-pro-features-upgrade:hover, +#acf-field-group-pro-features .acf-btn.acf-pro-features-upgrade:hover { + background-position: 0 0; +} +#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap, +#acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap { + height: 48px; + background: rgba(16, 24, 40, 0.4); + backdrop-filter: blur(6px); + border-top: 1px solid rgba(255, 255, 255, 0.08); + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + color: #98A2B3; + font-size: 13px; + font-weight: 300; + padding: 0 35px; +} +#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap .acf-field-group-pro-features-footer, +#acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap .acf-field-group-pro-features-footer { + display: flex; + align-items: center; + justify-content: space-between; + max-width: 950px; + height: 48px; + margin: 0 auto; +} +#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap .acf-field-group-pro-features-wpengine-logo, +#acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap .acf-field-group-pro-features-wpengine-logo { + height: 16px; + vertical-align: middle; + margin-top: -2px; + margin-left: 3px; +} +#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap a, +#acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap a { + color: #98A2B3; + text-decoration: none; +} +#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap a:hover, +#acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap a:hover { + color: #D0D5DD; +} +#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap a .acf-icon, +#acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap a .acf-icon { + width: 18px; + height: 18px; + margin-left: 4px; +} +#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap .acf-more-tools-from-wpengine a, +#acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap .acf-more-tools-from-wpengine a { + display: inline-flex; + align-items: center; +} +@media screen and (max-width: 768px) { + #tmpl-acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap, + #acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap { + height: 70px; + font-size: 12px; + } + #tmpl-acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap .acf-more-tools-from-wpengine, + #acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap .acf-more-tools-from-wpengine { + display: none; + } + #tmpl-acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap .acf-field-group-pro-features-footer, + #acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap .acf-field-group-pro-features-footer { + justify-content: center; + height: 70px; + } + #tmpl-acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap .acf-field-group-pro-features-footer .acf-field-group-pro-features-wpengine-logo, + #acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap .acf-field-group-pro-features-footer .acf-field-group-pro-features-wpengine-logo { + clear: both; + margin: 6px auto 0 auto; + display: block; + } +} + +.acf-no-field-groups #tmpl-acf-field-group-pro-features, +.acf-no-post-types #tmpl-acf-field-group-pro-features, +.acf-no-taxonomies #tmpl-acf-field-group-pro-features { + margin-top: 0; +} + +/*-------------------------------------------------------------------------------------------- +* +* Post type & taxonomies styles +* +*--------------------------------------------------------------------------------------------*/ +.acf-admin-single-post-type label[for=acf-basic-settings-hide], +.acf-admin-single-taxonomy label[for=acf-basic-settings-hide] { + display: none; +} +.acf-admin-single-post-type fieldset.columns-prefs, +.acf-admin-single-taxonomy fieldset.columns-prefs { + display: none; +} +.acf-admin-single-post-type #acf-basic-settings .postbox-header, +.acf-admin-single-taxonomy #acf-basic-settings .postbox-header { + display: none; +} +.acf-admin-single-post-type .postbox-container, +.acf-admin-single-post-type .notice, +.acf-admin-single-taxonomy .postbox-container, +.acf-admin-single-taxonomy .notice { + max-width: 1440px; + clear: left; +} +.acf-admin-single-post-type #post-body-content, +.acf-admin-single-taxonomy #post-body-content { + margin: 0; +} +.acf-admin-single-post-type .postbox .inside, +.acf-admin-single-post-type .acf-box .inside, +.acf-admin-single-taxonomy .postbox .inside, +.acf-admin-single-taxonomy .acf-box .inside { + padding-top: 48px; + padding-right: 48px; + padding-bottom: 48px; + padding-left: 48px; +} +.acf-admin-single-post-type #acf-advanced-settings.postbox .inside, +.acf-admin-single-taxonomy #acf-advanced-settings.postbox .inside { + padding-bottom: 24px; +} +.acf-admin-single-post-type .postbox-container .meta-box-sortables #acf-basic-settings .inside, +.acf-admin-single-taxonomy .postbox-container .meta-box-sortables #acf-basic-settings .inside { + border: none; +} +.acf-admin-single-post-type .acf-input-wrap, +.acf-admin-single-taxonomy .acf-input-wrap { + overflow: visible; +} +.acf-admin-single-post-type .acf-field, +.acf-admin-single-taxonomy .acf-field { + margin-top: 0; + margin-right: 0; + margin-bottom: 24px; + margin-left: 0; +} +.acf-admin-single-post-type .acf-field .acf-label, +.acf-admin-single-taxonomy .acf-field .acf-label { + margin-bottom: 6px; +} +.acf-admin-single-post-type .acf-field-text, +.acf-admin-single-post-type .acf-field-textarea, +.acf-admin-single-post-type .acf-field-select, +.acf-admin-single-taxonomy .acf-field-text, +.acf-admin-single-taxonomy .acf-field-textarea, +.acf-admin-single-taxonomy .acf-field-select { + max-width: 600px; +} +.acf-admin-single-post-type .acf-field-true-false, +.acf-admin-single-taxonomy .acf-field-true-false { + max-width: 700px; +} +.acf-admin-single-post-type .acf-field-supports, +.acf-admin-single-taxonomy .acf-field-supports { + max-width: 600px; +} +.acf-admin-single-post-type .acf-field-supports .acf-label, +.acf-admin-single-taxonomy .acf-field-supports .acf-label { + display: block; +} +.acf-admin-single-post-type .acf-field-supports .acf-label .description, +.acf-admin-single-taxonomy .acf-field-supports .acf-label .description { + margin-top: 4px; + margin-bottom: 12px; +} +.acf-admin-single-post-type .acf-field-supports .acf_post_type_supports, +.acf-admin-single-taxonomy .acf-field-supports .acf_post_type_supports { + display: flex; + flex-wrap: wrap; + justify-content: flex-start; + align-content: flex-start; + align-items: flex-start; +} +.acf-admin-single-post-type .acf-field-supports .acf_post_type_supports:focus-within, +.acf-admin-single-taxonomy .acf-field-supports .acf_post_type_supports:focus-within { + border-color: transparent; +} +.acf-admin-single-post-type .acf-field-supports .acf_post_type_supports li, +.acf-admin-single-taxonomy .acf-field-supports .acf_post_type_supports li { + flex: 0 0 25%; +} +.acf-admin-single-post-type .acf-field-supports .acf_post_type_supports li a.button, +.acf-admin-single-taxonomy .acf-field-supports .acf_post_type_supports li a.button { + background-color: transparent; + padding: 0; + border: 0; + height: auto; + min-height: auto; + margin-top: 0; + border-radius: 0; + line-height: 22px; +} +.acf-admin-single-post-type .acf-field-supports .acf_post_type_supports li a.button:before, +.acf-admin-single-taxonomy .acf-field-supports .acf_post_type_supports li a.button:before { + content: ""; + margin-right: 6px; + display: inline-flex; + width: 16px; + height: 16px; + background-color: currentColor; + border: none; + border-radius: 0; + -webkit-mask-size: contain; + mask-size: contain; + -webkit-mask-repeat: no-repeat; + mask-repeat: no-repeat; + -webkit-mask-position: center; + mask-position: center; + text-indent: 500%; + white-space: nowrap; + overflow: hidden; + -webkit-mask-image: url("../../images/icons/icon-add.svg"); + mask-image: url("../../images/icons/icon-add.svg"); +} +.acf-admin-single-post-type .acf-field-supports .acf_post_type_supports li a.button:hover, +.acf-admin-single-taxonomy .acf-field-supports .acf_post_type_supports li a.button:hover { + color: #044E71; +} +.acf-admin-single-post-type .acf-field-supports .acf_post_type_supports li input[type=text], +.acf-admin-single-taxonomy .acf-field-supports .acf_post_type_supports li input[type=text] { + width: calc(100% - 36px); + padding: 0; + box-shadow: none; + border: none; + border-bottom: 1px solid #D0D5DD; + border-radius: 0; + height: auto; + margin: 0; + min-height: auto; +} +.acf-admin-single-post-type .acf-field-supports .acf_post_type_supports li input[type=text]:focus, +.acf-admin-single-taxonomy .acf-field-supports .acf_post_type_supports li input[type=text]:focus { + outline: none; + border-bottom-color: #399CCB; +} +.acf-admin-single-post-type .acf-field-seperator, +.acf-admin-single-taxonomy .acf-field-seperator { + margin-top: 40px; + margin-bottom: 40px; + border-top: 1px solid #EAECF0; + border-right: none; + border-bottom: none; + border-left: none; +} +.acf-admin-single-post-type .acf-field-advanced-configuration, +.acf-admin-single-taxonomy .acf-field-advanced-configuration { + margin-bottom: 0; +} +.acf-admin-single-post-type .postbox-container .acf-tab-wrap, +.acf-admin-single-post-type .acf-regenerate-labels-bar, +.acf-admin-single-taxonomy .postbox-container .acf-tab-wrap, +.acf-admin-single-taxonomy .acf-regenerate-labels-bar { + position: relative; + top: -48px; + left: -48px; + width: calc(100% + 96px); +} +.acf-admin-single-post-type .acf-regenerate-labels-bar, +.acf-admin-single-taxonomy .acf-regenerate-labels-bar { + display: flex; + align-items: center; + justify-content: right; + min-height: 48px; + margin-bottom: 0; + padding-right: 16px; + padding-left: 16px; + gap: 8px; + border-bottom-width: 1px; + border-bottom-style: solid; + border-bottom-color: #F2F4F7; +} +.acf-admin-single-post-type .acf-labels-tip, +.acf-admin-single-taxonomy .acf-labels-tip { + display: inline-flex; + align-items: center; + min-height: 24px; + margin-right: 8px; + padding-left: 16px; + border-left-width: 1px; + border-left-style: solid; + border-left-color: #EAECF0; +} +.acf-admin-single-post-type .acf-labels-tip .acf-icon, +.acf-admin-single-taxonomy .acf-labels-tip .acf-icon { + display: inline-flex; + align-items: center; + width: 16px; + height: 16px; + -webkit-mask-size: 16px; + mask-size: 16px; + background-color: #98A2B3; +} +.acf-admin-single-post-type .acf-select2-default-pill, +.acf-admin-single-taxonomy .acf-select2-default-pill { + border-radius: 100px; + min-height: 20px; + padding-top: 2px; + padding-bottom: 2px; + padding-left: 8px; + padding-right: 8px; + font-size: 11px; + margin-left: 6px; + background-color: #EAECF0; + color: #667085; +} + +/*--------------------------------------------------------------------------------------------- +* +* Field picker modal +* +*---------------------------------------------------------------------------------------------*/ +.acf-modal.acf-browse-fields-modal { + width: 1120px; + height: 664px; + top: 50%; + right: auto; + bottom: auto; + left: 50%; + transform: translate(-50%, -50%); + display: flex; + flex-direction: row; + border-radius: 12px; + box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.04), 0px 8px 16px rgba(0, 0, 0, 0.08); + overflow: hidden; +} +.acf-modal.acf-browse-fields-modal .acf-field-picker { + display: flex; + flex-direction: column; + flex-grow: 1; + width: 760px; + background: #fff; +} +.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-title, +.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content, +.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-toolbar { + position: relative; +} +.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-title { + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: center; + background: #F9FAFB; + border: none; + padding: 35px 32px; +} +.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-title .acf-search-field-types-wrap { + position: relative; +} +.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-title .acf-search-field-types-wrap:after { + content: ""; + display: block; + position: absolute; + top: 11px; + left: 10px; + width: 18px; + height: 18px; + -webkit-mask-image: url("../../images/icons/icon-search.svg"); + mask-image: url("../../images/icons/icon-search.svg"); + background-color: #98A2B3; + border: none; + border-radius: 0; + -webkit-mask-size: contain; + mask-size: contain; + -webkit-mask-repeat: no-repeat; + mask-repeat: no-repeat; + -webkit-mask-position: center; + mask-position: center; + text-indent: 500%; + white-space: nowrap; + overflow: hidden; +} +.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-title .acf-search-field-types-wrap input { + width: 280px; + height: 40px; + margin: 0; + padding-left: 32px; + box-shadow: none; +} +.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content { + top: auto; + bottom: auto; + padding: 0; + height: 100%; +} +.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-tab-group { + padding-left: 32px; +} +.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-types-tab { + display: flex; +} +.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-types-tab, +.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-type-search-results { + flex-direction: row; + flex-wrap: wrap; + gap: 24px; + padding: 32px; +} +.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-types-tab .acf-field-type, +.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-type-search-results .acf-field-type { + position: relative; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + isolation: isolate; + width: 120px; + height: 120px; + background: #F9FAFB; + border: 1px solid #EAECF0; + border-radius: 8px; + box-sizing: border-box; + color: #1D2939; + text-decoration: none; +} +.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-types-tab .acf-field-type:hover, .acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-types-tab .acf-field-type:active, .acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-types-tab .acf-field-type.selected, +.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-type-search-results .acf-field-type:hover, +.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-type-search-results .acf-field-type:active, +.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-type-search-results .acf-field-type.selected { + background: #EBF5FA; + border: 1px solid #399CCB; + box-shadow: inset 0 0 0 1px #399CCB; +} +.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-types-tab .acf-field-type .field-type-icon, +.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-type-search-results .acf-field-type .field-type-icon { + border: none; + background: none; + top: 0; +} +.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-types-tab .acf-field-type .field-type-icon:before, +.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-type-search-results .acf-field-type .field-type-icon:before { + width: 22px; + height: 22px; +} +.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-types-tab .acf-field-type .field-type-label, +.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-type-search-results .acf-field-type .field-type-label { + margin-top: 12px; +} +.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-types-tab .field-type-requires-pro, +.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-type-search-results .field-type-requires-pro { + display: flex; + justify-content: center; + align-items: center; + position: absolute; + top: -10px; + right: -10px; + height: 21px; + color: white; + background: linear-gradient(90.52deg, #3E8BFF 0.44%, #A45CFF 113.3%); + background-size: 140% 20%; + background-position: 100% 0; + border-radius: 100px; + font-size: 11px; + padding-right: 6px; + padding-left: 6px; +} +.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-types-tab .field-type-requires-pro i, +.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-type-search-results .field-type-requires-pro i { + width: 12px; + height: 12px; + margin-right: 2px; +} +.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-toolbar { + display: flex; + align-items: flex-start; + justify-content: space-between; + height: auto; + min-height: 72px; + padding-top: 0; + padding-right: 32px; + padding-bottom: 0; + padding-left: 32px; + margin: 0; + border: none; +} +.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-toolbar .acf-select-field, +.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-toolbar .acf-btn-pro { + min-width: 160px; + justify-content: center; +} +.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-toolbar .acf-insert-field-label { + min-width: 280px; + box-shadow: none; +} +.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-toolbar .acf-field-picker-actions { + display: flex; + gap: 8px; +} +.acf-modal.acf-browse-fields-modal .acf-field-type-preview { + display: flex; + flex-direction: column; + width: 360px; + background-color: #F9FAFB; + background-image: url("../../images/field-preview-grid.png"); + background-size: 740px; + background-repeat: no-repeat; + background-position: center bottom; + border-left: 1px solid #EAECF0; + box-sizing: border-box; + padding: 32px; +} +.acf-modal.acf-browse-fields-modal .acf-field-type-preview .field-type-desc { + margin: 0; + padding: 0; + color: #667085; +} +.acf-modal.acf-browse-fields-modal .acf-field-type-preview .field-type-preview-container { + display: inline-flex; + justify-content: center; + width: 100%; + margin-top: 24px; + padding-top: 32px; + padding-bottom: 32px; + background-color: rgba(255, 255, 255, 0.64); + border-radius: 8px; + box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.04), 0px 8px 24px rgba(0, 0, 0, 0.04); +} +.acf-modal.acf-browse-fields-modal .acf-field-type-preview .field-type-image { + max-width: 232px; +} +.acf-modal.acf-browse-fields-modal .acf-field-type-preview .field-type-info { + flex-grow: 1; +} +.acf-modal.acf-browse-fields-modal .acf-field-type-preview .field-type-info .field-type-name { + font-size: 21px; + margin-top: 0; + margin-right: 0; + margin-bottom: 16px; + margin-left: 0; +} +.acf-modal.acf-browse-fields-modal .acf-field-type-preview .field-type-info .field-type-upgrade-to-unlock { + display: inline-flex; + justify-items: center; + align-items: center; + min-height: 24px; + margin-bottom: 12px; + padding-right: 8px; + padding-left: 8px; + background: linear-gradient(90.52deg, #3E8BFF 0.44%, #A45CFF 113.3%); + background-size: 140% 20%; + background-position: 100% 0; + border-radius: 100px; + color: white; + text-decoration: none; + font-size: 11px; +} +.acf-modal.acf-browse-fields-modal .acf-field-type-preview .field-type-info .field-type-upgrade-to-unlock i.acf-icon { + width: 14px; + height: 14px; + margin-right: 4px; +} +.acf-modal.acf-browse-fields-modal .acf-field-type-preview .field-type-links { + display: flex; + align-items: center; + gap: 24px; + min-height: 40px; +} +.acf-modal.acf-browse-fields-modal .acf-field-type-preview .field-type-links .acf-icon { + width: 18px; + height: 18px; +} +.acf-modal.acf-browse-fields-modal .acf-field-type-preview .field-type-links:before { + display: none; +} +.acf-modal.acf-browse-fields-modal .acf-field-type-preview .field-type-links a { + display: flex; + gap: 6px; + text-decoration: none; +} +.acf-modal.acf-browse-fields-modal .acf-field-type-preview .field-type-links a:hover { + text-decoration: underline; +} +.acf-modal.acf-browse-fields-modal .acf-field-type-search-results, +.acf-modal.acf-browse-fields-modal .acf-field-type-search-no-results { + display: none; +} +.acf-modal.acf-browse-fields-modal.is-searching .acf-tab-wrap, +.acf-modal.acf-browse-fields-modal.is-searching .acf-field-types-tab, +.acf-modal.acf-browse-fields-modal.is-searching .acf-field-type-search-no-results { + display: none !important; +} +.acf-modal.acf-browse-fields-modal.is-searching .acf-field-type-search-results { + display: flex; +} +.acf-modal.acf-browse-fields-modal.no-results-found .acf-tab-wrap, +.acf-modal.acf-browse-fields-modal.no-results-found .acf-field-types-tab, +.acf-modal.acf-browse-fields-modal.no-results-found .acf-field-type-search-results, +.acf-modal.acf-browse-fields-modal.no-results-found .field-type-info, +.acf-modal.acf-browse-fields-modal.no-results-found .field-type-links, +.acf-modal.acf-browse-fields-modal.no-results-found .acf-field-picker-toolbar { + display: none !important; +} +.acf-modal.acf-browse-fields-modal.no-results-found .acf-modal-title { + border-bottom-width: 1px; + border-bottom-style: solid; + border-bottom-color: #EAECF0; +} +.acf-modal.acf-browse-fields-modal.no-results-found .acf-field-type-search-no-results { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + height: 100%; + gap: 6px; +} +.acf-modal.acf-browse-fields-modal.no-results-found .acf-field-type-search-no-results img { + margin-bottom: 19px; +} +.acf-modal.acf-browse-fields-modal.no-results-found .acf-field-type-search-no-results p { + margin: 0; +} +.acf-modal.acf-browse-fields-modal.no-results-found .acf-field-type-search-no-results p.acf-no-results-text { + display: flex; +} +.acf-modal.acf-browse-fields-modal.no-results-found .acf-field-type-search-no-results .acf-invalid-search-term { + max-width: 200px; + overflow: hidden; + text-overflow: ellipsis; + display: inline-block; +} + +/*--------------------------------------------------------------------------------------------- +* +* Hide browse fields button for smaller screen sizes +* +*---------------------------------------------------------------------------------------------*/ +@media only screen and (max-width: 1080px) { + .acf-btn.browse-fields { + display: none; + } +} + +/*# sourceMappingURL=acf-global.css.map*/ \ No newline at end of file diff --git a/assets/build/css/acf-global.css.map b/assets/build/css/acf-global.css.map new file mode 100644 index 0000000..6c51bf8 --- /dev/null +++ b/assets/build/css/acf-global.css.map @@ -0,0 +1 @@ +{"version":3,"file":"acf-global.css","mappings":";;;AAAA,gBAAgB;ACAhB;;;;8FAAA;AAMA;AAOA;AAQA;AAgBA;;;;8FAAA;ACrCA;;;;8FAAA;ACCA;;;;8FAAA;AAMA;AACA;EACC;EACA;EACA;EACA;EACA;AHkBD;;AGhBA;EACC;EACA;EACA;EACA;AHmBD;;AGjBA;EACC;AHoBD;;AGjBA;AACA;;;;;;EAMC;EACA;EACA;AHoBD;;AGlBA;;;EAGC;AHqBD;;AGlBA;AACA;EACC;EACA;EACA;EACA;EACA;AHqBD;;AGnBA;EACC;EACA;EACA;EACA;AHsBD;;AGnBA;AACA;EACC;AHsBD;;AGpBA;EACC;AHuBD;AGtBC;EACC;AHwBF;;AGpBA;AACA;EACC;AHuBD;;AGrBA;EACC;AHwBD;;AGtBA;EACC;AHyBD;;AGtBA;AACA;EACC;AHyBD;;AGvBA;EACC;AH0BD;;AGxBA;EACC;AH2BD;;AGxBA;AACA;;EAEC;EACA;EACA;EACA;EACA;AH2BD;;AGxBA;AACA;EACC;AH2BD;;AGxBA;EACC;AH2BD;;AGxBA;AACA;EACC;AH2BD;;AGxBA;AACA;EACC;AH2BD;;AGxBA;AACA;;EAEC;AH2BD;;AGxBA;AACA;EACC;EACA;EACA;EACA;EAEA;EACA;AH0BD;;AGvBA;EACC;EACA;EACA;EACA;EAEA;EACA;AHyBD;;AGtBA;AACA;EACC;AHyBD;;AGvBA;EACC;AH0BD;;AGvBA;EACC;AH0BD;;AGxBA;EACC;AH2BD;;AGxBA;AACA;EACC;EACA;EACA;EACA;AH2BD;;AGxBA;;;;+FAAA;AAMA;AACA;EACC,mBF7HU;EE8HV,kBF/FW;EEgGX,cFpIU;EEsIT;EACA;EACA;EACA;EAED;EAEA;EACA;EACA;EAGA;EASA;AHaD;AGrBC;EACC;EACA;EACA;EACA;EACA;AHuBF;AGnBC;EACC;AHqBF;AGnBE;EACC;EACA;EACA;EACA;EACA;AHqBH;AGjBC;EACC;AHmBF;AGjBE;EACC;EACA;EACA;EACA;EACA;AHmBH;AGfC;EACC;AHiBF;AGfE;EACC;EACA;EACA;EACA;EACA;AHiBH;AGbC;EACC;AHeF;AGbE;EACC;EACA;EACA;EACA;EACA;AHeH;AGXC;EACC;AHaF;;AGTA;AACA;EACC;AHYD;AGVC;EACC;EACA;AHYF;AGVE;EACC;AHYH;AGTE;EACC;AHWH;;AGNA;EACC;EACA;EACA;EACA;EACA;EACA;AHSD;;AGNA;EACC;EACA;AHSD;;AGNA;;;;+FAAA;AAKA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AHSD;AGPC;ED3RA;EACA;EACA;EACA;AFqSD;;AGRA;;;;8FAAA;AAKA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AHWD;AGTC;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AHWF;;AGNA;EACC;AHSD;;AGPA;EACC;AHUD;;AGRA;EACC;EACA;AHWD;;AGTA;EACC;AHYD;;AGVA;EACC;AHaD;;AGXA;EACC;EAGA;AHYD;;AGVA;EACC;EAGA;AHWD;;AGTA;EACC;EAGA;AHUD;;AGRA;EACC;EAGA;AHSD;;AGPA;EACC;AHUD;;AGRA;EACC;EAGA;EACA;AHSD;;AGPA;EACC;AHUD;;AGRA;EACC;EAGA;AHSD;;AGPA;EACC;EAGA;AHQD;;AGNA;EACC;AHSD;;AGPA;EACC;EAGA;AHQD;;AGNA;EACC;EAGA;AHOD;;AGLA;EACC;AHQD;;AGNA;EACC;AHSD;;AGLA;EACC;AHQD;AGPC;EAEC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AHQF;AGNC;EACC;EACA;AHQF;AGNC;EACC;AHQF;;AGJA;EACC;AHOD;AGNC;EAEC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AHOF;AGLC;EACC;EACA;AHOF;AGLC;EACC;AHOF;;AGFA;EACC;EAGA;AHGD;;AGDA;EACC;EAGA;AHED;;AGEA;EACC;EACA;EACA;AHCD;;AGGA;EACC;EACA;EACA;EACA;EACA;EACA;AHAD;AGGC;EACC;EACA;EACA;AHDF;AGGC;EAEC;EACA;EACA;AHFF;AGMC;EAEC;EACA;AHLF;;AGUA;EACC;EACA;EACA;AHPD;;AGWA;EACC;EACA;EACA;AHRD;;AGYA;EACC;EACA;EACA;AHTD;;AGYC;EACC;EACA;AHTF;AGWC;EAEC;AHVF;;AGeA;EACC;EACA;EACA;AHZD;AGcC;EACC;EACA;AHZF;AGcC;EAEC;AHbF;;AGkBA;;EAEC;EACA;EACA;EACA;AHfD;AGoBE;;;EAGC;AHlBH;;AGuBA;;;;8FAAA;AAKA;EACC;EACA;EACA;EACA;EAEA;EA8CA;AHlED;AGqBC;EACC;EACA;EACA;AHnBF;AGqBE;EACC;EACA;EACA;EACA;EACA;EACA;AHnBH;AGuBC;EACC;AHrBF;AGwBC;EACC;EACA;EACA;EACA;EACA;AHtBF;AGyBC;EACC;AHvBF;AG0BC;EACC;AHxBF;AG2BC;EACC;AHzBF;AG6BE;EACC;AH3BH;AGgCC;EACC;EACA;EACA;EACA;AH9BF;AGgCE;EACC;AH9BH;AE7kBC;ECinBC,qBF1nBiB;ADylBnB;AGkCE;;EAEC,qBF7nBgB;AD6lBnB;;AGqCA;;;;8FAAA;AAMA;EACC;EACA;EACA;EACA;EACA;EACA,mBFtqBY;EEuqBZ;AHnCD;AGqCC;EACC;EACA;EACA;EACA;EACA;AHnCF;AGsCC;EACC;EACA;EACA;EACA;EACA;EACA;EACA;AHpCF;AGqCE;EACC;AHnCH;AGwCC;EACC;AHtCF;AG0CC;EACC,mBFpsBU;EEqsBV;AHxCF;AG4CC;EACC,mBFzsBY;EE0sBZ;AH1CF;AG8CC;EACC,mBF9sBY;EE+sBZ;AH5CF;;AGgDA;;;;8FAAA;AAMA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EAmBA;EAcA;EAoBA;AHjGD;AG+CE;;;;EAEC;EACA;EACA;EACA;EACA;EACA;AH3CH;AG8CE;;EACC;EACA;AH3CH;AGkDG;EACC,qBF5uBe;EE6uBf;AHhDJ;AGkDI;EACC;AHhDL;AGwDE;EACC;AHtDH;AGwDG;EACC,qBF3vBe;EE4vBf;AHtDJ;AGwDI;EACC;AHtDL;AG0DG;EACC;AHxDJ;AG8DC;EACC;AH5DF;AGgEG;;;;EAEC;EACA;AH5DJ;;AGkEA;AACA;EACC;EACA;EACA;EACA;EAEA;EACA;AHhED;;AGmEA;AACA;EACC;EACA;EACA;EACA;EAEA;EACA;AHjED;;AGoEA;;;;+FAAA;AAMA;;;EAGC;EACA;EACA;AHlED;AGoEC;;;EACC;EAEC;EAED;EACA;AHlEF;;AGsEA;EACC;EACA;AHnED;AGqEC;EACC;EACA;EACA;AHnEF;AE5vBC;ECo0BC,qBF50BmB;ADuwBrB;;AGyEA;EACC;EACA;AHtED;;AGyEA;;;;8FAAA;AAOC;EACC;AHxEF;AG2EC;EACC;AHzEF;AG4EC;EACC;AH1EF;AG4EE;EACC;AH1EH;;AG+EA;;;;8FAAA;AAMA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;AH7ED;AGgFC;EACC;EACA;EACA;EACA;EACA;EACA;EACA;AH9EF;AGiFC;EACC;EACA;EACA;EACA;AH/EF;AGmFC;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AHjFF;AEr0BC;EACC;AFu0BF;AGkFE;EACC;EACA;AHhFH;AGmFG;EACC;EACA;EACA;AHjFJ;AGoFI;EACC;EACA;AHlFL;AGuFE;EACC;EAGA;EACA;AHvFH;AG2FE;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AHzFH;AG2FG;ED78BF;EACA;EACA;EACA;AFq3BD;;AG6FA;EACC;EACA;AH1FD;AG6FC;EACC;EACA;AH3FF;AG6FE;EACC;AH3FH;AGgGC;EACC;AH9FF;;AGkGA;;;;8FAAA;AAMA;EACC;EACA;EACA;AHhGD;AEh6BC;EACC;EACA;EACA;AFk6BF;AG8FC;EACC;EACA;EACA;AH5FF;AG+FC;EACC;EACA;EACA;EACA;AH7FF;AGgGC;EACC;EACA;AH9FF;AGiGC;EACC;EACA;EACA;EACA;AH/FF;AGkGC;EACC;EACA;EACA;AHhGF;AGmGC;EACC;EACA;AHjGF;AGoGC;EACC;AHlGF;AGsGC;EACC;;IAEC;IACA;IACA;IACA;EHpGD;AACF;;AGyGA;;EAEC;AHtGD;;AG0GA;EACC;AHvGD;;AG0GA;;;;8FAAA;AAOC;EACC;EACA;AHzGF;AG4GC;EACC;EACA;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LC;EACC;EACA;EACA;EACA;EAEA;EACA;EACA;EAEA;EACA;AHxLF;AG6LE;EAEC;AH5LH;;AGmMC;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AHhMF;AGkME;EACC;EACA;AHhMH;AGmME;;EAEC;EACA;AHjMH;AGqMC;EACC;EACA;EACA;EACA;EACA;EACA;AHnMF;AGsMC;EACC;AHpMF;AGsME;EACC;AHpMH;AGuME;;EAEC;EACA;AHrMH;AGyME;EACC;AHvMH;AG0ME;EACC;AHxMH;AG6MC;EACC;IACC;EH3MD;EG6MA;IACC;EH3MD;AACF;;AG+MA;;;;+FAAA;AAKA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AH5MD;AG8MC;;;EAGC;EACA;EACA;EACA;AH5MF;AG+MC;EACC;EACA;EACA;AH7MF;AG+ME;EACC;EACA;EACA;AH7MH;AG+ME;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AH7MH;AG8MG;EACC;AH5MJ;AGiNC;EACC;EACA;EACA;EACA;EACA;AH/MF;AGkNC;EACC;EACA;EACA;EACA;EACA;EACA;EACA;AHhNF;AGkNE;EACC;EACA;AHhNH;AGoNC;EACC;EACA;EACA;EACA;AHlNF;AGoNE;EACC;AHlNH;AGuNC;EAjFD;IAkFE;IACA;IACA;IACA;EHpNA;AACF;;AGsNA;EACC;EACA;EACA;EACA;EACA;EACA,mBFxvDU;EEyvDV;EACA;AHnND;;AGsNA;;;;+FAAA;AAMA;EAMC;;IAEC;IACA;EHzNA;AACF;AG4NA;;;;8FAAA;AAOC;EAEE;EACA;EACA;EACA;AH7NH;AGgOE;EARD;IAUG;IACA;EH9NF;AACF;AGkOC;EAEE;EACA;AHjOH;AGoOE;EAND;IAQG;IACA;EHlOF;AACF;AGuOE;EADD;IAGG;EHrOF;AACF;;AG0OA;;;;+FAAA;AAMC;;EAEC;EACA,kBFxyDU;EEyyDV,6CFryDa;AD6jDf;AG0OE;;EAEE;EACA;EACA;EACA;AHxOJ;AG4OE;;EAEE;EACA;EACA;EACA;EAGA;EACA;EACA;EACA;AH5OJ;AGg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;AL+7EH;AK57EE;;;;;EACC,cJYQ;ADs7EX;AKt7EE;EACC,yBJLQ;EIMR,cJFQ;AD07EX;AK56EE;;EAEC;AL86EH;AKp6EC;EACC;EAEC;EACA;EAED;EACA;ALo6EF;AK55EC;EACC;EACA;EAEC;EACA;EAED;EACA;EACA;AL45EF;AKz5EE;EAEC,cJ1CQ;ADo8EX;AKv5EE;EACC;EACA;EACA;EACA;EACA;EACA;EACA;ALy5EH;AKn5EE;EAEE;EACA;EAED;ALm5EH;AK14EC;;EAEC;EACA;EACA;EACA;EAEC;EACA;EACA,qBJ9FQ;EIgGT;EACA;AL04EF;AKx4EE;;EACC,yBJ5FQ;EI6FR,qBJxFQ;ADm+EX;AKx4EE;;;EAEC,yBJlGQ;EImGR,qBJ9FQ;ADy+EX;AKz4EG;;;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AL64EJ;AKx4EE;;EACC;AL24EH;AKx4EE;;EACC,yBJvIQ;EIwIR,qBJrIQ;ADghFX;AKj4EI;;;EACC;ALq4EL;AKp3EG;EACC;ALs3EJ;AKr2EG;EACC;ALu2EJ;AKx1EE;;;;EAGE;AL21EJ;AKv1EE;;EAEE;ALy1EJ;AKt1EG;;EAEE;ALw1EL;AKj1EE;;EACC;EACA;EACA;ALo1EH;AK10EC;EACC;EACA;EACA;EACA,yBJzOS;EI0OT;AL40EF;AK10EE;EACC,yBJ5OQ;ADwjFX;AKz0EE;EACC;AL20EH;AKx0EE;EACC,yBJvOQ;ADijFX;AKx0EG;EACC,yBJzOO;ADmjFX;AKv0EG;EACC;ALy0EJ;AKp0EE;;EAEC;ALs0EH;AKn0EE;EACC;EACA;EACA;EACA;EACA;ALq0EH;AKh0EC;EACC;EACA;ALk0EF;AKh0EE;EACC;EACA;EACA;EAEC;EACA;EACA;ALi0EJ;AK9zEG;EAEE;AL+zEL;AK3zEG;EAEE;AL4zEL;AKxzEG;EACC;EAEC;EACA;ALyzEL;AK/yEG;EAEE;EACA;ALgzEL;AK5yEG;EAEE;EACA;AL6yEL;AKjyEC;EACC;EACA;EAEC;EAGA;EACA;EACA;EACA;EAED;EACA;EACA,kBJxTU;EI0TT;EACA;EACA,qBJlVQ;EIoVT;AL6xEF;AK3xEE;EACC,qBJtVQ;EIuVR;EACA;AL6xEH;AKlxEC;EACC;EACA;EACA;EAEC;EACA;EAED;EACA;EACA;EACA,qBJ/WS;EIgXT,kBJ1VU;EI4VV,cJlXS;ADmoFX;AK/wEE;EACC;EACA,qBJtXQ;EIuXR,cJvXQ;ADwoFX;AK/wEE;EACC;EACA,0BJ7VO;EI8VP,cJ5XQ;AD6oFX;AKvwEC;EACC;ALywEF;AK/vEE;EACC;EACA;ALiwEH;AK9vEE;EACC;EAEC;EACA;EAED;EAEC;EACA;EACA,qBJ9aO;EIgbR,6CJvYY;EIwYZ,kBJ7YS;EI+YT,cJ/aQ;AD0qFX;AKxvEE;EACC,0BJ3YO;EI4YP,qBJ3aQ;EI4aR,kBJrZS;AD+oFZ;AKxvEG;EACC;AL0vEJ;AKrvEI;EACC;EACA;ALuvEL;AKhvEI;EACC;EACA;ALkvEL;AK3uEE;EACC;EAEC;AL4uEJ;AKzuEG;EACC;EACA;AL2uEJ;AKtuEE;EAEE;EACA;EACA;EACA;ALuuEJ;AKnuEE;EACC;EACA;EAEC;EACA;EAED;EACA;EACA;EACA;ALmuEH;AKjuEG;EACC;EAEA;EACA,WAFY;EAGZ,YAHY;EAIZ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,yBJtgBO;ADwuFX;AK/tEG;EACC,yBJ7fO;AD8tFX;AKrtEC;EACC;EACA;EACA;ALutEF;AKrtEE;EAEC,WADY;EAEZ,YAFY;EAGZ,yBJ/hBQ;ADqvFX;AKntEE;EAEE;ALotEJ;AKhtEE;EAEE;ALitEJ;AKtsEC;EACC;EACA;EACA;EACA;ALwsEF;AKtsEW;EACR;EACA;ALwsEH;;AKrsEE;EACC;EACA;ALwsEH;AK1rEE;;;;;;;;EACC;ALmsEH;AK/rEG;;;;;;;;EACC;EACA;EACA;EACA;EACA;EAEC;EACA;EACA;EACA;ALusEL;AKpsEG;;;;;;;;EACC;EACA;EACA;EAEC;AL4sEL;AKzsEI;;;;;;;;EACC;EACA;ALktEL;AK5sEE;;;;;;;;EACC;EACA;ALqtEH;AKltEE;;;;;;;;EACC;EACA;AL2tEH;AKxtEE;;;;;;;;EACC;EACA;EACA;EACA;ALiuEH;AK7tEE;;;;;;;;EACC;ALsuEH;AKpuEY;EACR;ALsuEJ;;AKjuEE;;;;;;;;EACC;EACA;EACA;EACA;EACA;AL2uEH;AKzuEG;;;;;;;;EACC;EAEA;EACA;EACA;EACA;EACA;EACA,WANY;EAOZ,YAPY;EAQZ;EACA;EACA,yBJ/pBO;EIgqBP;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;ALivEJ;AK9uEG;;;;;;;;EACC;ALuvEJ;AK9uEG;;;;;;;;EACC;EACA;ALuvEJ;AKhvEC;EACC;EACA;EACA;EACA;EACA;ALkvEF;AKjvEE;EACC;EACA;EACA;EACA;EACA;ALmvEH;AKhvEW;EAER;ALivEH;;AK7uEE;EACC;ALgvEH;AK9uEY;EACR;ALgvEJ;;AK3uEE;EACC;EACA;EACA;AL8uEH;AK3uEI;EACC;EAEA;EACA;EACA;EACA;EACA,WALY;EAMZ,YANY;EAOZ;EACA;EACA,yBJ/uBM;EIgvBN;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AL4uEL;AK1uEc;EACR;EACA;AL4uEN;;AKvuEG;EACC;EAEA;EACA;EACA;EACA;ALyuEJ;AKvuEa;EACR;EACA;ALyuEL;;AKtuEI;EACC,yBJlxBM;EImxBN;ALyuEL;AKnuEE;EACC;ALquEH;AKjuEG;EACC;EACA;ALmuEJ;AK9tEE;EACC;EACA;EACA;EACA;EAEC;EACA;EACA;EACA;EAED;AL8tEH;AK5tEG;EACC;EACA;EACA;EAEC;EAED;AL4tEJ;AK1tEI;EACC;EACA;AL4tEL;AKrtEE;EACC;EACA;ALutEH;AKrtEG;EACC;EAEA;EACA;EACA,WAHY;EAIZ,YAJY;EAKZ;EACA;EACA,yBJn0BO;EIo0BP;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;ALstEJ;AKptEa;EACR;EACA;ALstEL;;AKjtEE;EACC;EACA;EACA;EACA;EACA,yBJ72BQ;EI+2BP;EACA;EACA,yBJ/2BO;EIk3BP;EACA;EACA,4BJp3BO;EIs3BR,cJp3BQ;EIq3BR;EAEC;EAGA;EACA;EACA;EACA;EAED;AL4sEH;AK7rEG;;;EACA;EACA;ALisEH;;AKvrEC;;EACC;EACA;AL2rEF;;AMvoGA;;;;+FAAA;AAQC;EACC;ANuoGF;AMnoGC;EACC;ANqoGF;AMjoGC;EAEE;EACA;EACA;EACA;EAED,kBL2DU;EK1DV;EACA;EACA,6CL4Da;ADqkGf;AM/nGE;EACC,cLiBQ;EKhBR;ANioGH;AM9nGE;EACC;EACA;ANgoGH;AM7nGE;;EAEC,cLSQ;ADsnGX;AM7nGG;;EACC;ANgoGJ;AM7nGG;;EAEE;EACA;EACA;AN+nGL;AM5nGI;EAPD;;IAQE;IAEC;IACA;EN+nGJ;AACF;AM1nGG;;EACC;EACA;AN6nGJ;AM1nGG;;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,mBLjCO;EKkCP;EACA;EACA;EACA,cLjCO;AD8pGX;AM1nGG;;EACC,cLxCO;ADqqGX;AMxnGE;;EAEC;EAEC;EACA;EAED;EACA,yBLxDQ;EKyDR,qBLvDQ;EKyDR;ANunGH;AMrnGG;EAbD;;IAeG;IACA;ENwnGH;AACF;AMpnGI;EADD;;IAEE;ENwnGH;AACF;AMlnGE;;EAEC;EACA;EAEC;EACA;EACA;EACA;EAED;EACA;EAEC;EACA,4BLzFO;EK0FP;ANinGJ;AM7mGG;EAnBD;;IAqBG;IACA;ENgnGH;AACF;AM3mGE;EACC;AN6mGH;AMzmGE;EACC;EACA;EACA;EACA;EACA;EAEC;EAED,cLnHQ;AD4tGX;AMrmGE;EACC;EACA;EACA;EACA;EAEC;EAED;EACA,cLhIQ;ADquGX;AMlmGE;EAEC,cLpIQ;ADuuGX;AM/lGE;;EAEC;ANimGH;AM/lGG;;EAEE;ANimGL;AM1lGE;EACC;IAAoB;EN6lGrB;AACF;AM1lGG;EACC;EACA;EACA;EACA;AN4lGJ;AMrlGG;EAEE;EACA;ANslGL;AMllGG;EAEE;EACA;ANmlGL;AM5kGC;EAEE;EAGA;EACA;EACA;EACA;EAGD;EACA,cLpMS;AD6wGX;AMvkGE;EACC,cL7OS;ADszGZ;AMlkGC;;EAGE;ANmkGH;;AM7jGA;;;;8FAAA;AAUE;EACC;AN2jGH;AMxjGE;EACC;AN0jGH;AMzjGG;EAAU;AN4jGb;AMzjGE;EAEE;EAED;ANyjGH;;AMjjGA;;;;8FAAA;AAOC;;EAEC;ANkjGF;;AM7iGA;;;;+FAAA;AAOC;EAEE;EACA;EACA;EACA;EAGA;EACA;EACA;EACA;EAED,cLtRS;ADg0GX;;AMriGA;;;;8FAAA;AAKA;EAEE;EACA;EACA;EACA;ANuiGF;AMpiGC;EACC;EAEC;EACA;EACA;EACA;ANqiGH;AMjiGC;EAlBD;IAmBE;IACA;IACA;IACA;IACA;ENoiGA;EMliGA;IACC;ENoiGD;AACF;;AM7hGC;EAEE;EACA;AN+hGH;AM3hGC;EARD;IASE;IACA;IACA;IACA;EN8hGA;AACF;;AM3hGA;;;;8FAAA;AAKA;EACC;EACA;EACA;EAEC;AN6hGF;AM1hGC;EAEE;EACA;EAED,cLpWS;AD83GX;AMvhGE;EACC,cLvWQ;ADg4GX;;AMlhGA;;;;8FAAA;AAOC;EACC;EACA;ANmhGF;AMjhGE;EACC;ANmhGH;AMhhGE;EAEE;EACA;EACA;EACA;ANihGJ;AM7gGE;EACC;EACA;AN+gGH;AM7gGG;EAEE;EACA;EACA;EACA;AN8gGL;AM3gGI;EAEE;AN4gGN;AMngGE;EACC;ANqgGH;;AM9/FA;;;;8FAAA;AAKA;EACC;EACA;EACA;EACA;EACA;EAEC;EACA;EACA;EACA;EAGA;EACA;EACA;EACA;EAED;AN6/FD;AM1/FC;EAIC;EACA;EACA;EACA;EACA;EAEC;ANw/FH;AMp/FE;EAEC;EACA;EACA;EACA;EACA;EACA;EACA;EAEA,yBL3cQ;EK4cR;EACA,uBAXY;EAYZ,eAZY;EAaZ;EACA;EACA;EACA;ANo/FH;AM9+FC;EACC;EACA;ANg/FF;AM5+FC;EACC;EACA;AN8+FF;AM1+FC;EACC;EACA;AN4+FF;AMx+FC;EACC;EACA;AN0+FF;AMt+FC;EACC,qBLhfS;EKifT;ANw+FF;AMt+FE;EACC,yBLpfQ;AD49GX;AMl+FC;EACC;ANo+FF;AMl+FE;EACC,yBL7gBQ;ADi/GX;;AM79FA;;;;+FAAA;AAKA;;;EAGC;EACA;EAEC;EACA;AN+9FF;AM59FC;;;;;;;;;EAGC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;ANo+FF;AMl+FE;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGC;AN4/FH;AMz/FE;;;;;;;;;EAGE;EACA;EAED;EACA,cLxjBQ;ADwjHX;AM7/FE;;;;;;;;;EAGE;EACA;EAED;EACA,cLpkBQ;ADwkHX;AMlgGG;;;;;;;;;EACC;EACA;EAEC;AN2gGL;AMngGE;;;;;;;;;EACC;EAEC;AN4gGJ;AMxgGE;;;;;;;;;EAEE;ANihGJ;AM1gGE;;;EACC;EACA;AN8gGH;AMzgGE;;;EACC;EACA;AN6gGH;;AMngGC;;;;;;;;;;;;;;;;EAIC;ANkhGF;AM7gGE;;;;;;EAEC;ANmhGH;;AM5gGA;EACC;AN+gGD;;AM5gGA;;;;+FAAA;AAOC;EACC;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EAEA,yBLjpBS;EKkpBT;EACA,uBATY;EAUZ,eAVY;EAWZ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AN2gGF;AMxgGC;EACC;EACA;AN0gGF;;AMrgGA;;;;+FAAA;AAOC;EAEC;;;IAGC;ENqgGD;AACF;;AOtvHA;;;;+FAAA;AAKA;EACC;EACA;EACA;EACA;EACA,mBNyCU;EMxCV,cNqCU;ADotHX;AOvvHC;EACC;EACA;EACA;EACA;EACA;APyvHF;AOvvHE;EACC;EACA;APyvHH;AOtvHE;EACC;EACA;APwvHH;AOrvHE;EACC;EACA;APuvHH;AOrvHG;EAJD;IAKE;EPwvHF;AACF;AOpvHC;EAnCD;IAoCE;EPuvHA;AACF;AOrvHC;EACC;EAEC;EAED;APqvHF;AOnvHE;EAEE;APovHJ;AOhvHE;EACC;EACA;EACA;APkvHH;AO9uHC;EACC;EACA,cNtBS;ADswHX;AO7uHC;EACC;EACA;EACA;EACA;EAEC;EAGA;EACA;EACA;EACA;EAGA;EACA;EACA;EAED,kBNLU;EMOV,cN1CS;EM2CT;APwuHF;AOtuHE;EACC,yBN5CQ;EM6CR;APwuHH;AOtuHE;EACC,yBNhDQ;EMiDR,cNvDQ;AD+xHX;AOtuHE;EAEE;EACA;EACA,qBNxDO;AD+xHX;AOpuHE;EACC;APsuHH;AOhuHG;EACC,yBNlEO;EMmEP,cNzEO;AD2yHX;AO9tHE;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EAEC;EACA;EACA;EACA;EAGA;EACA;EACA;EACA;EAED,kBNzDS;EM0DT;AP4tHH;AO1tHG;EACC;EACA;AP4tHJ;AOztHI;EACC;EACA;EACA,cNpGM;EMqGN;EAEC;EACA;EACA,4BNhHK;AD00HX;AOvtHK;EAEC;EACA,cNtGK;AD8zHX;AOrtHK;EACC;EAEA,WADY;EAEZ,YAFY;EAGZ,uBAHY;EAIZ,eAJY;EAKZ;APstHN;AO/sHK;EACC;APitHN;AO3sHG;EAEC;AP4sHJ;AOvsHG;EACC;APysHJ;AOnsHC;EACC;EACA;EAEC;EACA;EACA;EACA;APosHH;AO/rHC;EACC;IACC;EPisHD;AACF;;AOxrHE;EACC;AP2rHH;;AOnrHC;EACC;EACA;APsrHF;AOprHE;EAEE;EACA;APqrHJ;AOhrHC;EAEE;EACA;APirHH;;AO5qHA;;;;+FAAA;AAQE;;EACC;EAEC;EACA;AP4qHJ;AOzqHG;;EACC;EACA;EAEA,WADY;EAEZ,YAFY;EAGZ,uBAHY;EAIZ,eAJY;EAMX;EACA;AP0qHL;AO7pHG;;;;;;;EACC;APqqHJ;AO/pHG;;;EACC,yBN9PO;ADi6HX;AO7pHE;EAEE;EACA;AP8pHJ;AOvpHE;EAEC,mEADW;EAEX,2DAFW;AP0pHd;AOlpHE;EAEC,gEADW;EAEX,wDAFW;APqpHd;AO7oHE;EAEC,iEADW;EAEX,yDAFW;APgpHd;AOxoHE;EAEC,4DADW;EAEX,oDAFW;AP2oHd;AOnoHE;EAEC,8DADW;EAEX,sDAFW;APsoHd;AO9nHE;EAEC,oEADW;EAEX,4DAFW;APioHd;;AQ3+HA;;;;+FAAA;AAOC;EACC;AR4+HF;AQz+HC;EACC;AR2+HF;;AQt+HA;;;;+FAAA;AAKA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EAEC;EAGA;EACA;EACA;EACA;EAED;EACA,6CPgDc;ADq7Hf;AQn+HC;EACC;EACA;EACA;EACA;EACA,iBPkDU;ADm7HZ;AQl+HC;EAEE;EACA;EACA;EACA;EAGA;EACA;EACA;EACA;ARi+HH;AQ79HC;EA3CD;IA4CE;ERg+HA;AACF;AQ99HC;EA/CD;IAgDE;IACA;IACA;IACA;IAEC;ERg+HD;AACF;AQ79HC;EACC;EACA;EACA;AR+9HF;AQ79HE;EALD;IAME;ERg+HD;EQ99HC;;IAEC;ERg+HF;EQ79HC;IAEE;ER89HH;AACF;AQv9HC;EACC;EACA;EACA;EACA;EACA;EACA;ARy9HF;AQv9HE;EACC;EACA;EACA;ARy9HH;AQr9HC;EACC;ARu9HF;AQr9HE;EAHD;IAIE;ERw9HD;AACF;AQr9HC;EACC;ARu9HF;AQr9HE;EAEE;ARs9HJ;AQl9HE;EACC,yBP1FQ;EO2FR;EACA;EACA;ARo9HH;;AQ78HA;;;;+FAAA;AAKA;EACC;EACA;EACA;EAEC;EAED;AR88HD;AQ58HC;EATD;IAUE;IACA;IACA;IAEC;IAGA;IACA;ER48HD;AACF;AQz8HC;EAtBD;IAuBE;IACA;ER48HA;AACF;AQv8HE;EAFD;IAGE;IACA;IACA;IACA;IACA;ER08HD;EQx8HC;IACC;ER08HF;EQv8HC;IACC;IACA;IACA;ERy8HF;EQv8HE;IACC;IACA;IACA;IACA;ERy8HH;AACF;AQj8HC;EAEE;ARk8HH;;AQ57HA;;EAEC;EACA;AR+7HD;AQ77HC;;EAEE;EACA;AR+7HH;AQ17HE;;EAEE;EACA;AR47HJ;;ASrqIA;;;;+FAAA;AAKA;EACC;EACA;EACA;EACA;EAEC;EACA;EACA;EACA;EAED,yBR6CU;EQ5CV,kBRkEW;EQhEV;EACA;EACA;EAED;EACA;EACA;EACA;AToqID;ASlqIC;EACC;AToqIF;ASjqIC;EACC,yBR6BS;EQ5BT;EACA;ATmqIF;AShqIC;EACC;EAEC;EACA;EACA;EACA;ATiqIH;AS5pIC;EACC;EACA;EACA,qBRSS;ADqpIX;AS5pIE;EACC;AT8pIH;AS1pIC;EACC;EACA;EACA,qBRfS;AD2qIX;AS1pIE;EACC;EACA,qBRlBQ;AD8qIX;ASxpIC;EACC;EACA;EACA;AT0pIF;ASxpIE;EACC;AT0pIH;AStpIC;EACC,oERFa;EQGb;EACA;EACA;ATwpIF;AStpIE;EACC;ATwpIH;;ASnpIA;;;;+FAAA;AAMC;EAEC,WADY;EAEZ,YAFY;EAGZ,uBAHY;EAIZ,eAJY;EAMX;EACA;ATmpIH;AS9oIE;EAEC,WADY;EAEZ,YAFY;EAGZ,uBAHY;EAIZ,eAJY;EAMX;EACA;AT8oIJ;;ASvoIC;EAEE;EACA;ATyoIH;ASpoIE;EAEE;EACA;ATqoIJ;;AS/nIA;;;;+FAAA;AAMC;EACC;EACA;EACA;ATioIF;;AUzxIA;;;;8FAAA;AAOC;;EAEC;EACA,WAFY;EAGZ,YAHY;EAIZ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AV0xIF;;AUtxIA;;;;8FAAA;AAKA;EA0JC;;;;gGAAA;AVooID;AU3xIC;EACC;EAEA;EAEA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EAEA;EAEA;EACA;EAEA;EACA;EAEA,6CT8Ba;ES7Bb;EAEA;EAEA;EACA;EACA;AVoxIF;AUjxIC;EACC;EACA;AVmxIF;AUhxIC;EACC;EACA;AVkxIF;AU/wIC;EACC;EACA;AVixIF;AU9wIC;EACC;EACA;AVgxIF;AU7wIC;EACC;EACA;AV+wIF;AU5wIC;EACC;EACA;AV8wIF;AU3wIC;EACC;EACA;AV6wIF;AU1wIC;EACC;EACA;AV4wIF;AU1wIE;EAEC;AV2wIH;AUvwIC;EACC;EACA;AVywIF;AUtwIC;EACC;EACA;AVwwIF;AUrwIC;EACC;EACA;AVuwIF;AUpwIC;;EAEC;EACA;AVswIF;AUnwIC;;EAEC;EACA;AVqwIF;AUlwIC;EACC;EACA;AVowIF;AUjwIC;;EAEC;EACA;AVmwIF;AUhwIC;;EAEC;EACA;AVkwIF;AU/vIC;EACC;EACA;AViwIF;AU9vIC;EACC;EACA;AVgwIF;AU7vIC;EACC;EACA;AV+vIF;AU5vIC;EACC;EACA;AV8vIF;AU3vIC;EACC;EACA;AV6vIF;AU1vIC;EACC;EACA;AV4vIF;AUnvIE;;EACC;AVsvIH;AUpvIG;;EAEC;EACA,WAFY;EAGZ,YAHY;EAIZ,yBTzJO;ES0JP;EACA;EACA,uBAPY;EAQZ,eARY;EASZ;EACA;EACA;EACA;EACA;EACA;AVsvIJ;AUpvII;;EACC;AVuvIL;;AUhvIA;;;;8FAAA;AAUE;;;;;;;;;;;;EAEC;EACA;EACA;EACA;AVwvIH;AUtvIG;;;;;;;;;;;;EACC;EAEA;EACA,WAFY;EAGZ,YAHY;EAKX;EAED,yBTvMO;ESwMP;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AVgwIJ;;AUpvIG;;;;;;;;EAEE;EACA;AV6vIL;;AUrvIA;;;EAGC;EACA;AVwvID;;AUpvIA;EACC;EACA;AVuvID;;AUnvIA;EACC;EACA;AVsvID;;AU/uIC;;EACC;EACA;AVmvIF;;AU7uIA;EACC;EACA;EACA;EACA;EACA;AVgvID;;AU7uIA;;;;8FAAA;AAYC;;;;;;EACC;AV8uIF;AU5uIE;;;;;;EACC;EAEA;EACA,WAFY;EAGZ,YAHY;EAIZ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AVkvIH;AU3uIG;;;;;;EACC;EACA;AVkvIJ;;AU5uIA;;;;+FAAA;AAUE;;;;;;;;EAEC;EACA;EACA;EACA;AVgvIH;AU9uIG;;;;;;;;EACC;EAEA;EACA,WAFY;EAGZ,YAHY;EAKX;EAED,yBTrVO;ESsVP;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AVovIJ;AUxuII;;;;;;;;EAEE;EACA;AVgvIN;;AUvuIA;EACC;EACA;AV0uID;;AUtuIA;EACC;EACA;AVyuID;;AUruIA;EACC;EACA;AVwuID;;AUpuIA;EACC;EACA;AVuuID;;AUpuIA;;;;8FAAA;AAMC;EAEC,WADY;EAEZ,YAFY;AVuuId;;AW1qJA;;;;8FAAA;AAKA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,yBVyCU;EUvCT;EACA;EACA,qBVuCS;EUrCV;AX2qJD;AWzqJC;EAEC;EACA,WAFY;EAGZ,YAHY;EAIZ;EACA,yBVgCS;EU/BT;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AX0qJF;;AWrqJA;;;;8FAAA;AAOA;EACC;EACA;AXsqJD;;AWlqJA;EACC;EACA;AXqqJD;;AWjqJA;EACC;EACA;AXoqJD;;AWhqJA;EACC;EACA;AXmqJD;;AW/pJA;EACC;EACA;AXkqJD;;AW9pJA;EACC;EACA;AXiqJD;;AW7pJA;EACC;EACA;AXgqJD;;AW5pJA;EACC;EACA;AX+pJD;;AW3pJA;EACC;EACA;AX8pJD;;AW1pJA;EACC;EACA;AX6pJD;;AWzpJA;EACC;EACA;AX4pJD;;AWxpJA;EACC;EACA;AX2pJD;;AWvpJA;EACC;EACA;AX0pJD;;AWtpJA;EACC;EACA;AXypJD;;AWrpJA;EACC;EACA;AXwpJD;;AWppJA;EACC;EACA;AXupJD;;AWnpJA;EACC;EACA;AXspJD;;AWlpJA;EACC;EACA;AXqpJD;;AWjpJA;EACC;EACA;AXopJD;;AWhpJA;EACC;EACA;AXmpJD;;AW/oJA;EACC;EACA;AXkpJD;;AW9oJA;EACC;EACA;AXipJD;;AW7oJA;EACC;EACA;AXgpJD;;AW5oJA;EACC;EACA;AX+oJD;;AW3oJA;EACC;EACA;AX8oJD;;AW1oJA;EACC;EACA;AX6oJD;;AWzoJA;EACC;EACA;AX4oJD;;AWxoJA;EACC;EACA;AX2oJD;;AWvoJA;EACC;EACA;AX0oJD;;AWtoJA;EACC;EACA;AXyoJD;;AWroJA;EACC;EACA;AXwoJD;;AWpoJA;EACC;EACA;AXuoJD;;AWnoJA;EACC;EACA;AXsoJD;;AWloJA;EACC;EACA;AXqoJD;;AWhoJA;EACC;EACA;AXmoJD;;AW/nJA;EACC;EACA;AXkoJD;;AYx4JA;;;;+FAAA;AAOC;EACC;AZy4JF;AYt4JC;EAEE;EACA;EACA;EACA;AZu4JH;AYp4JE;EACC;EACA;EACA;EAEC;AZq4JJ;AYl4JG;EARD;IASE;EZq4JF;AACF;AY/3JC;EAEE;AZg4JH;AY53JC;EACC;EACA;EACA;EACA;EACA;AZ83JF;AY53JE;EAPD;IAQE;IACA;IACA;IACA;IACA;IACA;IACA;EZ+3JD;AACF;;AYz3JA;;;;+FAAA;AASE;EACC;AZw3JH;AYp3JE;EAEE;AZq3JJ;AYh3JE;EACC;EACA;EAEC;EACA;EACA;EACA;AZi3JJ;AY72JE;EAEE;EACA;EACA;EACA;EAED;AZ62JH;AY32JG;EACC;AZ62JJ;AY32JI;EACC;EACA;AZ62JL;AY12JI;EACC;AZ42JL;AYz2JI;EACC;EACA;EACA;AZ22JL;AYp2JE;EACC;AZs2JH;AYn2JE;EACC;AZq2JH;AYn2JG;EACC;EACA;EACA,cXpFO;ADy7JX;AYl2JI;EACC;AZo2JL;AY71JE;EAEE;EAGA;EACA;EACA,qBX1GO;EW4GR,kBXxES;ADm6JZ;AYz1JG;EACC;EACA;EACA;EACA;EACA;EACA;EAEC;EACA;EAGA;EACA;EACA,4BX7HM;ADq9JX;AYr1JI;EACC;AZu1JL;;AatgKA;;;;+FAAA;AAKA;EACC;EACA;EACA;EACA;EACA;EACA;AbygKD;;AatgKA;;;EAGC;AbygKD;;AatgKA;;;;+FAAA;AAOC;EAEE;EACA;EACA;EACA;AbsgKH;AangKE;EAEE;EACA;EACA;EACA;AbogKJ;AahgKE;EAjBD;IAkBE;EbmgKD;AACF;;Aa7/JA;;;;+FAAA;AAOC;EACC;EAEC;EACA;EACA;Ab6/JH;;Aav/JA;;;;+FAAA;AAKA;EACC;EAEC;Aby/JF;Aat/JC;EAND;IAQG;IACA;Ebw/JD;AACF;Aar/JC;EAEE;Abs/JH;Aal/JC;EACC;Abo/JF;Aaj/JC;EAEE;EACA;Abk/JH;Aa9+JC;EACC;Abg/JF;;Aa3+JA;;;;+FAAA;AAKA;EACC;EACA;Ab8+JD;Aa1+JE;;EAGE;EACA;EACA;EACA;EAGD,cZhFQ;ADyjKX;Aap+JC;EAEE;EACA;EAGA;EAGA;EACA;EACA,yBZrGQ;EYuGT,cZlGS;ADkkKX;Aa99JE;EAEE;Ab+9JJ;Aa39JE;EAEE;EACA;Ab49JJ;Aaz9JG;EAEE;Ab09JL;Aat9JG;EAEC,cZ1HO;ADilKX;Aah9JC;EACC;Abk9JF;;AcroKA;;;;8FAAA;AAOC;EACC;EACA;EACA;EAEC;EACA;EACA;EACA;EAED,oEb8Da;Ea7Db;EACA;EACA;EACA;EACA,kBb6DU;Ea5DV;AdooKF;AcloKE;EAlBD;IAmBE;EdqoKD;AACF;AcnoKE;EACC;AdqoKH;AcloKE;EACC;EACA;EACA;AdooKH;AcjoKE;EACC;EAEC;EACA;EAGD;EACA;EACA;AdgoKH;Ac7nKE;EAEC,WADY;EAEZ,YAFY;EAIX;EACA;EAED,yBbfQ;AD2oKX;;AcrnKA;;;;8FAAA;AAKA;;EAEC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,cbnCU;EaoCV;EACA;EACA;AdwnKD;ActnKC;EAfD;;IAgBE;IACA;Ed0nKA;AACF;AcxnKC;EApBD;;IAqBE;IACA;Ed4nKA;AACF;Ac1nKC;;EACC;Ad6nKF;Ac1nKC;;EACC;EACA;EACA;Ad6nKF;Ac1nKC;;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;Ad6nKF;Ac3nKE;EAXD;;IAYE;Ed+nKD;AACF;Ac7nKE;EAfD;;IAgBE;EdioKD;AACF;Ac/nKE;;;;EAEC;EACA;AdmoKH;AcjoKG;;;;EACC;EACA;EACA;EACA;EACA;AdsoKJ;AcjoKE;;EACC;EACA;AdooKH;AcloKG;;EACC;EACA;AdqoKJ;AcloKG;EATD;;IAUE;IACA;EdsoKF;AACF;AcloKE;EAlDD;;IAmDE;IACA;IACA;IACA;IACA;IACA;IACA;EdsoKD;EcpoKC;;IACC;IACA;EduoKF;AACF;AcpoKE;;EACC;EACA;EACA;AduoKH;AcroKG;;EACC;EACA;EACA;EACA;EACA,cbtIO;AD8wKX;AcroKG;EAbD;;IAcE;IACA;IAEC;IACA;EdwoKH;EcroKE;;;;IAEC;EdyoKH;AACF;AcpoKE;;EACC;EACA;EACA;EACA;EACA;AduoKH;AcroKG;EAPD;;IAQE;IACA;IACA;EdyoKF;EcvoKE;;IACC;IACA;IACA;Ed0oKH;AACF;AcroKE;;EACC;EACA;EACA;EACA;EACA;AdwoKH;ActoKG;;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AdyoKJ;AcvoKI;;EACC;EACA;EACA;EACA;Ad0oKL;AcxoKK;;EACC;EACA;EACA;Ad2oKN;AcxoKK;EACC;;IAAY;IAAa;Ed6oK7B;AACF;AczoKI;;EACC;EACA;Ad4oKL;AczoKI;;EACC;EACA;Ad4oKL;AczoKI;;EACC;EACA;EACA;EACA;EACA;Ad4oKL;AcxoKG;EAxDD;;IAyDE;IACA;IACA;Ed4oKF;Ec1oKE;;IACC;IACA;IACA;IACA;IACA;Ed6oKH;Ec1oKG;;IACC;IACA;Ed6oKJ;Ec1oKG;;IACC;Ed6oKJ;AACF;AczoKG;EAhFD;;IAiFE;IACA;IACA;IACA;IACA;IACA;Ed6oKF;Ec3oKE;;IACC;IACA;IACA;IACA;IACA;IACA;IACA;IACA;Ed8oKH;Ec5oKG;;IACC;Ed+oKJ;Ec5oKG;;IACC;IACA;Ed+oKJ;Ec7oKI;;IACC;IACA;EdgpKL;Ec5oKG;;IACC;IACA;Ed+oKJ;AACF;AcxoKC;;EAEE;EACA;EAGA;EACA;EAGD;EACA,cbtTS;AD47KX;AcpoKE;;EAEE;AdsoKJ;Ac/nKC;;EACC;EACA;EACA;EACA;EACA;EACA;EACA;AdkoKF;AchoKE;;EACC;AdmoKH;AchoKE;;EAEE;EACA;AdkoKJ;Ac9nKE;;EACC,oEbnTY;EaoTZ;EACA;EACA;EACA;EACA;AdioKH;Ac/nKG;;EACC;AdkoKJ;Ac7nKC;;EACC;EACA;EACA;EACA;EACA;EACA;EACA,cbtWS;EauWT;EACA;EACA;AdgoKF;Ac9nKE;;EACC;EACA;EACA;EACA;EACA;EACA;AdioKH;Ac9nKE;;EACC;EACA;EACA;EACA;AdioKH;Ac9nKE;;EACC,cb5XQ;Ea6XR;AdioKH;Ac/nKG;;EACC,cbjYO;ADmgLX;Ac/nKG;;EACC;EACA;EACA;AdkoKJ;Ac3nKG;;EACC;EACA;Ad8nKJ;AcznKE;EArDD;;IAsDE;IACA;Ed6nKD;Ec3nKC;;IACC;Ed8nKF;Ec3nKC;;IACC;IACA;Ed8nKF;Ec5nKE;;IACC;IACA;IACA;Ed+nKH;AACF;;AcrnKC;;;EACC;Ad0nKF;;AezlLA;;;;8FAAA;AAQC;;EACC;Af0lLF;AexlLC;;EACC;Af2lLF;AevlLE;;EACC;Af0lLH;AetlLC;;;;EAEC,iBd0EU;EczEV;Af0lLF;AevlLC;;EACC;Af0lLF;AeplLE;;;;EAEE;EACA;EACA;EACA;AfwlLJ;AellLE;;EAEE;AfolLJ;Ae/kLC;;EACC;AfklLF;Ae9kLC;;EACC;AfilLF;Ae7kLC;;EAEE;EACA;EACA;EACA;Af+kLH;Ae5kLE;;EAEE;Af8kLJ;AexkLC;;;;;;EAGC;Af6kLF;Ae1kLC;;EACC;Af6kLF;Ae1kLC;;EACC;Af6kLF;Ae3kLE;;EACC;Af8kLH;Ae5kLG;;EAEE;EACA;Af8kLL;AezkLE;;EACC;EACA;EACA;EACA;EACA;Af4kLH;Ae1kLG;;EACC;Af6kLJ;Ae1kLG;;EACC;Af6kLJ;Ae3kLI;;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;Af8kLL;Ae7kLK;;EACC;EAEA;EACA;EACA,WAHY;EAIZ,YAJY;EAKZ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;Af+kLN;Ae7kLK;;EACC,cdrFK;ADqqLX;Ae5kLI;;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;Af+kLL;Ae9kLK;;EACC;EACA,4BdxGK;ADyrLX;AezkLC;;EAEE;EACA;EAGA;EACA;EACA;EACA;AfykLH;AepkLC;;EAEE;AfskLH;AejkLC;;;;EAEC;EACA;EACA;EACA;AfqkLF;AejkLC;;EACC;EACA;EACA;EACA;EAEC;EAGA;EACA;EAED;EAEC;EACA;EACA,4Bd7KQ;AD4uLX;Ae1jLC;;EACC;EACA;EACA;EAEC;EAGA;EAGA;EACA;EACA,0Bd9LQ;ADsvLX;AerjLE;;EACC;EACA;EAEA,WADY;EAEZ,YAFY;EAGZ,uBAHY;EAIZ,eAJY;EAKZ,yBdvMQ;AD8vLX;AeljLC;;EACC;EACA;EAEC;EACA;EACA;EACA;EAED;EACA;EACA,yBdzNS;Ec0NT,cdvNS;AD0wLX;;AgB3zLA;;;;+FAAA;AAKA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,mBfsEW;EerEX;EAEA;AhB6zLD;AgB3zLC;EACC;EACA;EACA;EACA;EACA;AhB6zLF;AgB3zLE;;;EAGC;AhB6zLH;AgB1zLE;EACC;EACA;EACA;EACA;EACA,mBfMQ;EeLR;EACA;AhB4zLH;AgB1zLG;EACC;AhB4zLJ;AgB1zLI;EACC;EACA;EACA;EACA;EACA;EAEA,WADY;EAEZ,YAFY;EAGZ;EACA;EACA,yBfRM;EeSN;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AhB2zLL;AgBxzLI;EACC;EACA;EACA;EACA;EACA;AhB0zLL;AgBrzLE;EACC;EACA;EACA;EACA;AhBuzLH;AgBrzLG;EACC;AhBuzLJ;AgBpzLG;EACC;AhBszLJ;AgBnzLG;;EAEC;EACA;EACA;EACA;AhBqzLJ;AgBnzLI;;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,mBflEM;EemEN;EACA;EACA;EACA,cf9DM;Ee+DN;AhBszLL;AgBpzLK;;;;EAGC,mBfhEK;EeiEL;EACA;AhBuzLN;AgBpzLK;;EACC;EACA;EACA;AhBuzLN;AgBrzLM;;EACC;EACA;AhBwzLP;AgBpzLK;;EACC;AhBuzLN;AgBlzLI;;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,oEfxEU;EeyEV;EACA;EACA;EACA;EAEC;EACA;AhBozLN;AgBlzLK;;EACC;EACA;EACA;AhBqzLN;AgB/yLE;EACC;EACA;EACA;EACA;EACA;EAEC;EACA;EACA;EACA;EAED;EACA;AhB+yLH;AgB7yLG;;EAEC;EACA;AhB+yLJ;AgB5yLG;EACC;EACA;AhB8yLJ;AgB3yLG;EACC;EACA;AhB6yLJ;AgBxyLC;EACC;EACA;EACA;EACA,yBflKS;EemKT;EACA;EACA;EACA;EACA;EACA;EACA;AhB0yLF;AgBxyLE;EACC;EACA;EACA,cfzKQ;ADm9LX;AgBvyLE;EACC;EACA;EACA;EAEC;EAGA;EACA;EAED;EACA,kBfrJS;EesJT;AhBqyLH;AgBjyLE;EACC;AhBmyLH;AgBhyLE;EACC;AhBkyLH;AgBhyLG;EACC;EAEC;EACA;EACA;EACA;AhBiyLL;AgB7xLG;EACC;EACA;EACA;EACA;EAEC;EAGA;EACA;EAED,oEf5LW;Ee6LX;EACA;EACA;EACA;EACA;EACA;AhB2xLJ;AgBzxLI;EACC;EACA;EAEC;AhB0xLN;AgBpxLE;EACC;EACA;EACA;EACA;AhBsxLH;AgBpxLG;EAEC,WADY;EAEZ,YAFY;AhBuxLhB;AgBlxLG;EACC;AhBoxLJ;AgBjxLG;EACC;EACA;EACA;AhBmxLJ;AgBjxLI;EACC;AhBmxLL;AgB7wLC;;EAEC;AhB+wLF;AgB3wLE;;;EAGC;AhB6wLH;AgB1wLE;EACC;AhB4wLH;AgBvwLE;;;;;;EAMC;AhBywLH;AgBtwLE;EAEE;EACA;EACA,4Bf1SO;ADijMX;AgBnwLE;EACC;EACA;EACA;EACA;EACA;EACA;AhBqwLH;AgBnwLG;EACC;AhBqwLJ;AgBlwLG;EACC;AhBowLJ;AgBlwLI;EACC;AhBowLL;AgBhwLG;EACC;EACA;EACA;EACA;AhBkwLJ;;AgB5vLA;;;;+FAAA;AAKA;EACC;IACC;EhB+vLA;AACF,C","sources":["webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/sass/acf-global.scss","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/sass/_variables.scss","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/sass/_mixins.scss","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/sass/_global.scss","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/sass/_typography.scss","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/sass/_admin-inputs.scss","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/sass/_list-table.scss","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/sass/_admin-toolbar.scss","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/sass/_acf-headerbar.scss","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/sass/_btn.scss","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/sass/_icons.scss","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/sass/_field-type-icons.scss","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/sass/_tools.scss","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/sass/_updates.scss","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/sass/_pro-upgrade.scss","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/sass/_post-types-taxonomies.scss","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/sass/_field-picker.scss"],"sourcesContent":["@charset \"UTF-8\";\n/*--------------------------------------------------------------------------------------------\n*\n*\tVars\n*\n*--------------------------------------------------------------------------------------------*/\n/* colors */\n/* acf-field */\n/* responsive */\n/*--------------------------------------------------------------------------------------------\n*\n*\tACF 6 ↓\n*\n*--------------------------------------------------------------------------------------------*/\n/*--------------------------------------------------------------------------------------------\n*\n* Mixins\n*\n*--------------------------------------------------------------------------------------------*/\n/*--------------------------------------------------------------------------------------------\n*\n* Global\n*\n*--------------------------------------------------------------------------------------------*/\n/* Horizontal List */\n.acf-hl {\n padding: 0;\n margin: 0;\n list-style: none;\n display: block;\n position: relative;\n}\n\n.acf-hl > li {\n float: left;\n display: block;\n margin: 0;\n padding: 0;\n}\n\n.acf-hl > li.acf-fr {\n float: right;\n}\n\n/* Horizontal List: Clearfix */\n.acf-hl:before,\n.acf-hl:after,\n.acf-bl:before,\n.acf-bl:after,\n.acf-cf:before,\n.acf-cf:after {\n content: \"\";\n display: block;\n line-height: 0;\n}\n\n.acf-hl:after,\n.acf-bl:after,\n.acf-cf:after {\n clear: both;\n}\n\n/* Block List */\n.acf-bl {\n padding: 0;\n margin: 0;\n list-style: none;\n display: block;\n position: relative;\n}\n\n.acf-bl > li {\n display: block;\n margin: 0;\n padding: 0;\n float: none;\n}\n\n/* Visibility */\n.acf-hidden {\n display: none !important;\n}\n\n.acf-empty {\n display: table-cell !important;\n}\n.acf-empty * {\n display: none !important;\n}\n\n/* Float */\n.acf-fl {\n float: left;\n}\n\n.acf-fr {\n float: right;\n}\n\n.acf-fn {\n float: none;\n}\n\n/* Align */\n.acf-al {\n text-align: left;\n}\n\n.acf-ar {\n text-align: right;\n}\n\n.acf-ac {\n text-align: center;\n}\n\n/* loading */\n.acf-loading,\n.acf-spinner {\n display: inline-block;\n height: 20px;\n width: 20px;\n vertical-align: text-top;\n background: transparent url(../../images/spinner.gif) no-repeat 50% 50%;\n}\n\n/* spinner */\n.acf-spinner {\n display: none;\n}\n\n.acf-spinner.is-active {\n display: inline-block;\n}\n\n/* WP < 4.2 */\n.spinner.is-active {\n display: inline-block;\n}\n\n/* required */\n.acf-required {\n color: #f00;\n}\n\n/* Allow pointer events in reusable blocks */\n.acf-button,\n.acf-tab-button {\n pointer-events: auto !important;\n}\n\n/* show on hover */\n.acf-soh .acf-soh-target {\n -webkit-transition: opacity 0.25s 0s ease-in-out, visibility 0s linear 0.25s;\n -moz-transition: opacity 0.25s 0s ease-in-out, visibility 0s linear 0.25s;\n -o-transition: opacity 0.25s 0s ease-in-out, visibility 0s linear 0.25s;\n transition: opacity 0.25s 0s ease-in-out, visibility 0s linear 0.25s;\n visibility: hidden;\n opacity: 0;\n}\n\n.acf-soh:hover .acf-soh-target {\n -webkit-transition-delay: 0s;\n -moz-transition-delay: 0s;\n -o-transition-delay: 0s;\n transition-delay: 0s;\n visibility: visible;\n opacity: 1;\n}\n\n/* show if value */\n.show-if-value {\n display: none;\n}\n\n.hide-if-value {\n display: block;\n}\n\n.has-value .show-if-value {\n display: block;\n}\n\n.has-value .hide-if-value {\n display: none;\n}\n\n/* select2 WP animation fix */\n.select2-search-choice-close {\n -webkit-transition: none;\n -moz-transition: none;\n -o-transition: none;\n transition: none;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* tooltip\n*\n*---------------------------------------------------------------------------------------------*/\n/* tooltip */\n.acf-tooltip {\n background: #1D2939;\n border-radius: 6px;\n color: #D0D5DD;\n padding-top: 8px;\n padding-right: 12px;\n padding-bottom: 10px;\n padding-left: 12px;\n position: absolute;\n z-index: 900000;\n max-width: 280px;\n box-shadow: 0px 12px 16px -4px rgba(16, 24, 40, 0.08), 0px 4px 6px -2px rgba(16, 24, 40, 0.03);\n /* tip */\n /* positions */\n}\n.acf-tooltip:before {\n border: solid;\n border-color: transparent;\n border-width: 6px;\n content: \"\";\n position: absolute;\n}\n.acf-tooltip.top {\n margin-top: -8px;\n}\n.acf-tooltip.top:before {\n top: 100%;\n left: 50%;\n margin-left: -6px;\n border-top-color: #2f353e;\n border-bottom-width: 0;\n}\n.acf-tooltip.right {\n margin-left: 8px;\n}\n.acf-tooltip.right:before {\n top: 50%;\n margin-top: -6px;\n right: 100%;\n border-right-color: #2f353e;\n border-left-width: 0;\n}\n.acf-tooltip.bottom {\n margin-top: 8px;\n}\n.acf-tooltip.bottom:before {\n bottom: 100%;\n left: 50%;\n margin-left: -6px;\n border-bottom-color: #2f353e;\n border-top-width: 0;\n}\n.acf-tooltip.left {\n margin-left: -8px;\n}\n.acf-tooltip.left:before {\n top: 50%;\n margin-top: -6px;\n left: 100%;\n border-left-color: #2f353e;\n border-right-width: 0;\n}\n.acf-tooltip .acf-overlay {\n z-index: -1;\n}\n\n/* confirm */\n.acf-tooltip.-confirm {\n z-index: 900001;\n}\n.acf-tooltip.-confirm a {\n text-decoration: none;\n color: #9ea3a8;\n}\n.acf-tooltip.-confirm a:hover {\n text-decoration: underline;\n}\n.acf-tooltip.-confirm a[data-event=confirm] {\n color: #f55e4f;\n}\n\n.acf-overlay {\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n cursor: default;\n}\n\n.acf-tooltip-target {\n position: relative;\n z-index: 900002;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* loading\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-loading-overlay {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n cursor: default;\n z-index: 99;\n background: rgba(249, 249, 249, 0.5);\n}\n.acf-loading-overlay i {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tacf-icon\n*\n*--------------------------------------------------------------------------------------------*/\n.acf-icon {\n display: inline-block;\n height: 28px;\n width: 28px;\n border: transparent solid 1px;\n border-radius: 100%;\n font-size: 20px;\n line-height: 21px;\n text-align: center;\n text-decoration: none;\n vertical-align: top;\n box-sizing: border-box;\n}\n.acf-icon:before {\n font-family: dashicons;\n display: inline-block;\n line-height: 1;\n font-weight: 400;\n font-style: normal;\n speak: none;\n text-decoration: inherit;\n text-transform: none;\n text-rendering: auto;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n width: 1em;\n height: 1em;\n vertical-align: middle;\n text-align: center;\n}\n\n.acf-icon.-plus:before {\n content: \"\\f543\";\n}\n\n.acf-icon.-minus:before {\n content: \"\\f460\";\n}\n\n.acf-icon.-cancel:before {\n content: \"\\f335\";\n margin: -1px 0 0 -1px;\n}\n\n.acf-icon.-pencil:before {\n content: \"\\f464\";\n}\n\n.acf-icon.-location:before {\n content: \"\\f230\";\n}\n\n.acf-icon.-up:before {\n content: \"\\f343\";\n margin-top: -0.1em;\n}\n\n.acf-icon.-down:before {\n content: \"\\f347\";\n margin-top: 0.1em;\n}\n\n.acf-icon.-left:before {\n content: \"\\f341\";\n margin-left: -0.1em;\n}\n\n.acf-icon.-right:before {\n content: \"\\f345\";\n margin-left: 0.1em;\n}\n\n.acf-icon.-sync:before {\n content: \"\\f463\";\n}\n\n.acf-icon.-globe:before {\n content: \"\\f319\";\n margin-top: 0.1em;\n margin-left: 0.1em;\n}\n\n.acf-icon.-picture:before {\n content: \"\\f128\";\n}\n\n.acf-icon.-check:before {\n content: \"\\f147\";\n margin-left: -0.1em;\n}\n\n.acf-icon.-dot-3:before {\n content: \"\\f533\";\n margin-top: -0.1em;\n}\n\n.acf-icon.-arrow-combo:before {\n content: \"\\f156\";\n}\n\n.acf-icon.-arrow-up:before {\n content: \"\\f142\";\n margin-left: -0.1em;\n}\n\n.acf-icon.-arrow-down:before {\n content: \"\\f140\";\n margin-left: -0.1em;\n}\n\n.acf-icon.-search:before {\n content: \"\\f179\";\n}\n\n.acf-icon.-link-ext:before {\n content: \"\\f504\";\n}\n\n.acf-icon.-duplicate {\n position: relative;\n}\n.acf-icon.-duplicate:before, .acf-icon.-duplicate:after {\n content: \"\";\n display: block;\n box-sizing: border-box;\n width: 46%;\n height: 46%;\n position: absolute;\n top: 33%;\n left: 23%;\n}\n.acf-icon.-duplicate:before {\n margin: -1px 0 0 1px;\n box-shadow: 2px -2px 0px 0px currentColor;\n}\n.acf-icon.-duplicate:after {\n border: solid 2px currentColor;\n}\n\n.acf-icon.-trash {\n position: relative;\n}\n.acf-icon.-trash:before, .acf-icon.-trash:after {\n content: \"\";\n display: block;\n box-sizing: border-box;\n width: 46%;\n height: 46%;\n position: absolute;\n top: 33%;\n left: 23%;\n}\n.acf-icon.-trash:before {\n margin: -1px 0 0 1px;\n box-shadow: 2px -2px 0px 0px currentColor;\n}\n.acf-icon.-trash:after {\n border: solid 2px currentColor;\n}\n\n.acf-icon.-collapse:before {\n content: \"\\f142\";\n margin-left: -0.1em;\n}\n\n.-collapsed .acf-icon.-collapse:before {\n content: \"\\f140\";\n margin-left: -0.1em;\n}\n\nspan.acf-icon {\n color: #555d66;\n border-color: #b5bcc2;\n background-color: #fff;\n}\n\na.acf-icon {\n color: #555d66;\n border-color: #b5bcc2;\n background-color: #fff;\n position: relative;\n transition: none;\n cursor: pointer;\n}\na.acf-icon:hover {\n background: #f3f5f6;\n border-color: #0071a1;\n color: #0071a1;\n}\na.acf-icon.-minus:hover, a.acf-icon.-cancel:hover {\n background: #f7efef;\n border-color: #a10000;\n color: #dc3232;\n}\na.acf-icon:active, a.acf-icon:focus {\n outline: none;\n box-shadow: none;\n}\n\n.acf-icon.-clear {\n border-color: transparent;\n background: transparent;\n color: #444;\n}\n\n.acf-icon.light {\n border-color: transparent;\n background: #f5f5f5;\n color: #23282d;\n}\n\n.acf-icon.dark {\n border-color: transparent !important;\n background: #23282d;\n color: #eee;\n}\n\na.acf-icon.dark:hover {\n background: #191e23;\n color: #00b9eb;\n}\na.acf-icon.dark.-minus:hover, a.acf-icon.dark.-cancel:hover {\n color: #d54e21;\n}\n\n.acf-icon.grey {\n border-color: transparent !important;\n background: #b4b9be;\n color: #fff !important;\n}\n.acf-icon.grey:hover {\n background: #00a0d2;\n color: #fff;\n}\n.acf-icon.grey.-minus:hover, .acf-icon.grey.-cancel:hover {\n background: #32373c;\n}\n\n.acf-icon.small,\n.acf-icon.-small {\n width: 20px;\n height: 20px;\n line-height: 14px;\n font-size: 14px;\n}\n.acf-icon.small.-duplicate:before, .acf-icon.small.-duplicate:after,\n.acf-icon.-small.-duplicate:before,\n.acf-icon.-small.-duplicate:after {\n opacity: 0.8;\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tacf-box\n*\n*--------------------------------------------------------------------------------------------*/\n.acf-box {\n background: #ffffff;\n border: 1px solid #ccd0d4;\n position: relative;\n box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);\n /* title */\n /* footer */\n}\n.acf-box .title {\n border-bottom: 1px solid #ccd0d4;\n margin: 0;\n padding: 15px;\n}\n.acf-box .title h3 {\n display: flex;\n align-items: center;\n font-size: 14px;\n line-height: 1em;\n margin: 0;\n padding: 0;\n}\n.acf-box .inner {\n padding: 15px;\n}\n.acf-box h2 {\n color: #333333;\n font-size: 26px;\n line-height: 1.25em;\n margin: 0.25em 0 0.75em;\n padding: 0;\n}\n.acf-box h3 {\n margin: 1.5em 0 0;\n}\n.acf-box p {\n margin-top: 0.5em;\n}\n.acf-box a {\n text-decoration: none;\n}\n.acf-box i.dashicons-external {\n margin-top: -1px;\n}\n.acf-box .footer {\n border-top: 1px solid #ccd0d4;\n padding: 12px;\n font-size: 13px;\n line-height: 1.5;\n}\n.acf-box .footer p {\n margin: 0;\n}\n.acf-admin-3-8 .acf-box {\n border-color: #E5E5E5;\n}\n.acf-admin-3-8 .acf-box .title,\n.acf-admin-3-8 .acf-box .footer {\n border-color: #E5E5E5;\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tacf-notice\n*\n*--------------------------------------------------------------------------------------------*/\n.acf-notice {\n position: relative;\n display: block;\n color: #fff;\n margin: 5px 0 15px;\n padding: 3px 12px;\n background: #2a9bd9;\n border-left: #1f7db1 solid 3px;\n}\n.acf-notice p {\n font-size: 13px;\n line-height: 1.5;\n margin: 0.5em 0;\n text-shadow: none;\n color: inherit;\n}\n.acf-notice .acf-notice-dismiss {\n position: absolute;\n top: 9px;\n right: 12px;\n background: transparent !important;\n color: inherit !important;\n border-color: #fff !important;\n opacity: 0.75;\n}\n.acf-notice .acf-notice-dismiss:hover {\n opacity: 1;\n}\n.acf-notice.-dismiss {\n padding-right: 40px;\n}\n.acf-notice.-error {\n background: #d94f4f;\n border-color: #c92c2c;\n}\n.acf-notice.-success {\n background: #49ad52;\n border-color: #3a8941;\n}\n.acf-notice.-warning {\n background: #fd8d3b;\n border-color: #fc7009;\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tacf-table\n*\n*--------------------------------------------------------------------------------------------*/\n.acf-table {\n border: #ccd0d4 solid 1px;\n background: #fff;\n border-spacing: 0;\n border-radius: 0;\n table-layout: auto;\n padding: 0;\n margin: 0;\n width: 100%;\n clear: both;\n box-sizing: content-box;\n /* defaults */\n /* thead */\n /* tbody */\n /* -clear */\n}\n.acf-table > tbody > tr > th,\n.acf-table > tbody > tr > td,\n.acf-table > thead > tr > th,\n.acf-table > thead > tr > td {\n padding: 8px;\n vertical-align: top;\n background: #fff;\n text-align: left;\n border-style: solid;\n font-weight: normal;\n}\n.acf-table > tbody > tr > th,\n.acf-table > thead > tr > th {\n position: relative;\n color: #333333;\n}\n.acf-table > thead > tr > th {\n border-color: #d5d9dd;\n border-width: 0 0 1px 1px;\n}\n.acf-table > thead > tr > th:first-child {\n border-left-width: 0;\n}\n.acf-table > tbody > tr {\n z-index: 1;\n}\n.acf-table > tbody > tr > td {\n border-color: #eeeeee;\n border-width: 1px 0 0 1px;\n}\n.acf-table > tbody > tr > td:first-child {\n border-left-width: 0;\n}\n.acf-table > tbody > tr:first-child > td {\n border-top-width: 0;\n}\n.acf-table.-clear {\n border: 0 none;\n}\n.acf-table.-clear > tbody > tr > td,\n.acf-table.-clear > tbody > tr > th,\n.acf-table.-clear > thead > tr > td,\n.acf-table.-clear > thead > tr > th {\n border: 0 none;\n padding: 4px;\n}\n\n/* remove tr */\n.acf-remove-element {\n -webkit-transition: all 0.25s ease-out;\n -moz-transition: all 0.25s ease-out;\n -o-transition: all 0.25s ease-out;\n transition: all 0.25s ease-out;\n transform: translate(50px, 0);\n opacity: 0;\n}\n\n/* fade-up */\n.acf-fade-up {\n -webkit-transition: all 0.25s ease-out;\n -moz-transition: all 0.25s ease-out;\n -o-transition: all 0.25s ease-out;\n transition: all 0.25s ease-out;\n transform: translate(0, -10px);\n opacity: 0;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Fake table\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-thead,\n.acf-tbody,\n.acf-tfoot {\n width: 100%;\n padding: 0;\n margin: 0;\n}\n.acf-thead > li,\n.acf-tbody > li,\n.acf-tfoot > li {\n box-sizing: border-box;\n padding-top: 14px;\n font-size: 12px;\n line-height: 14px;\n}\n\n.acf-thead {\n border-bottom: #ccd0d4 solid 1px;\n color: #23282d;\n}\n.acf-thead > li {\n font-size: 14px;\n line-height: 1.4;\n font-weight: bold;\n}\n.acf-admin-3-8 .acf-thead {\n border-color: #dfdfdf;\n}\n\n.acf-tfoot {\n background: #f5f5f5;\n border-top: #d5d9dd solid 1px;\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tSettings\n*\n*--------------------------------------------------------------------------------------------*/\n.acf-settings-wrap #poststuff {\n padding-top: 15px;\n}\n.acf-settings-wrap .acf-box {\n margin: 20px 0;\n}\n.acf-settings-wrap table {\n margin: 0;\n}\n.acf-settings-wrap table .button {\n vertical-align: middle;\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tacf-popup\n*\n*--------------------------------------------------------------------------------------------*/\n#acf-popup {\n position: fixed;\n z-index: 900000;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n text-align: center;\n}\n#acf-popup .bg {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 0;\n background: rgba(0, 0, 0, 0.25);\n}\n#acf-popup:before {\n content: \"\";\n display: inline-block;\n height: 100%;\n vertical-align: middle;\n}\n#acf-popup .acf-popup-box {\n display: inline-block;\n vertical-align: middle;\n z-index: 1;\n min-width: 300px;\n min-height: 160px;\n border-color: #aaaaaa;\n box-shadow: 0 5px 30px -5px rgba(0, 0, 0, 0.25);\n text-align: left;\n}\nhtml[dir=rtl] #acf-popup .acf-popup-box {\n text-align: right;\n}\n#acf-popup .acf-popup-box .title {\n min-height: 15px;\n line-height: 15px;\n}\n#acf-popup .acf-popup-box .title .acf-icon {\n position: absolute;\n top: 10px;\n right: 10px;\n}\nhtml[dir=rtl] #acf-popup .acf-popup-box .title .acf-icon {\n right: auto;\n left: 10px;\n}\n#acf-popup .acf-popup-box .inner {\n min-height: 50px;\n padding: 0;\n margin: 15px;\n}\n#acf-popup .acf-popup-box .loading {\n position: absolute;\n top: 45px;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 2;\n background: rgba(0, 0, 0, 0.1);\n display: none;\n}\n#acf-popup .acf-popup-box .loading i {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n}\n\n.acf-submit {\n margin-bottom: 0;\n line-height: 28px;\n}\n.acf-submit span {\n float: right;\n color: #999;\n}\n.acf-submit span.-error {\n color: #dd4232;\n}\n.acf-submit .button {\n margin-right: 5px;\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tupgrade notice\n*\n*--------------------------------------------------------------------------------------------*/\n#acf-upgrade-notice {\n position: relative;\n background: #fff;\n padding: 20px;\n}\n#acf-upgrade-notice:after {\n display: block;\n clear: both;\n content: \"\";\n}\n#acf-upgrade-notice .col-content {\n float: left;\n width: 55%;\n padding-left: 90px;\n}\n#acf-upgrade-notice .notice-container {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n align-content: flex-start;\n}\n#acf-upgrade-notice .col-actions {\n float: right;\n text-align: center;\n}\n#acf-upgrade-notice img {\n float: left;\n width: 64px;\n height: 64px;\n margin: 0 0 0 -90px;\n}\n#acf-upgrade-notice h2 {\n display: inline-block;\n font-size: 16px;\n margin: 2px 0 6.5px;\n}\n#acf-upgrade-notice p {\n padding: 0;\n margin: 0;\n}\n#acf-upgrade-notice .button:before {\n margin-top: 11px;\n}\n@media screen and (max-width: 640px) {\n #acf-upgrade-notice .col-content,\n #acf-upgrade-notice .col-actions {\n float: none;\n padding-left: 90px;\n width: auto;\n text-align: left;\n }\n}\n\n#acf-upgrade-notice:has(.notice-container)::before,\n#acf-upgrade-notice:has(.notice-container)::after {\n display: none;\n}\n\n#acf-upgrade-notice:has(.notice-container) {\n padding-left: 20px !important;\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tWelcome\n*\n*--------------------------------------------------------------------------------------------*/\n.acf-wrap h1 {\n margin-top: 0;\n padding-top: 20px;\n}\n.acf-wrap .about-text {\n margin-top: 0.5em;\n min-height: 50px;\n}\n.acf-wrap .about-headline-callout {\n font-size: 2.4em;\n font-weight: 300;\n line-height: 1.3;\n margin: 1.1em 0 0.2em;\n text-align: center;\n}\n.acf-wrap .feature-section {\n padding: 40px 0;\n}\n.acf-wrap .feature-section h2 {\n margin-top: 20px;\n}\n.acf-wrap .changelog {\n list-style: disc;\n padding-left: 15px;\n}\n.acf-wrap .changelog li {\n margin: 0 0 0.75em;\n}\n.acf-wrap .acf-three-col {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n}\n.acf-wrap .acf-three-col > div {\n flex: 1;\n align-self: flex-start;\n min-width: 31%;\n max-width: 31%;\n}\n@media screen and (max-width: 880px) {\n .acf-wrap .acf-three-col > div {\n min-width: 48%;\n }\n}\n@media screen and (max-width: 640px) {\n .acf-wrap .acf-three-col > div {\n min-width: 100%;\n }\n}\n.acf-wrap .acf-three-col h3 .badge {\n display: inline-block;\n vertical-align: top;\n border-radius: 5px;\n background: #fc9700;\n color: #fff;\n font-weight: normal;\n font-size: 12px;\n padding: 2px 5px;\n}\n.acf-wrap .acf-three-col img + h3 {\n margin-top: 0.5em;\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tacf-hl cols\n*\n*--------------------------------------------------------------------------------------------*/\n.acf-hl[data-cols] {\n margin-left: -10px;\n margin-right: -10px;\n}\n.acf-hl[data-cols] > li {\n padding: 0 6px 0 10px;\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\n\n/* sizes */\n.acf-hl[data-cols=\"2\"] > li {\n width: 50%;\n}\n\n.acf-hl[data-cols=\"3\"] > li {\n width: 33.333%;\n}\n\n.acf-hl[data-cols=\"4\"] > li {\n width: 25%;\n}\n\n/* mobile */\n@media screen and (max-width: 640px) {\n .acf-hl[data-cols] {\n flex-wrap: wrap;\n justify-content: flex-start;\n align-content: flex-start;\n align-items: flex-start;\n margin-left: 0;\n margin-right: 0;\n margin-top: -10px;\n }\n .acf-hl[data-cols] > li {\n flex: 1 1 100%;\n width: 100% !important;\n padding: 10px 0 0;\n }\n}\n/*--------------------------------------------------------------------------------------------\n*\n*\tmisc\n*\n*--------------------------------------------------------------------------------------------*/\n.acf-actions {\n text-align: right;\n z-index: 1;\n /* hover */\n /* rtl */\n}\n.acf-actions.-hover {\n position: absolute;\n display: none;\n top: 0;\n right: 0;\n padding: 5px;\n z-index: 1050;\n}\nhtml[dir=rtl] .acf-actions.-hover {\n right: auto;\n left: 0;\n}\n\n/* ul compatibility */\nul.acf-actions li {\n float: right;\n margin-left: 4px;\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tRTL\n*\n*--------------------------------------------------------------------------------------------*/\nhtml[dir=rtl] .acf-fl {\n float: right;\n}\n\nhtml[dir=rtl] .acf-fr {\n float: left;\n}\n\nhtml[dir=rtl] .acf-hl > li {\n float: right;\n}\n\nhtml[dir=rtl] .acf-hl > li.acf-fr {\n float: left;\n}\n\nhtml[dir=rtl] .acf-icon.logo {\n left: 0;\n right: auto;\n}\n\nhtml[dir=rtl] .acf-table thead th {\n text-align: right;\n border-right-width: 1px;\n border-left-width: 0px;\n}\n\nhtml[dir=rtl] .acf-table > tbody > tr > td {\n text-align: right;\n border-right-width: 1px;\n border-left-width: 0px;\n}\n\nhtml[dir=rtl] .acf-table > thead > tr > th:first-child,\nhtml[dir=rtl] .acf-table > tbody > tr > td:first-child {\n border-right-width: 0;\n}\n\nhtml[dir=rtl] .acf-table > tbody > tr > td.order + td {\n border-right-color: #e1e1e1;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* acf-postbox-columns\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-postbox-columns {\n position: relative;\n margin-top: -11px;\n margin-bottom: -12px;\n margin-left: -12px;\n margin-right: 268px;\n}\n.acf-postbox-columns:after {\n display: block;\n clear: both;\n content: \"\";\n}\n.acf-postbox-columns .acf-postbox-main,\n.acf-postbox-columns .acf-postbox-side {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n padding: 0 12px 12px;\n}\n.acf-postbox-columns .acf-postbox-main {\n float: left;\n width: 100%;\n}\n.acf-postbox-columns .acf-postbox-side {\n float: right;\n width: 280px;\n margin-right: -280px;\n}\n.acf-postbox-columns .acf-postbox-side:before {\n content: \"\";\n display: block;\n position: absolute;\n width: 1px;\n height: 100%;\n top: 0;\n right: 0;\n background: #d5d9dd;\n}\n.acf-admin-3-8 .acf-postbox-columns .acf-postbox-side:before {\n background: #dfdfdf;\n}\n\n/* mobile */\n@media only screen and (max-width: 850px) {\n .acf-postbox-columns {\n margin: 0;\n }\n .acf-postbox-columns .acf-postbox-main,\n .acf-postbox-columns .acf-postbox-side {\n float: none;\n width: auto;\n margin: 0;\n padding: 0;\n }\n .acf-postbox-columns .acf-postbox-side {\n margin-top: 1em;\n }\n .acf-postbox-columns .acf-postbox-side:before {\n display: none;\n }\n}\n/*---------------------------------------------------------------------------------------------\n*\n* acf-panel\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-panel {\n margin-top: -1px;\n border-top: 1px solid #d5d9dd;\n border-bottom: 1px solid #d5d9dd;\n /* open */\n /* inside postbox */\n /* fields */\n}\n.acf-panel .acf-panel-title {\n margin: 0;\n padding: 12px;\n font-weight: bold;\n cursor: pointer;\n font-size: inherit;\n}\n.acf-panel .acf-panel-title i {\n float: right;\n}\n.acf-panel .acf-panel-inside {\n margin: 0;\n padding: 0 12px 12px;\n display: none;\n}\n.acf-panel.-open .acf-panel-inside {\n display: block;\n}\n.postbox .acf-panel {\n margin-left: -12px;\n margin-right: -12px;\n}\n.acf-panel .acf-field {\n margin: 20px 0 0;\n}\n.acf-panel .acf-field .acf-label label {\n color: #555d66;\n font-weight: normal;\n}\n.acf-panel .acf-field:first-child {\n margin-top: 0;\n}\n.acf-admin-3-8 .acf-panel {\n border-color: #dfdfdf;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Admin Tools\n*\n*---------------------------------------------------------------------------------------------*/\n#acf-admin-tools .notice {\n margin-top: 10px;\n}\n#acf-admin-tools .acf-meta-box-wrap {\n /* acf-fields */\n}\n#acf-admin-tools .acf-meta-box-wrap .inside {\n border-top: none;\n}\n#acf-admin-tools .acf-meta-box-wrap .acf-fields {\n margin-bottom: 24px;\n border: none;\n background: #fff;\n border-radius: 0;\n}\n#acf-admin-tools .acf-meta-box-wrap .acf-fields .acf-field {\n padding: 0;\n margin-bottom: 19px;\n border-top: none;\n}\n#acf-admin-tools .acf-meta-box-wrap .acf-fields .acf-label {\n margin-bottom: 16px;\n}\n#acf-admin-tools .acf-meta-box-wrap .acf-fields .acf-input {\n padding-top: 16px;\n padding-right: 16px;\n padding-bottom: 16px;\n padding-left: 16px;\n border-width: 1px;\n border-style: solid;\n border-color: #D0D5DD;\n border-radius: 6px;\n}\n#acf-admin-tools .acf-meta-box-wrap .acf-fields.import-cptui {\n margin-top: 19px;\n}\n\n.acf-meta-box-wrap .postbox {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\n.acf-meta-box-wrap .postbox .inside {\n margin-bottom: 0;\n}\n.acf-meta-box-wrap .postbox .hndle {\n font-size: 14px;\n padding: 8px 12px;\n margin: 0;\n line-height: 1.4;\n position: relative;\n z-index: 1;\n cursor: default;\n}\n.acf-meta-box-wrap .postbox .handlediv,\n.acf-meta-box-wrap .postbox .handle-order-higher,\n.acf-meta-box-wrap .postbox .handle-order-lower {\n display: none;\n}\n\n/* grid */\n.acf-meta-box-wrap.-grid {\n margin-left: 8px;\n margin-right: 8px;\n}\n.acf-meta-box-wrap.-grid .postbox {\n float: left;\n clear: left;\n width: 50%;\n margin: 0 0 16px;\n}\n.acf-meta-box-wrap.-grid .postbox:nth-child(odd) {\n margin-left: -8px;\n}\n.acf-meta-box-wrap.-grid .postbox:nth-child(even) {\n float: right;\n clear: right;\n margin-right: -8px;\n}\n\n/* mobile */\n@media only screen and (max-width: 850px) {\n .acf-meta-box-wrap.-grid {\n margin-left: 0;\n margin-right: 0;\n }\n .acf-meta-box-wrap.-grid .postbox {\n margin-left: 0 !important;\n margin-right: 0 !important;\n width: 100%;\n }\n}\n/* export tool */\n#acf-admin-tool-export {\n /* panel: selection */\n}\n#acf-admin-tool-export p {\n max-width: 800px;\n}\n#acf-admin-tool-export ul {\n display: flex;\n flex-wrap: wrap;\n width: 100%;\n}\n#acf-admin-tool-export ul li {\n flex: 0 1 33.33%;\n}\n@media screen and (max-width: 1600px) {\n #acf-admin-tool-export ul li {\n flex: 0 1 50%;\n }\n}\n@media screen and (max-width: 1200px) {\n #acf-admin-tool-export ul li {\n flex: 0 1 100%;\n }\n}\n#acf-admin-tool-export .acf-postbox-side ul {\n display: block;\n}\n#acf-admin-tool-export .acf-postbox-side .button {\n margin: 0;\n width: 100%;\n}\n#acf-admin-tool-export textarea {\n display: block;\n width: 100%;\n min-height: 500px;\n background: #F9FAFB;\n border-color: #D0D5DD;\n box-shadow: none;\n padding: 7px;\n border-radius: 6px;\n}\n#acf-admin-tool-export .acf-panel-selection .acf-label label {\n font-weight: bold;\n color: #344054;\n}\n\n#acf-admin-tool-import ul {\n column-width: 200px;\n}\n\n.acf-css-tooltip {\n position: relative;\n}\n.acf-css-tooltip:before {\n content: attr(aria-label);\n display: none;\n position: absolute;\n z-index: 999;\n bottom: 100%;\n left: 50%;\n transform: translate(-50%, -8px);\n background: #191e23;\n border-radius: 2px;\n padding: 5px 10px;\n color: #fff;\n font-size: 12px;\n line-height: 1.4em;\n white-space: pre;\n}\n.acf-css-tooltip:after {\n content: \"\";\n display: none;\n position: absolute;\n z-index: 998;\n bottom: 100%;\n left: 50%;\n transform: translate(-50%, 4px);\n border: solid 6px transparent;\n border-top-color: #191e23;\n}\n.acf-css-tooltip:hover:before, .acf-css-tooltip:hover:after, .acf-css-tooltip:focus:before, .acf-css-tooltip:focus:after {\n display: block;\n}\n\n.acf-diff .acf-diff-title {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: 40px;\n padding: 14px 16px;\n background: #f3f3f3;\n border-bottom: #dddddd solid 1px;\n}\n.acf-diff .acf-diff-title strong {\n font-size: 14px;\n display: block;\n}\n.acf-diff .acf-diff-title .acf-diff-title-left,\n.acf-diff .acf-diff-title .acf-diff-title-right {\n width: 50%;\n float: left;\n}\n.acf-diff .acf-diff-content {\n position: absolute;\n top: 70px;\n left: 0;\n right: 0;\n bottom: 0;\n overflow: auto;\n}\n.acf-diff table.diff {\n border-spacing: 0;\n}\n.acf-diff table.diff col.diffsplit.middle {\n width: 0;\n}\n.acf-diff table.diff td,\n.acf-diff table.diff th {\n padding-top: 0.25em;\n padding-bottom: 0.25em;\n}\n.acf-diff table.diff tr td:nth-child(2) {\n width: auto;\n}\n.acf-diff table.diff td:nth-child(3) {\n border-left: #dddddd solid 1px;\n}\n@media screen and (max-width: 600px) {\n .acf-diff .acf-diff-title {\n height: 70px;\n }\n .acf-diff .acf-diff-content {\n top: 100px;\n }\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Modal\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-modal {\n position: fixed;\n top: 30px;\n left: 30px;\n right: 30px;\n bottom: 30px;\n z-index: 160000;\n box-shadow: 0 5px 15px rgba(0, 0, 0, 0.7);\n background: #fcfcfc;\n}\n.acf-modal .acf-modal-title,\n.acf-modal .acf-modal-content,\n.acf-modal .acf-modal-toolbar {\n box-sizing: border-box;\n position: absolute;\n left: 0;\n right: 0;\n}\n.acf-modal .acf-modal-title {\n height: 50px;\n top: 0;\n border-bottom: 1px solid #ddd;\n}\n.acf-modal .acf-modal-title h2 {\n margin: 0;\n padding: 0 16px;\n line-height: 50px;\n}\n.acf-modal .acf-modal-title .acf-modal-close {\n position: absolute;\n top: 0;\n right: 0;\n height: 50px;\n width: 50px;\n border: none;\n border-left: 1px solid #ddd;\n background: transparent;\n cursor: pointer;\n color: #666;\n}\n.acf-modal .acf-modal-title .acf-modal-close:hover {\n color: #00a0d2;\n}\n.acf-modal .acf-modal-content {\n top: 50px;\n bottom: 60px;\n background: #fff;\n overflow: auto;\n padding: 16px;\n}\n.acf-modal .acf-modal-feedback {\n position: absolute;\n top: 50%;\n margin: -10px 0;\n left: 0;\n right: 0;\n text-align: center;\n opacity: 0.75;\n}\n.acf-modal .acf-modal-feedback.error {\n opacity: 1;\n color: #b52727;\n}\n.acf-modal .acf-modal-toolbar {\n height: 60px;\n bottom: 0;\n padding: 15px 16px;\n border-top: 1px solid #ddd;\n}\n.acf-modal .acf-modal-toolbar .button {\n float: right;\n}\n@media only screen and (max-width: 640px) {\n .acf-modal {\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n }\n}\n\n.acf-modal-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: #101828;\n opacity: 0.8;\n z-index: 159900;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Retina\n*\n*---------------------------------------------------------------------------------------------*/\n@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx) {\n .acf-loading,\n .acf-spinner {\n background-image: url(../../images/spinner@2x.gif);\n background-size: 20px 20px;\n }\n}\n/*--------------------------------------------------------------------------------------------\n*\n* Wrap\n*\n*--------------------------------------------------------------------------------------------*/\n.acf-admin-page .wrap {\n margin-top: 48px;\n margin-right: 32px;\n margin-bottom: 0;\n margin-left: 12px;\n}\n@media screen and (max-width: 768px) {\n .acf-admin-page .wrap {\n margin-right: 8px;\n margin-left: 8px;\n }\n}\n.acf-admin-page.rtl .wrap {\n margin-right: 12px;\n margin-left: 32px;\n}\n@media screen and (max-width: 768px) {\n .acf-admin-page.rtl .wrap {\n margin-right: 8px;\n margin-left: 8px;\n }\n}\n@media screen and (max-width: 768px) {\n .acf-admin-page #wpcontent {\n padding-left: 0;\n }\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Admin Postbox & ACF Postbox\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-admin-page .postbox,\n.acf-admin-page .acf-box {\n border: none;\n border-radius: 8px;\n box-shadow: 0px 1px 2px rgba(16, 24, 40, 0.1);\n}\n.acf-admin-page .postbox .inside,\n.acf-admin-page .acf-box .inside {\n padding-top: 24px;\n padding-right: 24px;\n padding-bottom: 24px;\n padding-left: 24px;\n}\n.acf-admin-page .postbox .acf-postbox-inner,\n.acf-admin-page .acf-box .acf-postbox-inner {\n margin-top: 0;\n margin-right: 0;\n margin-bottom: 0;\n margin-left: 0;\n padding-top: 24px;\n padding-right: 0;\n padding-bottom: 0;\n padding-left: 0;\n}\n.acf-admin-page .postbox .inner,\n.acf-admin-page .postbox .inside,\n.acf-admin-page .acf-box .inner,\n.acf-admin-page .acf-box .inside {\n margin-top: 0 !important;\n margin-right: 0 !important;\n margin-bottom: 0 !important;\n margin-left: 0 !important;\n border-top-width: 1px;\n border-top-style: solid;\n border-top-color: #EAECF0;\n}\n.acf-admin-page .postbox .postbox-header,\n.acf-admin-page .postbox .title,\n.acf-admin-page .acf-box .postbox-header,\n.acf-admin-page .acf-box .title {\n display: flex;\n align-items: center;\n box-sizing: border-box;\n min-height: 64px;\n margin-top: 0;\n margin-right: 0;\n margin-bottom: 0;\n margin-left: 0;\n padding-top: 0;\n padding-right: 24px;\n padding-bottom: 0;\n padding-left: 24px;\n border-bottom-width: 0;\n border-bottom-style: none;\n}\n.acf-admin-page .postbox .postbox-header h2,\n.acf-admin-page .postbox .postbox-header h3,\n.acf-admin-page .postbox .title h2,\n.acf-admin-page .postbox .title h3,\n.acf-admin-page .acf-box .postbox-header h2,\n.acf-admin-page .acf-box .postbox-header h3,\n.acf-admin-page .acf-box .title h2,\n.acf-admin-page .acf-box .title h3 {\n margin-top: 0;\n margin-right: 0;\n margin-bottom: 0;\n margin-left: 0;\n padding-top: 0;\n padding-right: 0;\n padding-bottom: 0;\n padding-left: 0;\n color: #344054;\n}\n.acf-admin-page .postbox .hndle,\n.acf-admin-page .acf-box .hndle {\n padding-top: 0;\n padding-right: 24px;\n padding-bottom: 0;\n padding-left: 24px;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Custom ACF postbox header\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-postbox-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n box-sizing: border-box;\n min-height: 64px;\n margin-top: -24px;\n margin-right: -24px;\n margin-bottom: 0;\n margin-left: -24px;\n padding-top: 0;\n padding-right: 24px;\n padding-bottom: 0;\n padding-left: 24px;\n border-bottom-width: 1px;\n border-bottom-style: solid;\n border-bottom-color: #EAECF0;\n}\n.acf-postbox-header h2.acf-postbox-title {\n margin-top: 0;\n margin-right: 0;\n margin-bottom: 0;\n margin-left: 0;\n padding-top: 0;\n padding-right: 24px;\n padding-bottom: 0;\n padding-left: 0;\n color: #344054;\n}\n.rtl .acf-postbox-header h2.acf-postbox-title {\n padding-right: 0;\n padding-left: 24px;\n}\n.acf-postbox-header .acf-icon {\n background-color: #98A2B3;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Screen options button & screen meta container\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-admin-page #screen-meta-links {\n margin-right: 32px;\n}\n.acf-admin-page #screen-meta-links .show-settings {\n border-color: #D0D5DD;\n}\n@media screen and (max-width: 768px) {\n .acf-admin-page #screen-meta-links {\n margin-right: 16px;\n margin-bottom: 0;\n }\n}\n.acf-admin-page.rtl #screen-meta-links {\n margin-right: 0;\n margin-left: 32px;\n}\n@media screen and (max-width: 768px) {\n .acf-admin-page.rtl #screen-meta-links {\n margin-right: 0;\n margin-left: 16px;\n }\n}\n.acf-admin-page #screen-meta {\n border-color: #D0D5DD;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Postbox headings\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-admin-page #poststuff .postbox-header h2,\n.acf-admin-page #poststuff .postbox-header h3 {\n justify-content: flex-start;\n margin-top: 0;\n margin-right: 0;\n margin-bottom: 0;\n margin-left: 0;\n padding-top: 0;\n padding-right: 0;\n padding-bottom: 0;\n padding-left: 0;\n color: #344054 !important;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Postbox drag state\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-admin-page.is-dragging-metaboxes .metabox-holder .postbox-container .meta-box-sortables {\n box-sizing: border-box;\n padding: 2px;\n outline: none;\n background-image: repeating-linear-gradient(0deg, #667085, #667085 5px, transparent 5px, transparent 10px, #667085 10px), repeating-linear-gradient(90deg, #667085, #667085 5px, transparent 5px, transparent 10px, #667085 10px), repeating-linear-gradient(180deg, #667085, #667085 5px, transparent 5px, transparent 10px, #667085 10px), repeating-linear-gradient(270deg, #667085, #667085 5px, transparent 5px, transparent 10px, #667085 10px);\n background-size: 1.5px 100%, 100% 1.5px, 1.5px 100%, 100% 1.5px;\n background-position: 0 0, 0 0, 100% 0, 0 100%;\n background-repeat: no-repeat;\n border-radius: 8px;\n}\n.acf-admin-page .ui-sortable-placeholder {\n border: none;\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n* Search summary\n*\n*--------------------------------------------------------------------------------------------*/\n.acf-admin-page .subtitle {\n display: inline-flex;\n align-items: center;\n height: 24px;\n margin: 0;\n padding-top: 4px;\n padding-right: 12px;\n padding-bottom: 4px;\n padding-left: 12px;\n background-color: #EBF5FA;\n border-width: 1px;\n border-style: solid;\n border-color: #A5D2E7;\n border-radius: 6px;\n}\n.acf-admin-page .subtitle strong {\n margin-left: 5px;\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n* Action strip\n*\n*--------------------------------------------------------------------------------------------*/\n.acf-actions-strip {\n display: flex;\n}\n.acf-actions-strip .acf-btn {\n margin-right: 8px;\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n* Notices\n*\n*--------------------------------------------------------------------------------------------*/\n.acf-admin-page .acf-notice,\n.acf-admin-page .notice,\n.acf-admin-page #lost-connection-notice {\n position: relative;\n box-sizing: border-box;\n max-width: 1440px;\n min-height: 48px;\n margin-top: 0 !important;\n margin-right: 0 !important;\n margin-bottom: 16px !important;\n margin-left: 0 !important;\n padding-top: 13px !important;\n padding-right: 16px !important;\n padding-bottom: 12px !important;\n padding-left: 50px !important;\n background-color: #e7eff9;\n border-width: 1px;\n border-style: solid;\n border-color: #9dbaee;\n border-radius: 8px;\n box-shadow: 0px 1px 2px rgba(16, 24, 40, 0.1);\n color: #344054;\n}\n.acf-admin-page .acf-notice.update-nag,\n.acf-admin-page .notice.update-nag,\n.acf-admin-page #lost-connection-notice.update-nag {\n display: block;\n position: relative;\n width: calc(100% - 44px);\n margin-top: 48px !important;\n margin-right: 44px !important;\n margin-bottom: -32px !important;\n margin-left: 12px !important;\n}\n.acf-admin-page .acf-notice .button,\n.acf-admin-page .notice .button,\n.acf-admin-page #lost-connection-notice .button {\n height: auto;\n margin-left: 8px;\n padding: 0;\n border: none;\n}\n.acf-admin-page .acf-notice > div,\n.acf-admin-page .notice > div,\n.acf-admin-page #lost-connection-notice > div {\n margin-top: 0;\n margin-bottom: 0;\n}\n.acf-admin-page .acf-notice p,\n.acf-admin-page .notice p,\n.acf-admin-page #lost-connection-notice p {\n flex: 1 0 auto;\n max-width: 100%;\n line-height: 18px;\n margin: 0;\n padding: 0;\n}\n.acf-admin-page .acf-notice p.help,\n.acf-admin-page .notice p.help,\n.acf-admin-page #lost-connection-notice p.help {\n margin-top: 0;\n padding-top: 0;\n color: rgba(52, 64, 84, 0.7);\n}\n.acf-admin-page .acf-notice .acf-notice-dismiss,\n.acf-admin-page .acf-notice .notice-dismiss,\n.acf-admin-page .notice .acf-notice-dismiss,\n.acf-admin-page .notice .notice-dismiss,\n.acf-admin-page #lost-connection-notice .acf-notice-dismiss,\n.acf-admin-page #lost-connection-notice .notice-dismiss {\n position: absolute;\n top: 4px;\n right: 8px;\n padding: 9px;\n border: none;\n}\n.acf-admin-page .acf-notice .acf-notice-dismiss:before,\n.acf-admin-page .acf-notice .notice-dismiss:before,\n.acf-admin-page .notice .acf-notice-dismiss:before,\n.acf-admin-page .notice .notice-dismiss:before,\n.acf-admin-page #lost-connection-notice .acf-notice-dismiss:before,\n.acf-admin-page #lost-connection-notice .notice-dismiss:before {\n content: \"\";\n display: block;\n position: relative;\n z-index: 600;\n width: 20px;\n height: 20px;\n background-color: #667085;\n border: none;\n border-radius: 0;\n -webkit-mask-size: contain;\n mask-size: contain;\n -webkit-mask-repeat: no-repeat;\n mask-repeat: no-repeat;\n -webkit-mask-position: center;\n mask-position: center;\n -webkit-mask-image: url(\"../../images/icons/icon-close.svg\");\n mask-image: url(\"../../images/icons/icon-close.svg\");\n}\n.acf-admin-page .acf-notice .acf-notice-dismiss:hover::before,\n.acf-admin-page .acf-notice .notice-dismiss:hover::before,\n.acf-admin-page .notice .acf-notice-dismiss:hover::before,\n.acf-admin-page .notice .notice-dismiss:hover::before,\n.acf-admin-page #lost-connection-notice .acf-notice-dismiss:hover::before,\n.acf-admin-page #lost-connection-notice .notice-dismiss:hover::before {\n background-color: #344054;\n}\n.acf-admin-page .acf-notice a.acf-notice-dismiss,\n.acf-admin-page .notice a.acf-notice-dismiss,\n.acf-admin-page #lost-connection-notice a.acf-notice-dismiss {\n position: absolute;\n top: 5px;\n right: 24px;\n}\n.acf-admin-page .acf-notice a.acf-notice-dismiss:before,\n.acf-admin-page .notice a.acf-notice-dismiss:before,\n.acf-admin-page #lost-connection-notice a.acf-notice-dismiss:before {\n background-color: #475467;\n}\n.acf-admin-page .acf-notice:before,\n.acf-admin-page .notice:before,\n.acf-admin-page #lost-connection-notice:before {\n content: \"\";\n display: block;\n position: absolute;\n top: 15px;\n left: 18px;\n z-index: 600;\n width: 16px;\n height: 16px;\n margin-right: 8px;\n background-color: #fff;\n border: none;\n border-radius: 0;\n -webkit-mask-size: contain;\n mask-size: contain;\n -webkit-mask-repeat: no-repeat;\n mask-repeat: no-repeat;\n -webkit-mask-position: center;\n mask-position: center;\n -webkit-mask-image: url(\"../../images/icons/icon-info-solid.svg\");\n mask-image: url(\"../../images/icons/icon-info-solid.svg\");\n}\n.acf-admin-page .acf-notice:after,\n.acf-admin-page .notice:after,\n.acf-admin-page #lost-connection-notice:after {\n content: \"\";\n display: block;\n position: absolute;\n top: 9px;\n left: 12px;\n z-index: 500;\n width: 28px;\n height: 28px;\n background-color: #2D69DA;\n border-radius: 6px;\n box-shadow: 0px 1px 2px rgba(16, 24, 40, 0.1);\n}\n.acf-admin-page .acf-notice .local-restore,\n.acf-admin-page .notice .local-restore,\n.acf-admin-page #lost-connection-notice .local-restore {\n align-items: center;\n margin-top: -6px;\n margin-bottom: 0;\n}\n.acf-admin-page .notice.is-dismissible {\n padding-right: 56px;\n}\n.acf-admin-page .notice.notice-success {\n background-color: #edf7ef;\n border-color: #b6deb9;\n}\n.acf-admin-page .notice.notice-success:before {\n -webkit-mask-image: url(\"../../images/icons/icon-check-circle-solid.svg\");\n mask-image: url(\"../../images/icons/icon-check-circle-solid.svg\");\n}\n.acf-admin-page .notice.notice-success:after {\n background-color: #52AA59;\n}\n.acf-admin-page .acf-notice.acf-error-message,\n.acf-admin-page .notice.notice-error,\n.acf-admin-page #lost-connection-notice {\n background-color: #f7eeeb;\n border-color: #f1b6b3;\n}\n.acf-admin-page .acf-notice.acf-error-message:before,\n.acf-admin-page .notice.notice-error:before,\n.acf-admin-page #lost-connection-notice:before {\n -webkit-mask-image: url(\"../../images/icons/icon-warning.svg\");\n mask-image: url(\"../../images/icons/icon-warning.svg\");\n}\n.acf-admin-page .acf-notice.acf-error-message:after,\n.acf-admin-page .notice.notice-error:after,\n.acf-admin-page #lost-connection-notice:after {\n background-color: #D13737;\n}\n\n.acf-admin-single-taxonomy .notice-success .acf-item-saved-text,\n.acf-admin-single-post-type .notice-success .acf-item-saved-text {\n font-weight: 600;\n}\n.acf-admin-single-taxonomy .notice-success .acf-item-saved-links,\n.acf-admin-single-post-type .notice-success .acf-item-saved-links {\n display: flex;\n gap: 12px;\n}\n.acf-admin-single-taxonomy .notice-success .acf-item-saved-links a,\n.acf-admin-single-post-type .notice-success .acf-item-saved-links a {\n text-decoration: none;\n opacity: 1;\n}\n.acf-admin-single-taxonomy .notice-success .acf-item-saved-links a:after,\n.acf-admin-single-post-type .notice-success .acf-item-saved-links a:after {\n content: \"\";\n width: 1px;\n height: 13px;\n display: inline-flex;\n position: relative;\n top: 2px;\n left: 6px;\n background-color: #475467;\n opacity: 0.3;\n}\n.acf-admin-single-taxonomy .notice-success .acf-item-saved-links a:last-child:after,\n.acf-admin-single-post-type .notice-success .acf-item-saved-links a:last-child:after {\n content: none;\n}\n\n.rtl.acf-field-group .notice,\n.rtl.acf-internal-post-type .notice {\n padding-right: 50px !important;\n}\n.rtl.acf-field-group .notice .notice-dismiss,\n.rtl.acf-internal-post-type .notice .notice-dismiss {\n left: 8px;\n right: unset;\n}\n.rtl.acf-field-group .notice:before,\n.rtl.acf-internal-post-type .notice:before {\n left: unset;\n right: 10px;\n}\n.rtl.acf-field-group .notice:after,\n.rtl.acf-internal-post-type .notice:after {\n left: unset;\n right: 12px;\n}\n.rtl.acf-field-group.acf-admin-single-taxonomy .notice-success .acf-item-saved-links a:after, .rtl.acf-field-group.acf-admin-single-post-type .notice-success .acf-item-saved-links a:after,\n.rtl.acf-internal-post-type.acf-admin-single-taxonomy .notice-success .acf-item-saved-links a:after,\n.rtl.acf-internal-post-type.acf-admin-single-post-type .notice-success .acf-item-saved-links a:after {\n left: unset;\n right: 6px;\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n* ACF PRO label\n*\n*--------------------------------------------------------------------------------------------*/\n.acf-pro-label {\n display: inline-flex;\n align-items: center;\n min-height: 22px;\n padding-right: 8px;\n padding-left: 8px;\n background: linear-gradient(90.52deg, #3E8BFF 0.44%, #A45CFF 113.3%);\n box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.16);\n border: none;\n border-radius: 100px;\n font-size: 11px;\n text-transform: uppercase;\n text-decoration: none;\n color: #fff;\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n* Inline notice overrides\n*\n*--------------------------------------------------------------------------------------------*/\n.acf-admin-page .acf-field .acf-notice {\n display: flex;\n align-items: center;\n min-height: 40px !important;\n margin-bottom: 6px !important;\n padding-top: 6px !important;\n padding-left: 40px !important;\n padding-bottom: 6px !important;\n margin: 0 0 15px;\n background: #edf2ff;\n color: #344054 !important;\n border-color: #2183b9;\n border-radius: 6px;\n}\n.acf-admin-page .acf-field .acf-notice:after {\n top: 8px;\n left: 8px;\n width: 22px;\n height: 22px;\n}\n.acf-admin-page .acf-field .acf-notice:before {\n top: 12px;\n left: 12px;\n width: 14px;\n height: 14px;\n}\n.acf-admin-page .acf-field .acf-notice.-error {\n background: #f7eeeb;\n border-color: #f1b6b3;\n}\n.acf-admin-page .acf-field .acf-notice.-success {\n background: #edf7ef;\n border-color: #b6deb9;\n}\n.acf-admin-page .acf-field .acf-notice.-warning {\n background: #fdf8eb;\n border-color: #f4dbb4;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Global\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-admin-page #wpcontent {\n line-height: 140%;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Links\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-admin-page a {\n color: #0783BE;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Headings\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-h1, #tmpl-acf-field-group-pro-features h1,\n#acf-field-group-pro-features h1, .acf-admin-page h1,\n.acf-headerbar h1 {\n font-size: 21px;\n font-weight: 400;\n}\n\n.acf-h2, .acf-no-field-groups-wrapper .acf-no-field-groups-inner h2,\n.acf-no-field-groups-wrapper .acf-no-taxonomies-inner h2,\n.acf-no-field-groups-wrapper .acf-no-post-types-inner h2,\n.acf-no-taxonomies-wrapper .acf-no-field-groups-inner h2,\n.acf-no-taxonomies-wrapper .acf-no-taxonomies-inner h2,\n.acf-no-taxonomies-wrapper .acf-no-post-types-inner h2,\n.acf-no-post-types-wrapper .acf-no-field-groups-inner h2,\n.acf-no-post-types-wrapper .acf-no-taxonomies-inner h2,\n.acf-no-post-types-wrapper .acf-no-post-types-inner h2, .acf-page-title, .acf-admin-page h2,\n.acf-headerbar h2 {\n font-size: 18px;\n font-weight: 400;\n}\n\n.acf-h3, .acf-admin-page h3,\n.acf-headerbar h3, .acf-admin-page .postbox .postbox-header h2,\n.acf-admin-page .postbox .postbox-header h3,\n.acf-admin-page .postbox .title h2,\n.acf-admin-page .postbox .title h3,\n.acf-admin-page .acf-box .postbox-header h2,\n.acf-admin-page .acf-box .postbox-header h3,\n.acf-admin-page .acf-box .title h2,\n.acf-admin-page .acf-box .title h3, .acf-postbox-header h2.acf-postbox-title, .acf-admin-page #poststuff .postbox-header h2,\n.acf-admin-page #poststuff .postbox-header h3 {\n font-size: 16px;\n font-weight: 400;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Paragraphs\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-admin-page .p1 {\n font-size: 15px;\n}\n.acf-admin-page .p2, .acf-admin-page .acf-no-field-groups-wrapper .acf-no-field-groups-inner p, .acf-no-field-groups-wrapper .acf-no-field-groups-inner .acf-admin-page p,\n.acf-admin-page .acf-no-field-groups-wrapper .acf-no-taxonomies-inner p,\n.acf-no-field-groups-wrapper .acf-no-taxonomies-inner .acf-admin-page p,\n.acf-admin-page .acf-no-field-groups-wrapper .acf-no-post-types-inner p,\n.acf-no-field-groups-wrapper .acf-no-post-types-inner .acf-admin-page p,\n.acf-admin-page .acf-no-taxonomies-wrapper .acf-no-field-groups-inner p,\n.acf-no-taxonomies-wrapper .acf-no-field-groups-inner .acf-admin-page p,\n.acf-admin-page .acf-no-taxonomies-wrapper .acf-no-taxonomies-inner p,\n.acf-no-taxonomies-wrapper .acf-no-taxonomies-inner .acf-admin-page p,\n.acf-admin-page .acf-no-taxonomies-wrapper .acf-no-post-types-inner p,\n.acf-no-taxonomies-wrapper .acf-no-post-types-inner .acf-admin-page p,\n.acf-admin-page .acf-no-post-types-wrapper .acf-no-field-groups-inner p,\n.acf-no-post-types-wrapper .acf-no-field-groups-inner .acf-admin-page p,\n.acf-admin-page .acf-no-post-types-wrapper .acf-no-taxonomies-inner p,\n.acf-no-post-types-wrapper .acf-no-taxonomies-inner .acf-admin-page p,\n.acf-admin-page .acf-no-post-types-wrapper .acf-no-post-types-inner p,\n.acf-no-post-types-wrapper .acf-no-post-types-inner .acf-admin-page p, .acf-admin-page #acf-admin-tools .acf-meta-box-wrap .acf-fields .acf-label, #acf-admin-tools .acf-meta-box-wrap .acf-fields .acf-admin-page .acf-label {\n font-size: 14px;\n}\n.acf-admin-page .p3, .acf-admin-page .acf-internal-post-type .wp-list-table .post-state, .acf-internal-post-type .wp-list-table .acf-admin-page .post-state, .acf-admin-page .subtitle {\n font-size: 13.5px;\n}\n.acf-admin-page .p4, .acf-admin-page .acf-admin-toolbar a.acf-admin-toolbar-upgrade-btn p, .acf-admin-toolbar a.acf-admin-toolbar-upgrade-btn .acf-admin-page p, .acf-admin-page #acf-update-information .form-table th, #acf-update-information .form-table .acf-admin-page th,\n.acf-admin-page #acf-update-information .form-table td,\n#acf-update-information .form-table .acf-admin-page td, .acf-admin-page #acf-admin-tools.tool-export .acf-panel h3, #acf-admin-tools.tool-export .acf-panel .acf-admin-page h3, .acf-admin-page .acf-btn.acf-btn-sm, .acf-admin-page .acf-admin-toolbar .acf-tab, .acf-admin-toolbar .acf-admin-page .acf-tab, .acf-admin-page .acf-internal-post-type .subsubsub li, .acf-internal-post-type .subsubsub .acf-admin-page li, .acf-admin-page .acf-internal-post-type .wp-list-table tbody th, .acf-internal-post-type .wp-list-table tbody .acf-admin-page th,\n.acf-admin-page .acf-internal-post-type .wp-list-table tbody td,\n.acf-internal-post-type .wp-list-table tbody .acf-admin-page td, .acf-admin-page .acf-internal-post-type .wp-list-table thead th, .acf-internal-post-type .wp-list-table thead .acf-admin-page th, .acf-admin-page .acf-internal-post-type .wp-list-table thead td, .acf-internal-post-type .wp-list-table thead .acf-admin-page td,\n.acf-admin-page .acf-internal-post-type .wp-list-table tfoot th,\n.acf-internal-post-type .wp-list-table tfoot .acf-admin-page th, .acf-admin-page .acf-internal-post-type .wp-list-table tfoot td, .acf-internal-post-type .wp-list-table tfoot .acf-admin-page td, .acf-admin-page .acf-input .select2-container.-acf .select2-selection__rendered, .acf-admin-page .button, .acf-admin-page input[type=text],\n.acf-admin-page input[type=search],\n.acf-admin-page input[type=number],\n.acf-admin-page textarea,\n.acf-admin-page select {\n font-size: 13px;\n}\n.acf-admin-page .p5, .acf-admin-page .acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-types-tab .acf-field-type .field-type-label, .acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-types-tab .acf-field-type .acf-admin-page .field-type-label,\n.acf-admin-page .acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-type-search-results .acf-field-type .field-type-label,\n.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-type-search-results .acf-field-type .acf-admin-page .field-type-label, .acf-admin-page .acf-internal-post-type .row-actions, .acf-internal-post-type .acf-admin-page .row-actions, .acf-admin-page .acf-notice .button,\n.acf-admin-page .notice .button,\n.acf-admin-page #lost-connection-notice .button {\n font-size: 12.5px;\n}\n.acf-admin-page .p6, .acf-admin-page #acf-update-information .acf-update-changelog p em, #acf-update-information .acf-update-changelog p .acf-admin-page em, .acf-admin-page .acf-no-field-groups-wrapper .acf-no-field-groups-inner p.acf-small, .acf-no-field-groups-wrapper .acf-no-field-groups-inner .acf-admin-page p.acf-small,\n.acf-admin-page .acf-no-field-groups-wrapper .acf-no-taxonomies-inner p.acf-small,\n.acf-no-field-groups-wrapper .acf-no-taxonomies-inner .acf-admin-page p.acf-small,\n.acf-admin-page .acf-no-field-groups-wrapper .acf-no-post-types-inner p.acf-small,\n.acf-no-field-groups-wrapper .acf-no-post-types-inner .acf-admin-page p.acf-small,\n.acf-admin-page .acf-no-taxonomies-wrapper .acf-no-field-groups-inner p.acf-small,\n.acf-no-taxonomies-wrapper .acf-no-field-groups-inner .acf-admin-page p.acf-small,\n.acf-admin-page .acf-no-taxonomies-wrapper .acf-no-taxonomies-inner p.acf-small,\n.acf-no-taxonomies-wrapper .acf-no-taxonomies-inner .acf-admin-page p.acf-small,\n.acf-admin-page .acf-no-taxonomies-wrapper .acf-no-post-types-inner p.acf-small,\n.acf-no-taxonomies-wrapper .acf-no-post-types-inner .acf-admin-page p.acf-small,\n.acf-admin-page .acf-no-post-types-wrapper .acf-no-field-groups-inner p.acf-small,\n.acf-no-post-types-wrapper .acf-no-field-groups-inner .acf-admin-page p.acf-small,\n.acf-admin-page .acf-no-post-types-wrapper .acf-no-taxonomies-inner p.acf-small,\n.acf-no-post-types-wrapper .acf-no-taxonomies-inner .acf-admin-page p.acf-small,\n.acf-admin-page .acf-no-post-types-wrapper .acf-no-post-types-inner p.acf-small,\n.acf-no-post-types-wrapper .acf-no-post-types-inner .acf-admin-page p.acf-small, .acf-admin-page .acf-internal-post-type .row-actions, .acf-internal-post-type .acf-admin-page .row-actions, .acf-admin-page .acf-small {\n font-size: 12px;\n}\n.acf-admin-page .p7, .acf-admin-page .acf-tooltip, .acf-admin-page .acf-notice p.help,\n.acf-admin-page .notice p.help,\n.acf-admin-page #lost-connection-notice p.help {\n font-size: 11.5px;\n}\n.acf-admin-page .p8 {\n font-size: 11px;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Page titles\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-page-title {\n color: #344054;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Hide old / native WP titles from pages\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-admin-page .acf-settings-wrap h1 {\n display: none !important;\n}\n.acf-admin-page #acf-admin-tools h1:not(.acf-field-group-pro-features-title, .acf-field-group-pro-features-title-sm) {\n display: none !important;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Small\n*\n*---------------------------------------------------------------------------------------------*/\n/*---------------------------------------------------------------------------------------------\n*\n* Link focus style\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-admin-page a:focus {\n box-shadow: none;\n outline: none;\n}\n.acf-admin-page a:focus-visible {\n box-shadow: 0 0 0 1px #4f94d4, 0 0 2px 1px rgba(79, 148, 212, 0.8);\n outline: 1px solid transparent;\n}\n\n.acf-admin-page {\n /*---------------------------------------------------------------------------------------------\n *\n * All Inputs\n *\n *---------------------------------------------------------------------------------------------*/\n /*---------------------------------------------------------------------------------------------\n *\n * Read only text inputs\n *\n *---------------------------------------------------------------------------------------------*/\n /*---------------------------------------------------------------------------------------------\n *\n * Number fields\n *\n *---------------------------------------------------------------------------------------------*/\n /*---------------------------------------------------------------------------------------------\n *\n * Textarea\n *\n *---------------------------------------------------------------------------------------------*/\n /*---------------------------------------------------------------------------------------------\n *\n * Select\n *\n *---------------------------------------------------------------------------------------------*/\n /*---------------------------------------------------------------------------------------------\n *\n * Radio Button & Checkbox base styling\n *\n *---------------------------------------------------------------------------------------------*/\n /*---------------------------------------------------------------------------------------------\n *\n * Radio Buttons\n *\n *---------------------------------------------------------------------------------------------*/\n /*---------------------------------------------------------------------------------------------\n *\n * Checkboxes\n *\n *---------------------------------------------------------------------------------------------*/\n /*---------------------------------------------------------------------------------------------\n *\n * Radio Buttons & Checkbox lists\n *\n *---------------------------------------------------------------------------------------------*/\n /*---------------------------------------------------------------------------------------------\n *\n * ACF Switch\n *\n *---------------------------------------------------------------------------------------------*/\n /*---------------------------------------------------------------------------------------------\n *\n * File input button\n *\n *---------------------------------------------------------------------------------------------*/\n /*---------------------------------------------------------------------------------------------\n *\n * Action Buttons\n *\n *---------------------------------------------------------------------------------------------*/\n /*---------------------------------------------------------------------------------------------\n *\n * Edit field group header\n *\n *---------------------------------------------------------------------------------------------*/\n /*---------------------------------------------------------------------------------------------\n *\n * Select2 inputs\n *\n *---------------------------------------------------------------------------------------------*/\n /*---------------------------------------------------------------------------------------------\n *\n * ACF label\n *\n *---------------------------------------------------------------------------------------------*/\n /*---------------------------------------------------------------------------------------------\n *\n * Tooltip for field name field setting (result of a fix for keyboard navigation)\n *\n *---------------------------------------------------------------------------------------------*/\n /* Field Type Selection select2 */\n /*---------------------------------------------------------------------------------------------\n *\n * RTL arrow position\n *\n *---------------------------------------------------------------------------------------------*/\n}\n.acf-admin-page input[type=text],\n.acf-admin-page input[type=search],\n.acf-admin-page input[type=number],\n.acf-admin-page textarea,\n.acf-admin-page select {\n box-sizing: border-box;\n height: 40px;\n padding-right: 12px;\n padding-left: 12px;\n background-color: #fff;\n border-color: #D0D5DD;\n box-shadow: 0px 1px 2px rgba(16, 24, 40, 0.1);\n border-radius: 6px;\n color: #344054;\n}\n.acf-admin-page input[type=text]:focus,\n.acf-admin-page input[type=search]:focus,\n.acf-admin-page input[type=number]:focus,\n.acf-admin-page textarea:focus,\n.acf-admin-page select:focus {\n outline: 3px solid #EBF5FA;\n border-color: #399CCB;\n}\n.acf-admin-page input[type=text]:disabled,\n.acf-admin-page input[type=search]:disabled,\n.acf-admin-page input[type=number]:disabled,\n.acf-admin-page textarea:disabled,\n.acf-admin-page select:disabled {\n background-color: #F9FAFB;\n color: #808a9e;\n}\n.acf-admin-page input[type=text]::placeholder,\n.acf-admin-page input[type=search]::placeholder,\n.acf-admin-page input[type=number]::placeholder,\n.acf-admin-page textarea::placeholder,\n.acf-admin-page select::placeholder {\n color: #98A2B3;\n}\n.acf-admin-page input[type=text]:read-only {\n background-color: #F9FAFB;\n color: #98A2B3;\n}\n.acf-admin-page .acf-field.acf-field-number .acf-label,\n.acf-admin-page .acf-field.acf-field-number .acf-input input[type=number] {\n max-width: 180px;\n}\n.acf-admin-page textarea {\n box-sizing: border-box;\n padding-top: 10px;\n padding-bottom: 10px;\n height: 80px;\n min-height: 56px;\n}\n.acf-admin-page select {\n min-width: 160px;\n max-width: 100%;\n padding-right: 40px;\n padding-left: 12px;\n background-image: url(\"../../images/icons/icon-chevron-down.svg\");\n background-position: right 10px top 50%;\n background-size: 20px;\n}\n.acf-admin-page select:hover, .acf-admin-page select:focus {\n color: #0783BE;\n}\n.acf-admin-page select::before {\n content: \"\";\n display: block;\n position: absolute;\n top: 5px;\n left: 5px;\n width: 20px;\n height: 20px;\n}\n.acf-admin-page.rtl select {\n padding-right: 12px;\n padding-left: 40px;\n background-position: left 10px top 50%;\n}\n.acf-admin-page input[type=radio],\n.acf-admin-page input[type=checkbox] {\n box-sizing: border-box;\n width: 16px;\n height: 16px;\n padding: 0;\n border-width: 1px;\n border-style: solid;\n border-color: #98A2B3;\n background: #fff;\n box-shadow: none;\n}\n.acf-admin-page input[type=radio]:hover,\n.acf-admin-page input[type=checkbox]:hover {\n background-color: #EBF5FA;\n border-color: #0783BE;\n}\n.acf-admin-page input[type=radio]:checked, .acf-admin-page input[type=radio]:focus-visible,\n.acf-admin-page input[type=checkbox]:checked,\n.acf-admin-page input[type=checkbox]:focus-visible {\n background-color: #EBF5FA;\n border-color: #0783BE;\n}\n.acf-admin-page input[type=radio]:checked:before, .acf-admin-page input[type=radio]:focus-visible:before,\n.acf-admin-page input[type=checkbox]:checked:before,\n.acf-admin-page input[type=checkbox]:focus-visible:before {\n content: \"\";\n position: relative;\n top: -1px;\n left: -1px;\n width: 16px;\n height: 16px;\n margin: 0;\n padding: 0;\n background-color: transparent;\n background-size: cover;\n background-repeat: no-repeat;\n background-position: center;\n}\n.acf-admin-page input[type=radio]:active,\n.acf-admin-page input[type=checkbox]:active {\n box-shadow: 0px 0px 0px 3px #EBF5FA, 0px 0px 0px rgba(255, 54, 54, 0.25);\n}\n.acf-admin-page input[type=radio]:disabled,\n.acf-admin-page input[type=checkbox]:disabled {\n background-color: #F9FAFB;\n border-color: #D0D5DD;\n}\n.acf-admin-page.rtl input[type=radio]:checked:before, .acf-admin-page.rtl input[type=radio]:focus-visible:before,\n.acf-admin-page.rtl input[type=checkbox]:checked:before,\n.acf-admin-page.rtl input[type=checkbox]:focus-visible:before {\n left: 1px;\n}\n.acf-admin-page input[type=radio]:checked:before, .acf-admin-page input[type=radio]:focus:before {\n background-image: url(\"../../images/field-states/radio-active.svg\");\n}\n.acf-admin-page input[type=checkbox]:checked:before, .acf-admin-page input[type=checkbox]:focus:before {\n background-image: url(\"../../images/field-states/checkbox-active.svg\");\n}\n.acf-admin-page .acf-radio-list li input[type=radio],\n.acf-admin-page .acf-radio-list li input[type=checkbox],\n.acf-admin-page .acf-checkbox-list li input[type=radio],\n.acf-admin-page .acf-checkbox-list li input[type=checkbox] {\n margin-right: 6px;\n}\n.acf-admin-page .acf-radio-list.acf-bl li,\n.acf-admin-page .acf-checkbox-list.acf-bl li {\n margin-bottom: 8px;\n}\n.acf-admin-page .acf-radio-list.acf-bl li:last-of-type,\n.acf-admin-page .acf-checkbox-list.acf-bl li:last-of-type {\n margin-bottom: 0;\n}\n.acf-admin-page .acf-radio-list label,\n.acf-admin-page .acf-checkbox-list label {\n display: flex;\n align-items: center;\n align-content: center;\n}\n.acf-admin-page .acf-switch {\n width: 42px;\n height: 24px;\n border: none;\n background-color: #D0D5DD;\n border-radius: 12px;\n}\n.acf-admin-page .acf-switch:hover {\n background-color: #98A2B3;\n}\n.acf-admin-page .acf-switch:active {\n box-shadow: 0px 0px 0px 3px #EBF5FA, 0px 0px 0px rgba(255, 54, 54, 0.25);\n}\n.acf-admin-page .acf-switch.-on {\n background-color: #0783BE;\n}\n.acf-admin-page .acf-switch.-on:hover {\n background-color: #066998;\n}\n.acf-admin-page .acf-switch.-on .acf-switch-slider {\n left: 20px;\n}\n.acf-admin-page .acf-switch .acf-switch-off,\n.acf-admin-page .acf-switch .acf-switch-on {\n visibility: hidden;\n}\n.acf-admin-page .acf-switch .acf-switch-slider {\n width: 20px;\n height: 20px;\n border: none;\n border-radius: 100px;\n box-shadow: 0px 1px 3px rgba(16, 24, 40, 0.1), 0px 1px 2px rgba(16, 24, 40, 0.06);\n}\n.acf-admin-page .acf-field-true-false {\n display: flex;\n align-items: flex-start;\n}\n.acf-admin-page .acf-field-true-false .acf-label {\n order: 2;\n display: block;\n align-items: center;\n margin-top: 2px;\n margin-bottom: 0;\n margin-left: 12px;\n}\n.acf-admin-page .acf-field-true-false .acf-label label {\n margin-bottom: 0;\n}\n.acf-admin-page .acf-field-true-false .acf-label .acf-tip {\n margin-left: 12px;\n}\n.acf-admin-page .acf-field-true-false .acf-label .description {\n display: block;\n margin-top: 2px;\n margin-left: 0;\n}\n.acf-admin-page.rtl .acf-field-true-false .acf-label {\n margin-right: 12px;\n margin-left: 0;\n}\n.acf-admin-page.rtl .acf-field-true-false .acf-tip {\n margin-right: 12px;\n margin-left: 0;\n}\n.acf-admin-page input::file-selector-button {\n box-sizing: border-box;\n min-height: 40px;\n margin-right: 16px;\n padding-top: 8px;\n padding-right: 16px;\n padding-bottom: 8px;\n padding-left: 16px;\n background-color: transparent;\n color: #0783BE !important;\n border-radius: 6px;\n border-width: 1px;\n border-style: solid;\n border-color: #0783BE;\n text-decoration: none;\n}\n.acf-admin-page input::file-selector-button:hover {\n border-color: #066998;\n cursor: pointer;\n color: #066998 !important;\n}\n.acf-admin-page .button {\n display: inline-flex;\n align-items: center;\n height: 40px;\n padding-right: 16px;\n padding-left: 16px;\n background-color: transparent;\n border-width: 1px;\n border-style: solid;\n border-color: #0783BE;\n border-radius: 6px;\n color: #0783BE;\n}\n.acf-admin-page .button:hover {\n background-color: #f3f9fc;\n border-color: #0783BE;\n color: #0783BE;\n}\n.acf-admin-page .button:focus {\n background-color: #f3f9fc;\n outline: 3px solid #EBF5FA;\n color: #0783BE;\n}\n.acf-admin-page .edit-field-group-header {\n display: block !important;\n}\n.acf-admin-page .acf-input .select2-container.-acf .select2-selection {\n border: none;\n line-height: 1;\n}\n.acf-admin-page .acf-input .select2-container.-acf .select2-selection__rendered {\n box-sizing: border-box;\n padding-right: 0;\n padding-left: 0;\n background-color: #fff;\n border-width: 1px;\n border-style: solid;\n border-color: #D0D5DD;\n box-shadow: 0px 1px 2px rgba(16, 24, 40, 0.1);\n border-radius: 6px;\n color: #344054;\n}\n.acf-admin-page .acf-input .select2-container--focus {\n outline: 3px solid #EBF5FA;\n border-color: #399CCB;\n border-radius: 6px;\n}\n.acf-admin-page .acf-input .select2-container--focus .select2-selection__rendered {\n border-color: #399CCB !important;\n}\n.acf-admin-page .acf-input .select2-container--focus.select2-container--below.select2-container--open .select2-selection__rendered {\n border-bottom-right-radius: 0 !important;\n border-bottom-left-radius: 0 !important;\n}\n.acf-admin-page .acf-input .select2-container--focus.select2-container--above.select2-container--open .select2-selection__rendered {\n border-top-right-radius: 0 !important;\n border-top-left-radius: 0 !important;\n}\n.acf-admin-page .acf-input .select2-container .select2-search--inline .select2-search__field {\n margin: 0;\n padding-left: 6px;\n}\n.acf-admin-page .acf-input .select2-container .select2-search--inline .select2-search__field:focus {\n outline: none;\n border: none;\n}\n.acf-admin-page .acf-input .select2-container--default .select2-selection--multiple .select2-selection__rendered {\n padding-top: 0;\n padding-right: 6px;\n padding-bottom: 0;\n padding-left: 6px;\n}\n.acf-admin-page .acf-input .select2-selection__clear {\n width: 18px;\n height: 18px;\n margin-top: 12px;\n margin-right: 1px;\n text-indent: 100%;\n white-space: nowrap;\n overflow: hidden;\n color: #fff;\n}\n.acf-admin-page .acf-input .select2-selection__clear:before {\n content: \"\";\n display: block;\n width: 16px;\n height: 16px;\n top: 0;\n left: 0;\n border: none;\n border-radius: 0;\n -webkit-mask-size: contain;\n mask-size: contain;\n -webkit-mask-repeat: no-repeat;\n mask-repeat: no-repeat;\n -webkit-mask-position: center;\n mask-position: center;\n -webkit-mask-image: url(\"../../images/icons/icon-close.svg\");\n mask-image: url(\"../../images/icons/icon-close.svg\");\n background-color: #98A2B3;\n}\n.acf-admin-page .acf-input .select2-selection__clear:hover::before {\n background-color: #0783BE;\n}\n.acf-admin-page .acf-label {\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n.acf-admin-page .acf-label .acf-icon-help {\n width: 18px;\n height: 18px;\n background-color: #98A2B3;\n}\n.acf-admin-page .acf-label label {\n margin-bottom: 0;\n}\n.acf-admin-page .acf-label .description {\n margin-top: 2px;\n}\n.acf-admin-page .acf-field-setting-name .acf-tip {\n position: absolute;\n top: 0;\n left: 654px;\n color: #98A2B3;\n}\n.rtl.acf-admin-page .acf-field-setting-name .acf-tip {\n left: auto;\n right: 654px;\n}\n\n.acf-admin-page .acf-field-setting-name .acf-tip .acf-icon-help {\n width: 18px;\n height: 18px;\n}\n.acf-admin-page .acf-field-setting-type .select2-container.-acf,\n.acf-admin-page .acf-field-permalink-rewrite .select2-container.-acf,\n.acf-admin-page .acf-field-query-var .select2-container.-acf,\n.acf-admin-page .acf-field-manage-terms .select2-container.-acf,\n.acf-admin-page .acf-field-edit-terms .select2-container.-acf,\n.acf-admin-page .acf-field-delete-terms .select2-container.-acf,\n.acf-admin-page .acf-field-assign-terms .select2-container.-acf,\n.acf-admin-page .acf-field-meta-box .select2-container.-acf {\n min-height: 40px;\n}\n.acf-admin-page .acf-field-setting-type .select2-container--default .select2-selection--single .select2-selection__rendered,\n.acf-admin-page .acf-field-permalink-rewrite .select2-container--default .select2-selection--single .select2-selection__rendered,\n.acf-admin-page .acf-field-query-var .select2-container--default .select2-selection--single .select2-selection__rendered,\n.acf-admin-page .acf-field-manage-terms .select2-container--default .select2-selection--single .select2-selection__rendered,\n.acf-admin-page .acf-field-edit-terms .select2-container--default .select2-selection--single .select2-selection__rendered,\n.acf-admin-page .acf-field-delete-terms .select2-container--default .select2-selection--single .select2-selection__rendered,\n.acf-admin-page .acf-field-assign-terms .select2-container--default .select2-selection--single .select2-selection__rendered,\n.acf-admin-page .acf-field-meta-box .select2-container--default .select2-selection--single .select2-selection__rendered {\n display: flex;\n align-items: center;\n position: relative;\n z-index: 800;\n min-height: 40px;\n padding-top: 0;\n padding-right: 12px;\n padding-bottom: 0;\n padding-left: 12px;\n}\n.acf-admin-page .acf-field-setting-type .select2-container--default .select2-selection--single .field-type-icon,\n.acf-admin-page .acf-field-permalink-rewrite .select2-container--default .select2-selection--single .field-type-icon,\n.acf-admin-page .acf-field-query-var .select2-container--default .select2-selection--single .field-type-icon,\n.acf-admin-page .acf-field-manage-terms .select2-container--default .select2-selection--single .field-type-icon,\n.acf-admin-page .acf-field-edit-terms .select2-container--default .select2-selection--single .field-type-icon,\n.acf-admin-page .acf-field-delete-terms .select2-container--default .select2-selection--single .field-type-icon,\n.acf-admin-page .acf-field-assign-terms .select2-container--default .select2-selection--single .field-type-icon,\n.acf-admin-page .acf-field-meta-box .select2-container--default .select2-selection--single .field-type-icon {\n top: auto;\n width: 18px;\n height: 18px;\n margin-right: 2px;\n}\n.acf-admin-page .acf-field-setting-type .select2-container--default .select2-selection--single .field-type-icon:before,\n.acf-admin-page .acf-field-permalink-rewrite .select2-container--default .select2-selection--single .field-type-icon:before,\n.acf-admin-page .acf-field-query-var .select2-container--default .select2-selection--single .field-type-icon:before,\n.acf-admin-page .acf-field-manage-terms .select2-container--default .select2-selection--single .field-type-icon:before,\n.acf-admin-page .acf-field-edit-terms .select2-container--default .select2-selection--single .field-type-icon:before,\n.acf-admin-page .acf-field-delete-terms .select2-container--default .select2-selection--single .field-type-icon:before,\n.acf-admin-page .acf-field-assign-terms .select2-container--default .select2-selection--single .field-type-icon:before,\n.acf-admin-page .acf-field-meta-box .select2-container--default .select2-selection--single .field-type-icon:before {\n width: 9px;\n height: 9px;\n}\n.acf-admin-page .acf-field-setting-type .select2-container--open .select2-selection__rendered,\n.acf-admin-page .acf-field-permalink-rewrite .select2-container--open .select2-selection__rendered,\n.acf-admin-page .acf-field-query-var .select2-container--open .select2-selection__rendered,\n.acf-admin-page .acf-field-manage-terms .select2-container--open .select2-selection__rendered,\n.acf-admin-page .acf-field-edit-terms .select2-container--open .select2-selection__rendered,\n.acf-admin-page .acf-field-delete-terms .select2-container--open .select2-selection__rendered,\n.acf-admin-page .acf-field-assign-terms .select2-container--open .select2-selection__rendered,\n.acf-admin-page .acf-field-meta-box .select2-container--open .select2-selection__rendered {\n border-color: #6BB5D8 !important;\n border-bottom-color: #D0D5DD !important;\n}\n.acf-admin-page .acf-field-setting-type .select2-container--open.select2-container--below .select2-selection__rendered,\n.acf-admin-page .acf-field-permalink-rewrite .select2-container--open.select2-container--below .select2-selection__rendered,\n.acf-admin-page .acf-field-query-var .select2-container--open.select2-container--below .select2-selection__rendered,\n.acf-admin-page .acf-field-manage-terms .select2-container--open.select2-container--below .select2-selection__rendered,\n.acf-admin-page .acf-field-edit-terms .select2-container--open.select2-container--below .select2-selection__rendered,\n.acf-admin-page .acf-field-delete-terms .select2-container--open.select2-container--below .select2-selection__rendered,\n.acf-admin-page .acf-field-assign-terms .select2-container--open.select2-container--below .select2-selection__rendered,\n.acf-admin-page .acf-field-meta-box .select2-container--open.select2-container--below .select2-selection__rendered {\n border-bottom-right-radius: 0 !important;\n border-bottom-left-radius: 0 !important;\n}\n.acf-admin-page .acf-field-setting-type .select2-container--open.select2-container--above .select2-selection__rendered,\n.acf-admin-page .acf-field-permalink-rewrite .select2-container--open.select2-container--above .select2-selection__rendered,\n.acf-admin-page .acf-field-query-var .select2-container--open.select2-container--above .select2-selection__rendered,\n.acf-admin-page .acf-field-manage-terms .select2-container--open.select2-container--above .select2-selection__rendered,\n.acf-admin-page .acf-field-edit-terms .select2-container--open.select2-container--above .select2-selection__rendered,\n.acf-admin-page .acf-field-delete-terms .select2-container--open.select2-container--above .select2-selection__rendered,\n.acf-admin-page .acf-field-assign-terms .select2-container--open.select2-container--above .select2-selection__rendered,\n.acf-admin-page .acf-field-meta-box .select2-container--open.select2-container--above .select2-selection__rendered {\n border-top-right-radius: 0 !important;\n border-top-left-radius: 0 !important;\n border-bottom-color: #6BB5D8 !important;\n border-top-color: #D0D5DD !important;\n}\n.acf-admin-page .acf-field-setting-type .acf-selection.has-icon,\n.acf-admin-page .acf-field-permalink-rewrite .acf-selection.has-icon,\n.acf-admin-page .acf-field-query-var .acf-selection.has-icon,\n.acf-admin-page .acf-field-manage-terms .acf-selection.has-icon,\n.acf-admin-page .acf-field-edit-terms .acf-selection.has-icon,\n.acf-admin-page .acf-field-delete-terms .acf-selection.has-icon,\n.acf-admin-page .acf-field-assign-terms .acf-selection.has-icon,\n.acf-admin-page .acf-field-meta-box .acf-selection.has-icon {\n margin-left: 6px;\n}\n.rtl.acf-admin-page .acf-field-setting-type .acf-selection.has-icon, .acf-admin-page .acf-field-permalink-rewrite .acf-selection.has-icon, .acf-admin-page .acf-field-query-var .acf-selection.has-icon, .acf-admin-page .acf-field-manage-terms .acf-selection.has-icon, .acf-admin-page .acf-field-edit-terms .acf-selection.has-icon, .acf-admin-page .acf-field-delete-terms .acf-selection.has-icon, .acf-admin-page .acf-field-assign-terms .acf-selection.has-icon, .acf-admin-page .acf-field-meta-box .acf-selection.has-icon {\n margin-right: 6px;\n}\n\n.acf-admin-page .acf-field-setting-type .select2-selection__arrow,\n.acf-admin-page .acf-field-permalink-rewrite .select2-selection__arrow,\n.acf-admin-page .acf-field-query-var .select2-selection__arrow,\n.acf-admin-page .acf-field-manage-terms .select2-selection__arrow,\n.acf-admin-page .acf-field-edit-terms .select2-selection__arrow,\n.acf-admin-page .acf-field-delete-terms .select2-selection__arrow,\n.acf-admin-page .acf-field-assign-terms .select2-selection__arrow,\n.acf-admin-page .acf-field-meta-box .select2-selection__arrow {\n width: 20px;\n height: 20px;\n top: calc(50% - 10px);\n right: 12px;\n background-color: transparent;\n}\n.acf-admin-page .acf-field-setting-type .select2-selection__arrow:after,\n.acf-admin-page .acf-field-permalink-rewrite .select2-selection__arrow:after,\n.acf-admin-page .acf-field-query-var .select2-selection__arrow:after,\n.acf-admin-page .acf-field-manage-terms .select2-selection__arrow:after,\n.acf-admin-page .acf-field-edit-terms .select2-selection__arrow:after,\n.acf-admin-page .acf-field-delete-terms .select2-selection__arrow:after,\n.acf-admin-page .acf-field-assign-terms .select2-selection__arrow:after,\n.acf-admin-page .acf-field-meta-box .select2-selection__arrow:after {\n content: \"\";\n display: block;\n position: absolute;\n z-index: 850;\n top: 1px;\n left: 0;\n width: 20px;\n height: 20px;\n -webkit-mask-image: url(\"../../images/icons/icon-chevron-down.svg\");\n mask-image: url(\"../../images/icons/icon-chevron-down.svg\");\n background-color: #667085;\n border: none;\n border-radius: 0;\n -webkit-mask-size: contain;\n mask-size: contain;\n -webkit-mask-repeat: no-repeat;\n mask-repeat: no-repeat;\n -webkit-mask-position: center;\n mask-position: center;\n text-indent: 500%;\n white-space: nowrap;\n overflow: hidden;\n}\n.acf-admin-page .acf-field-setting-type .select2-selection__arrow b[role=presentation],\n.acf-admin-page .acf-field-permalink-rewrite .select2-selection__arrow b[role=presentation],\n.acf-admin-page .acf-field-query-var .select2-selection__arrow b[role=presentation],\n.acf-admin-page .acf-field-manage-terms .select2-selection__arrow b[role=presentation],\n.acf-admin-page .acf-field-edit-terms .select2-selection__arrow b[role=presentation],\n.acf-admin-page .acf-field-delete-terms .select2-selection__arrow b[role=presentation],\n.acf-admin-page .acf-field-assign-terms .select2-selection__arrow b[role=presentation],\n.acf-admin-page .acf-field-meta-box .select2-selection__arrow b[role=presentation] {\n display: none;\n}\n.acf-admin-page .acf-field-setting-type .select2-container--open .select2-selection__arrow:after,\n.acf-admin-page .acf-field-permalink-rewrite .select2-container--open .select2-selection__arrow:after,\n.acf-admin-page .acf-field-query-var .select2-container--open .select2-selection__arrow:after,\n.acf-admin-page .acf-field-manage-terms .select2-container--open .select2-selection__arrow:after,\n.acf-admin-page .acf-field-edit-terms .select2-container--open .select2-selection__arrow:after,\n.acf-admin-page .acf-field-delete-terms .select2-container--open .select2-selection__arrow:after,\n.acf-admin-page .acf-field-assign-terms .select2-container--open .select2-selection__arrow:after,\n.acf-admin-page .acf-field-meta-box .select2-container--open .select2-selection__arrow:after {\n -webkit-mask-image: url(\"../../images/icons/icon-chevron-up.svg\");\n mask-image: url(\"../../images/icons/icon-chevron-up.svg\");\n}\n.acf-admin-page .field-type-select-results {\n position: relative;\n top: 4px;\n z-index: 1002;\n border-radius: 0 0 6px 6px;\n box-shadow: 0px 8px 24px 4px rgba(16, 24, 40, 0.12);\n}\n.acf-admin-page .field-type-select-results.select2-dropdown--above {\n display: flex;\n flex-direction: column-reverse;\n top: 0;\n border-radius: 6px 6px 0 0;\n z-index: 1030;\n}\n.select2-container.select2-container--open.acf-admin-page .field-type-select-results {\n box-shadow: 0px 0px 0px 3px #EBF5FA, 0px 8px 24px 4px rgba(16, 24, 40, 0.12);\n}\n\n.acf-admin-page .field-type-select-results .acf-selection.has-icon {\n margin-left: 6px;\n}\n.rtl.acf-admin-page .field-type-select-results .acf-selection.has-icon {\n margin-right: 6px;\n}\n\n.acf-admin-page .field-type-select-results .select2-search {\n position: relative;\n margin: 0;\n padding: 0;\n}\n.acf-admin-page .field-type-select-results .select2-search--dropdown:after {\n content: \"\";\n display: block;\n position: absolute;\n top: 12px;\n left: 13px;\n width: 16px;\n height: 16px;\n -webkit-mask-image: url(\"../../images/icons/icon-search.svg\");\n mask-image: url(\"../../images/icons/icon-search.svg\");\n background-color: #98A2B3;\n border: none;\n border-radius: 0;\n -webkit-mask-size: contain;\n mask-size: contain;\n -webkit-mask-repeat: no-repeat;\n mask-repeat: no-repeat;\n -webkit-mask-position: center;\n mask-position: center;\n text-indent: 500%;\n white-space: nowrap;\n overflow: hidden;\n}\n.rtl.acf-admin-page .field-type-select-results .select2-search--dropdown:after {\n right: 12px;\n left: auto;\n}\n\n.acf-admin-page .field-type-select-results .select2-search .select2-search__field {\n padding-left: 38px;\n border-right: 0;\n border-bottom: 0;\n border-left: 0;\n border-radius: 0;\n}\n.rtl.acf-admin-page .field-type-select-results .select2-search .select2-search__field {\n padding-right: 38px;\n padding-left: 0;\n}\n\n.acf-admin-page .field-type-select-results .select2-search .select2-search__field:focus {\n border-top-color: #D0D5DD;\n outline: 0;\n}\n.acf-admin-page .field-type-select-results .select2-results__options {\n max-height: 440px;\n}\n.acf-admin-page .field-type-select-results .select2-results__option .select2-results__option--highlighted {\n background-color: #0783BE !important;\n color: #F9FAFB !important;\n}\n.acf-admin-page .field-type-select-results .select2-results__option .select2-results__option {\n display: inline-flex;\n position: relative;\n width: calc(100% - 24px);\n min-height: 32px;\n padding-top: 0;\n padding-right: 12px;\n padding-bottom: 0;\n padding-left: 12px;\n align-items: center;\n}\n.acf-admin-page .field-type-select-results .select2-results__option .select2-results__option .field-type-icon {\n top: auto;\n width: 18px;\n height: 18px;\n margin-right: 2px;\n box-shadow: 0 0 0 1px #F9FAFB;\n}\n.acf-admin-page .field-type-select-results .select2-results__option .select2-results__option .field-type-icon:before {\n width: 9px;\n height: 9px;\n}\n.acf-admin-page .field-type-select-results .select2-results__option[aria-selected=true] {\n background-color: #EBF5FA !important;\n color: #344054 !important;\n}\n.acf-admin-page .field-type-select-results .select2-results__option[aria-selected=true]:after {\n content: \"\";\n right: 13px;\n position: absolute;\n width: 16px;\n height: 16px;\n -webkit-mask-image: url(\"../../images/icons/icon-check.svg\");\n mask-image: url(\"../../images/icons/icon-check.svg\");\n background-color: #0783BE;\n border: none;\n border-radius: 0;\n -webkit-mask-size: contain;\n mask-size: contain;\n -webkit-mask-repeat: no-repeat;\n mask-repeat: no-repeat;\n -webkit-mask-position: center;\n mask-position: center;\n text-indent: 500%;\n white-space: nowrap;\n overflow: hidden;\n}\n.rtl.acf-admin-page .field-type-select-results .select2-results__option[aria-selected=true]:after {\n left: 13px;\n right: auto;\n}\n\n.acf-admin-page .field-type-select-results .select2-results__group {\n display: inline-flex;\n align-items: center;\n width: calc(100% - 24px);\n min-height: 25px;\n background-color: #F9FAFB;\n border-top-width: 1px;\n border-top-style: solid;\n border-top-color: #EAECF0;\n border-bottom-width: 1px;\n border-bottom-style: solid;\n border-bottom-color: #EAECF0;\n color: #98A2B3;\n font-size: 11px;\n margin-bottom: 0;\n padding-top: 0;\n padding-right: 12px;\n padding-bottom: 0;\n padding-left: 12px;\n font-weight: normal;\n}\n.acf-admin-page.rtl .acf-field-setting-type .select2-selection__arrow:after,\n.acf-admin-page.rtl .acf-field-permalink-rewrite .select2-selection__arrow:after,\n.acf-admin-page.rtl .acf-field-query-var .select2-selection__arrow:after {\n right: auto;\n left: 10px;\n}\n\n.rtl.post-type-acf-field-group .acf-field-setting-name .acf-tip,\n.rtl.acf-internal-post-type .acf-field-setting-name .acf-tip {\n left: auto;\n right: 654px;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Field Groups\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-internal-post-type .tablenav.top {\n display: none;\n}\n.acf-internal-post-type .subsubsub {\n margin-bottom: 3px;\n}\n.acf-internal-post-type .wp-list-table {\n margin-top: 0;\n margin-right: 0;\n margin-bottom: 0;\n margin-left: 0;\n border-radius: 8px;\n border: none;\n overflow: hidden;\n box-shadow: 0px 1px 2px rgba(16, 24, 40, 0.1);\n}\n.acf-internal-post-type .wp-list-table strong {\n color: #98A2B3;\n margin: 0;\n}\n.acf-internal-post-type .wp-list-table a.row-title {\n font-size: 13px !important;\n font-weight: 500;\n}\n.acf-internal-post-type .wp-list-table th,\n.acf-internal-post-type .wp-list-table td {\n color: #344054;\n}\n.acf-internal-post-type .wp-list-table th.sortable a,\n.acf-internal-post-type .wp-list-table td.sortable a {\n padding: 0;\n}\n.acf-internal-post-type .wp-list-table th.check-column,\n.acf-internal-post-type .wp-list-table td.check-column {\n padding-top: 12px;\n padding-right: 16px;\n padding-left: 16px;\n}\n@media screen and (max-width: 880px) {\n .acf-internal-post-type .wp-list-table th.check-column,\n .acf-internal-post-type .wp-list-table td.check-column {\n vertical-align: top;\n padding-right: 2px;\n padding-left: 10px;\n }\n}\n.acf-internal-post-type .wp-list-table th input,\n.acf-internal-post-type .wp-list-table td input {\n margin: 0;\n padding: 0;\n}\n.acf-internal-post-type .wp-list-table th .acf-more-items,\n.acf-internal-post-type .wp-list-table td .acf-more-items {\n display: inline-flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n padding: 0px 6px 1px;\n gap: 8px;\n width: 25px;\n height: 16px;\n background: #EAECF0;\n border-radius: 100px;\n font-weight: 400;\n font-size: 10px;\n color: #475467;\n}\n.acf-internal-post-type .wp-list-table th .acf-emdash,\n.acf-internal-post-type .wp-list-table td .acf-emdash {\n color: #D0D5DD;\n}\n.acf-internal-post-type .wp-list-table thead th, .acf-internal-post-type .wp-list-table thead td,\n.acf-internal-post-type .wp-list-table tfoot th, .acf-internal-post-type .wp-list-table tfoot td {\n height: 48px;\n padding-right: 24px;\n padding-left: 24px;\n box-sizing: border-box;\n background-color: #F9FAFB;\n border-color: #EAECF0;\n font-weight: 500;\n}\n@media screen and (max-width: 880px) {\n .acf-internal-post-type .wp-list-table thead th, .acf-internal-post-type .wp-list-table thead td,\n .acf-internal-post-type .wp-list-table tfoot th, .acf-internal-post-type .wp-list-table tfoot td {\n padding-right: 16px;\n padding-left: 8px;\n }\n}\n@media screen and (max-width: 880px) {\n .acf-internal-post-type .wp-list-table thead th.check-column, .acf-internal-post-type .wp-list-table thead td.check-column,\n .acf-internal-post-type .wp-list-table tfoot th.check-column, .acf-internal-post-type .wp-list-table tfoot td.check-column {\n vertical-align: middle;\n }\n}\n.acf-internal-post-type .wp-list-table tbody th,\n.acf-internal-post-type .wp-list-table tbody td {\n box-sizing: border-box;\n height: 60px;\n padding-top: 10px;\n padding-right: 24px;\n padding-bottom: 10px;\n padding-left: 24px;\n vertical-align: top;\n background-color: #fff;\n border-bottom-width: 1px;\n border-bottom-color: #EAECF0;\n border-bottom-style: solid;\n}\n@media screen and (max-width: 880px) {\n .acf-internal-post-type .wp-list-table tbody th,\n .acf-internal-post-type .wp-list-table tbody td {\n padding-right: 16px;\n padding-left: 8px;\n }\n}\n.acf-internal-post-type .wp-list-table .column-acf-key {\n white-space: nowrap;\n}\n.acf-internal-post-type .wp-list-table .column-acf-key .acf-icon-key-solid {\n display: inline-block;\n position: relative;\n bottom: -2px;\n width: 15px;\n height: 15px;\n margin-right: 4px;\n color: #98A2B3;\n}\n.acf-internal-post-type .wp-list-table .acf-location .dashicons {\n position: relative;\n bottom: -2px;\n width: 16px;\n height: 16px;\n margin-right: 6px;\n font-size: 16px;\n color: #98A2B3;\n}\n.acf-internal-post-type .wp-list-table .post-state {\n color: #667085;\n}\n.acf-internal-post-type .wp-list-table tr:hover,\n.acf-internal-post-type .wp-list-table tr:focus-within {\n background: #f7f7f7;\n}\n.acf-internal-post-type .wp-list-table tr:hover .row-actions,\n.acf-internal-post-type .wp-list-table tr:focus-within .row-actions {\n margin-bottom: 0;\n}\n@media screen and (min-width: 782px) {\n .acf-internal-post-type .wp-list-table .column-acf-count {\n width: 10%;\n }\n}\n.acf-internal-post-type .wp-list-table .row-actions span.file {\n display: block;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.acf-internal-post-type.rtl .wp-list-table .column-acf-key .acf-icon-key-solid {\n margin-left: 4px;\n margin-right: 0;\n}\n.acf-internal-post-type.rtl .wp-list-table .acf-location .dashicons {\n margin-left: 6px;\n margin-right: 0;\n}\n.acf-internal-post-type .row-actions {\n margin-top: 2px;\n padding-top: 0;\n padding-right: 0;\n padding-bottom: 0;\n padding-left: 0;\n line-height: 14px;\n color: #D0D5DD;\n}\n.acf-internal-post-type .row-actions .trash a {\n color: #d94f4f;\n}\n.acf-internal-post-type .widefat thead td.check-column,\n.acf-internal-post-type .widefat tfoot td.check-column {\n padding-top: 0;\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tRow actions\n*\n*--------------------------------------------------------------------------------------------*/\n.acf-internal-post-type .row-actions a:hover {\n color: #044767;\n}\n.acf-internal-post-type .row-actions .trash a {\n color: #a00;\n}\n.acf-internal-post-type .row-actions .trash a:hover {\n color: #f00;\n}\n.acf-internal-post-type .row-actions.visible {\n margin-bottom: 0;\n opacity: 1;\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tRow hover\n*\n*--------------------------------------------------------------------------------------------*/\n.acf-internal-post-type #the-list tr:hover td,\n.acf-internal-post-type #the-list tr:hover th {\n background-color: #f7fbfd;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Table Nav\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-internal-post-type .tablenav {\n margin-top: 24px;\n margin-right: 0;\n margin-bottom: 0;\n margin-left: 0;\n padding-top: 0;\n padding-right: 0;\n padding-bottom: 0;\n padding-left: 0;\n color: #667085;\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tSearch box\n*\n*--------------------------------------------------------------------------------------------*/\n.acf-internal-post-type #posts-filter p.search-box {\n margin-top: 5px;\n margin-right: 0;\n margin-bottom: 24px;\n margin-left: 0;\n}\n.acf-internal-post-type #posts-filter p.search-box #post-search-input {\n min-width: 280px;\n margin-top: 0;\n margin-right: 8px;\n margin-bottom: 0;\n margin-left: 0;\n}\n@media screen and (max-width: 768px) {\n .acf-internal-post-type #posts-filter p.search-box {\n display: flex;\n box-sizing: border-box;\n padding-right: 24px;\n margin-right: 16px;\n position: inherit;\n }\n .acf-internal-post-type #posts-filter p.search-box #post-search-input {\n min-width: auto;\n }\n}\n\n.rtl.acf-internal-post-type #posts-filter p.search-box #post-search-input {\n margin-right: 0;\n margin-left: 8px;\n}\n@media screen and (max-width: 768px) {\n .rtl.acf-internal-post-type #posts-filter p.search-box {\n padding-left: 24px;\n padding-right: 0;\n margin-left: 16px;\n margin-right: 0;\n }\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tStatus tabs\n*\n*--------------------------------------------------------------------------------------------*/\n.acf-internal-post-type .subsubsub {\n display: flex;\n align-items: flex-end;\n height: 40px;\n margin-bottom: 16px;\n}\n.acf-internal-post-type .subsubsub li {\n margin-top: 0;\n margin-right: 4px;\n color: #98A2B3;\n}\n.acf-internal-post-type .subsubsub li .count {\n color: #667085;\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tPagination\n*\n*--------------------------------------------------------------------------------------------*/\n.acf-internal-post-type .tablenav-pages {\n display: flex;\n align-items: center;\n}\n.acf-internal-post-type .tablenav-pages.no-pages {\n display: none;\n}\n.acf-internal-post-type .tablenav-pages .displaying-num {\n margin-top: 0;\n margin-right: 16px;\n margin-bottom: 0;\n margin-left: 0;\n}\n.acf-internal-post-type .tablenav-pages .pagination-links {\n display: flex;\n align-items: center;\n}\n.acf-internal-post-type .tablenav-pages .pagination-links #table-paging {\n margin-top: 0;\n margin-right: 4px;\n margin-bottom: 0;\n margin-left: 8px;\n}\n.acf-internal-post-type .tablenav-pages .pagination-links #table-paging .total-pages {\n margin-right: 0;\n}\n.acf-internal-post-type .tablenav-pages.one-page .pagination-links {\n display: none;\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tPagination buttons & icons\n*\n*--------------------------------------------------------------------------------------------*/\n.acf-internal-post-type .tablenav-pages .pagination-links .button {\n display: inline-flex;\n align-items: center;\n align-content: center;\n justify-content: center;\n min-width: 40px;\n margin-top: 0;\n margin-right: 0;\n margin-bottom: 0;\n margin-left: 0;\n padding-top: 0;\n padding-right: 0;\n padding-bottom: 0;\n padding-left: 0;\n background-color: transparent;\n}\n.acf-internal-post-type .tablenav-pages .pagination-links .button:nth-child(1), .acf-internal-post-type .tablenav-pages .pagination-links .button:nth-child(2), .acf-internal-post-type .tablenav-pages .pagination-links .button:last-child, .acf-internal-post-type .tablenav-pages .pagination-links .button:nth-last-child(2) {\n display: inline-block;\n position: relative;\n text-indent: 100%;\n white-space: nowrap;\n overflow: hidden;\n margin-left: 4px;\n}\n.acf-internal-post-type .tablenav-pages .pagination-links .button:nth-child(1):before, .acf-internal-post-type .tablenav-pages .pagination-links .button:nth-child(2):before, .acf-internal-post-type .tablenav-pages .pagination-links .button:last-child:before, .acf-internal-post-type .tablenav-pages .pagination-links .button:nth-last-child(2):before {\n content: \"\";\n display: block;\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n background-color: #0783BE;\n border-radius: 0;\n -webkit-mask-size: 20px;\n mask-size: 20px;\n -webkit-mask-repeat: no-repeat;\n mask-repeat: no-repeat;\n -webkit-mask-position: center;\n mask-position: center;\n}\n.acf-internal-post-type .tablenav-pages .pagination-links .button:nth-child(1):before {\n -webkit-mask-image: url(\"../../images/icons/icon-chevron-left-double.svg\");\n mask-image: url(\"../../images/icons/icon-chevron-left-double.svg\");\n}\n.acf-internal-post-type .tablenav-pages .pagination-links .button:nth-child(2):before {\n -webkit-mask-image: url(\"../../images/icons/icon-chevron-left.svg\");\n mask-image: url(\"../../images/icons/icon-chevron-left.svg\");\n}\n.acf-internal-post-type .tablenav-pages .pagination-links .button:nth-last-child(2):before {\n -webkit-mask-image: url(\"../../images/icons/icon-chevron-right.svg\");\n mask-image: url(\"../../images/icons/icon-chevron-right.svg\");\n}\n.acf-internal-post-type .tablenav-pages .pagination-links .button:last-child:before {\n -webkit-mask-image: url(\"../../images/icons/icon-chevron-right-double.svg\");\n mask-image: url(\"../../images/icons/icon-chevron-right-double.svg\");\n}\n.acf-internal-post-type .tablenav-pages .pagination-links .button:hover {\n border-color: #066998;\n background-color: rgba(7, 131, 190, 0.05);\n}\n.acf-internal-post-type .tablenav-pages .pagination-links .button:hover:before {\n background-color: #066998;\n}\n.acf-internal-post-type .tablenav-pages .pagination-links .button.disabled {\n background-color: transparent !important;\n}\n.acf-internal-post-type .tablenav-pages .pagination-links .button.disabled.disabled:before {\n background-color: #D0D5DD;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Empty state\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-no-field-groups-wrapper,\n.acf-no-taxonomies-wrapper,\n.acf-no-post-types-wrapper {\n display: flex;\n justify-content: center;\n padding-top: 48px;\n padding-bottom: 48px;\n}\n.acf-no-field-groups-wrapper .acf-no-field-groups-inner,\n.acf-no-field-groups-wrapper .acf-no-taxonomies-inner,\n.acf-no-field-groups-wrapper .acf-no-post-types-inner,\n.acf-no-taxonomies-wrapper .acf-no-field-groups-inner,\n.acf-no-taxonomies-wrapper .acf-no-taxonomies-inner,\n.acf-no-taxonomies-wrapper .acf-no-post-types-inner,\n.acf-no-post-types-wrapper .acf-no-field-groups-inner,\n.acf-no-post-types-wrapper .acf-no-taxonomies-inner,\n.acf-no-post-types-wrapper .acf-no-post-types-inner {\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n align-content: center;\n align-items: flex-start;\n text-align: center;\n max-width: 380px;\n min-height: 320px;\n}\n.acf-no-field-groups-wrapper .acf-no-field-groups-inner img,\n.acf-no-field-groups-wrapper .acf-no-field-groups-inner h2,\n.acf-no-field-groups-wrapper .acf-no-field-groups-inner p,\n.acf-no-field-groups-wrapper .acf-no-taxonomies-inner img,\n.acf-no-field-groups-wrapper .acf-no-taxonomies-inner h2,\n.acf-no-field-groups-wrapper .acf-no-taxonomies-inner p,\n.acf-no-field-groups-wrapper .acf-no-post-types-inner img,\n.acf-no-field-groups-wrapper .acf-no-post-types-inner h2,\n.acf-no-field-groups-wrapper .acf-no-post-types-inner p,\n.acf-no-taxonomies-wrapper .acf-no-field-groups-inner img,\n.acf-no-taxonomies-wrapper .acf-no-field-groups-inner h2,\n.acf-no-taxonomies-wrapper .acf-no-field-groups-inner p,\n.acf-no-taxonomies-wrapper .acf-no-taxonomies-inner img,\n.acf-no-taxonomies-wrapper .acf-no-taxonomies-inner h2,\n.acf-no-taxonomies-wrapper .acf-no-taxonomies-inner p,\n.acf-no-taxonomies-wrapper .acf-no-post-types-inner img,\n.acf-no-taxonomies-wrapper .acf-no-post-types-inner h2,\n.acf-no-taxonomies-wrapper .acf-no-post-types-inner p,\n.acf-no-post-types-wrapper .acf-no-field-groups-inner img,\n.acf-no-post-types-wrapper .acf-no-field-groups-inner h2,\n.acf-no-post-types-wrapper .acf-no-field-groups-inner p,\n.acf-no-post-types-wrapper .acf-no-taxonomies-inner img,\n.acf-no-post-types-wrapper .acf-no-taxonomies-inner h2,\n.acf-no-post-types-wrapper .acf-no-taxonomies-inner p,\n.acf-no-post-types-wrapper .acf-no-post-types-inner img,\n.acf-no-post-types-wrapper .acf-no-post-types-inner h2,\n.acf-no-post-types-wrapper .acf-no-post-types-inner p {\n flex: 1 0 100%;\n}\n.acf-no-field-groups-wrapper .acf-no-field-groups-inner h2,\n.acf-no-field-groups-wrapper .acf-no-taxonomies-inner h2,\n.acf-no-field-groups-wrapper .acf-no-post-types-inner h2,\n.acf-no-taxonomies-wrapper .acf-no-field-groups-inner h2,\n.acf-no-taxonomies-wrapper .acf-no-taxonomies-inner h2,\n.acf-no-taxonomies-wrapper .acf-no-post-types-inner h2,\n.acf-no-post-types-wrapper .acf-no-field-groups-inner h2,\n.acf-no-post-types-wrapper .acf-no-taxonomies-inner h2,\n.acf-no-post-types-wrapper .acf-no-post-types-inner h2 {\n margin-top: 32px;\n margin-bottom: 0;\n padding: 0;\n color: #344054;\n}\n.acf-no-field-groups-wrapper .acf-no-field-groups-inner p,\n.acf-no-field-groups-wrapper .acf-no-taxonomies-inner p,\n.acf-no-field-groups-wrapper .acf-no-post-types-inner p,\n.acf-no-taxonomies-wrapper .acf-no-field-groups-inner p,\n.acf-no-taxonomies-wrapper .acf-no-taxonomies-inner p,\n.acf-no-taxonomies-wrapper .acf-no-post-types-inner p,\n.acf-no-post-types-wrapper .acf-no-field-groups-inner p,\n.acf-no-post-types-wrapper .acf-no-taxonomies-inner p,\n.acf-no-post-types-wrapper .acf-no-post-types-inner p {\n margin-top: 12px;\n margin-bottom: 0;\n padding: 0;\n color: #667085;\n}\n.acf-no-field-groups-wrapper .acf-no-field-groups-inner p.acf-small,\n.acf-no-field-groups-wrapper .acf-no-taxonomies-inner p.acf-small,\n.acf-no-field-groups-wrapper .acf-no-post-types-inner p.acf-small,\n.acf-no-taxonomies-wrapper .acf-no-field-groups-inner p.acf-small,\n.acf-no-taxonomies-wrapper .acf-no-taxonomies-inner p.acf-small,\n.acf-no-taxonomies-wrapper .acf-no-post-types-inner p.acf-small,\n.acf-no-post-types-wrapper .acf-no-field-groups-inner p.acf-small,\n.acf-no-post-types-wrapper .acf-no-taxonomies-inner p.acf-small,\n.acf-no-post-types-wrapper .acf-no-post-types-inner p.acf-small {\n display: block;\n position: relative;\n margin-top: 32px;\n}\n.acf-no-field-groups-wrapper .acf-no-field-groups-inner img,\n.acf-no-field-groups-wrapper .acf-no-taxonomies-inner img,\n.acf-no-field-groups-wrapper .acf-no-post-types-inner img,\n.acf-no-taxonomies-wrapper .acf-no-field-groups-inner img,\n.acf-no-taxonomies-wrapper .acf-no-taxonomies-inner img,\n.acf-no-taxonomies-wrapper .acf-no-post-types-inner img,\n.acf-no-post-types-wrapper .acf-no-field-groups-inner img,\n.acf-no-post-types-wrapper .acf-no-taxonomies-inner img,\n.acf-no-post-types-wrapper .acf-no-post-types-inner img {\n max-width: 284px;\n margin-bottom: 0;\n}\n.acf-no-field-groups-wrapper .acf-no-field-groups-inner .acf-btn,\n.acf-no-field-groups-wrapper .acf-no-taxonomies-inner .acf-btn,\n.acf-no-field-groups-wrapper .acf-no-post-types-inner .acf-btn,\n.acf-no-taxonomies-wrapper .acf-no-field-groups-inner .acf-btn,\n.acf-no-taxonomies-wrapper .acf-no-taxonomies-inner .acf-btn,\n.acf-no-taxonomies-wrapper .acf-no-post-types-inner .acf-btn,\n.acf-no-post-types-wrapper .acf-no-field-groups-inner .acf-btn,\n.acf-no-post-types-wrapper .acf-no-taxonomies-inner .acf-btn,\n.acf-no-post-types-wrapper .acf-no-post-types-inner .acf-btn {\n margin-top: 32px;\n}\n.acf-no-field-groups-wrapper .acf-no-post-types-inner img,\n.acf-no-taxonomies-wrapper .acf-no-post-types-inner img,\n.acf-no-post-types-wrapper .acf-no-post-types-inner img {\n width: 106px;\n height: 88px;\n}\n.acf-no-field-groups-wrapper .acf-no-taxonomies-inner img,\n.acf-no-taxonomies-wrapper .acf-no-taxonomies-inner img,\n.acf-no-post-types-wrapper .acf-no-taxonomies-inner img {\n width: 98px;\n height: 88px;\n}\n\n.acf-no-field-groups #the-list tr:hover td,\n.acf-no-field-groups #the-list tr:hover th,\n.acf-no-field-groups .acf-admin-field-groups .wp-list-table tr:hover,\n.acf-no-field-groups .striped > tbody > :nth-child(odd), .acf-no-field-groups ul.striped > :nth-child(odd), .acf-no-field-groups .alternate,\n.acf-no-post-types #the-list tr:hover td,\n.acf-no-post-types #the-list tr:hover th,\n.acf-no-post-types .acf-admin-field-groups .wp-list-table tr:hover,\n.acf-no-post-types .striped > tbody > :nth-child(odd),\n.acf-no-post-types ul.striped > :nth-child(odd),\n.acf-no-post-types .alternate,\n.acf-no-taxonomies #the-list tr:hover td,\n.acf-no-taxonomies #the-list tr:hover th,\n.acf-no-taxonomies .acf-admin-field-groups .wp-list-table tr:hover,\n.acf-no-taxonomies .striped > tbody > :nth-child(odd),\n.acf-no-taxonomies ul.striped > :nth-child(odd),\n.acf-no-taxonomies .alternate {\n background-color: transparent !important;\n}\n.acf-no-field-groups .wp-list-table thead,\n.acf-no-field-groups .wp-list-table tfoot,\n.acf-no-post-types .wp-list-table thead,\n.acf-no-post-types .wp-list-table tfoot,\n.acf-no-taxonomies .wp-list-table thead,\n.acf-no-taxonomies .wp-list-table tfoot {\n display: none;\n}\n\n.acf-internal-post-type #the-list .no-items td {\n vertical-align: middle;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Small screen list table info toggle\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-internal-post-type .wp-list-table .toggle-row:before {\n top: 4px;\n left: 16px;\n border-radius: 0;\n content: \"\";\n display: block;\n position: absolute;\n width: 16px;\n height: 16px;\n background-color: #0783BE;\n border-radius: 0;\n -webkit-mask-size: 20px;\n mask-size: 20px;\n -webkit-mask-repeat: no-repeat;\n mask-repeat: no-repeat;\n -webkit-mask-position: center;\n mask-position: center;\n -webkit-mask-image: url(\"../../images/icons/icon-chevron-down.svg\");\n mask-image: url(\"../../images/icons/icon-chevron-down.svg\");\n text-indent: 100%;\n white-space: nowrap;\n overflow: hidden;\n}\n.acf-internal-post-type .wp-list-table .is-expanded .toggle-row:before {\n -webkit-mask-image: url(\"../../images/icons/icon-chevron-up.svg\");\n mask-image: url(\"../../images/icons/icon-chevron-up.svg\");\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Small screen checkbox\n*\n*---------------------------------------------------------------------------------------------*/\n@media screen and (max-width: 880px) {\n .acf-internal-post-type .widefat th input[type=checkbox],\n .acf-internal-post-type .widefat thead td input[type=checkbox],\n .acf-internal-post-type .widefat tfoot td input[type=checkbox] {\n margin-bottom: 0;\n }\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Admin Navigation\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-admin-toolbar {\n position: unset;\n top: 32px;\n height: 72px;\n z-index: 800;\n background: #344054;\n color: #98A2B3;\n}\n.acf-admin-toolbar .acf-admin-toolbar-inner {\n display: flex;\n justify-content: space-between;\n align-content: center;\n align-items: center;\n max-width: 100%;\n}\n.acf-admin-toolbar .acf-admin-toolbar-inner .acf-nav-wrap {\n display: flex;\n align-items: center;\n}\n.acf-admin-toolbar .acf-admin-toolbar-inner .acf-nav-upgrade-wrap {\n display: flex;\n align-items: center;\n}\n.acf-admin-toolbar .acf-admin-toolbar-inner .acf-nav-wpengine-logo {\n display: inline-flex;\n margin-left: 24px;\n}\n@media screen and (max-width: 1465px) {\n .acf-admin-toolbar .acf-admin-toolbar-inner .acf-nav-wpengine-logo {\n display: none;\n }\n}\n@media screen and (max-width: 880px) {\n .acf-admin-toolbar {\n position: static;\n }\n}\n.acf-admin-toolbar .acf-logo {\n display: flex;\n margin-right: 24px;\n text-decoration: none;\n}\n.acf-admin-toolbar .acf-logo .acf-pro-label {\n margin-left: 8px;\n}\n.acf-admin-toolbar .acf-logo img {\n display: block;\n max-width: 55px;\n line-height: 0%;\n}\n.acf-admin-toolbar h2 {\n display: none;\n color: #F9FAFB;\n}\n.acf-admin-toolbar .acf-tab {\n display: flex;\n align-items: center;\n box-sizing: border-box;\n min-height: 40px;\n margin-right: 8px;\n padding-top: 8px;\n padding-right: 16px;\n padding-bottom: 8px;\n padding-left: 16px;\n border-width: 1px;\n border-style: solid;\n border-color: transparent;\n border-radius: 6px;\n color: #98A2B3;\n text-decoration: none;\n}\n.acf-admin-toolbar .acf-tab.is-active {\n background-color: #475467;\n color: #fff;\n}\n.acf-admin-toolbar .acf-tab:hover {\n background-color: #475467;\n color: #F9FAFB;\n}\n.acf-admin-toolbar .acf-tab:focus-visible {\n border-width: 1px;\n border-style: solid;\n border-color: #667085;\n}\n.acf-admin-toolbar .acf-tab:focus {\n box-shadow: none;\n}\n.acf-admin-toolbar .acf-more:hover .acf-tab.acf-more-tab {\n background-color: #475467;\n color: #F9FAFB;\n}\n.acf-admin-toolbar .acf-more ul {\n display: none;\n position: absolute;\n box-sizing: border-box;\n background: #fff;\n z-index: 1051;\n overflow: hidden;\n min-width: 280px;\n margin-top: 0;\n margin-right: 0;\n margin-bottom: 0;\n margin-left: 0;\n padding-top: 0;\n padding-right: 16px;\n padding-bottom: 0;\n padding-left: 16px;\n border-radius: 8px;\n box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.04), 0px 8px 23px rgba(0, 0, 0, 0.12);\n}\n.acf-admin-toolbar .acf-more ul li {\n margin: 0;\n padding: 0;\n}\n.acf-admin-toolbar .acf-more ul li a {\n margin: 0;\n padding: 0;\n color: #1D2939;\n border-radius: 0;\n border-bottom-width: 1px;\n border-bottom-style: solid;\n border-bottom-color: #F2F4F7;\n}\n.acf-admin-toolbar .acf-more ul li a:hover, .acf-admin-toolbar .acf-more ul li a.acf-tab.is-active {\n background-color: unset;\n color: #0783BE;\n}\n.acf-admin-toolbar .acf-more ul li a i.acf-icon {\n display: none !important;\n width: 16px;\n height: 16px;\n -webkit-mask-size: 16px;\n mask-size: 16px;\n background-color: #98A2B3 !important;\n}\n.acf-admin-toolbar .acf-more ul li:last-child a {\n border-bottom: none;\n}\n.acf-admin-toolbar .acf-more ul:hover, .acf-admin-toolbar .acf-more ul:focus {\n display: block;\n}\n.acf-admin-toolbar .acf-more:hover ul, .acf-admin-toolbar .acf-more:focus ul {\n display: block;\n}\n#wpcontent .acf-admin-toolbar {\n box-sizing: border-box;\n margin-left: -20px;\n padding-top: 16px;\n padding-right: 32px;\n padding-bottom: 16px;\n padding-left: 32px;\n}\n@media screen and (max-width: 600px) {\n .acf-admin-toolbar {\n display: none;\n }\n}\n\n.acf-internal-post-type.post-php .acf-admin-toolbar .acf-admin-toolbar-inner {\n max-width: 1440px;\n}\n\n.rtl #wpcontent .acf-admin-toolbar {\n margin-left: 0;\n margin-right: -20px;\n}\n.rtl #wpcontent .acf-admin-toolbar .acf-tab {\n margin-left: 8px;\n margin-right: 0;\n}\n.rtl .acf-logo {\n margin-right: 0;\n margin-left: 32px;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Admin Toolbar Icons\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-admin-toolbar .acf-tab i.acf-icon,\n.acf-admin-toolbar .acf-more i.acf-icon {\n display: none;\n margin-right: 8px;\n margin-left: -2px;\n}\n.acf-admin-toolbar .acf-tab i.acf-icon.acf-icon-dropdown,\n.acf-admin-toolbar .acf-more i.acf-icon.acf-icon-dropdown {\n -webkit-mask-image: url(\"../../images/icons/icon-chevron-down.svg\");\n mask-image: url(\"../../images/icons/icon-chevron-down.svg\");\n width: 16px;\n height: 16px;\n -webkit-mask-size: 16px;\n mask-size: 16px;\n margin-right: -6px;\n margin-left: 6px;\n}\n.acf-admin-toolbar .acf-tab.acf-header-tab-acf-field-group i.acf-icon, .acf-admin-toolbar .acf-tab.acf-header-tab-acf-post-type i.acf-icon, .acf-admin-toolbar .acf-tab.acf-header-tab-acf-taxonomy i.acf-icon, .acf-admin-toolbar .acf-tab.acf-header-tab-acf-tools i.acf-icon, .acf-admin-toolbar .acf-tab.acf-header-tab-acf-settings-updates i.acf-icon, .acf-admin-toolbar .acf-tab.acf-header-tab-acf-more i.acf-icon,\n.acf-admin-toolbar .acf-more.acf-header-tab-acf-field-group i.acf-icon,\n.acf-admin-toolbar .acf-more.acf-header-tab-acf-post-type i.acf-icon,\n.acf-admin-toolbar .acf-more.acf-header-tab-acf-taxonomy i.acf-icon,\n.acf-admin-toolbar .acf-more.acf-header-tab-acf-tools i.acf-icon,\n.acf-admin-toolbar .acf-more.acf-header-tab-acf-settings-updates i.acf-icon,\n.acf-admin-toolbar .acf-more.acf-header-tab-acf-more i.acf-icon {\n display: inline-flex;\n}\n.acf-admin-toolbar .acf-tab.is-active i.acf-icon, .acf-admin-toolbar .acf-tab:hover i.acf-icon,\n.acf-admin-toolbar .acf-more.is-active i.acf-icon,\n.acf-admin-toolbar .acf-more:hover i.acf-icon {\n background-color: #EAECF0;\n}\n.rtl .acf-admin-toolbar .acf-tab i.acf-icon {\n margin-right: -2px;\n margin-left: 8px;\n}\n.acf-admin-toolbar .acf-header-tab-acf-field-group i.acf-icon {\n -webkit-mask-image: url(\"../../images/icons/icon-field-groups.svg\");\n mask-image: url(\"../../images/icons/icon-field-groups.svg\");\n}\n.acf-admin-toolbar .acf-header-tab-acf-post-type i.acf-icon {\n -webkit-mask-image: url(\"../../images/icons/icon-post-type.svg\");\n mask-image: url(\"../../images/icons/icon-post-type.svg\");\n}\n.acf-admin-toolbar .acf-header-tab-acf-taxonomy i.acf-icon {\n -webkit-mask-image: url(\"../../images/icons/icon-taxonomies.svg\");\n mask-image: url(\"../../images/icons/icon-taxonomies.svg\");\n}\n.acf-admin-toolbar .acf-header-tab-acf-tools i.acf-icon {\n -webkit-mask-image: url(\"../../images/icons/icon-tools.svg\");\n mask-image: url(\"../../images/icons/icon-tools.svg\");\n}\n.acf-admin-toolbar .acf-header-tab-acf-settings-updates i.acf-icon {\n -webkit-mask-image: url(\"../../images/icons/icon-updates.svg\");\n mask-image: url(\"../../images/icons/icon-updates.svg\");\n}\n.acf-admin-toolbar .acf-header-tab-acf-more i.acf-icon-more {\n -webkit-mask-image: url(\"../../images/icons/icon-extended-menu.svg\");\n mask-image: url(\"../../images/icons/icon-extended-menu.svg\");\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Hide WP default controls\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-admin-page h1.wp-heading-inline {\n display: none;\n}\n.acf-admin-page .wrap .wp-heading-inline + .page-title-action {\n display: none;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Headerbar\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-headerbar {\n display: flex;\n align-items: center;\n position: sticky;\n top: 32px;\n z-index: 700;\n box-sizing: border-box;\n min-height: 72px;\n margin-left: -20px;\n padding-top: 8px;\n padding-right: 32px;\n padding-bottom: 8px;\n padding-left: 32px;\n background-color: #fff;\n box-shadow: 0px 1px 2px rgba(16, 24, 40, 0.1);\n}\n.acf-headerbar .acf-headerbar-inner {\n flex: 1 1 auto;\n display: flex;\n align-items: center;\n justify-content: space-between;\n max-width: 1440px;\n}\n.acf-headerbar .acf-page-title {\n margin-top: 0;\n margin-right: 16px;\n margin-bottom: 0;\n margin-left: 0;\n padding-top: 0;\n padding-right: 0;\n padding-bottom: 0;\n padding-left: 0;\n}\n@media screen and (max-width: 880px) {\n .acf-headerbar {\n position: static;\n }\n}\n@media screen and (max-width: 600px) {\n .acf-headerbar {\n justify-content: space-between;\n position: relative;\n top: 46px;\n min-height: 64px;\n padding-right: 12px;\n }\n}\n.acf-headerbar .acf-headerbar-content {\n flex: 1 1 auto;\n display: flex;\n align-items: center;\n}\n@media screen and (max-width: 880px) {\n .acf-headerbar .acf-headerbar-content {\n flex-wrap: wrap;\n }\n .acf-headerbar .acf-headerbar-content .acf-headerbar-title,\n .acf-headerbar .acf-headerbar-content .acf-title-wrap {\n flex: 1 1 100%;\n }\n .acf-headerbar .acf-headerbar-content .acf-title-wrap {\n margin-top: 8px;\n }\n}\n.acf-headerbar .acf-input-error {\n border: 1px rgba(209, 55, 55, 0.5) solid !important;\n box-shadow: 0px 0px 0px 3px rgba(209, 55, 55, 0.12), 0px 0px 0px rgba(255, 54, 54, 0.25) !important;\n background-image: url(\"../../images/icons/icon-warning-alt-red.svg\");\n background-position: right 10px top 50%;\n background-size: 20px;\n background-repeat: no-repeat;\n}\n.acf-headerbar .acf-input-error:focus {\n outline: none !important;\n border: 1px rgba(209, 55, 55, 0.8) solid !important;\n box-shadow: 0px 0px 0px 3px rgba(209, 55, 55, 0.16), 0px 0px 0px rgba(255, 54, 54, 0.25) !important;\n}\n.acf-headerbar .acf-headerbar-title-field {\n min-width: 320px;\n}\n@media screen and (max-width: 880px) {\n .acf-headerbar .acf-headerbar-title-field {\n min-width: 100%;\n }\n}\n.acf-headerbar .acf-headerbar-actions {\n display: flex;\n}\n.acf-headerbar .acf-headerbar-actions .acf-btn {\n margin-left: 8px;\n}\n.acf-headerbar .acf-headerbar-actions .disabled {\n background-color: #F2F4F7;\n color: #98A2B3 !important;\n border: 1px #D0D5DD solid;\n cursor: default;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Edit Field Group Headerbar\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-headerbar-field-editor {\n position: sticky;\n top: 32px;\n z-index: 1020;\n margin-left: -20px;\n width: calc(100% + 20px);\n}\n@media screen and (max-width: 880px) {\n .acf-headerbar-field-editor {\n position: relative;\n top: 0;\n width: 100%;\n margin-left: 0;\n padding-right: 8px;\n padding-left: 8px;\n }\n}\n@media screen and (max-width: 640px) {\n .acf-headerbar-field-editor {\n position: relative;\n top: 46px;\n }\n}\n@media screen and (max-width: 880px) {\n .acf-headerbar-field-editor .acf-headerbar-inner {\n flex-wrap: wrap;\n justify-content: flex-start;\n align-content: flex-start;\n align-items: flex-start;\n width: 100%;\n }\n .acf-headerbar-field-editor .acf-headerbar-inner .acf-page-title {\n flex: 1 1 auto;\n }\n .acf-headerbar-field-editor .acf-headerbar-inner .acf-headerbar-actions {\n flex: 1 1 100%;\n margin-top: 8px;\n gap: 8px;\n }\n .acf-headerbar-field-editor .acf-headerbar-inner .acf-headerbar-actions .acf-btn {\n width: 100%;\n display: inline-flex;\n justify-content: center;\n margin: 0;\n }\n}\n.acf-headerbar-field-editor .acf-page-title {\n margin-right: 16px;\n}\n\n.rtl .acf-headerbar,\n.rtl .acf-headerbar-field-editor {\n margin-left: 0;\n margin-right: -20px;\n}\n.rtl .acf-headerbar .acf-page-title,\n.rtl .acf-headerbar-field-editor .acf-page-title {\n margin-left: 16px;\n margin-right: 0;\n}\n.rtl .acf-headerbar .acf-headerbar-actions .acf-btn,\n.rtl .acf-headerbar-field-editor .acf-headerbar-actions .acf-btn {\n margin-left: 0;\n margin-right: 8px;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* ACF Buttons\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-btn {\n display: inline-flex;\n align-items: center;\n box-sizing: border-box;\n min-height: 40px;\n padding-top: 8px;\n padding-right: 16px;\n padding-bottom: 8px;\n padding-left: 16px;\n background-color: #0783BE;\n border-radius: 6px;\n border-width: 1px;\n border-style: solid;\n border-color: rgba(16, 24, 40, 0.2);\n text-decoration: none;\n color: #fff !important;\n transition: all 0.2s ease-in-out;\n transition-property: background, border, box-shadow;\n}\n.acf-btn:disabled {\n background-color: red;\n}\n.acf-btn:hover {\n background-color: #066998;\n color: #fff;\n cursor: pointer;\n}\n.acf-btn.acf-btn-sm {\n min-height: 32px;\n padding-top: 4px;\n padding-right: 12px;\n padding-bottom: 4px;\n padding-left: 12px;\n}\n.acf-btn.acf-btn-secondary {\n background-color: transparent;\n color: #0783BE !important;\n border-color: #0783BE;\n}\n.acf-btn.acf-btn-secondary:hover {\n background-color: #f3f9fc;\n}\n.acf-btn.acf-btn-tertiary {\n background-color: transparent;\n color: #667085 !important;\n border-color: #D0D5DD;\n}\n.acf-btn.acf-btn-tertiary:hover {\n color: #667085 !important;\n border-color: #98A2B3;\n}\n.acf-btn.acf-btn-clear {\n background-color: transparent;\n color: #667085 !important;\n border-color: transparent;\n}\n.acf-btn.acf-btn-clear:hover {\n color: #0783BE !important;\n}\n.acf-btn.acf-btn-pro {\n background: linear-gradient(90.52deg, #3E8BFF 0.44%, #A45CFF 113.3%);\n background-size: 180% 80%;\n background-position: 100% 0;\n transition: background-position 0.5s;\n}\n.acf-btn.acf-btn-pro:hover {\n background-position: 0 0;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Button icons\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-btn i.acf-icon {\n width: 20px;\n height: 20px;\n -webkit-mask-size: 20px;\n mask-size: 20px;\n margin-right: 6px;\n margin-left: -4px;\n}\n.acf-btn.acf-btn-sm i.acf-icon {\n width: 16px;\n height: 16px;\n -webkit-mask-size: 16px;\n mask-size: 16px;\n margin-right: 6px;\n margin-left: -2px;\n}\n\n.rtl .acf-btn i.acf-icon {\n margin-right: -4px;\n margin-left: 6px;\n}\n.rtl .acf-btn.acf-btn-sm i.acf-icon {\n margin-right: -4px;\n margin-left: 2px;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Delete field group button\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-btn.acf-delete-field-group:hover {\n background-color: #fbeded;\n border-color: #D13737 !important;\n color: #D13737 !important;\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tIcon base styling\n*\n*--------------------------------------------------------------------------------------------*/\n.acf-internal-post-type i.acf-icon,\n.post-type-acf-field-group i.acf-icon {\n display: inline-flex;\n width: 20px;\n height: 20px;\n background-color: currentColor;\n border: none;\n border-radius: 0;\n -webkit-mask-size: contain;\n mask-size: contain;\n -webkit-mask-repeat: no-repeat;\n mask-repeat: no-repeat;\n -webkit-mask-position: center;\n mask-position: center;\n text-indent: 500%;\n white-space: nowrap;\n overflow: hidden;\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tIcons\n*\n*--------------------------------------------------------------------------------------------*/\n.acf-admin-page {\n /*--------------------------------------------------------------------------------------------\n *\n *\tInactive group icon\n *\n *--------------------------------------------------------------------------------------------*/\n}\n.acf-admin-page i.acf-field-setting-fc-delete, .acf-admin-page i.acf-field-setting-fc-duplicate {\n box-sizing: border-box;\n /* Auto layout */\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n padding: 8px;\n cursor: pointer;\n width: 32px;\n height: 32px;\n /* Base / White */\n background: #FFFFFF;\n /* Gray/300 */\n border: 1px solid #D0D5DD;\n /* Elevation/01 */\n box-shadow: 0px 1px 2px rgba(16, 24, 40, 0.1);\n border-radius: 6px;\n /* Inside auto layout */\n flex: none;\n order: 0;\n flex-grow: 0;\n}\n.acf-admin-page i.acf-icon-plus {\n -webkit-mask-image: url(\"../../images/icons/icon-add.svg\");\n mask-image: url(\"../../images/icons/icon-add.svg\");\n}\n.acf-admin-page i.acf-icon-stars {\n -webkit-mask-image: url(\"../../images/icons/icon-stars.svg\");\n mask-image: url(\"../../images/icons/icon-stars.svg\");\n}\n.acf-admin-page i.acf-icon-help {\n -webkit-mask-image: url(\"../../images/icons/icon-help.svg\");\n mask-image: url(\"../../images/icons/icon-help.svg\");\n}\n.acf-admin-page i.acf-icon-key {\n -webkit-mask-image: url(\"../../images/icons/icon-key.svg\");\n mask-image: url(\"../../images/icons/icon-key.svg\");\n}\n.acf-admin-page i.acf-icon-regenerate {\n -webkit-mask-image: url(\"../../images/icons/icon-regenerate.svg\");\n mask-image: url(\"../../images/icons/icon-regenerate.svg\");\n}\n.acf-admin-page i.acf-icon-trash, .acf-admin-page button.acf-icon-trash {\n -webkit-mask-image: url(\"../../images/icons/icon-trash.svg\");\n mask-image: url(\"../../images/icons/icon-trash.svg\");\n}\n.acf-admin-page i.acf-icon-extended-menu, .acf-admin-page button.acf-icon-extended-menu {\n -webkit-mask-image: url(\"../../images/icons/icon-extended-menu.svg\");\n mask-image: url(\"../../images/icons/icon-extended-menu.svg\");\n}\n.acf-admin-page i.acf-icon.-duplicate, .acf-admin-page button.acf-icon-duplicate {\n -webkit-mask-image: url(\"../../images/field-type-icons/icon-field-clone.svg\");\n mask-image: url(\"../../images/field-type-icons/icon-field-clone.svg\");\n}\n.acf-admin-page i.acf-icon.-duplicate:before, .acf-admin-page i.acf-icon.-duplicate:after, .acf-admin-page button.acf-icon-duplicate:before, .acf-admin-page button.acf-icon-duplicate:after {\n content: none;\n}\n.acf-admin-page i.acf-icon-arrow-right {\n -webkit-mask-image: url(\"../../images/icons/icon-arrow-right.svg\");\n mask-image: url(\"../../images/icons/icon-arrow-right.svg\");\n}\n.acf-admin-page i.acf-icon-arrow-up-right {\n -webkit-mask-image: url(\"../../images/icons/icon-arrow-up-right.svg\");\n mask-image: url(\"../../images/icons/icon-arrow-up-right.svg\");\n}\n.acf-admin-page i.acf-icon-arrow-left {\n -webkit-mask-image: url(\"../../images/icons/icon-arrow-left.svg\");\n mask-image: url(\"../../images/icons/icon-arrow-left.svg\");\n}\n.acf-admin-page i.acf-icon-chevron-right,\n.acf-admin-page .acf-icon.-right {\n -webkit-mask-image: url(\"../../images/icons/icon-chevron-right.svg\");\n mask-image: url(\"../../images/icons/icon-chevron-right.svg\");\n}\n.acf-admin-page i.acf-icon-chevron-left,\n.acf-admin-page .acf-icon.-left {\n -webkit-mask-image: url(\"../../images/icons/icon-chevron-left.svg\");\n mask-image: url(\"../../images/icons/icon-chevron-left.svg\");\n}\n.acf-admin-page i.acf-icon-key-solid {\n -webkit-mask-image: url(\"../../images/icons/icon-key-solid.svg\");\n mask-image: url(\"../../images/icons/icon-key-solid.svg\");\n}\n.acf-admin-page i.acf-icon-globe,\n.acf-admin-page .acf-icon.-globe {\n -webkit-mask-image: url(\"../../images/icons/icon-globe.svg\");\n mask-image: url(\"../../images/icons/icon-globe.svg\");\n}\n.acf-admin-page i.acf-icon-image,\n.acf-admin-page .acf-icon.-picture {\n -webkit-mask-image: url(\"../../images/field-type-icons/icon-field-image.svg\");\n mask-image: url(\"../../images/field-type-icons/icon-field-image.svg\");\n}\n.acf-admin-page i.acf-icon-warning {\n -webkit-mask-image: url(\"../../images/icons/icon-warning-alt.svg\");\n mask-image: url(\"../../images/icons/icon-warning-alt.svg\");\n}\n.acf-admin-page i.acf-icon-warning-red {\n -webkit-mask-image: url(\"../../images/icons/icon-warning-alt-red.svg\");\n mask-image: url(\"../../images/icons/icon-warning-alt-red.svg\");\n}\n.acf-admin-page i.acf-icon-dots-grid {\n -webkit-mask-image: url(\"../../images/icons/icon-dots-grid.svg\");\n mask-image: url(\"../../images/icons/icon-dots-grid.svg\");\n}\n.acf-admin-page i.acf-icon-play {\n -webkit-mask-image: url(\"../../images/icons/icon-play.svg\");\n mask-image: url(\"../../images/icons/icon-play.svg\");\n}\n.acf-admin-page i.acf-icon-lock {\n -webkit-mask-image: url(\"../../images/icons/icon-lock.svg\");\n mask-image: url(\"../../images/icons/icon-lock.svg\");\n}\n.acf-admin-page i.acf-icon-document {\n -webkit-mask-image: url(\"../../images/icons/icon-document.svg\");\n mask-image: url(\"../../images/icons/icon-document.svg\");\n}\n.acf-admin-page .post-type-acf-field-group .post-state,\n.acf-admin-page .acf-internal-post-type .post-state {\n font-weight: normal;\n}\n.acf-admin-page .post-type-acf-field-group .post-state .dashicons.dashicons-hidden,\n.acf-admin-page .acf-internal-post-type .post-state .dashicons.dashicons-hidden {\n display: inline-flex;\n width: 18px;\n height: 18px;\n background-color: #98A2B3;\n border: none;\n border-radius: 0;\n -webkit-mask-size: 18px;\n mask-size: 18px;\n -webkit-mask-repeat: no-repeat;\n mask-repeat: no-repeat;\n -webkit-mask-position: center;\n mask-position: center;\n -webkit-mask-image: url(\"../../images/icons/icon-hidden.svg\");\n mask-image: url(\"../../images/icons/icon-hidden.svg\");\n}\n.acf-admin-page .post-type-acf-field-group .post-state .dashicons.dashicons-hidden:before,\n.acf-admin-page .acf-internal-post-type .post-state .dashicons.dashicons-hidden:before {\n display: none;\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tEdit field group page postbox header icons\n*\n*--------------------------------------------------------------------------------------------*/\n#acf-field-group-fields .postbox-header h2,\n#acf-field-group-fields .postbox-header h3,\n#acf-field-group-fields .acf-sub-field-list-header h2,\n#acf-field-group-fields .acf-sub-field-list-header h3,\n#acf-field-group-options .postbox-header h2,\n#acf-field-group-options .postbox-header h3,\n#acf-field-group-options .acf-sub-field-list-header h2,\n#acf-field-group-options .acf-sub-field-list-header h3,\n#acf-advanced-settings .postbox-header h2,\n#acf-advanced-settings .postbox-header h3,\n#acf-advanced-settings .acf-sub-field-list-header h2,\n#acf-advanced-settings .acf-sub-field-list-header h3 {\n display: inline-flex;\n justify-content: flex-start;\n align-content: stretch;\n align-items: center;\n}\n#acf-field-group-fields .postbox-header h2:before,\n#acf-field-group-fields .postbox-header h3:before,\n#acf-field-group-fields .acf-sub-field-list-header h2:before,\n#acf-field-group-fields .acf-sub-field-list-header h3:before,\n#acf-field-group-options .postbox-header h2:before,\n#acf-field-group-options .postbox-header h3:before,\n#acf-field-group-options .acf-sub-field-list-header h2:before,\n#acf-field-group-options .acf-sub-field-list-header h3:before,\n#acf-advanced-settings .postbox-header h2:before,\n#acf-advanced-settings .postbox-header h3:before,\n#acf-advanced-settings .acf-sub-field-list-header h2:before,\n#acf-advanced-settings .acf-sub-field-list-header h3:before {\n content: \"\";\n display: inline-block;\n width: 20px;\n height: 20px;\n margin-right: 8px;\n background-color: #98A2B3;\n border: none;\n border-radius: 0;\n -webkit-mask-size: contain;\n mask-size: contain;\n -webkit-mask-repeat: no-repeat;\n mask-repeat: no-repeat;\n -webkit-mask-position: center;\n mask-position: center;\n}\n\n.rtl #acf-field-group-fields .postbox-header h2:before,\n.rtl #acf-field-group-fields .postbox-header h3:before,\n.rtl #acf-field-group-fields .acf-sub-field-list-header h2:before,\n.rtl #acf-field-group-fields .acf-sub-field-list-header h3:before,\n.rtl #acf-field-group-options .postbox-header h2:before,\n.rtl #acf-field-group-options .postbox-header h3:before,\n.rtl #acf-field-group-options .acf-sub-field-list-header h2:before,\n.rtl #acf-field-group-options .acf-sub-field-list-header h3:before {\n margin-right: 0;\n margin-left: 8px;\n}\n\n#acf-field-group-fields .postbox-header h2:before,\nh3.acf-sub-field-list-title:before,\n.acf-link-field-groups-popup h3:before {\n -webkit-mask-image: url(\"../../images/icons/icon-fields.svg\");\n mask-image: url(\"../../images/icons/icon-fields.svg\");\n}\n\n#acf-field-group-options .postbox-header h2:before {\n -webkit-mask-image: url(\"../../images/icons/icon-settings.svg\");\n mask-image: url(\"../../images/icons/icon-settings.svg\");\n}\n\n.acf-field-setting-fc_layout .acf-field-settings-fc_head label:before {\n -webkit-mask-image: url(\"../../images/icons/icon-layout.svg\");\n mask-image: url(\"../../images/icons/icon-layout.svg\");\n}\n\n.acf-admin-single-post-type #acf-advanced-settings .postbox-header h2:before,\n.acf-admin-single-taxonomy #acf-advanced-settings .postbox-header h2:before {\n -webkit-mask-image: url(\"../../images/icons/icon-post-type.svg\");\n mask-image: url(\"../../images/icons/icon-post-type.svg\");\n}\n\n.acf-field-setting-fc_layout .acf-field-settings-fc_head:hover .reorder-layout:before {\n width: 20px;\n height: 11px;\n background-color: #475467 !important;\n -webkit-mask-image: url(\"../../images/icons/icon-draggable.svg\");\n mask-image: url(\"../../images/icons/icon-draggable.svg\");\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tPostbox expand / collapse icon\n*\n*--------------------------------------------------------------------------------------------*/\n.post-type-acf-field-group .postbox-header .handle-actions,\n.post-type-acf-field-group #acf-field-group-fields .postbox-header .handle-actions,\n.post-type-acf-field-group #acf-field-group-options .postbox-header .handle-actions,\n.post-type-acf-field-group .postbox .postbox-header .handle-actions,\n.acf-admin-single-post-type #acf-advanced-settings .postbox-header .handle-actions,\n.acf-admin-single-taxonomy #acf-advanced-settings .postbox-header .handle-actions {\n display: flex;\n}\n.post-type-acf-field-group .postbox-header .handle-actions .toggle-indicator:before,\n.post-type-acf-field-group #acf-field-group-fields .postbox-header .handle-actions .toggle-indicator:before,\n.post-type-acf-field-group #acf-field-group-options .postbox-header .handle-actions .toggle-indicator:before,\n.post-type-acf-field-group .postbox .postbox-header .handle-actions .toggle-indicator:before,\n.acf-admin-single-post-type #acf-advanced-settings .postbox-header .handle-actions .toggle-indicator:before,\n.acf-admin-single-taxonomy #acf-advanced-settings .postbox-header .handle-actions .toggle-indicator:before {\n content: \"\";\n display: inline-flex;\n width: 20px;\n height: 20px;\n background-color: currentColor;\n border: none;\n border-radius: 0;\n -webkit-mask-size: contain;\n mask-size: contain;\n -webkit-mask-repeat: no-repeat;\n mask-repeat: no-repeat;\n -webkit-mask-position: center;\n mask-position: center;\n -webkit-mask-image: url(\"../../images/icons/icon-chevron-up.svg\");\n mask-image: url(\"../../images/icons/icon-chevron-up.svg\");\n}\n.post-type-acf-field-group.closed .postbox-header .handle-actions .toggle-indicator:before,\n.post-type-acf-field-group #acf-field-group-fields.closed .postbox-header .handle-actions .toggle-indicator:before,\n.post-type-acf-field-group #acf-field-group-options.closed .postbox-header .handle-actions .toggle-indicator:before,\n.post-type-acf-field-group .postbox.closed .postbox-header .handle-actions .toggle-indicator:before,\n.acf-admin-single-post-type #acf-advanced-settings.closed .postbox-header .handle-actions .toggle-indicator:before,\n.acf-admin-single-taxonomy #acf-advanced-settings.closed .postbox-header .handle-actions .toggle-indicator:before {\n -webkit-mask-image: url(\"../../images/icons/icon-chevron-down.svg\");\n mask-image: url(\"../../images/icons/icon-chevron-down.svg\");\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Tools & updates page heading icons\n*\n*---------------------------------------------------------------------------------------------*/\n.post-type-acf-field-group #acf-admin-tool-export h2,\n.post-type-acf-field-group #acf-admin-tool-export h3,\n.post-type-acf-field-group #acf-admin-tool-import h2,\n.post-type-acf-field-group #acf-admin-tool-import h3,\n.post-type-acf-field-group #acf-license-information h2,\n.post-type-acf-field-group #acf-license-information h3,\n.post-type-acf-field-group #acf-update-information h2,\n.post-type-acf-field-group #acf-update-information h3 {\n display: inline-flex;\n justify-content: flex-start;\n align-content: stretch;\n align-items: center;\n}\n.post-type-acf-field-group #acf-admin-tool-export h2:before,\n.post-type-acf-field-group #acf-admin-tool-export h3:before,\n.post-type-acf-field-group #acf-admin-tool-import h2:before,\n.post-type-acf-field-group #acf-admin-tool-import h3:before,\n.post-type-acf-field-group #acf-license-information h2:before,\n.post-type-acf-field-group #acf-license-information h3:before,\n.post-type-acf-field-group #acf-update-information h2:before,\n.post-type-acf-field-group #acf-update-information h3:before {\n content: \"\";\n display: inline-block;\n width: 20px;\n height: 20px;\n margin-right: 8px;\n background-color: #98A2B3;\n border: none;\n border-radius: 0;\n -webkit-mask-size: contain;\n mask-size: contain;\n -webkit-mask-repeat: no-repeat;\n mask-repeat: no-repeat;\n -webkit-mask-position: center;\n mask-position: center;\n}\n.post-type-acf-field-group.rtl #acf-admin-tool-export h2:before,\n.post-type-acf-field-group.rtl #acf-admin-tool-export h3:before,\n.post-type-acf-field-group.rtl #acf-admin-tool-import h2:before,\n.post-type-acf-field-group.rtl #acf-admin-tool-import h3:before,\n.post-type-acf-field-group.rtl #acf-license-information h2:before,\n.post-type-acf-field-group.rtl #acf-license-information h3:before,\n.post-type-acf-field-group.rtl #acf-update-information h2:before,\n.post-type-acf-field-group.rtl #acf-update-information h3:before {\n margin-right: 0;\n margin-left: 8px;\n}\n\n.post-type-acf-field-group #acf-admin-tool-export h2:before {\n -webkit-mask-image: url(\"../../images/icons/icon-export.svg\");\n mask-image: url(\"../../images/icons/icon-export.svg\");\n}\n\n.post-type-acf-field-group #acf-admin-tool-import h2:before {\n -webkit-mask-image: url(\"../../images/icons/icon-import.svg\");\n mask-image: url(\"../../images/icons/icon-import.svg\");\n}\n\n.post-type-acf-field-group #acf-license-information h3:before {\n -webkit-mask-image: url(\"../../images/icons/icon-key.svg\");\n mask-image: url(\"../../images/icons/icon-key.svg\");\n}\n\n.post-type-acf-field-group #acf-update-information h3:before {\n -webkit-mask-image: url(\"../../images/icons/icon-info.svg\");\n mask-image: url(\"../../images/icons/icon-info.svg\");\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tAdmin field icons\n*\n*--------------------------------------------------------------------------------------------*/\n.acf-admin-single-field-group .acf-input .acf-icon {\n width: 18px;\n height: 18px;\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tField type icon base styling\n*\n*--------------------------------------------------------------------------------------------*/\n.field-type-icon {\n box-sizing: border-box;\n display: inline-flex;\n align-content: center;\n align-items: center;\n justify-content: center;\n position: relative;\n width: 24px;\n height: 24px;\n top: -4px;\n background-color: #EBF5FA;\n border-width: 1px;\n border-style: solid;\n border-color: #A5D2E7;\n border-radius: 100%;\n}\n.field-type-icon:before {\n content: \"\";\n width: 14px;\n height: 14px;\n position: relative;\n background-color: #0783BE;\n -webkit-mask-size: cover;\n mask-size: cover;\n -webkit-mask-repeat: no-repeat;\n mask-repeat: no-repeat;\n -webkit-mask-position: center;\n mask-position: center;\n -webkit-mask-image: url(\"../../images/field-type-icons/icon-field-default.svg\");\n mask-image: url(\"../../images/field-type-icons/icon-field-default.svg\");\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tField type icons\n*\n*--------------------------------------------------------------------------------------------*/\n.field-type-icon.field-type-icon-text:before {\n -webkit-mask-image: url(\"../../images/field-type-icons/icon-field-text.svg\");\n mask-image: url(\"../../images/field-type-icons/icon-field-text.svg\");\n}\n\n.field-type-icon.field-type-icon-textarea:before {\n -webkit-mask-image: url(\"../../images/field-type-icons/icon-field-textarea.svg\");\n mask-image: url(\"../../images/field-type-icons/icon-field-textarea.svg\");\n}\n\n.field-type-icon.field-type-icon-textarea:before {\n -webkit-mask-image: url(\"../../images/field-type-icons/icon-field-textarea.svg\");\n mask-image: url(\"../../images/field-type-icons/icon-field-textarea.svg\");\n}\n\n.field-type-icon.field-type-icon-number:before {\n -webkit-mask-image: url(\"../../images/field-type-icons/icon-field-number.svg\");\n mask-image: url(\"../../images/field-type-icons/icon-field-number.svg\");\n}\n\n.field-type-icon.field-type-icon-range:before {\n -webkit-mask-image: url(\"../../images/field-type-icons/icon-field-range.svg\");\n mask-image: url(\"../../images/field-type-icons/icon-field-range.svg\");\n}\n\n.field-type-icon.field-type-icon-email:before {\n -webkit-mask-image: url(\"../../images/field-type-icons/icon-field-email.svg\");\n mask-image: url(\"../../images/field-type-icons/icon-field-email.svg\");\n}\n\n.field-type-icon.field-type-icon-url:before {\n -webkit-mask-image: url(\"../../images/field-type-icons/icon-field-url.svg\");\n mask-image: url(\"../../images/field-type-icons/icon-field-url.svg\");\n}\n\n.field-type-icon.field-type-icon-password:before {\n -webkit-mask-image: url(\"../../images/field-type-icons/icon-field-password.svg\");\n mask-image: url(\"../../images/field-type-icons/icon-field-password.svg\");\n}\n\n.field-type-icon.field-type-icon-image:before {\n -webkit-mask-image: url(\"../../images/field-type-icons/icon-field-image.svg\");\n mask-image: url(\"../../images/field-type-icons/icon-field-image.svg\");\n}\n\n.field-type-icon.field-type-icon-file:before {\n -webkit-mask-image: url(\"../../images/field-type-icons/icon-field-file.svg\");\n mask-image: url(\"../../images/field-type-icons/icon-field-file.svg\");\n}\n\n.field-type-icon.field-type-icon-wysiwyg:before {\n -webkit-mask-image: url(\"../../images/field-type-icons/icon-field-wysiwyg.svg\");\n mask-image: url(\"../../images/field-type-icons/icon-field-wysiwyg.svg\");\n}\n\n.field-type-icon.field-type-icon-oembed:before {\n -webkit-mask-image: url(\"../../images/field-type-icons/icon-field-oembed.svg\");\n mask-image: url(\"../../images/field-type-icons/icon-field-oembed.svg\");\n}\n\n.field-type-icon.field-type-icon-gallery:before {\n -webkit-mask-image: url(\"../../images/field-type-icons/icon-field-gallery.svg\");\n mask-image: url(\"../../images/field-type-icons/icon-field-gallery.svg\");\n}\n\n.field-type-icon.field-type-icon-select:before {\n -webkit-mask-image: url(\"../../images/field-type-icons/icon-field-select.svg\");\n mask-image: url(\"../../images/field-type-icons/icon-field-select.svg\");\n}\n\n.field-type-icon.field-type-icon-checkbox:before {\n -webkit-mask-image: url(\"../../images/field-type-icons/icon-field-checkbox.svg\");\n mask-image: url(\"../../images/field-type-icons/icon-field-checkbox.svg\");\n}\n\n.field-type-icon.field-type-icon-radio:before {\n -webkit-mask-image: url(\"../../images/field-type-icons/icon-field-radio.svg\");\n mask-image: url(\"../../images/field-type-icons/icon-field-radio.svg\");\n}\n\n.field-type-icon.field-type-icon-button-group:before {\n -webkit-mask-image: url(\"../../images/field-type-icons/icon-field-button-group.svg\");\n mask-image: url(\"../../images/field-type-icons/icon-field-button-group.svg\");\n}\n\n.field-type-icon.field-type-icon-true-false:before {\n -webkit-mask-image: url(\"../../images/field-type-icons/icon-field-true-false.svg\");\n mask-image: url(\"../../images/field-type-icons/icon-field-true-false.svg\");\n}\n\n.field-type-icon.field-type-icon-link:before {\n -webkit-mask-image: url(\"../../images/field-type-icons/icon-field-link.svg\");\n mask-image: url(\"../../images/field-type-icons/icon-field-link.svg\");\n}\n\n.field-type-icon.field-type-icon-post-object:before {\n -webkit-mask-image: url(\"../../images/field-type-icons/icon-field-post-object.svg\");\n mask-image: url(\"../../images/field-type-icons/icon-field-post-object.svg\");\n}\n\n.field-type-icon.field-type-icon-page-link:before {\n -webkit-mask-image: url(\"../../images/field-type-icons/icon-field-page-link.svg\");\n mask-image: url(\"../../images/field-type-icons/icon-field-page-link.svg\");\n}\n\n.field-type-icon.field-type-icon-relationship:before {\n -webkit-mask-image: url(\"../../images/field-type-icons/icon-field-relationship.svg\");\n mask-image: url(\"../../images/field-type-icons/icon-field-relationship.svg\");\n}\n\n.field-type-icon.field-type-icon-taxonomy:before {\n -webkit-mask-image: url(\"../../images/field-type-icons/icon-field-taxonomy.svg\");\n mask-image: url(\"../../images/field-type-icons/icon-field-taxonomy.svg\");\n}\n\n.field-type-icon.field-type-icon-user:before {\n -webkit-mask-image: url(\"../../images/field-type-icons/icon-field-user.svg\");\n mask-image: url(\"../../images/field-type-icons/icon-field-user.svg\");\n}\n\n.field-type-icon.field-type-icon-google-map:before {\n -webkit-mask-image: url(\"../../images/field-type-icons/icon-field-google-map.svg\");\n mask-image: url(\"../../images/field-type-icons/icon-field-google-map.svg\");\n}\n\n.field-type-icon.field-type-icon-date-picker:before {\n -webkit-mask-image: url(\"../../images/field-type-icons/icon-field-date-picker.svg\");\n mask-image: url(\"../../images/field-type-icons/icon-field-date-picker.svg\");\n}\n\n.field-type-icon.field-type-icon-date-time-picker:before {\n -webkit-mask-image: url(\"../../images/field-type-icons/icon-field-date-time-picker.svg\");\n mask-image: url(\"../../images/field-type-icons/icon-field-date-time-picker.svg\");\n}\n\n.field-type-icon.field-type-icon-time-picker:before {\n -webkit-mask-image: url(\"../../images/field-type-icons/icon-field-time-picker.svg\");\n mask-image: url(\"../../images/field-type-icons/icon-field-time-picker.svg\");\n}\n\n.field-type-icon.field-type-icon-color-picker:before {\n -webkit-mask-image: url(\"../../images/field-type-icons/icon-field-color-picker.svg\");\n mask-image: url(\"../../images/field-type-icons/icon-field-color-picker.svg\");\n}\n\n.field-type-icon.field-type-icon-message:before {\n -webkit-mask-image: url(\"../../images/field-type-icons/icon-field-message.svg\");\n mask-image: url(\"../../images/field-type-icons/icon-field-message.svg\");\n}\n\n.field-type-icon.field-type-icon-accordion:before {\n -webkit-mask-image: url(\"../../images/field-type-icons/icon-field-accordion.svg\");\n mask-image: url(\"../../images/field-type-icons/icon-field-accordion.svg\");\n}\n\n.field-type-icon.field-type-icon-tab:before {\n -webkit-mask-image: url(\"../../images/field-type-icons/icon-field-tab.svg\");\n mask-image: url(\"../../images/field-type-icons/icon-field-tab.svg\");\n}\n\n.field-type-icon.field-type-icon-group:before {\n -webkit-mask-image: url(\"../../images/field-type-icons/icon-field-group.svg\");\n mask-image: url(\"../../images/field-type-icons/icon-field-group.svg\");\n}\n\n.field-type-icon.field-type-icon-repeater:before {\n -webkit-mask-image: url(\"../../images/field-type-icons/icon-field-repeater.svg\");\n mask-image: url(\"../../images/field-type-icons/icon-field-repeater.svg\");\n}\n\n.field-type-icon.field-type-icon-flexible-content:before {\n -webkit-mask-image: url(\"../../images/field-type-icons/icon-field-flexible-content.svg\");\n mask-image: url(\"../../images/field-type-icons/icon-field-flexible-content.svg\");\n}\n\n.field-type-icon.field-type-icon-clone:before {\n -webkit-mask-image: url(\"../../images/field-type-icons/icon-field-clone.svg\");\n mask-image: url(\"../../images/field-type-icons/icon-field-clone.svg\");\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Tools page layout\n*\n*---------------------------------------------------------------------------------------------*/\n#acf-admin-tools .postbox-header {\n display: none;\n}\n#acf-admin-tools .acf-meta-box-wrap.-grid {\n margin-top: 0;\n margin-right: 0;\n margin-bottom: 0;\n margin-left: 0;\n}\n#acf-admin-tools .acf-meta-box-wrap.-grid .postbox {\n width: 100%;\n clear: none;\n float: none;\n margin-bottom: 0;\n}\n@media screen and (max-width: 880px) {\n #acf-admin-tools .acf-meta-box-wrap.-grid .postbox {\n flex: 1 1 100%;\n }\n}\n#acf-admin-tools .acf-meta-box-wrap.-grid .postbox:nth-child(odd) {\n margin-left: 0;\n}\n#acf-admin-tools .meta-box-sortables {\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n grid-template-rows: repeat(1, 1fr);\n grid-column-gap: 32px;\n grid-row-gap: 32px;\n}\n@media screen and (max-width: 880px) {\n #acf-admin-tools .meta-box-sortables {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start;\n align-content: flex-start;\n align-items: center;\n grid-column-gap: 8px;\n grid-row-gap: 8px;\n }\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Tools export pages\n*\n*---------------------------------------------------------------------------------------------*/\n#acf-admin-tools.tool-export .inside {\n margin: 0;\n}\n#acf-admin-tools.tool-export .acf-postbox-header {\n margin-bottom: 24px;\n}\n#acf-admin-tools.tool-export .acf-postbox-main {\n border: none;\n margin: 0;\n padding-top: 0;\n padding-right: 24px;\n padding-bottom: 0;\n padding-left: 0;\n}\n#acf-admin-tools.tool-export .acf-postbox-columns {\n margin-top: 0;\n margin-right: 280px;\n margin-bottom: 0;\n margin-left: 0;\n padding: 0;\n}\n#acf-admin-tools.tool-export .acf-postbox-columns .acf-postbox-side {\n padding: 0;\n}\n#acf-admin-tools.tool-export .acf-postbox-columns .acf-postbox-side .acf-panel {\n margin: 0;\n padding: 0;\n}\n#acf-admin-tools.tool-export .acf-postbox-columns .acf-postbox-side:before {\n display: none;\n}\n#acf-admin-tools.tool-export .acf-postbox-columns .acf-postbox-side .acf-btn {\n display: block;\n width: 100%;\n text-align: center;\n}\n#acf-admin-tools.tool-export .meta-box-sortables {\n display: block;\n}\n#acf-admin-tools.tool-export .acf-panel {\n border: none;\n}\n#acf-admin-tools.tool-export .acf-panel h3 {\n margin: 0;\n padding: 0;\n color: #344054;\n}\n#acf-admin-tools.tool-export .acf-panel h3:before {\n display: none;\n}\n#acf-admin-tools.tool-export .acf-checkbox-list {\n margin-top: 16px;\n border-width: 1px;\n border-style: solid;\n border-color: #D0D5DD;\n border-radius: 6px;\n}\n#acf-admin-tools.tool-export .acf-checkbox-list li {\n display: inline-flex;\n box-sizing: border-box;\n width: 100%;\n height: 48px;\n align-items: center;\n margin: 0;\n padding-right: 12px;\n padding-left: 12px;\n border-bottom-width: 1px;\n border-bottom-style: solid;\n border-bottom-color: #EAECF0;\n}\n#acf-admin-tools.tool-export .acf-checkbox-list li:last-child {\n border-bottom: none;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Updates layout\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-settings-wrap.acf-updates {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n justify-content: flex-start;\n align-content: flex-start;\n align-items: flex-start;\n}\n\n.custom-fields_page_acf-settings-updates .acf-admin-notice,\n.custom-fields_page_acf-settings-updates .acf-upgrade-notice,\n.custom-fields_page_acf-settings-updates .notice {\n flex: 1 1 100%;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* ACF Box\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-settings-wrap.acf-updates .acf-box {\n margin-top: 0;\n margin-right: 0;\n margin-bottom: 0;\n margin-left: 0;\n}\n.acf-settings-wrap.acf-updates .acf-box .inner {\n padding-top: 24px;\n padding-right: 24px;\n padding-bottom: 24px;\n padding-left: 24px;\n}\n@media screen and (max-width: 880px) {\n .acf-settings-wrap.acf-updates .acf-box {\n flex: 1 1 100%;\n }\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Notices\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-settings-wrap.acf-updates .acf-admin-notice {\n flex: 1 1 100%;\n margin-top: 16px;\n margin-right: 0;\n margin-left: 0;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* License information\n*\n*---------------------------------------------------------------------------------------------*/\n#acf-license-information {\n flex: 1 1 65%;\n margin-right: 32px;\n}\n@media screen and (max-width: 1024px) {\n #acf-license-information {\n margin-right: 0;\n margin-bottom: 32px;\n }\n}\n#acf-license-information .acf-activation-form {\n margin-top: 24px;\n}\n#acf-license-information label {\n font-weight: 500;\n}\n#acf-license-information .acf-input-wrap {\n margin-top: 8px;\n margin-bottom: 24px;\n}\n#acf-license-information #acf_pro_license {\n width: 100%;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Update information table\n*\n*---------------------------------------------------------------------------------------------*/\n#acf-update-information {\n flex: 1 1 35%;\n max-width: calc(35% - 32px);\n}\n#acf-update-information .form-table th,\n#acf-update-information .form-table td {\n padding-top: 0;\n padding-right: 0;\n padding-bottom: 24px;\n padding-left: 0;\n color: #344054;\n}\n#acf-update-information .acf-update-changelog {\n margin-top: 8px;\n margin-bottom: 24px;\n padding-top: 8px;\n border-top-width: 1px;\n border-top-style: solid;\n border-top-color: #EAECF0;\n color: #344054;\n}\n#acf-update-information .acf-update-changelog h4 {\n margin-bottom: 0;\n}\n#acf-update-information .acf-update-changelog p {\n margin-top: 0;\n margin-bottom: 16px;\n}\n#acf-update-information .acf-update-changelog p:last-of-type {\n margin-bottom: 0;\n}\n#acf-update-information .acf-update-changelog p em {\n color: #667085;\n}\n#acf-update-information .acf-btn {\n display: inline-flex;\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tHeader pro upgrade button\n*\n*--------------------------------------------------------------------------------------------*/\n.acf-admin-toolbar a.acf-admin-toolbar-upgrade-btn {\n display: inline-flex;\n align-items: center;\n align-self: stretch;\n padding-top: 0;\n padding-right: 16px;\n padding-bottom: 0;\n padding-left: 16px;\n background: linear-gradient(90.52deg, #3E8BFF 0.44%, #A45CFF 113.3%);\n box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.16);\n background-size: 180% 80%;\n background-position: 100% 0;\n transition: background-position 0.5s;\n border-radius: 6px;\n text-decoration: none;\n}\n@media screen and (max-width: 768px) {\n .acf-admin-toolbar a.acf-admin-toolbar-upgrade-btn {\n display: none;\n }\n}\n.acf-admin-toolbar a.acf-admin-toolbar-upgrade-btn:hover {\n background-position: 0 0;\n}\n.acf-admin-toolbar a.acf-admin-toolbar-upgrade-btn:focus {\n border: none;\n outline: none;\n box-shadow: none;\n}\n.acf-admin-toolbar a.acf-admin-toolbar-upgrade-btn p {\n margin: 0;\n padding-top: 8px;\n padding-bottom: 8px;\n font-weight: normal;\n text-transform: none;\n color: #fff;\n}\n.acf-admin-toolbar a.acf-admin-toolbar-upgrade-btn .acf-icon {\n width: 18px;\n height: 18px;\n margin-right: 6px;\n margin-left: -2px;\n background-color: #F9FAFB;\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n* Upsell block\n*\n*--------------------------------------------------------------------------------------------*/\n#tmpl-acf-field-group-pro-features,\n#acf-field-group-pro-features {\n display: none;\n align-items: center;\n min-height: 120px;\n background-color: #121833;\n background-image: url(../../images/pro-upgrade-grid-bg.svg), url(../../images/pro-upgrade-overlay.svg);\n background-repeat: repeat, no-repeat;\n background-size: 1224px, 1880px;\n background-position: left top, -520px -680px;\n color: #EAECF0;\n border-radius: 8px;\n margin-top: 24px;\n margin-bottom: 24px;\n}\n@media screen and (max-width: 768px) {\n #tmpl-acf-field-group-pro-features,\n #acf-field-group-pro-features {\n background-size: 1024px, 980px;\n background-position: left top, -500px -200px;\n }\n}\n@media screen and (max-width: 1200px) {\n #tmpl-acf-field-group-pro-features,\n #acf-field-group-pro-features {\n background-size: 1024px, 1880px;\n background-position: left top, -520px -300px;\n }\n}\n#tmpl-acf-field-group-pro-features .postbox-header,\n#acf-field-group-pro-features .postbox-header {\n display: none;\n}\n#tmpl-acf-field-group-pro-features .inside,\n#acf-field-group-pro-features .inside {\n width: 100%;\n border: none;\n padding: 0;\n}\n#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper,\n#acf-field-group-pro-features .acf-field-group-pro-features-wrapper {\n display: flex;\n justify-content: center;\n align-content: stretch;\n align-items: center;\n gap: 96px;\n height: 358px;\n max-width: 950px;\n margin: 0 auto;\n padding: 0 35px;\n}\n@media screen and (max-width: 1200px) {\n #tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper,\n #acf-field-group-pro-features .acf-field-group-pro-features-wrapper {\n gap: 48px;\n }\n}\n@media screen and (max-width: 768px) {\n #tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper,\n #acf-field-group-pro-features .acf-field-group-pro-features-wrapper {\n gap: 0;\n }\n}\n#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-title,\n#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-title-sm,\n#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-title,\n#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-title-sm {\n font-weight: 590;\n line-height: 150%;\n}\n#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-title .acf-pro-label,\n#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-title-sm .acf-pro-label,\n#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-title .acf-pro-label,\n#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-title-sm .acf-pro-label {\n font-weight: normal;\n margin-top: -4px;\n margin-left: 2px;\n vertical-align: middle;\n height: 22px;\n}\n#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-title-sm,\n#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-title-sm {\n display: none;\n font-size: 18px;\n}\n#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-title-sm .acf-pro-label,\n#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-title-sm .acf-pro-label {\n font-size: 10px;\n height: 20px;\n}\n@media screen and (max-width: 768px) {\n #tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-title-sm,\n #acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-title-sm {\n width: 100%;\n text-align: center;\n }\n}\n@media screen and (max-width: 768px) {\n #tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper,\n #acf-field-group-pro-features .acf-field-group-pro-features-wrapper {\n flex-direction: column;\n flex-wrap: wrap;\n justify-content: flex-start;\n align-content: flex-start;\n align-items: flex-start;\n padding: 32px 32px 0 32px;\n height: unset;\n }\n #tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-title-sm,\n #acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-title-sm {\n display: block;\n margin-bottom: 24px;\n }\n}\n#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-content,\n#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-content {\n display: flex;\n flex-direction: column;\n width: 416px;\n}\n#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-content .acf-field-group-pro-features-desc,\n#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-content .acf-field-group-pro-features-desc {\n margin-top: 8px;\n margin-bottom: 24px;\n font-size: 15px;\n font-weight: 300;\n color: #D0D5DD;\n}\n@media screen and (max-width: 768px) {\n #tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-content,\n #acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-content {\n width: 100%;\n order: 1;\n margin-right: 0;\n margin-bottom: 8px;\n }\n #tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-content .acf-field-group-pro-features-title,\n #tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-content .acf-field-group-pro-features-desc,\n #acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-content .acf-field-group-pro-features-title,\n #acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-content .acf-field-group-pro-features-desc {\n display: none;\n }\n}\n#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-actions,\n#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-actions {\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n min-width: 160px;\n gap: 12px;\n}\n@media screen and (max-width: 768px) {\n #tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-actions,\n #acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-actions {\n justify-content: flex-start;\n flex-direction: column;\n margin-bottom: 24px;\n }\n #tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-actions a,\n #acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-actions a {\n justify-content: center;\n text-align: center;\n width: 100%;\n }\n}\n#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid,\n#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n gap: 16px;\n width: 416px;\n}\n#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature,\n#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n width: 128px;\n height: 124px;\n background: rgba(255, 255, 255, 0.08);\n box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.04), 0px 8px 16px rgba(0, 0, 0, 0.08), inset 0 0 0 1px rgba(255, 255, 255, 0.08);\n backdrop-filter: blur(6px);\n border-radius: 8px;\n}\n#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .field-type-icon,\n#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .field-type-icon {\n border: none;\n background: none;\n width: 24px;\n opacity: 0.8;\n}\n#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .field-type-icon::before,\n#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .field-type-icon::before {\n background-color: #fff;\n width: 20px;\n height: 20px;\n}\n@media screen and (max-width: 1200px) {\n #tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .field-type-icon::before,\n #acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .field-type-icon::before {\n width: 18px;\n height: 18px;\n }\n}\n#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .pro-feature-blocks::before,\n#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .pro-feature-blocks::before {\n -webkit-mask-image: url(\"../../images/icons/icon-extended-menu.svg\");\n mask-image: url(\"../../images/icons/icon-extended-menu.svg\");\n}\n#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .pro-feature-options-pages::before,\n#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .pro-feature-options-pages::before {\n -webkit-mask-image: url(\"../../images/icons/icon-settings.svg\");\n mask-image: url(\"../../images/icons/icon-settings.svg\");\n}\n#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .field-type-label,\n#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .field-type-label {\n margin-top: 4px;\n font-size: 13px;\n font-weight: 300;\n text-align: center;\n color: #fff;\n}\n@media screen and (max-width: 1200px) {\n #tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid,\n #acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid {\n flex-direction: column;\n gap: 8px;\n width: 288px;\n }\n #tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature,\n #acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature {\n width: 100%;\n height: 40px;\n flex-direction: row;\n justify-content: unset;\n gap: 8px;\n }\n #tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .field-type-icon,\n #acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .field-type-icon {\n position: initial;\n margin-left: 16px;\n }\n #tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .field-type-label,\n #acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .field-type-label {\n margin-top: 0;\n }\n}\n@media screen and (max-width: 768px) {\n #tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid,\n #acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid {\n gap: 0;\n width: 100%;\n height: auto;\n margin-bottom: 16px;\n flex-direction: unset;\n flex-wrap: wrap;\n }\n #tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature,\n #acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature {\n flex: 1 0 50%;\n margin-bottom: 8px;\n width: auto;\n height: auto;\n justify-content: center;\n background: none;\n box-shadow: none;\n backdrop-filter: none;\n }\n #tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .field-type-label,\n #acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .field-type-label {\n margin-left: 2px;\n }\n #tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .field-type-icon,\n #acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .field-type-icon {\n position: initial;\n margin-left: 0;\n }\n #tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .field-type-icon:before,\n #acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .field-type-icon:before {\n height: 16px;\n width: 16px;\n }\n #tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .field-type-label,\n #acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .field-type-label {\n font-size: 12px;\n margin-top: 0;\n }\n}\n#tmpl-acf-field-group-pro-features h1,\n#acf-field-group-pro-features h1 {\n margin-top: 0;\n margin-bottom: 4px;\n padding-top: 0;\n padding-bottom: 0;\n font-weight: bold;\n color: #F9FAFB;\n}\n#tmpl-acf-field-group-pro-features h1 .acf-icon,\n#acf-field-group-pro-features h1 .acf-icon {\n margin-right: 8px;\n}\n#tmpl-acf-field-group-pro-features .acf-btn,\n#acf-field-group-pro-features .acf-btn {\n display: inline-flex;\n background-color: rgba(255, 255, 255, 0.1);\n border: none;\n box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.04), 0px 4px 8px rgba(0, 0, 0, 0.06), inset 0 0 0 1px rgba(255, 255, 255, 0.16);\n backdrop-filter: blur(6px);\n padding: 8px 24px;\n height: 48px;\n}\n#tmpl-acf-field-group-pro-features .acf-btn:hover,\n#acf-field-group-pro-features .acf-btn:hover {\n background-color: rgba(255, 255, 255, 0.2);\n}\n#tmpl-acf-field-group-pro-features .acf-btn .acf-icon,\n#acf-field-group-pro-features .acf-btn .acf-icon {\n margin-right: -2px;\n margin-left: 6px;\n}\n#tmpl-acf-field-group-pro-features .acf-btn.acf-pro-features-upgrade,\n#acf-field-group-pro-features .acf-btn.acf-pro-features-upgrade {\n background: linear-gradient(90.52deg, #3E8BFF 0.44%, #A45CFF 113.3%);\n background-size: 160% 80%;\n background-position: 100% 0;\n box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.04), 0px 4px 8px rgba(0, 0, 0, 0.06), inset 0 0 0 1px rgba(255, 255, 255, 0.16);\n border-radius: 6px;\n transition: background-position 0.5s;\n}\n#tmpl-acf-field-group-pro-features .acf-btn.acf-pro-features-upgrade:hover,\n#acf-field-group-pro-features .acf-btn.acf-pro-features-upgrade:hover {\n background-position: 0 0;\n}\n#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap,\n#acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap {\n height: 48px;\n background: rgba(16, 24, 40, 0.4);\n backdrop-filter: blur(6px);\n border-top: 1px solid rgba(255, 255, 255, 0.08);\n border-bottom-left-radius: 8px;\n border-bottom-right-radius: 8px;\n color: #98A2B3;\n font-size: 13px;\n font-weight: 300;\n padding: 0 35px;\n}\n#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap .acf-field-group-pro-features-footer,\n#acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap .acf-field-group-pro-features-footer {\n display: flex;\n align-items: center;\n justify-content: space-between;\n max-width: 950px;\n height: 48px;\n margin: 0 auto;\n}\n#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap .acf-field-group-pro-features-wpengine-logo,\n#acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap .acf-field-group-pro-features-wpengine-logo {\n height: 16px;\n vertical-align: middle;\n margin-top: -2px;\n margin-left: 3px;\n}\n#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap a,\n#acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap a {\n color: #98A2B3;\n text-decoration: none;\n}\n#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap a:hover,\n#acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap a:hover {\n color: #D0D5DD;\n}\n#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap a .acf-icon,\n#acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap a .acf-icon {\n width: 18px;\n height: 18px;\n margin-left: 4px;\n}\n#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap .acf-more-tools-from-wpengine a,\n#acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap .acf-more-tools-from-wpengine a {\n display: inline-flex;\n align-items: center;\n}\n@media screen and (max-width: 768px) {\n #tmpl-acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap,\n #acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap {\n height: 70px;\n font-size: 12px;\n }\n #tmpl-acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap .acf-more-tools-from-wpengine,\n #acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap .acf-more-tools-from-wpengine {\n display: none;\n }\n #tmpl-acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap .acf-field-group-pro-features-footer,\n #acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap .acf-field-group-pro-features-footer {\n justify-content: center;\n height: 70px;\n }\n #tmpl-acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap .acf-field-group-pro-features-footer .acf-field-group-pro-features-wpengine-logo,\n #acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap .acf-field-group-pro-features-footer .acf-field-group-pro-features-wpengine-logo {\n clear: both;\n margin: 6px auto 0 auto;\n display: block;\n }\n}\n\n.acf-no-field-groups #tmpl-acf-field-group-pro-features,\n.acf-no-post-types #tmpl-acf-field-group-pro-features,\n.acf-no-taxonomies #tmpl-acf-field-group-pro-features {\n margin-top: 0;\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tPost type & taxonomies styles\n*\n*--------------------------------------------------------------------------------------------*/\n.acf-admin-single-post-type label[for=acf-basic-settings-hide],\n.acf-admin-single-taxonomy label[for=acf-basic-settings-hide] {\n display: none;\n}\n.acf-admin-single-post-type fieldset.columns-prefs,\n.acf-admin-single-taxonomy fieldset.columns-prefs {\n display: none;\n}\n.acf-admin-single-post-type #acf-basic-settings .postbox-header,\n.acf-admin-single-taxonomy #acf-basic-settings .postbox-header {\n display: none;\n}\n.acf-admin-single-post-type .postbox-container,\n.acf-admin-single-post-type .notice,\n.acf-admin-single-taxonomy .postbox-container,\n.acf-admin-single-taxonomy .notice {\n max-width: 1440px;\n clear: left;\n}\n.acf-admin-single-post-type #post-body-content,\n.acf-admin-single-taxonomy #post-body-content {\n margin: 0;\n}\n.acf-admin-single-post-type .postbox .inside,\n.acf-admin-single-post-type .acf-box .inside,\n.acf-admin-single-taxonomy .postbox .inside,\n.acf-admin-single-taxonomy .acf-box .inside {\n padding-top: 48px;\n padding-right: 48px;\n padding-bottom: 48px;\n padding-left: 48px;\n}\n.acf-admin-single-post-type #acf-advanced-settings.postbox .inside,\n.acf-admin-single-taxonomy #acf-advanced-settings.postbox .inside {\n padding-bottom: 24px;\n}\n.acf-admin-single-post-type .postbox-container .meta-box-sortables #acf-basic-settings .inside,\n.acf-admin-single-taxonomy .postbox-container .meta-box-sortables #acf-basic-settings .inside {\n border: none;\n}\n.acf-admin-single-post-type .acf-input-wrap,\n.acf-admin-single-taxonomy .acf-input-wrap {\n overflow: visible;\n}\n.acf-admin-single-post-type .acf-field,\n.acf-admin-single-taxonomy .acf-field {\n margin-top: 0;\n margin-right: 0;\n margin-bottom: 24px;\n margin-left: 0;\n}\n.acf-admin-single-post-type .acf-field .acf-label,\n.acf-admin-single-taxonomy .acf-field .acf-label {\n margin-bottom: 6px;\n}\n.acf-admin-single-post-type .acf-field-text,\n.acf-admin-single-post-type .acf-field-textarea,\n.acf-admin-single-post-type .acf-field-select,\n.acf-admin-single-taxonomy .acf-field-text,\n.acf-admin-single-taxonomy .acf-field-textarea,\n.acf-admin-single-taxonomy .acf-field-select {\n max-width: 600px;\n}\n.acf-admin-single-post-type .acf-field-true-false,\n.acf-admin-single-taxonomy .acf-field-true-false {\n max-width: 700px;\n}\n.acf-admin-single-post-type .acf-field-supports,\n.acf-admin-single-taxonomy .acf-field-supports {\n max-width: 600px;\n}\n.acf-admin-single-post-type .acf-field-supports .acf-label,\n.acf-admin-single-taxonomy .acf-field-supports .acf-label {\n display: block;\n}\n.acf-admin-single-post-type .acf-field-supports .acf-label .description,\n.acf-admin-single-taxonomy .acf-field-supports .acf-label .description {\n margin-top: 4px;\n margin-bottom: 12px;\n}\n.acf-admin-single-post-type .acf-field-supports .acf_post_type_supports,\n.acf-admin-single-taxonomy .acf-field-supports .acf_post_type_supports {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start;\n align-content: flex-start;\n align-items: flex-start;\n}\n.acf-admin-single-post-type .acf-field-supports .acf_post_type_supports:focus-within,\n.acf-admin-single-taxonomy .acf-field-supports .acf_post_type_supports:focus-within {\n border-color: transparent;\n}\n.acf-admin-single-post-type .acf-field-supports .acf_post_type_supports li,\n.acf-admin-single-taxonomy .acf-field-supports .acf_post_type_supports li {\n flex: 0 0 25%;\n}\n.acf-admin-single-post-type .acf-field-supports .acf_post_type_supports li a.button,\n.acf-admin-single-taxonomy .acf-field-supports .acf_post_type_supports li a.button {\n background-color: transparent;\n padding: 0;\n border: 0;\n height: auto;\n min-height: auto;\n margin-top: 0;\n border-radius: 0;\n line-height: 22px;\n}\n.acf-admin-single-post-type .acf-field-supports .acf_post_type_supports li a.button:before,\n.acf-admin-single-taxonomy .acf-field-supports .acf_post_type_supports li a.button:before {\n content: \"\";\n margin-right: 6px;\n display: inline-flex;\n width: 16px;\n height: 16px;\n background-color: currentColor;\n border: none;\n border-radius: 0;\n -webkit-mask-size: contain;\n mask-size: contain;\n -webkit-mask-repeat: no-repeat;\n mask-repeat: no-repeat;\n -webkit-mask-position: center;\n mask-position: center;\n text-indent: 500%;\n white-space: nowrap;\n overflow: hidden;\n -webkit-mask-image: url(\"../../images/icons/icon-add.svg\");\n mask-image: url(\"../../images/icons/icon-add.svg\");\n}\n.acf-admin-single-post-type .acf-field-supports .acf_post_type_supports li a.button:hover,\n.acf-admin-single-taxonomy .acf-field-supports .acf_post_type_supports li a.button:hover {\n color: #044E71;\n}\n.acf-admin-single-post-type .acf-field-supports .acf_post_type_supports li input[type=text],\n.acf-admin-single-taxonomy .acf-field-supports .acf_post_type_supports li input[type=text] {\n width: calc(100% - 36px);\n padding: 0;\n box-shadow: none;\n border: none;\n border-bottom: 1px solid #D0D5DD;\n border-radius: 0;\n height: auto;\n margin: 0;\n min-height: auto;\n}\n.acf-admin-single-post-type .acf-field-supports .acf_post_type_supports li input[type=text]:focus,\n.acf-admin-single-taxonomy .acf-field-supports .acf_post_type_supports li input[type=text]:focus {\n outline: none;\n border-bottom-color: #399CCB;\n}\n.acf-admin-single-post-type .acf-field-seperator,\n.acf-admin-single-taxonomy .acf-field-seperator {\n margin-top: 40px;\n margin-bottom: 40px;\n border-top: 1px solid #EAECF0;\n border-right: none;\n border-bottom: none;\n border-left: none;\n}\n.acf-admin-single-post-type .acf-field-advanced-configuration,\n.acf-admin-single-taxonomy .acf-field-advanced-configuration {\n margin-bottom: 0;\n}\n.acf-admin-single-post-type .postbox-container .acf-tab-wrap,\n.acf-admin-single-post-type .acf-regenerate-labels-bar,\n.acf-admin-single-taxonomy .postbox-container .acf-tab-wrap,\n.acf-admin-single-taxonomy .acf-regenerate-labels-bar {\n position: relative;\n top: -48px;\n left: -48px;\n width: calc(100% + 96px);\n}\n.acf-admin-single-post-type .acf-regenerate-labels-bar,\n.acf-admin-single-taxonomy .acf-regenerate-labels-bar {\n display: flex;\n align-items: center;\n justify-content: right;\n min-height: 48px;\n margin-bottom: 0;\n padding-right: 16px;\n padding-left: 16px;\n gap: 8px;\n border-bottom-width: 1px;\n border-bottom-style: solid;\n border-bottom-color: #F2F4F7;\n}\n.acf-admin-single-post-type .acf-labels-tip,\n.acf-admin-single-taxonomy .acf-labels-tip {\n display: inline-flex;\n align-items: center;\n min-height: 24px;\n margin-right: 8px;\n padding-left: 16px;\n border-left-width: 1px;\n border-left-style: solid;\n border-left-color: #EAECF0;\n}\n.acf-admin-single-post-type .acf-labels-tip .acf-icon,\n.acf-admin-single-taxonomy .acf-labels-tip .acf-icon {\n display: inline-flex;\n align-items: center;\n width: 16px;\n height: 16px;\n -webkit-mask-size: 16px;\n mask-size: 16px;\n background-color: #98A2B3;\n}\n.acf-admin-single-post-type .acf-select2-default-pill,\n.acf-admin-single-taxonomy .acf-select2-default-pill {\n border-radius: 100px;\n min-height: 20px;\n padding-top: 2px;\n padding-bottom: 2px;\n padding-left: 8px;\n padding-right: 8px;\n font-size: 11px;\n margin-left: 6px;\n background-color: #EAECF0;\n color: #667085;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Field picker modal\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-modal.acf-browse-fields-modal {\n width: 1120px;\n height: 664px;\n top: 50%;\n right: auto;\n bottom: auto;\n left: 50%;\n transform: translate(-50%, -50%);\n display: flex;\n flex-direction: row;\n border-radius: 12px;\n box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.04), 0px 8px 16px rgba(0, 0, 0, 0.08);\n overflow: hidden;\n}\n.acf-modal.acf-browse-fields-modal .acf-field-picker {\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n width: 760px;\n background: #fff;\n}\n.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-title,\n.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content,\n.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-toolbar {\n position: relative;\n}\n.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-title {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n background: #F9FAFB;\n border: none;\n padding: 35px 32px;\n}\n.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-title .acf-search-field-types-wrap {\n position: relative;\n}\n.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-title .acf-search-field-types-wrap:after {\n content: \"\";\n display: block;\n position: absolute;\n top: 11px;\n left: 10px;\n width: 18px;\n height: 18px;\n -webkit-mask-image: url(\"../../images/icons/icon-search.svg\");\n mask-image: url(\"../../images/icons/icon-search.svg\");\n background-color: #98A2B3;\n border: none;\n border-radius: 0;\n -webkit-mask-size: contain;\n mask-size: contain;\n -webkit-mask-repeat: no-repeat;\n mask-repeat: no-repeat;\n -webkit-mask-position: center;\n mask-position: center;\n text-indent: 500%;\n white-space: nowrap;\n overflow: hidden;\n}\n.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-title .acf-search-field-types-wrap input {\n width: 280px;\n height: 40px;\n margin: 0;\n padding-left: 32px;\n box-shadow: none;\n}\n.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content {\n top: auto;\n bottom: auto;\n padding: 0;\n height: 100%;\n}\n.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-tab-group {\n padding-left: 32px;\n}\n.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-types-tab {\n display: flex;\n}\n.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-types-tab,\n.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-type-search-results {\n flex-direction: row;\n flex-wrap: wrap;\n gap: 24px;\n padding: 32px;\n}\n.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-types-tab .acf-field-type,\n.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-type-search-results .acf-field-type {\n position: relative;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n isolation: isolate;\n width: 120px;\n height: 120px;\n background: #F9FAFB;\n border: 1px solid #EAECF0;\n border-radius: 8px;\n box-sizing: border-box;\n color: #1D2939;\n text-decoration: none;\n}\n.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-types-tab .acf-field-type:hover, .acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-types-tab .acf-field-type:active, .acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-types-tab .acf-field-type.selected,\n.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-type-search-results .acf-field-type:hover,\n.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-type-search-results .acf-field-type:active,\n.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-type-search-results .acf-field-type.selected {\n background: #EBF5FA;\n border: 1px solid #399CCB;\n box-shadow: inset 0 0 0 1px #399CCB;\n}\n.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-types-tab .acf-field-type .field-type-icon,\n.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-type-search-results .acf-field-type .field-type-icon {\n border: none;\n background: none;\n top: 0;\n}\n.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-types-tab .acf-field-type .field-type-icon:before,\n.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-type-search-results .acf-field-type .field-type-icon:before {\n width: 22px;\n height: 22px;\n}\n.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-types-tab .acf-field-type .field-type-label,\n.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-type-search-results .acf-field-type .field-type-label {\n margin-top: 12px;\n}\n.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-types-tab .field-type-requires-pro,\n.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-type-search-results .field-type-requires-pro {\n display: flex;\n justify-content: center;\n align-items: center;\n position: absolute;\n top: -10px;\n right: -10px;\n height: 21px;\n color: white;\n background: linear-gradient(90.52deg, #3E8BFF 0.44%, #A45CFF 113.3%);\n background-size: 140% 20%;\n background-position: 100% 0;\n border-radius: 100px;\n font-size: 11px;\n padding-right: 6px;\n padding-left: 6px;\n}\n.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-types-tab .field-type-requires-pro i,\n.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-type-search-results .field-type-requires-pro i {\n width: 12px;\n height: 12px;\n margin-right: 2px;\n}\n.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-toolbar {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n height: auto;\n min-height: 72px;\n padding-top: 0;\n padding-right: 32px;\n padding-bottom: 0;\n padding-left: 32px;\n margin: 0;\n border: none;\n}\n.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-toolbar .acf-select-field,\n.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-toolbar .acf-btn-pro {\n min-width: 160px;\n justify-content: center;\n}\n.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-toolbar .acf-insert-field-label {\n min-width: 280px;\n box-shadow: none;\n}\n.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-toolbar .acf-field-picker-actions {\n display: flex;\n gap: 8px;\n}\n.acf-modal.acf-browse-fields-modal .acf-field-type-preview {\n display: flex;\n flex-direction: column;\n width: 360px;\n background-color: #F9FAFB;\n background-image: url(\"../../images/field-preview-grid.png\");\n background-size: 740px;\n background-repeat: no-repeat;\n background-position: center bottom;\n border-left: 1px solid #EAECF0;\n box-sizing: border-box;\n padding: 32px;\n}\n.acf-modal.acf-browse-fields-modal .acf-field-type-preview .field-type-desc {\n margin: 0;\n padding: 0;\n color: #667085;\n}\n.acf-modal.acf-browse-fields-modal .acf-field-type-preview .field-type-preview-container {\n display: inline-flex;\n justify-content: center;\n width: 100%;\n margin-top: 24px;\n padding-top: 32px;\n padding-bottom: 32px;\n background-color: rgba(255, 255, 255, 0.64);\n border-radius: 8px;\n box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.04), 0px 8px 24px rgba(0, 0, 0, 0.04);\n}\n.acf-modal.acf-browse-fields-modal .acf-field-type-preview .field-type-image {\n max-width: 232px;\n}\n.acf-modal.acf-browse-fields-modal .acf-field-type-preview .field-type-info {\n flex-grow: 1;\n}\n.acf-modal.acf-browse-fields-modal .acf-field-type-preview .field-type-info .field-type-name {\n font-size: 21px;\n margin-top: 0;\n margin-right: 0;\n margin-bottom: 16px;\n margin-left: 0;\n}\n.acf-modal.acf-browse-fields-modal .acf-field-type-preview .field-type-info .field-type-upgrade-to-unlock {\n display: inline-flex;\n justify-items: center;\n align-items: center;\n min-height: 24px;\n margin-bottom: 12px;\n padding-right: 8px;\n padding-left: 8px;\n background: linear-gradient(90.52deg, #3E8BFF 0.44%, #A45CFF 113.3%);\n background-size: 140% 20%;\n background-position: 100% 0;\n border-radius: 100px;\n color: white;\n text-decoration: none;\n font-size: 11px;\n}\n.acf-modal.acf-browse-fields-modal .acf-field-type-preview .field-type-info .field-type-upgrade-to-unlock i.acf-icon {\n width: 14px;\n height: 14px;\n margin-right: 4px;\n}\n.acf-modal.acf-browse-fields-modal .acf-field-type-preview .field-type-links {\n display: flex;\n align-items: center;\n gap: 24px;\n min-height: 40px;\n}\n.acf-modal.acf-browse-fields-modal .acf-field-type-preview .field-type-links .acf-icon {\n width: 18px;\n height: 18px;\n}\n.acf-modal.acf-browse-fields-modal .acf-field-type-preview .field-type-links:before {\n display: none;\n}\n.acf-modal.acf-browse-fields-modal .acf-field-type-preview .field-type-links a {\n display: flex;\n gap: 6px;\n text-decoration: none;\n}\n.acf-modal.acf-browse-fields-modal .acf-field-type-preview .field-type-links a:hover {\n text-decoration: underline;\n}\n.acf-modal.acf-browse-fields-modal .acf-field-type-search-results,\n.acf-modal.acf-browse-fields-modal .acf-field-type-search-no-results {\n display: none;\n}\n.acf-modal.acf-browse-fields-modal.is-searching .acf-tab-wrap,\n.acf-modal.acf-browse-fields-modal.is-searching .acf-field-types-tab,\n.acf-modal.acf-browse-fields-modal.is-searching .acf-field-type-search-no-results {\n display: none !important;\n}\n.acf-modal.acf-browse-fields-modal.is-searching .acf-field-type-search-results {\n display: flex;\n}\n.acf-modal.acf-browse-fields-modal.no-results-found .acf-tab-wrap,\n.acf-modal.acf-browse-fields-modal.no-results-found .acf-field-types-tab,\n.acf-modal.acf-browse-fields-modal.no-results-found .acf-field-type-search-results,\n.acf-modal.acf-browse-fields-modal.no-results-found .field-type-info,\n.acf-modal.acf-browse-fields-modal.no-results-found .field-type-links,\n.acf-modal.acf-browse-fields-modal.no-results-found .acf-field-picker-toolbar {\n display: none !important;\n}\n.acf-modal.acf-browse-fields-modal.no-results-found .acf-modal-title {\n border-bottom-width: 1px;\n border-bottom-style: solid;\n border-bottom-color: #EAECF0;\n}\n.acf-modal.acf-browse-fields-modal.no-results-found .acf-field-type-search-no-results {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n height: 100%;\n gap: 6px;\n}\n.acf-modal.acf-browse-fields-modal.no-results-found .acf-field-type-search-no-results img {\n margin-bottom: 19px;\n}\n.acf-modal.acf-browse-fields-modal.no-results-found .acf-field-type-search-no-results p {\n margin: 0;\n}\n.acf-modal.acf-browse-fields-modal.no-results-found .acf-field-type-search-no-results p.acf-no-results-text {\n display: flex;\n}\n.acf-modal.acf-browse-fields-modal.no-results-found .acf-field-type-search-no-results .acf-invalid-search-term {\n max-width: 200px;\n overflow: hidden;\n text-overflow: ellipsis;\n display: inline-block;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Hide browse fields button for smaller screen sizes\n*\n*---------------------------------------------------------------------------------------------*/\n@media only screen and (max-width: 1080px) {\n .acf-btn.browse-fields {\n display: none;\n }\n}","/*--------------------------------------------------------------------------------------------\n*\n*\tVars\n*\n*--------------------------------------------------------------------------------------------*/\n\n/* colors */\n$acf_blue: #2a9bd9;\n$acf_notice: #2a9bd9;\n$acf_error: #d94f4f;\n$acf_success: #49ad52;\n$acf_warning: #fd8d3b;\n\n/* acf-field */\n$field_padding: 15px 12px;\n$field_padding_x: 12px;\n$field_padding_y: 15px;\n$fp: 15px 12px;\n$fy: 15px;\n$fx: 12px;\n\n/* responsive */\n$md: 880px;\n$sm: 640px;\n\n// Admin.\n$wp-card-border: #ccd0d4;\t\t\t// Card border.\n$wp-card-border-1: #d5d9dd;\t\t // Card inner border 1: Structural (darker).\n$wp-card-border-2: #eeeeee;\t\t // Card inner border 2: Fields (lighter).\n$wp-input-border: #7e8993;\t\t // Input border.\n\n// Admin 3.8\n$wp38-card-border: #E5E5E5;\t\t // Card border.\n$wp38-card-border-1: #dfdfdf;\t\t// Card inner border 1: Structural (darker).\n$wp38-card-border-2: #eeeeee;\t\t// Card inner border 2: Fields (lighter).\n$wp38-input-border: #dddddd;\t\t // Input border.\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tACF 6 ↓\n*\n*--------------------------------------------------------------------------------------------*/\n\n// Grays\n$gray-50: #F9FAFB;\n$gray-100: #F2F4F7;\n$gray-200: #EAECF0;\n$gray-300: #D0D5DD;\n$gray-400: #98A2B3;\n$gray-500: #667085;\n$gray-600: #475467;\n$gray-700: #344054;\n$gray-800: #1D2939;\n$gray-900: #101828;\n\n// Blues\n$blue-50: #EBF5FA;\n$blue-100: #D8EBF5;\n$blue-200: #A5D2E7;\n$blue-300: #6BB5D8;\n$blue-400: #399CCB;\n$blue-500: #0783BE;\n$blue-600: #066998;\n$blue-700: #044E71;\n$blue-800: #033F5B;\n$blue-900: #032F45;\n\n// Utility\n$color-info:\t#2D69DA;\n$color-success:\t#52AA59;\n$color-warning:\t#F79009;\n$color-danger:\t#D13737;\n\n$color-primary: $blue-500;\n$color-primary-hover: $blue-600;\n$color-secondary: $gray-500;\n$color-secondary-hover: $gray-400;\n\n// Gradients\n$gradient-pro: linear-gradient(90.52deg, #3E8BFF 0.44%, #A45CFF 113.3%);\n\n// Border radius\n$radius-sm:\t4px;\n$radius-md: 6px;\n$radius-lg: 8px;\n$radius-xl: 12px;\n\n// Elevations / Box shadows\n$elevation-01: 0px 1px 2px rgba($gray-900, 0.10);\n\n// Input & button focus outline\n$outline: 3px solid $blue-50;\n\n// Link colours\n$link-color: $blue-500;\n\n// Responsive\n$max-width: 1440px;","/*--------------------------------------------------------------------------------------------\n*\n* Mixins\n*\n*--------------------------------------------------------------------------------------------*/\n@mixin clearfix() {\n\t&:after {\n\t\tdisplay: block;\n\t\tclear: both;\n\t\tcontent: \"\";\n\t}\n}\n\n@mixin border-box() {\n\t-webkit-box-sizing: border-box;\n\t-moz-box-sizing: border-box;\n\tbox-sizing: border-box;\n}\n\n@mixin centered() {\n\tposition: absolute;\n\ttop: 50%;\n\tleft: 50%;\n\ttransform: translate(-50%, -50%);\n}\n\n@mixin animate( $properties: 'all' ) {\n\t-webkit-transition: $properties 0.3s ease; // Safari 3.2+, Chrome\n -moz-transition: $properties 0.3s ease; \t// Firefox 4-15\n -o-transition: $properties 0.3s ease; \t\t// Opera 10.5–12.00\n transition: $properties 0.3s ease; \t\t// Firefox 16+, Opera 12.50+\n}\n\n@mixin rtl() {\n\thtml[dir=\"rtl\"] & {\n\t\ttext-align: right;\n\t\t@content;\n\t}\n}\n\n@mixin wp-admin( $version: '3-8' ) {\n\t.acf-admin-#{$version} & {\n\t\t@content;\n\t}\n}","@use \"sass:math\";\n/*--------------------------------------------------------------------------------------------\n*\n* Global\n*\n*--------------------------------------------------------------------------------------------*/\n\n/* Horizontal List */\n.acf-hl {\n\tpadding: 0;\n\tmargin: 0;\n\tlist-style: none;\n\tdisplay: block;\n\tposition: relative;\n}\n.acf-hl > li {\n\tfloat: left;\n\tdisplay: block;\n\tmargin: 0;\n\tpadding: 0;\n}\n.acf-hl > li.acf-fr {\n\tfloat: right;\n}\n\n/* Horizontal List: Clearfix */\n.acf-hl:before,\n.acf-hl:after,\n.acf-bl:before,\n.acf-bl:after,\n.acf-cf:before,\n.acf-cf:after {\n\tcontent: \"\";\n\tdisplay: block;\n\tline-height: 0;\n}\n.acf-hl:after,\n.acf-bl:after,\n.acf-cf:after {\n\tclear: both;\n}\n\n/* Block List */\n.acf-bl {\n\tpadding: 0;\n\tmargin: 0;\n\tlist-style: none;\n\tdisplay: block;\n\tposition: relative;\n}\n.acf-bl > li {\n\tdisplay: block;\n\tmargin: 0;\n\tpadding: 0;\n\tfloat: none;\n}\n\n/* Visibility */\n.acf-hidden {\n\tdisplay: none !important;\n}\n.acf-empty {\n\tdisplay: table-cell !important;\n\t* {\n\t\tdisplay: none !important;\n\t}\n}\n\n/* Float */\n.acf-fl {\n\tfloat: left;\n}\n.acf-fr {\n\tfloat: right;\n}\n.acf-fn {\n\tfloat: none;\n}\n\n/* Align */\n.acf-al {\n\ttext-align: left;\n}\n.acf-ar {\n\ttext-align: right;\n}\n.acf-ac {\n\ttext-align: center;\n}\n\n/* loading */\n.acf-loading,\n.acf-spinner {\n\tdisplay: inline-block;\n\theight: 20px;\n\twidth: 20px;\n\tvertical-align: text-top;\n\tbackground: transparent url(../../images/spinner.gif) no-repeat 50% 50%;\n}\n\n/* spinner */\n.acf-spinner {\n\tdisplay: none;\n}\n\n.acf-spinner.is-active {\n\tdisplay: inline-block;\n}\n\n/* WP < 4.2 */\n.spinner.is-active {\n\tdisplay: inline-block;\n}\n\n/* required */\n.acf-required {\n\tcolor: #f00;\n}\n\n/* Allow pointer events in reusable blocks */\n.acf-button,\n.acf-tab-button {\n\tpointer-events: auto !important;\n}\n\n/* show on hover */\n.acf-soh .acf-soh-target {\n\t-webkit-transition: opacity 0.25s 0s ease-in-out, visibility 0s linear 0.25s;\n\t-moz-transition: opacity 0.25s 0s ease-in-out, visibility 0s linear 0.25s;\n\t-o-transition: opacity 0.25s 0s ease-in-out, visibility 0s linear 0.25s;\n\ttransition: opacity 0.25s 0s ease-in-out, visibility 0s linear 0.25s;\n\n\tvisibility: hidden;\n\topacity: 0;\n}\n\n.acf-soh:hover .acf-soh-target {\n\t-webkit-transition-delay: 0s;\n\t-moz-transition-delay: 0s;\n\t-o-transition-delay: 0s;\n\ttransition-delay: 0s;\n\n\tvisibility: visible;\n\topacity: 1;\n}\n\n/* show if value */\n.show-if-value {\n\tdisplay: none;\n}\n.hide-if-value {\n\tdisplay: block;\n}\n\n.has-value .show-if-value {\n\tdisplay: block;\n}\n.has-value .hide-if-value {\n\tdisplay: none;\n}\n\n/* select2 WP animation fix */\n.select2-search-choice-close {\n\t-webkit-transition: none;\n\t-moz-transition: none;\n\t-o-transition: none;\n\ttransition: none;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* tooltip\n*\n*---------------------------------------------------------------------------------------------*/\n\n/* tooltip */\n.acf-tooltip {\n\tbackground: $gray-800;\n\tborder-radius: $radius-md;\n\tcolor: $gray-300;\n\tpadding: {\n\t\ttop: 8px;\n\t\tright: 12px;\n\t\tbottom: 10px;\n\t\tleft: 12px;\n\t}\n\tposition: absolute;\n\t@extend .p7;\n\tz-index: 900000;\n\tmax-width: 280px;\n\tbox-shadow: 0px 12px 16px -4px rgba(16, 24, 40, 0.08),\n\t\t0px 4px 6px -2px rgba(16, 24, 40, 0.03);\n\n\t/* tip */\n\t&:before {\n\t\tborder: solid;\n\t\tborder-color: transparent;\n\t\tborder-width: 6px;\n\t\tcontent: \"\";\n\t\tposition: absolute;\n\t}\n\n\t/* positions */\n\t&.top {\n\t\tmargin-top: -8px;\n\n\t\t&:before {\n\t\t\ttop: 100%;\n\t\t\tleft: 50%;\n\t\t\tmargin-left: -6px;\n\t\t\tborder-top-color: #2f353e;\n\t\t\tborder-bottom-width: 0;\n\t\t}\n\t}\n\n\t&.right {\n\t\tmargin-left: 8px;\n\n\t\t&:before {\n\t\t\ttop: 50%;\n\t\t\tmargin-top: -6px;\n\t\t\tright: 100%;\n\t\t\tborder-right-color: #2f353e;\n\t\t\tborder-left-width: 0;\n\t\t}\n\t}\n\n\t&.bottom {\n\t\tmargin-top: 8px;\n\n\t\t&:before {\n\t\t\tbottom: 100%;\n\t\t\tleft: 50%;\n\t\t\tmargin-left: -6px;\n\t\t\tborder-bottom-color: #2f353e;\n\t\t\tborder-top-width: 0;\n\t\t}\n\t}\n\n\t&.left {\n\t\tmargin-left: -8px;\n\n\t\t&:before {\n\t\t\ttop: 50%;\n\t\t\tmargin-top: -6px;\n\t\t\tleft: 100%;\n\t\t\tborder-left-color: #2f353e;\n\t\t\tborder-right-width: 0;\n\t\t}\n\t}\n\n\t.acf-overlay {\n\t\tz-index: -1;\n\t}\n}\n\n/* confirm */\n.acf-tooltip.-confirm {\n\tz-index: 900001; // +1 higher than .acf-tooltip\n\n\ta {\n\t\ttext-decoration: none;\n\t\tcolor: #9ea3a8;\n\n\t\t&:hover {\n\t\t\ttext-decoration: underline;\n\t\t}\n\n\t\t&[data-event=\"confirm\"] {\n\t\t\tcolor: #f55e4f;\n\t\t}\n\t}\n}\n\n.acf-overlay {\n\tposition: fixed;\n\ttop: 0;\n\tbottom: 0;\n\tleft: 0;\n\tright: 0;\n\tcursor: default;\n}\n\n.acf-tooltip-target {\n\tposition: relative;\n\tz-index: 900002; // +1 higher than .acf-tooltip\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* loading\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-loading-overlay {\n\tposition: absolute;\n\ttop: 0;\n\tbottom: 0;\n\tleft: 0;\n\tright: 0;\n\tcursor: default;\n\tz-index: 99;\n\tbackground: rgba(249, 249, 249, 0.5);\n\n\ti {\n\t\t@include centered();\n\t}\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tacf-icon\n*\n*--------------------------------------------------------------------------------------------*/\n.acf-icon {\n\tdisplay: inline-block;\n\theight: 28px;\n\twidth: 28px;\n\tborder: transparent solid 1px;\n\tborder-radius: 100%;\n\tfont-size: 20px;\n\tline-height: 21px;\n\ttext-align: center;\n\ttext-decoration: none;\n\tvertical-align: top;\n\tbox-sizing: border-box;\n\n\t&:before {\n\t\tfont-family: dashicons;\n\t\tdisplay: inline-block;\n\t\tline-height: 1;\n\t\tfont-weight: 400;\n\t\tfont-style: normal;\n\t\tspeak: none;\n\t\ttext-decoration: inherit;\n\t\ttext-transform: none;\n\t\ttext-rendering: auto;\n\t\t-webkit-font-smoothing: antialiased;\n\t\t-moz-osx-font-smoothing: grayscale;\n\t\twidth: 1em;\n\t\theight: 1em;\n\t\tvertical-align: middle;\n\t\ttext-align: center;\n\t}\n}\n\n// Icon types.\n.acf-icon.-plus:before {\n\tcontent: \"\\f543\";\n}\n.acf-icon.-minus:before {\n\tcontent: \"\\f460\";\n}\n.acf-icon.-cancel:before {\n\tcontent: \"\\f335\";\n\tmargin: -1px 0 0 -1px;\n}\n.acf-icon.-pencil:before {\n\tcontent: \"\\f464\";\n}\n.acf-icon.-location:before {\n\tcontent: \"\\f230\";\n}\n.acf-icon.-up:before {\n\tcontent: \"\\f343\";\n\n\t// Fix position relative to font-size.\n\tmargin-top: math.div(-2em, 20);\n}\n.acf-icon.-down:before {\n\tcontent: \"\\f347\";\n\n\t// Fix position relative to font-size.\n\tmargin-top: math.div(2em, 20);\n}\n.acf-icon.-left:before {\n\tcontent: \"\\f341\";\n\n\t// Fix position relative to font-size.\n\tmargin-left: math.div(-2em, 20);\n}\n.acf-icon.-right:before {\n\tcontent: \"\\f345\";\n\n\t// Fix position relative to font-size.\n\tmargin-left: math.div(2em, 20);\n}\n.acf-icon.-sync:before {\n\tcontent: \"\\f463\";\n}\n.acf-icon.-globe:before {\n\tcontent: \"\\f319\";\n\n\t// Fix position relative to font-size.\n\tmargin-top: math.div(2em, 20);\n\tmargin-left: math.div(2em, 20);\n}\n.acf-icon.-picture:before {\n\tcontent: \"\\f128\";\n}\n.acf-icon.-check:before {\n\tcontent: \"\\f147\";\n\n\t// Fix position relative to font-size.\n\tmargin-left: math.div(-2em, 20);\n}\n.acf-icon.-dot-3:before {\n\tcontent: \"\\f533\";\n\n\t// Fix position relative to font-size.\n\tmargin-top: math.div(-2em, 20);\n}\n.acf-icon.-arrow-combo:before {\n\tcontent: \"\\f156\";\n}\n.acf-icon.-arrow-up:before {\n\tcontent: \"\\f142\";\n\n\t// Fix position relative to font-size.\n\tmargin-left: math.div(-2em, 20);\n}\n.acf-icon.-arrow-down:before {\n\tcontent: \"\\f140\";\n\n\t// Fix position relative to font-size.\n\tmargin-left: math.div(-2em, 20);\n}\n.acf-icon.-search:before {\n\tcontent: \"\\f179\";\n}\n.acf-icon.-link-ext:before {\n\tcontent: \"\\f504\";\n}\n\n// Duplicate is a custom icon made from pseudo elements.\n.acf-icon.-duplicate {\n\tposition: relative;\n\t&:before,\n\t&:after {\n\t\tcontent: \"\";\n\t\tdisplay: block;\n\t\tbox-sizing: border-box;\n\t\twidth: 46%;\n\t\theight: 46%;\n\t\tposition: absolute;\n\t\ttop: 33%;\n\t\tleft: 23%;\n\t}\n\t&:before {\n\t\tmargin: -1px 0 0 1px;\n\t\tbox-shadow: 2px -2px 0px 0px currentColor;\n\t}\n\t&:after {\n\t\tborder: solid 2px currentColor;\n\t}\n}\n\n.acf-icon.-trash {\n\tposition: relative;\n\t&:before,\n\t&:after {\n\t\tcontent: \"\";\n\t\tdisplay: block;\n\t\tbox-sizing: border-box;\n\t\twidth: 46%;\n\t\theight: 46%;\n\t\tposition: absolute;\n\t\ttop: 33%;\n\t\tleft: 23%;\n\t}\n\t&:before {\n\t\tmargin: -1px 0 0 1px;\n\t\tbox-shadow: 2px -2px 0px 0px currentColor;\n\t}\n\t&:after {\n\t\tborder: solid 2px currentColor;\n\t}\n}\n\n// Collapse icon toggles automatically.\n.acf-icon.-collapse:before {\n\tcontent: \"\\f142\";\n\n\t// Fix position relative to font-size.\n\tmargin-left: math.div(-2em, 20);\n}\n.-collapsed .acf-icon.-collapse:before {\n\tcontent: \"\\f140\";\n\n\t// Fix position relative to font-size.\n\tmargin-left: math.div(-2em, 20);\n}\n\n// displays with grey border.\nspan.acf-icon {\n\tcolor: #555d66;\n\tborder-color: #b5bcc2;\n\tbackground-color: #fff;\n}\n\n// also displays with grey border.\na.acf-icon {\n\tcolor: #555d66;\n\tborder-color: #b5bcc2;\n\tbackground-color: #fff;\n\tposition: relative;\n\ttransition: none;\n\tcursor: pointer;\n\n\t// State \"hover\".\n\t&:hover {\n\t\tbackground: #f3f5f6;\n\t\tborder-color: #0071a1;\n\t\tcolor: #0071a1;\n\t}\n\t&.-minus:hover,\n\t&.-cancel:hover {\n\t\tbackground: #f7efef;\n\t\tborder-color: #a10000;\n\t\tcolor: #dc3232;\n\t}\n\n\t// Fix: Remove WP outline box-shadow.\n\t&:active,\n\t&:focus {\n\t\toutline: none;\n\t\tbox-shadow: none;\n\t}\n}\n\n// Style \"clear\".\n.acf-icon.-clear {\n\tborder-color: transparent;\n\tbackground: transparent;\n\tcolor: #444;\n}\n\n// Style \"light\".\n.acf-icon.light {\n\tborder-color: transparent;\n\tbackground: #f5f5f5;\n\tcolor: #23282d;\n}\n\n// Style \"dark\".\n.acf-icon.dark {\n\tborder-color: transparent !important;\n\tbackground: #23282d;\n\tcolor: #eee;\n}\na.acf-icon.dark {\n\t&:hover {\n\t\tbackground: #191e23;\n\t\tcolor: #00b9eb;\n\t}\n\t&.-minus:hover,\n\t&.-cancel:hover {\n\t\tcolor: #d54e21;\n\t}\n}\n\n// Style \"grey\".\n.acf-icon.grey {\n\tborder-color: transparent !important;\n\tbackground: #b4b9be;\n\tcolor: #fff !important;\n\n\t&:hover {\n\t\tbackground: #00a0d2;\n\t\tcolor: #fff;\n\t}\n\t&.-minus:hover,\n\t&.-cancel:hover {\n\t\tbackground: #32373c;\n\t}\n}\n\n// Size \"small\".\n.acf-icon.small,\n.acf-icon.-small {\n\twidth: 20px;\n\theight: 20px;\n\tline-height: 14px;\n\tfont-size: 14px;\n\n\t// Apply minor transforms to reduce clarirty of \"duplicate\" icon.\n\t// Helps to unify rendering with dashicons.\n\t&.-duplicate {\n\t\t&:before,\n\t\t&:after {\n\t\t\t//transform: rotate(0.1deg) scale(0.9) translate(-5%, 5%);\n\t\t\topacity: 0.8;\n\t\t}\n\t}\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tacf-box\n*\n*--------------------------------------------------------------------------------------------*/\n.acf-box {\n\tbackground: #ffffff;\n\tborder: 1px solid $wp-card-border;\n\tposition: relative;\n\tbox-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);\n\n\t/* title */\n\t.title {\n\t\tborder-bottom: 1px solid $wp-card-border;\n\t\tmargin: 0;\n\t\tpadding: 15px;\n\n\t\th3 {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tfont-size: 14px;\n\t\t\tline-height: 1em;\n\t\t\tmargin: 0;\n\t\t\tpadding: 0;\n\t\t}\n\t}\n\n\t.inner {\n\t\tpadding: 15px;\n\t}\n\n\th2 {\n\t\tcolor: #333333;\n\t\tfont-size: 26px;\n\t\tline-height: 1.25em;\n\t\tmargin: 0.25em 0 0.75em;\n\t\tpadding: 0;\n\t}\n\n\th3 {\n\t\tmargin: 1.5em 0 0;\n\t}\n\n\tp {\n\t\tmargin-top: 0.5em;\n\t}\n\n\ta {\n\t\ttext-decoration: none;\n\t}\n\n\ti {\n\t\t&.dashicons-external {\n\t\t\tmargin-top: -1px;\n\t\t}\n\t}\n\n\t/* footer */\n\t.footer {\n\t\tborder-top: 1px solid $wp-card-border;\n\t\tpadding: 12px;\n\t\tfont-size: 13px;\n\t\tline-height: 1.5;\n\n\t\tp {\n\t\t\tmargin: 0;\n\t\t}\n\t}\n\n\t// WP Admin 3.8\n\t@include wp-admin(\"3-8\") {\n\t\tborder-color: $wp38-card-border;\n\t\t.title,\n\t\t.footer {\n\t\t\tborder-color: $wp38-card-border;\n\t\t}\n\t}\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tacf-notice\n*\n*--------------------------------------------------------------------------------------------*/\n\n.acf-notice {\n\tposition: relative;\n\tdisplay: block;\n\tcolor: #fff;\n\tmargin: 5px 0 15px;\n\tpadding: 3px 12px;\n\tbackground: $acf_notice;\n\tborder-left: darken($acf_notice, 10%) solid 3px;\n\n\tp {\n\t\tfont-size: 13px;\n\t\tline-height: 1.5;\n\t\tmargin: 0.5em 0;\n\t\ttext-shadow: none;\n\t\tcolor: inherit;\n\t}\n\n\t.acf-notice-dismiss {\n\t\tposition: absolute;\n\t\ttop: 9px;\n\t\tright: 12px;\n\t\tbackground: transparent !important;\n\t\tcolor: inherit !important;\n\t\tborder-color: #fff !important;\n\t\topacity: 0.75;\n\t\t&:hover {\n\t\t\topacity: 1;\n\t\t}\n\t}\n\n\t// dismiss\n\t&.-dismiss {\n\t\tpadding-right: 40px;\n\t}\n\n\t// error\n\t&.-error {\n\t\tbackground: $acf_error;\n\t\tborder-color: darken($acf_error, 10%);\n\t}\n\n\t// success\n\t&.-success {\n\t\tbackground: $acf_success;\n\t\tborder-color: darken($acf_success, 10%);\n\t}\n\n\t// warning\n\t&.-warning {\n\t\tbackground: $acf_warning;\n\t\tborder-color: darken($acf_warning, 10%);\n\t}\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tacf-table\n*\n*--------------------------------------------------------------------------------------------*/\n\n.acf-table {\n\tborder: $wp-card-border solid 1px;\n\tbackground: #fff;\n\tborder-spacing: 0;\n\tborder-radius: 0;\n\ttable-layout: auto;\n\tpadding: 0;\n\tmargin: 0;\n\twidth: 100%;\n\tclear: both;\n\tbox-sizing: content-box;\n\n\t/* defaults */\n\t> tbody > tr,\n\t> thead > tr {\n\t\t> th,\n\t\t> td {\n\t\t\tpadding: 8px;\n\t\t\tvertical-align: top;\n\t\t\tbackground: #fff;\n\t\t\ttext-align: left;\n\t\t\tborder-style: solid;\n\t\t\tfont-weight: normal;\n\t\t}\n\n\t\t> th {\n\t\t\tposition: relative;\n\t\t\tcolor: #333333;\n\t\t}\n\t}\n\n\t/* thead */\n\t> thead {\n\t\t> tr {\n\t\t\t> th {\n\t\t\t\tborder-color: $wp-card-border-1;\n\t\t\t\tborder-width: 0 0 1px 1px;\n\n\t\t\t\t&:first-child {\n\t\t\t\t\tborder-left-width: 0;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/* tbody */\n\t> tbody {\n\t\t> tr {\n\t\t\tz-index: 1;\n\n\t\t\t> td {\n\t\t\t\tborder-color: $wp-card-border-2;\n\t\t\t\tborder-width: 1px 0 0 1px;\n\n\t\t\t\t&:first-child {\n\t\t\t\t\tborder-left-width: 0;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t&:first-child > td {\n\t\t\t\tborder-top-width: 0;\n\t\t\t}\n\t\t}\n\t}\n\n\t/* -clear */\n\t&.-clear {\n\t\tborder: 0 none;\n\n\t\t> tbody > tr,\n\t\t> thead > tr {\n\t\t\t> td,\n\t\t\t> th {\n\t\t\t\tborder: 0 none;\n\t\t\t\tpadding: 4px;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/* remove tr */\n.acf-remove-element {\n\t-webkit-transition: all 0.25s ease-out;\n\t-moz-transition: all 0.25s ease-out;\n\t-o-transition: all 0.25s ease-out;\n\ttransition: all 0.25s ease-out;\n\n\ttransform: translate(50px, 0);\n\topacity: 0;\n}\n\n/* fade-up */\n.acf-fade-up {\n\t-webkit-transition: all 0.25s ease-out;\n\t-moz-transition: all 0.25s ease-out;\n\t-o-transition: all 0.25s ease-out;\n\ttransition: all 0.25s ease-out;\n\n\ttransform: translate(0, -10px);\n\topacity: 0;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Fake table\n*\n*---------------------------------------------------------------------------------------------*/\n\n.acf-thead,\n.acf-tbody,\n.acf-tfoot {\n\twidth: 100%;\n\tpadding: 0;\n\tmargin: 0;\n\n\t> li {\n\t\tbox-sizing: border-box;\n\t\tpadding: {\n\t\t\ttop: 14px;\n\t\t}\n\t\tfont-size: 12px;\n\t\tline-height: 14px;\n\t}\n}\n\n.acf-thead {\n\tborder-bottom: $wp-card-border solid 1px;\n\tcolor: #23282d;\n\n\t> li {\n\t\tfont-size: 14px;\n\t\tline-height: 1.4;\n\t\tfont-weight: bold;\n\t}\n\n\t// WP Admin 3.8\n\t@include wp-admin(\"3-8\") {\n\t\tborder-color: $wp38-card-border-1;\n\t}\n}\n\n.acf-tfoot {\n\tbackground: #f5f5f5;\n\tborder-top: $wp-card-border-1 solid 1px;\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tSettings\n*\n*--------------------------------------------------------------------------------------------*/\n\n.acf-settings-wrap {\n\t#poststuff {\n\t\tpadding-top: 15px;\n\t}\n\n\t.acf-box {\n\t\tmargin: 20px 0;\n\t}\n\n\ttable {\n\t\tmargin: 0;\n\n\t\t.button {\n\t\t\tvertical-align: middle;\n\t\t}\n\t}\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tacf-popup\n*\n*--------------------------------------------------------------------------------------------*/\n\n#acf-popup {\n\tposition: fixed;\n\tz-index: 900000;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbottom: 0;\n\ttext-align: center;\n\n\t// bg\n\t.bg {\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tleft: 0;\n\t\tright: 0;\n\t\tbottom: 0;\n\t\tz-index: 0;\n\t\tbackground: rgba(0, 0, 0, 0.25);\n\t}\n\n\t&:before {\n\t\tcontent: \"\";\n\t\tdisplay: inline-block;\n\t\theight: 100%;\n\t\tvertical-align: middle;\n\t}\n\n\t// box\n\t.acf-popup-box {\n\t\tdisplay: inline-block;\n\t\tvertical-align: middle;\n\t\tz-index: 1;\n\t\tmin-width: 300px;\n\t\tmin-height: 160px;\n\t\tborder-color: #aaaaaa;\n\t\tbox-shadow: 0 5px 30px -5px rgba(0, 0, 0, 0.25);\n\t\ttext-align: left;\n\t\t@include rtl();\n\n\t\t// title\n\t\t.title {\n\t\t\tmin-height: 15px;\n\t\t\tline-height: 15px;\n\n\t\t\t// icon\n\t\t\t.acf-icon {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 10px;\n\t\t\t\tright: 10px;\n\n\t\t\t\t// rtl\n\t\t\t\thtml[dir=\"rtl\"] & {\n\t\t\t\t\tright: auto;\n\t\t\t\t\tleft: 10px;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t.inner {\n\t\t\tmin-height: 50px;\n\n\t\t\t// use margin instead of padding to allow inner elements marin to overlap and avoid large hitespace at top/bottom\n\t\t\tpadding: 0;\n\t\t\tmargin: 15px;\n\t\t}\n\n\t\t// loading\n\t\t.loading {\n\t\t\tposition: absolute;\n\t\t\ttop: 45px;\n\t\t\tleft: 0;\n\t\t\tright: 0;\n\t\t\tbottom: 0;\n\t\t\tz-index: 2;\n\t\t\tbackground: rgba(0, 0, 0, 0.1);\n\t\t\tdisplay: none;\n\n\t\t\ti {\n\t\t\t\t@include centered();\n\t\t\t}\n\t\t}\n\t}\n}\n\n// acf-submit\n.acf-submit {\n\tmargin-bottom: 0;\n\tline-height: 28px; // .button height\n\n\t// message\n\tspan {\n\t\tfloat: right;\n\t\tcolor: #999;\n\n\t\t&.-error {\n\t\t\tcolor: #dd4232;\n\t\t}\n\t}\n\n\t// button (allow margin between loading)\n\t.button {\n\t\tmargin-right: 5px;\n\t}\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tupgrade notice\n*\n*--------------------------------------------------------------------------------------------*/\n\n#acf-upgrade-notice {\n\tposition: relative;\n\tbackground: #fff;\n\tpadding: 20px;\n\t@include clearfix();\n\n\t.col-content {\n\t\tfloat: left;\n\t\twidth: 55%;\n\t\tpadding-left: 90px;\n\t}\n\n\t.notice-container {\n\t\tdisplay: flex;\n\t\tjustify-content: space-between;\n\t\talign-items: flex-start;\n\t\talign-content: flex-start;\n\t}\n\n\t.col-actions {\n\t\tfloat: right;\n\t\ttext-align: center;\n\t}\n\n\timg {\n\t\tfloat: left;\n\t\twidth: 64px;\n\t\theight: 64px;\n\t\tmargin: 0 0 0 -90px;\n\t}\n\n\th2 {\n\t\tdisplay: inline-block;\n\t\tfont-size: 16px;\n\t\tmargin: 2px 0 6.5px;\n\t}\n\n\tp {\n\t\tpadding: 0;\n\t\tmargin: 0;\n\t}\n\n\t.button:before {\n\t\tmargin-top: 11px;\n\t}\n\n\t// mobile\n\t@media screen and (max-width: $sm) {\n\t\t.col-content,\n\t\t.col-actions {\n\t\t\tfloat: none;\n\t\t\tpadding-left: 90px;\n\t\t\twidth: auto;\n\t\t\ttext-align: left;\n\t\t}\n\t}\n}\n\n// Hide icons for upgade notice.\n#acf-upgrade-notice:has(.notice-container)::before,\n#acf-upgrade-notice:has(.notice-container)::after {\n\tdisplay: none;\n}\n\n// Match padding of other non-icon notices.\n#acf-upgrade-notice:has(.notice-container) {\n\tpadding-left: 20px !important;\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tWelcome\n*\n*--------------------------------------------------------------------------------------------*/\n\n.acf-wrap {\n\th1 {\n\t\tmargin-top: 0;\n\t\tpadding-top: 20px;\n\t}\n\n\t.about-text {\n\t\tmargin-top: 0.5em;\n\t\tmin-height: 50px;\n\t}\n\n\t.about-headline-callout {\n\t\tfont-size: 2.4em;\n\t\tfont-weight: 300;\n\t\tline-height: 1.3;\n\t\tmargin: 1.1em 0 0.2em;\n\t\ttext-align: center;\n\t}\n\n\t.feature-section {\n\t\tpadding: 40px 0;\n\n\t\th2 {\n\t\t\tmargin-top: 20px;\n\t\t}\n\t}\n\n\t.changelog {\n\t\tlist-style: disc;\n\t\tpadding-left: 15px;\n\n\t\tli {\n\t\t\tmargin: 0 0 0.75em;\n\t\t}\n\t}\n\n\t.acf-three-col {\n\t\tdisplay: flex;\n\t\tflex-wrap: wrap;\n\t\tjustify-content: space-between;\n\n\t\t> div {\n\t\t\tflex: 1;\n\t\t\talign-self: flex-start;\n\t\t\tmin-width: 31%;\n\t\t\tmax-width: 31%;\n\n\t\t\t@media screen and (max-width: $md) {\n\t\t\t\tmin-width: 48%;\n\t\t\t}\n\n\t\t\t@media screen and (max-width: $sm) {\n\t\t\t\tmin-width: 100%;\n\t\t\t}\n\t\t}\n\n\t\th3 .badge {\n\t\t\tdisplay: inline-block;\n\t\t\tvertical-align: top;\n\t\t\tborder-radius: 5px;\n\t\t\tbackground: #fc9700;\n\t\t\tcolor: #fff;\n\t\t\tfont-weight: normal;\n\t\t\tfont-size: 12px;\n\t\t\tpadding: 2px 5px;\n\t\t}\n\n\t\timg + h3 {\n\t\t\tmargin-top: 0.5em;\n\t\t}\n\t}\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tacf-hl cols\n*\n*--------------------------------------------------------------------------------------------*/\n\n.acf-hl[data-cols] {\n\tmargin-left: -10px;\n\tmargin-right: -10px;\n\n\t> li {\n\t\tpadding: 0 6px 0 10px;\n\n\t\t-webkit-box-sizing: border-box;\n\t\t-moz-box-sizing: border-box;\n\t\tbox-sizing: border-box;\n\t}\n}\n\n/* sizes */\n.acf-hl[data-cols=\"2\"] > li {\n\twidth: 50%;\n}\n.acf-hl[data-cols=\"3\"] > li {\n\twidth: 33.333%;\n}\n.acf-hl[data-cols=\"4\"] > li {\n\twidth: 25%;\n}\n\n/* mobile */\n@media screen and (max-width: $sm) {\n\t.acf-hl[data-cols] {\n\t\tflex-wrap: wrap;\n\t\tjustify-content: flex-start;\n\t\talign-content: flex-start;\n\t\talign-items: flex-start;\n\t\tmargin-left: 0;\n\t\tmargin-right: 0;\n\t\tmargin-top: -10px;\n\n\t\t> li {\n\t\t\tflex: 1 1 100%;\n\t\t\twidth: 100% !important;\n\t\t\tpadding: 10px 0 0;\n\t\t}\n\t}\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tmisc\n*\n*--------------------------------------------------------------------------------------------*/\n\n.acf-actions {\n\ttext-align: right;\n\tz-index: 1;\n\n\t/* hover */\n\t&.-hover {\n\t\tposition: absolute;\n\t\tdisplay: none;\n\t\ttop: 0;\n\t\tright: 0;\n\t\tpadding: 5px;\n\t\tz-index: 1050;\n\t}\n\n\t/* rtl */\n\thtml[dir=\"rtl\"] & {\n\t\t&.-hover {\n\t\t\tright: auto;\n\t\t\tleft: 0;\n\t\t}\n\t}\n}\n\n/* ul compatibility */\nul.acf-actions {\n\tli {\n\t\tfloat: right;\n\t\tmargin-left: 4px;\n\t}\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tRTL\n*\n*--------------------------------------------------------------------------------------------*/\n\nhtml[dir=\"rtl\"] .acf-fl {\n\tfloat: right;\n}\nhtml[dir=\"rtl\"] .acf-fr {\n\tfloat: left;\n}\n\nhtml[dir=\"rtl\"] .acf-hl > li {\n\tfloat: right;\n}\n\nhtml[dir=\"rtl\"] .acf-hl > li.acf-fr {\n\tfloat: left;\n}\n\nhtml[dir=\"rtl\"] .acf-icon.logo {\n\tleft: 0;\n\tright: auto;\n}\n\nhtml[dir=\"rtl\"] .acf-table thead th {\n\ttext-align: right;\n\tborder-right-width: 1px;\n\tborder-left-width: 0px;\n}\n\nhtml[dir=\"rtl\"] .acf-table > tbody > tr > td {\n\ttext-align: right;\n\tborder-right-width: 1px;\n\tborder-left-width: 0px;\n}\n\nhtml[dir=\"rtl\"] .acf-table > thead > tr > th:first-child,\nhtml[dir=\"rtl\"] .acf-table > tbody > tr > td:first-child {\n\tborder-right-width: 0;\n}\n\nhtml[dir=\"rtl\"] .acf-table > tbody > tr > td.order + td {\n\tborder-right-color: #e1e1e1;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* acf-postbox-columns\n*\n*---------------------------------------------------------------------------------------------*/\n\n.acf-postbox-columns {\n\t@include clearfix();\n\tposition: relative;\n\tmargin-top: -11px;\n\tmargin-bottom: -12px;\n\tmargin-left: -12px;\n\tmargin-right: (280px - 12px);\n\n\t.acf-postbox-main,\n\t.acf-postbox-side {\n\t\t@include border-box();\n\t\tpadding: 0 12px 12px;\n\t}\n\n\t.acf-postbox-main {\n\t\tfloat: left;\n\t\twidth: 100%;\n\t}\n\n\t.acf-postbox-side {\n\t\tfloat: right;\n\t\twidth: 280px;\n\t\tmargin-right: -280px;\n\n\t\t&:before {\n\t\t\tcontent: \"\";\n\t\t\tdisplay: block;\n\t\t\tposition: absolute;\n\t\t\twidth: 1px;\n\t\t\theight: 100%;\n\t\t\ttop: 0;\n\t\t\tright: 0;\n\t\t\tbackground: $wp-card-border-1;\n\t\t}\n\t}\n\n\t// WP Admin 3.8\n\t@include wp-admin(\"3-8\") {\n\t\t.acf-postbox-side:before {\n\t\t\tbackground: $wp38-card-border-1;\n\t\t}\n\t}\n}\n\n/* mobile */\n@media only screen and (max-width: 850px) {\n\t.acf-postbox-columns {\n\t\tmargin: 0;\n\n\t\t.acf-postbox-main,\n\t\t.acf-postbox-side {\n\t\t\tfloat: none;\n\t\t\twidth: auto;\n\t\t\tmargin: 0;\n\t\t\tpadding: 0;\n\t\t}\n\n\t\t.acf-postbox-side {\n\t\t\tmargin-top: 1em;\n\n\t\t\t&:before {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* acf-panel\n*\n*---------------------------------------------------------------------------------------------*/\n\n.acf-panel {\n\tmargin-top: -1px;\n\tborder-top: 1px solid $wp-card-border-1;\n\tborder-bottom: 1px solid $wp-card-border-1;\n\n\t.acf-panel-title {\n\t\tmargin: 0;\n\t\tpadding: 12px;\n\t\tfont-weight: bold;\n\t\tcursor: pointer;\n\t\tfont-size: inherit;\n\n\t\ti {\n\t\t\tfloat: right;\n\t\t}\n\t}\n\n\t.acf-panel-inside {\n\t\tmargin: 0;\n\t\tpadding: 0 12px 12px;\n\t\tdisplay: none;\n\t}\n\n\t/* open */\n\t&.-open {\n\t\t.acf-panel-inside {\n\t\t\tdisplay: block;\n\t\t}\n\t}\n\n\t/* inside postbox */\n\t.postbox & {\n\t\tmargin-left: -12px;\n\t\tmargin-right: -12px;\n\t}\n\n\t/* fields */\n\t.acf-field {\n\t\tmargin: 20px 0 0;\n\n\t\t.acf-label label {\n\t\t\tcolor: #555d66;\n\t\t\tfont-weight: normal;\n\t\t}\n\n\t\t&:first-child {\n\t\t\tmargin-top: 0;\n\t\t}\n\t}\n\n\t// WP Admin 3.8\n\t@include wp-admin(\"3-8\") {\n\t\tborder-color: $wp38-card-border-1;\n\t}\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Admin Tools\n*\n*---------------------------------------------------------------------------------------------*/\n\n#acf-admin-tools {\n\t.notice {\n\t\tmargin-top: 10px;\n\t}\n\n\t.acf-meta-box-wrap {\n\t\t.inside {\n\t\t\tborder-top: none;\n\t\t}\n\n\t\t/* acf-fields */\n\t\t.acf-fields {\n\t\t\tmargin: {\n\t\t\t\tbottom: 24px;\n\t\t\t}\n\t\t\tborder: none;\n\t\t\tbackground: #fff;\n\t\t\tborder-radius: 0;\n\n\t\t\t.acf-field {\n\t\t\t\tpadding: 0;\n\t\t\t\tmargin-bottom: 19px;\n\t\t\t\tborder-top: none;\n\t\t\t}\n\n\t\t\t.acf-label {\n\t\t\t\t@extend .p2;\n\t\t\t\tmargin: {\n\t\t\t\t\tbottom: 16px;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t.acf-input {\n\t\t\t\tpadding: {\n\t\t\t\t\ttop: 16px;\n\t\t\t\t\tright: 16px;\n\t\t\t\t\tbottom: 16px;\n\t\t\t\t\tleft: 16px;\n\t\t\t\t}\n\t\t\t\tborder: {\n\t\t\t\t\twidth: 1px;\n\t\t\t\t\tstyle: solid;\n\t\t\t\t\tcolor: $gray-300;\n\t\t\t\t}\n\t\t\t\tborder-radius: $radius-md;\n\t\t\t}\n\n\t\t\t&.import-cptui {\n\t\t\t\tmargin-top: 19px;\n\t\t\t}\n\t\t}\n\t}\n}\n\n.acf-meta-box-wrap {\n\t.postbox {\n\t\t@include border-box();\n\n\t\t.inside {\n\t\t\tmargin-bottom: 0;\n\t\t}\n\n\t\t.hndle {\n\t\t\tfont-size: 14px;\n\t\t\tpadding: 8px 12px;\n\t\t\tmargin: 0;\n\t\t\tline-height: 1.4;\n\n\t\t\t// Prevent .acf-panel border overlapping.\n\t\t\tposition: relative;\n\t\t\tz-index: 1;\n\t\t\tcursor: default;\n\t\t}\n\n\t\t.handlediv,\n\t\t.handle-order-higher,\n\t\t.handle-order-lower {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n}\n\n/* grid */\n.acf-meta-box-wrap.-grid {\n\tmargin-left: 8px;\n\tmargin-right: 8px;\n\n\t.postbox {\n\t\tfloat: left;\n\t\tclear: left;\n\t\twidth: 50%;\n\t\tmargin: 0 0 16px;\n\n\t\t&:nth-child(odd) {\n\t\t\tmargin-left: -8px;\n\t\t}\n\n\t\t&:nth-child(even) {\n\t\t\tfloat: right;\n\t\t\tclear: right;\n\t\t\tmargin-right: -8px;\n\t\t}\n\t}\n}\n\n/* mobile */\n@media only screen and (max-width: 850px) {\n\t.acf-meta-box-wrap.-grid {\n\t\tmargin-left: 0;\n\t\tmargin-right: 0;\n\n\t\t.postbox {\n\t\t\tmargin-left: 0 !important;\n\t\t\tmargin-right: 0 !important;\n\t\t\twidth: 100%;\n\t\t}\n\t}\n}\n\n/* export tool */\n#acf-admin-tool-export {\n\tp {\n\t\tmax-width: 800px;\n\t}\n\n\tul {\n\t\tdisplay: flex;\n\t\tflex-wrap: wrap;\n\t\twidth: 100%;\n\t\tli {\n\t\t\tflex: 0 1 33.33%;\n\t\t\t@media screen and (max-width: 1600px) {\n\t\t\t\tflex: 0 1 50%;\n\t\t\t}\n\t\t\t@media screen and (max-width: 1200px) {\n\t\t\t\tflex: 0 1 100%;\n\t\t\t}\n\t\t}\n\t}\n\n\t.acf-postbox-side {\n\t\tul {\n\t\t\tdisplay: block;\n\t\t}\n\n\t\t.button {\n\t\t\tmargin: 0;\n\t\t\twidth: 100%;\n\t\t}\n\t}\n\n\ttextarea {\n\t\tdisplay: block;\n\t\twidth: 100%;\n\t\tmin-height: 500px;\n\t\tbackground: $gray-50;\n\t\tborder-color: $gray-300;\n\t\tbox-shadow: none;\n\t\tpadding: 7px;\n\t\tborder-radius: $radius-md;\n\t}\n\n\t/* panel: selection */\n\t.acf-panel-selection {\n\t\t.acf-label label {\n\t\t\tfont-weight: bold;\n\t\t\tcolor: $gray-700;\n\t\t}\n\t}\n}\n\n#acf-admin-tool-import {\n\tul {\n\t\tcolumn-width: 200px;\n\t}\n}\n\n// CSS only Tooltip.\n.acf-css-tooltip {\n\tposition: relative;\n\t&:before {\n\t\tcontent: attr(aria-label);\n\t\tdisplay: none;\n\t\tposition: absolute;\n\t\tz-index: 999;\n\n\t\tbottom: 100%;\n\t\tleft: 50%;\n\t\ttransform: translate(-50%, -8px);\n\n\t\tbackground: #191e23;\n\t\tborder-radius: 2px;\n\t\tpadding: 5px 10px;\n\n\t\tcolor: #fff;\n\t\tfont-size: 12px;\n\t\tline-height: 1.4em;\n\t\twhite-space: pre;\n\t}\n\t&:after {\n\t\tcontent: \"\";\n\t\tdisplay: none;\n\t\tposition: absolute;\n\t\tz-index: 998;\n\n\t\tbottom: 100%;\n\t\tleft: 50%;\n\t\ttransform: translate(-50%, 4px);\n\n\t\tborder: solid 6px transparent;\n\t\tborder-top-color: #191e23;\n\t}\n\n\t&:hover,\n\t&:focus {\n\t\t&:before,\n\t\t&:after {\n\t\t\tdisplay: block;\n\t\t}\n\t}\n}\n\n// Diff modal.\n.acf-diff {\n\t.acf-diff-title {\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tleft: 0;\n\t\tright: 0;\n\t\theight: 40px;\n\t\tpadding: 14px 16px;\n\t\tbackground: #f3f3f3;\n\t\tborder-bottom: #dddddd solid 1px;\n\n\t\tstrong {\n\t\t\tfont-size: 14px;\n\t\t\tdisplay: block;\n\t\t}\n\n\t\t.acf-diff-title-left,\n\t\t.acf-diff-title-right {\n\t\t\twidth: 50%;\n\t\t\tfloat: left;\n\t\t}\n\t}\n\n\t.acf-diff-content {\n\t\tposition: absolute;\n\t\ttop: 70px;\n\t\tleft: 0;\n\t\tright: 0;\n\t\tbottom: 0;\n\t\toverflow: auto;\n\t}\n\n\ttable.diff {\n\t\tborder-spacing: 0;\n\n\t\tcol.diffsplit.middle {\n\t\t\twidth: 0;\n\t\t}\n\n\t\ttd,\n\t\tth {\n\t\t\tpadding-top: 0.25em;\n\t\t\tpadding-bottom: 0.25em;\n\t\t}\n\n\t\t// Fix WP 5.7 conflicting CSS.\n\t\ttr td:nth-child(2) {\n\t\t\twidth: auto;\n\t\t}\n\n\t\ttd:nth-child(3) {\n\t\t\tborder-left: #dddddd solid 1px;\n\t\t}\n\t}\n\n\t// Mobile\n\t@media screen and (max-width: 600px) {\n\t\t.acf-diff-title {\n\t\t\theight: 70px;\n\t\t}\n\t\t.acf-diff-content {\n\t\t\ttop: 100px;\n\t\t}\n\t}\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Modal\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-modal {\n\tposition: fixed;\n\ttop: 30px;\n\tleft: 30px;\n\tright: 30px;\n\tbottom: 30px;\n\tz-index: 160000;\n\tbox-shadow: 0 5px 15px rgba(0, 0, 0, 0.7);\n\tbackground: #fcfcfc;\n\n\t.acf-modal-title,\n\t.acf-modal-content,\n\t.acf-modal-toolbar {\n\t\tbox-sizing: border-box;\n\t\tposition: absolute;\n\t\tleft: 0;\n\t\tright: 0;\n\t}\n\n\t.acf-modal-title {\n\t\theight: 50px;\n\t\ttop: 0;\n\t\tborder-bottom: 1px solid #ddd;\n\n\t\th2 {\n\t\t\tmargin: 0;\n\t\t\tpadding: 0 16px;\n\t\t\tline-height: 50px;\n\t\t}\n\t\t.acf-modal-close {\n\t\t\tposition: absolute;\n\t\t\ttop: 0;\n\t\t\tright: 0;\n\t\t\theight: 50px;\n\t\t\twidth: 50px;\n\t\t\tborder: none;\n\t\t\tborder-left: 1px solid #ddd;\n\t\t\tbackground: transparent;\n\t\t\tcursor: pointer;\n\t\t\tcolor: #666;\n\t\t\t&:hover {\n\t\t\t\tcolor: #00a0d2;\n\t\t\t}\n\t\t}\n\t}\n\n\t.acf-modal-content {\n\t\ttop: 50px;\n\t\tbottom: 60px;\n\t\tbackground: #fff;\n\t\toverflow: auto;\n\t\tpadding: 16px;\n\t}\n\n\t.acf-modal-feedback {\n\t\tposition: absolute;\n\t\ttop: 50%;\n\t\tmargin: -10px 0;\n\t\tleft: 0;\n\t\tright: 0;\n\t\ttext-align: center;\n\t\topacity: 0.75;\n\n\t\t&.error {\n\t\t\topacity: 1;\n\t\t\tcolor: #b52727;\n\t\t}\n\t}\n\n\t.acf-modal-toolbar {\n\t\theight: 60px;\n\t\tbottom: 0;\n\t\tpadding: 15px 16px;\n\t\tborder-top: 1px solid #ddd;\n\n\t\t.button {\n\t\t\tfloat: right;\n\t\t}\n\t}\n\n\t// Responsive.\n\t@media only screen and (max-width: 640px) {\n\t\ttop: 0;\n\t\tleft: 0;\n\t\tright: 0;\n\t\tbottom: 0;\n\t}\n}\n.acf-modal-backdrop {\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbottom: 0;\n\tbackground: $gray-900;\n\topacity: 0.8;\n\tz-index: 159900;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Retina\n*\n*---------------------------------------------------------------------------------------------*/\n\n@media only screen and (-webkit-min-device-pixel-ratio: 2),\n\tonly screen and (min--moz-device-pixel-ratio: 2),\n\tonly screen and (-o-min-device-pixel-ratio: 2/1),\n\tonly screen and (min-device-pixel-ratio: 2),\n\tonly screen and (min-resolution: 192dpi),\n\tonly screen and (min-resolution: 2dppx) {\n\t.acf-loading,\n\t.acf-spinner {\n\t\tbackground-image: url(../../images/spinner@2x.gif);\n\t\tbackground-size: 20px 20px;\n\t}\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n* Wrap\n*\n*--------------------------------------------------------------------------------------------*/\n\n.acf-admin-page {\n\t.wrap {\n\t\tmargin: {\n\t\t\ttop: 48px;\n\t\t\tright: 32px;\n\t\t\tbottom: 0;\n\t\t\tleft: 12px;\n\t\t}\n\n\t\t@media screen and (max-width: 768px) {\n\t\t\tmargin: {\n\t\t\t\tright: 8px;\n\t\t\t\tleft: 8px;\n\t\t\t}\n\t\t}\n\t}\n\n\t&.rtl .wrap {\n\t\tmargin: {\n\t\t\tright: 12px;\n\t\t\tleft: 32px;\n\t\t}\n\n\t\t@media screen and (max-width: 768px) {\n\t\t\tmargin: {\n\t\t\t\tright: 8px;\n\t\t\t\tleft: 8px;\n\t\t\t}\n\t\t}\n\t}\n\n\t#wpcontent {\n\t\t@media screen and (max-width: 768px) {\n\t\t\tpadding: {\n\t\t\t\tleft: 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Admin Postbox & ACF Postbox\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-admin-page {\n\t.postbox,\n\t.acf-box {\n\t\tborder: none;\n\t\tborder-radius: $radius-lg;\n\t\tbox-shadow: $elevation-01;\n\n\t\t.inside {\n\t\t\tpadding: {\n\t\t\t\ttop: 24px;\n\t\t\t\tright: 24px;\n\t\t\t\tbottom: 24px;\n\t\t\t\tleft: 24px;\n\t\t\t}\n\t\t}\n\n\t\t.acf-postbox-inner {\n\t\t\tmargin: {\n\t\t\t\ttop: 0;\n\t\t\t\tright: 0;\n\t\t\t\tbottom: 0;\n\t\t\t\tleft: 0;\n\t\t\t}\n\t\t\tpadding: {\n\t\t\t\ttop: 24px;\n\t\t\t\tright: 0;\n\t\t\t\tbottom: 0;\n\t\t\t\tleft: 0;\n\t\t\t}\n\t\t}\n\n\t\t.inner,\n\t\t.inside {\n\t\t\tmargin: {\n\t\t\t\ttop: 0 !important;\n\t\t\t\tright: 0 !important;\n\t\t\t\tbottom: 0 !important;\n\t\t\t\tleft: 0 !important;\n\t\t\t}\n\t\t\tborder-top: {\n\t\t\t\twidth: 1px;\n\t\t\t\tstyle: solid;\n\t\t\t\tcolor: $gray-200;\n\t\t\t}\n\t\t}\n\n\t\t.postbox-header,\n\t\t.title {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tbox-sizing: border-box;\n\t\t\tmin-height: 64px;\n\t\t\tmargin: {\n\t\t\t\ttop: 0;\n\t\t\t\tright: 0;\n\t\t\t\tbottom: 0;\n\t\t\t\tleft: 0;\n\t\t\t}\n\t\t\tpadding: {\n\t\t\t\ttop: 0;\n\t\t\t\tright: 24px;\n\t\t\t\tbottom: 0;\n\t\t\t\tleft: 24px;\n\t\t\t}\n\t\t\tborder-bottom: {\n\t\t\t\twidth: 0;\n\t\t\t\tstyle: none;\n\t\t\t}\n\n\t\t\th2,\n\t\t\th3 {\n\t\t\t\tmargin: {\n\t\t\t\t\ttop: 0;\n\t\t\t\t\tright: 0;\n\t\t\t\t\tbottom: 0;\n\t\t\t\t\tleft: 0;\n\t\t\t\t}\n\t\t\t\tpadding: {\n\t\t\t\t\ttop: 0;\n\t\t\t\t\tright: 0;\n\t\t\t\t\tbottom: 0;\n\t\t\t\t\tleft: 0;\n\t\t\t\t}\n\t\t\t\t@extend .acf-h3;\n\t\t\t\tcolor: $gray-700;\n\t\t\t}\n\t\t}\n\n\t\t.hndle {\n\t\t\tpadding: {\n\t\t\t\ttop: 0;\n\t\t\t\tright: 24px;\n\t\t\t\tbottom: 0;\n\t\t\t\tleft: 24px;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Custom ACF postbox header\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-postbox-header {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tbox-sizing: border-box;\n\tmin-height: 64px;\n\tmargin: {\n\t\ttop: -24px;\n\t\tright: -24px;\n\t\tbottom: 0;\n\t\tleft: -24px;\n\t}\n\tpadding: {\n\t\ttop: 0;\n\t\tright: 24px;\n\t\tbottom: 0;\n\t\tleft: 24px;\n\t}\n\tborder-bottom: {\n\t\twidth: 1px;\n\t\tstyle: solid;\n\t\tcolor: $gray-200;\n\t}\n\n\th2.acf-postbox-title {\n\t\tmargin: {\n\t\t\ttop: 0;\n\t\t\tright: 0;\n\t\t\tbottom: 0;\n\t\t\tleft: 0;\n\t\t}\n\t\tpadding: {\n\t\t\ttop: 0;\n\t\t\tright: 24px;\n\t\t\tbottom: 0;\n\t\t\tleft: 0;\n\t\t}\n\t\t@extend .acf-h3;\n\t\tcolor: $gray-700;\n\t}\n\n\t.rtl & h2.acf-postbox-title {\n\t\tpadding: {\n\t\t\tright: 0;\n\t\t\tleft: 24px;\n\t\t}\n\t}\n\n\t.acf-icon {\n\t\tbackground-color: $gray-400;\n\t}\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Screen options button & screen meta container\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-admin-page {\n\t#screen-meta-links {\n\t\tmargin: {\n\t\t\tright: 32px;\n\t\t}\n\n\t\t.show-settings {\n\t\t\tborder-color: $gray-300;\n\t\t}\n\n\t\t@media screen and (max-width: 768px) {\n\t\t\tmargin: {\n\t\t\t\tright: 16px;\n\t\t\t\tbottom: 0;\n\t\t\t}\n\t\t}\n\t}\n\n\t&.rtl #screen-meta-links {\n\t\tmargin: {\n\t\t\tright: 0;\n\t\t\tleft: 32px;\n\t\t}\n\n\t\t@media screen and (max-width: 768px) {\n\t\t\tmargin: {\n\t\t\t\tright: 0;\n\t\t\t\tleft: 16px;\n\t\t\t}\n\t\t}\n\t}\n\n\t#screen-meta {\n\t\tborder-color: $gray-300;\n\t}\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Postbox headings\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-admin-page {\n\t#poststuff {\n\t\t.postbox-header {\n\t\t\th2,\n\t\t\th3 {\n\t\t\t\tjustify-content: flex-start;\n\t\t\t\tmargin: {\n\t\t\t\t\ttop: 0;\n\t\t\t\t\tright: 0;\n\t\t\t\t\tbottom: 0;\n\t\t\t\t\tleft: 0;\n\t\t\t\t}\n\t\t\t\tpadding: {\n\t\t\t\t\ttop: 0;\n\t\t\t\t\tright: 0;\n\t\t\t\t\tbottom: 0;\n\t\t\t\t\tleft: 0;\n\t\t\t\t}\n\t\t\t\t@extend .acf-h3;\n\t\t\t\tcolor: $gray-700 !important;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Postbox drag state\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-admin-page {\n\t&.is-dragging-metaboxes\n\t\t.metabox-holder\n\t\t.postbox-container\n\t\t.meta-box-sortables {\n\t\tbox-sizing: border-box;\n\t\tpadding: 2px;\n\t\toutline: none;\n\t\tbackground-image: repeating-linear-gradient(\n\t\t\t\t0deg,\n\t\t\t\t$gray-500,\n\t\t\t\t$gray-500 5px,\n\t\t\t\ttransparent 5px,\n\t\t\t\ttransparent 10px,\n\t\t\t\t$gray-500 10px\n\t\t\t),\n\t\t\trepeating-linear-gradient(\n\t\t\t\t90deg,\n\t\t\t\t$gray-500,\n\t\t\t\t$gray-500 5px,\n\t\t\t\ttransparent 5px,\n\t\t\t\ttransparent 10px,\n\t\t\t\t$gray-500 10px\n\t\t\t),\n\t\t\trepeating-linear-gradient(\n\t\t\t\t180deg,\n\t\t\t\t$gray-500,\n\t\t\t\t$gray-500 5px,\n\t\t\t\ttransparent 5px,\n\t\t\t\ttransparent 10px,\n\t\t\t\t$gray-500 10px\n\t\t\t),\n\t\t\trepeating-linear-gradient(\n\t\t\t\t270deg,\n\t\t\t\t$gray-500,\n\t\t\t\t$gray-500 5px,\n\t\t\t\ttransparent 5px,\n\t\t\t\ttransparent 10px,\n\t\t\t\t$gray-500 10px\n\t\t\t);\n\t\tbackground-size: 1.5px 100%, 100% 1.5px, 1.5px 100%, 100% 1.5px;\n\t\tbackground-position: 0 0, 0 0, 100% 0, 0 100%;\n\t\tbackground-repeat: no-repeat;\n\t\tborder-radius: $radius-lg;\n\t}\n\n\t.ui-sortable-placeholder {\n\t\tborder: none;\n\t}\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n* Search summary\n*\n*--------------------------------------------------------------------------------------------*/\n.acf-admin-page {\n\t.subtitle {\n\t\tdisplay: inline-flex;\n\t\talign-items: center;\n\t\theight: 24px;\n\t\tmargin: 0;\n\t\tpadding: {\n\t\t\ttop: 4px;\n\t\t\tright: 12px;\n\t\t\tbottom: 4px;\n\t\t\tleft: 12px;\n\t\t}\n\t\tbackground-color: $blue-50;\n\t\tborder: {\n\t\t\twidth: 1px;\n\t\t\tstyle: solid;\n\t\t\tcolor: $blue-200;\n\t\t}\n\t\tborder-radius: $radius-md;\n\t\t@extend .p3;\n\n\t\tstrong {\n\t\t\tmargin: {\n\t\t\t\tleft: 5px;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n* Action strip\n*\n*--------------------------------------------------------------------------------------------*/\n.acf-actions-strip {\n\tdisplay: flex;\n\n\t.acf-btn {\n\t\tmargin: {\n\t\t\tright: 8px;\n\t\t}\n\t}\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n* Notices\n*\n*--------------------------------------------------------------------------------------------*/\n.acf-admin-page {\n\t.acf-notice,\n\t.notice,\n\t#lost-connection-notice {\n\t\tposition: relative;\n\t\tbox-sizing: border-box;\n\t\tmax-width: $max-width;\n\t\tmin-height: 48px;\n\t\tmargin: {\n\t\t\ttop: 0 !important;\n\t\t\tright: 0 !important;\n\t\t\tbottom: 16px !important;\n\t\t\tleft: 0 !important;\n\t\t}\n\t\tpadding: {\n\t\t\ttop: 13px !important;\n\t\t\tright: 16px !important;\n\t\t\tbottom: 12px !important;\n\t\t\tleft: 50px !important;\n\t\t}\n\t\tbackground-color: #e7eff9;\n\t\tborder: {\n\t\t\twidth: 1px;\n\t\t\tstyle: solid;\n\t\t\tcolor: #9dbaee;\n\t\t}\n\t\tborder-radius: $radius-lg;\n\t\tbox-shadow: $elevation-01;\n\t\tcolor: $gray-700;\n\n\t\t&.update-nag {\n\t\t\tdisplay: block;\n\t\t\tposition: relative;\n\t\t\twidth: calc(100% - 44px);\n\t\t\tmargin: {\n\t\t\t\ttop: 48px !important;\n\t\t\t\tright: 44px !important;\n\t\t\t\tbottom: -32px !important;\n\t\t\t\tleft: 12px !important;\n\t\t\t}\n\t\t}\n\n\t\t.button {\n\t\t\theight: auto;\n\t\t\tmargin: {\n\t\t\t\tleft: 8px;\n\t\t\t}\n\t\t\tpadding: 0;\n\t\t\tborder: none;\n\t\t\t@extend .p5;\n\t\t}\n\n\t\t> div {\n\t\t\tmargin: {\n\t\t\t\ttop: 0;\n\t\t\t\tbottom: 0;\n\t\t\t}\n\t\t}\n\n\t\tp {\n\t\t\tflex: 1 0 auto;\n\t\t\tmax-width: 100%;\n\t\t\tline-height: 18px;\n\t\t\tmargin: 0;\n\t\t\tpadding: 0;\n\n\t\t\t&.help {\n\t\t\t\tmargin: {\n\t\t\t\t\ttop: 0;\n\t\t\t\t}\n\t\t\t\tpadding: {\n\t\t\t\t\ttop: 0;\n\t\t\t\t}\n\t\t\t\t@extend .p7;\n\t\t\t\tcolor: rgba($gray-700, 0.7);\n\t\t\t}\n\t\t}\n\n\t\t// Dismiss button\n\t\t.acf-notice-dismiss,\n\t\t.notice-dismiss {\n\t\t\tposition: absolute;\n\t\t\ttop: 4px;\n\t\t\tright: 8px;\n\t\t\tpadding: 9px;\n\t\t\tborder: none;\n\n\t\t\t&:before {\n\t\t\t\tcontent: \"\";\n\t\t\t\t$icon-size: 20px;\n\t\t\t\tdisplay: block;\n\t\t\t\tposition: relative;\n\t\t\t\tz-index: 600;\n\t\t\t\twidth: $icon-size;\n\t\t\t\theight: $icon-size;\n\t\t\t\tbackground-color: $gray-500;\n\t\t\t\tborder: none;\n\t\t\t\tborder-radius: 0;\n\t\t\t\t-webkit-mask-size: contain;\n\t\t\t\tmask-size: contain;\n\t\t\t\t-webkit-mask-repeat: no-repeat;\n\t\t\t\tmask-repeat: no-repeat;\n\t\t\t\t-webkit-mask-position: center;\n\t\t\t\tmask-position: center;\n\t\t\t\t-webkit-mask-image: url(\"../../images/icons/icon-close.svg\");\n\t\t\t\tmask-image: url(\"../../images/icons/icon-close.svg\");\n\t\t\t}\n\n\t\t\t&:hover::before {\n\t\t\t\tbackground-color: $gray-700;\n\t\t\t}\n\t\t}\n\n\t\ta.acf-notice-dismiss {\n\t\t\tposition: absolute;\n\t\t\ttop: 5px;\n\t\t\tright: 24px;\n\n\t\t\t&:before {\n\t\t\t\tbackground-color: $gray-600;\n\t\t\t}\n\t\t}\n\n\t\t// Icon base styling\n\t\t&:before {\n\t\t\tcontent: \"\";\n\t\t\t$icon-size: 16px;\n\t\t\tdisplay: block;\n\t\t\tposition: absolute;\n\t\t\ttop: 15px;\n\t\t\tleft: 18px;\n\t\t\tz-index: 600;\n\t\t\twidth: $icon-size;\n\t\t\theight: $icon-size;\n\t\t\tmargin: {\n\t\t\t\tright: 8px;\n\t\t\t}\n\t\t\tbackground-color: #fff;\n\t\t\tborder: none;\n\t\t\tborder-radius: 0;\n\t\t\t-webkit-mask-size: contain;\n\t\t\tmask-size: contain;\n\t\t\t-webkit-mask-repeat: no-repeat;\n\t\t\tmask-repeat: no-repeat;\n\t\t\t-webkit-mask-position: center;\n\t\t\tmask-position: center;\n\t\t\t-webkit-mask-image: url(\"../../images/icons/icon-info-solid.svg\");\n\t\t\tmask-image: url(\"../../images/icons/icon-info-solid.svg\");\n\t\t}\n\n\t\t&:after {\n\t\t\tcontent: \"\";\n\t\t\tdisplay: block;\n\t\t\tposition: absolute;\n\t\t\ttop: 9px;\n\t\t\tleft: 12px;\n\t\t\tz-index: 500;\n\t\t\twidth: 28px;\n\t\t\theight: 28px;\n\t\t\tbackground-color: $color-info;\n\t\t\tborder-radius: $radius-md;\n\t\t\tbox-shadow: $elevation-01;\n\t\t}\n\n\t\t.local-restore {\n\t\t\talign-items: center;\n\t\t\tmargin: {\n\t\t\t\ttop: -6px;\n\t\t\t\tbottom: 0;\n\t\t\t}\n\t\t}\n\t}\n\n\t.notice.is-dismissible {\n\t\tpadding: {\n\t\t\tright: 56px;\n\t\t}\n\t}\n\n\t// Success notice\n\t.notice.notice-success {\n\t\tbackground-color: #edf7ef;\n\t\tborder-color: #b6deb9;\n\n\t\t&:before {\n\t\t\t-webkit-mask-image: url(\"../../images/icons/icon-check-circle-solid.svg\");\n\t\t\tmask-image: url(\"../../images/icons/icon-check-circle-solid.svg\");\n\t\t}\n\n\t\t&:after {\n\t\t\tbackground-color: $color-success;\n\t\t}\n\t}\n\n\t// Error notice\n\t.acf-notice.acf-error-message,\n\t.notice.notice-error,\n\t#lost-connection-notice {\n\t\tbackground-color: #f7eeeb;\n\t\tborder-color: #f1b6b3;\n\n\t\t&:before {\n\t\t\t-webkit-mask-image: url(\"../../images/icons/icon-warning.svg\");\n\t\t\tmask-image: url(\"../../images/icons/icon-warning.svg\");\n\t\t}\n\n\t\t&:after {\n\t\t\tbackground-color: $color-danger;\n\t\t}\n\t}\n}\n\n.acf-admin-single-taxonomy,\n.acf-admin-single-post-type {\n\t.notice-success {\n\t\t.acf-item-saved-text {\n\t\t\tfont-weight: 600;\n\t\t}\n\n\t\t.acf-item-saved-links {\n\t\t\tdisplay: flex;\n\t\t\tgap: 12px;\n\n\t\t\ta {\n\t\t\t\ttext-decoration: none;\n\t\t\t\topacity: 1;\n\n\t\t\t\t&:after {\n\t\t\t\t\tcontent: \"\";\n\t\t\t\t\twidth: 1px;\n\t\t\t\t\theight: 13px;\n\t\t\t\t\tdisplay: inline-flex;\n\t\t\t\t\tposition: relative;\n\t\t\t\t\ttop: 2px;\n\t\t\t\t\tleft: 6px;\n\t\t\t\t\tbackground-color: $gray-600;\n\t\t\t\t\topacity: 0.3;\n\t\t\t\t}\n\n\t\t\t\t&:last-child {\n\t\t\t\t\t&:after {\n\t\t\t\t\t\tcontent: none;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n.rtl.acf-field-group,\n.rtl.acf-internal-post-type {\n\t.notice {\n\t\tpadding-right: 50px !important;\n\n\t\t.notice-dismiss {\n\t\t\tleft: 8px;\n\t\t\tright: unset;\n\t\t}\n\n\t\t&:before {\n\t\t\tleft: unset;\n\t\t\tright: 10px;\n\t\t}\n\n\t\t&:after {\n\t\t\tleft: unset;\n\t\t\tright: 12px;\n\t\t}\n\t}\n\n\t&.acf-admin-single-taxonomy,\n\t&.acf-admin-single-post-type {\n\t\t.notice-success .acf-item-saved-links a {\n\t\t\t&:after {\n\t\t\t\tleft: unset;\n\t\t\t\tright: 6px;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n* ACF PRO label\n*\n*--------------------------------------------------------------------------------------------*/\n.acf-pro-label {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tmin-height: 22px;\n\tpadding: {\n\t\tright: 8px;\n\t\tleft: 8px;\n\t}\n\tbackground: $gradient-pro;\n\tbox-shadow: inset 0 0 0 1px rgba(255,255,255,.16);\n\tborder: none;\n\tborder-radius: 100px;\n\tfont-size: 11px;\n\ttext-transform: uppercase;\n\ttext-decoration: none;\n\tcolor: #fff;\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n* Inline notice overrides\n*\n*--------------------------------------------------------------------------------------------*/\n.acf-admin-page {\n\t.acf-field {\n\t\t// notice\n\t\t.acf-notice {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tmin-height: 40px !important;\n\t\t\tmargin: {\n\t\t\t\tbottom: 6px !important;\n\t\t\t}\n\t\t\tpadding: {\n\t\t\t\ttop: 6px !important;\n\t\t\t\tleft: 40px !important;\n\t\t\t\tbottom: 6px !important;\n\t\t\t}\n\t\t\tmargin: 0 0 15px;\n\t\t\tbackground: #edf2ff;\n\t\t\tcolor: $gray-700 !important;\n\t\t\tborder-color: #2183b9;\n\t\t\tborder-radius: $radius-md;\n\n\t\t\t&:after {\n\t\t\t\ttop: 8px;\n\t\t\t\tleft: 8px;\n\t\t\t\twidth: 22px;\n\t\t\t\theight: 22px;\n\t\t\t}\n\n\t\t\t&:before {\n\t\t\t\ttop: 12px;\n\t\t\t\tleft: 12px;\n\t\t\t\twidth: 14px;\n\t\t\t\theight: 14px;\n\t\t\t}\n\n\t\t\t// error\n\t\t\t&.-error {\n\t\t\t\tbackground: #f7eeeb;\n\t\t\t\tborder-color: #f1b6b3;\n\t\t\t}\n\n\t\t\t// success\n\t\t\t&.-success {\n\t\t\t\tbackground: #edf7ef;\n\t\t\t\tborder-color: #b6deb9;\n\t\t\t}\n\n\t\t\t// warning\n\t\t\t&.-warning {\n\t\t\t\tbackground: #fdf8eb;\n\t\t\t\tborder-color: #f4dbb4;\n\t\t\t}\n\t\t}\n\t}\n}\n","/*---------------------------------------------------------------------------------------------\n*\n* Global\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-admin-page {\n\t#wpcontent {\n\t\tline-height: 140%;\n\t}\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Links\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-admin-page {\n\n\ta {\n\t\tcolor: $blue-500;\n\t}\n\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Headings\n*\n*---------------------------------------------------------------------------------------------*/\n\n.acf-h1 {\n\tfont-size: 21px;\n\tfont-weight: 400;\n}\n\n.acf-h2 {\n\tfont-size: 18px;\n\tfont-weight: 400;\n}\n\n.acf-h3 {\n\tfont-size: 16px;\n\tfont-weight: 400;\n}\n\n.acf-admin-page,\n.acf-headerbar {\n\n\th1 {\n\t\t@extend .acf-h1;\n\t}\n\n\th2 {\n\t\t@extend .acf-h2;\n\t}\n\n\th3 {\n\t\t@extend .acf-h3;\n\t}\n\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Paragraphs\n*\n*---------------------------------------------------------------------------------------------*/\n\n.acf-admin-page {\n\n\t.p1 {\n\t\tfont-size: 15px;\n\t}\n\n\t.p2 {\n\t\tfont-size: 14px;\n\t}\n\n\t.p3 {\n\t\tfont-size: 13.5px;\n\t}\n\n\t.p4 {\n\t\tfont-size: 13px;\n\t}\n\n\t.p5 {\n\t\tfont-size: 12.5px;\n\t}\n\n\t.p6 {\n\t\tfont-size: 12px;\n\t}\n\n\t.p7 {\n\t\tfont-size: 11.5px;\n\t}\n\n\t.p8 {\n\t\tfont-size: 11px;\n\t}\n\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Page titles\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-page-title {\n\t@extend .acf-h2;\n\tcolor: $gray-700;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Hide old / native WP titles from pages\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-admin-page {\n\n\t.acf-settings-wrap h1 {\n\t\tdisplay: none !important;\n\t}\n\n\t#acf-admin-tools h1:not(.acf-field-group-pro-features-title, .acf-field-group-pro-features-title-sm) {\n\t\tdisplay: none !important;\n\t}\n\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Small\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-small {\n\t@extend .p6;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Link focus style\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-admin-page {\n\ta:focus {\n\t\tbox-shadow: none;\n\t\toutline: none;\n\t}\n\n\ta:focus-visible {\n\t\tbox-shadow: 0 0 0 1px #4f94d4, 0 0 2px 1px rgb(79 148 212 / 80%);\n\t\toutline: 1px solid transparent;\n\t}\n}\n",".acf-admin-page {\n\n\t/*---------------------------------------------------------------------------------------------\n\t*\n\t* All Inputs\n\t*\n\t*---------------------------------------------------------------------------------------------*/\n\tinput[type=\"text\"],\n\tinput[type=\"search\"],\n\tinput[type=\"number\"],\n\ttextarea,\n\tselect {\n\t\tbox-sizing: border-box;\n\t\theight: 40px;\n\t\tpadding: {\n\t\t\tright: 12px;\n\t\t\tleft: 12px;\n\t\t};\n\t\tbackground-color: #fff;\n\t\tborder-color: $gray-300;\n\t\tbox-shadow: $elevation-01;\n\t\tborder-radius: $radius-md;\n\t\t@extend .p4;\n\t\tcolor: $gray-700;\n\n\t\t&:focus {\n\t\t\toutline: $outline;\n\t\t\tborder-color: $blue-400;\n\t\t}\n\n\t\t&:disabled {\n\t\t\tbackground-color: $gray-50;\n\t\t\tcolor: lighten($gray-500, 10%);\n\t\t}\n\n\t\t&::placeholder {\n\t\t\tcolor: $gray-400;\n\t\t}\n\n\t}\n\n\t/*---------------------------------------------------------------------------------------------\n\t*\n\t* Read only text inputs\n\t*\n\t*---------------------------------------------------------------------------------------------*/\n\tinput[type=\"text\"] {\n\n\t\t&:read-only {\n\t\t\tbackground-color: $gray-50;\n\t\t\tcolor: $gray-400;\n\t\t}\n\n\t}\n\n\t/*---------------------------------------------------------------------------------------------\n\t*\n\t* Number fields\n\t*\n\t*---------------------------------------------------------------------------------------------*/\n\t.acf-field.acf-field-number {\n\n\t\t.acf-label,\n\t\t.acf-input input[type=\"number\"] {\n\t\t\tmax-width: 180px;\n\t\t}\n\n\t}\n\n\t/*---------------------------------------------------------------------------------------------\n\t*\n\t* Textarea\n\t*\n\t*---------------------------------------------------------------------------------------------*/\n\ttextarea {\n\t\tbox-sizing: border-box;\n\t\tpadding: {\n\t\t\ttop: 10px;\n\t\t\tbottom: 10px;\n\t\t};\n\t\theight: 80px;\n\t\tmin-height: 56px;\n\t}\n\n\t/*---------------------------------------------------------------------------------------------\n\t*\n\t* Select\n\t*\n\t*---------------------------------------------------------------------------------------------*/\n\tselect {\n\t\tmin-width: 160px;\n\t\tmax-width: 100%;\n\t\tpadding: {\n\t\t\tright: 40px;\n\t\t\tleft: 12px;\n\t\t};\n\t\tbackground-image: url('../../images/icons/icon-chevron-down.svg');\n\t\tbackground-position: right 10px top 50%;\n\t\tbackground-size: 20px;\n\t\t@extend .p4;\n\n\t\t&:hover,\n\t\t&:focus {\n\t\t\tcolor: $blue-500;\n\t\t}\n\n\t\t&::before {\n\t\t\tcontent: '';\n\t\t\tdisplay: block;\n\t\t\tposition: absolute;\n\t\t\ttop: 5px;\n\t\t\tleft: 5px;\n\t\t\twidth: 20px;\n\t\t\theight: 20px;\n\t\t}\n\n\t}\n\n\t&.rtl {\n\t\tselect {\n\t\t\tpadding: {\n\t\t\t\tright: 12px;\n\t\t\t\tleft: 40px;\n\t\t\t};\n\t\t\tbackground-position: left 10px top 50%;\n\t\t}\n\t}\n\n\t/*---------------------------------------------------------------------------------------------\n\t*\n\t* Radio Button & Checkbox base styling\n\t*\n\t*---------------------------------------------------------------------------------------------*/\n\tinput[type=\"radio\"],\n\tinput[type=\"checkbox\"] {\n\t\tbox-sizing: border-box;\n\t\twidth: 16px;\n\t\theight: 16px;\n\t\tpadding: 0;\n\t\tborder: {\n\t\t\twidth: 1px;\n\t\t\tstyle: solid;\n\t\t\tcolor: $gray-400;\n\t\t};\n\t\tbackground: #fff;\n\t\tbox-shadow: none;\n\n\t\t&:hover {\n\t\t\tbackground-color: $blue-50;\n\t\t\tborder-color: $blue-500;\n\t\t}\n\n\t\t&:checked,\n\t\t&:focus-visible {\n\t\t\tbackground-color: $blue-50;\n\t\t\tborder-color: $blue-500;\n\n\t\t\t&:before {\n\t\t\t\tcontent: '';\n\t\t\t\tposition: relative;\n\t\t\t\ttop: -1px;\n\t\t\t\tleft: -1px;\n\t\t\t\twidth: 16px;\n\t\t\t\theight: 16px;\n\t\t\t\tmargin: 0;\n\t\t\t\tpadding: 0;\n\t\t\t\tbackground-color: transparent;\n\t\t\t\tbackground-size: cover;\n\t\t\t\tbackground-repeat: no-repeat;\n\t\t\t\tbackground-position: center;\n\t\t\t}\n\n\t\t}\n\n\t\t&:active {\n\t\t\tbox-shadow: 0px 0px 0px 3px $blue-50, 0px 0px 0px rgba(255, 54, 54, 0.25);\n\t\t}\n\n\t\t&:disabled {\n\t\t\tbackground-color: $gray-50;\n\t\t\tborder-color: $gray-300;\n\t\t}\n\n\t}\n\n\t&.rtl {\n\t\tinput[type=\"radio\"],\n\t\tinput[type=\"checkbox\"] {\n\t\t\t&:checked,\n\t\t\t&:focus-visible {\n\t\t\t\t&:before {\n\t\t\t\t\tleft: 1px;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\n\t/*---------------------------------------------------------------------------------------------\n\t*\n\t* Radio Buttons\n\t*\n\t*---------------------------------------------------------------------------------------------*/\n\tinput[type=\"radio\"] {\n\n\t\t&:checked,\n\t\t&:focus {\n\n\t\t\t&:before {\n\t\t\t\tbackground-image: url('../../images/field-states/radio-active.svg');\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t/*---------------------------------------------------------------------------------------------\n\t*\n\t* Checkboxes\n\t*\n\t*---------------------------------------------------------------------------------------------*/\n\tinput[type=\"checkbox\"] {\n\n\t\t&:checked,\n\t\t&:focus {\n\n\t\t\t&:before {\n\t\t\t\tbackground-image: url('../../images/field-states/checkbox-active.svg');\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t/*---------------------------------------------------------------------------------------------\n\t*\n\t* Radio Buttons & Checkbox lists\n\t*\n\t*---------------------------------------------------------------------------------------------*/\n\t.acf-radio-list,\n\t.acf-checkbox-list {\n\n\t\tli input[type=\"radio\"],\n\t\tli input[type=\"checkbox\"] {\n\t\t\tmargin: {\n\t\t\t\tright: 6px;\n\t\t\t};\n\t\t}\n\n\t\t&.acf-bl li {\n\t\t\tmargin: {\n\t\t\t\tbottom: 8px;\n\t\t\t};\n\n\t\t\t&:last-of-type {\n\t\t\t\tmargin: {\n\t\t\t\t\tbottom: 0;\n\t\t\t\t};\n\t\t\t}\n\n\n\t\t}\n\n\t\tlabel {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\talign-content: center;\n\t\t}\n\n\t}\n\n\t/*---------------------------------------------------------------------------------------------\n\t*\n\t* ACF Switch\n\t*\n\t*---------------------------------------------------------------------------------------------*/\n\t.acf-switch {\n\t\twidth: 42px;\n\t\theight: 24px;\n\t\tborder: none;\n\t\tbackground-color: $gray-300;\n\t\tborder-radius: 12px;\n\n\t\t&:hover {\n\t\t\tbackground-color: $gray-400;\n\t\t}\n\n\t\t&:active {\n\t\t\tbox-shadow: 0px 0px 0px 3px $blue-50, 0px 0px 0px rgba(255, 54, 54, 0.25);\n\t\t}\n\n\t\t&.-on {\n\t\t\tbackground-color: $color-primary;\n\n\t\t\t&:hover {\n\t\t\t\tbackground-color: $color-primary-hover;\n\t\t\t}\n\n\t\t\t.acf-switch-slider {\n\t\t\t\tleft: 20px;\n\t\t\t}\n\n\t\t}\n\n\t\t.acf-switch-off,\n\t\t.acf-switch-on {\n\t\t\tvisibility: hidden;\n\t\t}\n\n\t\t.acf-switch-slider {\n\t\t\twidth: 20px;\n\t\t\theight: 20px;\n\t\t\tborder: none;\n\t\t\tborder-radius: 100px;\n\t\t\tbox-shadow: 0px 1px 3px rgba(16, 24, 40, 0.1), 0px 1px 2px rgba(16, 24, 40, 0.06);\n\t\t}\n\n\t}\n\n\t.acf-field-true-false {\n\t\tdisplay: flex;\n\t\talign-items: flex-start;\n\n\t\t.acf-label {\n\t\t\torder: 2;\n\t\t\tdisplay: block;\n\t\t\talign-items: center;\n\t\t\tmargin: {\n\t\t\t\ttop: 2px;\n\t\t\t\tbottom: 0;\n\t\t\t\tleft: 12px;\n\t\t\t};\n\n\t\t\tlabel {\n\t\t\t\tmargin: {\n\t\t\t\t\tbottom: 0;\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t.acf-tip {\n\t\t\t\tmargin: {\n\t\t\t\t\tleft: 12px;\n\t\t\t\t};\n\t\t\t}\n\t\t\t\n\t\t\t.description {\n\t\t\t\tdisplay: block;\n\t\t\t\tmargin: {\n\t\t\t\t\ttop: 2px;\n\t\t\t\t\tleft: 0;\n\t\t\t\t};\t\t\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t&.rtl {\n\t\t.acf-field-true-false {\n\t\t\t.acf-label {\n\t\t\t\tmargin: {\n\t\t\t\t\tright: 12px;\n\t\t\t\t\tleft: 0;\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t.acf-tip {\n\t\t\t\tmargin: {\n\t\t\t\t\tright: 12px;\n\t\t\t\t\tleft: 0;\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t}\n\n\t/*---------------------------------------------------------------------------------------------\n\t*\n\t* File input button\n\t*\n\t*---------------------------------------------------------------------------------------------*/\n\n\tinput::file-selector-button {\n\t\tbox-sizing: border-box;\n\t\tmin-height: 40px;\n\t\tmargin: {\n\t\t\tright: 16px;\n\t\t};\n\t\tpadding: {\n\t\t\ttop: 8px;\n\t\t\tright: 16px;\n\t\t\tbottom: 8px;\n\t\t\tleft: 16px;\n\t\t};\n\t\tbackground-color: transparent;\n\t\tcolor: $color-primary !important;\n\t\tborder-radius: $radius-md;\n\t\tborder: {\n\t\t\twidth: 1px;\n\t\t\tstyle: solid;\n\t\t\tcolor: $color-primary;\n\t\t};\n\t\ttext-decoration: none;\n\n\t\t&:hover {\n\t\t\tborder-color: $color-primary-hover;\n\t\t\tcursor: pointer;\n\t\t\tcolor: $color-primary-hover !important;\n\t\t}\n\n\t}\n\n\n\t/*---------------------------------------------------------------------------------------------\n\t*\n\t* Action Buttons\n\t*\n\t*---------------------------------------------------------------------------------------------*/\n\t.button {\n\t\tdisplay: inline-flex;\n\t\talign-items: center;\n\t\theight: 40px;\n\t\tpadding: {\n\t\t\tright: 16px;\n\t\t\tleft: 16px;\n\t\t};\n\t\tbackground-color: transparent;\n\t\tborder-width: 1px;\n\t\tborder-style: solid;\n\t\tborder-color: $blue-500;\n\t\tborder-radius: $radius-md;\n\t\t@extend .p4;\n\t\tcolor: $blue-500;\n\n\t\t&:hover {\n\t\t\tbackground-color: lighten($blue-50, 2%);\n\t\t\tborder-color: $color-primary;\n\t\t\tcolor: $color-primary;\n\t\t}\n\t\t&:focus {\n\t\t\tbackground-color: lighten($blue-50, 2%);\n\t\t\toutline: $outline;\n\t\t\tcolor: $color-primary;\n\t\t}\n\n\t}\n\n\t/*---------------------------------------------------------------------------------------------\n\t*\n\t* Edit field group header\n\t*\n\t*---------------------------------------------------------------------------------------------*/\n\t.edit-field-group-header {\n\t\tdisplay: block !important;\n\t}\n\n\t/*---------------------------------------------------------------------------------------------\n\t*\n\t* Select2 inputs\n\t*\n\t*---------------------------------------------------------------------------------------------*/\n\t.acf-input {\n\n\t\t.select2-container.-acf .select2-selection {\n\t\t\tborder: none;\n\t\t\tline-height: 1;\n\t\t}\n\n\t\t.select2-container.-acf .select2-selection__rendered {\n\t\t\tbox-sizing: border-box;\n\t\t\tpadding: {\n\t\t\t\tright: 0;\n\t\t\t\tleft: 0;\n\t\t\t};\n\t\t\tbackground-color: #fff;\n\t\t\tborder: {\n\t\t\t\twidth: 1px;\n\t\t\t\tstyle: solid;\n\t\t\t\tcolor: $gray-300;\n\t\t\t};\n\t\t\tbox-shadow: $elevation-01;\n\t\t\tborder-radius: $radius-md;\n\t\t\t@extend .p4;\n\t\t\tcolor: $gray-700;\n\t\t}\n\n\t\t.select2-container--focus {\n\t\t\toutline: $outline;\n\t\t\tborder-color: $blue-400;\n\t\t\tborder-radius: $radius-md;\n\n\t\t\t.select2-selection__rendered {\n\t\t\t\tborder-color: $blue-400 !important;\n\t\t\t}\n\n\t\t\t&.select2-container--below.select2-container--open {\n\n\t\t\t\t.select2-selection__rendered {\n\t\t\t\t\tborder-bottom-right-radius: 0 !important;\n\t\t\t\t\tborder-bottom-left-radius: 0 !important;\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t&.select2-container--above.select2-container--open {\n\n\t\t\t\t.select2-selection__rendered {\n\t\t\t\t\tborder-top-right-radius: 0 !important;\n\t\t\t\t\tborder-top-left-radius: 0 !important;\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\t.select2-container .select2-search--inline .select2-search__field {\n\t\t\tmargin: 0;\n\t\t\tpadding: {\n\t\t\t\tleft: 6px;\n\t\t\t};\n\n\t\t\t&:focus {\n\t\t\t\toutline: none;\n\t\t\t\tborder: none;\n\t\t\t}\n\n\t\t}\n\n\t\t.select2-container--default .select2-selection--multiple .select2-selection__rendered {\n\t\t\tpadding: {\n\t\t\t\ttop: 0;\n\t\t\t\tright: 6px;\n\t\t\t\tbottom: 0;\n\t\t\t\tleft: 6px;\n\t\t\t};\n\t\t}\n\n\t\t.select2-selection__clear {\n\t\t\twidth: 18px;\n\t\t\theight: 18px;\n\t\t\tmargin: {\n\t\t\t\ttop: 12px;\n\t\t\t\tright: 1px;\n\t\t\t};\n\t\t\ttext-indent: 100%;\n\t\t\twhite-space: nowrap;\n\t\t\toverflow: hidden;\n\t\t\tcolor: #fff;\n\n\t\t\t&:before {\n\t\t\t\tcontent: '';\n\t\t\t\t$icon-size: 16px;\n\t\t\t\tdisplay: block;\n\t\t\t\twidth: $icon-size;\n\t\t\t\theight: $icon-size;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 0;\n\t\t\t\tborder: none;\n\t\t\t\tborder-radius: 0;\n\t\t\t\t-webkit-mask-size: contain;\n\t\t\t\tmask-size: contain;\n\t\t\t\t-webkit-mask-repeat: no-repeat;\n\t\t\t\tmask-repeat: no-repeat;\n\t\t\t\t-webkit-mask-position: center;\n\t\t\t\tmask-position: center;\n\t\t\t\t-webkit-mask-image: url('../../images/icons/icon-close.svg');\n\t\t\t\tmask-image: url('../../images/icons/icon-close.svg');\n\t\t\t\tbackground-color: $gray-400;\n\t\t\t}\n\n\t\t\t&:hover::before {\n\t\t\t\tbackground-color: $blue-500;\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t/*---------------------------------------------------------------------------------------------\n\t*\n\t* ACF label\n\t*\n\t*---------------------------------------------------------------------------------------------*/\n\t.acf-label {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: space-between;\n\n\t\t.acf-icon-help {\n\t\t\t$icon-size: 18px;\n\t\t\twidth: $icon-size;\n\t\t\theight: $icon-size;\n\t\t\tbackground-color: $gray-400;\n\t\t}\n\n\t\tlabel {\n\t\t\tmargin: {\n\t\t\t\tbottom: 0;\n\t\t\t};\n\t\t}\n\t\t\n\t\t.description {\n\t\t\tmargin: {\n\t\t\t\ttop: 2px;\n\t\t\t};\n\t\t}\n\n\t}\n\n\t/*---------------------------------------------------------------------------------------------\n\t*\n\t* Tooltip for field name field setting (result of a fix for keyboard navigation)\n\t*\n\t*---------------------------------------------------------------------------------------------*/\n\t.acf-field-setting-name .acf-tip {\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tleft: 654px;\n\t\tcolor: #98A2B3;\n\n\t\t@at-root .rtl#{&} {\n\t\t\tleft: auto;\n\t\t\tright: 654px;\n\t\t}\n\n\t\t.acf-icon-help {\n\t\t\twidth: 18px;\n\t\t\theight: 18px;\n\t\t}\n\t}\n\n\t/* Field Type Selection select2 */\n\t.acf-field-setting-type,\n\t.acf-field-permalink-rewrite,\n\t.acf-field-query-var,\n\t.acf-field-manage-terms,\n\t.acf-field-edit-terms,\n\t.acf-field-delete-terms,\n\t.acf-field-assign-terms,\n\t.acf-field-meta-box {\n\t\t\n\t\t.select2-container.-acf {\n\t\t\tmin-height: 40px;\n\t\t}\n\n\t\t.select2-container--default .select2-selection--single {\n\t\t\t.select2-selection__rendered {\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tposition: relative;\n\t\t\t\tz-index: 800;\n\t\t\t\tmin-height: 40px;\n\t\t\t\tpadding: {\n\t\t\t\t\ttop: 0;\n\t\t\t\t\tright: 12px;\n\t\t\t\t\tbottom: 0;\n\t\t\t\t\tleft: 12px;\n\t\t\t\t};\n\t\t\t}\n\t\t\t.field-type-icon {\n\t\t\t\ttop: auto;\n\t\t\t\twidth: 18px;\n\t\t\t\theight: 18px;\n\t\t\t\tmargin: {\n\t\t\t\t\tright: 2px;\n\t\t\t\t};\n\n\t\t\t\t&:before {\n\t\t\t\t\twidth: 9px;\n\t\t\t\t\theight: 9px;\n\t\t\t\t}\n\n\t\t\t}\n\t\t}\n\n\t\t.select2-container--open .select2-selection__rendered {\n\t\t\tborder-color: $blue-300 !important;\n\t\t\tborder-bottom-color: $gray-300 !important;\n\t\t}\n\n\t\t.select2-container--open.select2-container--below .select2-selection__rendered {\n\t\t\tborder-bottom-right-radius: 0 !important;\n\t\t\tborder-bottom-left-radius: 0 !important;\n\t\t}\n\n\t\t.select2-container--open.select2-container--above .select2-selection__rendered {\n\t\t\tborder-top-right-radius: 0 !important;\n\t\t\tborder-top-left-radius: 0 !important;\n\t\t\tborder-bottom-color: $blue-300 !important;\n\t\t\tborder-top-color: $gray-300 !important;\n\t\t}\n\n\t\t// icon margins\n\t\t.acf-selection.has-icon {\n\t\t\tmargin-left: 6px;\n\t\n\t\t\t@at-root .rtl#{&} {\n\t\t\t\tmargin-right: 6px;\n\t\t\t}\n\t\t}\n\t\t\n\t\t// Dropdown icon\n\t\t.select2-selection__arrow {\n\t\t\twidth: 20px;\n\t\t\theight: 20px;\n\t\t\ttop: calc(50% - 10px);\n\t\t\tright: 12px;\n\t\t\tbackground-color: transparent;\n\t\t\t\n\t\t\t&:after {\n\t\t\t\tcontent: \"\";\n\t\t\t\t$icon-size: 20px;\n\t\t\t\tdisplay: block;\n\t\t\t\tposition: absolute;\n\t\t\t\tz-index: 850;\n\t\t\t\ttop: 1px;\n\t\t\t\tleft: 0;\n\t\t\t\twidth: $icon-size;\n\t\t\t\theight: $icon-size;\n\t\t\t\t-webkit-mask-image: url(\"../../images/icons/icon-chevron-down.svg\");\n\t\t\t\tmask-image: url(\"../../images/icons/icon-chevron-down.svg\");\n\t\t\t\tbackground-color: $gray-500;\n\t\t\t\tborder: none;\n\t\t\t\tborder-radius: 0;\n\t\t\t\t-webkit-mask-size: contain;\n\t\t\t\tmask-size: contain;\n\t\t\t\t-webkit-mask-repeat: no-repeat;\n\t\t\t\tmask-repeat: no-repeat;\n\t\t\t\t-webkit-mask-position: center;\n\t\t\t\tmask-position: center;\n\t\t\t\ttext-indent: 500%;\n\t\t\t\twhite-space: nowrap;\n\t\t\t\toverflow: hidden;\t\n\t\t\t}\n\t\t\t\n\t\t\tb[role=\"presentation\"] {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\t// Open state\n\t\t.select2-container--open {\n\t\t\t\n\t\t\t// Swap chevron icon\n\t\t\t.select2-selection__arrow:after {\n\t\t\t\t-webkit-mask-image: url(\"../../images/icons/icon-chevron-up.svg\");\n\t\t\t\tmask-image: url(\"../../images/icons/icon-chevron-up.svg\");\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t}\n\n\t.field-type-select-results {\n\t\tposition: relative;\n\t\ttop: 4px;\n\t\tz-index: 1002;\n\t\tborder-radius: 0 0 $radius-md $radius-md;\n\t\tbox-shadow: 0px 8px 24px 4px rgba(16, 24, 40, 0.12);\n\t\t&.select2-dropdown--above {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column-reverse;\t \n\t\t\ttop: 0;\n\t\t\tborder-radius: $radius-md $radius-md 0 0;\n\t\t\tz-index: 1030;\n\t\t}\n\t\t\n\t\t@at-root .select2-container.select2-container--open#{&} {\n\t\t\t// outline: 3px solid $blue-50;\n\t\t\tbox-shadow: 0px 0px 0px 3px #EBF5FA, 0px 8px 24px 4px rgba(16, 24, 40, 0.12);\n\t\t}\n\n\t\t// icon margins\n\t\t.acf-selection.has-icon {\n\t\t\tmargin-left: 6px;\n\n\t\t\t@at-root .rtl#{&} {\n\t\t\t\tmargin-right: 6px;\n\t\t\t}\n\t\t}\n\n\t\t// Search field\n\t\t.select2-search {\n\t\t\tposition: relative;\n\t\t\tmargin: 0;\n\t\t\tpadding: 0;\n\n\t\t\t&--dropdown {\n\t\t\t\t&:after {\n\t\t\t\t\tcontent: \"\";\n\t\t\t\t\t$icon-size: 16px;\n\t\t\t\t\tdisplay: block;\n\t\t\t\t\tposition: absolute;\n\t\t\t\t\ttop: 12px;\n\t\t\t\t\tleft: 13px;\n\t\t\t\t\twidth: $icon-size;\n\t\t\t\t\theight: $icon-size;\n\t\t\t\t\t-webkit-mask-image: url(\"../../images/icons/icon-search.svg\");\n\t\t\t\t\tmask-image: url(\"../../images/icons/icon-search.svg\");\n\t\t\t\t\tbackground-color: $gray-400;\n\t\t\t\t\tborder: none;\n\t\t\t\t\tborder-radius: 0;\n\t\t\t\t\t-webkit-mask-size: contain;\n\t\t\t\t\tmask-size: contain;\n\t\t\t\t\t-webkit-mask-repeat: no-repeat;\n\t\t\t\t\tmask-repeat: no-repeat;\n\t\t\t\t\t-webkit-mask-position: center;\n\t\t\t\t\tmask-position: center;\n\t\t\t\t\ttext-indent: 500%;\n\t\t\t\t\twhite-space: nowrap;\n\t\t\t\t\toverflow: hidden;\n\n\t\t\t\t\t@at-root .rtl#{&} {\n\t\t\t\t\t\tright: 12px;\n\t\t\t\t\t\tleft: auto;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t.select2-search__field {\n\t\t\t\tpadding-left: 38px;\n\n\t\t\t\tborder-right: 0;\n\t\t\t\tborder-bottom: 0;\n\t\t\t\tborder-left: 0;\n\t\t\t\tborder-radius: 0;\n\n\t\t\t\t@at-root .rtl#{&} {\n\t\t\t\t\tpadding-right: 38px;\n\t\t\t\t\tpadding-left: 0;\n\t\t\t\t}\n\n\t\t\t\t&:focus {\n\t\t\t\t\tborder-top-color: $gray-300;\n\t\t\t\t\toutline: 0;\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t\t.select2-results__options {\n\t\t\tmax-height: 440px;\n\t\t}\n\t\t\n\t\t.select2-results__option {\n\t\t\t.select2-results__option--highlighted {\n\t\t\t\tbackground-color: $blue-500 !important;\n\t\t\t\tcolor: $gray-50 !important;\n\t\t\t}\n\t\t}\n\n\t\t// List items\n\t\t.select2-results__option .select2-results__option {\n\t\t\tdisplay: inline-flex;\n\t\t\tposition: relative;\n\t\t\twidth: calc(100% - 24px);\n\t\t\tmin-height: 32px;\n\t\t\tpadding: {\n\t\t\t\ttop: 0;\n\t\t\t\tright: 12px;\n\t\t\t\tbottom: 0;\n\t\t\t\tleft: 12px;\n\t\t\t}\n\t\t\talign-items: center;\n\t\t\t\n\t\t\t.field-type-icon {\n\t\t\t\ttop: auto;\n\t\t\t\twidth: 18px;\n\t\t\t\theight: 18px;\n\t\t\t\tmargin: {\n\t\t\t\t\tright: 2px;\n\t\t\t\t};\n\t\t\t\tbox-shadow: 0 0 0 1px $gray-50;\n\t\t\t\n\t\t\t\t&:before {\n\t\t\t\t\twidth: 9px;\n\t\t\t\t\theight: 9px;\n\t\t\t\t}\n\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\t.select2-results__option[aria-selected=\"true\"] {\n\t\t\tbackground-color: $blue-50 !important;\n\t\t\tcolor: $gray-700 !important;\n\t\t\t\n\t\t\t&:after {\n\t\t\t\tcontent: \"\";\n\t\t\t\t$icon-size: 16px;\n\t\t\t\tright: 13px;\n\t\t\t\tposition: absolute;\n\t\t\t\twidth: $icon-size;\n\t\t\t\theight: $icon-size;\n\t\t\t\t-webkit-mask-image: url(\"../../images/icons/icon-check.svg\");\n\t\t\t\tmask-image: url(\"../../images/icons/icon-check.svg\");\n\t\t\t\tbackground-color: $blue-500;\n\t\t\t\tborder: none;\n\t\t\t\tborder-radius: 0;\n\t\t\t\t-webkit-mask-size: contain;\n\t\t\t\tmask-size: contain;\n\t\t\t\t-webkit-mask-repeat: no-repeat;\n\t\t\t\tmask-repeat: no-repeat;\n\t\t\t\t-webkit-mask-position: center;\n\t\t\t\tmask-position: center;\n\t\t\t\ttext-indent: 500%;\n\t\t\t\twhite-space: nowrap;\n\t\t\t\toverflow: hidden;\n\n\t\t\t\t@at-root .rtl#{&} {\n\t\t\t\t\tleft: 13px;\n\t\t\t\t\tright: auto;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t.select2-results__group {\n\t\t\tdisplay: inline-flex;\n\t\t\talign-items: center;\n\t\t\twidth: calc(100% - 24px);\n\t\t\tmin-height: 25px;\n\t\t\tbackground-color: $gray-50;\n\t\t\tborder-top: {\n\t\t\t\twidth: 1px;\n\t\t\t\tstyle: solid;\n\t\t\t\tcolor: $gray-200;\n\t\t\t};\n\t\t\tborder-bottom: {\n\t\t\t\twidth: 1px;\n\t\t\t\tstyle: solid;\n\t\t\t\tcolor: $gray-200;\n\t\t\t};\n\t\t\tcolor: $gray-400;\n\t\t\tfont-size: 11px;\n\t\t\tmargin: {\n\t\t\t\tbottom: 0;\n\t\t\t};\n\t\t\tpadding: {\n\t\t\t\ttop: 0;\n\t\t\t\tright: 12px;\n\t\t\t\tbottom: 0;\n\t\t\t\tleft: 12px;\n\t\t\t};\n\t\t\tfont-weight: normal;\n\t\t}\n\t}\n\t\n\t/*---------------------------------------------------------------------------------------------\n\t*\n\t* RTL arrow position\n\t*\n\t*---------------------------------------------------------------------------------------------*/\n\t&.rtl {\n\t\t\n\t\t.acf-field-setting-type,\n\t\t.acf-field-permalink-rewrite,\n\t\t.acf-field-query-var {\n\t\t\t\n\t\t\t.select2-selection__arrow:after {\n\t\t\tright: auto;\n\t\t\tleft: 10px;\n\t\t\t}\n\t\t}\n\t\t\n\t}\n\t\n}\n\n.rtl.post-type-acf-field-group,\n.rtl.acf-internal-post-type {\n\t.acf-field-setting-name .acf-tip {\n\t\tleft: auto;\n\t\tright: 654px;\n\t}\n}","/*---------------------------------------------------------------------------------------------\n*\n* Field Groups\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-internal-post-type {\n\n\t// Hide tablenav top.\n\t.tablenav.top {\n\t\tdisplay: none;\n\t}\n\n\t// Fix margin due to hidden tablenav.\n\t.subsubsub {\n\t\tmargin-bottom: 3px;\n\t}\n\n\t// table.\n\t.wp-list-table {\n\t\tmargin: {\n\t\t\ttop: 0;\n\t\t\tright: 0;\n\t\t\tbottom: 0;\n\t\t\tleft: 0;\n\t\t}\n\t\tborder-radius: $radius-lg;\n\t\tborder: none;\n\t\toverflow: hidden;\n\t\tbox-shadow: $elevation-01;\n\n\t\tstrong {\n\t\t\tcolor: $gray-400;\n\t\t\tmargin: 0;\n\t\t}\n\n\t\ta.row-title {\n\t\t\tfont-size: 13px !important;\n\t\t\tfont-weight: 500;\n\t\t}\n\n\t\tth,\n\t\ttd {\n\t\t\tcolor: $gray-700;\n\n\t\t\t&.sortable a {\n\t\t\t\tpadding: 0;\n\t\t\t}\n\n\t\t\t&.check-column {\n\t\t\t\tpadding: {\n\t\t\t\t\ttop: 12px;\n\t\t\t\t\tright: 16px;\n\t\t\t\t\tleft: 16px;\n\t\t\t\t};\n\n\t\t\t\t@media screen and (max-width: $md) {\n\t\t\t\t\tvertical-align: top;\n\t\t\t\t\tpadding: {\n\t\t\t\t\t\tright: 2px;\n\t\t\t\t\t\tleft: 10px;\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tinput {\n\t\t\t\tmargin: 0;\n\t\t\t\tpadding: 0;\n\t\t\t}\n\n\t\t\t.acf-more-items {\n\t\t\t\tdisplay: inline-flex;\n\t\t\t\tflex-direction: row;\n\t\t\t\tjustify-content: center;\n\t\t\t\talign-items: center;\n\t\t\t\tpadding: 0px 6px 1px;\n\t\t\t\tgap: 8px;\n\t\t\t\twidth: 25px;\n\t\t\t\theight: 16px;\n\t\t\t\tbackground: $gray-200;\n\t\t\t\tborder-radius: 100px;\n\t\t\t\tfont-weight: 400;\n\t\t\t\tfont-size: 10px;\n\t\t\t\tcolor: $gray-600;\n\t\t\t}\n\n\t\t\t.acf-emdash {\n\t\t\t\tcolor: $gray-300;\n\t\t\t}\n\t\t}\n\n\t\t// Table headers\n\t\tthead th, thead td,\n\t\ttfoot th, tfoot td {\n\t\t\theight: 48px;\n\t\t\tpadding: {\n\t\t\t\tright: 24px;\n\t\t\t\tleft: 24px;\n\t\t\t};\n\t\t\tbox-sizing: border-box;\n\t\t\tbackground-color: $gray-50;\n\t\t\tborder-color: $gray-200;\n\t\t\t@extend .p4;\n\t\t\tfont-weight: 500;\n\n\t\t\t@media screen and (max-width: $md) {\n\t\t\t\tpadding: {\n\t\t\t\t\tright: 16px;\n\t\t\t\t\tleft: 8px;\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t&.check-column {\n\t\t\t\t@media screen and (max-width: $md) {\n\t\t\t\t\tvertical-align: middle;\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t\t// Table body\n\t\ttbody th,\n\t\ttbody td {\n\t\t\tbox-sizing: border-box;\n\t\t\theight: 60px;\n\t\t\tpadding: {\n\t\t\t\ttop: 10px;\n\t\t\t\tright: 24px;\n\t\t\t\tbottom: 10px;\n\t\t\t\tleft: 24px;\n\t\t\t};\n\t\t\tvertical-align: top;\n\t\t\tbackground-color: #fff;\n\t\t\tborder-bottom: {\n\t\t\t\twidth: 1px;\n\t\t\t\tcolor: $gray-200;\n\t\t\t\tstyle: solid;\n\t\t\t};\n\t\t\t@extend .p4;\n\n\t\t\t@media screen and (max-width: $md) {\n\t\t\t\tpadding: {\n\t\t\t\t\tright: 16px;\n\t\t\t\t\tleft: 8px;\n\t\t\t\t};\n\t\t\t}\n\n\t\t}\n\n\t\t.column-acf-key {\n\t\t\twhite-space: nowrap;\n\t\t}\n\n\t\t// SVG icons\n\t\t.column-acf-key .acf-icon-key-solid {\n\t\t\tdisplay: inline-block;\n\t\t\tposition: relative;\n\t\t\tbottom: -2px;\n\t\t\twidth: 15px;\n\t\t\theight: 15px;\n\t\t\tmargin: {\n\t\t\t\tright: 4px;\n\t\t\t};\n\t\t\tcolor: $gray-400;\n\t\t}\n\n\t\t// Post location icon\n\t\t.acf-location .dashicons {\n\t\t\tposition: relative;\n\t\t\tbottom: -2px;\n\t\t\twidth: 16px;\n\t\t\theight: 16px;\n\t\t\tmargin: {\n\t\t\t\tright: 6px;\n\t\t\t};\n\t\t\tfont-size: 16px;\n\t\t\tcolor: $gray-400;\n\t\t}\n\n\t\t.post-state {\n\t\t\t@extend .p3;\n\t\t\tcolor: $gray-500;\n\t\t}\n\n\t\t// Add subtle hover background to define row.\n\t\ttr:hover,\n\t\ttr:focus-within {\n\t\t\tbackground: #f7f7f7;\n\n\t\t\t.row-actions {\n\t\t\t\tmargin: {\n\t\t\t\t\tbottom: 0;\n\t\t\t\t};\n\t\t\t};\n\n\t\t}\n\n\t\t// Use less specific identifier to inherit mobile styling.\n\t\t@media screen and ( min-width: 782px ) {\n\t\t\t.column-acf-count { width: 10%; }\n\t\t}\n\n\t\t.row-actions {\n\t\t\tspan.file {\n\t\t\t\tdisplay: block;\n\t\t\t\toverflow: hidden;\n\t\t\t\twhite-space: nowrap;\n\t\t\t\ttext-overflow: ellipsis;\n\t\t\t}\n\t\t}\n\t}\n\n\t&.rtl {\n\t\t.wp-list-table {\n\t\t\t.column-acf-key .acf-icon-key-solid {\n\t\t\t\tmargin: {\n\t\t\t\t\tleft: 4px;\n\t\t\t\t\tright: 0;\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t.acf-location .dashicons {\n\t\t\t\tmargin: {\n\t\t\t\t\tleft: 6px;\n\t\t\t\t\tright: 0;\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t}\n\n\t// Actions\n\t.row-actions {\n\t\tmargin: {\n\t\t\ttop: 2px;\n\t\t};\n\t\tpadding: {\n\t\t\ttop: 0;\n\t\t\tright: 0;\n\t\t\tbottom: 0;\n\t\t\tleft: 0;\n\t\t}\n\t\t@extend .p5;\n\t\tline-height: 14px;\n\t\tcolor: $gray-300;\n\n\t\t.trash a {\n\t\t\tcolor: $acf_error;\n\t\t}\n\n\t}\n\n\n\t// Remove padding from checkbox column\n\t.widefat thead td.check-column,\n\t.widefat tfoot td.check-column {\n\t\tpadding: {\n\t\t\ttop: 0;\n\t\t};\n\t}\n\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tRow actions\n*\n*--------------------------------------------------------------------------------------------*/\n.acf-internal-post-type {\n\n\t.row-actions {\n\t\t@extend .p6;\n\n\t\ta:hover {\n\t\t\tcolor: darken($color-primary-hover, 10%);\n\t\t}\n\n\t\t.trash a {\n\t\t\tcolor: #a00;\n\t\t\t&:hover { color: #f00; }\n\t\t}\n\n\t\t&.visible {\n\t\t\tmargin: {\n\t\t\t\tbottom: 0;\n\t\t\t};\n\t\t\topacity: 1;\n\t\t}\n\n\t}\n\n}\n\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tRow hover\n*\n*--------------------------------------------------------------------------------------------*/\n.acf-internal-post-type {\n\n\t#the-list tr:hover td,\n\t#the-list tr:hover th {\n\t\tbackground-color: lighten($blue-50, 3%);\n\t}\n\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Table Nav\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-internal-post-type {\n\n\t.tablenav {\n\t\tmargin: {\n\t\t\ttop: 24px;\n\t\t\tright: 0;\n\t\t\tbottom: 0;\n\t\t\tleft: 0;\n\t\t};\n\t\tpadding: {\n\t\t\ttop: 0;\n\t\t\tright: 0;\n\t\t\tbottom: 0;\n\t\t\tleft: 0;\n\t\t};\n\t\tcolor: $gray-500;\n\t}\n\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tSearch box\n*\n*--------------------------------------------------------------------------------------------*/\n.acf-internal-post-type #posts-filter p.search-box {\n\tmargin: {\n\t\ttop: 5px;\n\t\tright: 0;\n\t\tbottom: 24px;\n\t\tleft: 0;\n\t};\n\n\t#post-search-input {\n\t\tmin-width: 280px;\n\t\tmargin: {\n\t\t\ttop: 0;\n\t\t\tright: 8px;\n\t\t\tbottom: 0;\n\t\t\tleft: 0;\n\t\t};\n\t}\n\n\t@media screen and (max-width: 768px) {\n\t\tdisplay: flex;\n\t\tbox-sizing: border-box;\n\t\tpadding-right: 24px;\n\t\tmargin-right: 16px;\n\t\tposition: inherit;\n\n\t\t#post-search-input {\n\t\t\tmin-width: auto;\n\t\t}\n\n\t}\n\n}\n\n.rtl.acf-internal-post-type #posts-filter p.search-box {\n\t#post-search-input {\n\t\tmargin: {\n\t\t\tright: 0;\n\t\t\tleft: 8px;\n\t\t};\n\t}\n\n\t@media screen and (max-width: 768px) {\n\t\tpadding-left: 24px;\n\t\tpadding-right: 0;\n\t\tmargin-left: 16px;\n\t\tmargin-right: 0;\n\t}\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tStatus tabs\n*\n*--------------------------------------------------------------------------------------------*/\n.acf-internal-post-type .subsubsub {\n\tdisplay: flex;\n\talign-items: flex-end;\n\theight: 40px;\n\tmargin: {\n\t\tbottom: 16px;\n\t};\n\n\tli {\n\t\tmargin: {\n\t\t\ttop: 0;\n\t\t\tright: 4px;\n\t\t};\n\t\tcolor: $gray-400;\n\t\t@extend .p4;\n\n\t\t.count {\n\t\t\tcolor: $gray-500;\n\t\t}\n\n\t}\n\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tPagination\n*\n*--------------------------------------------------------------------------------------------*/\n.acf-internal-post-type {\n\n\t.tablenav-pages {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\n\t\t&.no-pages{\n\t\t\tdisplay: none;\n\t\t}\n\n\t\t.displaying-num {\n\t\t\tmargin: {\n\t\t\t\ttop: 0;\n\t\t\t\tright: 16px;\n\t\t\t\tbottom: 0;\n\t\t\t\tleft: 0;\n\t\t\t};\n\t\t}\n\n\t\t.pagination-links {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\n\t\t\t#table-paging {\n\t\t\t\tmargin: {\n\t\t\t\t\ttop: 0;\n\t\t\t\t\tright: 4px;\n\t\t\t\t\tbottom: 0;\n\t\t\t\t\tleft: 8px;\n\t\t\t\t};\n\n\t\t\t\t.total-pages {\n\t\t\t\t\tmargin: {\n\t\t\t\t\t\tright: 0;\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\t// Hide pagination if there's only 1 page\n\t\t&.one-page .pagination-links {\n\t\t\tdisplay: none;\n\t\t}\n\n\t}\n\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tPagination buttons & icons\n*\n*--------------------------------------------------------------------------------------------*/\n.acf-internal-post-type .tablenav-pages .pagination-links .button {\n\tdisplay: inline-flex;\n\talign-items: center;\n\talign-content: center;\n\tjustify-content: center;\n\tmin-width: 40px;\n\tmargin: {\n\t\ttop: 0;\n\t\tright: 0;\n\t\tbottom: 0;\n\t\tleft: 0;\n\t};\n\tpadding: {\n\t\ttop: 0;\n\t\tright: 0;\n\t\tbottom: 0;\n\t\tleft: 0;\n\t};\n\tbackground-color: transparent;\n\n\t// Pagination Buttons\n\t&:nth-child(1),\n\t&:nth-child(2),\n\t&:last-child,\n\t&:nth-last-child(2) {\n\t\tdisplay: inline-block;\n\t\tposition: relative;\n\t\ttext-indent: 100%;\n\t\twhite-space: nowrap;\n\t\toverflow: hidden;\n\t\tmargin: {\n\t\t\tleft: 4px;\n\t\t}\n\n\t\t// Pagination Button Icons\n\t\t&:before {\n\t\t\t$icon-size: 20px;\n\t\t\tcontent: \"\";\n\t\t\tdisplay: block;\n\t\t\tposition: absolute;\n\t\t\twidth: 100%;\n\t\t\theight: 100%;\n\t\t\ttop: 0;\n\t\t\tleft: 0;\n\t\t\t$icon-size: $icon-size;\n\t\t\tbackground-color: $link-color;\n\t\t\tborder-radius: 0;\n\t\t\t-webkit-mask-size: $icon-size;\n\t\t\tmask-size: $icon-size;\n\t\t\t-webkit-mask-repeat: no-repeat;\n\t\t\tmask-repeat: no-repeat;\n\t\t\t-webkit-mask-position: center;\n\t\t\tmask-position: center;\n\t\t}\n\n\t}\n\n\t// First Page Icon\n\t&:nth-child(1):before {\n\t\t-webkit-mask-image: url('../../images/icons/icon-chevron-left-double.svg');\n\t\tmask-image: url('../../images/icons/icon-chevron-left-double.svg');\n\t}\n\n\t// Previous Page Icon\n\t&:nth-child(2):before {\n\t\t-webkit-mask-image: url('../../images/icons/icon-chevron-left.svg');\n\t\tmask-image: url('../../images/icons/icon-chevron-left.svg');\n\t}\n\n\t// Next Page Icon\n\t&:nth-last-child(2):before {\n\t\t-webkit-mask-image: url('../../images/icons/icon-chevron-right.svg');\n\t\tmask-image: url('../../images/icons/icon-chevron-right.svg');\n\t}\n\n\t// Last Page Icon\n\t&:last-child:before {\n\t\t-webkit-mask-image: url('../../images/icons/icon-chevron-right-double.svg');\n\t\tmask-image: url('../../images/icons/icon-chevron-right-double.svg');\n\t}\n\n\t// Pagination Button Hover State\n\t&:hover {\n\t\tborder-color: $blue-600;\n\t\tbackground-color: rgba($link-color, .05);\n\n\t\t&:before {\n\t\t\tbackground-color: $blue-600;\n\t\t}\n\n\t}\n\n\t// Pagination Button Disabled State\n\t&.disabled {\n\t\tbackground-color: transparent !important;\n\n\t\t&.disabled:before {\n\t\t\tbackground-color: $gray-300;\n\t\t}\n\n\t}\n\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Empty state\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-no-field-groups-wrapper,\n.acf-no-taxonomies-wrapper,\n.acf-no-post-types-wrapper {\n\tdisplay: flex;\n\tjustify-content: center;\n\tpadding: {\n\t\ttop: 48px;\n\t\tbottom: 48px;\n\t};\n\n\t.acf-no-field-groups-inner,\n\t.acf-no-taxonomies-inner,\n\t.acf-no-post-types-inner {\n\t\tdisplay: flex;\n\t\tflex-wrap: wrap;\n\t\tjustify-content: center;\n\t\talign-content: center;\n\t\talign-items: flex-start;\n\t\ttext-align: center;\n\t\tmax-width: 380px;\n\t\tmin-height: 320px;\n\n\t\timg,\n\t\th2,\n\t\tp {\n\t\t\tflex: 1 0 100%;\n\t\t}\n\n\t\th2 {\n\t\t\t@extend .acf-h2;\n\t\t\tmargin: {\n\t\t\t\ttop: 32px;\n\t\t\t\tbottom: 0;\n\t\t\t};\n\t\t\tpadding: 0;\n\t\t\tcolor: $gray-700;\n\t\t}\n\n\t\tp {\n\t\t\t@extend .p2;\n\t\t\tmargin: {\n\t\t\t\ttop: 12px;\n\t\t\t\tbottom: 0;\n\t\t\t};\n\t\t\tpadding: 0;\n\t\t\tcolor: $gray-500;\n\n\t\t\t&.acf-small {\n\t\t\t\tdisplay: block;\n\t\t\t\tposition: relative;\n\t\t\t\tmargin: {\n\t\t\t\t\ttop: 32px;\n\t\t\t\t};\n\t\t\t\t@extend .p6;\n\t\t\t}\n\n\t\t}\n\n\n\t\timg {\n\t\t\tmax-width: 284px;\n\t\t\tmargin: {\n\t\t\t\tbottom: 0;\n\t\t\t};\n\t\t}\n\n\t\t.acf-btn {\n\t\t\tmargin: {\n\t\t\t\ttop: 32px;\n\t\t\t};\n\t\t}\n\n\t}\n\n\t.acf-no-post-types-inner {\n\t\timg {\n\t\t\twidth: 106px;\n\t\t\theight: 88px;\n\t\t}\n\t}\n\n\t.acf-no-taxonomies-inner {\n\t\timg {\n\t\t\twidth: 98px;\n\t\t\theight: 88px;\n\t\t}\n\t}\n\n};\n\n.acf-no-field-groups,\n.acf-no-post-types,\n.acf-no-taxonomies {\n\n\t#the-list tr:hover td,\n\t#the-list tr:hover th,\n\t.acf-admin-field-groups .wp-list-table tr:hover,\n\t.striped > tbody > :nth-child(odd), ul.striped > :nth-child(odd), .alternate {\n\t\tbackground-color: transparent !important;\n\t}\n\n\t.wp-list-table {\n\n\t\tthead,\n\t\ttfoot {\n\t\t\tdisplay: none;\n\t\t}\n\n\t}\n\n}\n\n.acf-internal-post-type #the-list .no-items td {\n\tvertical-align: middle;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Small screen list table info toggle\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-internal-post-type {\n\n\t.wp-list-table .toggle-row:before {\n\t\ttop: 4px;\n\t\tleft: 16px;\n\t\tborder-radius: 0;\n\t\t$icon-size: 20px;\n\t\tcontent: \"\";\n\t\tdisplay: block;\n\t\tposition: absolute;\n\t\twidth: 16px;\n\t\theight: 16px;\n\t\t$icon-size: $icon-size;\n\t\tbackground-color: $link-color;\n\t\tborder-radius: 0;\n\t\t-webkit-mask-size: $icon-size;\n\t\tmask-size: $icon-size;\n\t\t-webkit-mask-repeat: no-repeat;\n\t\tmask-repeat: no-repeat;\n\t\t-webkit-mask-position: center;\n\t\tmask-position: center;\n\t\t-webkit-mask-image: url('../../images/icons/icon-chevron-down.svg');\n\t\tmask-image: url('../../images/icons/icon-chevron-down.svg');\n\t\ttext-indent: 100%;\n\t\twhite-space: nowrap;\n\t\toverflow: hidden;\n\t}\n\n\t.wp-list-table .is-expanded .toggle-row:before {\n\t\t-webkit-mask-image: url('../../images/icons/icon-chevron-up.svg');\n\t\tmask-image: url('../../images/icons/icon-chevron-up.svg');\n\t}\n\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Small screen checkbox\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-internal-post-type {\n\n\t@media screen and (max-width: $md) {\n\n\t\t.widefat th input[type=\"checkbox\"],\n\t\t.widefat thead td input[type=\"checkbox\"],\n\t\t.widefat tfoot td input[type=\"checkbox\"] {\n\t\t\tmargin-bottom: 0;\n\t\t}\n\n\t}\n\n}","/*---------------------------------------------------------------------------------------------\n*\n* Admin Navigation\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-admin-toolbar {\n\tposition: unset;\n\ttop: 32px;\n\theight: 72px;\n\tz-index: 800;\n\tbackground: $gray-700;\n\tcolor: $gray-400;\n\n\t.acf-admin-toolbar-inner {\n\t\tdisplay: flex;\n\t\tjustify-content: space-between;\n\t\talign-content: center;\n\t\talign-items: center;\n\t\tmax-width: 100%;\n\n\t\t.acf-nav-wrap {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t}\n\t\t\n\t\t.acf-nav-upgrade-wrap {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t}\n\n\t\t.acf-nav-wpengine-logo {\n\t\t\tdisplay: inline-flex;\n\t\t\tmargin-left: 24px;\n\n\t\t\t@media screen and (max-width: 1465px) {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t}\n\t}\n\n\t@media screen and (max-width: $md) {\n\t\tposition: static;\n\t}\n\n\t.acf-logo {\n\t\tdisplay: flex;\n\t\tmargin: {\n\t\t\tright: 24px;\n\t\t}\n\t\ttext-decoration: none;\n\t\t\n\t\t.acf-pro-label {\n\t\t\tmargin: {\n\t\t\t\tleft: 8px;\n\t\t\t};\n\t\t}\n\n\t\timg {\n\t\t\tdisplay: block;\n\t\t\tmax-width: 55px;\n\t\t\tline-height: 0%;\n\t\t}\n\t}\n\n\th2 {\n\t\tdisplay: none;\n\t\tcolor: $gray-50;\n\t}\n\n\t.acf-tab {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tbox-sizing: border-box;\n\t\tmin-height: 40px;\n\t\tmargin: {\n\t\t\tright: 8px;\n\t\t}\n\t\tpadding: {\n\t\t\ttop: 8px;\n\t\t\tright: 16px;\n\t\t\tbottom: 8px;\n\t\t\tleft: 16px;\n\t\t}\n\t\tborder: {\n\t\t\twidth: 1px;\n\t\t\tstyle: solid;\n\t\t\tcolor: transparent;\n\t\t}\n\t\tborder-radius: $radius-md;\n\t\t@extend .p4;\n\t\tcolor: $gray-400;\n\t\ttext-decoration: none;\n\n\t\t&.is-active {\n\t\t\tbackground-color: $gray-600;\n\t\t\tcolor: #fff;\n\t\t}\n\t\t&:hover {\n\t\t\tbackground-color: $gray-600;\n\t\t\tcolor: $gray-50;\n\t\t}\n\t\t&:focus-visible {\n\t\t\tborder: {\n\t\t\t\twidth: 1px;\n\t\t\t\tstyle: solid;\n\t\t\t\tcolor: $gray-500;\n\t\t\t}\n\t\t}\n\t\t&:focus {\n\t\t\tbox-shadow: none;\n\t\t}\n\t}\n\n\t.acf-more {\n\t\t&:hover {\n\t\t\t.acf-tab.acf-more-tab {\n\t\t\t\tbackground-color: $gray-600;\n\t\t\t\tcolor: $gray-50;\n\t\t\t}\n\t\t}\n\t\t\n\t\tul {\n\t\t\tdisplay: none;\n\t\t\tposition: absolute;\n\t\t\tbox-sizing: border-box;\n\t\t\tbackground: #fff;\n\t\t\tz-index: 1051;\n\t\t\toverflow: hidden;\n\t\t\tmin-width: 280px;\n\t\t\tmargin: {\n\t\t\t\ttop: 0;\n\t\t\t\tright: 0;\n\t\t\t\tbottom: 0;\n\t\t\t\tleft: 0;\n\t\t\t};\n\t\t\tpadding: {\n\t\t\t\ttop: 0;\n\t\t\t\tright: 16px;\n\t\t\t\tbottom: 0;\n\t\t\t\tleft: 16px;\n\t\t\t};\n\t\t\tborder-radius: $radius-lg;\n\t\t\tbox-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.04), 0px 8px 23px rgba(0, 0, 0, 0.12);\n\t\t\t\n\t\t\tli {\n\t\t\t\tmargin: 0;\n\t\t\t\tpadding: 0;\n\t\t\t\t\n\t\t\t\t// Links\n\t\t\t\ta {\n\t\t\t\t\tmargin: 0;\n\t\t\t\t\tpadding: 0;\n\t\t\t\t\tcolor: $gray-800;\n\t\t\t\t\tborder-radius: 0;\n\t\t\t\t\tborder-bottom: {\n\t\t\t\t\t\twidth: 1px;\n\t\t\t\t\t\tstyle: solid;\n\t\t\t\t\t\tcolor: $gray-100;\n\t\t\t\t\t};\n\t\t\t\t\t\n\t\t\t\t\t&:hover,\n\t\t\t\t\t&.acf-tab.is-active {\n\t\t\t\t\t\tbackground-color: unset;\n\t\t\t\t\t\tcolor: $blue-500;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\ti.acf-icon {\n\t\t\t\t\t\tdisplay: none !important;\n\t\t\t\t\t\t$icon-size: 16px;\n\t\t\t\t\t\twidth: $icon-size;\n\t\t\t\t\t\theight: $icon-size;\n\t\t\t\t\t\t-webkit-mask-size: $icon-size;\n\t\t\t\t\t\tmask-size: $icon-size;\n\t\t\t\t\t\tbackground-color: $gray-400 !important;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t// Last list item\n\t\t\t\t&:last-child {\n\t\t\t\t\ta {\n\t\t\t\t\t\tborder-bottom: none;\n\t\t\t\t\t}\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t&:hover,\n\t\t\t&:focus {\n\t\t\t\tdisplay: block;\n\t\t\t}\n\t\t}\n\t\t&:hover,\n\t\t&:focus {\n\t\t\tul {\n\t\t\t\tdisplay: block;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Within wpcontent.\n\t#wpcontent & {\n\t\tbox-sizing: border-box;\n\t\tmargin-left: -20px;\n\t\tpadding: {\n\t\t\ttop: 16px;\n\t\t\tright: 32px;\n\t\t\tbottom: 16px;\n\t\t\tleft: 32px;\n\t\t}\n\t}\n\n\t// Mobile\n\t@media screen and (max-width: 600px) {\n\t\t& {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n}\n\n\n.acf-internal-post-type.post-php {\n\t\n\t.acf-admin-toolbar {\n\t\t\n\t\t.acf-admin-toolbar-inner {\n\t\t\tmax-width: 1440px;\n\t\t}\n\t\t\n\t}\n\t\n}\n\n.rtl {\n\t#wpcontent .acf-admin-toolbar {\n\t\tmargin-left: 0;\n\t\tmargin-right: -20px;\n\n\t\t.acf-tab {\n\t\t\tmargin: {\n\t\t\t\tleft: 8px;\n\t\t\t\tright: 0;\n\t\t\t}\n\t\t}\n\t}\n\n\t.acf-logo {\n\t\tmargin: {\n\t\t\tright: 0;\n\t\t\tleft: 32px;\n\t\t}\n\t}\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Admin Toolbar Icons\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-admin-toolbar {\n\t.acf-tab,\n\t.acf-more {\n\t\ti.acf-icon {\n\t\t\tdisplay: none; // Icons only shown for specified nav items below\n\t\t\tmargin: {\n\t\t\t\tright: 8px;\n\t\t\t\tleft: -2px;\n\t\t\t}\n\t\t\t\n\t\t\t&.acf-icon-dropdown {\n\t\t\t\t-webkit-mask-image: url(\"../../images/icons/icon-chevron-down.svg\");\n\t\t\t\tmask-image: url(\"../../images/icons/icon-chevron-down.svg\");\n\t\t\t\t$icon-size: 16px;\n\t\t\t\twidth: $icon-size;\n\t\t\t\theight: $icon-size;\n\t\t\t\t-webkit-mask-size: $icon-size;\n\t\t\t\tmask-size: $icon-size;\n\t\t\t\tmargin: {\n\t\t\t\t\tright: -6px;\n\t\t\t\t\tleft: 6px;\n\t\t\t\t};\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\t// Only show icons for specified nav items, stops third party plugin items with no icon appearing broken\n\t\t&.acf-header-tab-acf-field-group,\n\t\t&.acf-header-tab-acf-post-type,\n\t\t&.acf-header-tab-acf-taxonomy,\n\t\t&.acf-header-tab-acf-tools,\n\t\t&.acf-header-tab-acf-settings-updates,\n\t\t&.acf-header-tab-acf-more {\n\t\t\ti.acf-icon {\n\t\t\t\tdisplay: inline-flex;\n\t\t\t}\n\t\t}\n\n\t\t&.is-active,\n\t\t&:hover {\n\t\t\ti.acf-icon {\n\t\t\t\tbackground-color: $gray-200;\n\t\t\t}\n\t\t}\n\t}\n\n\t.rtl & .acf-tab {\n\t\ti.acf-icon {\n\t\t\tmargin: {\n\t\t\t\tright: -2px;\n\t\t\t\tleft: 8px;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Field groups tab\n\t.acf-header-tab-acf-field-group {\n\t\ti.acf-icon {\n\t\t\t$icon-url: url(\"../../images/icons/icon-field-groups.svg\");\n\t\t\t-webkit-mask-image: $icon-url;\n\t\t\tmask-image: $icon-url;\n\t\t}\n\t}\n\n\t// Post types tab\n\t.acf-header-tab-acf-post-type {\n\t\ti.acf-icon {\n\t\t\t$icon-url: url(\"../../images/icons/icon-post-type.svg\");\n\t\t\t-webkit-mask-image: $icon-url;\n\t\t\tmask-image: $icon-url;\n\t\t}\n\t}\n\n\t// Taxonomies tab\n\t.acf-header-tab-acf-taxonomy {\n\t\ti.acf-icon {\n\t\t\t$icon-url: url(\"../../images/icons/icon-taxonomies.svg\");\n\t\t\t-webkit-mask-image: $icon-url;\n\t\t\tmask-image: $icon-url;\n\t\t}\n\t}\n\n\t// Tools tab\n\t.acf-header-tab-acf-tools {\n\t\ti.acf-icon {\n\t\t\t$icon-url: url(\"../../images/icons/icon-tools.svg\");\n\t\t\t-webkit-mask-image: $icon-url;\n\t\t\tmask-image: $icon-url;\n\t\t}\n\t}\n\n\t// Updates tab\n\t.acf-header-tab-acf-settings-updates {\n\t\ti.acf-icon {\n\t\t\t$icon-url: url(\"../../images/icons/icon-updates.svg\");\n\t\t\t-webkit-mask-image: $icon-url;\n\t\t\tmask-image: $icon-url;\n\t\t}\n\t}\n\t\n\t// More tab\n\t.acf-header-tab-acf-more {\n\t\ti.acf-icon-more {\n\t\t\t$icon-url: url(\"../../images/icons/icon-extended-menu.svg\");\n\t\t\t-webkit-mask-image: $icon-url;\n\t\t\tmask-image: $icon-url;\n\t\t}\n\t}\n}\n","/*---------------------------------------------------------------------------------------------\n*\n* Hide WP default controls\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-admin-page {\n\n\th1.wp-heading-inline {\n\t\tdisplay: none;\n\t}\n\n\t.wrap .wp-heading-inline + .page-title-action {\n\t\tdisplay: none;\n\t}\n\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Headerbar\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-headerbar {\n\tdisplay: flex;\n\talign-items: center;\n\tposition: sticky;\n\ttop: 32px;\n\tz-index: 700;\n\tbox-sizing: border-box;\n\tmin-height: 72px;\n\tmargin: {\n\t\tleft: -20px;\n\t};\n\tpadding: {\n\t\ttop: 8px;\n\t\tright: 32px;\n\t\tbottom: 8px;\n\t\tleft: 32px;\n\t};\n\tbackground-color: #fff;\n\tbox-shadow: $elevation-01;\n\n\t.acf-headerbar-inner {\n\t\tflex: 1 1 auto;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: space-between;\n\t\tmax-width: $max-width;\n\t}\n\n\t.acf-page-title {\n\t\tmargin: {\n\t\t\ttop: 0;\n\t\t\tright: 16px;\n\t\t\tbottom: 0;\n\t\t\tleft: 0;\n\t\t};\n\t\tpadding: {\n\t\t\ttop: 0;\n\t\t\tright: 0;\n\t\t\tbottom: 0;\n\t\t\tleft: 0;\n\t\t};\n\t}\n\n\t@media screen and (max-width: $md) {\n\t\tposition: static;\n\t}\n\n\t@media screen and (max-width: 600px) {\n\t\tjustify-content: space-between;\n\t\tposition: relative;\n\t\ttop: 46px;\n\t\tmin-height: 64px;\n\t\tpadding: {\n\t\t\tright: 12px;\n\t\t};\n\t}\n\n\t.acf-headerbar-content {\n\t\tflex: 1 1 auto;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\n\t\t@media screen and (max-width: $md) {\n\t\t\tflex-wrap: wrap;\n\n\t\t\t.acf-headerbar-title,\n\t\t\t.acf-title-wrap {\n\t\t\t\tflex: 1 1 100%;\n\t\t\t}\n\n\t\t\t.acf-title-wrap {\n\t\t\t\tmargin: {\n\t\t\t\t\ttop: 8px;\n\t\t\t\t};\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t.acf-input-error {\n\t\tborder: 1px rgba($color-danger, .5) solid !important;\n\t\tbox-shadow: 0px 0px 0px 3px rgba(209, 55, 55, 0.12), 0px 0px 0px rgba(255, 54, 54, 0.25) !important;\n\t\tbackground-image: url('../../images/icons/icon-warning-alt-red.svg');\n\t\tbackground-position: right 10px top 50%;\n\t\tbackground-size: 20px;\n\t\tbackground-repeat: no-repeat;\n\n\t\t&:focus {\n\t\t\toutline: none !important;\n\t\t\tborder: 1px rgba($color-danger, .8) solid !important;\n\t\t\tbox-shadow: 0px 0px 0px 3px rgba(209, 55, 55, 0.16), 0px 0px 0px rgba(255, 54, 54, 0.25) !important;\n\t\t}\n\t}\n\n\t.acf-headerbar-title-field {\n\t\tmin-width: 320px;\n\n\t\t@media screen and (max-width: $md) {\n\t\t\tmin-width: 100%;\n\t\t}\n\t}\n\n\t.acf-headerbar-actions {\n\t\tdisplay: flex;\n\n\t\t.acf-btn {\n\t\t\tmargin: {\n\t\t\t\tleft: 8px;\n\t\t\t};\n\t\t};\n\n\t\t.disabled {\n\t\t\tbackground-color: $gray-100;\n\t\t\tcolor: $gray-400 !important;\n\t\t\tborder: 1px $gray-300 solid;\n\t\t\tcursor: default;\n\t\t}\n\n\t}\n\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Edit Field Group Headerbar\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-headerbar-field-editor {\n\tposition: sticky;\n\ttop: 32px;\n\tz-index: 1020;\n\tmargin: {\n\t\tleft: -20px;\n\t};\n\twidth: calc(100% + 20px);\n\n\t@media screen and (max-width: $md) {\n\t\tposition: relative;\n\t\ttop: 0;\n\t\twidth: 100%;\n\t\tmargin: {\n\t\t\tleft: 0;\n\t\t};\n\t\tpadding: {\n\t\t\tright: 8px;\n\t\t\tleft: 8px;\n\t\t};\n\t}\n\n\t@media screen and (max-width: $sm) {\n\t\tposition: relative;\n\t\ttop: 46px;\n\t}\n\n\n\t.acf-headerbar-inner {\n\n\t\t@media screen and (max-width: $md) {\n\t\t\tflex-wrap: wrap;\n\t\t\tjustify-content: flex-start;\n\t\t\talign-content: flex-start;\n\t\t\talign-items: flex-start;\n\t\t\twidth: 100%;\n\n\t\t\t.acf-page-title {\n\t\t\t\tflex: 1 1 auto;\n\t\t\t}\n\n\t\t\t.acf-headerbar-actions {\n\t\t\t\tflex: 1 1 100%;\n\t\t\t\tmargin-top: 8px;\n\t\t\t\tgap: 8px;\n\n\t\t\t\t.acf-btn {\n\t\t\t\t\twidth: 100%;\n\t\t\t\t\tdisplay: inline-flex;\n\t\t\t\t\tjustify-content: center;\n\t\t\t\t\tmargin: 0;\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t.acf-page-title {\n\t\tmargin: {\n\t\t\tright: 16px;\n\t\t};\n\t}\n\n}\n\n.rtl .acf-headerbar,\n.rtl .acf-headerbar-field-editor {\n\tmargin-left: 0;\n\tmargin-right: -20px;\n\n\t.acf-page-title {\n\t\tmargin: {\n\t\t\tleft: 16px;\n\t\t\tright: 0;\n\t\t};\n\t}\n\n\t.acf-headerbar-actions {\n\t\t.acf-btn {\n\t\t\tmargin: {\n\t\t\t\tleft: 0;\n\t\t\t\tright: 8px;\n\t\t\t};\n\t\t};\n\n\t}\n}\n","/*---------------------------------------------------------------------------------------------\n*\n* ACF Buttons\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-btn {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tbox-sizing: border-box;\n\tmin-height: 40px;\n\tpadding: {\n\t\ttop: 8px;\n\t\tright: 16px;\n\t\tbottom: 8px;\n\t\tleft: 16px;\n\t}\n\tbackground-color: $color-primary;\n\tborder-radius: $radius-md;\n\tborder: {\n\t\twidth: 1px;\n\t\tstyle: solid;\n\t\tcolor: rgba($gray-900, 20%);\n\t}\n\ttext-decoration: none;\n\tcolor: #fff !important;\n\ttransition: all 0.2s ease-in-out;\n\ttransition-property: background, border, box-shadow;\n\n\t&:disabled {\n\t\tbackground-color: red;\n\t}\n\n\t&:hover {\n\t\tbackground-color: $color-primary-hover;\n\t\tcolor: #fff;\n\t\tcursor: pointer;\n\t}\n\n\t&.acf-btn-sm {\n\t\tmin-height: 32px;\n\t\tpadding: {\n\t\t\ttop: 4px;\n\t\t\tright: 12px;\n\t\t\tbottom: 4px;\n\t\t\tleft: 12px;\n\t\t}\n\t\t@extend .p4;\n\t}\n\n\t&.acf-btn-secondary {\n\t\tbackground-color: transparent;\n\t\tcolor: $color-primary !important;\n\t\tborder-color: $color-primary;\n\n\t\t&:hover {\n\t\t\tbackground-color: lighten($blue-50, 2%);\n\t\t}\n\t}\n\n\t&.acf-btn-tertiary {\n\t\tbackground-color: transparent;\n\t\tcolor: $gray-500 !important;\n\t\tborder-color: $gray-300;\n\n\t\t&:hover {\n\t\t\tcolor: $gray-500 !important;\n\t\t\tborder-color: $gray-400;\n\t\t}\n\t}\n\n\t&.acf-btn-clear {\n\t\tbackground-color: transparent;\n\t\tcolor: $gray-500 !important;\n\t\tborder-color: transparent;\n\n\t\t&:hover {\n\t\t\tcolor: $blue-500 !important;\n\t\t}\n\t}\n\n\t&.acf-btn-pro {\n\t\tbackground: $gradient-pro;\n\t\tbackground-size: 180% 80%;\n\t\tbackground-position: 100% 0;\n\t\ttransition: background-position 0.5s;\n\n\t\t&:hover {\n\t\t\tbackground-position: 0 0;\n\t\t}\n\t}\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Button icons\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-btn {\n\ti.acf-icon {\n\t\t$icon-size: 20px;\n\t\twidth: $icon-size;\n\t\theight: $icon-size;\n\t\t-webkit-mask-size: $icon-size;\n\t\tmask-size: $icon-size;\n\t\tmargin: {\n\t\t\tright: 6px;\n\t\t\tleft: -4px;\n\t\t}\n\t}\n\n\t&.acf-btn-sm {\n\t\ti.acf-icon {\n\t\t\t$icon-size: 16px;\n\t\t\twidth: $icon-size;\n\t\t\theight: $icon-size;\n\t\t\t-webkit-mask-size: $icon-size;\n\t\t\tmask-size: $icon-size;\n\t\t\tmargin: {\n\t\t\t\tright: 6px;\n\t\t\t\tleft: -2px;\n\t\t\t}\n\t\t}\n\t}\n}\n\n.rtl .acf-btn {\n\ti.acf-icon {\n\t\tmargin: {\n\t\t\tright: -4px;\n\t\t\tleft: 6px;\n\t\t}\n\t}\n\n\t&.acf-btn-sm {\n\t\ti.acf-icon {\n\t\t\tmargin: {\n\t\t\t\tright: -4px;\n\t\t\t\tleft: 2px;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Delete field group button\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-btn.acf-delete-field-group {\n\t&:hover {\n\t\tbackground-color: lighten($color-danger, 44%);\n\t\tborder-color: $color-danger !important;\n\t\tcolor: $color-danger !important;\n\t}\n}\n","/*--------------------------------------------------------------------------------------------\n*\n*\tIcon base styling\n*\n*--------------------------------------------------------------------------------------------*/\n.acf-internal-post-type,\n.post-type-acf-field-group {\n\ti.acf-icon {\n\t\t$icon-size: 20px;\n\t\tdisplay: inline-flex;\n\t\twidth: $icon-size;\n\t\theight: $icon-size;\n\t\tbackground-color: currentColor;\n\t\tborder: none;\n\t\tborder-radius: 0;\n\t\t-webkit-mask-size: contain;\n\t\tmask-size: contain;\n\t\t-webkit-mask-repeat: no-repeat;\n\t\tmask-repeat: no-repeat;\n\t\t-webkit-mask-position: center;\n\t\tmask-position: center;\n\t\ttext-indent: 500%;\n\t\twhite-space: nowrap;\n\t\toverflow: hidden;\n\t}\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tIcons\n*\n*--------------------------------------------------------------------------------------------*/\n.acf-admin-page {\n\n\t// Action icons for Flexible Content Field\n\ti.acf-field-setting-fc-delete, i.acf-field-setting-fc-duplicate {\n\t\tbox-sizing: border-box;\n\n\t\t/* Auto layout */\n\n\t\tdisplay: flex;\n\t\tflex-direction: row;\n\t\tjustify-content: center;\n\t\talign-items: center;\n\t\tpadding: 8px;\n\t\tcursor: pointer;\n\n\t\twidth: 32px;\n\t\theight: 32px;\n\n\t\t/* Base / White */\n\n\t\tbackground: #FFFFFF;\n\t\t/* Gray/300 */\n\n\t\tborder: 1px solid $gray-300;\n\t\t/* Elevation/01 */\n\n\t\tbox-shadow: $elevation-01;\n\t\tborder-radius: 6px;\n\n\t\t/* Inside auto layout */\n\n\t\tflex: none;\n\t\torder: 0;\n\t\tflex-grow: 0;\n\t}\n\n\ti.acf-icon-plus {\n\t\t-webkit-mask-image: url(\"../../images/icons/icon-add.svg\");\n\t\tmask-image: url(\"../../images/icons/icon-add.svg\");\n\t}\n\n\ti.acf-icon-stars {\n\t\t-webkit-mask-image: url(\"../../images/icons/icon-stars.svg\");\n\t\tmask-image: url(\"../../images/icons/icon-stars.svg\");\n\t}\n\n\ti.acf-icon-help {\n\t\t-webkit-mask-image: url(\"../../images/icons/icon-help.svg\");\n\t\tmask-image: url(\"../../images/icons/icon-help.svg\");\n\t}\n\n\ti.acf-icon-key {\n\t\t-webkit-mask-image: url(\"../../images/icons/icon-key.svg\");\n\t\tmask-image: url(\"../../images/icons/icon-key.svg\");\n\t}\n\n\ti.acf-icon-regenerate {\n\t\t-webkit-mask-image: url(\"../../images/icons/icon-regenerate.svg\");\n\t\tmask-image: url(\"../../images/icons/icon-regenerate.svg\");\n\t}\n\n\ti.acf-icon-trash, button.acf-icon-trash {\n\t\t-webkit-mask-image: url(\"../../images/icons/icon-trash.svg\");\n\t\tmask-image: url(\"../../images/icons/icon-trash.svg\");\n\t}\n\t\n\ti.acf-icon-extended-menu, button.acf-icon-extended-menu {\n\t\t-webkit-mask-image: url(\"../../images/icons/icon-extended-menu.svg\");\n\t\tmask-image: url(\"../../images/icons/icon-extended-menu.svg\");\n\t}\n\n\ti.acf-icon.-duplicate, button.acf-icon-duplicate {\n\t\t-webkit-mask-image: url(\"../../images/field-type-icons/icon-field-clone.svg\");\n\t\tmask-image: url(\"../../images/field-type-icons/icon-field-clone.svg\");\n\n\t\t&:before,\n\t\t&:after {\n\t\t\tcontent: none;\n\t\t}\n\t}\n\n\ti.acf-icon-arrow-right {\n\t\t-webkit-mask-image: url(\"../../images/icons/icon-arrow-right.svg\");\n\t\tmask-image: url(\"../../images/icons/icon-arrow-right.svg\");\n\t}\n\n\ti.acf-icon-arrow-up-right {\n\t\t-webkit-mask-image: url(\"../../images/icons/icon-arrow-up-right.svg\");\n\t\tmask-image: url(\"../../images/icons/icon-arrow-up-right.svg\");\n\t}\n\n\ti.acf-icon-arrow-left {\n\t\t-webkit-mask-image: url(\"../../images/icons/icon-arrow-left.svg\");\n\t\tmask-image: url(\"../../images/icons/icon-arrow-left.svg\");\n\t}\n\n\ti.acf-icon-chevron-right,\n\t.acf-icon.-right {\n\t\t-webkit-mask-image: url(\"../../images/icons/icon-chevron-right.svg\");\n\t\tmask-image: url(\"../../images/icons/icon-chevron-right.svg\");\n\t}\n\n\ti.acf-icon-chevron-left,\n\t.acf-icon.-left {\n\t\t-webkit-mask-image: url(\"../../images/icons/icon-chevron-left.svg\");\n\t\tmask-image: url(\"../../images/icons/icon-chevron-left.svg\");\n\t}\n\n\ti.acf-icon-key-solid {\n\t\t-webkit-mask-image: url(\"../../images/icons/icon-key-solid.svg\");\n\t\tmask-image: url(\"../../images/icons/icon-key-solid.svg\");\n\t}\n\n\ti.acf-icon-globe,\n\t.acf-icon.-globe {\n\t\t-webkit-mask-image: url(\"../../images/icons/icon-globe.svg\");\n\t\tmask-image: url(\"../../images/icons/icon-globe.svg\");\n\t}\n\n\ti.acf-icon-image,\n\t.acf-icon.-picture {\n\t\t-webkit-mask-image: url(\"../../images/field-type-icons/icon-field-image.svg\");\n\t\tmask-image: url(\"../../images/field-type-icons/icon-field-image.svg\");\n\t}\n\t\n\ti.acf-icon-warning {\n\t\t-webkit-mask-image: url(\"../../images/icons/icon-warning-alt.svg\");\n\t\tmask-image: url(\"../../images/icons/icon-warning-alt.svg\");\n\t}\n\t\n\ti.acf-icon-warning-red {\n\t\t-webkit-mask-image: url(\"../../images/icons/icon-warning-alt-red.svg\");\n\t\tmask-image: url(\"../../images/icons/icon-warning-alt-red.svg\");\n\t}\n\n\ti.acf-icon-dots-grid {\n\t\t-webkit-mask-image: url(\"../../images/icons/icon-dots-grid.svg\");\n\t\tmask-image: url(\"../../images/icons/icon-dots-grid.svg\");\n\t}\n\n\ti.acf-icon-play {\n\t\t-webkit-mask-image: url(\"../../images/icons/icon-play.svg\");\n\t\tmask-image: url(\"../../images/icons/icon-play.svg\");\n\t}\n\t\n\ti.acf-icon-lock {\n\t\t-webkit-mask-image: url(\"../../images/icons/icon-lock.svg\");\n\t\tmask-image: url(\"../../images/icons/icon-lock.svg\");\n\t}\n\n\ti.acf-icon-document {\n\t\t-webkit-mask-image: url(\"../../images/icons/icon-document.svg\");\n\t\tmask-image: url(\"../../images/icons/icon-document.svg\");\n\t}\n\t/*--------------------------------------------------------------------------------------------\n\t*\n\t*\tInactive group icon\n\t*\n\t*--------------------------------------------------------------------------------------------*/\n\t.post-type-acf-field-group,\n\t.acf-internal-post-type {\n\t\t.post-state {\n\t\t\tfont-weight: normal;\n\n\t\t\t.dashicons.dashicons-hidden {\n\t\t\t\t$icon-size: 18px;\n\t\t\t\tdisplay: inline-flex;\n\t\t\t\twidth: $icon-size;\n\t\t\t\theight: $icon-size;\n\t\t\t\tbackground-color: $gray-400;\n\t\t\t\tborder: none;\n\t\t\t\tborder-radius: 0;\n\t\t\t\t-webkit-mask-size: $icon-size;\n\t\t\t\tmask-size: $icon-size;\n\t\t\t\t-webkit-mask-repeat: no-repeat;\n\t\t\t\tmask-repeat: no-repeat;\n\t\t\t\t-webkit-mask-position: center;\n\t\t\t\tmask-position: center;\n\t\t\t\t-webkit-mask-image: url(\"../../images/icons/icon-hidden.svg\");\n\t\t\t\tmask-image: url(\"../../images/icons/icon-hidden.svg\");\n\n\t\t\t\t&:before {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tEdit field group page postbox header icons\n*\n*--------------------------------------------------------------------------------------------*/\n#acf-field-group-fields,\n#acf-field-group-options,\n#acf-advanced-settings {\n\t.postbox-header,\n\t.acf-sub-field-list-header {\n\t\th2,\n\t\th3 {\n\t\t\tdisplay: inline-flex;\n\t\t\tjustify-content: flex-start;\n\t\t\talign-content: stretch;\n\t\t\talign-items: center;\n\n\t\t\t&:before {\n\t\t\t\tcontent: \"\";\n\t\t\t\t$icon-size: 20px;\n\t\t\t\tdisplay: inline-block;\n\t\t\t\twidth: $icon-size;\n\t\t\t\theight: $icon-size;\n\t\t\t\tmargin: {\n\t\t\t\t\tright: 8px;\n\t\t\t\t}\n\t\t\t\tbackground-color: $gray-400;\n\t\t\t\tborder: none;\n\t\t\t\tborder-radius: 0;\n\t\t\t\t-webkit-mask-size: contain;\n\t\t\t\tmask-size: contain;\n\t\t\t\t-webkit-mask-repeat: no-repeat;\n\t\t\t\tmask-repeat: no-repeat;\n\t\t\t\t-webkit-mask-position: center;\n\t\t\t\tmask-position: center;\n\t\t\t}\n\t\t}\n\t}\n}\n\n.rtl #acf-field-group-fields,\n.rtl #acf-field-group-options {\n\t.postbox-header,\n\t.acf-sub-field-list-header {\n\t\th2,\n\t\th3 {\n\t\t\t&:before {\n\t\t\t\tmargin: {\n\t\t\t\t\tright: 0;\n\t\t\t\t\tleft: 8px;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n// Field icon\n#acf-field-group-fields .postbox-header h2:before,\nh3.acf-sub-field-list-title:before,\n.acf-link-field-groups-popup h3:before {\n\t-webkit-mask-image: url(\"../../images/icons/icon-fields.svg\");\n\tmask-image: url(\"../../images/icons/icon-fields.svg\");\n}\n\n// Settings icon\n#acf-field-group-options .postbox-header h2:before {\n\t-webkit-mask-image: url(\"../../images/icons/icon-settings.svg\");\n\tmask-image: url(\"../../images/icons/icon-settings.svg\");\n}\n\n// Layout icon\n.acf-field-setting-fc_layout .acf-field-settings-fc_head label:before {\n\t-webkit-mask-image: url(\"../../images/icons/icon-layout.svg\");\n\tmask-image: url(\"../../images/icons/icon-layout.svg\");\n}\n\n// Advanced post type and taxonomies settings icon\n.acf-admin-single-post-type,\n.acf-admin-single-taxonomy {\n\n\t#acf-advanced-settings .postbox-header h2:before {\n\t\t-webkit-mask-image: url(\"../../images/icons/icon-post-type.svg\");\n\t\tmask-image: url(\"../../images/icons/icon-post-type.svg\");\n\t}\n\n}\n\n// Flexible Content reorder\n.acf-field-setting-fc_layout .acf-field-settings-fc_head:hover .reorder-layout:before {\n\twidth: 20px;\n\theight: 11px;\n\tbackground-color: $gray-600 !important;\n\t-webkit-mask-image: url(\"../../images/icons/icon-draggable.svg\");\n\tmask-image: url(\"../../images/icons/icon-draggable.svg\");\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tPostbox expand / collapse icon\n*\n*--------------------------------------------------------------------------------------------*/\n.post-type-acf-field-group, \n.post-type-acf-field-group #acf-field-group-fields,\n.post-type-acf-field-group #acf-field-group-options,\n.post-type-acf-field-group .postbox,\n.acf-admin-single-post-type #acf-advanced-settings,\n.acf-admin-single-taxonomy #acf-advanced-settings {\n\t\n\t.postbox-header .handle-actions {\n\t\tdisplay: flex;\n\n\t\t.toggle-indicator:before {\n\t\t\tcontent: \"\";\n\t\t\t$icon-size: 20px;\n\t\t\tdisplay: inline-flex;\n\t\t\twidth: $icon-size;\n\t\t\theight: $icon-size;\n\t\t\tbackground-color: currentColor;\n\t\t\tborder: none;\n\t\t\tborder-radius: 0;\n\t\t\t-webkit-mask-size: contain;\n\t\t\tmask-size: contain;\n\t\t\t-webkit-mask-repeat: no-repeat;\n\t\t\tmask-repeat: no-repeat;\n\t\t\t-webkit-mask-position: center;\n\t\t\tmask-position: center;\n\t\t\t-webkit-mask-image: url(\"../../images/icons/icon-chevron-up.svg\");\n\t\t\tmask-image: url(\"../../images/icons/icon-chevron-up.svg\");\n\t\t}\n\t}\n\n\t// Closed state\n\t&.closed {\n\t\t.postbox-header .handle-actions {\n\t\t\t.toggle-indicator:before {\n\t\t\t\t-webkit-mask-image: url(\"../../images/icons/icon-chevron-down.svg\");\n\t\t\t\tmask-image: url(\"../../images/icons/icon-chevron-down.svg\");\n\t\t\t}\n\t\t}\n\t}\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Tools & updates page heading icons\n*\n*---------------------------------------------------------------------------------------------*/\n.post-type-acf-field-group {\n\t#acf-admin-tool-export,\n\t#acf-admin-tool-import,\n\t#acf-license-information,\n\t#acf-update-information {\n\t\th2,\n\t\th3 {\n\t\t\tdisplay: inline-flex;\n\t\t\tjustify-content: flex-start;\n\t\t\talign-content: stretch;\n\t\t\talign-items: center;\n\n\t\t\t&:before {\n\t\t\t\tcontent: \"\";\n\t\t\t\t$icon-size: 20px;\n\t\t\t\tdisplay: inline-block;\n\t\t\t\twidth: $icon-size;\n\t\t\t\theight: $icon-size;\n\t\t\t\tmargin: {\n\t\t\t\t\tright: 8px;\n\t\t\t\t}\n\t\t\t\tbackground-color: $gray-400;\n\t\t\t\tborder: none;\n\t\t\t\tborder-radius: 0;\n\t\t\t\t-webkit-mask-size: contain;\n\t\t\t\tmask-size: contain;\n\t\t\t\t-webkit-mask-repeat: no-repeat;\n\t\t\t\tmask-repeat: no-repeat;\n\t\t\t\t-webkit-mask-position: center;\n\t\t\t\tmask-position: center;\n\t\t\t}\n\t\t}\n\t}\n\n\t&.rtl {\n\t\t#acf-admin-tool-export,\n\t\t#acf-admin-tool-import,\n\t\t#acf-license-information,\n\t\t#acf-update-information {\n\t\t\th2,\n\t\t\th3 {\n\t\t\t\t&:before {\n\t\t\t\t\tmargin: {\n\t\t\t\t\t\tright: 0;\n\t\t\t\t\t\tleft: 8px;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n// Export icon\n.post-type-acf-field-group #acf-admin-tool-export h2:before {\n\t-webkit-mask-image: url(\"../../images/icons/icon-export.svg\");\n\tmask-image: url(\"../../images/icons/icon-export.svg\");\n}\n\n// Import icon\n.post-type-acf-field-group #acf-admin-tool-import h2:before {\n\t-webkit-mask-image: url(\"../../images/icons/icon-import.svg\");\n\tmask-image: url(\"../../images/icons/icon-import.svg\");\n}\n\n// License information icon\n.post-type-acf-field-group #acf-license-information h3:before {\n\t-webkit-mask-image: url(\"../../images/icons/icon-key.svg\");\n\tmask-image: url(\"../../images/icons/icon-key.svg\");\n}\n\n// Update information icon\n.post-type-acf-field-group #acf-update-information h3:before {\n\t-webkit-mask-image: url(\"../../images/icons/icon-info.svg\");\n\tmask-image: url(\"../../images/icons/icon-info.svg\");\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tAdmin field icons\n*\n*--------------------------------------------------------------------------------------------*/\n.acf-admin-single-field-group .acf-input {\n\t.acf-icon {\n\t\t$icon-size: 18px;\n\t\twidth: $icon-size;\n\t\theight: $icon-size;\n\t}\n}\n","/*--------------------------------------------------------------------------------------------\n*\n*\tField type icon base styling\n*\n*--------------------------------------------------------------------------------------------*/\n.field-type-icon {\n\tbox-sizing: border-box;\n\tdisplay: inline-flex;\n\talign-content: center;\n\talign-items: center;\n\tjustify-content: center;\n\tposition: relative;\n\twidth: 24px;\n\theight: 24px;\n\ttop: -4px;\n\tbackground-color: $blue-50;\n\tborder: {\n\t\twidth: 1px;\n\t\tstyle: solid;\n\t\tcolor: $blue-200;\n\t};\n\tborder-radius: 100%;\n\n\t&:before {\n\t\t$icon-size: 14px;\n\t\tcontent: \"\";\n\t\twidth: $icon-size;\n\t\theight: $icon-size;\n\t\tposition: relative;\n\t\tbackground-color: $blue-500;\n\t\t-webkit-mask-size: cover;\n\t\tmask-size: cover;\n\t\t-webkit-mask-repeat: no-repeat;\n\t\tmask-repeat: no-repeat;\n\t\t-webkit-mask-position: center;\n\t\tmask-position: center;\n\t\t-webkit-mask-image: url('../../images/field-type-icons/icon-field-default.svg');\n\t\tmask-image: url('../../images/field-type-icons/icon-field-default.svg');\n\t}\n\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tField type icons\n*\n*--------------------------------------------------------------------------------------------*/\n\n// Text field\n.field-type-icon.field-type-icon-text:before {\n\t-webkit-mask-image: url('../../images/field-type-icons/icon-field-text.svg');\n\tmask-image: url('../../images/field-type-icons/icon-field-text.svg');\n}\n\n// Textarea\n.field-type-icon.field-type-icon-textarea:before {\n\t-webkit-mask-image: url('../../images/field-type-icons/icon-field-textarea.svg');\n\tmask-image: url('../../images/field-type-icons/icon-field-textarea.svg');\n}\n\n// Textarea\n.field-type-icon.field-type-icon-textarea:before {\n\t-webkit-mask-image: url('../../images/field-type-icons/icon-field-textarea.svg');\n\tmask-image: url('../../images/field-type-icons/icon-field-textarea.svg');\n}\n\n// Number\n.field-type-icon.field-type-icon-number:before {\n\t-webkit-mask-image: url('../../images/field-type-icons/icon-field-number.svg');\n\tmask-image: url('../../images/field-type-icons/icon-field-number.svg');\n}\n\n// Range\n.field-type-icon.field-type-icon-range:before {\n\t-webkit-mask-image: url('../../images/field-type-icons/icon-field-range.svg');\n\tmask-image: url('../../images/field-type-icons/icon-field-range.svg');\n}\n\n// Email\n.field-type-icon.field-type-icon-email:before {\n\t-webkit-mask-image: url('../../images/field-type-icons/icon-field-email.svg');\n\tmask-image: url('../../images/field-type-icons/icon-field-email.svg');\n}\n\n// URL\n.field-type-icon.field-type-icon-url:before {\n\t-webkit-mask-image: url('../../images/field-type-icons/icon-field-url.svg');\n\tmask-image: url('../../images/field-type-icons/icon-field-url.svg');\n}\n\n// Password\n.field-type-icon.field-type-icon-password:before {\n\t-webkit-mask-image: url('../../images/field-type-icons/icon-field-password.svg');\n\tmask-image: url('../../images/field-type-icons/icon-field-password.svg');\n}\n\n// Image\n.field-type-icon.field-type-icon-image:before {\n\t-webkit-mask-image: url('../../images/field-type-icons/icon-field-image.svg');\n\tmask-image: url('../../images/field-type-icons/icon-field-image.svg');\n}\n\n// File\n.field-type-icon.field-type-icon-file:before {\n\t-webkit-mask-image: url('../../images/field-type-icons/icon-field-file.svg');\n\tmask-image: url('../../images/field-type-icons/icon-field-file.svg');\n}\n\n// WYSIWYG\n.field-type-icon.field-type-icon-wysiwyg:before {\n\t-webkit-mask-image: url('../../images/field-type-icons/icon-field-wysiwyg.svg');\n\tmask-image: url('../../images/field-type-icons/icon-field-wysiwyg.svg');\n}\n\n// oEmbed\n.field-type-icon.field-type-icon-oembed:before {\n\t-webkit-mask-image: url('../../images/field-type-icons/icon-field-oembed.svg');\n\tmask-image: url('../../images/field-type-icons/icon-field-oembed.svg');\n}\n\n// Gallery\n.field-type-icon.field-type-icon-gallery:before {\n\t-webkit-mask-image: url('../../images/field-type-icons/icon-field-gallery.svg');\n\tmask-image: url('../../images/field-type-icons/icon-field-gallery.svg');\n}\n\n// Select\n.field-type-icon.field-type-icon-select:before {\n\t-webkit-mask-image: url('../../images/field-type-icons/icon-field-select.svg');\n\tmask-image: url('../../images/field-type-icons/icon-field-select.svg');\n}\n\n// Checkbox\n.field-type-icon.field-type-icon-checkbox:before {\n\t-webkit-mask-image: url('../../images/field-type-icons/icon-field-checkbox.svg');\n\tmask-image: url('../../images/field-type-icons/icon-field-checkbox.svg');\n}\n\n// Radio Button\n.field-type-icon.field-type-icon-radio:before {\n\t-webkit-mask-image: url('../../images/field-type-icons/icon-field-radio.svg');\n\tmask-image: url('../../images/field-type-icons/icon-field-radio.svg');\n}\n\n// Button Group\n.field-type-icon.field-type-icon-button-group:before {\n\t-webkit-mask-image: url('../../images/field-type-icons/icon-field-button-group.svg');\n\tmask-image: url('../../images/field-type-icons/icon-field-button-group.svg');\n}\n\n// True / False\n.field-type-icon.field-type-icon-true-false:before {\n\t-webkit-mask-image: url('../../images/field-type-icons/icon-field-true-false.svg');\n\tmask-image: url('../../images/field-type-icons/icon-field-true-false.svg');\n}\n\n// Link\n.field-type-icon.field-type-icon-link:before {\n\t-webkit-mask-image: url('../../images/field-type-icons/icon-field-link.svg');\n\tmask-image: url('../../images/field-type-icons/icon-field-link.svg');\n}\n\n// Post Object\n.field-type-icon.field-type-icon-post-object:before {\n\t-webkit-mask-image: url('../../images/field-type-icons/icon-field-post-object.svg');\n\tmask-image: url('../../images/field-type-icons/icon-field-post-object.svg');\n}\n\n// Page Link\n.field-type-icon.field-type-icon-page-link:before {\n\t-webkit-mask-image: url('../../images/field-type-icons/icon-field-page-link.svg');\n\tmask-image: url('../../images/field-type-icons/icon-field-page-link.svg');\n}\n\n// Relationship\n.field-type-icon.field-type-icon-relationship:before {\n\t-webkit-mask-image: url('../../images/field-type-icons/icon-field-relationship.svg');\n\tmask-image: url('../../images/field-type-icons/icon-field-relationship.svg');\n}\n\n// Taxonomy\n.field-type-icon.field-type-icon-taxonomy:before {\n\t-webkit-mask-image: url('../../images/field-type-icons/icon-field-taxonomy.svg');\n\tmask-image: url('../../images/field-type-icons/icon-field-taxonomy.svg');\n}\n\n// User\n.field-type-icon.field-type-icon-user:before {\n\t-webkit-mask-image: url('../../images/field-type-icons/icon-field-user.svg');\n\tmask-image: url('../../images/field-type-icons/icon-field-user.svg');\n}\n\n// Google Map\n.field-type-icon.field-type-icon-google-map:before {\n\t-webkit-mask-image: url('../../images/field-type-icons/icon-field-google-map.svg');\n\tmask-image: url('../../images/field-type-icons/icon-field-google-map.svg');\n}\n\n// Date Picker\n.field-type-icon.field-type-icon-date-picker:before {\n\t-webkit-mask-image: url('../../images/field-type-icons/icon-field-date-picker.svg');\n\tmask-image: url('../../images/field-type-icons/icon-field-date-picker.svg');\n}\n\n// Date / Time Picker\n.field-type-icon.field-type-icon-date-time-picker:before {\n\t-webkit-mask-image: url('../../images/field-type-icons/icon-field-date-time-picker.svg');\n\tmask-image: url('../../images/field-type-icons/icon-field-date-time-picker.svg');\n}\n\n// Time Picker\n.field-type-icon.field-type-icon-time-picker:before {\n\t-webkit-mask-image: url('../../images/field-type-icons/icon-field-time-picker.svg');\n\tmask-image: url('../../images/field-type-icons/icon-field-time-picker.svg');\n}\n\n// Color Picker\n.field-type-icon.field-type-icon-color-picker:before {\n\t-webkit-mask-image: url('../../images/field-type-icons/icon-field-color-picker.svg');\n\tmask-image: url('../../images/field-type-icons/icon-field-color-picker.svg');\n}\n\n// Message\n.field-type-icon.field-type-icon-message:before {\n\t-webkit-mask-image: url('../../images/field-type-icons/icon-field-message.svg');\n\tmask-image: url('../../images/field-type-icons/icon-field-message.svg');\n}\n\n// Accordion\n.field-type-icon.field-type-icon-accordion:before {\n\t-webkit-mask-image: url('../../images/field-type-icons/icon-field-accordion.svg');\n\tmask-image: url('../../images/field-type-icons/icon-field-accordion.svg');\n}\n\n// Tab\n.field-type-icon.field-type-icon-tab:before {\n\t-webkit-mask-image: url('../../images/field-type-icons/icon-field-tab.svg');\n\tmask-image: url('../../images/field-type-icons/icon-field-tab.svg');\n}\n\n// Group\n.field-type-icon.field-type-icon-group:before {\n\t-webkit-mask-image: url('../../images/field-type-icons/icon-field-group.svg');\n\tmask-image: url('../../images/field-type-icons/icon-field-group.svg');\n}\n\n// Repeater\n.field-type-icon.field-type-icon-repeater:before {\n\t-webkit-mask-image: url('../../images/field-type-icons/icon-field-repeater.svg');\n\tmask-image: url('../../images/field-type-icons/icon-field-repeater.svg');\n}\n\n\n// Flexible Content\n.field-type-icon.field-type-icon-flexible-content:before {\n\t-webkit-mask-image: url('../../images/field-type-icons/icon-field-flexible-content.svg');\n\tmask-image: url('../../images/field-type-icons/icon-field-flexible-content.svg');\n}\n\n// Clone\n.field-type-icon.field-type-icon-clone:before {\n\t-webkit-mask-image: url('../../images/field-type-icons/icon-field-clone.svg');\n\tmask-image: url('../../images/field-type-icons/icon-field-clone.svg');\n}","/*---------------------------------------------------------------------------------------------\n*\n* Tools page layout\n*\n*---------------------------------------------------------------------------------------------*/\n#acf-admin-tools {\n\n\t.postbox-header {\n\t\tdisplay: none; // Hide native WP postbox headers\n\t}\n\n\t.acf-meta-box-wrap.-grid {\n\t\tmargin: {\n\t\t\ttop: 0;\n\t\t\tright: 0;\n\t\t\tbottom: 0;\n\t\t\tleft: 0;\n\t\t};\n\n\t\t.postbox {\n\t\t\twidth: 100%;\n\t\t\tclear: none;\n\t\t\tfloat: none;\n\t\t\tmargin: {\n\t\t\t\tbottom: 0;\n\t\t\t};\n\n\t\t\t@media screen and (max-width: $md) {\n\t\t\t\tflex: 1 1 100%;\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t.acf-meta-box-wrap.-grid .postbox:nth-child(odd) {\n\t\tmargin: {\n\t\t\tleft: 0;\n\t\t};\n\t}\n\n\t.meta-box-sortables {\n\t\tdisplay: grid;\n\t\tgrid-template-columns: repeat(2, 1fr);\n\t\tgrid-template-rows: repeat(1, 1fr);\n\t\tgrid-column-gap: 32px;\n\t\tgrid-row-gap: 32px;\n\n\t\t@media screen and (max-width: $md) {\n\t\t\tdisplay: flex;\n\t\t\tflex-wrap: wrap;\n\t\t\tjustify-content: flex-start;\n\t\t\talign-content: flex-start;\n\t\t\talign-items: center;\n\t\t\tgrid-column-gap: 8px;\n\t\t\tgrid-row-gap: 8px;\n\t\t}\n\n\t}\n\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Tools export pages\n*\n*---------------------------------------------------------------------------------------------*/\n#acf-admin-tools {\n\n\t&.tool-export {\n\n\t\t.inside {\n\t\t\tmargin: 0;\n\t\t}\n\n\t\t// ACF custom postbox header\n\t\t.acf-postbox-header {\n\t\t\tmargin: {\n\t\t\t\tbottom: 24px;\n\t\t\t};\n\t\t}\n\n\t\t// Main postbox area\n\t\t.acf-postbox-main {\n\t\t\tborder: none;\n\t\t\tmargin: 0;\n\t\t\tpadding: {\n\t\t\t\ttop: 0;\n\t\t\t\tright: 24px;\n\t\t\t\tbottom: 0;\n\t\t\t\tleft: 0;\n\t\t\t};\n\t\t}\n\n\t\t.acf-postbox-columns {\n\t\t\tmargin: {\n\t\t\t\ttop: 0;\n\t\t\t\tright: 280px;\n\t\t\t\tbottom: 0;\n\t\t\t\tleft: 0;\n\t\t\t};\n\t\t\tpadding: 0;\n\n\t\t\t.acf-postbox-side {\n\t\t\t\tpadding: 0;\n\n\t\t\t\t.acf-panel {\n\t\t\t\t\tmargin: 0;\n\t\t\t\t\tpadding: 0;\n\t\t\t\t}\n\n\t\t\t\t&:before {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t}\n\n\t\t\t\t.acf-btn {\n\t\t\t\t\tdisplay: block;\n\t\t\t\t\twidth: 100%;\n\t\t\t\t\ttext-align: center;\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\t.meta-box-sortables {\n\t\t\tdisplay: block;\n\t\t}\n\n\t\t.acf-panel {\n\t\t\tborder: none;\n\n\t\t\th3 {\n\t\t\t\tmargin: 0;\n\t\t\t\tpadding: 0;\n\t\t\t\tcolor: $gray-700;\n\t\t\t\t@extend .p4;\n\n\t\t\t\t&:before {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\t.acf-checkbox-list {\n\t\t\tmargin: {\n\t\t\t\ttop: 16px;\n\t\t\t};\n\t\t\tborder: {\n\t\t\t\twidth: 1px;\n\t\t\t\tstyle: solid;\n\t\t\t\tcolor: $gray-300;\n\t\t\t};\n\t\t\tborder-radius: $radius-md;\n\n\t\t\tli {\n\t\t\t\tdisplay: inline-flex;\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 48px;\n\t\t\t\talign-items: center;\n\t\t\t\tmargin: 0;\n\t\t\t\tpadding: {\n\t\t\t\t\tright: 12px;\n\t\t\t\t\tleft: 12px;\n\t\t\t\t};\n\t\t\t\tborder-bottom: {\n\t\t\t\t\twidth: 1px;\n\t\t\t\t\tstyle: solid;\n\t\t\t\t\tcolor: $gray-200;\n\t\t\t\t};\n\n\t\t\t\t&:last-child {\n\t\t\t\t\tborder-bottom: none;\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n}","/*---------------------------------------------------------------------------------------------\n*\n* Updates layout\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-settings-wrap.acf-updates {\n\tdisplay: flex;\n\tflex-direction: row;\n\tflex-wrap: wrap;\n\tjustify-content: flex-start;\n\talign-content: flex-start;\n\talign-items: flex-start;\n}\n\n.custom-fields_page_acf-settings-updates .acf-admin-notice,\n.custom-fields_page_acf-settings-updates .acf-upgrade-notice,\n.custom-fields_page_acf-settings-updates .notice {\n\tflex: 1 1 100%;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* ACF Box\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-settings-wrap.acf-updates {\n\n\t.acf-box {\n\t\tmargin: {\n\t\t\ttop: 0;\n\t\t\tright: 0;\n\t\t\tbottom: 0;\n\t\t\tleft: 0;\n\t\t};\n\n\t\t.inner {\n\t\t\tpadding: {\n\t\t\t\ttop: 24px;\n\t\t\t\tright: 24px;\n\t\t\t\tbottom: 24px;\n\t\t\t\tleft: 24px;\n\t\t\t};\n\t\t}\n\n\t\t@media screen and (max-width: $md) {\n\t\t\tflex: 1 1 100%;\n\t\t}\n\n\t}\n\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Notices\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-settings-wrap.acf-updates {\n\n\t.acf-admin-notice {\n\t\tflex: 1 1 100%;\n\t\tmargin: {\n\t\t\ttop: 16px;\n\t\t\tright: 0;\n\t\t\tleft: 0;\n\t\t};\n\t}\n\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* License information\n*\n*---------------------------------------------------------------------------------------------*/\n#acf-license-information {\n\tflex: 1 1 65%;\n\tmargin: {\n\t\tright: 32px;\n\t};\n\t\n\t@media screen and (max-width: 1024px) {\n\t\tmargin: {\n\t\t\tright: 0;\n\t\t\tbottom: 32px;\n\t\t};\n\t}\n\n\t.acf-activation-form {\n\t\tmargin: {\n\t\t\ttop: 24px;\n\t\t};\n\t}\n\n\tlabel {\n\t\tfont-weight: 500;\n\t}\n\n\t.acf-input-wrap {\n\t\tmargin: {\n\t\t\ttop: 8px;\n\t\t\tbottom: 24px;\n\t\t};\n\t}\n\n\t#acf_pro_license {\n\t\twidth: 100%;\n\t}\n\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Update information table\n*\n*---------------------------------------------------------------------------------------------*/\n#acf-update-information {\n\tflex: 1 1 35%;\n\tmax-width: calc(35% - 32px);\n\n\t.form-table {\n\n\t\tth,\n\t\ttd {\n\t\t\tpadding: {\n\t\t\t\ttop: 0;\n\t\t\t\tright: 0;\n\t\t\t\tbottom: 24px;\n\t\t\t\tleft: 0;\n\t\t\t};\n\t\t\t@extend .p4;\n\t\t\tcolor: $gray-700;\n\t\t}\n\n\t}\n\n\t.acf-update-changelog {\n\t\tmargin: {\n\t\t\ttop: 8px;\n\t\t\tbottom: 24px;\n\t\t};\n\t\tpadding: {\n\t\t\ttop: 8px;\n\t\t};\n\t\tborder-top: {\n\t\t\twidth: 1px;\n\t\t\tstyle: solid;\n\t\t\tcolor: $gray-200;\n\t\t};\n\t\tcolor: $gray-700;\n\n\t\th4 {\n\t\t\tmargin: {\n\t\t\t\tbottom: 0;\n\t\t\t};\n\t\t}\n\n\t\tp {\n\t\t\tmargin: {\n\t\t\t\ttop: 0;\n\t\t\t\tbottom: 16px;\n\t\t\t};\n\n\t\t\t&:last-of-type {\n\t\t\t\tmargin: {\n\t\t\t\t\tbottom: 0;\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tem {\n\t\t\t\t@extend .p6;\n\t\t\t\tcolor: $gray-500;\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t.acf-btn {\n\t\tdisplay: inline-flex;\n\t}\n\n}","/*--------------------------------------------------------------------------------------------\n*\n*\tHeader pro upgrade button\n*\n*--------------------------------------------------------------------------------------------*/\n.acf-admin-toolbar {\n\n\ta.acf-admin-toolbar-upgrade-btn {\n\t\tdisplay: inline-flex;\n\t\talign-items: center;\n\t\talign-self: stretch;\n\t\tpadding: {\n\t\t\ttop: 0;\n\t\t\tright: 16px;\n\t\t\tbottom: 0;\n\t\t\tleft: 16px;\n\t\t};\n\t\tbackground: $gradient-pro;\n\t\tbox-shadow: inset 0 0 0 1px rgba(255,255,255,.16);\n\t\tbackground-size: 180% 80%;\n\t\tbackground-position: 100% 0;\n\t\ttransition: background-position .5s;\n\t\tborder-radius: $radius-md;\n\t\ttext-decoration: none;\n\n\t\t@media screen and (max-width: 768px) {\n\t\t\tdisplay: none;\n\t\t}\n\n\t\t&:hover {\n\t\t\tbackground-position: 0 0;\n\t\t}\n\n\t\t&:focus {\n\t\t\tborder: none;\n\t\t\toutline: none;\n\t\t\tbox-shadow: none;\n\t\t}\n\n\t\tp {\n\t\t\tmargin: 0;\n\t\t\tpadding: {\n\t\t\t\ttop: 8px;\n\t\t\t\tbottom: 8px;\n\t\t\t}\n\t\t\t@extend .p4;\n\t\t\tfont-weight: normal;\n\t\t\ttext-transform: none;\n\t\t\tcolor: #fff;\n\t\t}\n\n\t\t.acf-icon {\n\t\t\t$icon-size: 18px;\n\t\t\twidth: $icon-size;\n\t\t\theight: $icon-size;\n\t\t\tmargin: {\n\t\t\t\tright: 6px;\n\t\t\t\tleft: -2px;\n\t\t\t};\n\t\t\tbackground-color: $gray-50;\n\t\t}\n\n\t}\n\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n* Upsell block\n*\n*--------------------------------------------------------------------------------------------*/\n#tmpl-acf-field-group-pro-features,\n#acf-field-group-pro-features {\n\tdisplay: none;\n\talign-items: center;\n\tmin-height: 120px;\n\tbackground-color: #121833;\n\tbackground-image: url(../../images/pro-upgrade-grid-bg.svg), url(../../images/pro-upgrade-overlay.svg);\n\tbackground-repeat: repeat, no-repeat;\n\tbackground-size: 1224px, 1880px;\n\tbackground-position: left top, -520px -680px;\n\tcolor: $gray-200;\n\tborder-radius: 8px;\n\tmargin-top: 24px;\n\tmargin-bottom: 24px;\n\n\t@media screen and (max-width: 768px) {\n\t\tbackground-size: 1024px, 980px;\n\t\tbackground-position: left top, -500px -200px;\n\t}\n\n\t@media screen and (max-width: 1200px) {\n\t\tbackground-size: 1024px, 1880px;\n\t\tbackground-position: left top, -520px -300px;\n\t}\n\n\t.postbox-header {\n\t\tdisplay: none;\n\t}\n\n\t.inside {\n\t\twidth: 100%;\n\t\tborder: none;\n\t\tpadding: 0;\n\t}\n\n\t.acf-field-group-pro-features-wrapper {\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t\talign-content: stretch;\n\t\talign-items: center;\n\t\tgap: 96px;\n\t\theight: 358px;\n\t\tmax-width: 950px;\n\t\tmargin: 0 auto;\n\t\tpadding: 0 35px;\n\t\t\n\t\t@media screen and (max-width: 1200px) {\n\t\t\tgap: 48px;\n\t\t}\n\t\t\n\t\t@media screen and (max-width: 768px) {\n\t\t\tgap: 0;\n\t\t}\n\n\t\t.acf-field-group-pro-features-title,\n\t\t.acf-field-group-pro-features-title-sm {\n\t\t\tfont-weight: 590;\n\t\t\tline-height: 150%;\n\n\t\t\t.acf-pro-label {\n\t\t\t\tfont-weight: normal;\n\t\t\t\tmargin-top: -4px;\n\t\t\t\tmargin-left: 2px;\n\t\t\t\tvertical-align: middle;\n\t\t\t\theight: 22px;\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\t.acf-field-group-pro-features-title-sm {\n\t\t\tdisplay: none;\n\t\t\tfont-size: 18px;\n\n\t\t\t.acf-pro-label {\n\t\t\t\tfont-size: 10px;\n\t\t\t\theight: 20px;\n\t\t\t}\n\t\t\t\n\t\t\t@media screen and (max-width: 768px) {\n\t\t\t\twidth: 100%;\n\t\t\t\ttext-align: center;\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\t@media screen and (max-width: 768px) {\n\t\t\tflex-direction: column;\n\t\t\tflex-wrap: wrap;\n\t\t\tjustify-content: flex-start;\n\t\t\talign-content: flex-start;\n\t\t\talign-items: flex-start;\n\t\t\tpadding: 32px 32px 0 32px;\n\t\t\theight: unset;\n\n\t\t\t.acf-field-group-pro-features-title-sm {\n\t\t\t\tdisplay: block;\n\t\t\t\tmargin-bottom: 24px;\n\t\t\t}\n\t\t}\n\n\t\t.acf-field-group-pro-features-content {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\twidth: 416px;\n\n\t\t\t.acf-field-group-pro-features-desc {\n\t\t\t\tmargin-top: 8px;\n\t\t\t\tmargin-bottom: 24px;\n\t\t\t\tfont-size: 15px;\n\t\t\t\tfont-weight: 300;\n\t\t\t\tcolor: $gray-300;\n\t\t\t}\n\n\t\t\t@media screen and (max-width: 768px) {\n\t\t\t\twidth: 100%;\n\t\t\t\torder: 1;\n\t\t\t\tmargin: {\n\t\t\t\t\tright: 0;\n\t\t\t\t\tbottom: 8px;\n\t\t\t\t};\n\n\t\t\t\t.acf-field-group-pro-features-title,\n\t\t\t\t.acf-field-group-pro-features-desc {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t\t.acf-field-group-pro-features-actions {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: row;\n\t\t\talign-items: flex-start;\n\t\t\tmin-width: 160px;\n\t\t\tgap: 12px;\n\n\t\t\t@media screen and (max-width: 768px) {\n\t\t\t\tjustify-content: flex-start;\n\t\t\t\tflex-direction: column;\n\t\t\t\tmargin-bottom: 24px;\n\n\t\t\t\ta {\n\t\t\t\t\tjustify-content: center;\n\t\t\t\t\ttext-align: center;\n\t\t\t\t\twidth: 100%;\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t\t.acf-field-group-pro-features-grid {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: row;\n\t\t\tflex-wrap: wrap;\n\t\t\tgap: 16px;\n\t\t\twidth: 416px;\n\n\t\t\t.acf-field-group-pro-feature {\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-direction: column;\n\t\t\t\tjustify-content: center;\n\t\t\t\talign-items: center;\n\t\t\t\twidth: 128px;\n\t\t\t\theight: 124px;\n\t\t\t\tbackground: rgba(255, 255, 255, 0.08);\n\t\t\t\tbox-shadow: 0px 0px 4px rgba(0, 0, 0, 0.04), 0px 8px 16px rgba(0, 0, 0, 0.08), inset 0 0 0 1px rgba(255,255,255,.08);\n\t\t\t\tbackdrop-filter: blur(6px);\n\t\t\t\tborder-radius: 8px;\n\n\t\t\t\t.field-type-icon {\n\t\t\t\t\tborder: none;\n\t\t\t\t\tbackground: none;\n\t\t\t\t\twidth: 24px;\n\t\t\t\t\topacity: .8;\n\n\t\t\t\t\t&::before {\n\t\t\t\t\t\tbackground-color: #fff;\n\t\t\t\t\t\twidth: 20px;\n\t\t\t\t\t\theight: 20px;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t@media screen and (max-width: 1200px) {\n\t\t\t\t\t\t&::before { width: 18px; height: 18px; }\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\n\t\t\t\t.pro-feature-blocks::before {\n\t\t\t\t\t-webkit-mask-image: url(\"../../images/icons/icon-extended-menu.svg\");\n\t\t\t\t\tmask-image: url(\"../../images/icons/icon-extended-menu.svg\");\n\t\t\t\t}\n\n\t\t\t\t.pro-feature-options-pages::before {\n\t\t\t\t\t-webkit-mask-image: url(\"../../images/icons/icon-settings.svg\");\n\t\t\t\t\tmask-image: url(\"../../images/icons/icon-settings.svg\");\n\t\t\t\t}\n\n\t\t\t\t.field-type-label {\n\t\t\t\t\tmargin-top: 4px;\n\t\t\t\t\tfont-size: 13px;\n\t\t\t\t\tfont-weight: 300;\n\t\t\t\t\ttext-align: center;\n\t\t\t\t\tcolor: #fff;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t@media screen and (max-width: 1200px) {\n\t\t\t\tflex-direction: column;\n\t\t\t\tgap: 8px;\n\t\t\t\twidth: 288px;\n\n\t\t\t\t.acf-field-group-pro-feature {\n\t\t\t\t\twidth: 100%;\n\t\t\t\t\theight: 40px;\n\t\t\t\t\tflex-direction: row;\n\t\t\t\t\tjustify-content: unset;\n\t\t\t\t\tgap: 8px;\n\n\n\t\t\t\t\t.field-type-icon {\n\t\t\t\t\t\tposition: initial;\n\t\t\t\t\t\tmargin-left: 16px;\n\t\t\t\t\t}\n\n\t\t\t\t\t.field-type-label {\n\t\t\t\t\t\tmargin-top: 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t@media screen and (max-width: 768px) {\n\t\t\t\tgap: 0;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: auto;\n\t\t\t\tmargin-bottom: 16px;\n\t\t\t\tflex-direction: unset;\n\t\t\t\tflex-wrap: wrap;\n\n\t\t\t\t.acf-field-group-pro-feature {\n\t\t\t\t\tflex: 1 0 50%;\n\t\t\t\t\tmargin-bottom: 8px;\n\t\t\t\t\twidth: auto;\n\t\t\t\t\theight: auto;\n\t\t\t\t\tjustify-content: center;\n\t\t\t\t\tbackground: none;\n\t\t\t\t\tbox-shadow: none;\n\t\t\t\t\tbackdrop-filter: none;\n\t\t\t\t\t\n\t\t\t\t\t.field-type-label {\n\t\t\t\t\t\tmargin-left: 2px;\n\t\t\t\t\t}\n\n\t\t\t\t\t.field-type-icon {\n\t\t\t\t\t\tposition: initial;\n\t\t\t\t\t\tmargin-left: 0;\n\n\t\t\t\t\t\t&:before {\n\t\t\t\t\t\t\theight: 16px;\n\t\t\t\t\t\t\twidth: 16px;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t.field-type-label {\n\t\t\t\t\t\tfont-size: 12px;\n\t\t\t\t\t\tmargin-top: 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t}\n\n\th1 {\n\t\tmargin: {\n\t\t\ttop: 0;\n\t\t\tbottom: 4px;\n\t\t};\n\t\tpadding: {\n\t\t\ttop: 0;\n\t\t\tbottom: 0;\n\t\t};\n\t\t@extend .acf-h1;\n\t\tfont-weight: bold;\n\t\tcolor: $gray-50;\n\n\t\t.acf-icon {\n\t\t\tmargin: {\n\t\t\t\tright: 8px;\n\t\t\t};\n\t\t}\n\n\t}\n\n\t// Upsell block btn\n\t.acf-btn {\n\t\tdisplay: inline-flex;\n\t\tbackground-color: rgba(#fff,.1);\n\t\tborder: none;\n\t\tbox-shadow: 0px 0px 4px rgba(0, 0, 0, 0.04), 0px 4px 8px rgba(0, 0, 0, 0.06), inset 0 0 0 1px rgba(255,255,255,.16);\n\t\tbackdrop-filter: blur(6px);\n\t\tpadding: 8px 24px;\n\t\theight: 48px;\n\n\t\t&:hover {\n\t\t\tbackground-color: rgba(#fff,.2);\n\t\t}\n\n\t\t.acf-icon {\n\t\t\tmargin: {\n\t\t\t\tright: -2px;\n\t\t\t\tleft: 6px;\n\t\t\t};\n\t\t}\n\n\t\t&.acf-pro-features-upgrade {\n\t\t\tbackground: $gradient-pro;\n\t\t\tbackground-size: 160% 80%;\n\t\t\tbackground-position: 100% 0;\n\t\t\tbox-shadow: 0px 0px 4px rgba(0, 0, 0, 0.04), 0px 4px 8px rgba(0, 0, 0, 0.06), inset 0 0 0 1px rgba(255,255,255,.16);\n\t\t\tborder-radius: 6px;\n\t\t\ttransition: background-position .5s;\n\t\t\t\n\t\t\t&:hover {\n\t\t\t\tbackground-position: 0 0;\n\t\t\t}\n\t\t}\n\t}\n\n\t.acf-field-group-pro-features-footer-wrap {\n\t\theight: 48px;\n\t\tbackground: rgba(16, 24, 40, 0.4);\n\t\tbackdrop-filter: blur(6px);\n\t\tborder-top: 1px solid rgba(255, 255, 255, 0.08);\n\t\tborder-bottom-left-radius: 8px;\n\t\tborder-bottom-right-radius: 8px;\n\t\tcolor: $gray-400;\n\t\tfont-size: 13px;\n\t\tfont-weight: 300;\n\t\tpadding: 0 35px;\n\n\t\t.acf-field-group-pro-features-footer {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: space-between;\n\t\t\tmax-width: 950px;\n\t\t\theight: 48px;\n\t\t\tmargin: 0 auto;\n\t\t}\n\n\t\t.acf-field-group-pro-features-wpengine-logo {\n\t\t\theight: 16px;\n\t\t\tvertical-align: middle;\n\t\t\tmargin-top: -2px;\n\t\t\tmargin-left: 3px;\n\t\t}\n\n\t\ta {\n\t\t\tcolor: $gray-400;\n\t\t\ttext-decoration: none;\n\t\t\t\n\t\t\t&:hover {\n\t\t\t\tcolor: $gray-300;\n\t\t\t}\n\t\t\t\n\t\t\t.acf-icon {\n\t\t\t\twidth: 18px;\n\t\t\t\theight: 18px;\n\t\t\t\tmargin-left: 4px;\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\t.acf-more-tools-from-wpengine {\n\t\t\t\n\t\t\ta {\n\t\t\t\tdisplay: inline-flex;\n\t\t\t\talign-items: center;\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\t@media screen and (max-width: 768px) {\n\t\t\theight: 70px;\n\t\t\tfont-size: 12px;\n\n\t\t\t.acf-more-tools-from-wpengine {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\n\t\t\t.acf-field-group-pro-features-footer {\n\t\t\t\tjustify-content: center;\n\t\t\t\theight: 70px;\n\n\t\t\t\t.acf-field-group-pro-features-wpengine-logo {\n\t\t\t\t\tclear: both;\n\t\t\t\t\tmargin: 6px auto 0 auto;\n\t\t\t\t\tdisplay: block;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n}\n\n.acf-no-field-groups,\n.acf-no-post-types,\n.acf-no-taxonomies {\n\t#tmpl-acf-field-group-pro-features {\n\t\tmargin-top: 0;\n\t}\n}\n","/*--------------------------------------------------------------------------------------------\n*\n*\tPost type & taxonomies styles\n*\n*--------------------------------------------------------------------------------------------*/\n\n.acf-admin-single-post-type,\n.acf-admin-single-taxonomy {\n\tlabel[for=\"acf-basic-settings-hide\"] {\n\t\tdisplay: none;\n\t}\n\tfieldset.columns-prefs {\n\t\tdisplay: none;\n\t}\n\n\t#acf-basic-settings {\n\t\t.postbox-header {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\n\t.postbox-container,\n\t.notice {\n\t\tmax-width: $max-width;\n\t\tclear: left;\n\t}\n\n\t#post-body-content {\n\t\tmargin: 0;\n\t}\n\n\t// Main postbox\n\t.postbox,\n\t.acf-box {\n\t\t.inside {\n\t\t\tpadding: {\n\t\t\t\ttop: 48px;\n\t\t\t\tright: 48px;\n\t\t\t\tbottom: 48px;\n\t\t\t\tleft: 48px;\n\t\t\t}\n\t\t}\n\t}\n\n\t#acf-advanced-settings.postbox {\n\t\t.inside {\n\t\t\tpadding: {\n\t\t\t\tbottom: 24px;\n\t\t\t}\n\t\t}\n\t}\n\n\t.postbox-container .meta-box-sortables #acf-basic-settings .inside {\n\t\tborder: none;\n\t}\n\n\t// Input wrap\n\t.acf-input-wrap {\n\t\toverflow: visible;\n\t}\n\n\t// Field & label margins & paddings\n\t.acf-field {\n\t\tmargin: {\n\t\t\ttop: 0;\n\t\t\tright: 0;\n\t\t\tbottom: 24px;\n\t\t\tleft: 0;\n\t\t}\n\n\t\t.acf-label {\n\t\t\tmargin: {\n\t\t\t\tbottom: 6px;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Specific field overrides\n\t.acf-field-text,\n\t.acf-field-textarea,\n\t.acf-field-select {\n\t\tmax-width: 600px;\n\t}\n\n\t.acf-field-true-false {\n\t\tmax-width: 700px;\n\t}\n\n\t.acf-field-supports {\n\t\tmax-width: 600px;\n\n\t\t.acf-label {\n\t\t\tdisplay: block;\n\n\t\t\t.description {\n\t\t\t\tmargin: {\n\t\t\t\t\ttop: 4px;\n\t\t\t\t\tbottom: 12px;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t.acf_post_type_supports {\n\t\t\tdisplay: flex;\n\t\t\tflex-wrap: wrap;\n\t\t\tjustify-content: flex-start;\n\t\t\talign-content: flex-start;\n\t\t\talign-items: flex-start;\n\n\t\t\t&:focus-within {\n\t\t\t\tborder-color: transparent;\n\t\t\t}\n\n\t\t\tli {\n\t\t\t\tflex: 0 0 25%;\n\n\t\t\t\ta.button {\n\t\t\t\t\tbackground-color: transparent;\n\t\t\t\t\tpadding: 0;\n\t\t\t\t\tborder: 0;\n\t\t\t\t\theight: auto;\n\t\t\t\t\tmin-height: auto;\n\t\t\t\t\tmargin-top: 0;\n\t\t\t\t\tborder-radius: 0;\n\t\t\t\t\tline-height: 22px;\n\t\t\t\t\t&:before {\n\t\t\t\t\t\tcontent: '';\n\t\t\t\t\t\t$icon-size: 16px;\n\t\t\t\t\t\tmargin-right: 6px;\n\t\t\t\t\t\tdisplay: inline-flex;\n\t\t\t\t\t\twidth: $icon-size;\n\t\t\t\t\t\theight: $icon-size;\n\t\t\t\t\t\tbackground-color: currentColor;\n\t\t\t\t\t\tborder: none;\n\t\t\t\t\t\tborder-radius: 0;\n\t\t\t\t\t\t-webkit-mask-size: contain;\n\t\t\t\t\t\tmask-size: contain;\n\t\t\t\t\t\t-webkit-mask-repeat: no-repeat;\n\t\t\t\t\t\tmask-repeat: no-repeat;\n\t\t\t\t\t\t-webkit-mask-position: center;\n\t\t\t\t\t\tmask-position: center;\n\t\t\t\t\t\ttext-indent: 500%;\n\t\t\t\t\t\twhite-space: nowrap;\n\t\t\t\t\t\toverflow: hidden;\n\t\t\t\t\t\t-webkit-mask-image: url(\"../../images/icons/icon-add.svg\");\n\t\t\t\t\t\tmask-image: url(\"../../images/icons/icon-add.svg\");\n\t\t\t\t\t}\n\t\t\t\t\t&:hover {\n\t\t\t\t\t\tcolor: $blue-700;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tinput[type=text] {\n\t\t\t\t\twidth: calc(100% - 36px);\n\t\t\t\t\tpadding: 0;\n\t\t\t\t\tbox-shadow: none;\n\t\t\t\t\tborder: none;\n\t\t\t\t\tborder-bottom: 1px solid $gray-300;\n\t\t\t\t\tborder-radius: 0;\n\t\t\t\t\theight: auto;\n\t\t\t\t\tmargin: 0;\n\t\t\t\t\tmin-height: auto;\n\t\t\t\t\t&:focus {\n\t\t\t\t\t\toutline: none;\n\t\t\t\t\t\tborder-bottom-color: $blue-400;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Dividers\n\t.acf-field-seperator {\n\t\tmargin: {\n\t\t\ttop: 40px;\n\t\t\tbottom: 40px;\n\t\t}\n\t\tborder: {\n\t\t\ttop: 1px solid $gray-200;\n\t\t\tright: none;\n\t\t\tbottom: none;\n\t\t\tleft: none;\n\t\t}\n\t}\n\n\t// Remove margin from last fields in postbox\n\t.acf-field-advanced-configuration {\n\t\tmargin: {\n\t\t\tbottom: 0;\n\t\t}\n\t}\n\n\t// Tabbed navigation & labels utility bar\n\t.postbox-container .acf-tab-wrap,\n\t.acf-regenerate-labels-bar {\n\t\tposition: relative;\n\t\ttop: -48px;\n\t\tleft: -48px;\n\t\twidth: calc(100% + 96px);\n\t}\n\n\t// Labels utility bar\n\t.acf-regenerate-labels-bar {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: right;\n\t\tmin-height: 48px;\n\t\tmargin: {\n\t\t\tbottom: 0;\n\t\t}\n\t\tpadding: {\n\t\t\tright: 16px;\n\t\t\tleft: 16px;\n\t\t}\n\t\tgap: 8px;\n\t\tborder-bottom: {\n\t\t\twidth: 1px;\n\t\t\tstyle: solid;\n\t\t\tcolor: $gray-100;\n\t\t}\n\t}\n\n\t// Labels utility bar help/tip icon\n\t.acf-labels-tip {\n\t\tdisplay: inline-flex;\n\t\talign-items: center;\n\t\tmin-height: 24px;\n\t\tmargin: {\n\t\t\tright: 8px;\n\t\t}\n\t\tpadding: {\n\t\t\tleft: 16px;\n\t\t}\n\t\tborder-left: {\n\t\t\twidth: 1px;\n\t\t\tstyle: solid;\n\t\t\tcolor: $gray-200;\n\t\t}\n\n\t\t.acf-icon {\n\t\t\tdisplay: inline-flex;\n\t\t\talign-items: center;\n\t\t\t$icon-size: 16px;\n\t\t\twidth: $icon-size;\n\t\t\theight: $icon-size;\n\t\t\t-webkit-mask-size: $icon-size;\n\t\t\tmask-size: $icon-size;\n\t\t\tbackground-color: $gray-400;\n\t\t}\n\t}\n\n\t// Select2 for default values in permalink rewrite\n\t.acf-select2-default-pill {\n\t\tborder-radius: 100px;\n\t\tmin-height: 20px;\n\t\tpadding: {\n\t\t\ttop: 2px;\n\t\t\tbottom: 2px;\n\t\t\tleft: 8px;\n\t\t\tright: 8px;\n\t\t}\n\t\tfont-size: 11px;\n\t\tmargin-left: 6px;\n\t\tbackground-color: $gray-200;\n\t\tcolor: $gray-500;\n\t}\n}\n","/*---------------------------------------------------------------------------------------------\n*\n* Field picker modal\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-modal.acf-browse-fields-modal {\n\twidth: 1120px;\n\theight: 664px;\n\ttop: 50%;\n\tright: auto;\n\tbottom: auto;\n\tleft: 50%;\n\ttransform: translate(-50%, -50%);\n\tdisplay: flex;\n\tflex-direction: row;\n\tborder-radius: $radius-xl;\n\tbox-shadow: 0px 0px 4px rgba(0, 0, 0, 0.04),\n\t\t0px 8px 16px rgba(0, 0, 0, 0.08);\n\toverflow: hidden;\n\n\t.acf-field-picker {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tflex-grow: 1;\n\t\twidth: 760px;\n\t\tbackground: #fff;\n\n\t\t.acf-modal-title,\n\t\t.acf-modal-content,\n\t\t.acf-modal-toolbar {\n\t\t\tposition: relative;\n\t\t}\n\n\t\t.acf-modal-title {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: row;\n\t\t\tjustify-content: space-between;\n\t\t\talign-items: center;\n\t\t\tbackground: $gray-50;\n\t\t\tborder: none;\n\t\t\tpadding: 35px 32px;\n\n\t\t\t.acf-search-field-types-wrap {\n\t\t\t\tposition: relative;\n\n\t\t\t\t&:after {\n\t\t\t\t\tcontent: \"\";\n\t\t\t\t\tdisplay: block;\n\t\t\t\t\tposition: absolute;\n\t\t\t\t\ttop: 11px;\n\t\t\t\t\tleft: 10px;\n\t\t\t\t\t$icon-size: 18px;\n\t\t\t\t\twidth: $icon-size;\n\t\t\t\t\theight: $icon-size;\n\t\t\t\t\t-webkit-mask-image: url(\"../../images/icons/icon-search.svg\");\n\t\t\t\t\tmask-image: url(\"../../images/icons/icon-search.svg\");\n\t\t\t\t\tbackground-color: $gray-400;\n\t\t\t\t\tborder: none;\n\t\t\t\t\tborder-radius: 0;\n\t\t\t\t\t-webkit-mask-size: contain;\n\t\t\t\t\tmask-size: contain;\n\t\t\t\t\t-webkit-mask-repeat: no-repeat;\n\t\t\t\t\tmask-repeat: no-repeat;\n\t\t\t\t\t-webkit-mask-position: center;\n\t\t\t\t\tmask-position: center;\n\t\t\t\t\ttext-indent: 500%;\n\t\t\t\t\twhite-space: nowrap;\n\t\t\t\t\toverflow: hidden;\n\t\t\t\t}\n\n\t\t\t\tinput {\n\t\t\t\t\twidth: 280px;\n\t\t\t\t\theight: 40px;\n\t\t\t\t\tmargin: 0;\n\t\t\t\t\tpadding-left: 32px;\n\t\t\t\t\tbox-shadow: none;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t.acf-modal-content {\n\t\t\ttop: auto;\n\t\t\tbottom: auto;\n\t\t\tpadding: 0;\n\t\t\theight: 100%;\n\n\t\t\t.acf-tab-group {\n\t\t\t\tpadding-left: 32px;\n\t\t\t}\n\n\t\t\t.acf-field-types-tab {\n\t\t\t\tdisplay: flex;\n\t\t\t}\n\n\t\t\t.acf-field-types-tab,\n\t\t\t.acf-field-type-search-results {\n\t\t\t\tflex-direction: row;\n\t\t\t\tflex-wrap: wrap;\n\t\t\t\tgap: 24px;\n\t\t\t\tpadding: 32px;\n\n\t\t\t\t.acf-field-type {\n\t\t\t\t\tposition: relative;\n\t\t\t\t\tdisplay: flex;\n\t\t\t\t\tflex-direction: column;\n\t\t\t\t\tjustify-content: center;\n\t\t\t\t\talign-items: center;\n\t\t\t\t\tisolation: isolate;\n\t\t\t\t\twidth: 120px;\n\t\t\t\t\theight: 120px;\n\t\t\t\t\tbackground: $gray-50;\n\t\t\t\t\tborder: 1px solid $gray-200;\n\t\t\t\t\tborder-radius: 8px;\n\t\t\t\t\tbox-sizing: border-box;\n\t\t\t\t\tcolor: $gray-800;\n\t\t\t\t\ttext-decoration: none;\n\n\t\t\t\t\t&:hover,\n\t\t\t\t\t&:active,\n\t\t\t\t\t&.selected {\n\t\t\t\t\t\tbackground: $blue-50;\n\t\t\t\t\t\tborder: 1px solid $blue-400;\n\t\t\t\t\t\tbox-shadow: inset 0 0 0 1px $blue-400;\n\t\t\t\t\t}\n\n\t\t\t\t\t.field-type-icon {\n\t\t\t\t\t\tborder: none;\n\t\t\t\t\t\tbackground: none;\n\t\t\t\t\t\ttop: 0;\n\n\t\t\t\t\t\t&:before {\n\t\t\t\t\t\t\twidth: 22px;\n\t\t\t\t\t\t\theight: 22px;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t.field-type-label {\n\t\t\t\t\t\tmargin-top: 12px;\n\t\t\t\t\t\t@extend .p5;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t.field-type-requires-pro {\n\t\t\t\t\tdisplay: flex;\n\t\t\t\t\tjustify-content: center;\n\t\t\t\t\talign-items: center;\n\t\t\t\t\tposition: absolute;\n\t\t\t\t\ttop: -10px;\n\t\t\t\t\tright: -10px;\n\t\t\t\t\theight: 21px;\n\t\t\t\t\tcolor: white;\n\t\t\t\t\tbackground: $gradient-pro;\n\t\t\t\t\tbackground-size: 140% 20%;\n\t\t\t\t\tbackground-position: 100% 0;\n\t\t\t\t\tborder-radius: 100px;\n\t\t\t\t\tfont-size: 11px;\n\t\t\t\t\tpadding: {\n\t\t\t\t\t\tright: 6px;\n\t\t\t\t\t\tleft: 6px;\n\t\t\t\t\t}\n\t\t\t\t\ti {\n\t\t\t\t\t\twidth: 12px;\n\t\t\t\t\t\theight: 12px;\n\t\t\t\t\t\tmargin-right: 2px;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t.acf-modal-toolbar {\n\t\t\tdisplay: flex;\n\t\t\talign-items: flex-start;\n\t\t\tjustify-content: space-between;\n\t\t\theight: auto;\n\t\t\tmin-height: 72px;\n\t\t\tpadding: {\n\t\t\t\ttop: 0;\n\t\t\t\tright: 32px;\n\t\t\t\tbottom: 0;\n\t\t\t\tleft: 32px;\n\t\t\t}\n\t\t\tmargin: 0;\n\t\t\tborder: none;\n\n\t\t\t.acf-select-field,\n\t\t\t.acf-btn-pro {\n\t\t\t\tmin-width: 160px;\n\t\t\t\tjustify-content: center;\n\t\t\t}\n\n\t\t\t.acf-insert-field-label {\n\t\t\t\tmin-width: 280px;\n\t\t\t\tbox-shadow: none;\n\t\t\t}\n\n\t\t\t.acf-field-picker-actions {\n\t\t\t\tdisplay: flex;\n\t\t\t\tgap: 8px;\n\t\t\t}\n\t\t}\n\t}\n\n\t.acf-field-type-preview {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\twidth: 360px;\n\t\tbackground-color: $gray-50;\n\t\tbackground-image: url(\"../../images/field-preview-grid.png\");\n\t\tbackground-size: 740px;\n\t\tbackground-repeat: no-repeat;\n\t\tbackground-position: center bottom;\n\t\tborder-left: 1px solid $gray-200;\n\t\tbox-sizing: border-box;\n\t\tpadding: 32px;\n\n\t\t.field-type-desc {\n\t\t\tmargin: 0;\n\t\t\tpadding: 0;\n\t\t\tcolor: $gray-500;\n\t\t}\n\n\t\t.field-type-preview-container {\n\t\t\tdisplay: inline-flex;\n\t\t\tjustify-content: center;\n\t\t\twidth: 100%;\n\t\t\tmargin: {\n\t\t\t\ttop: 24px;\n\t\t\t}\n\t\t\tpadding: {\n\t\t\t\ttop: 32px;\n\t\t\t\tbottom: 32px;\n\t\t\t}\n\t\t\tbackground-color: rgba(#fff, 0.64);\n\t\t\tborder-radius: $radius-lg;\n\t\t\tbox-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.04),\n\t\t\t\t0px 8px 24px rgba(0, 0, 0, 0.04);\n\t\t}\n\n\t\t.field-type-image {\n\t\t\tmax-width: 232px;\n\t\t}\n\n\t\t.field-type-info {\n\t\t\tflex-grow: 1;\n\n\t\t\t.field-type-name {\n\t\t\t\tfont-size: 21px;\n\t\t\t\tmargin: {\n\t\t\t\t\ttop: 0;\n\t\t\t\t\tright: 0;\n\t\t\t\t\tbottom: 16px;\n\t\t\t\t\tleft: 0;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t.field-type-upgrade-to-unlock {\n\t\t\t\tdisplay: inline-flex;\n\t\t\t\tjustify-items: center;\n\t\t\t\talign-items: center;\n\t\t\t\tmin-height: 24px;\n\t\t\t\tmargin: {\n\t\t\t\t\tbottom: 12px;\n\t\t\t\t}\n\t\t\t\tpadding: {\n\t\t\t\t\tright: 8px;\n\t\t\t\t\tleft: 8px;\n\t\t\t\t}\n\t\t\t\tbackground: $gradient-pro;\n\t\t\t\tbackground-size: 140% 20%;\n\t\t\t\tbackground-position: 100% 0;\n\t\t\t\tborder-radius: 100px;\n\t\t\t\tcolor: white;\n\t\t\t\ttext-decoration: none;\n\t\t\t\tfont-size: 11px;\n\n\t\t\t\ti.acf-icon {\n\t\t\t\t\twidth: 14px;\n\t\t\t\t\theight: 14px;\n\t\t\t\t\tmargin: {\n\t\t\t\t\t\tright: 4px;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t.field-type-links {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tgap: 24px;\n\t\t\tmin-height: 40px;\n\n\t\t\t.acf-icon {\n\t\t\t\t$icon-size: 18px;\n\t\t\t\twidth: $icon-size;\n\t\t\t\theight: $icon-size;\n\t\t\t}\n\n\t\t\t&:before {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\n\t\t\ta {\n\t\t\t\tdisplay: flex;\n\t\t\t\tgap: 6px;\n\t\t\t\ttext-decoration: none;\n\n\t\t\t\t&:hover {\n\t\t\t\t\ttext-decoration: underline;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t.acf-field-type-search-results,\n\t.acf-field-type-search-no-results {\n\t\tdisplay: none;\n\t}\n\n\t&.is-searching {\n\t\t.acf-tab-wrap,\n\t\t.acf-field-types-tab,\n\t\t.acf-field-type-search-no-results {\n\t\t\tdisplay: none !important;\n\t\t}\n\n\t\t.acf-field-type-search-results {\n\t\t\tdisplay: flex;\n\t\t}\n\t}\n\n\t&.no-results-found {\n\t\t.acf-tab-wrap,\n\t\t.acf-field-types-tab,\n\t\t.acf-field-type-search-results,\n\t\t.field-type-info,\n\t\t.field-type-links,\n\t\t.acf-field-picker-toolbar {\n\t\t\tdisplay: none !important;\n\t\t}\n\n\t\t.acf-modal-title {\n\t\t\tborder-bottom: {\n\t\t\t\twidth: 1px;\n\t\t\t\tstyle: solid;\n\t\t\t\tcolor: $gray-200;\n\t\t\t}\n\t\t}\n\n\t\t.acf-field-type-search-no-results {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\tjustify-content: center;\n\t\t\talign-items: center;\n\t\t\theight: 100%;\n\t\t\tgap: 6px;\n\n\t\t\timg {\n\t\t\t\tmargin-bottom: 19px;\n\t\t\t}\n\n\t\t\tp {\n\t\t\t\tmargin: 0;\n\n\t\t\t\t&.acf-no-results-text {\n\t\t\t\t\tdisplay: flex;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t.acf-invalid-search-term {\n\t\t\t\tmax-width: 200px;\n\t\t\t\toverflow: hidden;\n\t\t\t\ttext-overflow: ellipsis;\n\t\t\t\tdisplay: inline-block;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Hide browse fields button for smaller screen sizes\n*\n*---------------------------------------------------------------------------------------------*/\n@media only screen and (max-width: 1080px) {\n\t.acf-btn.browse-fields {\n\t\tdisplay: none;\n\t}\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/assets/build/css/acf-global.min.css b/assets/build/css/acf-global.min.css new file mode 100644 index 0000000..2562e13 --- /dev/null +++ b/assets/build/css/acf-global.min.css @@ -0,0 +1 @@ +.acf-hl{padding:0;margin:0;list-style:none;display:block;position:relative}.acf-hl>li{float:left;display:block;margin:0;padding:0}.acf-hl>li.acf-fr{float:right}.acf-hl:before,.acf-hl:after,.acf-bl:before,.acf-bl:after,.acf-cf:before,.acf-cf:after{content:"";display:block;line-height:0}.acf-hl:after,.acf-bl:after,.acf-cf:after{clear:both}.acf-bl{padding:0;margin:0;list-style:none;display:block;position:relative}.acf-bl>li{display:block;margin:0;padding:0;float:none}.acf-hidden{display:none !important}.acf-empty{display:table-cell !important}.acf-empty *{display:none !important}.acf-fl{float:left}.acf-fr{float:right}.acf-fn{float:none}.acf-al{text-align:left}.acf-ar{text-align:right}.acf-ac{text-align:center}.acf-loading,.acf-spinner{display:inline-block;height:20px;width:20px;vertical-align:text-top;background:rgba(0,0,0,0) url(../../images/spinner.gif) no-repeat 50% 50%}.acf-spinner{display:none}.acf-spinner.is-active{display:inline-block}.spinner.is-active{display:inline-block}.acf-required{color:red}.acf-button,.acf-tab-button{pointer-events:auto !important}.acf-soh .acf-soh-target{-webkit-transition:opacity .25s 0s ease-in-out,visibility 0s linear .25s;-moz-transition:opacity .25s 0s ease-in-out,visibility 0s linear .25s;-o-transition:opacity .25s 0s ease-in-out,visibility 0s linear .25s;transition:opacity .25s 0s ease-in-out,visibility 0s linear .25s;visibility:hidden;opacity:0}.acf-soh:hover .acf-soh-target{-webkit-transition-delay:0s;-moz-transition-delay:0s;-o-transition-delay:0s;transition-delay:0s;visibility:visible;opacity:1}.show-if-value{display:none}.hide-if-value{display:block}.has-value .show-if-value{display:block}.has-value .hide-if-value{display:none}.select2-search-choice-close{-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none}.acf-tooltip{background:#1d2939;border-radius:6px;color:#d0d5dd;padding-top:8px;padding-right:12px;padding-bottom:10px;padding-left:12px;position:absolute;z-index:900000;max-width:280px;box-shadow:0px 12px 16px -4px rgba(16,24,40,.08),0px 4px 6px -2px rgba(16,24,40,.03)}.acf-tooltip:before{border:solid;border-color:rgba(0,0,0,0);border-width:6px;content:"";position:absolute}.acf-tooltip.top{margin-top:-8px}.acf-tooltip.top:before{top:100%;left:50%;margin-left:-6px;border-top-color:#2f353e;border-bottom-width:0}.acf-tooltip.right{margin-left:8px}.acf-tooltip.right:before{top:50%;margin-top:-6px;right:100%;border-right-color:#2f353e;border-left-width:0}.acf-tooltip.bottom{margin-top:8px}.acf-tooltip.bottom:before{bottom:100%;left:50%;margin-left:-6px;border-bottom-color:#2f353e;border-top-width:0}.acf-tooltip.left{margin-left:-8px}.acf-tooltip.left:before{top:50%;margin-top:-6px;left:100%;border-left-color:#2f353e;border-right-width:0}.acf-tooltip .acf-overlay{z-index:-1}.acf-tooltip.-confirm{z-index:900001}.acf-tooltip.-confirm a{text-decoration:none;color:#9ea3a8}.acf-tooltip.-confirm a:hover{text-decoration:underline}.acf-tooltip.-confirm a[data-event=confirm]{color:#f55e4f}.acf-overlay{position:fixed;top:0;bottom:0;left:0;right:0;cursor:default}.acf-tooltip-target{position:relative;z-index:900002}.acf-loading-overlay{position:absolute;top:0;bottom:0;left:0;right:0;cursor:default;z-index:99;background:rgba(249,249,249,.5)}.acf-loading-overlay i{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.acf-icon{display:inline-block;height:28px;width:28px;border:rgba(0,0,0,0) solid 1px;border-radius:100%;font-size:20px;line-height:21px;text-align:center;text-decoration:none;vertical-align:top;box-sizing:border-box}.acf-icon:before{font-family:dashicons;display:inline-block;line-height:1;font-weight:400;font-style:normal;speak:none;text-decoration:inherit;text-transform:none;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:1em;height:1em;vertical-align:middle;text-align:center}.acf-icon.-plus:before{content:""}.acf-icon.-minus:before{content:""}.acf-icon.-cancel:before{content:"";margin:-1px 0 0 -1px}.acf-icon.-pencil:before{content:""}.acf-icon.-location:before{content:""}.acf-icon.-up:before{content:"";margin-top:-0.1em}.acf-icon.-down:before{content:"";margin-top:.1em}.acf-icon.-left:before{content:"";margin-left:-0.1em}.acf-icon.-right:before{content:"";margin-left:.1em}.acf-icon.-sync:before{content:""}.acf-icon.-globe:before{content:"";margin-top:.1em;margin-left:.1em}.acf-icon.-picture:before{content:""}.acf-icon.-check:before{content:"";margin-left:-0.1em}.acf-icon.-dot-3:before{content:"";margin-top:-0.1em}.acf-icon.-arrow-combo:before{content:""}.acf-icon.-arrow-up:before{content:"";margin-left:-0.1em}.acf-icon.-arrow-down:before{content:"";margin-left:-0.1em}.acf-icon.-search:before{content:""}.acf-icon.-link-ext:before{content:""}.acf-icon.-duplicate{position:relative}.acf-icon.-duplicate:before,.acf-icon.-duplicate:after{content:"";display:block;box-sizing:border-box;width:46%;height:46%;position:absolute;top:33%;left:23%}.acf-icon.-duplicate:before{margin:-1px 0 0 1px;box-shadow:2px -2px 0px 0px currentColor}.acf-icon.-duplicate:after{border:solid 2px currentColor}.acf-icon.-trash{position:relative}.acf-icon.-trash:before,.acf-icon.-trash:after{content:"";display:block;box-sizing:border-box;width:46%;height:46%;position:absolute;top:33%;left:23%}.acf-icon.-trash:before{margin:-1px 0 0 1px;box-shadow:2px -2px 0px 0px currentColor}.acf-icon.-trash:after{border:solid 2px currentColor}.acf-icon.-collapse:before{content:"";margin-left:-0.1em}.-collapsed .acf-icon.-collapse:before{content:"";margin-left:-0.1em}span.acf-icon{color:#555d66;border-color:#b5bcc2;background-color:#fff}a.acf-icon{color:#555d66;border-color:#b5bcc2;background-color:#fff;position:relative;transition:none;cursor:pointer}a.acf-icon:hover{background:#f3f5f6;border-color:#0071a1;color:#0071a1}a.acf-icon.-minus:hover,a.acf-icon.-cancel:hover{background:#f7efef;border-color:#a10000;color:#dc3232}a.acf-icon:active,a.acf-icon:focus{outline:none;box-shadow:none}.acf-icon.-clear{border-color:rgba(0,0,0,0);background:rgba(0,0,0,0);color:#444}.acf-icon.light{border-color:rgba(0,0,0,0);background:#f5f5f5;color:#23282d}.acf-icon.dark{border-color:rgba(0,0,0,0) !important;background:#23282d;color:#eee}a.acf-icon.dark:hover{background:#191e23;color:#00b9eb}a.acf-icon.dark.-minus:hover,a.acf-icon.dark.-cancel:hover{color:#d54e21}.acf-icon.grey{border-color:rgba(0,0,0,0) !important;background:#b4b9be;color:#fff !important}.acf-icon.grey:hover{background:#00a0d2;color:#fff}.acf-icon.grey.-minus:hover,.acf-icon.grey.-cancel:hover{background:#32373c}.acf-icon.small,.acf-icon.-small{width:20px;height:20px;line-height:14px;font-size:14px}.acf-icon.small.-duplicate:before,.acf-icon.small.-duplicate:after,.acf-icon.-small.-duplicate:before,.acf-icon.-small.-duplicate:after{opacity:.8}.acf-box{background:#fff;border:1px solid #ccd0d4;position:relative;box-shadow:0 1px 1px rgba(0,0,0,.04)}.acf-box .title{border-bottom:1px solid #ccd0d4;margin:0;padding:15px}.acf-box .title h3{display:flex;align-items:center;font-size:14px;line-height:1em;margin:0;padding:0}.acf-box .inner{padding:15px}.acf-box h2{color:#333;font-size:26px;line-height:1.25em;margin:.25em 0 .75em;padding:0}.acf-box h3{margin:1.5em 0 0}.acf-box p{margin-top:.5em}.acf-box a{text-decoration:none}.acf-box i.dashicons-external{margin-top:-1px}.acf-box .footer{border-top:1px solid #ccd0d4;padding:12px;font-size:13px;line-height:1.5}.acf-box .footer p{margin:0}.acf-admin-3-8 .acf-box{border-color:#e5e5e5}.acf-admin-3-8 .acf-box .title,.acf-admin-3-8 .acf-box .footer{border-color:#e5e5e5}.acf-notice{position:relative;display:block;color:#fff;margin:5px 0 15px;padding:3px 12px;background:#2a9bd9;border-left:#1f7db1 solid 3px}.acf-notice p{font-size:13px;line-height:1.5;margin:.5em 0;text-shadow:none;color:inherit}.acf-notice .acf-notice-dismiss{position:absolute;top:9px;right:12px;background:rgba(0,0,0,0) !important;color:inherit !important;border-color:#fff !important;opacity:.75}.acf-notice .acf-notice-dismiss:hover{opacity:1}.acf-notice.-dismiss{padding-right:40px}.acf-notice.-error{background:#d94f4f;border-color:#c92c2c}.acf-notice.-success{background:#49ad52;border-color:#3a8941}.acf-notice.-warning{background:#fd8d3b;border-color:#fc7009}.acf-table{border:#ccd0d4 solid 1px;background:#fff;border-spacing:0;border-radius:0;table-layout:auto;padding:0;margin:0;width:100%;clear:both;box-sizing:content-box}.acf-table>tbody>tr>th,.acf-table>tbody>tr>td,.acf-table>thead>tr>th,.acf-table>thead>tr>td{padding:8px;vertical-align:top;background:#fff;text-align:left;border-style:solid;font-weight:normal}.acf-table>tbody>tr>th,.acf-table>thead>tr>th{position:relative;color:#333}.acf-table>thead>tr>th{border-color:#d5d9dd;border-width:0 0 1px 1px}.acf-table>thead>tr>th:first-child{border-left-width:0}.acf-table>tbody>tr{z-index:1}.acf-table>tbody>tr>td{border-color:#eee;border-width:1px 0 0 1px}.acf-table>tbody>tr>td:first-child{border-left-width:0}.acf-table>tbody>tr:first-child>td{border-top-width:0}.acf-table.-clear{border:0 none}.acf-table.-clear>tbody>tr>td,.acf-table.-clear>tbody>tr>th,.acf-table.-clear>thead>tr>td,.acf-table.-clear>thead>tr>th{border:0 none;padding:4px}.acf-remove-element{-webkit-transition:all .25s ease-out;-moz-transition:all .25s ease-out;-o-transition:all .25s ease-out;transition:all .25s ease-out;transform:translate(50px, 0);opacity:0}.acf-fade-up{-webkit-transition:all .25s ease-out;-moz-transition:all .25s ease-out;-o-transition:all .25s ease-out;transition:all .25s ease-out;transform:translate(0, -10px);opacity:0}.acf-thead,.acf-tbody,.acf-tfoot{width:100%;padding:0;margin:0}.acf-thead>li,.acf-tbody>li,.acf-tfoot>li{box-sizing:border-box;padding-top:14px;font-size:12px;line-height:14px}.acf-thead{border-bottom:#ccd0d4 solid 1px;color:#23282d}.acf-thead>li{font-size:14px;line-height:1.4;font-weight:bold}.acf-admin-3-8 .acf-thead{border-color:#dfdfdf}.acf-tfoot{background:#f5f5f5;border-top:#d5d9dd solid 1px}.acf-settings-wrap #poststuff{padding-top:15px}.acf-settings-wrap .acf-box{margin:20px 0}.acf-settings-wrap table{margin:0}.acf-settings-wrap table .button{vertical-align:middle}#acf-popup{position:fixed;z-index:900000;top:0;left:0;right:0;bottom:0;text-align:center}#acf-popup .bg{position:absolute;top:0;left:0;right:0;bottom:0;z-index:0;background:rgba(0,0,0,.25)}#acf-popup:before{content:"";display:inline-block;height:100%;vertical-align:middle}#acf-popup .acf-popup-box{display:inline-block;vertical-align:middle;z-index:1;min-width:300px;min-height:160px;border-color:#aaa;box-shadow:0 5px 30px -5px rgba(0,0,0,.25);text-align:left}html[dir=rtl] #acf-popup .acf-popup-box{text-align:right}#acf-popup .acf-popup-box .title{min-height:15px;line-height:15px}#acf-popup .acf-popup-box .title .acf-icon{position:absolute;top:10px;right:10px}html[dir=rtl] #acf-popup .acf-popup-box .title .acf-icon{right:auto;left:10px}#acf-popup .acf-popup-box .inner{min-height:50px;padding:0;margin:15px}#acf-popup .acf-popup-box .loading{position:absolute;top:45px;left:0;right:0;bottom:0;z-index:2;background:rgba(0,0,0,.1);display:none}#acf-popup .acf-popup-box .loading i{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.acf-submit{margin-bottom:0;line-height:28px}.acf-submit span{float:right;color:#999}.acf-submit span.-error{color:#dd4232}.acf-submit .button{margin-right:5px}#acf-upgrade-notice{position:relative;background:#fff;padding:20px}#acf-upgrade-notice:after{display:block;clear:both;content:""}#acf-upgrade-notice .col-content{float:left;width:55%;padding-left:90px}#acf-upgrade-notice .notice-container{display:flex;justify-content:space-between;align-items:flex-start;align-content:flex-start}#acf-upgrade-notice .col-actions{float:right;text-align:center}#acf-upgrade-notice img{float:left;width:64px;height:64px;margin:0 0 0 -90px}#acf-upgrade-notice h2{display:inline-block;font-size:16px;margin:2px 0 6.5px}#acf-upgrade-notice p{padding:0;margin:0}#acf-upgrade-notice .button:before{margin-top:11px}@media screen and (max-width: 640px){#acf-upgrade-notice .col-content,#acf-upgrade-notice .col-actions{float:none;padding-left:90px;width:auto;text-align:left}}#acf-upgrade-notice:has(.notice-container)::before,#acf-upgrade-notice:has(.notice-container)::after{display:none}#acf-upgrade-notice:has(.notice-container){padding-left:20px !important}.acf-wrap h1{margin-top:0;padding-top:20px}.acf-wrap .about-text{margin-top:.5em;min-height:50px}.acf-wrap .about-headline-callout{font-size:2.4em;font-weight:300;line-height:1.3;margin:1.1em 0 .2em;text-align:center}.acf-wrap .feature-section{padding:40px 0}.acf-wrap .feature-section h2{margin-top:20px}.acf-wrap .changelog{list-style:disc;padding-left:15px}.acf-wrap .changelog li{margin:0 0 .75em}.acf-wrap .acf-three-col{display:flex;flex-wrap:wrap;justify-content:space-between}.acf-wrap .acf-three-col>div{flex:1;align-self:flex-start;min-width:31%;max-width:31%}@media screen and (max-width: 880px){.acf-wrap .acf-three-col>div{min-width:48%}}@media screen and (max-width: 640px){.acf-wrap .acf-three-col>div{min-width:100%}}.acf-wrap .acf-three-col h3 .badge{display:inline-block;vertical-align:top;border-radius:5px;background:#fc9700;color:#fff;font-weight:normal;font-size:12px;padding:2px 5px}.acf-wrap .acf-three-col img+h3{margin-top:.5em}.acf-hl[data-cols]{margin-left:-10px;margin-right:-10px}.acf-hl[data-cols]>li{padding:0 6px 0 10px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.acf-hl[data-cols="2"]>li{width:50%}.acf-hl[data-cols="3"]>li{width:33.333%}.acf-hl[data-cols="4"]>li{width:25%}@media screen and (max-width: 640px){.acf-hl[data-cols]{flex-wrap:wrap;justify-content:flex-start;align-content:flex-start;align-items:flex-start;margin-left:0;margin-right:0;margin-top:-10px}.acf-hl[data-cols]>li{flex:1 1 100%;width:100% !important;padding:10px 0 0}}.acf-actions{text-align:right;z-index:1}.acf-actions.-hover{position:absolute;display:none;top:0;right:0;padding:5px;z-index:1050}html[dir=rtl] .acf-actions.-hover{right:auto;left:0}ul.acf-actions li{float:right;margin-left:4px}html[dir=rtl] .acf-fl{float:right}html[dir=rtl] .acf-fr{float:left}html[dir=rtl] .acf-hl>li{float:right}html[dir=rtl] .acf-hl>li.acf-fr{float:left}html[dir=rtl] .acf-icon.logo{left:0;right:auto}html[dir=rtl] .acf-table thead th{text-align:right;border-right-width:1px;border-left-width:0px}html[dir=rtl] .acf-table>tbody>tr>td{text-align:right;border-right-width:1px;border-left-width:0px}html[dir=rtl] .acf-table>thead>tr>th:first-child,html[dir=rtl] .acf-table>tbody>tr>td:first-child{border-right-width:0}html[dir=rtl] .acf-table>tbody>tr>td.order+td{border-right-color:#e1e1e1}.acf-postbox-columns{position:relative;margin-top:-11px;margin-bottom:-12px;margin-left:-12px;margin-right:268px}.acf-postbox-columns:after{display:block;clear:both;content:""}.acf-postbox-columns .acf-postbox-main,.acf-postbox-columns .acf-postbox-side{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0 12px 12px}.acf-postbox-columns .acf-postbox-main{float:left;width:100%}.acf-postbox-columns .acf-postbox-side{float:right;width:280px;margin-right:-280px}.acf-postbox-columns .acf-postbox-side:before{content:"";display:block;position:absolute;width:1px;height:100%;top:0;right:0;background:#d5d9dd}.acf-admin-3-8 .acf-postbox-columns .acf-postbox-side:before{background:#dfdfdf}@media only screen and (max-width: 850px){.acf-postbox-columns{margin:0}.acf-postbox-columns .acf-postbox-main,.acf-postbox-columns .acf-postbox-side{float:none;width:auto;margin:0;padding:0}.acf-postbox-columns .acf-postbox-side{margin-top:1em}.acf-postbox-columns .acf-postbox-side:before{display:none}}.acf-panel{margin-top:-1px;border-top:1px solid #d5d9dd;border-bottom:1px solid #d5d9dd}.acf-panel .acf-panel-title{margin:0;padding:12px;font-weight:bold;cursor:pointer;font-size:inherit}.acf-panel .acf-panel-title i{float:right}.acf-panel .acf-panel-inside{margin:0;padding:0 12px 12px;display:none}.acf-panel.-open .acf-panel-inside{display:block}.postbox .acf-panel{margin-left:-12px;margin-right:-12px}.acf-panel .acf-field{margin:20px 0 0}.acf-panel .acf-field .acf-label label{color:#555d66;font-weight:normal}.acf-panel .acf-field:first-child{margin-top:0}.acf-admin-3-8 .acf-panel{border-color:#dfdfdf}#acf-admin-tools .notice{margin-top:10px}#acf-admin-tools .acf-meta-box-wrap .inside{border-top:none}#acf-admin-tools .acf-meta-box-wrap .acf-fields{margin-bottom:24px;border:none;background:#fff;border-radius:0}#acf-admin-tools .acf-meta-box-wrap .acf-fields .acf-field{padding:0;margin-bottom:19px;border-top:none}#acf-admin-tools .acf-meta-box-wrap .acf-fields .acf-label{margin-bottom:16px}#acf-admin-tools .acf-meta-box-wrap .acf-fields .acf-input{padding-top:16px;padding-right:16px;padding-bottom:16px;padding-left:16px;border-width:1px;border-style:solid;border-color:#d0d5dd;border-radius:6px}#acf-admin-tools .acf-meta-box-wrap .acf-fields.import-cptui{margin-top:19px}.acf-meta-box-wrap .postbox{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.acf-meta-box-wrap .postbox .inside{margin-bottom:0}.acf-meta-box-wrap .postbox .hndle{font-size:14px;padding:8px 12px;margin:0;line-height:1.4;position:relative;z-index:1;cursor:default}.acf-meta-box-wrap .postbox .handlediv,.acf-meta-box-wrap .postbox .handle-order-higher,.acf-meta-box-wrap .postbox .handle-order-lower{display:none}.acf-meta-box-wrap.-grid{margin-left:8px;margin-right:8px}.acf-meta-box-wrap.-grid .postbox{float:left;clear:left;width:50%;margin:0 0 16px}.acf-meta-box-wrap.-grid .postbox:nth-child(odd){margin-left:-8px}.acf-meta-box-wrap.-grid .postbox:nth-child(even){float:right;clear:right;margin-right:-8px}@media only screen and (max-width: 850px){.acf-meta-box-wrap.-grid{margin-left:0;margin-right:0}.acf-meta-box-wrap.-grid .postbox{margin-left:0 !important;margin-right:0 !important;width:100%}}#acf-admin-tool-export p{max-width:800px}#acf-admin-tool-export ul{display:flex;flex-wrap:wrap;width:100%}#acf-admin-tool-export ul li{flex:0 1 33.33%}@media screen and (max-width: 1600px){#acf-admin-tool-export ul li{flex:0 1 50%}}@media screen and (max-width: 1200px){#acf-admin-tool-export ul li{flex:0 1 100%}}#acf-admin-tool-export .acf-postbox-side ul{display:block}#acf-admin-tool-export .acf-postbox-side .button{margin:0;width:100%}#acf-admin-tool-export textarea{display:block;width:100%;min-height:500px;background:#f9fafb;border-color:#d0d5dd;box-shadow:none;padding:7px;border-radius:6px}#acf-admin-tool-export .acf-panel-selection .acf-label label{font-weight:bold;color:#344054}#acf-admin-tool-import ul{column-width:200px}.acf-css-tooltip{position:relative}.acf-css-tooltip:before{content:attr(aria-label);display:none;position:absolute;z-index:999;bottom:100%;left:50%;transform:translate(-50%, -8px);background:#191e23;border-radius:2px;padding:5px 10px;color:#fff;font-size:12px;line-height:1.4em;white-space:pre}.acf-css-tooltip:after{content:"";display:none;position:absolute;z-index:998;bottom:100%;left:50%;transform:translate(-50%, 4px);border:solid 6px rgba(0,0,0,0);border-top-color:#191e23}.acf-css-tooltip:hover:before,.acf-css-tooltip:hover:after,.acf-css-tooltip:focus:before,.acf-css-tooltip:focus:after{display:block}.acf-diff .acf-diff-title{position:absolute;top:0;left:0;right:0;height:40px;padding:14px 16px;background:#f3f3f3;border-bottom:#ddd solid 1px}.acf-diff .acf-diff-title strong{font-size:14px;display:block}.acf-diff .acf-diff-title .acf-diff-title-left,.acf-diff .acf-diff-title .acf-diff-title-right{width:50%;float:left}.acf-diff .acf-diff-content{position:absolute;top:70px;left:0;right:0;bottom:0;overflow:auto}.acf-diff table.diff{border-spacing:0}.acf-diff table.diff col.diffsplit.middle{width:0}.acf-diff table.diff td,.acf-diff table.diff th{padding-top:.25em;padding-bottom:.25em}.acf-diff table.diff tr td:nth-child(2){width:auto}.acf-diff table.diff td:nth-child(3){border-left:#ddd solid 1px}@media screen and (max-width: 600px){.acf-diff .acf-diff-title{height:70px}.acf-diff .acf-diff-content{top:100px}}.acf-modal{position:fixed;top:30px;left:30px;right:30px;bottom:30px;z-index:160000;box-shadow:0 5px 15px rgba(0,0,0,.7);background:#fcfcfc}.acf-modal .acf-modal-title,.acf-modal .acf-modal-content,.acf-modal .acf-modal-toolbar{box-sizing:border-box;position:absolute;left:0;right:0}.acf-modal .acf-modal-title{height:50px;top:0;border-bottom:1px solid #ddd}.acf-modal .acf-modal-title h2{margin:0;padding:0 16px;line-height:50px}.acf-modal .acf-modal-title .acf-modal-close{position:absolute;top:0;right:0;height:50px;width:50px;border:none;border-left:1px solid #ddd;background:rgba(0,0,0,0);cursor:pointer;color:#666}.acf-modal .acf-modal-title .acf-modal-close:hover{color:#00a0d2}.acf-modal .acf-modal-content{top:50px;bottom:60px;background:#fff;overflow:auto;padding:16px}.acf-modal .acf-modal-feedback{position:absolute;top:50%;margin:-10px 0;left:0;right:0;text-align:center;opacity:.75}.acf-modal .acf-modal-feedback.error{opacity:1;color:#b52727}.acf-modal .acf-modal-toolbar{height:60px;bottom:0;padding:15px 16px;border-top:1px solid #ddd}.acf-modal .acf-modal-toolbar .button{float:right}@media only screen and (max-width: 640px){.acf-modal{top:0;left:0;right:0;bottom:0}}.acf-modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:#101828;opacity:.8;z-index:159900}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1),only screen and (min-device-pixel-ratio: 2),only screen and (min-resolution: 192dpi),only screen and (min-resolution: 2dppx){.acf-loading,.acf-spinner{background-image:url(../../images/spinner@2x.gif);background-size:20px 20px}}.acf-admin-page .wrap{margin-top:48px;margin-right:32px;margin-bottom:0;margin-left:12px}@media screen and (max-width: 768px){.acf-admin-page .wrap{margin-right:8px;margin-left:8px}}.acf-admin-page.rtl .wrap{margin-right:12px;margin-left:32px}@media screen and (max-width: 768px){.acf-admin-page.rtl .wrap{margin-right:8px;margin-left:8px}}@media screen and (max-width: 768px){.acf-admin-page #wpcontent{padding-left:0}}.acf-admin-page .postbox,.acf-admin-page .acf-box{border:none;border-radius:8px;box-shadow:0px 1px 2px rgba(16,24,40,.1)}.acf-admin-page .postbox .inside,.acf-admin-page .acf-box .inside{padding-top:24px;padding-right:24px;padding-bottom:24px;padding-left:24px}.acf-admin-page .postbox .acf-postbox-inner,.acf-admin-page .acf-box .acf-postbox-inner{margin-top:0;margin-right:0;margin-bottom:0;margin-left:0;padding-top:24px;padding-right:0;padding-bottom:0;padding-left:0}.acf-admin-page .postbox .inner,.acf-admin-page .postbox .inside,.acf-admin-page .acf-box .inner,.acf-admin-page .acf-box .inside{margin-top:0 !important;margin-right:0 !important;margin-bottom:0 !important;margin-left:0 !important;border-top-width:1px;border-top-style:solid;border-top-color:#eaecf0}.acf-admin-page .postbox .postbox-header,.acf-admin-page .postbox .title,.acf-admin-page .acf-box .postbox-header,.acf-admin-page .acf-box .title{display:flex;align-items:center;box-sizing:border-box;min-height:64px;margin-top:0;margin-right:0;margin-bottom:0;margin-left:0;padding-top:0;padding-right:24px;padding-bottom:0;padding-left:24px;border-bottom-width:0;border-bottom-style:none}.acf-admin-page .postbox .postbox-header h2,.acf-admin-page .postbox .postbox-header h3,.acf-admin-page .postbox .title h2,.acf-admin-page .postbox .title h3,.acf-admin-page .acf-box .postbox-header h2,.acf-admin-page .acf-box .postbox-header h3,.acf-admin-page .acf-box .title h2,.acf-admin-page .acf-box .title h3{margin-top:0;margin-right:0;margin-bottom:0;margin-left:0;padding-top:0;padding-right:0;padding-bottom:0;padding-left:0;color:#344054}.acf-admin-page .postbox .hndle,.acf-admin-page .acf-box .hndle{padding-top:0;padding-right:24px;padding-bottom:0;padding-left:24px}.acf-postbox-header{display:flex;align-items:center;justify-content:space-between;box-sizing:border-box;min-height:64px;margin-top:-24px;margin-right:-24px;margin-bottom:0;margin-left:-24px;padding-top:0;padding-right:24px;padding-bottom:0;padding-left:24px;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#eaecf0}.acf-postbox-header h2.acf-postbox-title{margin-top:0;margin-right:0;margin-bottom:0;margin-left:0;padding-top:0;padding-right:24px;padding-bottom:0;padding-left:0;color:#344054}.rtl .acf-postbox-header h2.acf-postbox-title{padding-right:0;padding-left:24px}.acf-postbox-header .acf-icon{background-color:#98a2b3}.acf-admin-page #screen-meta-links{margin-right:32px}.acf-admin-page #screen-meta-links .show-settings{border-color:#d0d5dd}@media screen and (max-width: 768px){.acf-admin-page #screen-meta-links{margin-right:16px;margin-bottom:0}}.acf-admin-page.rtl #screen-meta-links{margin-right:0;margin-left:32px}@media screen and (max-width: 768px){.acf-admin-page.rtl #screen-meta-links{margin-right:0;margin-left:16px}}.acf-admin-page #screen-meta{border-color:#d0d5dd}.acf-admin-page #poststuff .postbox-header h2,.acf-admin-page #poststuff .postbox-header h3{justify-content:flex-start;margin-top:0;margin-right:0;margin-bottom:0;margin-left:0;padding-top:0;padding-right:0;padding-bottom:0;padding-left:0;color:#344054 !important}.acf-admin-page.is-dragging-metaboxes .metabox-holder .postbox-container .meta-box-sortables{box-sizing:border-box;padding:2px;outline:none;background-image:repeating-linear-gradient(0deg, #667085, #667085 5px, transparent 5px, transparent 10px, #667085 10px),repeating-linear-gradient(90deg, #667085, #667085 5px, transparent 5px, transparent 10px, #667085 10px),repeating-linear-gradient(180deg, #667085, #667085 5px, transparent 5px, transparent 10px, #667085 10px),repeating-linear-gradient(270deg, #667085, #667085 5px, transparent 5px, transparent 10px, #667085 10px);background-size:1.5px 100%,100% 1.5px,1.5px 100%,100% 1.5px;background-position:0 0,0 0,100% 0,0 100%;background-repeat:no-repeat;border-radius:8px}.acf-admin-page .ui-sortable-placeholder{border:none}.acf-admin-page .subtitle{display:inline-flex;align-items:center;height:24px;margin:0;padding-top:4px;padding-right:12px;padding-bottom:4px;padding-left:12px;background-color:#ebf5fa;border-width:1px;border-style:solid;border-color:#a5d2e7;border-radius:6px}.acf-admin-page .subtitle strong{margin-left:5px}.acf-actions-strip{display:flex}.acf-actions-strip .acf-btn{margin-right:8px}.acf-admin-page .acf-notice,.acf-admin-page .notice,.acf-admin-page #lost-connection-notice{position:relative;box-sizing:border-box;max-width:1440px;min-height:48px;margin-top:0 !important;margin-right:0 !important;margin-bottom:16px !important;margin-left:0 !important;padding-top:13px !important;padding-right:16px !important;padding-bottom:12px !important;padding-left:50px !important;background-color:#e7eff9;border-width:1px;border-style:solid;border-color:#9dbaee;border-radius:8px;box-shadow:0px 1px 2px rgba(16,24,40,.1);color:#344054}.acf-admin-page .acf-notice.update-nag,.acf-admin-page .notice.update-nag,.acf-admin-page #lost-connection-notice.update-nag{display:block;position:relative;width:calc(100% - 44px);margin-top:48px !important;margin-right:44px !important;margin-bottom:-32px !important;margin-left:12px !important}.acf-admin-page .acf-notice .button,.acf-admin-page .notice .button,.acf-admin-page #lost-connection-notice .button{height:auto;margin-left:8px;padding:0;border:none}.acf-admin-page .acf-notice>div,.acf-admin-page .notice>div,.acf-admin-page #lost-connection-notice>div{margin-top:0;margin-bottom:0}.acf-admin-page .acf-notice p,.acf-admin-page .notice p,.acf-admin-page #lost-connection-notice p{flex:1 0 auto;max-width:100%;line-height:18px;margin:0;padding:0}.acf-admin-page .acf-notice p.help,.acf-admin-page .notice p.help,.acf-admin-page #lost-connection-notice p.help{margin-top:0;padding-top:0;color:rgba(52,64,84,.7)}.acf-admin-page .acf-notice .acf-notice-dismiss,.acf-admin-page .acf-notice .notice-dismiss,.acf-admin-page .notice .acf-notice-dismiss,.acf-admin-page .notice .notice-dismiss,.acf-admin-page #lost-connection-notice .acf-notice-dismiss,.acf-admin-page #lost-connection-notice .notice-dismiss{position:absolute;top:4px;right:8px;padding:9px;border:none}.acf-admin-page .acf-notice .acf-notice-dismiss:before,.acf-admin-page .acf-notice .notice-dismiss:before,.acf-admin-page .notice .acf-notice-dismiss:before,.acf-admin-page .notice .notice-dismiss:before,.acf-admin-page #lost-connection-notice .acf-notice-dismiss:before,.acf-admin-page #lost-connection-notice .notice-dismiss:before{content:"";display:block;position:relative;z-index:600;width:20px;height:20px;background-color:#667085;border:none;border-radius:0;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-image:url("../../images/icons/icon-close.svg");mask-image:url("../../images/icons/icon-close.svg")}.acf-admin-page .acf-notice .acf-notice-dismiss:hover::before,.acf-admin-page .acf-notice .notice-dismiss:hover::before,.acf-admin-page .notice .acf-notice-dismiss:hover::before,.acf-admin-page .notice .notice-dismiss:hover::before,.acf-admin-page #lost-connection-notice .acf-notice-dismiss:hover::before,.acf-admin-page #lost-connection-notice .notice-dismiss:hover::before{background-color:#344054}.acf-admin-page .acf-notice a.acf-notice-dismiss,.acf-admin-page .notice a.acf-notice-dismiss,.acf-admin-page #lost-connection-notice a.acf-notice-dismiss{position:absolute;top:5px;right:24px}.acf-admin-page .acf-notice a.acf-notice-dismiss:before,.acf-admin-page .notice a.acf-notice-dismiss:before,.acf-admin-page #lost-connection-notice a.acf-notice-dismiss:before{background-color:#475467}.acf-admin-page .acf-notice:before,.acf-admin-page .notice:before,.acf-admin-page #lost-connection-notice:before{content:"";display:block;position:absolute;top:15px;left:18px;z-index:600;width:16px;height:16px;margin-right:8px;background-color:#fff;border:none;border-radius:0;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-image:url("../../images/icons/icon-info-solid.svg");mask-image:url("../../images/icons/icon-info-solid.svg")}.acf-admin-page .acf-notice:after,.acf-admin-page .notice:after,.acf-admin-page #lost-connection-notice:after{content:"";display:block;position:absolute;top:9px;left:12px;z-index:500;width:28px;height:28px;background-color:#2d69da;border-radius:6px;box-shadow:0px 1px 2px rgba(16,24,40,.1)}.acf-admin-page .acf-notice .local-restore,.acf-admin-page .notice .local-restore,.acf-admin-page #lost-connection-notice .local-restore{align-items:center;margin-top:-6px;margin-bottom:0}.acf-admin-page .notice.is-dismissible{padding-right:56px}.acf-admin-page .notice.notice-success{background-color:#edf7ef;border-color:#b6deb9}.acf-admin-page .notice.notice-success:before{-webkit-mask-image:url("../../images/icons/icon-check-circle-solid.svg");mask-image:url("../../images/icons/icon-check-circle-solid.svg")}.acf-admin-page .notice.notice-success:after{background-color:#52aa59}.acf-admin-page .acf-notice.acf-error-message,.acf-admin-page .notice.notice-error,.acf-admin-page #lost-connection-notice{background-color:#f7eeeb;border-color:#f1b6b3}.acf-admin-page .acf-notice.acf-error-message:before,.acf-admin-page .notice.notice-error:before,.acf-admin-page #lost-connection-notice:before{-webkit-mask-image:url("../../images/icons/icon-warning.svg");mask-image:url("../../images/icons/icon-warning.svg")}.acf-admin-page .acf-notice.acf-error-message:after,.acf-admin-page .notice.notice-error:after,.acf-admin-page #lost-connection-notice:after{background-color:#d13737}.acf-admin-single-taxonomy .notice-success .acf-item-saved-text,.acf-admin-single-post-type .notice-success .acf-item-saved-text{font-weight:600}.acf-admin-single-taxonomy .notice-success .acf-item-saved-links,.acf-admin-single-post-type .notice-success .acf-item-saved-links{display:flex;gap:12px}.acf-admin-single-taxonomy .notice-success .acf-item-saved-links a,.acf-admin-single-post-type .notice-success .acf-item-saved-links a{text-decoration:none;opacity:1}.acf-admin-single-taxonomy .notice-success .acf-item-saved-links a:after,.acf-admin-single-post-type .notice-success .acf-item-saved-links a:after{content:"";width:1px;height:13px;display:inline-flex;position:relative;top:2px;left:6px;background-color:#475467;opacity:.3}.acf-admin-single-taxonomy .notice-success .acf-item-saved-links a:last-child:after,.acf-admin-single-post-type .notice-success .acf-item-saved-links a:last-child:after{content:none}.rtl.acf-field-group .notice,.rtl.acf-internal-post-type .notice{padding-right:50px !important}.rtl.acf-field-group .notice .notice-dismiss,.rtl.acf-internal-post-type .notice .notice-dismiss{left:8px;right:unset}.rtl.acf-field-group .notice:before,.rtl.acf-internal-post-type .notice:before{left:unset;right:10px}.rtl.acf-field-group .notice:after,.rtl.acf-internal-post-type .notice:after{left:unset;right:12px}.rtl.acf-field-group.acf-admin-single-taxonomy .notice-success .acf-item-saved-links a:after,.rtl.acf-field-group.acf-admin-single-post-type .notice-success .acf-item-saved-links a:after,.rtl.acf-internal-post-type.acf-admin-single-taxonomy .notice-success .acf-item-saved-links a:after,.rtl.acf-internal-post-type.acf-admin-single-post-type .notice-success .acf-item-saved-links a:after{left:unset;right:6px}.acf-pro-label{display:inline-flex;align-items:center;min-height:22px;padding-right:8px;padding-left:8px;background:linear-gradient(90.52deg, #3E8BFF 0.44%, #A45CFF 113.3%);box-shadow:inset 0 0 0 1px rgba(255,255,255,.16);border:none;border-radius:100px;font-size:11px;text-transform:uppercase;text-decoration:none;color:#fff}.acf-admin-page .acf-field .acf-notice{display:flex;align-items:center;min-height:40px !important;margin-bottom:6px !important;padding-top:6px !important;padding-left:40px !important;padding-bottom:6px !important;margin:0 0 15px;background:#edf2ff;color:#344054 !important;border-color:#2183b9;border-radius:6px}.acf-admin-page .acf-field .acf-notice:after{top:8px;left:8px;width:22px;height:22px}.acf-admin-page .acf-field .acf-notice:before{top:12px;left:12px;width:14px;height:14px}.acf-admin-page .acf-field .acf-notice.-error{background:#f7eeeb;border-color:#f1b6b3}.acf-admin-page .acf-field .acf-notice.-success{background:#edf7ef;border-color:#b6deb9}.acf-admin-page .acf-field .acf-notice.-warning{background:#fdf8eb;border-color:#f4dbb4}.acf-admin-page #wpcontent{line-height:140%}.acf-admin-page a{color:#0783be}.acf-h1,#tmpl-acf-field-group-pro-features h1,#acf-field-group-pro-features h1,.acf-admin-page h1,.acf-headerbar h1{font-size:21px;font-weight:400}.acf-h2,.acf-no-field-groups-wrapper .acf-no-field-groups-inner h2,.acf-no-field-groups-wrapper .acf-no-taxonomies-inner h2,.acf-no-field-groups-wrapper .acf-no-post-types-inner h2,.acf-no-taxonomies-wrapper .acf-no-field-groups-inner h2,.acf-no-taxonomies-wrapper .acf-no-taxonomies-inner h2,.acf-no-taxonomies-wrapper .acf-no-post-types-inner h2,.acf-no-post-types-wrapper .acf-no-field-groups-inner h2,.acf-no-post-types-wrapper .acf-no-taxonomies-inner h2,.acf-no-post-types-wrapper .acf-no-post-types-inner h2,.acf-page-title,.acf-admin-page h2,.acf-headerbar h2{font-size:18px;font-weight:400}.acf-h3,.acf-admin-page h3,.acf-headerbar h3,.acf-admin-page .postbox .postbox-header h2,.acf-admin-page .postbox .postbox-header h3,.acf-admin-page .postbox .title h2,.acf-admin-page .postbox .title h3,.acf-admin-page .acf-box .postbox-header h2,.acf-admin-page .acf-box .postbox-header h3,.acf-admin-page .acf-box .title h2,.acf-admin-page .acf-box .title h3,.acf-postbox-header h2.acf-postbox-title,.acf-admin-page #poststuff .postbox-header h2,.acf-admin-page #poststuff .postbox-header h3{font-size:16px;font-weight:400}.acf-admin-page .p1{font-size:15px}.acf-admin-page .p2,.acf-admin-page .acf-no-field-groups-wrapper .acf-no-field-groups-inner p,.acf-no-field-groups-wrapper .acf-no-field-groups-inner .acf-admin-page p,.acf-admin-page .acf-no-field-groups-wrapper .acf-no-taxonomies-inner p,.acf-no-field-groups-wrapper .acf-no-taxonomies-inner .acf-admin-page p,.acf-admin-page .acf-no-field-groups-wrapper .acf-no-post-types-inner p,.acf-no-field-groups-wrapper .acf-no-post-types-inner .acf-admin-page p,.acf-admin-page .acf-no-taxonomies-wrapper .acf-no-field-groups-inner p,.acf-no-taxonomies-wrapper .acf-no-field-groups-inner .acf-admin-page p,.acf-admin-page .acf-no-taxonomies-wrapper .acf-no-taxonomies-inner p,.acf-no-taxonomies-wrapper .acf-no-taxonomies-inner .acf-admin-page p,.acf-admin-page .acf-no-taxonomies-wrapper .acf-no-post-types-inner p,.acf-no-taxonomies-wrapper .acf-no-post-types-inner .acf-admin-page p,.acf-admin-page .acf-no-post-types-wrapper .acf-no-field-groups-inner p,.acf-no-post-types-wrapper .acf-no-field-groups-inner .acf-admin-page p,.acf-admin-page .acf-no-post-types-wrapper .acf-no-taxonomies-inner p,.acf-no-post-types-wrapper .acf-no-taxonomies-inner .acf-admin-page p,.acf-admin-page .acf-no-post-types-wrapper .acf-no-post-types-inner p,.acf-no-post-types-wrapper .acf-no-post-types-inner .acf-admin-page p,.acf-admin-page #acf-admin-tools .acf-meta-box-wrap .acf-fields .acf-label,#acf-admin-tools .acf-meta-box-wrap .acf-fields .acf-admin-page .acf-label{font-size:14px}.acf-admin-page .p3,.acf-admin-page .acf-internal-post-type .wp-list-table .post-state,.acf-internal-post-type .wp-list-table .acf-admin-page .post-state,.acf-admin-page .subtitle{font-size:13.5px}.acf-admin-page .p4,.acf-admin-page .acf-admin-toolbar a.acf-admin-toolbar-upgrade-btn p,.acf-admin-toolbar a.acf-admin-toolbar-upgrade-btn .acf-admin-page p,.acf-admin-page #acf-update-information .form-table th,#acf-update-information .form-table .acf-admin-page th,.acf-admin-page #acf-update-information .form-table td,#acf-update-information .form-table .acf-admin-page td,.acf-admin-page #acf-admin-tools.tool-export .acf-panel h3,#acf-admin-tools.tool-export .acf-panel .acf-admin-page h3,.acf-admin-page .acf-btn.acf-btn-sm,.acf-admin-page .acf-admin-toolbar .acf-tab,.acf-admin-toolbar .acf-admin-page .acf-tab,.acf-admin-page .acf-internal-post-type .subsubsub li,.acf-internal-post-type .subsubsub .acf-admin-page li,.acf-admin-page .acf-internal-post-type .wp-list-table tbody th,.acf-internal-post-type .wp-list-table tbody .acf-admin-page th,.acf-admin-page .acf-internal-post-type .wp-list-table tbody td,.acf-internal-post-type .wp-list-table tbody .acf-admin-page td,.acf-admin-page .acf-internal-post-type .wp-list-table thead th,.acf-internal-post-type .wp-list-table thead .acf-admin-page th,.acf-admin-page .acf-internal-post-type .wp-list-table thead td,.acf-internal-post-type .wp-list-table thead .acf-admin-page td,.acf-admin-page .acf-internal-post-type .wp-list-table tfoot th,.acf-internal-post-type .wp-list-table tfoot .acf-admin-page th,.acf-admin-page .acf-internal-post-type .wp-list-table tfoot td,.acf-internal-post-type .wp-list-table tfoot .acf-admin-page td,.acf-admin-page .acf-input .select2-container.-acf .select2-selection__rendered,.acf-admin-page .button,.acf-admin-page input[type=text],.acf-admin-page input[type=search],.acf-admin-page input[type=number],.acf-admin-page textarea,.acf-admin-page select{font-size:13px}.acf-admin-page .p5,.acf-admin-page .acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-types-tab .acf-field-type .field-type-label,.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-types-tab .acf-field-type .acf-admin-page .field-type-label,.acf-admin-page .acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-type-search-results .acf-field-type .field-type-label,.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-type-search-results .acf-field-type .acf-admin-page .field-type-label,.acf-admin-page .acf-internal-post-type .row-actions,.acf-internal-post-type .acf-admin-page .row-actions,.acf-admin-page .acf-notice .button,.acf-admin-page .notice .button,.acf-admin-page #lost-connection-notice .button{font-size:12.5px}.acf-admin-page .p6,.acf-admin-page #acf-update-information .acf-update-changelog p em,#acf-update-information .acf-update-changelog p .acf-admin-page em,.acf-admin-page .acf-no-field-groups-wrapper .acf-no-field-groups-inner p.acf-small,.acf-no-field-groups-wrapper .acf-no-field-groups-inner .acf-admin-page p.acf-small,.acf-admin-page .acf-no-field-groups-wrapper .acf-no-taxonomies-inner p.acf-small,.acf-no-field-groups-wrapper .acf-no-taxonomies-inner .acf-admin-page p.acf-small,.acf-admin-page .acf-no-field-groups-wrapper .acf-no-post-types-inner p.acf-small,.acf-no-field-groups-wrapper .acf-no-post-types-inner .acf-admin-page p.acf-small,.acf-admin-page .acf-no-taxonomies-wrapper .acf-no-field-groups-inner p.acf-small,.acf-no-taxonomies-wrapper .acf-no-field-groups-inner .acf-admin-page p.acf-small,.acf-admin-page .acf-no-taxonomies-wrapper .acf-no-taxonomies-inner p.acf-small,.acf-no-taxonomies-wrapper .acf-no-taxonomies-inner .acf-admin-page p.acf-small,.acf-admin-page .acf-no-taxonomies-wrapper .acf-no-post-types-inner p.acf-small,.acf-no-taxonomies-wrapper .acf-no-post-types-inner .acf-admin-page p.acf-small,.acf-admin-page .acf-no-post-types-wrapper .acf-no-field-groups-inner p.acf-small,.acf-no-post-types-wrapper .acf-no-field-groups-inner .acf-admin-page p.acf-small,.acf-admin-page .acf-no-post-types-wrapper .acf-no-taxonomies-inner p.acf-small,.acf-no-post-types-wrapper .acf-no-taxonomies-inner .acf-admin-page p.acf-small,.acf-admin-page .acf-no-post-types-wrapper .acf-no-post-types-inner p.acf-small,.acf-no-post-types-wrapper .acf-no-post-types-inner .acf-admin-page p.acf-small,.acf-admin-page .acf-internal-post-type .row-actions,.acf-internal-post-type .acf-admin-page .row-actions,.acf-admin-page .acf-small{font-size:12px}.acf-admin-page .p7,.acf-admin-page .acf-tooltip,.acf-admin-page .acf-notice p.help,.acf-admin-page .notice p.help,.acf-admin-page #lost-connection-notice p.help{font-size:11.5px}.acf-admin-page .p8{font-size:11px}.acf-page-title{color:#344054}.acf-admin-page .acf-settings-wrap h1{display:none !important}.acf-admin-page #acf-admin-tools h1:not(.acf-field-group-pro-features-title,.acf-field-group-pro-features-title-sm){display:none !important}.acf-admin-page a:focus{box-shadow:none;outline:none}.acf-admin-page a:focus-visible{box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8);outline:1px solid rgba(0,0,0,0)}.acf-admin-page input[type=text],.acf-admin-page input[type=search],.acf-admin-page input[type=number],.acf-admin-page textarea,.acf-admin-page select{box-sizing:border-box;height:40px;padding-right:12px;padding-left:12px;background-color:#fff;border-color:#d0d5dd;box-shadow:0px 1px 2px rgba(16,24,40,.1);border-radius:6px;color:#344054}.acf-admin-page input[type=text]:focus,.acf-admin-page input[type=search]:focus,.acf-admin-page input[type=number]:focus,.acf-admin-page textarea:focus,.acf-admin-page select:focus{outline:3px solid #ebf5fa;border-color:#399ccb}.acf-admin-page input[type=text]:disabled,.acf-admin-page input[type=search]:disabled,.acf-admin-page input[type=number]:disabled,.acf-admin-page textarea:disabled,.acf-admin-page select:disabled{background-color:#f9fafb;color:#808a9e}.acf-admin-page input[type=text]::placeholder,.acf-admin-page input[type=search]::placeholder,.acf-admin-page input[type=number]::placeholder,.acf-admin-page textarea::placeholder,.acf-admin-page select::placeholder{color:#98a2b3}.acf-admin-page input[type=text]:read-only{background-color:#f9fafb;color:#98a2b3}.acf-admin-page .acf-field.acf-field-number .acf-label,.acf-admin-page .acf-field.acf-field-number .acf-input input[type=number]{max-width:180px}.acf-admin-page textarea{box-sizing:border-box;padding-top:10px;padding-bottom:10px;height:80px;min-height:56px}.acf-admin-page select{min-width:160px;max-width:100%;padding-right:40px;padding-left:12px;background-image:url("../../images/icons/icon-chevron-down.svg");background-position:right 10px top 50%;background-size:20px}.acf-admin-page select:hover,.acf-admin-page select:focus{color:#0783be}.acf-admin-page select::before{content:"";display:block;position:absolute;top:5px;left:5px;width:20px;height:20px}.acf-admin-page.rtl select{padding-right:12px;padding-left:40px;background-position:left 10px top 50%}.acf-admin-page input[type=radio],.acf-admin-page input[type=checkbox]{box-sizing:border-box;width:16px;height:16px;padding:0;border-width:1px;border-style:solid;border-color:#98a2b3;background:#fff;box-shadow:none}.acf-admin-page input[type=radio]:hover,.acf-admin-page input[type=checkbox]:hover{background-color:#ebf5fa;border-color:#0783be}.acf-admin-page input[type=radio]:checked,.acf-admin-page input[type=radio]:focus-visible,.acf-admin-page input[type=checkbox]:checked,.acf-admin-page input[type=checkbox]:focus-visible{background-color:#ebf5fa;border-color:#0783be}.acf-admin-page input[type=radio]:checked:before,.acf-admin-page input[type=radio]:focus-visible:before,.acf-admin-page input[type=checkbox]:checked:before,.acf-admin-page input[type=checkbox]:focus-visible:before{content:"";position:relative;top:-1px;left:-1px;width:16px;height:16px;margin:0;padding:0;background-color:rgba(0,0,0,0);background-size:cover;background-repeat:no-repeat;background-position:center}.acf-admin-page input[type=radio]:active,.acf-admin-page input[type=checkbox]:active{box-shadow:0px 0px 0px 3px #ebf5fa,0px 0px 0px rgba(255,54,54,.25)}.acf-admin-page input[type=radio]:disabled,.acf-admin-page input[type=checkbox]:disabled{background-color:#f9fafb;border-color:#d0d5dd}.acf-admin-page.rtl input[type=radio]:checked:before,.acf-admin-page.rtl input[type=radio]:focus-visible:before,.acf-admin-page.rtl input[type=checkbox]:checked:before,.acf-admin-page.rtl input[type=checkbox]:focus-visible:before{left:1px}.acf-admin-page input[type=radio]:checked:before,.acf-admin-page input[type=radio]:focus:before{background-image:url("../../images/field-states/radio-active.svg")}.acf-admin-page input[type=checkbox]:checked:before,.acf-admin-page input[type=checkbox]:focus:before{background-image:url("../../images/field-states/checkbox-active.svg")}.acf-admin-page .acf-radio-list li input[type=radio],.acf-admin-page .acf-radio-list li input[type=checkbox],.acf-admin-page .acf-checkbox-list li input[type=radio],.acf-admin-page .acf-checkbox-list li input[type=checkbox]{margin-right:6px}.acf-admin-page .acf-radio-list.acf-bl li,.acf-admin-page .acf-checkbox-list.acf-bl li{margin-bottom:8px}.acf-admin-page .acf-radio-list.acf-bl li:last-of-type,.acf-admin-page .acf-checkbox-list.acf-bl li:last-of-type{margin-bottom:0}.acf-admin-page .acf-radio-list label,.acf-admin-page .acf-checkbox-list label{display:flex;align-items:center;align-content:center}.acf-admin-page .acf-switch{width:42px;height:24px;border:none;background-color:#d0d5dd;border-radius:12px}.acf-admin-page .acf-switch:hover{background-color:#98a2b3}.acf-admin-page .acf-switch:active{box-shadow:0px 0px 0px 3px #ebf5fa,0px 0px 0px rgba(255,54,54,.25)}.acf-admin-page .acf-switch.-on{background-color:#0783be}.acf-admin-page .acf-switch.-on:hover{background-color:#066998}.acf-admin-page .acf-switch.-on .acf-switch-slider{left:20px}.acf-admin-page .acf-switch .acf-switch-off,.acf-admin-page .acf-switch .acf-switch-on{visibility:hidden}.acf-admin-page .acf-switch .acf-switch-slider{width:20px;height:20px;border:none;border-radius:100px;box-shadow:0px 1px 3px rgba(16,24,40,.1),0px 1px 2px rgba(16,24,40,.06)}.acf-admin-page .acf-field-true-false{display:flex;align-items:flex-start}.acf-admin-page .acf-field-true-false .acf-label{order:2;display:block;align-items:center;margin-top:2px;margin-bottom:0;margin-left:12px}.acf-admin-page .acf-field-true-false .acf-label label{margin-bottom:0}.acf-admin-page .acf-field-true-false .acf-label .acf-tip{margin-left:12px}.acf-admin-page .acf-field-true-false .acf-label .description{display:block;margin-top:2px;margin-left:0}.acf-admin-page.rtl .acf-field-true-false .acf-label{margin-right:12px;margin-left:0}.acf-admin-page.rtl .acf-field-true-false .acf-tip{margin-right:12px;margin-left:0}.acf-admin-page input::file-selector-button{box-sizing:border-box;min-height:40px;margin-right:16px;padding-top:8px;padding-right:16px;padding-bottom:8px;padding-left:16px;background-color:rgba(0,0,0,0);color:#0783be !important;border-radius:6px;border-width:1px;border-style:solid;border-color:#0783be;text-decoration:none}.acf-admin-page input::file-selector-button:hover{border-color:#066998;cursor:pointer;color:#066998 !important}.acf-admin-page .button{display:inline-flex;align-items:center;height:40px;padding-right:16px;padding-left:16px;background-color:rgba(0,0,0,0);border-width:1px;border-style:solid;border-color:#0783be;border-radius:6px;color:#0783be}.acf-admin-page .button:hover{background-color:#f3f9fc;border-color:#0783be;color:#0783be}.acf-admin-page .button:focus{background-color:#f3f9fc;outline:3px solid #ebf5fa;color:#0783be}.acf-admin-page .edit-field-group-header{display:block !important}.acf-admin-page .acf-input .select2-container.-acf .select2-selection{border:none;line-height:1}.acf-admin-page .acf-input .select2-container.-acf .select2-selection__rendered{box-sizing:border-box;padding-right:0;padding-left:0;background-color:#fff;border-width:1px;border-style:solid;border-color:#d0d5dd;box-shadow:0px 1px 2px rgba(16,24,40,.1);border-radius:6px;color:#344054}.acf-admin-page .acf-input .select2-container--focus{outline:3px solid #ebf5fa;border-color:#399ccb;border-radius:6px}.acf-admin-page .acf-input .select2-container--focus .select2-selection__rendered{border-color:#399ccb !important}.acf-admin-page .acf-input .select2-container--focus.select2-container--below.select2-container--open .select2-selection__rendered{border-bottom-right-radius:0 !important;border-bottom-left-radius:0 !important}.acf-admin-page .acf-input .select2-container--focus.select2-container--above.select2-container--open .select2-selection__rendered{border-top-right-radius:0 !important;border-top-left-radius:0 !important}.acf-admin-page .acf-input .select2-container .select2-search--inline .select2-search__field{margin:0;padding-left:6px}.acf-admin-page .acf-input .select2-container .select2-search--inline .select2-search__field:focus{outline:none;border:none}.acf-admin-page .acf-input .select2-container--default .select2-selection--multiple .select2-selection__rendered{padding-top:0;padding-right:6px;padding-bottom:0;padding-left:6px}.acf-admin-page .acf-input .select2-selection__clear{width:18px;height:18px;margin-top:12px;margin-right:1px;text-indent:100%;white-space:nowrap;overflow:hidden;color:#fff}.acf-admin-page .acf-input .select2-selection__clear:before{content:"";display:block;width:16px;height:16px;top:0;left:0;border:none;border-radius:0;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-image:url("../../images/icons/icon-close.svg");mask-image:url("../../images/icons/icon-close.svg");background-color:#98a2b3}.acf-admin-page .acf-input .select2-selection__clear:hover::before{background-color:#0783be}.acf-admin-page .acf-label{display:flex;align-items:center;justify-content:space-between}.acf-admin-page .acf-label .acf-icon-help{width:18px;height:18px;background-color:#98a2b3}.acf-admin-page .acf-label label{margin-bottom:0}.acf-admin-page .acf-label .description{margin-top:2px}.acf-admin-page .acf-field-setting-name .acf-tip{position:absolute;top:0;left:654px;color:#98a2b3}.rtl.acf-admin-page .acf-field-setting-name .acf-tip{left:auto;right:654px}.acf-admin-page .acf-field-setting-name .acf-tip .acf-icon-help{width:18px;height:18px}.acf-admin-page .acf-field-setting-type .select2-container.-acf,.acf-admin-page .acf-field-permalink-rewrite .select2-container.-acf,.acf-admin-page .acf-field-query-var .select2-container.-acf,.acf-admin-page .acf-field-manage-terms .select2-container.-acf,.acf-admin-page .acf-field-edit-terms .select2-container.-acf,.acf-admin-page .acf-field-delete-terms .select2-container.-acf,.acf-admin-page .acf-field-assign-terms .select2-container.-acf,.acf-admin-page .acf-field-meta-box .select2-container.-acf{min-height:40px}.acf-admin-page .acf-field-setting-type .select2-container--default .select2-selection--single .select2-selection__rendered,.acf-admin-page .acf-field-permalink-rewrite .select2-container--default .select2-selection--single .select2-selection__rendered,.acf-admin-page .acf-field-query-var .select2-container--default .select2-selection--single .select2-selection__rendered,.acf-admin-page .acf-field-manage-terms .select2-container--default .select2-selection--single .select2-selection__rendered,.acf-admin-page .acf-field-edit-terms .select2-container--default .select2-selection--single .select2-selection__rendered,.acf-admin-page .acf-field-delete-terms .select2-container--default .select2-selection--single .select2-selection__rendered,.acf-admin-page .acf-field-assign-terms .select2-container--default .select2-selection--single .select2-selection__rendered,.acf-admin-page .acf-field-meta-box .select2-container--default .select2-selection--single .select2-selection__rendered{display:flex;align-items:center;position:relative;z-index:800;min-height:40px;padding-top:0;padding-right:12px;padding-bottom:0;padding-left:12px}.acf-admin-page .acf-field-setting-type .select2-container--default .select2-selection--single .field-type-icon,.acf-admin-page .acf-field-permalink-rewrite .select2-container--default .select2-selection--single .field-type-icon,.acf-admin-page .acf-field-query-var .select2-container--default .select2-selection--single .field-type-icon,.acf-admin-page .acf-field-manage-terms .select2-container--default .select2-selection--single .field-type-icon,.acf-admin-page .acf-field-edit-terms .select2-container--default .select2-selection--single .field-type-icon,.acf-admin-page .acf-field-delete-terms .select2-container--default .select2-selection--single .field-type-icon,.acf-admin-page .acf-field-assign-terms .select2-container--default .select2-selection--single .field-type-icon,.acf-admin-page .acf-field-meta-box .select2-container--default .select2-selection--single .field-type-icon{top:auto;width:18px;height:18px;margin-right:2px}.acf-admin-page .acf-field-setting-type .select2-container--default .select2-selection--single .field-type-icon:before,.acf-admin-page .acf-field-permalink-rewrite .select2-container--default .select2-selection--single .field-type-icon:before,.acf-admin-page .acf-field-query-var .select2-container--default .select2-selection--single .field-type-icon:before,.acf-admin-page .acf-field-manage-terms .select2-container--default .select2-selection--single .field-type-icon:before,.acf-admin-page .acf-field-edit-terms .select2-container--default .select2-selection--single .field-type-icon:before,.acf-admin-page .acf-field-delete-terms .select2-container--default .select2-selection--single .field-type-icon:before,.acf-admin-page .acf-field-assign-terms .select2-container--default .select2-selection--single .field-type-icon:before,.acf-admin-page .acf-field-meta-box .select2-container--default .select2-selection--single .field-type-icon:before{width:9px;height:9px}.acf-admin-page .acf-field-setting-type .select2-container--open .select2-selection__rendered,.acf-admin-page .acf-field-permalink-rewrite .select2-container--open .select2-selection__rendered,.acf-admin-page .acf-field-query-var .select2-container--open .select2-selection__rendered,.acf-admin-page .acf-field-manage-terms .select2-container--open .select2-selection__rendered,.acf-admin-page .acf-field-edit-terms .select2-container--open .select2-selection__rendered,.acf-admin-page .acf-field-delete-terms .select2-container--open .select2-selection__rendered,.acf-admin-page .acf-field-assign-terms .select2-container--open .select2-selection__rendered,.acf-admin-page .acf-field-meta-box .select2-container--open .select2-selection__rendered{border-color:#6bb5d8 !important;border-bottom-color:#d0d5dd !important}.acf-admin-page .acf-field-setting-type .select2-container--open.select2-container--below .select2-selection__rendered,.acf-admin-page .acf-field-permalink-rewrite .select2-container--open.select2-container--below .select2-selection__rendered,.acf-admin-page .acf-field-query-var .select2-container--open.select2-container--below .select2-selection__rendered,.acf-admin-page .acf-field-manage-terms .select2-container--open.select2-container--below .select2-selection__rendered,.acf-admin-page .acf-field-edit-terms .select2-container--open.select2-container--below .select2-selection__rendered,.acf-admin-page .acf-field-delete-terms .select2-container--open.select2-container--below .select2-selection__rendered,.acf-admin-page .acf-field-assign-terms .select2-container--open.select2-container--below .select2-selection__rendered,.acf-admin-page .acf-field-meta-box .select2-container--open.select2-container--below .select2-selection__rendered{border-bottom-right-radius:0 !important;border-bottom-left-radius:0 !important}.acf-admin-page .acf-field-setting-type .select2-container--open.select2-container--above .select2-selection__rendered,.acf-admin-page .acf-field-permalink-rewrite .select2-container--open.select2-container--above .select2-selection__rendered,.acf-admin-page .acf-field-query-var .select2-container--open.select2-container--above .select2-selection__rendered,.acf-admin-page .acf-field-manage-terms .select2-container--open.select2-container--above .select2-selection__rendered,.acf-admin-page .acf-field-edit-terms .select2-container--open.select2-container--above .select2-selection__rendered,.acf-admin-page .acf-field-delete-terms .select2-container--open.select2-container--above .select2-selection__rendered,.acf-admin-page .acf-field-assign-terms .select2-container--open.select2-container--above .select2-selection__rendered,.acf-admin-page .acf-field-meta-box .select2-container--open.select2-container--above .select2-selection__rendered{border-top-right-radius:0 !important;border-top-left-radius:0 !important;border-bottom-color:#6bb5d8 !important;border-top-color:#d0d5dd !important}.acf-admin-page .acf-field-setting-type .acf-selection.has-icon,.acf-admin-page .acf-field-permalink-rewrite .acf-selection.has-icon,.acf-admin-page .acf-field-query-var .acf-selection.has-icon,.acf-admin-page .acf-field-manage-terms .acf-selection.has-icon,.acf-admin-page .acf-field-edit-terms .acf-selection.has-icon,.acf-admin-page .acf-field-delete-terms .acf-selection.has-icon,.acf-admin-page .acf-field-assign-terms .acf-selection.has-icon,.acf-admin-page .acf-field-meta-box .acf-selection.has-icon{margin-left:6px}.rtl.acf-admin-page .acf-field-setting-type .acf-selection.has-icon,.acf-admin-page .acf-field-permalink-rewrite .acf-selection.has-icon,.acf-admin-page .acf-field-query-var .acf-selection.has-icon,.acf-admin-page .acf-field-manage-terms .acf-selection.has-icon,.acf-admin-page .acf-field-edit-terms .acf-selection.has-icon,.acf-admin-page .acf-field-delete-terms .acf-selection.has-icon,.acf-admin-page .acf-field-assign-terms .acf-selection.has-icon,.acf-admin-page .acf-field-meta-box .acf-selection.has-icon{margin-right:6px}.acf-admin-page .acf-field-setting-type .select2-selection__arrow,.acf-admin-page .acf-field-permalink-rewrite .select2-selection__arrow,.acf-admin-page .acf-field-query-var .select2-selection__arrow,.acf-admin-page .acf-field-manage-terms .select2-selection__arrow,.acf-admin-page .acf-field-edit-terms .select2-selection__arrow,.acf-admin-page .acf-field-delete-terms .select2-selection__arrow,.acf-admin-page .acf-field-assign-terms .select2-selection__arrow,.acf-admin-page .acf-field-meta-box .select2-selection__arrow{width:20px;height:20px;top:calc(50% - 10px);right:12px;background-color:rgba(0,0,0,0)}.acf-admin-page .acf-field-setting-type .select2-selection__arrow:after,.acf-admin-page .acf-field-permalink-rewrite .select2-selection__arrow:after,.acf-admin-page .acf-field-query-var .select2-selection__arrow:after,.acf-admin-page .acf-field-manage-terms .select2-selection__arrow:after,.acf-admin-page .acf-field-edit-terms .select2-selection__arrow:after,.acf-admin-page .acf-field-delete-terms .select2-selection__arrow:after,.acf-admin-page .acf-field-assign-terms .select2-selection__arrow:after,.acf-admin-page .acf-field-meta-box .select2-selection__arrow:after{content:"";display:block;position:absolute;z-index:850;top:1px;left:0;width:20px;height:20px;-webkit-mask-image:url("../../images/icons/icon-chevron-down.svg");mask-image:url("../../images/icons/icon-chevron-down.svg");background-color:#667085;border:none;border-radius:0;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;text-indent:500%;white-space:nowrap;overflow:hidden}.acf-admin-page .acf-field-setting-type .select2-selection__arrow b[role=presentation],.acf-admin-page .acf-field-permalink-rewrite .select2-selection__arrow b[role=presentation],.acf-admin-page .acf-field-query-var .select2-selection__arrow b[role=presentation],.acf-admin-page .acf-field-manage-terms .select2-selection__arrow b[role=presentation],.acf-admin-page .acf-field-edit-terms .select2-selection__arrow b[role=presentation],.acf-admin-page .acf-field-delete-terms .select2-selection__arrow b[role=presentation],.acf-admin-page .acf-field-assign-terms .select2-selection__arrow b[role=presentation],.acf-admin-page .acf-field-meta-box .select2-selection__arrow b[role=presentation]{display:none}.acf-admin-page .acf-field-setting-type .select2-container--open .select2-selection__arrow:after,.acf-admin-page .acf-field-permalink-rewrite .select2-container--open .select2-selection__arrow:after,.acf-admin-page .acf-field-query-var .select2-container--open .select2-selection__arrow:after,.acf-admin-page .acf-field-manage-terms .select2-container--open .select2-selection__arrow:after,.acf-admin-page .acf-field-edit-terms .select2-container--open .select2-selection__arrow:after,.acf-admin-page .acf-field-delete-terms .select2-container--open .select2-selection__arrow:after,.acf-admin-page .acf-field-assign-terms .select2-container--open .select2-selection__arrow:after,.acf-admin-page .acf-field-meta-box .select2-container--open .select2-selection__arrow:after{-webkit-mask-image:url("../../images/icons/icon-chevron-up.svg");mask-image:url("../../images/icons/icon-chevron-up.svg")}.acf-admin-page .field-type-select-results{position:relative;top:4px;z-index:1002;border-radius:0 0 6px 6px;box-shadow:0px 8px 24px 4px rgba(16,24,40,.12)}.acf-admin-page .field-type-select-results.select2-dropdown--above{display:flex;flex-direction:column-reverse;top:0;border-radius:6px 6px 0 0;z-index:1030}.select2-container.select2-container--open.acf-admin-page .field-type-select-results{box-shadow:0px 0px 0px 3px #ebf5fa,0px 8px 24px 4px rgba(16,24,40,.12)}.acf-admin-page .field-type-select-results .acf-selection.has-icon{margin-left:6px}.rtl.acf-admin-page .field-type-select-results .acf-selection.has-icon{margin-right:6px}.acf-admin-page .field-type-select-results .select2-search{position:relative;margin:0;padding:0}.acf-admin-page .field-type-select-results .select2-search--dropdown:after{content:"";display:block;position:absolute;top:12px;left:13px;width:16px;height:16px;-webkit-mask-image:url("../../images/icons/icon-search.svg");mask-image:url("../../images/icons/icon-search.svg");background-color:#98a2b3;border:none;border-radius:0;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;text-indent:500%;white-space:nowrap;overflow:hidden}.rtl.acf-admin-page .field-type-select-results .select2-search--dropdown:after{right:12px;left:auto}.acf-admin-page .field-type-select-results .select2-search .select2-search__field{padding-left:38px;border-right:0;border-bottom:0;border-left:0;border-radius:0}.rtl.acf-admin-page .field-type-select-results .select2-search .select2-search__field{padding-right:38px;padding-left:0}.acf-admin-page .field-type-select-results .select2-search .select2-search__field:focus{border-top-color:#d0d5dd;outline:0}.acf-admin-page .field-type-select-results .select2-results__options{max-height:440px}.acf-admin-page .field-type-select-results .select2-results__option .select2-results__option--highlighted{background-color:#0783be !important;color:#f9fafb !important}.acf-admin-page .field-type-select-results .select2-results__option .select2-results__option{display:inline-flex;position:relative;width:calc(100% - 24px);min-height:32px;padding-top:0;padding-right:12px;padding-bottom:0;padding-left:12px;align-items:center}.acf-admin-page .field-type-select-results .select2-results__option .select2-results__option .field-type-icon{top:auto;width:18px;height:18px;margin-right:2px;box-shadow:0 0 0 1px #f9fafb}.acf-admin-page .field-type-select-results .select2-results__option .select2-results__option .field-type-icon:before{width:9px;height:9px}.acf-admin-page .field-type-select-results .select2-results__option[aria-selected=true]{background-color:#ebf5fa !important;color:#344054 !important}.acf-admin-page .field-type-select-results .select2-results__option[aria-selected=true]:after{content:"";right:13px;position:absolute;width:16px;height:16px;-webkit-mask-image:url("../../images/icons/icon-check.svg");mask-image:url("../../images/icons/icon-check.svg");background-color:#0783be;border:none;border-radius:0;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;text-indent:500%;white-space:nowrap;overflow:hidden}.rtl.acf-admin-page .field-type-select-results .select2-results__option[aria-selected=true]:after{left:13px;right:auto}.acf-admin-page .field-type-select-results .select2-results__group{display:inline-flex;align-items:center;width:calc(100% - 24px);min-height:25px;background-color:#f9fafb;border-top-width:1px;border-top-style:solid;border-top-color:#eaecf0;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#eaecf0;color:#98a2b3;font-size:11px;margin-bottom:0;padding-top:0;padding-right:12px;padding-bottom:0;padding-left:12px;font-weight:normal}.acf-admin-page.rtl .acf-field-setting-type .select2-selection__arrow:after,.acf-admin-page.rtl .acf-field-permalink-rewrite .select2-selection__arrow:after,.acf-admin-page.rtl .acf-field-query-var .select2-selection__arrow:after{right:auto;left:10px}.rtl.post-type-acf-field-group .acf-field-setting-name .acf-tip,.rtl.acf-internal-post-type .acf-field-setting-name .acf-tip{left:auto;right:654px}.acf-internal-post-type .tablenav.top{display:none}.acf-internal-post-type .subsubsub{margin-bottom:3px}.acf-internal-post-type .wp-list-table{margin-top:0;margin-right:0;margin-bottom:0;margin-left:0;border-radius:8px;border:none;overflow:hidden;box-shadow:0px 1px 2px rgba(16,24,40,.1)}.acf-internal-post-type .wp-list-table strong{color:#98a2b3;margin:0}.acf-internal-post-type .wp-list-table a.row-title{font-size:13px !important;font-weight:500}.acf-internal-post-type .wp-list-table th,.acf-internal-post-type .wp-list-table td{color:#344054}.acf-internal-post-type .wp-list-table th.sortable a,.acf-internal-post-type .wp-list-table td.sortable a{padding:0}.acf-internal-post-type .wp-list-table th.check-column,.acf-internal-post-type .wp-list-table td.check-column{padding-top:12px;padding-right:16px;padding-left:16px}@media screen and (max-width: 880px){.acf-internal-post-type .wp-list-table th.check-column,.acf-internal-post-type .wp-list-table td.check-column{vertical-align:top;padding-right:2px;padding-left:10px}}.acf-internal-post-type .wp-list-table th input,.acf-internal-post-type .wp-list-table td input{margin:0;padding:0}.acf-internal-post-type .wp-list-table th .acf-more-items,.acf-internal-post-type .wp-list-table td .acf-more-items{display:inline-flex;flex-direction:row;justify-content:center;align-items:center;padding:0px 6px 1px;gap:8px;width:25px;height:16px;background:#eaecf0;border-radius:100px;font-weight:400;font-size:10px;color:#475467}.acf-internal-post-type .wp-list-table th .acf-emdash,.acf-internal-post-type .wp-list-table td .acf-emdash{color:#d0d5dd}.acf-internal-post-type .wp-list-table thead th,.acf-internal-post-type .wp-list-table thead td,.acf-internal-post-type .wp-list-table tfoot th,.acf-internal-post-type .wp-list-table tfoot td{height:48px;padding-right:24px;padding-left:24px;box-sizing:border-box;background-color:#f9fafb;border-color:#eaecf0;font-weight:500}@media screen and (max-width: 880px){.acf-internal-post-type .wp-list-table thead th,.acf-internal-post-type .wp-list-table thead td,.acf-internal-post-type .wp-list-table tfoot th,.acf-internal-post-type .wp-list-table tfoot td{padding-right:16px;padding-left:8px}}@media screen and (max-width: 880px){.acf-internal-post-type .wp-list-table thead th.check-column,.acf-internal-post-type .wp-list-table thead td.check-column,.acf-internal-post-type .wp-list-table tfoot th.check-column,.acf-internal-post-type .wp-list-table tfoot td.check-column{vertical-align:middle}}.acf-internal-post-type .wp-list-table tbody th,.acf-internal-post-type .wp-list-table tbody td{box-sizing:border-box;height:60px;padding-top:10px;padding-right:24px;padding-bottom:10px;padding-left:24px;vertical-align:top;background-color:#fff;border-bottom-width:1px;border-bottom-color:#eaecf0;border-bottom-style:solid}@media screen and (max-width: 880px){.acf-internal-post-type .wp-list-table tbody th,.acf-internal-post-type .wp-list-table tbody td{padding-right:16px;padding-left:8px}}.acf-internal-post-type .wp-list-table .column-acf-key{white-space:nowrap}.acf-internal-post-type .wp-list-table .column-acf-key .acf-icon-key-solid{display:inline-block;position:relative;bottom:-2px;width:15px;height:15px;margin-right:4px;color:#98a2b3}.acf-internal-post-type .wp-list-table .acf-location .dashicons{position:relative;bottom:-2px;width:16px;height:16px;margin-right:6px;font-size:16px;color:#98a2b3}.acf-internal-post-type .wp-list-table .post-state{color:#667085}.acf-internal-post-type .wp-list-table tr:hover,.acf-internal-post-type .wp-list-table tr:focus-within{background:#f7f7f7}.acf-internal-post-type .wp-list-table tr:hover .row-actions,.acf-internal-post-type .wp-list-table tr:focus-within .row-actions{margin-bottom:0}@media screen and (min-width: 782px){.acf-internal-post-type .wp-list-table .column-acf-count{width:10%}}.acf-internal-post-type .wp-list-table .row-actions span.file{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.acf-internal-post-type.rtl .wp-list-table .column-acf-key .acf-icon-key-solid{margin-left:4px;margin-right:0}.acf-internal-post-type.rtl .wp-list-table .acf-location .dashicons{margin-left:6px;margin-right:0}.acf-internal-post-type .row-actions{margin-top:2px;padding-top:0;padding-right:0;padding-bottom:0;padding-left:0;line-height:14px;color:#d0d5dd}.acf-internal-post-type .row-actions .trash a{color:#d94f4f}.acf-internal-post-type .widefat thead td.check-column,.acf-internal-post-type .widefat tfoot td.check-column{padding-top:0}.acf-internal-post-type .row-actions a:hover{color:#044767}.acf-internal-post-type .row-actions .trash a{color:#a00}.acf-internal-post-type .row-actions .trash a:hover{color:red}.acf-internal-post-type .row-actions.visible{margin-bottom:0;opacity:1}.acf-internal-post-type #the-list tr:hover td,.acf-internal-post-type #the-list tr:hover th{background-color:#f7fbfd}.acf-internal-post-type .tablenav{margin-top:24px;margin-right:0;margin-bottom:0;margin-left:0;padding-top:0;padding-right:0;padding-bottom:0;padding-left:0;color:#667085}.acf-internal-post-type #posts-filter p.search-box{margin-top:5px;margin-right:0;margin-bottom:24px;margin-left:0}.acf-internal-post-type #posts-filter p.search-box #post-search-input{min-width:280px;margin-top:0;margin-right:8px;margin-bottom:0;margin-left:0}@media screen and (max-width: 768px){.acf-internal-post-type #posts-filter p.search-box{display:flex;box-sizing:border-box;padding-right:24px;margin-right:16px;position:inherit}.acf-internal-post-type #posts-filter p.search-box #post-search-input{min-width:auto}}.rtl.acf-internal-post-type #posts-filter p.search-box #post-search-input{margin-right:0;margin-left:8px}@media screen and (max-width: 768px){.rtl.acf-internal-post-type #posts-filter p.search-box{padding-left:24px;padding-right:0;margin-left:16px;margin-right:0}}.acf-internal-post-type .subsubsub{display:flex;align-items:flex-end;height:40px;margin-bottom:16px}.acf-internal-post-type .subsubsub li{margin-top:0;margin-right:4px;color:#98a2b3}.acf-internal-post-type .subsubsub li .count{color:#667085}.acf-internal-post-type .tablenav-pages{display:flex;align-items:center}.acf-internal-post-type .tablenav-pages.no-pages{display:none}.acf-internal-post-type .tablenav-pages .displaying-num{margin-top:0;margin-right:16px;margin-bottom:0;margin-left:0}.acf-internal-post-type .tablenav-pages .pagination-links{display:flex;align-items:center}.acf-internal-post-type .tablenav-pages .pagination-links #table-paging{margin-top:0;margin-right:4px;margin-bottom:0;margin-left:8px}.acf-internal-post-type .tablenav-pages .pagination-links #table-paging .total-pages{margin-right:0}.acf-internal-post-type .tablenav-pages.one-page .pagination-links{display:none}.acf-internal-post-type .tablenav-pages .pagination-links .button{display:inline-flex;align-items:center;align-content:center;justify-content:center;min-width:40px;margin-top:0;margin-right:0;margin-bottom:0;margin-left:0;padding-top:0;padding-right:0;padding-bottom:0;padding-left:0;background-color:rgba(0,0,0,0)}.acf-internal-post-type .tablenav-pages .pagination-links .button:nth-child(1),.acf-internal-post-type .tablenav-pages .pagination-links .button:nth-child(2),.acf-internal-post-type .tablenav-pages .pagination-links .button:last-child,.acf-internal-post-type .tablenav-pages .pagination-links .button:nth-last-child(2){display:inline-block;position:relative;text-indent:100%;white-space:nowrap;overflow:hidden;margin-left:4px}.acf-internal-post-type .tablenav-pages .pagination-links .button:nth-child(1):before,.acf-internal-post-type .tablenav-pages .pagination-links .button:nth-child(2):before,.acf-internal-post-type .tablenav-pages .pagination-links .button:last-child:before,.acf-internal-post-type .tablenav-pages .pagination-links .button:nth-last-child(2):before{content:"";display:block;position:absolute;width:100%;height:100%;top:0;left:0;background-color:#0783be;border-radius:0;-webkit-mask-size:20px;mask-size:20px;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}.acf-internal-post-type .tablenav-pages .pagination-links .button:nth-child(1):before{-webkit-mask-image:url("../../images/icons/icon-chevron-left-double.svg");mask-image:url("../../images/icons/icon-chevron-left-double.svg")}.acf-internal-post-type .tablenav-pages .pagination-links .button:nth-child(2):before{-webkit-mask-image:url("../../images/icons/icon-chevron-left.svg");mask-image:url("../../images/icons/icon-chevron-left.svg")}.acf-internal-post-type .tablenav-pages .pagination-links .button:nth-last-child(2):before{-webkit-mask-image:url("../../images/icons/icon-chevron-right.svg");mask-image:url("../../images/icons/icon-chevron-right.svg")}.acf-internal-post-type .tablenav-pages .pagination-links .button:last-child:before{-webkit-mask-image:url("../../images/icons/icon-chevron-right-double.svg");mask-image:url("../../images/icons/icon-chevron-right-double.svg")}.acf-internal-post-type .tablenav-pages .pagination-links .button:hover{border-color:#066998;background-color:rgba(7,131,190,.05)}.acf-internal-post-type .tablenav-pages .pagination-links .button:hover:before{background-color:#066998}.acf-internal-post-type .tablenav-pages .pagination-links .button.disabled{background-color:rgba(0,0,0,0) !important}.acf-internal-post-type .tablenav-pages .pagination-links .button.disabled.disabled:before{background-color:#d0d5dd}.acf-no-field-groups-wrapper,.acf-no-taxonomies-wrapper,.acf-no-post-types-wrapper{display:flex;justify-content:center;padding-top:48px;padding-bottom:48px}.acf-no-field-groups-wrapper .acf-no-field-groups-inner,.acf-no-field-groups-wrapper .acf-no-taxonomies-inner,.acf-no-field-groups-wrapper .acf-no-post-types-inner,.acf-no-taxonomies-wrapper .acf-no-field-groups-inner,.acf-no-taxonomies-wrapper .acf-no-taxonomies-inner,.acf-no-taxonomies-wrapper .acf-no-post-types-inner,.acf-no-post-types-wrapper .acf-no-field-groups-inner,.acf-no-post-types-wrapper .acf-no-taxonomies-inner,.acf-no-post-types-wrapper .acf-no-post-types-inner{display:flex;flex-wrap:wrap;justify-content:center;align-content:center;align-items:flex-start;text-align:center;max-width:380px;min-height:320px}.acf-no-field-groups-wrapper .acf-no-field-groups-inner img,.acf-no-field-groups-wrapper .acf-no-field-groups-inner h2,.acf-no-field-groups-wrapper .acf-no-field-groups-inner p,.acf-no-field-groups-wrapper .acf-no-taxonomies-inner img,.acf-no-field-groups-wrapper .acf-no-taxonomies-inner h2,.acf-no-field-groups-wrapper .acf-no-taxonomies-inner p,.acf-no-field-groups-wrapper .acf-no-post-types-inner img,.acf-no-field-groups-wrapper .acf-no-post-types-inner h2,.acf-no-field-groups-wrapper .acf-no-post-types-inner p,.acf-no-taxonomies-wrapper .acf-no-field-groups-inner img,.acf-no-taxonomies-wrapper .acf-no-field-groups-inner h2,.acf-no-taxonomies-wrapper .acf-no-field-groups-inner p,.acf-no-taxonomies-wrapper .acf-no-taxonomies-inner img,.acf-no-taxonomies-wrapper .acf-no-taxonomies-inner h2,.acf-no-taxonomies-wrapper .acf-no-taxonomies-inner p,.acf-no-taxonomies-wrapper .acf-no-post-types-inner img,.acf-no-taxonomies-wrapper .acf-no-post-types-inner h2,.acf-no-taxonomies-wrapper .acf-no-post-types-inner p,.acf-no-post-types-wrapper .acf-no-field-groups-inner img,.acf-no-post-types-wrapper .acf-no-field-groups-inner h2,.acf-no-post-types-wrapper .acf-no-field-groups-inner p,.acf-no-post-types-wrapper .acf-no-taxonomies-inner img,.acf-no-post-types-wrapper .acf-no-taxonomies-inner h2,.acf-no-post-types-wrapper .acf-no-taxonomies-inner p,.acf-no-post-types-wrapper .acf-no-post-types-inner img,.acf-no-post-types-wrapper .acf-no-post-types-inner h2,.acf-no-post-types-wrapper .acf-no-post-types-inner p{flex:1 0 100%}.acf-no-field-groups-wrapper .acf-no-field-groups-inner h2,.acf-no-field-groups-wrapper .acf-no-taxonomies-inner h2,.acf-no-field-groups-wrapper .acf-no-post-types-inner h2,.acf-no-taxonomies-wrapper .acf-no-field-groups-inner h2,.acf-no-taxonomies-wrapper .acf-no-taxonomies-inner h2,.acf-no-taxonomies-wrapper .acf-no-post-types-inner h2,.acf-no-post-types-wrapper .acf-no-field-groups-inner h2,.acf-no-post-types-wrapper .acf-no-taxonomies-inner h2,.acf-no-post-types-wrapper .acf-no-post-types-inner h2{margin-top:32px;margin-bottom:0;padding:0;color:#344054}.acf-no-field-groups-wrapper .acf-no-field-groups-inner p,.acf-no-field-groups-wrapper .acf-no-taxonomies-inner p,.acf-no-field-groups-wrapper .acf-no-post-types-inner p,.acf-no-taxonomies-wrapper .acf-no-field-groups-inner p,.acf-no-taxonomies-wrapper .acf-no-taxonomies-inner p,.acf-no-taxonomies-wrapper .acf-no-post-types-inner p,.acf-no-post-types-wrapper .acf-no-field-groups-inner p,.acf-no-post-types-wrapper .acf-no-taxonomies-inner p,.acf-no-post-types-wrapper .acf-no-post-types-inner p{margin-top:12px;margin-bottom:0;padding:0;color:#667085}.acf-no-field-groups-wrapper .acf-no-field-groups-inner p.acf-small,.acf-no-field-groups-wrapper .acf-no-taxonomies-inner p.acf-small,.acf-no-field-groups-wrapper .acf-no-post-types-inner p.acf-small,.acf-no-taxonomies-wrapper .acf-no-field-groups-inner p.acf-small,.acf-no-taxonomies-wrapper .acf-no-taxonomies-inner p.acf-small,.acf-no-taxonomies-wrapper .acf-no-post-types-inner p.acf-small,.acf-no-post-types-wrapper .acf-no-field-groups-inner p.acf-small,.acf-no-post-types-wrapper .acf-no-taxonomies-inner p.acf-small,.acf-no-post-types-wrapper .acf-no-post-types-inner p.acf-small{display:block;position:relative;margin-top:32px}.acf-no-field-groups-wrapper .acf-no-field-groups-inner img,.acf-no-field-groups-wrapper .acf-no-taxonomies-inner img,.acf-no-field-groups-wrapper .acf-no-post-types-inner img,.acf-no-taxonomies-wrapper .acf-no-field-groups-inner img,.acf-no-taxonomies-wrapper .acf-no-taxonomies-inner img,.acf-no-taxonomies-wrapper .acf-no-post-types-inner img,.acf-no-post-types-wrapper .acf-no-field-groups-inner img,.acf-no-post-types-wrapper .acf-no-taxonomies-inner img,.acf-no-post-types-wrapper .acf-no-post-types-inner img{max-width:284px;margin-bottom:0}.acf-no-field-groups-wrapper .acf-no-field-groups-inner .acf-btn,.acf-no-field-groups-wrapper .acf-no-taxonomies-inner .acf-btn,.acf-no-field-groups-wrapper .acf-no-post-types-inner .acf-btn,.acf-no-taxonomies-wrapper .acf-no-field-groups-inner .acf-btn,.acf-no-taxonomies-wrapper .acf-no-taxonomies-inner .acf-btn,.acf-no-taxonomies-wrapper .acf-no-post-types-inner .acf-btn,.acf-no-post-types-wrapper .acf-no-field-groups-inner .acf-btn,.acf-no-post-types-wrapper .acf-no-taxonomies-inner .acf-btn,.acf-no-post-types-wrapper .acf-no-post-types-inner .acf-btn{margin-top:32px}.acf-no-field-groups-wrapper .acf-no-post-types-inner img,.acf-no-taxonomies-wrapper .acf-no-post-types-inner img,.acf-no-post-types-wrapper .acf-no-post-types-inner img{width:106px;height:88px}.acf-no-field-groups-wrapper .acf-no-taxonomies-inner img,.acf-no-taxonomies-wrapper .acf-no-taxonomies-inner img,.acf-no-post-types-wrapper .acf-no-taxonomies-inner img{width:98px;height:88px}.acf-no-field-groups #the-list tr:hover td,.acf-no-field-groups #the-list tr:hover th,.acf-no-field-groups .acf-admin-field-groups .wp-list-table tr:hover,.acf-no-field-groups .striped>tbody>:nth-child(odd),.acf-no-field-groups ul.striped>:nth-child(odd),.acf-no-field-groups .alternate,.acf-no-post-types #the-list tr:hover td,.acf-no-post-types #the-list tr:hover th,.acf-no-post-types .acf-admin-field-groups .wp-list-table tr:hover,.acf-no-post-types .striped>tbody>:nth-child(odd),.acf-no-post-types ul.striped>:nth-child(odd),.acf-no-post-types .alternate,.acf-no-taxonomies #the-list tr:hover td,.acf-no-taxonomies #the-list tr:hover th,.acf-no-taxonomies .acf-admin-field-groups .wp-list-table tr:hover,.acf-no-taxonomies .striped>tbody>:nth-child(odd),.acf-no-taxonomies ul.striped>:nth-child(odd),.acf-no-taxonomies .alternate{background-color:rgba(0,0,0,0) !important}.acf-no-field-groups .wp-list-table thead,.acf-no-field-groups .wp-list-table tfoot,.acf-no-post-types .wp-list-table thead,.acf-no-post-types .wp-list-table tfoot,.acf-no-taxonomies .wp-list-table thead,.acf-no-taxonomies .wp-list-table tfoot{display:none}.acf-internal-post-type #the-list .no-items td{vertical-align:middle}.acf-internal-post-type .wp-list-table .toggle-row:before{top:4px;left:16px;border-radius:0;content:"";display:block;position:absolute;width:16px;height:16px;background-color:#0783be;border-radius:0;-webkit-mask-size:20px;mask-size:20px;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-image:url("../../images/icons/icon-chevron-down.svg");mask-image:url("../../images/icons/icon-chevron-down.svg");text-indent:100%;white-space:nowrap;overflow:hidden}.acf-internal-post-type .wp-list-table .is-expanded .toggle-row:before{-webkit-mask-image:url("../../images/icons/icon-chevron-up.svg");mask-image:url("../../images/icons/icon-chevron-up.svg")}@media screen and (max-width: 880px){.acf-internal-post-type .widefat th input[type=checkbox],.acf-internal-post-type .widefat thead td input[type=checkbox],.acf-internal-post-type .widefat tfoot td input[type=checkbox]{margin-bottom:0}}.acf-admin-toolbar{position:unset;top:32px;height:72px;z-index:800;background:#344054;color:#98a2b3}.acf-admin-toolbar .acf-admin-toolbar-inner{display:flex;justify-content:space-between;align-content:center;align-items:center;max-width:100%}.acf-admin-toolbar .acf-admin-toolbar-inner .acf-nav-wrap{display:flex;align-items:center}.acf-admin-toolbar .acf-admin-toolbar-inner .acf-nav-upgrade-wrap{display:flex;align-items:center}.acf-admin-toolbar .acf-admin-toolbar-inner .acf-nav-wpengine-logo{display:inline-flex;margin-left:24px}@media screen and (max-width: 1465px){.acf-admin-toolbar .acf-admin-toolbar-inner .acf-nav-wpengine-logo{display:none}}@media screen and (max-width: 880px){.acf-admin-toolbar{position:static}}.acf-admin-toolbar .acf-logo{display:flex;margin-right:24px;text-decoration:none}.acf-admin-toolbar .acf-logo .acf-pro-label{margin-left:8px}.acf-admin-toolbar .acf-logo img{display:block;max-width:55px;line-height:0%}.acf-admin-toolbar h2{display:none;color:#f9fafb}.acf-admin-toolbar .acf-tab{display:flex;align-items:center;box-sizing:border-box;min-height:40px;margin-right:8px;padding-top:8px;padding-right:16px;padding-bottom:8px;padding-left:16px;border-width:1px;border-style:solid;border-color:rgba(0,0,0,0);border-radius:6px;color:#98a2b3;text-decoration:none}.acf-admin-toolbar .acf-tab.is-active{background-color:#475467;color:#fff}.acf-admin-toolbar .acf-tab:hover{background-color:#475467;color:#f9fafb}.acf-admin-toolbar .acf-tab:focus-visible{border-width:1px;border-style:solid;border-color:#667085}.acf-admin-toolbar .acf-tab:focus{box-shadow:none}.acf-admin-toolbar .acf-more:hover .acf-tab.acf-more-tab{background-color:#475467;color:#f9fafb}.acf-admin-toolbar .acf-more ul{display:none;position:absolute;box-sizing:border-box;background:#fff;z-index:1051;overflow:hidden;min-width:280px;margin-top:0;margin-right:0;margin-bottom:0;margin-left:0;padding-top:0;padding-right:16px;padding-bottom:0;padding-left:16px;border-radius:8px;box-shadow:0px 0px 0px 1px rgba(0,0,0,.04),0px 8px 23px rgba(0,0,0,.12)}.acf-admin-toolbar .acf-more ul li{margin:0;padding:0}.acf-admin-toolbar .acf-more ul li a{margin:0;padding:0;color:#1d2939;border-radius:0;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#f2f4f7}.acf-admin-toolbar .acf-more ul li a:hover,.acf-admin-toolbar .acf-more ul li a.acf-tab.is-active{background-color:unset;color:#0783be}.acf-admin-toolbar .acf-more ul li a i.acf-icon{display:none !important;width:16px;height:16px;-webkit-mask-size:16px;mask-size:16px;background-color:#98a2b3 !important}.acf-admin-toolbar .acf-more ul li:last-child a{border-bottom:none}.acf-admin-toolbar .acf-more ul:hover,.acf-admin-toolbar .acf-more ul:focus{display:block}.acf-admin-toolbar .acf-more:hover ul,.acf-admin-toolbar .acf-more:focus ul{display:block}#wpcontent .acf-admin-toolbar{box-sizing:border-box;margin-left:-20px;padding-top:16px;padding-right:32px;padding-bottom:16px;padding-left:32px}@media screen and (max-width: 600px){.acf-admin-toolbar{display:none}}.acf-internal-post-type.post-php .acf-admin-toolbar .acf-admin-toolbar-inner{max-width:1440px}.rtl #wpcontent .acf-admin-toolbar{margin-left:0;margin-right:-20px}.rtl #wpcontent .acf-admin-toolbar .acf-tab{margin-left:8px;margin-right:0}.rtl .acf-logo{margin-right:0;margin-left:32px}.acf-admin-toolbar .acf-tab i.acf-icon,.acf-admin-toolbar .acf-more i.acf-icon{display:none;margin-right:8px;margin-left:-2px}.acf-admin-toolbar .acf-tab i.acf-icon.acf-icon-dropdown,.acf-admin-toolbar .acf-more i.acf-icon.acf-icon-dropdown{-webkit-mask-image:url("../../images/icons/icon-chevron-down.svg");mask-image:url("../../images/icons/icon-chevron-down.svg");width:16px;height:16px;-webkit-mask-size:16px;mask-size:16px;margin-right:-6px;margin-left:6px}.acf-admin-toolbar .acf-tab.acf-header-tab-acf-field-group i.acf-icon,.acf-admin-toolbar .acf-tab.acf-header-tab-acf-post-type i.acf-icon,.acf-admin-toolbar .acf-tab.acf-header-tab-acf-taxonomy i.acf-icon,.acf-admin-toolbar .acf-tab.acf-header-tab-acf-tools i.acf-icon,.acf-admin-toolbar .acf-tab.acf-header-tab-acf-settings-updates i.acf-icon,.acf-admin-toolbar .acf-tab.acf-header-tab-acf-more i.acf-icon,.acf-admin-toolbar .acf-more.acf-header-tab-acf-field-group i.acf-icon,.acf-admin-toolbar .acf-more.acf-header-tab-acf-post-type i.acf-icon,.acf-admin-toolbar .acf-more.acf-header-tab-acf-taxonomy i.acf-icon,.acf-admin-toolbar .acf-more.acf-header-tab-acf-tools i.acf-icon,.acf-admin-toolbar .acf-more.acf-header-tab-acf-settings-updates i.acf-icon,.acf-admin-toolbar .acf-more.acf-header-tab-acf-more i.acf-icon{display:inline-flex}.acf-admin-toolbar .acf-tab.is-active i.acf-icon,.acf-admin-toolbar .acf-tab:hover i.acf-icon,.acf-admin-toolbar .acf-more.is-active i.acf-icon,.acf-admin-toolbar .acf-more:hover i.acf-icon{background-color:#eaecf0}.rtl .acf-admin-toolbar .acf-tab i.acf-icon{margin-right:-2px;margin-left:8px}.acf-admin-toolbar .acf-header-tab-acf-field-group i.acf-icon{-webkit-mask-image:url("../../images/icons/icon-field-groups.svg");mask-image:url("../../images/icons/icon-field-groups.svg")}.acf-admin-toolbar .acf-header-tab-acf-post-type i.acf-icon{-webkit-mask-image:url("../../images/icons/icon-post-type.svg");mask-image:url("../../images/icons/icon-post-type.svg")}.acf-admin-toolbar .acf-header-tab-acf-taxonomy i.acf-icon{-webkit-mask-image:url("../../images/icons/icon-taxonomies.svg");mask-image:url("../../images/icons/icon-taxonomies.svg")}.acf-admin-toolbar .acf-header-tab-acf-tools i.acf-icon{-webkit-mask-image:url("../../images/icons/icon-tools.svg");mask-image:url("../../images/icons/icon-tools.svg")}.acf-admin-toolbar .acf-header-tab-acf-settings-updates i.acf-icon{-webkit-mask-image:url("../../images/icons/icon-updates.svg");mask-image:url("../../images/icons/icon-updates.svg")}.acf-admin-toolbar .acf-header-tab-acf-more i.acf-icon-more{-webkit-mask-image:url("../../images/icons/icon-extended-menu.svg");mask-image:url("../../images/icons/icon-extended-menu.svg")}.acf-admin-page h1.wp-heading-inline{display:none}.acf-admin-page .wrap .wp-heading-inline+.page-title-action{display:none}.acf-headerbar{display:flex;align-items:center;position:sticky;top:32px;z-index:700;box-sizing:border-box;min-height:72px;margin-left:-20px;padding-top:8px;padding-right:32px;padding-bottom:8px;padding-left:32px;background-color:#fff;box-shadow:0px 1px 2px rgba(16,24,40,.1)}.acf-headerbar .acf-headerbar-inner{flex:1 1 auto;display:flex;align-items:center;justify-content:space-between;max-width:1440px}.acf-headerbar .acf-page-title{margin-top:0;margin-right:16px;margin-bottom:0;margin-left:0;padding-top:0;padding-right:0;padding-bottom:0;padding-left:0}@media screen and (max-width: 880px){.acf-headerbar{position:static}}@media screen and (max-width: 600px){.acf-headerbar{justify-content:space-between;position:relative;top:46px;min-height:64px;padding-right:12px}}.acf-headerbar .acf-headerbar-content{flex:1 1 auto;display:flex;align-items:center}@media screen and (max-width: 880px){.acf-headerbar .acf-headerbar-content{flex-wrap:wrap}.acf-headerbar .acf-headerbar-content .acf-headerbar-title,.acf-headerbar .acf-headerbar-content .acf-title-wrap{flex:1 1 100%}.acf-headerbar .acf-headerbar-content .acf-title-wrap{margin-top:8px}}.acf-headerbar .acf-input-error{border:1px rgba(209,55,55,.5) solid !important;box-shadow:0px 0px 0px 3px rgba(209,55,55,.12),0px 0px 0px rgba(255,54,54,.25) !important;background-image:url("../../images/icons/icon-warning-alt-red.svg");background-position:right 10px top 50%;background-size:20px;background-repeat:no-repeat}.acf-headerbar .acf-input-error:focus{outline:none !important;border:1px rgba(209,55,55,.8) solid !important;box-shadow:0px 0px 0px 3px rgba(209,55,55,.16),0px 0px 0px rgba(255,54,54,.25) !important}.acf-headerbar .acf-headerbar-title-field{min-width:320px}@media screen and (max-width: 880px){.acf-headerbar .acf-headerbar-title-field{min-width:100%}}.acf-headerbar .acf-headerbar-actions{display:flex}.acf-headerbar .acf-headerbar-actions .acf-btn{margin-left:8px}.acf-headerbar .acf-headerbar-actions .disabled{background-color:#f2f4f7;color:#98a2b3 !important;border:1px #d0d5dd solid;cursor:default}.acf-headerbar-field-editor{position:sticky;top:32px;z-index:1020;margin-left:-20px;width:calc(100% + 20px)}@media screen and (max-width: 880px){.acf-headerbar-field-editor{position:relative;top:0;width:100%;margin-left:0;padding-right:8px;padding-left:8px}}@media screen and (max-width: 640px){.acf-headerbar-field-editor{position:relative;top:46px}}@media screen and (max-width: 880px){.acf-headerbar-field-editor .acf-headerbar-inner{flex-wrap:wrap;justify-content:flex-start;align-content:flex-start;align-items:flex-start;width:100%}.acf-headerbar-field-editor .acf-headerbar-inner .acf-page-title{flex:1 1 auto}.acf-headerbar-field-editor .acf-headerbar-inner .acf-headerbar-actions{flex:1 1 100%;margin-top:8px;gap:8px}.acf-headerbar-field-editor .acf-headerbar-inner .acf-headerbar-actions .acf-btn{width:100%;display:inline-flex;justify-content:center;margin:0}}.acf-headerbar-field-editor .acf-page-title{margin-right:16px}.rtl .acf-headerbar,.rtl .acf-headerbar-field-editor{margin-left:0;margin-right:-20px}.rtl .acf-headerbar .acf-page-title,.rtl .acf-headerbar-field-editor .acf-page-title{margin-left:16px;margin-right:0}.rtl .acf-headerbar .acf-headerbar-actions .acf-btn,.rtl .acf-headerbar-field-editor .acf-headerbar-actions .acf-btn{margin-left:0;margin-right:8px}.acf-btn{display:inline-flex;align-items:center;box-sizing:border-box;min-height:40px;padding-top:8px;padding-right:16px;padding-bottom:8px;padding-left:16px;background-color:#0783be;border-radius:6px;border-width:1px;border-style:solid;border-color:rgba(16,24,40,.2);text-decoration:none;color:#fff !important;transition:all .2s ease-in-out;transition-property:background,border,box-shadow}.acf-btn:disabled{background-color:red}.acf-btn:hover{background-color:#066998;color:#fff;cursor:pointer}.acf-btn.acf-btn-sm{min-height:32px;padding-top:4px;padding-right:12px;padding-bottom:4px;padding-left:12px}.acf-btn.acf-btn-secondary{background-color:rgba(0,0,0,0);color:#0783be !important;border-color:#0783be}.acf-btn.acf-btn-secondary:hover{background-color:#f3f9fc}.acf-btn.acf-btn-tertiary{background-color:rgba(0,0,0,0);color:#667085 !important;border-color:#d0d5dd}.acf-btn.acf-btn-tertiary:hover{color:#667085 !important;border-color:#98a2b3}.acf-btn.acf-btn-clear{background-color:rgba(0,0,0,0);color:#667085 !important;border-color:rgba(0,0,0,0)}.acf-btn.acf-btn-clear:hover{color:#0783be !important}.acf-btn.acf-btn-pro{background:linear-gradient(90.52deg, #3E8BFF 0.44%, #A45CFF 113.3%);background-size:180% 80%;background-position:100% 0;transition:background-position .5s}.acf-btn.acf-btn-pro:hover{background-position:0 0}.acf-btn i.acf-icon{width:20px;height:20px;-webkit-mask-size:20px;mask-size:20px;margin-right:6px;margin-left:-4px}.acf-btn.acf-btn-sm i.acf-icon{width:16px;height:16px;-webkit-mask-size:16px;mask-size:16px;margin-right:6px;margin-left:-2px}.rtl .acf-btn i.acf-icon{margin-right:-4px;margin-left:6px}.rtl .acf-btn.acf-btn-sm i.acf-icon{margin-right:-4px;margin-left:2px}.acf-btn.acf-delete-field-group:hover{background-color:#fbeded;border-color:#d13737 !important;color:#d13737 !important}.acf-internal-post-type i.acf-icon,.post-type-acf-field-group i.acf-icon{display:inline-flex;width:20px;height:20px;background-color:currentColor;border:none;border-radius:0;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;text-indent:500%;white-space:nowrap;overflow:hidden}.acf-admin-page i.acf-field-setting-fc-delete,.acf-admin-page i.acf-field-setting-fc-duplicate{box-sizing:border-box;display:flex;flex-direction:row;justify-content:center;align-items:center;padding:8px;cursor:pointer;width:32px;height:32px;background:#fff;border:1px solid #d0d5dd;box-shadow:0px 1px 2px rgba(16,24,40,.1);border-radius:6px;flex:none;order:0;flex-grow:0}.acf-admin-page i.acf-icon-plus{-webkit-mask-image:url("../../images/icons/icon-add.svg");mask-image:url("../../images/icons/icon-add.svg")}.acf-admin-page i.acf-icon-stars{-webkit-mask-image:url("../../images/icons/icon-stars.svg");mask-image:url("../../images/icons/icon-stars.svg")}.acf-admin-page i.acf-icon-help{-webkit-mask-image:url("../../images/icons/icon-help.svg");mask-image:url("../../images/icons/icon-help.svg")}.acf-admin-page i.acf-icon-key{-webkit-mask-image:url("../../images/icons/icon-key.svg");mask-image:url("../../images/icons/icon-key.svg")}.acf-admin-page i.acf-icon-regenerate{-webkit-mask-image:url("../../images/icons/icon-regenerate.svg");mask-image:url("../../images/icons/icon-regenerate.svg")}.acf-admin-page i.acf-icon-trash,.acf-admin-page button.acf-icon-trash{-webkit-mask-image:url("../../images/icons/icon-trash.svg");mask-image:url("../../images/icons/icon-trash.svg")}.acf-admin-page i.acf-icon-extended-menu,.acf-admin-page button.acf-icon-extended-menu{-webkit-mask-image:url("../../images/icons/icon-extended-menu.svg");mask-image:url("../../images/icons/icon-extended-menu.svg")}.acf-admin-page i.acf-icon.-duplicate,.acf-admin-page button.acf-icon-duplicate{-webkit-mask-image:url("../../images/field-type-icons/icon-field-clone.svg");mask-image:url("../../images/field-type-icons/icon-field-clone.svg")}.acf-admin-page i.acf-icon.-duplicate:before,.acf-admin-page i.acf-icon.-duplicate:after,.acf-admin-page button.acf-icon-duplicate:before,.acf-admin-page button.acf-icon-duplicate:after{content:none}.acf-admin-page i.acf-icon-arrow-right{-webkit-mask-image:url("../../images/icons/icon-arrow-right.svg");mask-image:url("../../images/icons/icon-arrow-right.svg")}.acf-admin-page i.acf-icon-arrow-up-right{-webkit-mask-image:url("../../images/icons/icon-arrow-up-right.svg");mask-image:url("../../images/icons/icon-arrow-up-right.svg")}.acf-admin-page i.acf-icon-arrow-left{-webkit-mask-image:url("../../images/icons/icon-arrow-left.svg");mask-image:url("../../images/icons/icon-arrow-left.svg")}.acf-admin-page i.acf-icon-chevron-right,.acf-admin-page .acf-icon.-right{-webkit-mask-image:url("../../images/icons/icon-chevron-right.svg");mask-image:url("../../images/icons/icon-chevron-right.svg")}.acf-admin-page i.acf-icon-chevron-left,.acf-admin-page .acf-icon.-left{-webkit-mask-image:url("../../images/icons/icon-chevron-left.svg");mask-image:url("../../images/icons/icon-chevron-left.svg")}.acf-admin-page i.acf-icon-key-solid{-webkit-mask-image:url("../../images/icons/icon-key-solid.svg");mask-image:url("../../images/icons/icon-key-solid.svg")}.acf-admin-page i.acf-icon-globe,.acf-admin-page .acf-icon.-globe{-webkit-mask-image:url("../../images/icons/icon-globe.svg");mask-image:url("../../images/icons/icon-globe.svg")}.acf-admin-page i.acf-icon-image,.acf-admin-page .acf-icon.-picture{-webkit-mask-image:url("../../images/field-type-icons/icon-field-image.svg");mask-image:url("../../images/field-type-icons/icon-field-image.svg")}.acf-admin-page i.acf-icon-warning{-webkit-mask-image:url("../../images/icons/icon-warning-alt.svg");mask-image:url("../../images/icons/icon-warning-alt.svg")}.acf-admin-page i.acf-icon-warning-red{-webkit-mask-image:url("../../images/icons/icon-warning-alt-red.svg");mask-image:url("../../images/icons/icon-warning-alt-red.svg")}.acf-admin-page i.acf-icon-dots-grid{-webkit-mask-image:url("../../images/icons/icon-dots-grid.svg");mask-image:url("../../images/icons/icon-dots-grid.svg")}.acf-admin-page i.acf-icon-play{-webkit-mask-image:url("../../images/icons/icon-play.svg");mask-image:url("../../images/icons/icon-play.svg")}.acf-admin-page i.acf-icon-lock{-webkit-mask-image:url("../../images/icons/icon-lock.svg");mask-image:url("../../images/icons/icon-lock.svg")}.acf-admin-page i.acf-icon-document{-webkit-mask-image:url("../../images/icons/icon-document.svg");mask-image:url("../../images/icons/icon-document.svg")}.acf-admin-page .post-type-acf-field-group .post-state,.acf-admin-page .acf-internal-post-type .post-state{font-weight:normal}.acf-admin-page .post-type-acf-field-group .post-state .dashicons.dashicons-hidden,.acf-admin-page .acf-internal-post-type .post-state .dashicons.dashicons-hidden{display:inline-flex;width:18px;height:18px;background-color:#98a2b3;border:none;border-radius:0;-webkit-mask-size:18px;mask-size:18px;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-image:url("../../images/icons/icon-hidden.svg");mask-image:url("../../images/icons/icon-hidden.svg")}.acf-admin-page .post-type-acf-field-group .post-state .dashicons.dashicons-hidden:before,.acf-admin-page .acf-internal-post-type .post-state .dashicons.dashicons-hidden:before{display:none}#acf-field-group-fields .postbox-header h2,#acf-field-group-fields .postbox-header h3,#acf-field-group-fields .acf-sub-field-list-header h2,#acf-field-group-fields .acf-sub-field-list-header h3,#acf-field-group-options .postbox-header h2,#acf-field-group-options .postbox-header h3,#acf-field-group-options .acf-sub-field-list-header h2,#acf-field-group-options .acf-sub-field-list-header h3,#acf-advanced-settings .postbox-header h2,#acf-advanced-settings .postbox-header h3,#acf-advanced-settings .acf-sub-field-list-header h2,#acf-advanced-settings .acf-sub-field-list-header h3{display:inline-flex;justify-content:flex-start;align-content:stretch;align-items:center}#acf-field-group-fields .postbox-header h2:before,#acf-field-group-fields .postbox-header h3:before,#acf-field-group-fields .acf-sub-field-list-header h2:before,#acf-field-group-fields .acf-sub-field-list-header h3:before,#acf-field-group-options .postbox-header h2:before,#acf-field-group-options .postbox-header h3:before,#acf-field-group-options .acf-sub-field-list-header h2:before,#acf-field-group-options .acf-sub-field-list-header h3:before,#acf-advanced-settings .postbox-header h2:before,#acf-advanced-settings .postbox-header h3:before,#acf-advanced-settings .acf-sub-field-list-header h2:before,#acf-advanced-settings .acf-sub-field-list-header h3:before{content:"";display:inline-block;width:20px;height:20px;margin-right:8px;background-color:#98a2b3;border:none;border-radius:0;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}.rtl #acf-field-group-fields .postbox-header h2:before,.rtl #acf-field-group-fields .postbox-header h3:before,.rtl #acf-field-group-fields .acf-sub-field-list-header h2:before,.rtl #acf-field-group-fields .acf-sub-field-list-header h3:before,.rtl #acf-field-group-options .postbox-header h2:before,.rtl #acf-field-group-options .postbox-header h3:before,.rtl #acf-field-group-options .acf-sub-field-list-header h2:before,.rtl #acf-field-group-options .acf-sub-field-list-header h3:before{margin-right:0;margin-left:8px}#acf-field-group-fields .postbox-header h2:before,h3.acf-sub-field-list-title:before,.acf-link-field-groups-popup h3:before{-webkit-mask-image:url("../../images/icons/icon-fields.svg");mask-image:url("../../images/icons/icon-fields.svg")}#acf-field-group-options .postbox-header h2:before{-webkit-mask-image:url("../../images/icons/icon-settings.svg");mask-image:url("../../images/icons/icon-settings.svg")}.acf-field-setting-fc_layout .acf-field-settings-fc_head label:before{-webkit-mask-image:url("../../images/icons/icon-layout.svg");mask-image:url("../../images/icons/icon-layout.svg")}.acf-admin-single-post-type #acf-advanced-settings .postbox-header h2:before,.acf-admin-single-taxonomy #acf-advanced-settings .postbox-header h2:before{-webkit-mask-image:url("../../images/icons/icon-post-type.svg");mask-image:url("../../images/icons/icon-post-type.svg")}.acf-field-setting-fc_layout .acf-field-settings-fc_head:hover .reorder-layout:before{width:20px;height:11px;background-color:#475467 !important;-webkit-mask-image:url("../../images/icons/icon-draggable.svg");mask-image:url("../../images/icons/icon-draggable.svg")}.post-type-acf-field-group .postbox-header .handle-actions,.post-type-acf-field-group #acf-field-group-fields .postbox-header .handle-actions,.post-type-acf-field-group #acf-field-group-options .postbox-header .handle-actions,.post-type-acf-field-group .postbox .postbox-header .handle-actions,.acf-admin-single-post-type #acf-advanced-settings .postbox-header .handle-actions,.acf-admin-single-taxonomy #acf-advanced-settings .postbox-header .handle-actions{display:flex}.post-type-acf-field-group .postbox-header .handle-actions .toggle-indicator:before,.post-type-acf-field-group #acf-field-group-fields .postbox-header .handle-actions .toggle-indicator:before,.post-type-acf-field-group #acf-field-group-options .postbox-header .handle-actions .toggle-indicator:before,.post-type-acf-field-group .postbox .postbox-header .handle-actions .toggle-indicator:before,.acf-admin-single-post-type #acf-advanced-settings .postbox-header .handle-actions .toggle-indicator:before,.acf-admin-single-taxonomy #acf-advanced-settings .postbox-header .handle-actions .toggle-indicator:before{content:"";display:inline-flex;width:20px;height:20px;background-color:currentColor;border:none;border-radius:0;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-image:url("../../images/icons/icon-chevron-up.svg");mask-image:url("../../images/icons/icon-chevron-up.svg")}.post-type-acf-field-group.closed .postbox-header .handle-actions .toggle-indicator:before,.post-type-acf-field-group #acf-field-group-fields.closed .postbox-header .handle-actions .toggle-indicator:before,.post-type-acf-field-group #acf-field-group-options.closed .postbox-header .handle-actions .toggle-indicator:before,.post-type-acf-field-group .postbox.closed .postbox-header .handle-actions .toggle-indicator:before,.acf-admin-single-post-type #acf-advanced-settings.closed .postbox-header .handle-actions .toggle-indicator:before,.acf-admin-single-taxonomy #acf-advanced-settings.closed .postbox-header .handle-actions .toggle-indicator:before{-webkit-mask-image:url("../../images/icons/icon-chevron-down.svg");mask-image:url("../../images/icons/icon-chevron-down.svg")}.post-type-acf-field-group #acf-admin-tool-export h2,.post-type-acf-field-group #acf-admin-tool-export h3,.post-type-acf-field-group #acf-admin-tool-import h2,.post-type-acf-field-group #acf-admin-tool-import h3,.post-type-acf-field-group #acf-license-information h2,.post-type-acf-field-group #acf-license-information h3,.post-type-acf-field-group #acf-update-information h2,.post-type-acf-field-group #acf-update-information h3{display:inline-flex;justify-content:flex-start;align-content:stretch;align-items:center}.post-type-acf-field-group #acf-admin-tool-export h2:before,.post-type-acf-field-group #acf-admin-tool-export h3:before,.post-type-acf-field-group #acf-admin-tool-import h2:before,.post-type-acf-field-group #acf-admin-tool-import h3:before,.post-type-acf-field-group #acf-license-information h2:before,.post-type-acf-field-group #acf-license-information h3:before,.post-type-acf-field-group #acf-update-information h2:before,.post-type-acf-field-group #acf-update-information h3:before{content:"";display:inline-block;width:20px;height:20px;margin-right:8px;background-color:#98a2b3;border:none;border-radius:0;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}.post-type-acf-field-group.rtl #acf-admin-tool-export h2:before,.post-type-acf-field-group.rtl #acf-admin-tool-export h3:before,.post-type-acf-field-group.rtl #acf-admin-tool-import h2:before,.post-type-acf-field-group.rtl #acf-admin-tool-import h3:before,.post-type-acf-field-group.rtl #acf-license-information h2:before,.post-type-acf-field-group.rtl #acf-license-information h3:before,.post-type-acf-field-group.rtl #acf-update-information h2:before,.post-type-acf-field-group.rtl #acf-update-information h3:before{margin-right:0;margin-left:8px}.post-type-acf-field-group #acf-admin-tool-export h2:before{-webkit-mask-image:url("../../images/icons/icon-export.svg");mask-image:url("../../images/icons/icon-export.svg")}.post-type-acf-field-group #acf-admin-tool-import h2:before{-webkit-mask-image:url("../../images/icons/icon-import.svg");mask-image:url("../../images/icons/icon-import.svg")}.post-type-acf-field-group #acf-license-information h3:before{-webkit-mask-image:url("../../images/icons/icon-key.svg");mask-image:url("../../images/icons/icon-key.svg")}.post-type-acf-field-group #acf-update-information h3:before{-webkit-mask-image:url("../../images/icons/icon-info.svg");mask-image:url("../../images/icons/icon-info.svg")}.acf-admin-single-field-group .acf-input .acf-icon{width:18px;height:18px}.field-type-icon{box-sizing:border-box;display:inline-flex;align-content:center;align-items:center;justify-content:center;position:relative;width:24px;height:24px;top:-4px;background-color:#ebf5fa;border-width:1px;border-style:solid;border-color:#a5d2e7;border-radius:100%}.field-type-icon:before{content:"";width:14px;height:14px;position:relative;background-color:#0783be;-webkit-mask-size:cover;mask-size:cover;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-image:url("../../images/field-type-icons/icon-field-default.svg");mask-image:url("../../images/field-type-icons/icon-field-default.svg")}.field-type-icon.field-type-icon-text:before{-webkit-mask-image:url("../../images/field-type-icons/icon-field-text.svg");mask-image:url("../../images/field-type-icons/icon-field-text.svg")}.field-type-icon.field-type-icon-textarea:before{-webkit-mask-image:url("../../images/field-type-icons/icon-field-textarea.svg");mask-image:url("../../images/field-type-icons/icon-field-textarea.svg")}.field-type-icon.field-type-icon-textarea:before{-webkit-mask-image:url("../../images/field-type-icons/icon-field-textarea.svg");mask-image:url("../../images/field-type-icons/icon-field-textarea.svg")}.field-type-icon.field-type-icon-number:before{-webkit-mask-image:url("../../images/field-type-icons/icon-field-number.svg");mask-image:url("../../images/field-type-icons/icon-field-number.svg")}.field-type-icon.field-type-icon-range:before{-webkit-mask-image:url("../../images/field-type-icons/icon-field-range.svg");mask-image:url("../../images/field-type-icons/icon-field-range.svg")}.field-type-icon.field-type-icon-email:before{-webkit-mask-image:url("../../images/field-type-icons/icon-field-email.svg");mask-image:url("../../images/field-type-icons/icon-field-email.svg")}.field-type-icon.field-type-icon-url:before{-webkit-mask-image:url("../../images/field-type-icons/icon-field-url.svg");mask-image:url("../../images/field-type-icons/icon-field-url.svg")}.field-type-icon.field-type-icon-password:before{-webkit-mask-image:url("../../images/field-type-icons/icon-field-password.svg");mask-image:url("../../images/field-type-icons/icon-field-password.svg")}.field-type-icon.field-type-icon-image:before{-webkit-mask-image:url("../../images/field-type-icons/icon-field-image.svg");mask-image:url("../../images/field-type-icons/icon-field-image.svg")}.field-type-icon.field-type-icon-file:before{-webkit-mask-image:url("../../images/field-type-icons/icon-field-file.svg");mask-image:url("../../images/field-type-icons/icon-field-file.svg")}.field-type-icon.field-type-icon-wysiwyg:before{-webkit-mask-image:url("../../images/field-type-icons/icon-field-wysiwyg.svg");mask-image:url("../../images/field-type-icons/icon-field-wysiwyg.svg")}.field-type-icon.field-type-icon-oembed:before{-webkit-mask-image:url("../../images/field-type-icons/icon-field-oembed.svg");mask-image:url("../../images/field-type-icons/icon-field-oembed.svg")}.field-type-icon.field-type-icon-gallery:before{-webkit-mask-image:url("../../images/field-type-icons/icon-field-gallery.svg");mask-image:url("../../images/field-type-icons/icon-field-gallery.svg")}.field-type-icon.field-type-icon-select:before{-webkit-mask-image:url("../../images/field-type-icons/icon-field-select.svg");mask-image:url("../../images/field-type-icons/icon-field-select.svg")}.field-type-icon.field-type-icon-checkbox:before{-webkit-mask-image:url("../../images/field-type-icons/icon-field-checkbox.svg");mask-image:url("../../images/field-type-icons/icon-field-checkbox.svg")}.field-type-icon.field-type-icon-radio:before{-webkit-mask-image:url("../../images/field-type-icons/icon-field-radio.svg");mask-image:url("../../images/field-type-icons/icon-field-radio.svg")}.field-type-icon.field-type-icon-button-group:before{-webkit-mask-image:url("../../images/field-type-icons/icon-field-button-group.svg");mask-image:url("../../images/field-type-icons/icon-field-button-group.svg")}.field-type-icon.field-type-icon-true-false:before{-webkit-mask-image:url("../../images/field-type-icons/icon-field-true-false.svg");mask-image:url("../../images/field-type-icons/icon-field-true-false.svg")}.field-type-icon.field-type-icon-link:before{-webkit-mask-image:url("../../images/field-type-icons/icon-field-link.svg");mask-image:url("../../images/field-type-icons/icon-field-link.svg")}.field-type-icon.field-type-icon-post-object:before{-webkit-mask-image:url("../../images/field-type-icons/icon-field-post-object.svg");mask-image:url("../../images/field-type-icons/icon-field-post-object.svg")}.field-type-icon.field-type-icon-page-link:before{-webkit-mask-image:url("../../images/field-type-icons/icon-field-page-link.svg");mask-image:url("../../images/field-type-icons/icon-field-page-link.svg")}.field-type-icon.field-type-icon-relationship:before{-webkit-mask-image:url("../../images/field-type-icons/icon-field-relationship.svg");mask-image:url("../../images/field-type-icons/icon-field-relationship.svg")}.field-type-icon.field-type-icon-taxonomy:before{-webkit-mask-image:url("../../images/field-type-icons/icon-field-taxonomy.svg");mask-image:url("../../images/field-type-icons/icon-field-taxonomy.svg")}.field-type-icon.field-type-icon-user:before{-webkit-mask-image:url("../../images/field-type-icons/icon-field-user.svg");mask-image:url("../../images/field-type-icons/icon-field-user.svg")}.field-type-icon.field-type-icon-google-map:before{-webkit-mask-image:url("../../images/field-type-icons/icon-field-google-map.svg");mask-image:url("../../images/field-type-icons/icon-field-google-map.svg")}.field-type-icon.field-type-icon-date-picker:before{-webkit-mask-image:url("../../images/field-type-icons/icon-field-date-picker.svg");mask-image:url("../../images/field-type-icons/icon-field-date-picker.svg")}.field-type-icon.field-type-icon-date-time-picker:before{-webkit-mask-image:url("../../images/field-type-icons/icon-field-date-time-picker.svg");mask-image:url("../../images/field-type-icons/icon-field-date-time-picker.svg")}.field-type-icon.field-type-icon-time-picker:before{-webkit-mask-image:url("../../images/field-type-icons/icon-field-time-picker.svg");mask-image:url("../../images/field-type-icons/icon-field-time-picker.svg")}.field-type-icon.field-type-icon-color-picker:before{-webkit-mask-image:url("../../images/field-type-icons/icon-field-color-picker.svg");mask-image:url("../../images/field-type-icons/icon-field-color-picker.svg")}.field-type-icon.field-type-icon-message:before{-webkit-mask-image:url("../../images/field-type-icons/icon-field-message.svg");mask-image:url("../../images/field-type-icons/icon-field-message.svg")}.field-type-icon.field-type-icon-accordion:before{-webkit-mask-image:url("../../images/field-type-icons/icon-field-accordion.svg");mask-image:url("../../images/field-type-icons/icon-field-accordion.svg")}.field-type-icon.field-type-icon-tab:before{-webkit-mask-image:url("../../images/field-type-icons/icon-field-tab.svg");mask-image:url("../../images/field-type-icons/icon-field-tab.svg")}.field-type-icon.field-type-icon-group:before{-webkit-mask-image:url("../../images/field-type-icons/icon-field-group.svg");mask-image:url("../../images/field-type-icons/icon-field-group.svg")}.field-type-icon.field-type-icon-repeater:before{-webkit-mask-image:url("../../images/field-type-icons/icon-field-repeater.svg");mask-image:url("../../images/field-type-icons/icon-field-repeater.svg")}.field-type-icon.field-type-icon-flexible-content:before{-webkit-mask-image:url("../../images/field-type-icons/icon-field-flexible-content.svg");mask-image:url("../../images/field-type-icons/icon-field-flexible-content.svg")}.field-type-icon.field-type-icon-clone:before{-webkit-mask-image:url("../../images/field-type-icons/icon-field-clone.svg");mask-image:url("../../images/field-type-icons/icon-field-clone.svg")}#acf-admin-tools .postbox-header{display:none}#acf-admin-tools .acf-meta-box-wrap.-grid{margin-top:0;margin-right:0;margin-bottom:0;margin-left:0}#acf-admin-tools .acf-meta-box-wrap.-grid .postbox{width:100%;clear:none;float:none;margin-bottom:0}@media screen and (max-width: 880px){#acf-admin-tools .acf-meta-box-wrap.-grid .postbox{flex:1 1 100%}}#acf-admin-tools .acf-meta-box-wrap.-grid .postbox:nth-child(odd){margin-left:0}#acf-admin-tools .meta-box-sortables{display:grid;grid-template-columns:repeat(2, 1fr);grid-template-rows:repeat(1, 1fr);grid-column-gap:32px;grid-row-gap:32px}@media screen and (max-width: 880px){#acf-admin-tools .meta-box-sortables{display:flex;flex-wrap:wrap;justify-content:flex-start;align-content:flex-start;align-items:center;grid-column-gap:8px;grid-row-gap:8px}}#acf-admin-tools.tool-export .inside{margin:0}#acf-admin-tools.tool-export .acf-postbox-header{margin-bottom:24px}#acf-admin-tools.tool-export .acf-postbox-main{border:none;margin:0;padding-top:0;padding-right:24px;padding-bottom:0;padding-left:0}#acf-admin-tools.tool-export .acf-postbox-columns{margin-top:0;margin-right:280px;margin-bottom:0;margin-left:0;padding:0}#acf-admin-tools.tool-export .acf-postbox-columns .acf-postbox-side{padding:0}#acf-admin-tools.tool-export .acf-postbox-columns .acf-postbox-side .acf-panel{margin:0;padding:0}#acf-admin-tools.tool-export .acf-postbox-columns .acf-postbox-side:before{display:none}#acf-admin-tools.tool-export .acf-postbox-columns .acf-postbox-side .acf-btn{display:block;width:100%;text-align:center}#acf-admin-tools.tool-export .meta-box-sortables{display:block}#acf-admin-tools.tool-export .acf-panel{border:none}#acf-admin-tools.tool-export .acf-panel h3{margin:0;padding:0;color:#344054}#acf-admin-tools.tool-export .acf-panel h3:before{display:none}#acf-admin-tools.tool-export .acf-checkbox-list{margin-top:16px;border-width:1px;border-style:solid;border-color:#d0d5dd;border-radius:6px}#acf-admin-tools.tool-export .acf-checkbox-list li{display:inline-flex;box-sizing:border-box;width:100%;height:48px;align-items:center;margin:0;padding-right:12px;padding-left:12px;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#eaecf0}#acf-admin-tools.tool-export .acf-checkbox-list li:last-child{border-bottom:none}.acf-settings-wrap.acf-updates{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;align-content:flex-start;align-items:flex-start}.custom-fields_page_acf-settings-updates .acf-admin-notice,.custom-fields_page_acf-settings-updates .acf-upgrade-notice,.custom-fields_page_acf-settings-updates .notice{flex:1 1 100%}.acf-settings-wrap.acf-updates .acf-box{margin-top:0;margin-right:0;margin-bottom:0;margin-left:0}.acf-settings-wrap.acf-updates .acf-box .inner{padding-top:24px;padding-right:24px;padding-bottom:24px;padding-left:24px}@media screen and (max-width: 880px){.acf-settings-wrap.acf-updates .acf-box{flex:1 1 100%}}.acf-settings-wrap.acf-updates .acf-admin-notice{flex:1 1 100%;margin-top:16px;margin-right:0;margin-left:0}#acf-license-information{flex:1 1 65%;margin-right:32px}@media screen and (max-width: 1024px){#acf-license-information{margin-right:0;margin-bottom:32px}}#acf-license-information .acf-activation-form{margin-top:24px}#acf-license-information label{font-weight:500}#acf-license-information .acf-input-wrap{margin-top:8px;margin-bottom:24px}#acf-license-information #acf_pro_license{width:100%}#acf-update-information{flex:1 1 35%;max-width:calc(35% - 32px)}#acf-update-information .form-table th,#acf-update-information .form-table td{padding-top:0;padding-right:0;padding-bottom:24px;padding-left:0;color:#344054}#acf-update-information .acf-update-changelog{margin-top:8px;margin-bottom:24px;padding-top:8px;border-top-width:1px;border-top-style:solid;border-top-color:#eaecf0;color:#344054}#acf-update-information .acf-update-changelog h4{margin-bottom:0}#acf-update-information .acf-update-changelog p{margin-top:0;margin-bottom:16px}#acf-update-information .acf-update-changelog p:last-of-type{margin-bottom:0}#acf-update-information .acf-update-changelog p em{color:#667085}#acf-update-information .acf-btn{display:inline-flex}.acf-admin-toolbar a.acf-admin-toolbar-upgrade-btn{display:inline-flex;align-items:center;align-self:stretch;padding-top:0;padding-right:16px;padding-bottom:0;padding-left:16px;background:linear-gradient(90.52deg, #3E8BFF 0.44%, #A45CFF 113.3%);box-shadow:inset 0 0 0 1px rgba(255,255,255,.16);background-size:180% 80%;background-position:100% 0;transition:background-position .5s;border-radius:6px;text-decoration:none}@media screen and (max-width: 768px){.acf-admin-toolbar a.acf-admin-toolbar-upgrade-btn{display:none}}.acf-admin-toolbar a.acf-admin-toolbar-upgrade-btn:hover{background-position:0 0}.acf-admin-toolbar a.acf-admin-toolbar-upgrade-btn:focus{border:none;outline:none;box-shadow:none}.acf-admin-toolbar a.acf-admin-toolbar-upgrade-btn p{margin:0;padding-top:8px;padding-bottom:8px;font-weight:normal;text-transform:none;color:#fff}.acf-admin-toolbar a.acf-admin-toolbar-upgrade-btn .acf-icon{width:18px;height:18px;margin-right:6px;margin-left:-2px;background-color:#f9fafb}#tmpl-acf-field-group-pro-features,#acf-field-group-pro-features{display:none;align-items:center;min-height:120px;background-color:#121833;background-image:url(../../images/pro-upgrade-grid-bg.svg),url(../../images/pro-upgrade-overlay.svg);background-repeat:repeat,no-repeat;background-size:1224px,1880px;background-position:left top,-520px -680px;color:#eaecf0;border-radius:8px;margin-top:24px;margin-bottom:24px}@media screen and (max-width: 768px){#tmpl-acf-field-group-pro-features,#acf-field-group-pro-features{background-size:1024px,980px;background-position:left top,-500px -200px}}@media screen and (max-width: 1200px){#tmpl-acf-field-group-pro-features,#acf-field-group-pro-features{background-size:1024px,1880px;background-position:left top,-520px -300px}}#tmpl-acf-field-group-pro-features .postbox-header,#acf-field-group-pro-features .postbox-header{display:none}#tmpl-acf-field-group-pro-features .inside,#acf-field-group-pro-features .inside{width:100%;border:none;padding:0}#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper,#acf-field-group-pro-features .acf-field-group-pro-features-wrapper{display:flex;justify-content:center;align-content:stretch;align-items:center;gap:96px;height:358px;max-width:950px;margin:0 auto;padding:0 35px}@media screen and (max-width: 1200px){#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper,#acf-field-group-pro-features .acf-field-group-pro-features-wrapper{gap:48px}}@media screen and (max-width: 768px){#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper,#acf-field-group-pro-features .acf-field-group-pro-features-wrapper{gap:0}}#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-title,#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-title-sm,#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-title,#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-title-sm{font-weight:590;line-height:150%}#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-title .acf-pro-label,#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-title-sm .acf-pro-label,#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-title .acf-pro-label,#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-title-sm .acf-pro-label{font-weight:normal;margin-top:-4px;margin-left:2px;vertical-align:middle;height:22px}#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-title-sm,#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-title-sm{display:none;font-size:18px}#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-title-sm .acf-pro-label,#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-title-sm .acf-pro-label{font-size:10px;height:20px}@media screen and (max-width: 768px){#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-title-sm,#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-title-sm{width:100%;text-align:center}}@media screen and (max-width: 768px){#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper,#acf-field-group-pro-features .acf-field-group-pro-features-wrapper{flex-direction:column;flex-wrap:wrap;justify-content:flex-start;align-content:flex-start;align-items:flex-start;padding:32px 32px 0 32px;height:unset}#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-title-sm,#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-title-sm{display:block;margin-bottom:24px}}#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-content,#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-content{display:flex;flex-direction:column;width:416px}#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-content .acf-field-group-pro-features-desc,#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-content .acf-field-group-pro-features-desc{margin-top:8px;margin-bottom:24px;font-size:15px;font-weight:300;color:#d0d5dd}@media screen and (max-width: 768px){#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-content,#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-content{width:100%;order:1;margin-right:0;margin-bottom:8px}#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-content .acf-field-group-pro-features-title,#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-content .acf-field-group-pro-features-desc,#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-content .acf-field-group-pro-features-title,#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-content .acf-field-group-pro-features-desc{display:none}}#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-actions,#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-actions{display:flex;flex-direction:row;align-items:flex-start;min-width:160px;gap:12px}@media screen and (max-width: 768px){#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-actions,#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-actions{justify-content:flex-start;flex-direction:column;margin-bottom:24px}#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-actions a,#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-actions a{justify-content:center;text-align:center;width:100%}}#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid,#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid{display:flex;flex-direction:row;flex-wrap:wrap;gap:16px;width:416px}#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature,#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature{display:flex;flex-direction:column;justify-content:center;align-items:center;width:128px;height:124px;background:rgba(255,255,255,.08);box-shadow:0px 0px 4px rgba(0,0,0,.04),0px 8px 16px rgba(0,0,0,.08),inset 0 0 0 1px rgba(255,255,255,.08);backdrop-filter:blur(6px);border-radius:8px}#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .field-type-icon,#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .field-type-icon{border:none;background:none;width:24px;opacity:.8}#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .field-type-icon::before,#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .field-type-icon::before{background-color:#fff;width:20px;height:20px}@media screen and (max-width: 1200px){#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .field-type-icon::before,#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .field-type-icon::before{width:18px;height:18px}}#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .pro-feature-blocks::before,#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .pro-feature-blocks::before{-webkit-mask-image:url("../../images/icons/icon-extended-menu.svg");mask-image:url("../../images/icons/icon-extended-menu.svg")}#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .pro-feature-options-pages::before,#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .pro-feature-options-pages::before{-webkit-mask-image:url("../../images/icons/icon-settings.svg");mask-image:url("../../images/icons/icon-settings.svg")}#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .field-type-label,#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .field-type-label{margin-top:4px;font-size:13px;font-weight:300;text-align:center;color:#fff}@media screen and (max-width: 1200px){#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid,#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid{flex-direction:column;gap:8px;width:288px}#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature,#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature{width:100%;height:40px;flex-direction:row;justify-content:unset;gap:8px}#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .field-type-icon,#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .field-type-icon{position:initial;margin-left:16px}#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .field-type-label,#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .field-type-label{margin-top:0}}@media screen and (max-width: 768px){#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid,#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid{gap:0;width:100%;height:auto;margin-bottom:16px;flex-direction:unset;flex-wrap:wrap}#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature,#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature{flex:1 0 50%;margin-bottom:8px;width:auto;height:auto;justify-content:center;background:none;box-shadow:none;backdrop-filter:none}#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .field-type-label,#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .field-type-label{margin-left:2px}#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .field-type-icon,#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .field-type-icon{position:initial;margin-left:0}#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .field-type-icon:before,#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .field-type-icon:before{height:16px;width:16px}#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .field-type-label,#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-grid .acf-field-group-pro-feature .field-type-label{font-size:12px;margin-top:0}}#tmpl-acf-field-group-pro-features h1,#acf-field-group-pro-features h1{margin-top:0;margin-bottom:4px;padding-top:0;padding-bottom:0;font-weight:bold;color:#f9fafb}#tmpl-acf-field-group-pro-features h1 .acf-icon,#acf-field-group-pro-features h1 .acf-icon{margin-right:8px}#tmpl-acf-field-group-pro-features .acf-btn,#acf-field-group-pro-features .acf-btn{display:inline-flex;background-color:rgba(255,255,255,.1);border:none;box-shadow:0px 0px 4px rgba(0,0,0,.04),0px 4px 8px rgba(0,0,0,.06),inset 0 0 0 1px rgba(255,255,255,.16);backdrop-filter:blur(6px);padding:8px 24px;height:48px}#tmpl-acf-field-group-pro-features .acf-btn:hover,#acf-field-group-pro-features .acf-btn:hover{background-color:rgba(255,255,255,.2)}#tmpl-acf-field-group-pro-features .acf-btn .acf-icon,#acf-field-group-pro-features .acf-btn .acf-icon{margin-right:-2px;margin-left:6px}#tmpl-acf-field-group-pro-features .acf-btn.acf-pro-features-upgrade,#acf-field-group-pro-features .acf-btn.acf-pro-features-upgrade{background:linear-gradient(90.52deg, #3E8BFF 0.44%, #A45CFF 113.3%);background-size:160% 80%;background-position:100% 0;box-shadow:0px 0px 4px rgba(0,0,0,.04),0px 4px 8px rgba(0,0,0,.06),inset 0 0 0 1px rgba(255,255,255,.16);border-radius:6px;transition:background-position .5s}#tmpl-acf-field-group-pro-features .acf-btn.acf-pro-features-upgrade:hover,#acf-field-group-pro-features .acf-btn.acf-pro-features-upgrade:hover{background-position:0 0}#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap,#acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap{height:48px;background:rgba(16,24,40,.4);backdrop-filter:blur(6px);border-top:1px solid rgba(255,255,255,.08);border-bottom-left-radius:8px;border-bottom-right-radius:8px;color:#98a2b3;font-size:13px;font-weight:300;padding:0 35px}#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap .acf-field-group-pro-features-footer,#acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap .acf-field-group-pro-features-footer{display:flex;align-items:center;justify-content:space-between;max-width:950px;height:48px;margin:0 auto}#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap .acf-field-group-pro-features-wpengine-logo,#acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap .acf-field-group-pro-features-wpengine-logo{height:16px;vertical-align:middle;margin-top:-2px;margin-left:3px}#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap a,#acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap a{color:#98a2b3;text-decoration:none}#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap a:hover,#acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap a:hover{color:#d0d5dd}#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap a .acf-icon,#acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap a .acf-icon{width:18px;height:18px;margin-left:4px}#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap .acf-more-tools-from-wpengine a,#acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap .acf-more-tools-from-wpengine a{display:inline-flex;align-items:center}@media screen and (max-width: 768px){#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap,#acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap{height:70px;font-size:12px}#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap .acf-more-tools-from-wpengine,#acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap .acf-more-tools-from-wpengine{display:none}#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap .acf-field-group-pro-features-footer,#acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap .acf-field-group-pro-features-footer{justify-content:center;height:70px}#tmpl-acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap .acf-field-group-pro-features-footer .acf-field-group-pro-features-wpengine-logo,#acf-field-group-pro-features .acf-field-group-pro-features-footer-wrap .acf-field-group-pro-features-footer .acf-field-group-pro-features-wpengine-logo{clear:both;margin:6px auto 0 auto;display:block}}.acf-no-field-groups #tmpl-acf-field-group-pro-features,.acf-no-post-types #tmpl-acf-field-group-pro-features,.acf-no-taxonomies #tmpl-acf-field-group-pro-features{margin-top:0}.acf-admin-single-post-type label[for=acf-basic-settings-hide],.acf-admin-single-taxonomy label[for=acf-basic-settings-hide]{display:none}.acf-admin-single-post-type fieldset.columns-prefs,.acf-admin-single-taxonomy fieldset.columns-prefs{display:none}.acf-admin-single-post-type #acf-basic-settings .postbox-header,.acf-admin-single-taxonomy #acf-basic-settings .postbox-header{display:none}.acf-admin-single-post-type .postbox-container,.acf-admin-single-post-type .notice,.acf-admin-single-taxonomy .postbox-container,.acf-admin-single-taxonomy .notice{max-width:1440px;clear:left}.acf-admin-single-post-type #post-body-content,.acf-admin-single-taxonomy #post-body-content{margin:0}.acf-admin-single-post-type .postbox .inside,.acf-admin-single-post-type .acf-box .inside,.acf-admin-single-taxonomy .postbox .inside,.acf-admin-single-taxonomy .acf-box .inside{padding-top:48px;padding-right:48px;padding-bottom:48px;padding-left:48px}.acf-admin-single-post-type #acf-advanced-settings.postbox .inside,.acf-admin-single-taxonomy #acf-advanced-settings.postbox .inside{padding-bottom:24px}.acf-admin-single-post-type .postbox-container .meta-box-sortables #acf-basic-settings .inside,.acf-admin-single-taxonomy .postbox-container .meta-box-sortables #acf-basic-settings .inside{border:none}.acf-admin-single-post-type .acf-input-wrap,.acf-admin-single-taxonomy .acf-input-wrap{overflow:visible}.acf-admin-single-post-type .acf-field,.acf-admin-single-taxonomy .acf-field{margin-top:0;margin-right:0;margin-bottom:24px;margin-left:0}.acf-admin-single-post-type .acf-field .acf-label,.acf-admin-single-taxonomy .acf-field .acf-label{margin-bottom:6px}.acf-admin-single-post-type .acf-field-text,.acf-admin-single-post-type .acf-field-textarea,.acf-admin-single-post-type .acf-field-select,.acf-admin-single-taxonomy .acf-field-text,.acf-admin-single-taxonomy .acf-field-textarea,.acf-admin-single-taxonomy .acf-field-select{max-width:600px}.acf-admin-single-post-type .acf-field-true-false,.acf-admin-single-taxonomy .acf-field-true-false{max-width:700px}.acf-admin-single-post-type .acf-field-supports,.acf-admin-single-taxonomy .acf-field-supports{max-width:600px}.acf-admin-single-post-type .acf-field-supports .acf-label,.acf-admin-single-taxonomy .acf-field-supports .acf-label{display:block}.acf-admin-single-post-type .acf-field-supports .acf-label .description,.acf-admin-single-taxonomy .acf-field-supports .acf-label .description{margin-top:4px;margin-bottom:12px}.acf-admin-single-post-type .acf-field-supports .acf_post_type_supports,.acf-admin-single-taxonomy .acf-field-supports .acf_post_type_supports{display:flex;flex-wrap:wrap;justify-content:flex-start;align-content:flex-start;align-items:flex-start}.acf-admin-single-post-type .acf-field-supports .acf_post_type_supports:focus-within,.acf-admin-single-taxonomy .acf-field-supports .acf_post_type_supports:focus-within{border-color:rgba(0,0,0,0)}.acf-admin-single-post-type .acf-field-supports .acf_post_type_supports li,.acf-admin-single-taxonomy .acf-field-supports .acf_post_type_supports li{flex:0 0 25%}.acf-admin-single-post-type .acf-field-supports .acf_post_type_supports li a.button,.acf-admin-single-taxonomy .acf-field-supports .acf_post_type_supports li a.button{background-color:rgba(0,0,0,0);padding:0;border:0;height:auto;min-height:auto;margin-top:0;border-radius:0;line-height:22px}.acf-admin-single-post-type .acf-field-supports .acf_post_type_supports li a.button:before,.acf-admin-single-taxonomy .acf-field-supports .acf_post_type_supports li a.button:before{content:"";margin-right:6px;display:inline-flex;width:16px;height:16px;background-color:currentColor;border:none;border-radius:0;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;text-indent:500%;white-space:nowrap;overflow:hidden;-webkit-mask-image:url("../../images/icons/icon-add.svg");mask-image:url("../../images/icons/icon-add.svg")}.acf-admin-single-post-type .acf-field-supports .acf_post_type_supports li a.button:hover,.acf-admin-single-taxonomy .acf-field-supports .acf_post_type_supports li a.button:hover{color:#044e71}.acf-admin-single-post-type .acf-field-supports .acf_post_type_supports li input[type=text],.acf-admin-single-taxonomy .acf-field-supports .acf_post_type_supports li input[type=text]{width:calc(100% - 36px);padding:0;box-shadow:none;border:none;border-bottom:1px solid #d0d5dd;border-radius:0;height:auto;margin:0;min-height:auto}.acf-admin-single-post-type .acf-field-supports .acf_post_type_supports li input[type=text]:focus,.acf-admin-single-taxonomy .acf-field-supports .acf_post_type_supports li input[type=text]:focus{outline:none;border-bottom-color:#399ccb}.acf-admin-single-post-type .acf-field-seperator,.acf-admin-single-taxonomy .acf-field-seperator{margin-top:40px;margin-bottom:40px;border-top:1px solid #eaecf0;border-right:none;border-bottom:none;border-left:none}.acf-admin-single-post-type .acf-field-advanced-configuration,.acf-admin-single-taxonomy .acf-field-advanced-configuration{margin-bottom:0}.acf-admin-single-post-type .postbox-container .acf-tab-wrap,.acf-admin-single-post-type .acf-regenerate-labels-bar,.acf-admin-single-taxonomy .postbox-container .acf-tab-wrap,.acf-admin-single-taxonomy .acf-regenerate-labels-bar{position:relative;top:-48px;left:-48px;width:calc(100% + 96px)}.acf-admin-single-post-type .acf-regenerate-labels-bar,.acf-admin-single-taxonomy .acf-regenerate-labels-bar{display:flex;align-items:center;justify-content:right;min-height:48px;margin-bottom:0;padding-right:16px;padding-left:16px;gap:8px;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#f2f4f7}.acf-admin-single-post-type .acf-labels-tip,.acf-admin-single-taxonomy .acf-labels-tip{display:inline-flex;align-items:center;min-height:24px;margin-right:8px;padding-left:16px;border-left-width:1px;border-left-style:solid;border-left-color:#eaecf0}.acf-admin-single-post-type .acf-labels-tip .acf-icon,.acf-admin-single-taxonomy .acf-labels-tip .acf-icon{display:inline-flex;align-items:center;width:16px;height:16px;-webkit-mask-size:16px;mask-size:16px;background-color:#98a2b3}.acf-admin-single-post-type .acf-select2-default-pill,.acf-admin-single-taxonomy .acf-select2-default-pill{border-radius:100px;min-height:20px;padding-top:2px;padding-bottom:2px;padding-left:8px;padding-right:8px;font-size:11px;margin-left:6px;background-color:#eaecf0;color:#667085}.acf-modal.acf-browse-fields-modal{width:1120px;height:664px;top:50%;right:auto;bottom:auto;left:50%;transform:translate(-50%, -50%);display:flex;flex-direction:row;border-radius:12px;box-shadow:0px 0px 4px rgba(0,0,0,.04),0px 8px 16px rgba(0,0,0,.08);overflow:hidden}.acf-modal.acf-browse-fields-modal .acf-field-picker{display:flex;flex-direction:column;flex-grow:1;width:760px;background:#fff}.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-title,.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content,.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-toolbar{position:relative}.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-title{display:flex;flex-direction:row;justify-content:space-between;align-items:center;background:#f9fafb;border:none;padding:35px 32px}.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-title .acf-search-field-types-wrap{position:relative}.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-title .acf-search-field-types-wrap:after{content:"";display:block;position:absolute;top:11px;left:10px;width:18px;height:18px;-webkit-mask-image:url("../../images/icons/icon-search.svg");mask-image:url("../../images/icons/icon-search.svg");background-color:#98a2b3;border:none;border-radius:0;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;text-indent:500%;white-space:nowrap;overflow:hidden}.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-title .acf-search-field-types-wrap input{width:280px;height:40px;margin:0;padding-left:32px;box-shadow:none}.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content{top:auto;bottom:auto;padding:0;height:100%}.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-tab-group{padding-left:32px}.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-types-tab{display:flex}.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-types-tab,.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-type-search-results{flex-direction:row;flex-wrap:wrap;gap:24px;padding:32px}.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-types-tab .acf-field-type,.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-type-search-results .acf-field-type{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;isolation:isolate;width:120px;height:120px;background:#f9fafb;border:1px solid #eaecf0;border-radius:8px;box-sizing:border-box;color:#1d2939;text-decoration:none}.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-types-tab .acf-field-type:hover,.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-types-tab .acf-field-type:active,.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-types-tab .acf-field-type.selected,.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-type-search-results .acf-field-type:hover,.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-type-search-results .acf-field-type:active,.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-type-search-results .acf-field-type.selected{background:#ebf5fa;border:1px solid #399ccb;box-shadow:inset 0 0 0 1px #399ccb}.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-types-tab .acf-field-type .field-type-icon,.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-type-search-results .acf-field-type .field-type-icon{border:none;background:none;top:0}.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-types-tab .acf-field-type .field-type-icon:before,.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-type-search-results .acf-field-type .field-type-icon:before{width:22px;height:22px}.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-types-tab .acf-field-type .field-type-label,.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-type-search-results .acf-field-type .field-type-label{margin-top:12px}.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-types-tab .field-type-requires-pro,.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-type-search-results .field-type-requires-pro{display:flex;justify-content:center;align-items:center;position:absolute;top:-10px;right:-10px;height:21px;color:#fff;background:linear-gradient(90.52deg, #3E8BFF 0.44%, #A45CFF 113.3%);background-size:140% 20%;background-position:100% 0;border-radius:100px;font-size:11px;padding-right:6px;padding-left:6px}.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-types-tab .field-type-requires-pro i,.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-content .acf-field-type-search-results .field-type-requires-pro i{width:12px;height:12px;margin-right:2px}.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-toolbar{display:flex;align-items:flex-start;justify-content:space-between;height:auto;min-height:72px;padding-top:0;padding-right:32px;padding-bottom:0;padding-left:32px;margin:0;border:none}.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-toolbar .acf-select-field,.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-toolbar .acf-btn-pro{min-width:160px;justify-content:center}.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-toolbar .acf-insert-field-label{min-width:280px;box-shadow:none}.acf-modal.acf-browse-fields-modal .acf-field-picker .acf-modal-toolbar .acf-field-picker-actions{display:flex;gap:8px}.acf-modal.acf-browse-fields-modal .acf-field-type-preview{display:flex;flex-direction:column;width:360px;background-color:#f9fafb;background-image:url("../../images/field-preview-grid.png");background-size:740px;background-repeat:no-repeat;background-position:center bottom;border-left:1px solid #eaecf0;box-sizing:border-box;padding:32px}.acf-modal.acf-browse-fields-modal .acf-field-type-preview .field-type-desc{margin:0;padding:0;color:#667085}.acf-modal.acf-browse-fields-modal .acf-field-type-preview .field-type-preview-container{display:inline-flex;justify-content:center;width:100%;margin-top:24px;padding-top:32px;padding-bottom:32px;background-color:rgba(255,255,255,.64);border-radius:8px;box-shadow:0px 0px 0px 1px rgba(0,0,0,.04),0px 8px 24px rgba(0,0,0,.04)}.acf-modal.acf-browse-fields-modal .acf-field-type-preview .field-type-image{max-width:232px}.acf-modal.acf-browse-fields-modal .acf-field-type-preview .field-type-info{flex-grow:1}.acf-modal.acf-browse-fields-modal .acf-field-type-preview .field-type-info .field-type-name{font-size:21px;margin-top:0;margin-right:0;margin-bottom:16px;margin-left:0}.acf-modal.acf-browse-fields-modal .acf-field-type-preview .field-type-info .field-type-upgrade-to-unlock{display:inline-flex;justify-items:center;align-items:center;min-height:24px;margin-bottom:12px;padding-right:8px;padding-left:8px;background:linear-gradient(90.52deg, #3E8BFF 0.44%, #A45CFF 113.3%);background-size:140% 20%;background-position:100% 0;border-radius:100px;color:#fff;text-decoration:none;font-size:11px}.acf-modal.acf-browse-fields-modal .acf-field-type-preview .field-type-info .field-type-upgrade-to-unlock i.acf-icon{width:14px;height:14px;margin-right:4px}.acf-modal.acf-browse-fields-modal .acf-field-type-preview .field-type-links{display:flex;align-items:center;gap:24px;min-height:40px}.acf-modal.acf-browse-fields-modal .acf-field-type-preview .field-type-links .acf-icon{width:18px;height:18px}.acf-modal.acf-browse-fields-modal .acf-field-type-preview .field-type-links:before{display:none}.acf-modal.acf-browse-fields-modal .acf-field-type-preview .field-type-links a{display:flex;gap:6px;text-decoration:none}.acf-modal.acf-browse-fields-modal .acf-field-type-preview .field-type-links a:hover{text-decoration:underline}.acf-modal.acf-browse-fields-modal .acf-field-type-search-results,.acf-modal.acf-browse-fields-modal .acf-field-type-search-no-results{display:none}.acf-modal.acf-browse-fields-modal.is-searching .acf-tab-wrap,.acf-modal.acf-browse-fields-modal.is-searching .acf-field-types-tab,.acf-modal.acf-browse-fields-modal.is-searching .acf-field-type-search-no-results{display:none !important}.acf-modal.acf-browse-fields-modal.is-searching .acf-field-type-search-results{display:flex}.acf-modal.acf-browse-fields-modal.no-results-found .acf-tab-wrap,.acf-modal.acf-browse-fields-modal.no-results-found .acf-field-types-tab,.acf-modal.acf-browse-fields-modal.no-results-found .acf-field-type-search-results,.acf-modal.acf-browse-fields-modal.no-results-found .field-type-info,.acf-modal.acf-browse-fields-modal.no-results-found .field-type-links,.acf-modal.acf-browse-fields-modal.no-results-found .acf-field-picker-toolbar{display:none !important}.acf-modal.acf-browse-fields-modal.no-results-found .acf-modal-title{border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#eaecf0}.acf-modal.acf-browse-fields-modal.no-results-found .acf-field-type-search-no-results{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;gap:6px}.acf-modal.acf-browse-fields-modal.no-results-found .acf-field-type-search-no-results img{margin-bottom:19px}.acf-modal.acf-browse-fields-modal.no-results-found .acf-field-type-search-no-results p{margin:0}.acf-modal.acf-browse-fields-modal.no-results-found .acf-field-type-search-no-results p.acf-no-results-text{display:flex}.acf-modal.acf-browse-fields-modal.no-results-found .acf-field-type-search-no-results .acf-invalid-search-term{max-width:200px;overflow:hidden;text-overflow:ellipsis;display:inline-block}@media only screen and (max-width: 1080px){.acf-btn.browse-fields{display:none}} diff --git a/assets/build/css/acf-input.css b/assets/build/css/acf-input.css new file mode 100644 index 0000000..0c9f080 --- /dev/null +++ b/assets/build/css/acf-input.css @@ -0,0 +1,3227 @@ +/*!****************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/advanced-custom-fields-pro/assets/src/sass/acf-input.scss ***! + \****************************************************************************************************************************************************************************************************************/ +@charset "UTF-8"; +/*-------------------------------------------------------------------------------------------- +* +* Vars +* +*--------------------------------------------------------------------------------------------*/ +/* colors */ +/* acf-field */ +/* responsive */ +/*-------------------------------------------------------------------------------------------- +* +* ACF 6 ↓ +* +*--------------------------------------------------------------------------------------------*/ +/*-------------------------------------------------------------------------------------------- +* +* Mixins +* +*--------------------------------------------------------------------------------------------*/ +/*--------------------------------------------------------------------------------------------- +* +* Global +* +*---------------------------------------------------------------------------------------------*/ +.acf-admin-page #wpcontent { + line-height: 140%; +} + +/*--------------------------------------------------------------------------------------------- +* +* Links +* +*---------------------------------------------------------------------------------------------*/ +.acf-admin-page a { + color: #0783BE; +} + +/*--------------------------------------------------------------------------------------------- +* +* Headings +* +*---------------------------------------------------------------------------------------------*/ +.acf-h1, .acf-admin-page h1, +.acf-headerbar h1 { + font-size: 21px; + font-weight: 400; +} + +.acf-h2, .acf-page-title, .acf-admin-page h2, +.acf-headerbar h2 { + font-size: 18px; + font-weight: 400; +} + +.acf-h3, .acf-admin-page h3, +.acf-headerbar h3 { + font-size: 16px; + font-weight: 400; +} + +/*--------------------------------------------------------------------------------------------- +* +* Paragraphs +* +*---------------------------------------------------------------------------------------------*/ +.acf-admin-page .p1 { + font-size: 15px; +} +.acf-admin-page .p2 { + font-size: 14px; +} +.acf-admin-page .p3 { + font-size: 13.5px; +} +.acf-admin-page .p4 { + font-size: 13px; +} +.acf-admin-page .p5 { + font-size: 12.5px; +} +.acf-admin-page .p6, .acf-admin-page .acf-field p.description, .acf-field .acf-admin-page p.description, .acf-admin-page .acf-small { + font-size: 12px; +} +.acf-admin-page .p7, .acf-admin-page .acf-field-setting-prefix_label p.description code, .acf-field-setting-prefix_label p.description .acf-admin-page code, +.acf-admin-page .acf-field-setting-prefix_name p.description code, +.acf-field-setting-prefix_name p.description .acf-admin-page code { + font-size: 11.5px; +} +.acf-admin-page .p8 { + font-size: 11px; +} + +/*--------------------------------------------------------------------------------------------- +* +* Page titles +* +*---------------------------------------------------------------------------------------------*/ +.acf-page-title { + color: #344054; +} + +/*--------------------------------------------------------------------------------------------- +* +* Hide old / native WP titles from pages +* +*---------------------------------------------------------------------------------------------*/ +.acf-admin-page .acf-settings-wrap h1 { + display: none !important; +} +.acf-admin-page #acf-admin-tools h1:not(.acf-field-group-pro-features-title, .acf-field-group-pro-features-title-sm) { + display: none !important; +} + +/*--------------------------------------------------------------------------------------------- +* +* Small +* +*---------------------------------------------------------------------------------------------*/ +/*--------------------------------------------------------------------------------------------- +* +* Link focus style +* +*---------------------------------------------------------------------------------------------*/ +.acf-admin-page a:focus { + box-shadow: none; + outline: none; +} +.acf-admin-page a:focus-visible { + box-shadow: 0 0 0 1px #4f94d4, 0 0 2px 1px rgba(79, 148, 212, 0.8); + outline: 1px solid transparent; +} + +/*-------------------------------------------------------------------------------------------- +* +* acf-field +* +*--------------------------------------------------------------------------------------------*/ +.acf-field, +.acf-field .acf-label, +.acf-field .acf-input { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + position: relative; +} + +.acf-field { + margin: 15px 0; + clear: both; +} +.acf-field p.description { + display: block; + margin: 0; + padding: 0; +} +.acf-field .acf-label { + vertical-align: top; + margin: 0 0 10px; +} +.acf-field .acf-label label { + display: block; + font-weight: 500; + margin: 0 0 3px; + padding: 0; +} +.acf-field .acf-label:empty { + margin-bottom: 0; +} +.acf-field .acf-input { + vertical-align: top; +} +.acf-field p.description { + display: block; + margin-top: 6px; + color: #667085; +} +.acf-field .acf-notice { + margin: 0 0 15px; + background: #edf2ff; + color: #0c6ca0; + border-color: #2183b9; +} +.acf-field .acf-notice.-error { + background: #ffe6e6; + color: #cc2727; + border-color: #d12626; +} +.acf-field .acf-notice.-success { + background: #eefbe8; + color: #0e7b17; + border-color: #32a23b; +} +.acf-field .acf-notice.-warning { + background: #fff3e6; + color: #bd4b0e; + border-color: #d16226; +} +td.acf-field, +tr.acf-field { + margin: 0; +} + +.acf-field[data-width] { + float: left; + clear: none; + /* + @media screen and (max-width: $sm) { + float: none; + width: auto; + border-left-width: 0; + border-right-width: 0; + } + */ +} +.acf-field[data-width] + .acf-field[data-width] { + border-left: 1px solid #eeeeee; +} +html[dir=rtl] .acf-field[data-width] { + float: right; +} +html[dir=rtl] .acf-field[data-width] + .acf-field[data-width] { + border-left: none; + border-right: 1px solid #eeeeee; +} +td.acf-field[data-width], +tr.acf-field[data-width] { + float: none; +} + +.acf-field.-c0 { + clear: both; + border-left-width: 0 !important; +} +html[dir=rtl] .acf-field.-c0 { + border-left-width: 1px !important; + border-right-width: 0 !important; +} + +.acf-field.-r0 { + border-top-width: 0 !important; +} + +/*-------------------------------------------------------------------------------------------- +* +* acf-fields +* +*--------------------------------------------------------------------------------------------*/ +.acf-fields { + position: relative; +} +.acf-fields:after { + display: block; + clear: both; + content: ""; +} +.acf-fields.-border { + border: #ccd0d4 solid 1px; + background: #fff; +} +.acf-fields > .acf-field { + position: relative; + margin: 0; + padding: 16px; + border-top-width: 1px; + border-top-style: solid; + border-top-color: #EAECF0; +} +.acf-fields > .acf-field:first-child { + border-top: none; + margin-top: 0; +} +td.acf-fields { + padding: 0 !important; +} + +/*-------------------------------------------------------------------------------------------- +* +* acf-fields (clear) +* +*--------------------------------------------------------------------------------------------*/ +.acf-fields.-clear > .acf-field { + border: none; + padding: 0; + margin: 15px 0; +} +.acf-fields.-clear > .acf-field[data-width] { + border: none !important; +} +.acf-fields.-clear > .acf-field > .acf-label { + padding: 0; +} +.acf-fields.-clear > .acf-field > .acf-input { + padding: 0; +} + +/*-------------------------------------------------------------------------------------------- +* +* acf-fields (left) +* +*--------------------------------------------------------------------------------------------*/ +.acf-fields.-left > .acf-field { + padding: 15px 0; +} +.acf-fields.-left > .acf-field:after { + display: block; + clear: both; + content: ""; +} +.acf-fields.-left > .acf-field:before { + content: ""; + display: block; + position: absolute; + z-index: 0; + background: #f9f9f9; + border-color: #e1e1e1; + border-style: solid; + border-width: 0 1px 0 0; + top: 0; + bottom: 0; + left: 0; + width: 20%; +} +.acf-fields.-left > .acf-field[data-width] { + float: none; + width: auto !important; + border-left-width: 0 !important; + border-right-width: 0 !important; +} +.acf-fields.-left > .acf-field > .acf-label { + float: left; + width: 20%; + margin: 0; + padding: 0 12px; +} +.acf-fields.-left > .acf-field > .acf-input { + float: left; + width: 80%; + margin: 0; + padding: 0 12px; +} +html[dir=rtl] .acf-fields.-left > .acf-field:before { + border-width: 0 0 0 1px; + left: auto; + right: 0; +} +html[dir=rtl] .acf-fields.-left > .acf-field > .acf-label { + float: right; +} +html[dir=rtl] .acf-fields.-left > .acf-field > .acf-input { + float: right; +} +#side-sortables .acf-fields.-left > .acf-field:before { + display: none; +} +#side-sortables .acf-fields.-left > .acf-field > .acf-label { + width: 100%; + margin-bottom: 10px; +} +#side-sortables .acf-fields.-left > .acf-field > .acf-input { + width: 100%; +} +@media screen and (max-width: 640px) { + .acf-fields.-left > .acf-field:before { + display: none; + } + .acf-fields.-left > .acf-field > .acf-label { + width: 100%; + margin-bottom: 10px; + } + .acf-fields.-left > .acf-field > .acf-input { + width: 100%; + } +} + +/* clear + left */ +.acf-fields.-clear.-left > .acf-field { + padding: 0; + border: none; +} +.acf-fields.-clear.-left > .acf-field:before { + display: none; +} +.acf-fields.-clear.-left > .acf-field > .acf-label { + padding: 0; +} +.acf-fields.-clear.-left > .acf-field > .acf-input { + padding: 0; +} + +/*-------------------------------------------------------------------------------------------- +* +* acf-table +* +*--------------------------------------------------------------------------------------------*/ +.acf-table tr.acf-field > td.acf-label { + padding: 15px 12px; + margin: 0; + background: #f9f9f9; + width: 20%; +} +.acf-table tr.acf-field > td.acf-input { + padding: 15px 12px; + margin: 0; + border-left-color: #e1e1e1; +} + +.acf-sortable-tr-helper { + position: relative !important; + display: table-row !important; +} + +/*-------------------------------------------------------------------------------------------- +* +* acf-postbox +* +*--------------------------------------------------------------------------------------------*/ +.acf-postbox { + position: relative; +} +.acf-postbox > .inside { + margin: 0 !important; /* override WP style - do not delete - you have tried this before */ + padding: 0 !important; /* override WP style - do not delete - you have tried this before */ +} +.acf-postbox .acf-hndle-cog { + color: #72777c; + font-size: 16px; + line-height: 36px; + height: 36px; + width: 1.62rem; + position: relative; + display: none; +} +.acf-postbox .acf-hndle-cog:hover { + color: #191e23; +} +.acf-postbox > .hndle:hover .acf-hndle-cog, +.acf-postbox > .postbox-header:hover .acf-hndle-cog { + display: inline-block; +} +.acf-postbox > .hndle .acf-hndle-cog { + height: 20px; + line-height: 20px; + float: right; + width: auto; +} +.acf-postbox > .hndle .acf-hndle-cog:hover { + color: #777777; +} +.acf-postbox .acf-replace-with-fields { + padding: 15px; + text-align: center; +} + +#post-body-content #acf_after_title-sortables { + margin: 20px 0 -20px; +} + +/* seamless */ +.acf-postbox.seamless { + border: 0 none; + background: transparent; + box-shadow: none; + /* hide hndle */ + /* inside */ +} +.acf-postbox.seamless > .postbox-header, +.acf-postbox.seamless > .hndle, +.acf-postbox.seamless > .handlediv { + display: none !important; +} +.acf-postbox.seamless > .inside { + display: block !important; /* stop metabox from hiding when closed */ + margin-left: -12px !important; + margin-right: -12px !important; +} +.acf-postbox.seamless > .inside > .acf-field { + border-color: transparent; +} + +/* seamless (left) */ +.acf-postbox.seamless > .acf-fields.-left { + /* hide sidebar bg */ + /* mobile */ +} +.acf-postbox.seamless > .acf-fields.-left > .acf-field:before { + display: none; +} +@media screen and (max-width: 782px) { + .acf-postbox.seamless > .acf-fields.-left { + /* remove padding */ + } + .acf-postbox.seamless > .acf-fields.-left > .acf-field > .acf-label, .acf-postbox.seamless > .acf-fields.-left > .acf-field > .acf-input { + padding: 0; + } +} + +/*----------------------------------------------------------------------------- +* +* Inputs +* +*-----------------------------------------------------------------------------*/ +.acf-field input[type=text], +.acf-field input[type=password], +.acf-field input[type=date], +.acf-field input[type=datetime], +.acf-field input[type=datetime-local], +.acf-field input[type=email], +.acf-field input[type=month], +.acf-field input[type=number], +.acf-field input[type=search], +.acf-field input[type=tel], +.acf-field input[type=time], +.acf-field input[type=url], +.acf-field input[type=week], +.acf-field textarea, +.acf-field select { + width: 100%; + padding: 4px 8px; + margin: 0; + box-sizing: border-box; + font-size: 14px; + line-height: 1.4; +} +.acf-admin-3-8 .acf-field input[type=text], +.acf-admin-3-8 .acf-field input[type=password], +.acf-admin-3-8 .acf-field input[type=date], +.acf-admin-3-8 .acf-field input[type=datetime], +.acf-admin-3-8 .acf-field input[type=datetime-local], +.acf-admin-3-8 .acf-field input[type=email], +.acf-admin-3-8 .acf-field input[type=month], +.acf-admin-3-8 .acf-field input[type=number], +.acf-admin-3-8 .acf-field input[type=search], +.acf-admin-3-8 .acf-field input[type=tel], +.acf-admin-3-8 .acf-field input[type=time], +.acf-admin-3-8 .acf-field input[type=url], +.acf-admin-3-8 .acf-field input[type=week], +.acf-admin-3-8 .acf-field textarea, +.acf-admin-3-8 .acf-field select { + padding: 3px 5px; +} +.acf-field textarea { + resize: vertical; +} + +body.acf-browser-firefox .acf-field select { + padding: 4px 5px; +} + +/*----------------------------------------------------------------------------- +* +* Text +* +*-----------------------------------------------------------------------------*/ +.acf-input-prepend, +.acf-input-append, +.acf-input-wrap { + box-sizing: border-box; +} + +.acf-input-prepend, +.acf-input-append { + font-size: 13px; + line-height: 1.4; + padding: 4px 8px; + background: #f5f5f5; + border: #7e8993 solid 1px; + min-height: 30px; +} +.acf-admin-3-8 .acf-input-prepend, +.acf-admin-3-8 .acf-input-append { + padding: 3px 5px; + border-color: #dddddd; + min-height: 28px; +} + +.acf-input-prepend { + float: left; + border-right-width: 0; + border-radius: 3px 0 0 3px; +} + +.acf-input-append { + float: right; + border-left-width: 0; + border-radius: 0 3px 3px 0; +} + +.acf-input-wrap { + position: relative; + overflow: hidden; +} +.acf-input-wrap .acf-is-prepended { + border-radius: 0 6px 6px 0 !important; +} +.acf-input-wrap .acf-is-appended { + border-radius: 6px 0 0 6px !important; +} +.acf-input-wrap .acf-is-prepended.acf-is-appended { + border-radius: 0 !important; +} + +/* rtl */ +html[dir=rtl] .acf-input-prepend { + border-left-width: 0; + border-right-width: 1px; + border-radius: 0 3px 3px 0; + float: right; +} + +html[dir=rtl] .acf-input-append { + border-left-width: 1px; + border-right-width: 0; + border-radius: 3px 0 0 3px; + float: left; +} + +html[dir=rtl] input.acf-is-prepended { + border-radius: 3px 0 0 3px !important; +} + +html[dir=rtl] input.acf-is-appended { + border-radius: 0 3px 3px 0 !important; +} + +html[dir=rtl] input.acf-is-prepended.acf-is-appended { + border-radius: 0 !important; +} + +/*----------------------------------------------------------------------------- +* +* Color Picker +* +*-----------------------------------------------------------------------------*/ +.acf-color-picker .wp-color-result { + border-color: #7e8993; +} +.acf-admin-3-8 .acf-color-picker .wp-color-result { + border-color: #ccd0d4; +} +.acf-color-picker .wp-picker-active { + position: relative; + z-index: 1; +} + +/*----------------------------------------------------------------------------- +* +* Url +* +*-----------------------------------------------------------------------------*/ +.acf-url i { + position: absolute; + top: 5px; + left: 5px; + opacity: 0.5; + color: #7e8993; +} +.acf-url input[type=url] { + padding-left: 27px !important; +} +.acf-url.-valid i { + opacity: 1; +} + +/*----------------------------------------------------------------------------- +* +* Select2 (v3) +* +*-----------------------------------------------------------------------------*/ +.select2-container.-acf { + z-index: 1001; + /* open */ + /* single open */ +} +.select2-container.-acf .select2-choices { + background: #fff; + border-color: #ddd; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.07) inset; + min-height: 31px; +} +.select2-container.-acf .select2-choices .select2-search-choice { + margin: 5px 0 5px 5px; + padding: 3px 5px 3px 18px; + border-color: #bbb; + background: #f9f9f9; + box-shadow: 0 1px 0 rgba(255, 255, 255, 0.25) inset; + /* sortable item*/ + /* sortable shadow */ +} +.select2-container.-acf .select2-choices .select2-search-choice.ui-sortable-helper { + background: #5897fb; + border-color: #3f87fa; + color: #fff !important; + box-shadow: 0 0 3px rgba(0, 0, 0, 0.1); +} +.select2-container.-acf .select2-choices .select2-search-choice.ui-sortable-helper a { + visibility: hidden; +} +.select2-container.-acf .select2-choices .select2-search-choice.ui-sortable-placeholder { + background-color: #f7f7f7; + border-color: #f7f7f7; + visibility: visible !important; +} +.select2-container.-acf .select2-choices .select2-search-choice-focus { + border-color: #999; +} +.select2-container.-acf .select2-choices .select2-search-field input { + height: 31px; + line-height: 22px; + margin: 0; + padding: 5px 5px 5px 7px; +} +.select2-container.-acf .select2-choice { + border-color: #bbbbbb; +} +.select2-container.-acf .select2-choice .select2-arrow { + background: transparent; + border-left-color: #dfdfdf; + padding-left: 1px; +} +.select2-container.-acf .select2-choice .select2-result-description { + display: none; +} +.select2-container.-acf.select2-container-active .select2-choices, .select2-container.-acf.select2-dropdown-open .select2-choices { + border-color: #5b9dd9; + border-radius: 3px 3px 0 0; +} +.select2-container.-acf.select2-dropdown-open .select2-choice { + background: #fff; + border-color: #5b9dd9; +} + +/* rtl */ +html[dir=rtl] .select2-container.-acf .select2-search-choice-close { + left: 24px; +} +html[dir=rtl] .select2-container.-acf .select2-choice > .select2-chosen { + margin-left: 42px; +} +html[dir=rtl] .select2-container.-acf .select2-choice .select2-arrow { + padding-left: 0; + padding-right: 1px; +} + +/* description */ +.select2-drop { + /* search*/ + /* result */ +} +.select2-drop .select2-search { + padding: 4px 4px 0; +} +.select2-drop .select2-result { + /* hover*/ +} +.select2-drop .select2-result .select2-result-description { + color: #999; + font-size: 12px; + margin-left: 5px; +} +.select2-drop .select2-result.select2-highlighted .select2-result-description { + color: #fff; + opacity: 0.75; +} + +/*----------------------------------------------------------------------------- +* +* Select2 (v4) +* +*-----------------------------------------------------------------------------*/ +.select2-container.-acf li { + margin-bottom: 0; +} +.select2-container.-acf[data-select2-id^=select2-data] .select2-selection--multiple { + overflow: hidden; +} +.select2-container.-acf .select2-selection { + border-color: #7e8993; +} +.acf-admin-3-8 .select2-container.-acf .select2-selection { + border-color: #aaa; +} +.select2-container.-acf .select2-selection--multiple .select2-search--inline:first-child { + float: none; +} +.select2-container.-acf .select2-selection--multiple .select2-search--inline:first-child input { + width: 100% !important; +} +.select2-container.-acf .select2-selection--multiple .select2-selection__rendered { + padding-right: 0; +} +.select2-container.-acf .select2-selection--multiple .select2-selection__rendered[id^=select2-acf-field] { + display: inline; + padding: 0; + margin: 0; +} +.select2-container.-acf .select2-selection--multiple .select2-selection__rendered[id^=select2-acf-field] .select2-selection__choice { + margin-right: 0; +} +.select2-container.-acf .select2-selection--multiple .select2-selection__choice { + background-color: #f7f7f7; + border-color: #cccccc; + max-width: 100%; + overflow: hidden; + word-wrap: normal !important; + white-space: normal; +} +.select2-container.-acf .select2-selection--multiple .select2-selection__choice.ui-sortable-helper { + background: #0783BE; + border-color: #066998; + color: #fff !important; + box-shadow: 0 0 3px rgba(0, 0, 0, 0.1); +} +.select2-container.-acf .select2-selection--multiple .select2-selection__choice.ui-sortable-helper span { + visibility: hidden; +} +.select2-container.-acf .select2-selection--multiple .select2-selection__choice .select2-selection__choice__remove { + position: static; + border-right: none; + padding: 0; +} +.select2-container.-acf .select2-selection--multiple .select2-selection__choice.ui-sortable-placeholder { + background-color: #F2F4F7; + border-color: #F2F4F7; + visibility: visible !important; +} +.select2-container.-acf .select2-selection--multiple .select2-search__field { + box-shadow: none !important; + min-height: 0; +} +.acf-row .select2-container.-acf .select2-selection--single { + overflow: hidden; +} +.acf-row .select2-container.-acf .select2-selection--single .select2-selection__rendered { + white-space: normal; +} + +.acf-admin-single-field-group .select2-dropdown { + border-color: #6BB5D8 !important; + margin-top: -5px; + overflow: hidden; + box-shadow: 0px 1px 2px rgba(16, 24, 40, 0.1); +} + +.select2-dropdown.select2-dropdown--above { + margin-top: 0; +} + +.acf-admin-single-field-group .select2-container--default .select2-results__option[aria-selected=true] { + background-color: #F9FAFB !important; + color: #667085; +} +.acf-admin-single-field-group .select2-container--default .select2-results__option[aria-selected=true]:hover { + color: #399CCB; +} + +.acf-admin-single-field-group .select2-container--default .select2-results__option--highlighted[aria-selected] { + color: #fff !important; + background-color: #0783BE !important; +} + +.select2-dropdown .select2-results__option { + margin-bottom: 0; +} + +.select2-container .select2-dropdown { + z-index: 900000; +} +.select2-container .select2-dropdown .select2-search__field { + line-height: 1.4; + min-height: 0; +} + +/*----------------------------------------------------------------------------- +* +* Link +* +*-----------------------------------------------------------------------------*/ +.acf-link .link-wrap { + display: none; + border: #ccd0d4 solid 1px; + border-radius: 3px; + padding: 5px; + line-height: 26px; + background: #fff; + word-wrap: break-word; + word-break: break-all; +} +.acf-link .link-wrap .link-title { + padding: 0 5px; +} +.acf-link.-value .button { + display: none; +} +.acf-link.-value .acf-icon.-link-ext { + display: none; +} +.acf-link.-value .link-wrap { + display: inline-block; +} +.acf-link.-external .acf-icon.-link-ext { + display: inline-block; +} + +#wp-link-backdrop { + z-index: 900000 !important; +} + +#wp-link-wrap { + z-index: 900001 !important; +} + +/*----------------------------------------------------------------------------- +* +* Radio +* +*-----------------------------------------------------------------------------*/ +ul.acf-radio-list, +ul.acf-checkbox-list { + background: transparent; + border: 1px solid transparent; + position: relative; + padding: 1px; + margin: 0; + /* hl */ + /* rtl */ +} +ul.acf-radio-list:focus-within, +ul.acf-checkbox-list:focus-within { + border: 1px solid #A5D2E7; + border-radius: 6px; +} +ul.acf-radio-list li, +ul.acf-checkbox-list li { + font-size: 13px; + line-height: 22px; + margin: 0; + position: relative; + word-wrap: break-word; + /* attachment sidebar fix*/ +} +ul.acf-radio-list li label, +ul.acf-checkbox-list li label { + display: inline; +} +ul.acf-radio-list li input[type=checkbox], +ul.acf-radio-list li input[type=radio], +ul.acf-checkbox-list li input[type=checkbox], +ul.acf-checkbox-list li input[type=radio] { + margin: -1px 4px 0 0; + vertical-align: middle; +} +ul.acf-radio-list li input[type=text], +ul.acf-checkbox-list li input[type=text] { + width: auto; + vertical-align: middle; + margin: 2px 0; +} +ul.acf-radio-list li span, +ul.acf-checkbox-list li span { + float: none; +} +ul.acf-radio-list li i, +ul.acf-checkbox-list li i { + vertical-align: middle; +} +ul.acf-radio-list.acf-hl li, +ul.acf-checkbox-list.acf-hl li { + margin-right: 20px; + clear: none; +} +html[dir=rtl] ul.acf-radio-list input[type=checkbox], +html[dir=rtl] ul.acf-radio-list input[type=radio], +html[dir=rtl] ul.acf-checkbox-list input[type=checkbox], +html[dir=rtl] ul.acf-checkbox-list input[type=radio] { + margin-left: 4px; + margin-right: 0; +} + +/*----------------------------------------------------------------------------- +* +* Button Group +* +*-----------------------------------------------------------------------------*/ +.acf-button-group { + display: inline-block; + /* default (horizontal) */ + /* vertical */ +} +.acf-button-group label { + display: inline-block; + border: #7e8993 solid 1px; + position: relative; + z-index: 1; + padding: 5px 10px; + background: #fff; +} +.acf-button-group label:hover { + color: #016087; + background: #f3f5f6; + border-color: #0071a1; + z-index: 2; +} +.acf-button-group label.selected { + border-color: #007cba; + background: #008dd4; + color: #fff; + z-index: 2; +} +.acf-button-group input { + display: none !important; +} +.acf-button-group { + padding-left: 1px; + display: inline-flex; + flex-direction: row; + flex-wrap: nowrap; +} +.acf-button-group label { + margin: 0 0 0 -1px; + flex: 1; + text-align: center; + white-space: nowrap; +} +.acf-button-group label:first-child { + border-radius: 3px 0 0 3px; +} +html[dir=rtl] .acf-button-group label:first-child { + border-radius: 0 3px 3px 0; +} +.acf-button-group label:last-child { + border-radius: 0 3px 3px 0; +} +html[dir=rtl] .acf-button-group label:last-child { + border-radius: 3px 0 0 3px; +} +.acf-button-group label:only-child { + border-radius: 3px; +} +.acf-button-group.-vertical { + padding-left: 0; + padding-top: 1px; + flex-direction: column; +} +.acf-button-group.-vertical label { + margin: -1px 0 0 0; +} +.acf-button-group.-vertical label:first-child { + border-radius: 3px 3px 0 0; +} +.acf-button-group.-vertical label:last-child { + border-radius: 0 0 3px 3px; +} +.acf-button-group.-vertical label:only-child { + border-radius: 3px; +} +.acf-admin-3-8 .acf-button-group label { + border-color: #ccd0d4; +} +.acf-admin-3-8 .acf-button-group label:hover { + border-color: #0071a1; +} +.acf-admin-3-8 .acf-button-group label.selected { + border-color: #007cba; +} + +.acf-admin-page .acf-button-group { + display: flex; + align-items: stretch; + align-content: center; + height: 40px; + border-radius: 6px; + box-shadow: 0px 1px 2px rgba(16, 24, 40, 0.1); +} +.acf-admin-page .acf-button-group label { + display: inline-flex; + align-items: center; + align-content: center; + border: #D0D5DD solid 1px; + padding: 6px 16px; + color: #475467; + font-weight: 500; +} +.acf-admin-page .acf-button-group label:hover { + color: #0783BE; +} +.acf-admin-page .acf-button-group label.selected { + background: #F9FAFB; + color: #0783BE; +} +.acf-admin-page .select2-container.-acf .select2-selection--multiple .select2-selection__choice { + display: inline-flex; + align-items: center; + margin-top: 8px; + margin-left: 2px; + position: relative; + padding-top: 4px; + padding-right: auto; + padding-bottom: 4px; + padding-left: 8px; + background-color: #EBF5FA; + border-color: #A5D2E7; + color: #0783BE; +} +.acf-admin-page .select2-container.-acf .select2-selection--multiple .select2-selection__choice .select2-selection__choice__remove { + order: 2; + width: 14px; + height: 14px; + margin-right: 0; + margin-left: 4px; + color: #6BB5D8; + text-indent: 100%; + white-space: nowrap; + overflow: hidden; +} +.acf-admin-page .select2-container.-acf .select2-selection--multiple .select2-selection__choice .select2-selection__choice__remove:hover { + color: #0783BE; +} +.acf-admin-page .select2-container.-acf .select2-selection--multiple .select2-selection__choice .select2-selection__choice__remove:before { + content: ""; + display: block; + width: 14px; + height: 14px; + top: 0; + left: 0; + background-color: currentColor; + border: none; + border-radius: 0; + -webkit-mask-size: contain; + mask-size: contain; + -webkit-mask-repeat: no-repeat; + mask-repeat: no-repeat; + -webkit-mask-position: center; + mask-position: center; + -webkit-mask-image: url("../../images/icons/icon-close.svg"); + mask-image: url("../../images/icons/icon-close.svg"); +} + +/*----------------------------------------------------------------------------- +* +* Checkbox +* +*-----------------------------------------------------------------------------*/ +.acf-checkbox-list .button { + margin: 10px 0 0; +} + +/*----------------------------------------------------------------------------- +* +* True / False +* +*-----------------------------------------------------------------------------*/ +.acf-switch { + display: inline-block; + border-radius: 5px; + cursor: pointer; + position: relative; + background: #f5f5f5; + height: 30px; + vertical-align: middle; + border: #7e8993 solid 1px; + -webkit-transition: background 0.25s ease; + -moz-transition: background 0.25s ease; + -o-transition: background 0.25s ease; + transition: background 0.25s ease; + /* hover */ + /* active */ + /* message */ +} +.acf-switch span { + display: inline-block; + float: left; + text-align: center; + font-size: 13px; + line-height: 22px; + padding: 4px 10px; + min-width: 15px; +} +.acf-switch span i { + vertical-align: middle; +} +.acf-switch .acf-switch-on { + color: #fff; + text-shadow: #007cba 0 1px 0; +} +.acf-switch .acf-switch-slider { + position: absolute; + top: 2px; + left: 2px; + bottom: 2px; + right: 50%; + z-index: 1; + background: #fff; + border-radius: 3px; + border: #7e8993 solid 1px; + -webkit-transition: all 0.25s ease; + -moz-transition: all 0.25s ease; + -o-transition: all 0.25s ease; + transition: all 0.25s ease; + transition-property: left, right; +} +.acf-switch:hover, .acf-switch.-focus { + border-color: #0071a1; + background: #f3f5f6; + color: #016087; +} +.acf-switch:hover .acf-switch-slider, .acf-switch.-focus .acf-switch-slider { + border-color: #0071a1; +} +.acf-switch.-on { + background: #0d99d5; + border-color: #007cba; + /* hover */ +} +.acf-switch.-on .acf-switch-slider { + left: 50%; + right: 2px; + border-color: #007cba; +} +.acf-switch.-on:hover { + border-color: #007cba; +} +.acf-switch + span { + margin-left: 6px; +} +.acf-admin-3-8 .acf-switch { + border-color: #ccd0d4; +} +.acf-admin-3-8 .acf-switch .acf-switch-slider { + border-color: #ccd0d4; +} +.acf-admin-3-8 .acf-switch:hover, .acf-admin-3-8 .acf-switch.-focus { + border-color: #0071a1; +} +.acf-admin-3-8 .acf-switch:hover .acf-switch-slider, .acf-admin-3-8 .acf-switch.-focus .acf-switch-slider { + border-color: #0071a1; +} +.acf-admin-3-8 .acf-switch.-on { + border-color: #007cba; +} +.acf-admin-3-8 .acf-switch.-on .acf-switch-slider { + border-color: #007cba; +} +.acf-admin-3-8 .acf-switch.-on:hover { + border-color: #007cba; +} + +/* checkbox */ +.acf-switch-input { + opacity: 0; + position: absolute; + margin: 0; +} + +.acf-admin-single-field-group .acf-true-false { + border: 1px solid transparent; +} +.acf-admin-single-field-group .acf-true-false:focus-within { + border: 1px solid #399CCB; + border-radius: 120px; +} + +/* in media modal */ +.compat-item .acf-true-false .message { + float: none; + padding: 0; + vertical-align: middle; +} + +/*-------------------------------------------------------------------------- +* +* Google Map +* +*-------------------------------------------------------------------------*/ +.acf-google-map { + position: relative; + border: #ccd0d4 solid 1px; + background: #fff; +} +.acf-google-map .title { + position: relative; + border-bottom: #ccd0d4 solid 1px; +} +.acf-google-map .title .search { + margin: 0; + font-size: 14px; + line-height: 30px; + height: 40px; + padding: 5px 10px; + border: 0 none; + box-shadow: none; + border-radius: 0; + font-family: inherit; + cursor: text; +} +.acf-google-map .title .acf-loading { + position: absolute; + top: 10px; + right: 11px; + display: none; +} +.acf-google-map .title .acf-icon:active { + display: inline-block !important; +} +.acf-google-map .canvas { + height: 400px; +} +.acf-google-map:hover .title .acf-actions { + display: block; +} +.acf-google-map .title .acf-icon.-location { + display: inline-block; +} +.acf-google-map .title .acf-icon.-cancel, +.acf-google-map .title .acf-icon.-search { + display: none; +} +.acf-google-map.-value .title .search { + font-weight: bold; +} +.acf-google-map.-value .title .acf-icon.-location { + display: none; +} +.acf-google-map.-value .title .acf-icon.-cancel { + display: inline-block; +} +.acf-google-map.-searching .title .acf-icon.-location { + display: none; +} +.acf-google-map.-searching .title .acf-icon.-cancel, +.acf-google-map.-searching .title .acf-icon.-search { + display: inline-block; +} +.acf-google-map.-searching .title .acf-actions { + display: block; +} +.acf-google-map.-searching .title .search { + font-weight: normal !important; +} +.acf-google-map.-loading .title a { + display: none !important; +} +.acf-google-map.-loading .title i { + display: inline-block; +} + +/* autocomplete */ +.pac-container { + border-width: 1px 0; + box-shadow: none; +} + +.pac-container:after { + display: none; +} + +.pac-container .pac-item:first-child { + border-top: 0 none; +} + +.pac-container .pac-item { + padding: 5px 10px; + cursor: pointer; +} + +html[dir=rtl] .pac-container .pac-item { + text-align: right; +} + +/*-------------------------------------------------------------------------- +* +* Relationship +* +*-------------------------------------------------------------------------*/ +.acf-relationship { + background: #fff; + border: #ccd0d4 solid 1px; + /* list */ + /* selection (bottom) */ +} +.acf-relationship .filters { + border-bottom: #ccd0d4 solid 1px; + background: #fff; + /* widths */ +} +.acf-relationship .filters:after { + display: block; + clear: both; + content: ""; +} +.acf-relationship .filters .filter { + margin: 0; + padding: 0; + float: left; + width: 100%; + box-sizing: border-box; + padding: 7px 7px 7px 0; +} +.acf-relationship .filters .filter:first-child { + padding-left: 7px; +} +.acf-relationship .filters .filter input, +.acf-relationship .filters .filter select { + margin: 0; + float: none; /* potential fix for media popup? */ +} +.acf-relationship .filters .filter input:focus, .acf-relationship .filters .filter input:active, +.acf-relationship .filters .filter select:focus, +.acf-relationship .filters .filter select:active { + outline: none; + box-shadow: none; +} +.acf-relationship .filters .filter input { + border-color: transparent; + box-shadow: none; + padding-left: 3px; + padding-right: 3px; +} +.acf-relationship .filters.-f2 .filter { + width: 50%; +} +.acf-relationship .filters.-f3 .filter { + width: 25%; +} +.acf-relationship .filters.-f3 .filter.-search { + width: 50%; +} +.acf-relationship .list { + margin: 0; + padding: 5px; + height: 160px; + overflow: auto; +} +.acf-relationship .list .acf-rel-label, +.acf-relationship .list .acf-rel-item, +.acf-relationship .list p { + padding: 5px; + margin: 0; + display: block; + position: relative; + min-height: 18px; +} +.acf-relationship .list .acf-rel-label { + font-weight: bold; +} +.acf-relationship .list .acf-rel-item { + cursor: pointer; + /* hover */ + /* disabled */ +} +.acf-relationship .list .acf-rel-item b { + text-decoration: underline; + font-weight: normal; +} +.acf-relationship .list .acf-rel-item .thumbnail { + background: #e0e0e0; + width: 22px; + height: 22px; + float: left; + margin: -2px 5px 0 0; +} +.acf-relationship .list .acf-rel-item .thumbnail img { + max-width: 22px; + max-height: 22px; + margin: 0 auto; + display: block; +} +.acf-relationship .list .acf-rel-item .thumbnail.-icon { + background: #fff; +} +.acf-relationship .list .acf-rel-item .thumbnail.-icon img { + max-height: 20px; + margin-top: 1px; +} +.acf-relationship .list .acf-rel-item:hover { + background: #3875d7; + color: #fff; +} +.acf-relationship .list .acf-rel-item:hover .thumbnail { + background: #a2bfec; +} +.acf-relationship .list .acf-rel-item:hover .thumbnail.-icon { + background: #fff; +} +.acf-relationship .list .acf-rel-item.disabled { + opacity: 0.5; +} +.acf-relationship .list .acf-rel-item.disabled:hover { + background: transparent; + color: #333; + cursor: default; +} +.acf-relationship .list .acf-rel-item.disabled:hover .thumbnail { + background: #e0e0e0; +} +.acf-relationship .list .acf-rel-item.disabled:hover .thumbnail.-icon { + background: #fff; +} +.acf-relationship .list ul { + padding-bottom: 5px; +} +.acf-relationship .list ul .acf-rel-label, +.acf-relationship .list ul .acf-rel-item, +.acf-relationship .list ul p { + padding-left: 20px; +} +.acf-relationship .selection { + position: relative; + /* choices */ + /* values */ +} +.acf-relationship .selection:after { + display: block; + clear: both; + content: ""; +} +.acf-relationship .selection .values, +.acf-relationship .selection .choices { + width: 50%; + background: #fff; + float: left; +} +.acf-relationship .selection .choices { + background: #f9f9f9; +} +.acf-relationship .selection .choices .list { + border-right: #dfdfdf solid 1px; +} +.acf-relationship .selection .values .acf-icon { + position: absolute; + top: 4px; + right: 7px; + display: none; + /* rtl */ +} +html[dir=rtl] .acf-relationship .selection .values .acf-icon { + right: auto; + left: 7px; +} +.acf-relationship .selection .values .acf-rel-item:hover .acf-icon { + display: block; +} +.acf-relationship .selection .values .acf-rel-item { + cursor: move; +} +.acf-relationship .selection .values .acf-rel-item b { + text-decoration: none; +} + +/* menu item fix */ +.menu-item .acf-relationship ul { + width: auto; +} +.menu-item .acf-relationship li { + display: block; +} + +/*-------------------------------------------------------------------------- +* +* WYSIWYG +* +*-------------------------------------------------------------------------*/ +.acf-editor-wrap.delay .acf-editor-toolbar { + content: ""; + display: block; + background: #f5f5f5; + border-bottom: #dddddd solid 1px; + color: #555d66; + padding: 10px; +} +.acf-editor-wrap.delay .wp-editor-area { + padding: 10px; + border: none; + color: inherit !important; +} +.acf-editor-wrap iframe { + min-height: 200px; +} +.acf-editor-wrap .wp-editor-container { + border: 1px solid #ccd0d4; + box-shadow: none !important; +} +.acf-editor-wrap .wp-editor-tabs { + box-sizing: content-box; +} +.acf-editor-wrap .wp-switch-editor { + border-color: #ccd0d4; + border-bottom-color: transparent; +} + +#mce_fullscreen_container { + z-index: 900000 !important; +} + +/*----------------------------------------------------------------------------- +* +* Tab +* +*-----------------------------------------------------------------------------*/ +.acf-field-tab { + display: none !important; +} + +.hidden-by-tab { + display: none !important; +} + +.acf-tab-wrap { + clear: both; + z-index: 1; +} + +.acf-tab-group { + border-bottom: #ccc solid 1px; + padding: 10px 10px 0; +} +.acf-tab-group li { + margin: 0 0.5em 0 0; +} +.acf-tab-group li a { + padding: 5px 10px; + display: block; + color: #555; + font-size: 14px; + font-weight: 600; + line-height: 24px; + border: #ccc solid 1px; + border-bottom: 0 none; + text-decoration: none; + background: #e5e5e5; + transition: none; +} +.acf-tab-group li a:hover { + background: #fff; +} +.acf-tab-group li a:focus { + outline: none; + box-shadow: none; +} +.acf-tab-group li a:empty { + display: none; +} +html[dir=rtl] .acf-tab-group li { + margin: 0 0 0 0.5em; +} +.acf-tab-group li.active a { + background: #f1f1f1; + color: #000; + padding-bottom: 6px; + margin-bottom: -1px; + position: relative; + z-index: 1; +} + +.acf-fields > .acf-tab-wrap { + background: #f9f9f9; +} +.acf-fields > .acf-tab-wrap .acf-tab-group { + position: relative; + border-top: #ccd0d4 solid 1px; + border-bottom: #ccd0d4 solid 1px; + z-index: 2; + margin-bottom: -1px; +} +.acf-admin-3-8 .acf-fields > .acf-tab-wrap .acf-tab-group { + border-color: #dfdfdf; +} + +.acf-fields.-left > .acf-tab-wrap .acf-tab-group { + padding-left: 20%; + /* mobile */ + /* rtl */ +} +@media screen and (max-width: 640px) { + .acf-fields.-left > .acf-tab-wrap .acf-tab-group { + padding-left: 10px; + } +} +html[dir=rtl] .acf-fields.-left > .acf-tab-wrap .acf-tab-group { + padding-left: 0; + padding-right: 20%; + /* mobile */ +} +@media screen and (max-width: 850px) { + html[dir=rtl] .acf-fields.-left > .acf-tab-wrap .acf-tab-group { + padding-right: 10px; + } +} + +.acf-tab-wrap.-left .acf-tab-group { + position: absolute; + left: 0; + width: 20%; + border: 0 none; + padding: 0 !important; /* important overrides 'left aligned labels' */ + margin: 1px 0 0; +} +.acf-tab-wrap.-left .acf-tab-group li { + float: none; + margin: -1px 0 0; +} +.acf-tab-wrap.-left .acf-tab-group li a { + border: 1px solid #ededed; + font-size: 13px; + line-height: 18px; + color: #0073aa; + padding: 10px; + margin: 0; + font-weight: normal; + border-width: 1px 0; + border-radius: 0; + background: transparent; +} +.acf-tab-wrap.-left .acf-tab-group li a:hover { + color: #00a0d2; +} +.acf-tab-wrap.-left .acf-tab-group li.active a { + border-color: #dfdfdf; + color: #000; + margin-right: -1px; + background: #fff; +} +html[dir=rtl] .acf-tab-wrap.-left .acf-tab-group { + left: auto; + right: 0; +} +html[dir=rtl] .acf-tab-wrap.-left .acf-tab-group li.active a { + margin-right: 0; + margin-left: -1px; +} +.acf-field + .acf-tab-wrap.-left:before { + content: ""; + display: block; + position: relative; + z-index: 1; + height: 10px; + border-top: #dfdfdf solid 1px; + border-bottom: #dfdfdf solid 1px; + margin-bottom: -1px; +} +.acf-tab-wrap.-left:first-child .acf-tab-group li:first-child a { + border-top: none; +} + +/* sidebar */ +.acf-fields.-sidebar { + padding: 0 0 0 20% !important; + position: relative; + /* before */ + /* rtl */ +} +.acf-fields.-sidebar:before { + content: ""; + display: block; + position: absolute; + top: 0; + left: 0; + width: 20%; + bottom: 0; + border-right: #dfdfdf solid 1px; + background: #f9f9f9; + z-index: 1; +} +html[dir=rtl] .acf-fields.-sidebar { + padding: 0 20% 0 0 !important; +} +html[dir=rtl] .acf-fields.-sidebar:before { + border-left: #dfdfdf solid 1px; + border-right-width: 0; + left: auto; + right: 0; +} +.acf-fields.-sidebar.-left { + padding: 0 0 0 180px !important; + /* rtl */ +} +html[dir=rtl] .acf-fields.-sidebar.-left { + padding: 0 180px 0 0 !important; +} +.acf-fields.-sidebar.-left:before { + background: #f1f1f1; + border-color: #dfdfdf; + width: 180px; +} +.acf-fields.-sidebar.-left > .acf-tab-wrap.-left .acf-tab-group { + width: 180px; +} +.acf-fields.-sidebar.-left > .acf-tab-wrap.-left .acf-tab-group li a { + border-color: #e4e4e4; +} +.acf-fields.-sidebar.-left > .acf-tab-wrap.-left .acf-tab-group li.active a { + background: #f9f9f9; +} +.acf-fields.-sidebar > .acf-field-tab + .acf-field { + border-top: none; +} + +.acf-fields.-clear > .acf-tab-wrap { + background: transparent; +} +.acf-fields.-clear > .acf-tab-wrap .acf-tab-group { + margin-top: 0; + border-top: none; + padding-left: 0; + padding-right: 0; +} +.acf-fields.-clear > .acf-tab-wrap .acf-tab-group li a { + background: #e5e5e5; +} +.acf-fields.-clear > .acf-tab-wrap .acf-tab-group li a:hover { + background: #fff; +} +.acf-fields.-clear > .acf-tab-wrap .acf-tab-group li.active a { + background: #f1f1f1; +} + +/* seamless */ +.acf-postbox.seamless > .acf-fields.-sidebar { + margin-left: 0 !important; +} +.acf-postbox.seamless > .acf-fields.-sidebar:before { + background: transparent; +} +.acf-postbox.seamless > .acf-fields > .acf-tab-wrap { + background: transparent; + margin-bottom: 10px; + padding-left: 12px; + padding-right: 12px; +} +.acf-postbox.seamless > .acf-fields > .acf-tab-wrap .acf-tab-group { + border-top: 0 none; + border-color: #ccd0d4; +} +.acf-postbox.seamless > .acf-fields > .acf-tab-wrap .acf-tab-group li a { + background: #e5e5e5; + border-color: #ccd0d4; +} +.acf-postbox.seamless > .acf-fields > .acf-tab-wrap .acf-tab-group li a:hover { + background: #fff; +} +.acf-postbox.seamless > .acf-fields > .acf-tab-wrap .acf-tab-group li.active a { + background: #f1f1f1; +} +.acf-postbox.seamless > .acf-fields > .acf-tab-wrap.-left:before { + border-top: none; + height: auto; +} +.acf-postbox.seamless > .acf-fields > .acf-tab-wrap.-left .acf-tab-group { + margin-bottom: 0; +} +.acf-postbox.seamless > .acf-fields > .acf-tab-wrap.-left .acf-tab-group li a { + border-width: 1px 0 1px 1px !important; + border-color: #cccccc; + background: #e5e5e5; +} +.acf-postbox.seamless > .acf-fields > .acf-tab-wrap.-left .acf-tab-group li.active a { + background: #f1f1f1; +} + +.menu-edit .acf-fields.-clear > .acf-tab-wrap .acf-tab-group li a, +.widget .acf-fields.-clear > .acf-tab-wrap .acf-tab-group li a { + background: #f1f1f1; +} +.menu-edit .acf-fields.-clear > .acf-tab-wrap .acf-tab-group li a:hover, .menu-edit .acf-fields.-clear > .acf-tab-wrap .acf-tab-group li.active a, +.widget .acf-fields.-clear > .acf-tab-wrap .acf-tab-group li a:hover, +.widget .acf-fields.-clear > .acf-tab-wrap .acf-tab-group li.active a { + background: #fff; +} + +.compat-item .acf-tab-wrap td { + display: block; +} + +/* within gallery sidebar */ +.acf-gallery-side .acf-tab-wrap { + border-top: 0 none !important; +} + +.acf-gallery-side .acf-tab-wrap .acf-tab-group { + margin: 10px 0 !important; + padding: 0 !important; +} + +.acf-gallery-side .acf-tab-group li.active a { + background: #f9f9f9 !important; +} + +/* withing widget */ +.widget .acf-tab-group { + border-bottom-color: #e8e8e8; +} + +.widget .acf-tab-group li a { + background: #f1f1f1; +} + +.widget .acf-tab-group li.active a { + background: #fff; +} + +/* media popup (edit image) */ +.media-modal.acf-expanded .compat-attachment-fields > tbody > tr.acf-tab-wrap .acf-tab-group { + padding-left: 23%; + border-bottom-color: #dddddd; +} + +/* table */ +.form-table > tbody > tr.acf-tab-wrap .acf-tab-group { + padding: 0 5px 0 210px; +} + +/* rtl */ +html[dir=rtl] .form-table > tbody > tr.acf-tab-wrap .acf-tab-group { + padding: 0 210px 0 5px; +} + +/*-------------------------------------------------------------------------------------------- +* +* oembed +* +*--------------------------------------------------------------------------------------------*/ +.acf-oembed { + position: relative; + border: #ccd0d4 solid 1px; + background: #fff; +} +.acf-oembed .title { + position: relative; + border-bottom: #ccd0d4 solid 1px; + padding: 5px 10px; +} +.acf-oembed .title .input-search { + margin: 0; + font-size: 14px; + line-height: 30px; + height: 30px; + padding: 0; + border: 0 none; + box-shadow: none; + border-radius: 0; + font-family: inherit; + cursor: text; +} +.acf-oembed .title .acf-actions { + padding: 6px; +} +.acf-oembed .canvas { + position: relative; + min-height: 250px; + background: #f9f9f9; +} +.acf-oembed .canvas .canvas-media { + position: relative; + z-index: 1; +} +.acf-oembed .canvas iframe { + display: block; + margin: 0; + padding: 0; + width: 100%; +} +.acf-oembed .canvas .acf-icon.-picture { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 0; + height: 42px; + width: 42px; + font-size: 42px; + color: #999; +} +.acf-oembed .canvas .acf-loading-overlay { + background: rgba(255, 255, 255, 0.9); +} +.acf-oembed .canvas .canvas-error { + position: absolute; + top: 50%; + left: 0%; + right: 0%; + margin: -9px 0 0 0; + text-align: center; + display: none; +} +.acf-oembed .canvas .canvas-error p { + padding: 8px; + margin: 0; + display: inline; +} +.acf-oembed.has-value .canvas { + min-height: 50px; +} +.acf-oembed.has-value .input-search { + font-weight: bold; +} +.acf-oembed.has-value .title:hover .acf-actions { + display: block; +} + +/*-------------------------------------------------------------------------------------------- +* +* Image +* +*--------------------------------------------------------------------------------------------*/ +.acf-image-uploader { + position: relative; + /* image wrap*/ + /* input */ + /* rtl */ +} +.acf-image-uploader:after { + display: block; + clear: both; + content: ""; +} +.acf-image-uploader p { + margin: 0; +} +.acf-image-uploader .image-wrap { + position: relative; + float: left; + /* hover */ +} +.acf-image-uploader .image-wrap img { + max-width: 100%; + max-height: 100%; + width: auto; + height: auto; + display: block; + min-width: 30px; + min-height: 30px; + background: #f1f1f1; + margin: 0; + padding: 0; + /* svg */ +} +.acf-image-uploader .image-wrap img[src$=".svg"] { + min-height: 100px; + min-width: 100px; +} +.acf-image-uploader .image-wrap:hover .acf-actions { + display: block; +} +.acf-image-uploader input.button { + width: auto; +} +html[dir=rtl] .acf-image-uploader .image-wrap { + float: right; +} + +/*-------------------------------------------------------------------------------------------- +* +* File +* +*--------------------------------------------------------------------------------------------*/ +.acf-file-uploader { + position: relative; + /* hover */ + /* rtl */ +} +.acf-file-uploader p { + margin: 0; +} +.acf-file-uploader .file-wrap { + border: #ccd0d4 solid 1px; + min-height: 84px; + position: relative; + background: #fff; +} +.acf-file-uploader .file-icon { + position: absolute; + top: 0; + left: 0; + bottom: 0; + padding: 10px; + background: #f1f1f1; + border-right: #d5d9dd solid 1px; +} +.acf-file-uploader .file-icon img { + display: block; + padding: 0; + margin: 0; + max-width: 48px; +} +.acf-file-uploader .file-info { + padding: 10px; + margin-left: 69px; +} +.acf-file-uploader .file-info p { + margin: 0 0 2px; + font-size: 13px; + line-height: 1.4em; + word-break: break-all; +} +.acf-file-uploader .file-info a { + text-decoration: none; +} +.acf-file-uploader:hover .acf-actions { + display: block; +} +html[dir=rtl] .acf-file-uploader .file-icon { + left: auto; + right: 0; + border-left: #e5e5e5 solid 1px; + border-right: none; +} +html[dir=rtl] .acf-file-uploader .file-info { + margin-right: 69px; + margin-left: 0; +} + +/*----------------------------------------------------------------------------- +* +* Date Picker +* +*-----------------------------------------------------------------------------*/ +.acf-ui-datepicker .ui-datepicker { + z-index: 900000 !important; +} +.acf-ui-datepicker .ui-datepicker .ui-widget-header a { + cursor: pointer; + transition: none; +} + +/* fix highlight state overriding hover / active */ +.acf-ui-datepicker .ui-state-highlight.ui-state-hover { + border: 1px solid #98b7e8 !important; + background: #98b7e8 !important; + font-weight: normal !important; + color: #ffffff !important; +} + +.acf-ui-datepicker .ui-state-highlight.ui-state-active { + border: 1px solid #3875d7 !important; + background: #3875d7 !important; + font-weight: normal !important; + color: #ffffff !important; +} + +/*----------------------------------------------------------------------------- +* +* Separator field +* +*-----------------------------------------------------------------------------*/ +.acf-field-separator { + /* fields */ +} +.acf-field-separator .acf-label { + margin-bottom: 0; +} +.acf-field-separator .acf-label label { + font-weight: normal; +} +.acf-field-separator .acf-input { + display: none; +} +.acf-fields > .acf-field-separator { + background: #f9f9f9; + border-bottom: 1px solid #dfdfdf; + border-top: 1px solid #dfdfdf; + margin-bottom: -1px; + z-index: 2; +} + +/*----------------------------------------------------------------------------- +* +* Taxonomy +* +*-----------------------------------------------------------------------------*/ +.acf-taxonomy-field { + position: relative; + /* hover */ + /* select */ +} +.acf-taxonomy-field .categorychecklist-holder { + border: #ccd0d4 solid 1px; + border-radius: 3px; + max-height: 200px; + overflow: auto; +} +.acf-taxonomy-field .acf-checkbox-list { + margin: 0; + padding: 10px; +} +.acf-taxonomy-field .acf-checkbox-list ul.children { + padding-left: 18px; +} +.acf-taxonomy-field:hover .acf-actions { + display: block; +} +.acf-taxonomy-field[data-ftype=select] .acf-actions { + padding: 0; + margin: -9px; +} + +/*----------------------------------------------------------------------------- +* +* Range +* +*-----------------------------------------------------------------------------*/ +.acf-range-wrap { + /* rtl */ +} +.acf-range-wrap .acf-append, +.acf-range-wrap .acf-prepend { + display: inline-block; + vertical-align: middle; + line-height: 28px; + margin: 0 7px 0 0; +} +.acf-range-wrap .acf-append { + margin: 0 0 0 7px; +} +.acf-range-wrap input[type=range] { + display: inline-block; + padding: 0; + margin: 0; + vertical-align: middle; + height: 28px; +} +.acf-range-wrap input[type=range]:focus { + outline: none; +} +.acf-range-wrap input[type=number] { + display: inline-block; + min-width: 5em; + padding-right: 4px; + margin-left: 10px; + vertical-align: middle; +} +html[dir=rtl] .acf-range-wrap input[type=number] { + margin-right: 10px; + margin-left: 0; +} +html[dir=rtl] .acf-range-wrap .acf-append { + margin: 0 7px 0 0; +} +html[dir=rtl] .acf-range-wrap .acf-prepend { + margin: 0 0 0 7px; +} + +/*----------------------------------------------------------------------------- +* +* acf-accordion +* +*-----------------------------------------------------------------------------*/ +.acf-accordion { + margin: -1px 0; + padding: 0; + background: #fff; + border-top: 1px solid #d5d9dd; + border-bottom: 1px solid #d5d9dd; + z-index: 1; +} +.acf-accordion .acf-accordion-title { + margin: 0; + padding: 12px; + font-weight: bold; + cursor: pointer; + font-size: inherit; + font-size: 13px; + line-height: 1.4em; +} +.acf-accordion .acf-accordion-title:hover { + background: #f3f4f5; +} +.acf-accordion .acf-accordion-title label { + margin: 0; + padding: 0; + font-size: 13px; + line-height: 1.4em; +} +.acf-accordion .acf-accordion-title p { + font-weight: normal; +} +.acf-accordion .acf-accordion-title .acf-accordion-icon { + float: right; +} +.acf-accordion .acf-accordion-title svg.acf-accordion-icon { + position: absolute; + right: 10px; + top: 50%; + transform: translateY(-50%); + color: #191e23; + fill: currentColor; +} +.acf-accordion .acf-accordion-content { + margin: 0; + padding: 0 12px 12px; + display: none; +} +.acf-accordion.-open > .acf-accordion-content { + display: block; +} + +.acf-field.acf-accordion { + margin: -1px 0; + padding: 0 !important; + border-color: #d5d9dd; +} +.acf-field.acf-accordion .acf-label.acf-accordion-title { + padding: 12px; + width: auto; + float: none; + width: auto; +} +.acf-field.acf-accordion .acf-input.acf-accordion-content { + padding: 0; + float: none; + width: auto; +} +.acf-field.acf-accordion .acf-input.acf-accordion-content > .acf-fields { + border-top: #eeeeee solid 1px; +} +.acf-field.acf-accordion .acf-input.acf-accordion-content > .acf-fields.-clear { + padding: 0 12px 15px; +} + +/* field specific (left) */ +.acf-fields.-left > .acf-field.acf-accordion:before { + display: none; +} +.acf-fields.-left > .acf-field.acf-accordion .acf-accordion-title { + width: auto; + margin: 0 !important; + padding: 12px; + float: none !important; +} +.acf-fields.-left > .acf-field.acf-accordion .acf-accordion-content { + padding: 0 !important; +} + +/* field specific (clear) */ +.acf-fields.-clear > .acf-field.acf-accordion { + border: #cccccc solid 1px; + background: transparent; +} +.acf-fields.-clear > .acf-field.acf-accordion + .acf-field.acf-accordion { + margin-top: -16px; +} + +/* table */ +tr.acf-field.acf-accordion { + background: transparent; +} +tr.acf-field.acf-accordion > .acf-input { + padding: 0 !important; + border: #cccccc solid 1px; +} +tr.acf-field.acf-accordion .acf-accordion-content { + padding: 0 12px 12px; +} + +/* #addtag */ +#addtag div.acf-field.error { + border: 0 none; + padding: 8px 0; +} + +#addtag > .acf-field.acf-accordion { + padding-right: 0; + margin-right: 5%; +} +#addtag > .acf-field.acf-accordion + p.submit { + margin-top: 0; +} + +/* border */ +tr.acf-accordion { + margin: 15px 0 !important; +} +tr.acf-accordion + tr.acf-accordion { + margin-top: -16px !important; +} + +/* seamless */ +.acf-postbox.seamless > .acf-fields > .acf-accordion { + margin-left: 12px; + margin-right: 12px; + border: #ccd0d4 solid 1px; +} + +/* rtl */ +/* menu item */ +/* +.menu-item-settings > .field-acf > .acf-field.acf-accordion { + border: #dfdfdf solid 1px; + margin: 10px -13px 10px -11px; + + + .acf-field.acf-accordion { + margin-top: -11px; + } +} +*/ +/* widget */ +.widget .widget-content > .acf-field.acf-accordion { + border: #dfdfdf solid 1px; + margin-bottom: 10px; +} +.widget .widget-content > .acf-field.acf-accordion .acf-accordion-title { + margin-bottom: 0; +} +.widget .widget-content > .acf-field.acf-accordion + .acf-field.acf-accordion { + margin-top: -11px; +} + +.media-modal .compat-attachment-fields .acf-field.acf-accordion + .acf-field.acf-accordion { + margin-top: -1px; +} +.media-modal .compat-attachment-fields .acf-field.acf-accordion > .acf-input { + width: 100%; +} +.media-modal .compat-attachment-fields .acf-field.acf-accordion .compat-attachment-fields > tbody > tr > td { + padding-bottom: 5px; +} + +/*----------------------------------------------------------------------------- +* +* Block Editor +* +*-----------------------------------------------------------------------------*/ +.block-editor .edit-post-sidebar .acf-postbox > .postbox-header, +.block-editor .edit-post-sidebar .acf-postbox > .hndle { + border-bottom-width: 0 !important; +} +.block-editor .edit-post-sidebar .acf-postbox.closed > .postbox-header, +.block-editor .edit-post-sidebar .acf-postbox.closed > .hndle { + border-bottom-width: 1px !important; +} +.block-editor .edit-post-sidebar .acf-fields { + min-height: 1px; + overflow: auto; +} +.block-editor .edit-post-sidebar .acf-fields > .acf-field { + border-width: 0; + border-color: #e2e4e7; + margin: 16px; + padding: 0; + width: auto !important; + min-height: 0 !important; + float: none !important; +} +.block-editor .edit-post-sidebar .acf-fields > .acf-field > .acf-label { + margin-bottom: 5px; +} +.block-editor .edit-post-sidebar .acf-fields > .acf-field > .acf-label label { + font-weight: normal; +} +.block-editor .edit-post-sidebar .acf-fields > .acf-field.acf-accordion { + padding: 0; + margin: 0; + border-top-width: 1px; +} +.block-editor .edit-post-sidebar .acf-fields > .acf-field.acf-accordion:first-child { + border-top-width: 0; +} +.block-editor .edit-post-sidebar .acf-fields > .acf-field.acf-accordion .acf-accordion-title { + margin: 0; + padding: 15px; +} +.block-editor .edit-post-sidebar .acf-fields > .acf-field.acf-accordion .acf-accordion-title label { + font-weight: 500; + color: rgb(30, 30, 30); +} +.block-editor .edit-post-sidebar .acf-fields > .acf-field.acf-accordion .acf-accordion-title svg.acf-accordion-icon { + right: 16px; +} +.block-editor .edit-post-sidebar .acf-fields > .acf-field.acf-accordion .acf-accordion-content > .acf-fields { + border-top-width: 0; +} + +/*----------------------------------------------------------------------------- +* +* Prefix field label & prefix field names +* +*-----------------------------------------------------------------------------*/ +.acf-field-setting-prefix_label p.description, +.acf-field-setting-prefix_name p.description { + order: 3; + margin-top: 0; + margin-left: 16px; +} +.acf-field-setting-prefix_label p.description code, +.acf-field-setting-prefix_name p.description code { + padding-top: 4px; + padding-right: 6px; + padding-bottom: 4px; + padding-left: 6px; + background-color: #F2F4F7; + border-radius: 4px; + color: #667085; +} + +/*----------------------------------------------------------------------------- +* +* Editor tab styles +* +*-----------------------------------------------------------------------------*/ +.acf-fields > .acf-tab-wrap:first-child .acf-tab-group { + border-top: none; +} + +.acf-fields > .acf-tab-wrap .acf-tab-group li.active a { + background: #ffffff; +} + +.acf-fields > .acf-tab-wrap .acf-tab-group li a { + background: #f1f1f1; + border-color: #ccd0d4; +} + +.acf-fields > .acf-tab-wrap .acf-tab-group li a:hover { + background: #fff; +} + +/*-------------------------------------------------------------------------------------------- +* +* User +* +*--------------------------------------------------------------------------------------------*/ +.form-table > tbody { + /* field */ + /* tab wrap */ + /* misc */ +} +.form-table > tbody > .acf-field { + /* label */ + /* input */ +} +.form-table > tbody > .acf-field > .acf-label { + padding: 20px 10px 20px 0; + width: 210px; + /* rtl */ +} +html[dir=rtl] .form-table > tbody > .acf-field > .acf-label { + padding: 20px 0 20px 10px; +} +.form-table > tbody > .acf-field > .acf-label label { + font-size: 14px; + color: #23282d; +} +.form-table > tbody > .acf-field > .acf-input { + padding: 15px 10px; + /* rtl */ +} +html[dir=rtl] .form-table > tbody > .acf-field > .acf-input { + padding: 15px 10px 15px 5%; +} +.form-table > tbody > .acf-tab-wrap td { + padding: 15px 5% 15px 0; + /* rtl */ +} +html[dir=rtl] .form-table > tbody > .acf-tab-wrap td { + padding: 15px 0 15px 5%; +} +.form-table > tbody .form-table th.acf-th { + width: auto; +} + +#your-profile, +#createuser { + /* override for user css */ + /* allow sub fields to display correctly */ +} +#your-profile .acf-field input[type=text], +#your-profile .acf-field input[type=password], +#your-profile .acf-field input[type=number], +#your-profile .acf-field input[type=search], +#your-profile .acf-field input[type=email], +#your-profile .acf-field input[type=url], +#your-profile .acf-field select, +#createuser .acf-field input[type=text], +#createuser .acf-field input[type=password], +#createuser .acf-field input[type=number], +#createuser .acf-field input[type=search], +#createuser .acf-field input[type=email], +#createuser .acf-field input[type=url], +#createuser .acf-field select { + max-width: 25em; +} +#your-profile .acf-field textarea, +#createuser .acf-field textarea { + max-width: 500px; +} +#your-profile .acf-field .acf-field input[type=text], +#your-profile .acf-field .acf-field input[type=password], +#your-profile .acf-field .acf-field input[type=number], +#your-profile .acf-field .acf-field input[type=search], +#your-profile .acf-field .acf-field input[type=email], +#your-profile .acf-field .acf-field input[type=url], +#your-profile .acf-field .acf-field textarea, +#your-profile .acf-field .acf-field select, +#createuser .acf-field .acf-field input[type=text], +#createuser .acf-field .acf-field input[type=password], +#createuser .acf-field .acf-field input[type=number], +#createuser .acf-field .acf-field input[type=search], +#createuser .acf-field .acf-field input[type=email], +#createuser .acf-field .acf-field input[type=url], +#createuser .acf-field .acf-field textarea, +#createuser .acf-field .acf-field select { + max-width: none; +} + +#registerform h2 { + margin: 1em 0; +} +#registerform .acf-field { + margin-top: 0; + /* + .acf-input { + input { + font-size: 24px; + padding: 5px; + height: auto; + } + } + */ +} +#registerform .acf-field .acf-label { + margin-bottom: 0; +} +#registerform .acf-field .acf-label label { + font-weight: normal; + line-height: 1.5; +} +#registerform p.submit { + text-align: right; +} + +/*-------------------------------------------------------------------------------------------- +* +* Term +* +*--------------------------------------------------------------------------------------------*/ +#acf-term-fields { + padding-right: 5%; +} +#acf-term-fields > .acf-field > .acf-label { + margin: 0; +} +#acf-term-fields > .acf-field > .acf-label label { + font-size: 12px; + font-weight: normal; +} + +p.submit .spinner, +p.submit .acf-spinner { + vertical-align: top; + float: none; + margin: 4px 4px 0; +} + +#edittag .acf-fields.-left > .acf-field { + padding-left: 220px; +} +#edittag .acf-fields.-left > .acf-field:before { + width: 209px; +} +#edittag .acf-fields.-left > .acf-field > .acf-label { + width: 220px; + margin-left: -220px; + padding: 0 10px; +} +#edittag .acf-fields.-left > .acf-field > .acf-input { + padding: 0; +} + +#edittag > .acf-fields.-left { + width: 96%; +} +#edittag > .acf-fields.-left > .acf-field > .acf-label { + padding-left: 0; +} + +/*-------------------------------------------------------------------------------------------- +* +* Comment +* +*--------------------------------------------------------------------------------------------*/ +.editcomment td:first-child { + white-space: nowrap; + width: 131px; +} + +/*-------------------------------------------------------------------------------------------- +* +* Widget +* +*--------------------------------------------------------------------------------------------*/ +#widgets-right .widget .acf-field .description { + padding-left: 0; + padding-right: 0; +} + +.acf-widget-fields > .acf-field .acf-label { + margin-bottom: 5px; +} +.acf-widget-fields > .acf-field .acf-label label { + font-weight: normal; + margin: 0; +} + +/*-------------------------------------------------------------------------------------------- +* +* Nav Menu +* +*--------------------------------------------------------------------------------------------*/ +.acf-menu-settings { + border-top: 1px solid #eee; + margin-top: 2em; +} +.acf-menu-settings.-seamless { + border-top: none; + margin-top: 15px; +} +.acf-menu-settings.-seamless > h2 { + display: none; +} +.acf-menu-settings .list li { + display: block; + margin-bottom: 0; +} + +.acf-fields.acf-menu-item-fields { + clear: both; + padding-top: 1px; +} +.acf-fields.acf-menu-item-fields > .acf-field { + margin: 5px 0; + padding-right: 10px; +} +.acf-fields.acf-menu-item-fields > .acf-field .acf-label { + margin-bottom: 0; +} +.acf-fields.acf-menu-item-fields > .acf-field .acf-label label { + font-style: italic; + font-weight: normal; +} + +/*--------------------------------------------------------------------------------------------- +* +* Attachment Form (single) +* +*---------------------------------------------------------------------------------------------*/ +#post .compat-attachment-fields .compat-field-acf-form-data { + display: none; +} +#post .compat-attachment-fields, +#post .compat-attachment-fields > tbody, +#post .compat-attachment-fields > tbody > tr, +#post .compat-attachment-fields > tbody > tr > th, +#post .compat-attachment-fields > tbody > tr > td { + display: block; +} +#post .compat-attachment-fields > tbody > .acf-field { + margin: 15px 0; +} +#post .compat-attachment-fields > tbody > .acf-field > .acf-label { + margin: 0; +} +#post .compat-attachment-fields > tbody > .acf-field > .acf-label label { + margin: 0; + padding: 0; +} +#post .compat-attachment-fields > tbody > .acf-field > .acf-label label p { + margin: 0 0 3px !important; +} +#post .compat-attachment-fields > tbody > .acf-field > .acf-input { + margin: 0; +} + +/*--------------------------------------------------------------------------------------------- +* +* Media Model +* +*---------------------------------------------------------------------------------------------*/ +/* WP sets tables to act as divs. ACF uses tables, so these muct be reset */ +.media-modal .compat-attachment-fields td.acf-input table { + display: table; + table-layout: auto; +} +.media-modal .compat-attachment-fields td.acf-input table tbody { + display: table-row-group; +} +.media-modal .compat-attachment-fields td.acf-input table tr { + display: table-row; +} +.media-modal .compat-attachment-fields td.acf-input table td, .media-modal .compat-attachment-fields td.acf-input table th { + display: table-cell; +} + +/* field widths floats */ +.media-modal .compat-attachment-fields > tbody > .acf-field { + margin: 5px 0; +} +.media-modal .compat-attachment-fields > tbody > .acf-field > .acf-label { + min-width: 30%; + margin: 0; + padding: 0; + float: left; + text-align: right; + display: block; + float: left; +} +.media-modal .compat-attachment-fields > tbody > .acf-field > .acf-label > label { + padding-top: 6px; + margin: 0; + color: #666666; + font-weight: 400; + line-height: 16px; +} +.media-modal .compat-attachment-fields > tbody > .acf-field > .acf-input { + width: 65%; + margin: 0; + padding: 0; + float: right; + display: block; +} +.media-modal .compat-attachment-fields > tbody > .acf-field p.description { + margin: 0; +} + +/* restricted selection (copy of WP .upload-errors)*/ +.acf-selection-error { + background: #ffebe8; + border: 1px solid #c00; + border-radius: 3px; + padding: 8px; + margin: 20px 0 0; +} +.acf-selection-error .selection-error-label { + background: #CC0000; + border-radius: 3px; + color: #fff; + font-weight: bold; + margin-right: 8px; + padding: 2px 4px; +} +.acf-selection-error .selection-error-message { + color: #b44; + display: block; + padding-top: 8px; + word-wrap: break-word; + white-space: pre-wrap; +} + +/* disabled attachment */ +.media-modal .attachment.acf-disabled .thumbnail { + opacity: 0.25 !important; +} +.media-modal .attachment.acf-disabled .attachment-preview:before { + background: rgba(0, 0, 0, 0.15); + z-index: 1; + position: relative; +} + +/* misc */ +.media-modal { + /* compat-item */ + /* allow line breaks in upload error */ + /* fix required span */ + /* sidebar */ + /* mobile md */ +} +.media-modal .compat-field-acf-form-data, +.media-modal .compat-field-acf-blank { + display: none !important; +} +.media-modal .upload-error-message { + white-space: pre-wrap; +} +.media-modal .acf-required { + padding: 0 !important; + margin: 0 !important; + float: none !important; + color: #f00 !important; +} +.media-modal .media-sidebar .compat-item { + padding-bottom: 20px; +} +@media (max-width: 900px) { + .media-modal { + /* label */ + /* field */ + } + .media-modal .setting span, + .media-modal .compat-attachment-fields > tbody > .acf-field > .acf-label { + width: 98%; + float: none; + text-align: left; + min-height: 0; + padding: 0; + } + .media-modal .setting input, + .media-modal .setting textarea, + .media-modal .compat-attachment-fields > tbody > .acf-field > .acf-input { + float: none; + height: auto; + max-width: none; + width: 98%; + } +} + +/*--------------------------------------------------------------------------------------------- +* +* Media Model (expand details) +* +*---------------------------------------------------------------------------------------------*/ +.media-modal .acf-expand-details { + float: right; + padding: 8px 10px; + margin-right: 6px; + font-size: 13px; + height: 18px; + line-height: 18px; + color: #666; + text-decoration: none; +} +.media-modal .acf-expand-details:focus, .media-modal .acf-expand-details:active { + outline: 0 none; + box-shadow: none; + color: #666; +} +.media-modal .acf-expand-details:hover { + color: #000; +} +.media-modal .acf-expand-details .is-open { + display: none; +} +.media-modal .acf-expand-details .is-closed { + display: block; +} +@media (max-width: 640px) { + .media-modal .acf-expand-details { + display: none; + } +} + +/* expanded */ +.media-modal.acf-expanded { + /* toggle */ +} +.media-modal.acf-expanded .acf-expand-details .is-open { + display: block; +} +.media-modal.acf-expanded .acf-expand-details .is-closed { + display: none; +} +.media-modal.acf-expanded .attachments-browser .media-toolbar, +.media-modal.acf-expanded .attachments-browser .attachments { + right: 740px; +} +.media-modal.acf-expanded .media-sidebar { + width: 708px; +} +.media-modal.acf-expanded .media-sidebar .attachment-info .thumbnail { + float: left; + max-height: none; +} +.media-modal.acf-expanded .media-sidebar .attachment-info .thumbnail img { + max-width: 100%; + max-height: 200px; +} +.media-modal.acf-expanded .media-sidebar .attachment-info .details { + float: right; +} +.media-modal.acf-expanded .media-sidebar .attachment-info .thumbnail, +.media-modal.acf-expanded .media-sidebar .attachment-details .setting .name, +.media-modal.acf-expanded .media-sidebar .compat-attachment-fields > tbody > .acf-field > .acf-label { + min-width: 20%; + margin-right: 0; +} +.media-modal.acf-expanded .media-sidebar .attachment-info .details, +.media-modal.acf-expanded .media-sidebar .attachment-details .setting input, +.media-modal.acf-expanded .media-sidebar .attachment-details .setting textarea, +.media-modal.acf-expanded .media-sidebar .attachment-details .setting + .description, +.media-modal.acf-expanded .media-sidebar .compat-attachment-fields > tbody > .acf-field > .acf-input { + min-width: 77%; +} +@media (max-width: 900px) { + .media-modal.acf-expanded .attachments-browser .media-toolbar { + display: none; + } + .media-modal.acf-expanded .attachments { + display: none; + } + .media-modal.acf-expanded .media-sidebar { + width: auto; + max-width: none !important; + bottom: 0 !important; + } + .media-modal.acf-expanded .media-sidebar .attachment-info .thumbnail { + min-width: 0; + max-width: none; + width: 30%; + } + .media-modal.acf-expanded .media-sidebar .attachment-info .details { + min-width: 0; + max-width: none; + width: 67%; + } +} +@media (max-width: 640px) { + .media-modal.acf-expanded .media-sidebar .attachment-info .thumbnail, .media-modal.acf-expanded .media-sidebar .attachment-info .details { + width: 100%; + } +} + +/*--------------------------------------------------------------------------------------------- +* +* ACF Media Model +* +*---------------------------------------------------------------------------------------------*/ +.acf-media-modal { + /* hide embed settings */ +} +.acf-media-modal .media-embed .setting.align, +.acf-media-modal .media-embed .setting.link-to { + display: none; +} + +/*--------------------------------------------------------------------------------------------- +* +* ACF Media Model (Select Mode) +* +*---------------------------------------------------------------------------------------------*/ +/*--------------------------------------------------------------------------------------------- +* +* ACF Media Model (Edit Mode) +* +*---------------------------------------------------------------------------------------------*/ +.acf-media-modal.-edit { + /* resize modal */ + left: 15%; + right: 15%; + top: 100px; + bottom: 100px; + /* hide elements */ + /* full width */ + /* tidy up incorrect distance */ + /* title box shadow (to match media grid) */ + /* sidebar */ + /* mobile md */ + /* mobile sm */ +} +.acf-media-modal.-edit .media-frame-menu, +.acf-media-modal.-edit .media-frame-router, +.acf-media-modal.-edit .media-frame-content .attachments, +.acf-media-modal.-edit .media-frame-content .media-toolbar { + display: none; +} +.acf-media-modal.-edit .media-frame-title, +.acf-media-modal.-edit .media-frame-content, +.acf-media-modal.-edit .media-frame-toolbar, +.acf-media-modal.-edit .media-sidebar { + width: auto; + left: 0; + right: 0; +} +.acf-media-modal.-edit .media-frame-content { + top: 50px; +} +.acf-media-modal.-edit .media-frame-title { + border-bottom: 1px solid #DFDFDF; + box-shadow: 0 4px 4px -4px rgba(0, 0, 0, 0.1); +} +.acf-media-modal.-edit .media-sidebar { + padding: 0 16px; + /* WP details */ + /* ACF fields */ + /* WP required message */ +} +.acf-media-modal.-edit .media-sidebar .attachment-details { + overflow: visible; + /* hide 'Attachment Details' heading */ + /* remove overflow */ + /* move thumbnail */ +} +.acf-media-modal.-edit .media-sidebar .attachment-details > h3, .acf-media-modal.-edit .media-sidebar .attachment-details > h2 { + display: none; +} +.acf-media-modal.-edit .media-sidebar .attachment-details .attachment-info { + background: #fff; + border-bottom: #dddddd solid 1px; + padding: 16px; + margin: 0 -16px 16px; +} +.acf-media-modal.-edit .media-sidebar .attachment-details .thumbnail { + margin: 0 16px 0 0; +} +.acf-media-modal.-edit .media-sidebar .attachment-details .setting { + margin: 0 0 5px; +} +.acf-media-modal.-edit .media-sidebar .attachment-details .setting span { + margin: 0; +} +.acf-media-modal.-edit .media-sidebar .compat-attachment-fields > tbody > .acf-field { + margin: 0 0 5px; +} +.acf-media-modal.-edit .media-sidebar .compat-attachment-fields > tbody > .acf-field p.description { + margin-top: 3px; +} +.acf-media-modal.-edit .media-sidebar .media-types-required-info { + display: none; +} +@media (max-width: 900px) { + .acf-media-modal.-edit { + top: 30px; + right: 30px; + bottom: 30px; + left: 30px; + } +} +@media (max-width: 640px) { + .acf-media-modal.-edit { + top: 0; + right: 0; + bottom: 0; + left: 0; + } +} +@media (max-width: 480px) { + .acf-media-modal.-edit .media-frame-content { + top: 40px; + } +} + +.acf-temp-remove { + position: relative; + opacity: 1; + -webkit-transition: all 0.25s ease; + -moz-transition: all 0.25s ease; + -o-transition: all 0.25s ease; + transition: all 0.25s ease; + overflow: hidden; + /* overlay prevents hover */ +} +.acf-temp-remove:after { + display: block; + content: ""; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + z-index: 99; +} + +.hidden-by-conditional-logic { + display: none !important; +} +.hidden-by-conditional-logic.appear-empty { + display: table-cell !important; +} +.hidden-by-conditional-logic.appear-empty .acf-input { + display: none !important; +} + +.acf-postbox.acf-hidden { + display: none !important; +} + +.acf-attention { + transition: border 0.25s ease-out; +} +.acf-attention.-focused { + border: #23282d solid 1px !important; + transition: none; +} + +tr.acf-attention { + transition: box-shadow 0.25s ease-out; + position: relative; +} +tr.acf-attention.-focused { + box-shadow: #23282d 0 0 0px 1px !important; +} + +#editor .edit-post-layout__metaboxes { + padding: 0; +} +#editor .edit-post-layout__metaboxes .edit-post-meta-boxes-area { + margin: 0; +} +#editor .metabox-location-side .postbox-container { + float: none; +} +#editor .postbox { + color: #444; +} +#editor .postbox > .postbox-header .hndle { + border-bottom: none; +} +#editor .postbox > .postbox-header .hndle:hover { + background: transparent; +} +#editor .postbox > .postbox-header .handle-actions .handle-order-higher, +#editor .postbox > .postbox-header .handle-actions .handle-order-lower { + width: 1.62rem; +} +#editor .postbox > .postbox-header .handle-actions .acf-hndle-cog { + height: 44px; + line-height: 44px; +} +#editor .postbox > .postbox-header:hover { + background: #f0f0f0; +} +#editor .postbox:last-child.closed > .postbox-header { + border-bottom: none; +} +#editor .postbox:last-child > .inside { + border-bottom: none; +} +#editor .block-editor-writing-flow__click-redirect { + min-height: 50px; +} + +body.is-dragging-metaboxes #acf_after_title-sortables { + outline: 3px dashed #646970; + display: flow-root; + min-height: 60px; + margin-bottom: 3px !important; +} + +/*# sourceMappingURL=acf-input.css.map*/ \ No newline at end of file diff --git a/assets/build/css/acf-input.css.map b/assets/build/css/acf-input.css.map new file mode 100644 index 0000000..9bc6f22 --- /dev/null +++ b/assets/build/css/acf-input.css.map @@ -0,0 +1 @@ +{"version":3,"file":"acf-input.css","mappings":"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sZA;AAIA;AACA;;;;;;;;;CAAA;AAWA;AACA;EACC;EACA;AJvZD;AIyZC;EACC;AJvZF;AI0ZC;EACC;AJxZF;;AI+ZC;EACC;AJ5ZF;AIgaC;EACC;AJ9ZF;AIkaC;EACC;AJhaF;;AIoaA;;;;+EAAA;AAUG;;EAEC;AJtaJ;AIyaI;;EAEC;AJvaL;AI6aE;EACC;EACA;AJ3aH;AI6aG;EACC;EACA;EACA;EACA;EAGA;EACA;EACA;AJ7aJ;AIgbI;EACC;AJ9aL;AI+aK;EACC;AJ7aN;AIkbI;EACC;EACA;EACA;AJhbL;AIkbK;EACC;AJhbN;AImbK;EACC;EACA;AJjbN;AIkbM;EACC;EACA;AJhbP;AImbM;EACC;AJjbP;AIsbM;EACC;AJpbP;;AI6bA;;;;+EAAA;AAOC;;EACC;EAEC;EACA;AJ5bH;AI+bE;;EAEE;EACA;EACA;EACA;EAED,yBHz0FQ;EG00FR;EAEA,cHx0FQ;ADy4EX;;AIocA;;;;+EAAA;AAMA;EACC;AJlcD;;AIqcA;EACC;AJlcD;;AIqcA;EACC;EACA;AJlcD;;AIqcA;EACC;AJlcD;;AKh9EA;;;;8FAAA;AAMA;EAEC;EAkCA;EAYA;ALq6ED;AKl9EC;EAEC;EAkBA;ALk8EF;AKn9EE;EACC;EACG;EAEA;ALo9EN;AKn9EG;EACC;ALq9EJ;AKl9EM;EACF;EACA;ALo9EJ;AK78EE;EACC;EAEA;AL88EH;AK78EG;EACC;AL+8EJ;AKv8EC;EACC;EAEA;ALw8EF;AKv8EE;EACC;ALy8EH;AKl8EC;EACC;ALo8EF;;AK/7EA;;EAGC;EAgBA;ALk7ED;AKj8EC;;;;;;;;;;;;;;EAOI;AL08EL;AKv8EC;;EACC;AL08EF;AKr8EC;;;;;;;;;;;;;;;;EAQI;AL+8EL;;AKz8EC;EACC;AL48EF;AKz8EC;EACC;EAWF;;;;;;;;GAAA;ALy8EA;AKl9EE;EACC;ALo9EH;AKl9EG;EACC;EACA;ALo9EJ;AKr8EC;EACC;ALu8EF;;AKl8EA;;;;8FAAA;AAOA;EACC;ALm8ED;AK/7EE;EACC;ALi8EH;AK/7EG;EACC;EACA;ALi8EJ;;AK17EA;;EAEC;EACA;EACA;AL67ED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;IACA;IACA;EN8lFA;AACF;AM1lFC;EAhHD;IAiHE;IACA;IACA;IACA;EN6lFA;AACF;AM3lFC;EACC;IACI;EN6lFJ;AACF;;AOnjGA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;APqjGD;AOpjGC;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;APsjGF;;AOjjGA;EACC;APojGD;AOjjGC;EACC;APmjGF;AOljGE;EACC;APojGH;;AO9iGA;EACC;APijGD;;AO7iGA;EACC;APgjGD;AO/iGC;EACC;EACA;APijGF;;AO9iGA;EACC;EACA;APijGD;AOhjGC;EACC;APkjGF;;AQnmGC;EACC;ARsmGF;AQrmGE;EACC;ARumGH;AQjmGE;EACC;ARmmGH;AQ9lGC;EACC;ARgmGF;AQ7lGG;EACC;AR+lGJ;AQ9lGI;EACC;ARgmGL;AQ5lGI;;EAEC;AR8lGL;AQ1lGI;EACC;EACA;AR4lGL;AQzlGG;EACC;AR2lGJ;AQtlGE;EACC;ARwlGH;AQtlGE;EACC;ARwlGH;AQnlGC;EACC;ARqlGF;;AQhlGA;EACC;EACA;EACA;EACA;ARmlGD,C","sources":["webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/sass/acf-input.scss","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/sass/_variables.scss","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/sass/_mixins.scss","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/sass/_typography.scss","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/sass/_fields.scss","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/sass/_forms.scss","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/sass/_media.scss","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/sass/_input.scss","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/sass/_postbox.scss"],"sourcesContent":["@charset \"UTF-8\";\n/*--------------------------------------------------------------------------------------------\n*\n*\tVars\n*\n*--------------------------------------------------------------------------------------------*/\n/* colors */\n/* acf-field */\n/* responsive */\n/*--------------------------------------------------------------------------------------------\n*\n*\tACF 6 ↓\n*\n*--------------------------------------------------------------------------------------------*/\n/*--------------------------------------------------------------------------------------------\n*\n* Mixins\n*\n*--------------------------------------------------------------------------------------------*/\n/*---------------------------------------------------------------------------------------------\n*\n* Global\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-admin-page #wpcontent {\n line-height: 140%;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Links\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-admin-page a {\n color: #0783BE;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Headings\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-h1, .acf-admin-page h1,\n.acf-headerbar h1 {\n font-size: 21px;\n font-weight: 400;\n}\n\n.acf-h2, .acf-page-title, .acf-admin-page h2,\n.acf-headerbar h2 {\n font-size: 18px;\n font-weight: 400;\n}\n\n.acf-h3, .acf-admin-page h3,\n.acf-headerbar h3 {\n font-size: 16px;\n font-weight: 400;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Paragraphs\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-admin-page .p1 {\n font-size: 15px;\n}\n.acf-admin-page .p2 {\n font-size: 14px;\n}\n.acf-admin-page .p3 {\n font-size: 13.5px;\n}\n.acf-admin-page .p4 {\n font-size: 13px;\n}\n.acf-admin-page .p5 {\n font-size: 12.5px;\n}\n.acf-admin-page .p6, .acf-admin-page .acf-field p.description, .acf-field .acf-admin-page p.description, .acf-admin-page .acf-small {\n font-size: 12px;\n}\n.acf-admin-page .p7, .acf-admin-page .acf-field-setting-prefix_label p.description code, .acf-field-setting-prefix_label p.description .acf-admin-page code,\n.acf-admin-page .acf-field-setting-prefix_name p.description code,\n.acf-field-setting-prefix_name p.description .acf-admin-page code {\n font-size: 11.5px;\n}\n.acf-admin-page .p8 {\n font-size: 11px;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Page titles\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-page-title {\n color: #344054;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Hide old / native WP titles from pages\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-admin-page .acf-settings-wrap h1 {\n display: none !important;\n}\n.acf-admin-page #acf-admin-tools h1:not(.acf-field-group-pro-features-title, .acf-field-group-pro-features-title-sm) {\n display: none !important;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Small\n*\n*---------------------------------------------------------------------------------------------*/\n/*---------------------------------------------------------------------------------------------\n*\n* Link focus style\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-admin-page a:focus {\n box-shadow: none;\n outline: none;\n}\n.acf-admin-page a:focus-visible {\n box-shadow: 0 0 0 1px #4f94d4, 0 0 2px 1px rgba(79, 148, 212, 0.8);\n outline: 1px solid transparent;\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tacf-field\n*\n*--------------------------------------------------------------------------------------------*/\n.acf-field,\n.acf-field .acf-label,\n.acf-field .acf-input {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n position: relative;\n}\n\n.acf-field {\n margin: 15px 0;\n clear: both;\n}\n.acf-field p.description {\n display: block;\n margin: 0;\n padding: 0;\n}\n.acf-field .acf-label {\n vertical-align: top;\n margin: 0 0 10px;\n}\n.acf-field .acf-label label {\n display: block;\n font-weight: 500;\n margin: 0 0 3px;\n padding: 0;\n}\n.acf-field .acf-label:empty {\n margin-bottom: 0;\n}\n.acf-field .acf-input {\n vertical-align: top;\n}\n.acf-field p.description {\n display: block;\n margin-top: 6px;\n color: #667085;\n}\n.acf-field .acf-notice {\n margin: 0 0 15px;\n background: #edf2ff;\n color: #0c6ca0;\n border-color: #2183b9;\n}\n.acf-field .acf-notice.-error {\n background: #ffe6e6;\n color: #cc2727;\n border-color: #d12626;\n}\n.acf-field .acf-notice.-success {\n background: #eefbe8;\n color: #0e7b17;\n border-color: #32a23b;\n}\n.acf-field .acf-notice.-warning {\n background: #fff3e6;\n color: #bd4b0e;\n border-color: #d16226;\n}\ntd.acf-field,\ntr.acf-field {\n margin: 0;\n}\n\n.acf-field[data-width] {\n float: left;\n clear: none;\n /*\n \t@media screen and (max-width: $sm) {\n \t\tfloat: none;\n \t\twidth: auto;\n \t\tborder-left-width: 0;\n \t\tborder-right-width: 0;\n \t}\n */\n}\n.acf-field[data-width] + .acf-field[data-width] {\n border-left: 1px solid #eeeeee;\n}\nhtml[dir=rtl] .acf-field[data-width] {\n float: right;\n}\nhtml[dir=rtl] .acf-field[data-width] + .acf-field[data-width] {\n border-left: none;\n border-right: 1px solid #eeeeee;\n}\ntd.acf-field[data-width],\ntr.acf-field[data-width] {\n float: none;\n}\n\n.acf-field.-c0 {\n clear: both;\n border-left-width: 0 !important;\n}\nhtml[dir=rtl] .acf-field.-c0 {\n border-left-width: 1px !important;\n border-right-width: 0 !important;\n}\n\n.acf-field.-r0 {\n border-top-width: 0 !important;\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tacf-fields\n*\n*--------------------------------------------------------------------------------------------*/\n.acf-fields {\n position: relative;\n}\n.acf-fields:after {\n display: block;\n clear: both;\n content: \"\";\n}\n.acf-fields.-border {\n border: #ccd0d4 solid 1px;\n background: #fff;\n}\n.acf-fields > .acf-field {\n position: relative;\n margin: 0;\n padding: 16px;\n border-top-width: 1px;\n border-top-style: solid;\n border-top-color: #EAECF0;\n}\n.acf-fields > .acf-field:first-child {\n border-top: none;\n margin-top: 0;\n}\ntd.acf-fields {\n padding: 0 !important;\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tacf-fields (clear)\n*\n*--------------------------------------------------------------------------------------------*/\n.acf-fields.-clear > .acf-field {\n border: none;\n padding: 0;\n margin: 15px 0;\n}\n.acf-fields.-clear > .acf-field[data-width] {\n border: none !important;\n}\n.acf-fields.-clear > .acf-field > .acf-label {\n padding: 0;\n}\n.acf-fields.-clear > .acf-field > .acf-input {\n padding: 0;\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tacf-fields (left)\n*\n*--------------------------------------------------------------------------------------------*/\n.acf-fields.-left > .acf-field {\n padding: 15px 0;\n}\n.acf-fields.-left > .acf-field:after {\n display: block;\n clear: both;\n content: \"\";\n}\n.acf-fields.-left > .acf-field:before {\n content: \"\";\n display: block;\n position: absolute;\n z-index: 0;\n background: #f9f9f9;\n border-color: #e1e1e1;\n border-style: solid;\n border-width: 0 1px 0 0;\n top: 0;\n bottom: 0;\n left: 0;\n width: 20%;\n}\n.acf-fields.-left > .acf-field[data-width] {\n float: none;\n width: auto !important;\n border-left-width: 0 !important;\n border-right-width: 0 !important;\n}\n.acf-fields.-left > .acf-field > .acf-label {\n float: left;\n width: 20%;\n margin: 0;\n padding: 0 12px;\n}\n.acf-fields.-left > .acf-field > .acf-input {\n float: left;\n width: 80%;\n margin: 0;\n padding: 0 12px;\n}\nhtml[dir=rtl] .acf-fields.-left > .acf-field:before {\n border-width: 0 0 0 1px;\n left: auto;\n right: 0;\n}\nhtml[dir=rtl] .acf-fields.-left > .acf-field > .acf-label {\n float: right;\n}\nhtml[dir=rtl] .acf-fields.-left > .acf-field > .acf-input {\n float: right;\n}\n#side-sortables .acf-fields.-left > .acf-field:before {\n display: none;\n}\n#side-sortables .acf-fields.-left > .acf-field > .acf-label {\n width: 100%;\n margin-bottom: 10px;\n}\n#side-sortables .acf-fields.-left > .acf-field > .acf-input {\n width: 100%;\n}\n@media screen and (max-width: 640px) {\n .acf-fields.-left > .acf-field:before {\n display: none;\n }\n .acf-fields.-left > .acf-field > .acf-label {\n width: 100%;\n margin-bottom: 10px;\n }\n .acf-fields.-left > .acf-field > .acf-input {\n width: 100%;\n }\n}\n\n/* clear + left */\n.acf-fields.-clear.-left > .acf-field {\n padding: 0;\n border: none;\n}\n.acf-fields.-clear.-left > .acf-field:before {\n display: none;\n}\n.acf-fields.-clear.-left > .acf-field > .acf-label {\n padding: 0;\n}\n.acf-fields.-clear.-left > .acf-field > .acf-input {\n padding: 0;\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tacf-table\n*\n*--------------------------------------------------------------------------------------------*/\n.acf-table tr.acf-field > td.acf-label {\n padding: 15px 12px;\n margin: 0;\n background: #f9f9f9;\n width: 20%;\n}\n.acf-table tr.acf-field > td.acf-input {\n padding: 15px 12px;\n margin: 0;\n border-left-color: #e1e1e1;\n}\n\n.acf-sortable-tr-helper {\n position: relative !important;\n display: table-row !important;\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tacf-postbox\n*\n*--------------------------------------------------------------------------------------------*/\n.acf-postbox {\n position: relative;\n}\n.acf-postbox > .inside {\n margin: 0 !important; /* override WP style - do not delete - you have tried this before */\n padding: 0 !important; /* override WP style - do not delete - you have tried this before */\n}\n.acf-postbox .acf-hndle-cog {\n color: #72777c;\n font-size: 16px;\n line-height: 36px;\n height: 36px;\n width: 1.62rem;\n position: relative;\n display: none;\n}\n.acf-postbox .acf-hndle-cog:hover {\n color: #191e23;\n}\n.acf-postbox > .hndle:hover .acf-hndle-cog,\n.acf-postbox > .postbox-header:hover .acf-hndle-cog {\n display: inline-block;\n}\n.acf-postbox > .hndle .acf-hndle-cog {\n height: 20px;\n line-height: 20px;\n float: right;\n width: auto;\n}\n.acf-postbox > .hndle .acf-hndle-cog:hover {\n color: #777777;\n}\n.acf-postbox .acf-replace-with-fields {\n padding: 15px;\n text-align: center;\n}\n\n#post-body-content #acf_after_title-sortables {\n margin: 20px 0 -20px;\n}\n\n/* seamless */\n.acf-postbox.seamless {\n border: 0 none;\n background: transparent;\n box-shadow: none;\n /* hide hndle */\n /* inside */\n}\n.acf-postbox.seamless > .postbox-header,\n.acf-postbox.seamless > .hndle,\n.acf-postbox.seamless > .handlediv {\n display: none !important;\n}\n.acf-postbox.seamless > .inside {\n display: block !important; /* stop metabox from hiding when closed */\n margin-left: -12px !important;\n margin-right: -12px !important;\n}\n.acf-postbox.seamless > .inside > .acf-field {\n border-color: transparent;\n}\n\n/* seamless (left) */\n.acf-postbox.seamless > .acf-fields.-left {\n /* hide sidebar bg */\n /* mobile */\n}\n.acf-postbox.seamless > .acf-fields.-left > .acf-field:before {\n display: none;\n}\n@media screen and (max-width: 782px) {\n .acf-postbox.seamless > .acf-fields.-left {\n /* remove padding */\n }\n .acf-postbox.seamless > .acf-fields.-left > .acf-field > .acf-label, .acf-postbox.seamless > .acf-fields.-left > .acf-field > .acf-input {\n padding: 0;\n }\n}\n\n/*-----------------------------------------------------------------------------\n*\n* Inputs\n*\n*-----------------------------------------------------------------------------*/\n.acf-field input[type=text],\n.acf-field input[type=password],\n.acf-field input[type=date],\n.acf-field input[type=datetime],\n.acf-field input[type=datetime-local],\n.acf-field input[type=email],\n.acf-field input[type=month],\n.acf-field input[type=number],\n.acf-field input[type=search],\n.acf-field input[type=tel],\n.acf-field input[type=time],\n.acf-field input[type=url],\n.acf-field input[type=week],\n.acf-field textarea,\n.acf-field select {\n width: 100%;\n padding: 4px 8px;\n margin: 0;\n box-sizing: border-box;\n font-size: 14px;\n line-height: 1.4;\n}\n.acf-admin-3-8 .acf-field input[type=text],\n.acf-admin-3-8 .acf-field input[type=password],\n.acf-admin-3-8 .acf-field input[type=date],\n.acf-admin-3-8 .acf-field input[type=datetime],\n.acf-admin-3-8 .acf-field input[type=datetime-local],\n.acf-admin-3-8 .acf-field input[type=email],\n.acf-admin-3-8 .acf-field input[type=month],\n.acf-admin-3-8 .acf-field input[type=number],\n.acf-admin-3-8 .acf-field input[type=search],\n.acf-admin-3-8 .acf-field input[type=tel],\n.acf-admin-3-8 .acf-field input[type=time],\n.acf-admin-3-8 .acf-field input[type=url],\n.acf-admin-3-8 .acf-field input[type=week],\n.acf-admin-3-8 .acf-field textarea,\n.acf-admin-3-8 .acf-field select {\n padding: 3px 5px;\n}\n.acf-field textarea {\n resize: vertical;\n}\n\nbody.acf-browser-firefox .acf-field select {\n padding: 4px 5px;\n}\n\n/*-----------------------------------------------------------------------------\n*\n* Text\n*\n*-----------------------------------------------------------------------------*/\n.acf-input-prepend,\n.acf-input-append,\n.acf-input-wrap {\n box-sizing: border-box;\n}\n\n.acf-input-prepend,\n.acf-input-append {\n font-size: 13px;\n line-height: 1.4;\n padding: 4px 8px;\n background: #f5f5f5;\n border: #7e8993 solid 1px;\n min-height: 30px;\n}\n.acf-admin-3-8 .acf-input-prepend,\n.acf-admin-3-8 .acf-input-append {\n padding: 3px 5px;\n border-color: #dddddd;\n min-height: 28px;\n}\n\n.acf-input-prepend {\n float: left;\n border-right-width: 0;\n border-radius: 3px 0 0 3px;\n}\n\n.acf-input-append {\n float: right;\n border-left-width: 0;\n border-radius: 0 3px 3px 0;\n}\n\n.acf-input-wrap {\n position: relative;\n overflow: hidden;\n}\n.acf-input-wrap .acf-is-prepended {\n border-radius: 0 6px 6px 0 !important;\n}\n.acf-input-wrap .acf-is-appended {\n border-radius: 6px 0 0 6px !important;\n}\n.acf-input-wrap .acf-is-prepended.acf-is-appended {\n border-radius: 0 !important;\n}\n\n/* rtl */\nhtml[dir=rtl] .acf-input-prepend {\n border-left-width: 0;\n border-right-width: 1px;\n border-radius: 0 3px 3px 0;\n float: right;\n}\n\nhtml[dir=rtl] .acf-input-append {\n border-left-width: 1px;\n border-right-width: 0;\n border-radius: 3px 0 0 3px;\n float: left;\n}\n\nhtml[dir=rtl] input.acf-is-prepended {\n border-radius: 3px 0 0 3px !important;\n}\n\nhtml[dir=rtl] input.acf-is-appended {\n border-radius: 0 3px 3px 0 !important;\n}\n\nhtml[dir=rtl] input.acf-is-prepended.acf-is-appended {\n border-radius: 0 !important;\n}\n\n/*-----------------------------------------------------------------------------\n*\n* Color Picker\n*\n*-----------------------------------------------------------------------------*/\n.acf-color-picker .wp-color-result {\n border-color: #7e8993;\n}\n.acf-admin-3-8 .acf-color-picker .wp-color-result {\n border-color: #ccd0d4;\n}\n.acf-color-picker .wp-picker-active {\n position: relative;\n z-index: 1;\n}\n\n/*-----------------------------------------------------------------------------\n*\n* Url\n*\n*-----------------------------------------------------------------------------*/\n.acf-url i {\n position: absolute;\n top: 5px;\n left: 5px;\n opacity: 0.5;\n color: #7e8993;\n}\n.acf-url input[type=url] {\n padding-left: 27px !important;\n}\n.acf-url.-valid i {\n opacity: 1;\n}\n\n/*-----------------------------------------------------------------------------\n*\n* Select2 (v3)\n*\n*-----------------------------------------------------------------------------*/\n.select2-container.-acf {\n z-index: 1001;\n /* open */\n /* single open */\n}\n.select2-container.-acf .select2-choices {\n background: #fff;\n border-color: #ddd;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.07) inset;\n min-height: 31px;\n}\n.select2-container.-acf .select2-choices .select2-search-choice {\n margin: 5px 0 5px 5px;\n padding: 3px 5px 3px 18px;\n border-color: #bbb;\n background: #f9f9f9;\n box-shadow: 0 1px 0 rgba(255, 255, 255, 0.25) inset;\n /* sortable item*/\n /* sortable shadow */\n}\n.select2-container.-acf .select2-choices .select2-search-choice.ui-sortable-helper {\n background: #5897fb;\n border-color: #3f87fa;\n color: #fff !important;\n box-shadow: 0 0 3px rgba(0, 0, 0, 0.1);\n}\n.select2-container.-acf .select2-choices .select2-search-choice.ui-sortable-helper a {\n visibility: hidden;\n}\n.select2-container.-acf .select2-choices .select2-search-choice.ui-sortable-placeholder {\n background-color: #f7f7f7;\n border-color: #f7f7f7;\n visibility: visible !important;\n}\n.select2-container.-acf .select2-choices .select2-search-choice-focus {\n border-color: #999;\n}\n.select2-container.-acf .select2-choices .select2-search-field input {\n height: 31px;\n line-height: 22px;\n margin: 0;\n padding: 5px 5px 5px 7px;\n}\n.select2-container.-acf .select2-choice {\n border-color: #bbbbbb;\n}\n.select2-container.-acf .select2-choice .select2-arrow {\n background: transparent;\n border-left-color: #dfdfdf;\n padding-left: 1px;\n}\n.select2-container.-acf .select2-choice .select2-result-description {\n display: none;\n}\n.select2-container.-acf.select2-container-active .select2-choices, .select2-container.-acf.select2-dropdown-open .select2-choices {\n border-color: #5b9dd9;\n border-radius: 3px 3px 0 0;\n}\n.select2-container.-acf.select2-dropdown-open .select2-choice {\n background: #fff;\n border-color: #5b9dd9;\n}\n\n/* rtl */\nhtml[dir=rtl] .select2-container.-acf .select2-search-choice-close {\n left: 24px;\n}\nhtml[dir=rtl] .select2-container.-acf .select2-choice > .select2-chosen {\n margin-left: 42px;\n}\nhtml[dir=rtl] .select2-container.-acf .select2-choice .select2-arrow {\n padding-left: 0;\n padding-right: 1px;\n}\n\n/* description */\n.select2-drop {\n /* search*/\n /* result */\n}\n.select2-drop .select2-search {\n padding: 4px 4px 0;\n}\n.select2-drop .select2-result {\n /* hover*/\n}\n.select2-drop .select2-result .select2-result-description {\n color: #999;\n font-size: 12px;\n margin-left: 5px;\n}\n.select2-drop .select2-result.select2-highlighted .select2-result-description {\n color: #fff;\n opacity: 0.75;\n}\n\n/*-----------------------------------------------------------------------------\n*\n* Select2 (v4)\n*\n*-----------------------------------------------------------------------------*/\n.select2-container.-acf li {\n margin-bottom: 0;\n}\n.select2-container.-acf[data-select2-id^=select2-data] .select2-selection--multiple {\n overflow: hidden;\n}\n.select2-container.-acf .select2-selection {\n border-color: #7e8993;\n}\n.acf-admin-3-8 .select2-container.-acf .select2-selection {\n border-color: #aaa;\n}\n.select2-container.-acf .select2-selection--multiple .select2-search--inline:first-child {\n float: none;\n}\n.select2-container.-acf .select2-selection--multiple .select2-search--inline:first-child input {\n width: 100% !important;\n}\n.select2-container.-acf .select2-selection--multiple .select2-selection__rendered {\n padding-right: 0;\n}\n.select2-container.-acf .select2-selection--multiple .select2-selection__rendered[id^=select2-acf-field] {\n display: inline;\n padding: 0;\n margin: 0;\n}\n.select2-container.-acf .select2-selection--multiple .select2-selection__rendered[id^=select2-acf-field] .select2-selection__choice {\n margin-right: 0;\n}\n.select2-container.-acf .select2-selection--multiple .select2-selection__choice {\n background-color: #f7f7f7;\n border-color: #cccccc;\n max-width: 100%;\n overflow: hidden;\n word-wrap: normal !important;\n white-space: normal;\n}\n.select2-container.-acf .select2-selection--multiple .select2-selection__choice.ui-sortable-helper {\n background: #0783BE;\n border-color: #066998;\n color: #fff !important;\n box-shadow: 0 0 3px rgba(0, 0, 0, 0.1);\n}\n.select2-container.-acf .select2-selection--multiple .select2-selection__choice.ui-sortable-helper span {\n visibility: hidden;\n}\n.select2-container.-acf .select2-selection--multiple .select2-selection__choice .select2-selection__choice__remove {\n position: static;\n border-right: none;\n padding: 0;\n}\n.select2-container.-acf .select2-selection--multiple .select2-selection__choice.ui-sortable-placeholder {\n background-color: #F2F4F7;\n border-color: #F2F4F7;\n visibility: visible !important;\n}\n.select2-container.-acf .select2-selection--multiple .select2-search__field {\n box-shadow: none !important;\n min-height: 0;\n}\n.acf-row .select2-container.-acf .select2-selection--single {\n overflow: hidden;\n}\n.acf-row .select2-container.-acf .select2-selection--single .select2-selection__rendered {\n white-space: normal;\n}\n\n.acf-admin-single-field-group .select2-dropdown {\n border-color: #6BB5D8 !important;\n margin-top: -5px;\n overflow: hidden;\n box-shadow: 0px 1px 2px rgba(16, 24, 40, 0.1);\n}\n\n.select2-dropdown.select2-dropdown--above {\n margin-top: 0;\n}\n\n.acf-admin-single-field-group .select2-container--default .select2-results__option[aria-selected=true] {\n background-color: #F9FAFB !important;\n color: #667085;\n}\n.acf-admin-single-field-group .select2-container--default .select2-results__option[aria-selected=true]:hover {\n color: #399CCB;\n}\n\n.acf-admin-single-field-group .select2-container--default .select2-results__option--highlighted[aria-selected] {\n color: #fff !important;\n background-color: #0783BE !important;\n}\n\n.select2-dropdown .select2-results__option {\n margin-bottom: 0;\n}\n\n.select2-container .select2-dropdown {\n z-index: 900000;\n}\n.select2-container .select2-dropdown .select2-search__field {\n line-height: 1.4;\n min-height: 0;\n}\n\n/*-----------------------------------------------------------------------------\n*\n* Link\n*\n*-----------------------------------------------------------------------------*/\n.acf-link .link-wrap {\n display: none;\n border: #ccd0d4 solid 1px;\n border-radius: 3px;\n padding: 5px;\n line-height: 26px;\n background: #fff;\n word-wrap: break-word;\n word-break: break-all;\n}\n.acf-link .link-wrap .link-title {\n padding: 0 5px;\n}\n.acf-link.-value .button {\n display: none;\n}\n.acf-link.-value .acf-icon.-link-ext {\n display: none;\n}\n.acf-link.-value .link-wrap {\n display: inline-block;\n}\n.acf-link.-external .acf-icon.-link-ext {\n display: inline-block;\n}\n\n#wp-link-backdrop {\n z-index: 900000 !important;\n}\n\n#wp-link-wrap {\n z-index: 900001 !important;\n}\n\n/*-----------------------------------------------------------------------------\n*\n* Radio\n*\n*-----------------------------------------------------------------------------*/\nul.acf-radio-list,\nul.acf-checkbox-list {\n background: transparent;\n border: 1px solid transparent;\n position: relative;\n padding: 1px;\n margin: 0;\n /* hl */\n /* rtl */\n}\nul.acf-radio-list:focus-within,\nul.acf-checkbox-list:focus-within {\n border: 1px solid #A5D2E7;\n border-radius: 6px;\n}\nul.acf-radio-list li,\nul.acf-checkbox-list li {\n font-size: 13px;\n line-height: 22px;\n margin: 0;\n position: relative;\n word-wrap: break-word;\n /* attachment sidebar fix*/\n}\nul.acf-radio-list li label,\nul.acf-checkbox-list li label {\n display: inline;\n}\nul.acf-radio-list li input[type=checkbox],\nul.acf-radio-list li input[type=radio],\nul.acf-checkbox-list li input[type=checkbox],\nul.acf-checkbox-list li input[type=radio] {\n margin: -1px 4px 0 0;\n vertical-align: middle;\n}\nul.acf-radio-list li input[type=text],\nul.acf-checkbox-list li input[type=text] {\n width: auto;\n vertical-align: middle;\n margin: 2px 0;\n}\nul.acf-radio-list li span,\nul.acf-checkbox-list li span {\n float: none;\n}\nul.acf-radio-list li i,\nul.acf-checkbox-list li i {\n vertical-align: middle;\n}\nul.acf-radio-list.acf-hl li,\nul.acf-checkbox-list.acf-hl li {\n margin-right: 20px;\n clear: none;\n}\nhtml[dir=rtl] ul.acf-radio-list input[type=checkbox],\nhtml[dir=rtl] ul.acf-radio-list input[type=radio],\nhtml[dir=rtl] ul.acf-checkbox-list input[type=checkbox],\nhtml[dir=rtl] ul.acf-checkbox-list input[type=radio] {\n margin-left: 4px;\n margin-right: 0;\n}\n\n/*-----------------------------------------------------------------------------\n*\n* Button Group\n*\n*-----------------------------------------------------------------------------*/\n.acf-button-group {\n display: inline-block;\n /* default (horizontal) */\n /* vertical */\n}\n.acf-button-group label {\n display: inline-block;\n border: #7e8993 solid 1px;\n position: relative;\n z-index: 1;\n padding: 5px 10px;\n background: #fff;\n}\n.acf-button-group label:hover {\n color: #016087;\n background: #f3f5f6;\n border-color: #0071a1;\n z-index: 2;\n}\n.acf-button-group label.selected {\n border-color: #007cba;\n background: #008dd4;\n color: #fff;\n z-index: 2;\n}\n.acf-button-group input {\n display: none !important;\n}\n.acf-button-group {\n padding-left: 1px;\n display: inline-flex;\n flex-direction: row;\n flex-wrap: nowrap;\n}\n.acf-button-group label {\n margin: 0 0 0 -1px;\n flex: 1;\n text-align: center;\n white-space: nowrap;\n}\n.acf-button-group label:first-child {\n border-radius: 3px 0 0 3px;\n}\nhtml[dir=rtl] .acf-button-group label:first-child {\n border-radius: 0 3px 3px 0;\n}\n.acf-button-group label:last-child {\n border-radius: 0 3px 3px 0;\n}\nhtml[dir=rtl] .acf-button-group label:last-child {\n border-radius: 3px 0 0 3px;\n}\n.acf-button-group label:only-child {\n border-radius: 3px;\n}\n.acf-button-group.-vertical {\n padding-left: 0;\n padding-top: 1px;\n flex-direction: column;\n}\n.acf-button-group.-vertical label {\n margin: -1px 0 0 0;\n}\n.acf-button-group.-vertical label:first-child {\n border-radius: 3px 3px 0 0;\n}\n.acf-button-group.-vertical label:last-child {\n border-radius: 0 0 3px 3px;\n}\n.acf-button-group.-vertical label:only-child {\n border-radius: 3px;\n}\n.acf-admin-3-8 .acf-button-group label {\n border-color: #ccd0d4;\n}\n.acf-admin-3-8 .acf-button-group label:hover {\n border-color: #0071a1;\n}\n.acf-admin-3-8 .acf-button-group label.selected {\n border-color: #007cba;\n}\n\n.acf-admin-page .acf-button-group {\n display: flex;\n align-items: stretch;\n align-content: center;\n height: 40px;\n border-radius: 6px;\n box-shadow: 0px 1px 2px rgba(16, 24, 40, 0.1);\n}\n.acf-admin-page .acf-button-group label {\n display: inline-flex;\n align-items: center;\n align-content: center;\n border: #D0D5DD solid 1px;\n padding: 6px 16px;\n color: #475467;\n font-weight: 500;\n}\n.acf-admin-page .acf-button-group label:hover {\n color: #0783BE;\n}\n.acf-admin-page .acf-button-group label.selected {\n background: #F9FAFB;\n color: #0783BE;\n}\n.acf-admin-page .select2-container.-acf .select2-selection--multiple .select2-selection__choice {\n display: inline-flex;\n align-items: center;\n margin-top: 8px;\n margin-left: 2px;\n position: relative;\n padding-top: 4px;\n padding-right: auto;\n padding-bottom: 4px;\n padding-left: 8px;\n background-color: #EBF5FA;\n border-color: #A5D2E7;\n color: #0783BE;\n}\n.acf-admin-page .select2-container.-acf .select2-selection--multiple .select2-selection__choice .select2-selection__choice__remove {\n order: 2;\n width: 14px;\n height: 14px;\n margin-right: 0;\n margin-left: 4px;\n color: #6BB5D8;\n text-indent: 100%;\n white-space: nowrap;\n overflow: hidden;\n}\n.acf-admin-page .select2-container.-acf .select2-selection--multiple .select2-selection__choice .select2-selection__choice__remove:hover {\n color: #0783BE;\n}\n.acf-admin-page .select2-container.-acf .select2-selection--multiple .select2-selection__choice .select2-selection__choice__remove:before {\n content: \"\";\n display: block;\n width: 14px;\n height: 14px;\n top: 0;\n left: 0;\n background-color: currentColor;\n border: none;\n border-radius: 0;\n -webkit-mask-size: contain;\n mask-size: contain;\n -webkit-mask-repeat: no-repeat;\n mask-repeat: no-repeat;\n -webkit-mask-position: center;\n mask-position: center;\n -webkit-mask-image: url(\"../../images/icons/icon-close.svg\");\n mask-image: url(\"../../images/icons/icon-close.svg\");\n}\n\n/*-----------------------------------------------------------------------------\n*\n* Checkbox\n*\n*-----------------------------------------------------------------------------*/\n.acf-checkbox-list .button {\n margin: 10px 0 0;\n}\n\n/*-----------------------------------------------------------------------------\n*\n* True / False\n*\n*-----------------------------------------------------------------------------*/\n.acf-switch {\n display: inline-block;\n border-radius: 5px;\n cursor: pointer;\n position: relative;\n background: #f5f5f5;\n height: 30px;\n vertical-align: middle;\n border: #7e8993 solid 1px;\n -webkit-transition: background 0.25s ease;\n -moz-transition: background 0.25s ease;\n -o-transition: background 0.25s ease;\n transition: background 0.25s ease;\n /* hover */\n /* active */\n /* message */\n}\n.acf-switch span {\n display: inline-block;\n float: left;\n text-align: center;\n font-size: 13px;\n line-height: 22px;\n padding: 4px 10px;\n min-width: 15px;\n}\n.acf-switch span i {\n vertical-align: middle;\n}\n.acf-switch .acf-switch-on {\n color: #fff;\n text-shadow: #007cba 0 1px 0;\n}\n.acf-switch .acf-switch-slider {\n position: absolute;\n top: 2px;\n left: 2px;\n bottom: 2px;\n right: 50%;\n z-index: 1;\n background: #fff;\n border-radius: 3px;\n border: #7e8993 solid 1px;\n -webkit-transition: all 0.25s ease;\n -moz-transition: all 0.25s ease;\n -o-transition: all 0.25s ease;\n transition: all 0.25s ease;\n transition-property: left, right;\n}\n.acf-switch:hover, .acf-switch.-focus {\n border-color: #0071a1;\n background: #f3f5f6;\n color: #016087;\n}\n.acf-switch:hover .acf-switch-slider, .acf-switch.-focus .acf-switch-slider {\n border-color: #0071a1;\n}\n.acf-switch.-on {\n background: #0d99d5;\n border-color: #007cba;\n /* hover */\n}\n.acf-switch.-on .acf-switch-slider {\n left: 50%;\n right: 2px;\n border-color: #007cba;\n}\n.acf-switch.-on:hover {\n border-color: #007cba;\n}\n.acf-switch + span {\n margin-left: 6px;\n}\n.acf-admin-3-8 .acf-switch {\n border-color: #ccd0d4;\n}\n.acf-admin-3-8 .acf-switch .acf-switch-slider {\n border-color: #ccd0d4;\n}\n.acf-admin-3-8 .acf-switch:hover, .acf-admin-3-8 .acf-switch.-focus {\n border-color: #0071a1;\n}\n.acf-admin-3-8 .acf-switch:hover .acf-switch-slider, .acf-admin-3-8 .acf-switch.-focus .acf-switch-slider {\n border-color: #0071a1;\n}\n.acf-admin-3-8 .acf-switch.-on {\n border-color: #007cba;\n}\n.acf-admin-3-8 .acf-switch.-on .acf-switch-slider {\n border-color: #007cba;\n}\n.acf-admin-3-8 .acf-switch.-on:hover {\n border-color: #007cba;\n}\n\n/* checkbox */\n.acf-switch-input {\n opacity: 0;\n position: absolute;\n margin: 0;\n}\n\n.acf-admin-single-field-group .acf-true-false {\n border: 1px solid transparent;\n}\n.acf-admin-single-field-group .acf-true-false:focus-within {\n border: 1px solid #399CCB;\n border-radius: 120px;\n}\n\n/* in media modal */\n.compat-item .acf-true-false .message {\n float: none;\n padding: 0;\n vertical-align: middle;\n}\n\n/*--------------------------------------------------------------------------\n*\n*\tGoogle Map\n*\n*-------------------------------------------------------------------------*/\n.acf-google-map {\n position: relative;\n border: #ccd0d4 solid 1px;\n background: #fff;\n}\n.acf-google-map .title {\n position: relative;\n border-bottom: #ccd0d4 solid 1px;\n}\n.acf-google-map .title .search {\n margin: 0;\n font-size: 14px;\n line-height: 30px;\n height: 40px;\n padding: 5px 10px;\n border: 0 none;\n box-shadow: none;\n border-radius: 0;\n font-family: inherit;\n cursor: text;\n}\n.acf-google-map .title .acf-loading {\n position: absolute;\n top: 10px;\n right: 11px;\n display: none;\n}\n.acf-google-map .title .acf-icon:active {\n display: inline-block !important;\n}\n.acf-google-map .canvas {\n height: 400px;\n}\n.acf-google-map:hover .title .acf-actions {\n display: block;\n}\n.acf-google-map .title .acf-icon.-location {\n display: inline-block;\n}\n.acf-google-map .title .acf-icon.-cancel,\n.acf-google-map .title .acf-icon.-search {\n display: none;\n}\n.acf-google-map.-value .title .search {\n font-weight: bold;\n}\n.acf-google-map.-value .title .acf-icon.-location {\n display: none;\n}\n.acf-google-map.-value .title .acf-icon.-cancel {\n display: inline-block;\n}\n.acf-google-map.-searching .title .acf-icon.-location {\n display: none;\n}\n.acf-google-map.-searching .title .acf-icon.-cancel,\n.acf-google-map.-searching .title .acf-icon.-search {\n display: inline-block;\n}\n.acf-google-map.-searching .title .acf-actions {\n display: block;\n}\n.acf-google-map.-searching .title .search {\n font-weight: normal !important;\n}\n.acf-google-map.-loading .title a {\n display: none !important;\n}\n.acf-google-map.-loading .title i {\n display: inline-block;\n}\n\n/* autocomplete */\n.pac-container {\n border-width: 1px 0;\n box-shadow: none;\n}\n\n.pac-container:after {\n display: none;\n}\n\n.pac-container .pac-item:first-child {\n border-top: 0 none;\n}\n\n.pac-container .pac-item {\n padding: 5px 10px;\n cursor: pointer;\n}\n\nhtml[dir=rtl] .pac-container .pac-item {\n text-align: right;\n}\n\n/*--------------------------------------------------------------------------\n*\n*\tRelationship\n*\n*-------------------------------------------------------------------------*/\n.acf-relationship {\n background: #fff;\n border: #ccd0d4 solid 1px;\n /* list */\n /* selection (bottom) */\n}\n.acf-relationship .filters {\n border-bottom: #ccd0d4 solid 1px;\n background: #fff;\n /* widths */\n}\n.acf-relationship .filters:after {\n display: block;\n clear: both;\n content: \"\";\n}\n.acf-relationship .filters .filter {\n margin: 0;\n padding: 0;\n float: left;\n width: 100%;\n box-sizing: border-box;\n padding: 7px 7px 7px 0;\n}\n.acf-relationship .filters .filter:first-child {\n padding-left: 7px;\n}\n.acf-relationship .filters .filter input,\n.acf-relationship .filters .filter select {\n margin: 0;\n float: none; /* potential fix for media popup? */\n}\n.acf-relationship .filters .filter input:focus, .acf-relationship .filters .filter input:active,\n.acf-relationship .filters .filter select:focus,\n.acf-relationship .filters .filter select:active {\n outline: none;\n box-shadow: none;\n}\n.acf-relationship .filters .filter input {\n border-color: transparent;\n box-shadow: none;\n padding-left: 3px;\n padding-right: 3px;\n}\n.acf-relationship .filters.-f2 .filter {\n width: 50%;\n}\n.acf-relationship .filters.-f3 .filter {\n width: 25%;\n}\n.acf-relationship .filters.-f3 .filter.-search {\n width: 50%;\n}\n.acf-relationship .list {\n margin: 0;\n padding: 5px;\n height: 160px;\n overflow: auto;\n}\n.acf-relationship .list .acf-rel-label,\n.acf-relationship .list .acf-rel-item,\n.acf-relationship .list p {\n padding: 5px;\n margin: 0;\n display: block;\n position: relative;\n min-height: 18px;\n}\n.acf-relationship .list .acf-rel-label {\n font-weight: bold;\n}\n.acf-relationship .list .acf-rel-item {\n cursor: pointer;\n /* hover */\n /* disabled */\n}\n.acf-relationship .list .acf-rel-item b {\n text-decoration: underline;\n font-weight: normal;\n}\n.acf-relationship .list .acf-rel-item .thumbnail {\n background: #e0e0e0;\n width: 22px;\n height: 22px;\n float: left;\n margin: -2px 5px 0 0;\n}\n.acf-relationship .list .acf-rel-item .thumbnail img {\n max-width: 22px;\n max-height: 22px;\n margin: 0 auto;\n display: block;\n}\n.acf-relationship .list .acf-rel-item .thumbnail.-icon {\n background: #fff;\n}\n.acf-relationship .list .acf-rel-item .thumbnail.-icon img {\n max-height: 20px;\n margin-top: 1px;\n}\n.acf-relationship .list .acf-rel-item:hover {\n background: #3875d7;\n color: #fff;\n}\n.acf-relationship .list .acf-rel-item:hover .thumbnail {\n background: #a2bfec;\n}\n.acf-relationship .list .acf-rel-item:hover .thumbnail.-icon {\n background: #fff;\n}\n.acf-relationship .list .acf-rel-item.disabled {\n opacity: 0.5;\n}\n.acf-relationship .list .acf-rel-item.disabled:hover {\n background: transparent;\n color: #333;\n cursor: default;\n}\n.acf-relationship .list .acf-rel-item.disabled:hover .thumbnail {\n background: #e0e0e0;\n}\n.acf-relationship .list .acf-rel-item.disabled:hover .thumbnail.-icon {\n background: #fff;\n}\n.acf-relationship .list ul {\n padding-bottom: 5px;\n}\n.acf-relationship .list ul .acf-rel-label,\n.acf-relationship .list ul .acf-rel-item,\n.acf-relationship .list ul p {\n padding-left: 20px;\n}\n.acf-relationship .selection {\n position: relative;\n /* choices */\n /* values */\n}\n.acf-relationship .selection:after {\n display: block;\n clear: both;\n content: \"\";\n}\n.acf-relationship .selection .values,\n.acf-relationship .selection .choices {\n width: 50%;\n background: #fff;\n float: left;\n}\n.acf-relationship .selection .choices {\n background: #f9f9f9;\n}\n.acf-relationship .selection .choices .list {\n border-right: #dfdfdf solid 1px;\n}\n.acf-relationship .selection .values .acf-icon {\n position: absolute;\n top: 4px;\n right: 7px;\n display: none;\n /* rtl */\n}\nhtml[dir=rtl] .acf-relationship .selection .values .acf-icon {\n right: auto;\n left: 7px;\n}\n.acf-relationship .selection .values .acf-rel-item:hover .acf-icon {\n display: block;\n}\n.acf-relationship .selection .values .acf-rel-item {\n cursor: move;\n}\n.acf-relationship .selection .values .acf-rel-item b {\n text-decoration: none;\n}\n\n/* menu item fix */\n.menu-item .acf-relationship ul {\n width: auto;\n}\n.menu-item .acf-relationship li {\n display: block;\n}\n\n/*--------------------------------------------------------------------------\n*\n*\tWYSIWYG\n*\n*-------------------------------------------------------------------------*/\n.acf-editor-wrap.delay .acf-editor-toolbar {\n content: \"\";\n display: block;\n background: #f5f5f5;\n border-bottom: #dddddd solid 1px;\n color: #555d66;\n padding: 10px;\n}\n.acf-editor-wrap.delay .wp-editor-area {\n padding: 10px;\n border: none;\n color: inherit !important;\n}\n.acf-editor-wrap iframe {\n min-height: 200px;\n}\n.acf-editor-wrap .wp-editor-container {\n border: 1px solid #ccd0d4;\n box-shadow: none !important;\n}\n.acf-editor-wrap .wp-editor-tabs {\n box-sizing: content-box;\n}\n.acf-editor-wrap .wp-switch-editor {\n border-color: #ccd0d4;\n border-bottom-color: transparent;\n}\n\n#mce_fullscreen_container {\n z-index: 900000 !important;\n}\n\n/*-----------------------------------------------------------------------------\n*\n*\tTab\n*\n*-----------------------------------------------------------------------------*/\n.acf-field-tab {\n display: none !important;\n}\n\n.hidden-by-tab {\n display: none !important;\n}\n\n.acf-tab-wrap {\n clear: both;\n z-index: 1;\n}\n\n.acf-tab-group {\n border-bottom: #ccc solid 1px;\n padding: 10px 10px 0;\n}\n.acf-tab-group li {\n margin: 0 0.5em 0 0;\n}\n.acf-tab-group li a {\n padding: 5px 10px;\n display: block;\n color: #555;\n font-size: 14px;\n font-weight: 600;\n line-height: 24px;\n border: #ccc solid 1px;\n border-bottom: 0 none;\n text-decoration: none;\n background: #e5e5e5;\n transition: none;\n}\n.acf-tab-group li a:hover {\n background: #fff;\n}\n.acf-tab-group li a:focus {\n outline: none;\n box-shadow: none;\n}\n.acf-tab-group li a:empty {\n display: none;\n}\nhtml[dir=rtl] .acf-tab-group li {\n margin: 0 0 0 0.5em;\n}\n.acf-tab-group li.active a {\n background: #f1f1f1;\n color: #000;\n padding-bottom: 6px;\n margin-bottom: -1px;\n position: relative;\n z-index: 1;\n}\n\n.acf-fields > .acf-tab-wrap {\n background: #f9f9f9;\n}\n.acf-fields > .acf-tab-wrap .acf-tab-group {\n position: relative;\n border-top: #ccd0d4 solid 1px;\n border-bottom: #ccd0d4 solid 1px;\n z-index: 2;\n margin-bottom: -1px;\n}\n.acf-admin-3-8 .acf-fields > .acf-tab-wrap .acf-tab-group {\n border-color: #dfdfdf;\n}\n\n.acf-fields.-left > .acf-tab-wrap .acf-tab-group {\n padding-left: 20%;\n /* mobile */\n /* rtl */\n}\n@media screen and (max-width: 640px) {\n .acf-fields.-left > .acf-tab-wrap .acf-tab-group {\n padding-left: 10px;\n }\n}\nhtml[dir=rtl] .acf-fields.-left > .acf-tab-wrap .acf-tab-group {\n padding-left: 0;\n padding-right: 20%;\n /* mobile */\n}\n@media screen and (max-width: 850px) {\n html[dir=rtl] .acf-fields.-left > .acf-tab-wrap .acf-tab-group {\n padding-right: 10px;\n }\n}\n\n.acf-tab-wrap.-left .acf-tab-group {\n position: absolute;\n left: 0;\n width: 20%;\n border: 0 none;\n padding: 0 !important; /* important overrides 'left aligned labels' */\n margin: 1px 0 0;\n}\n.acf-tab-wrap.-left .acf-tab-group li {\n float: none;\n margin: -1px 0 0;\n}\n.acf-tab-wrap.-left .acf-tab-group li a {\n border: 1px solid #ededed;\n font-size: 13px;\n line-height: 18px;\n color: #0073aa;\n padding: 10px;\n margin: 0;\n font-weight: normal;\n border-width: 1px 0;\n border-radius: 0;\n background: transparent;\n}\n.acf-tab-wrap.-left .acf-tab-group li a:hover {\n color: #00a0d2;\n}\n.acf-tab-wrap.-left .acf-tab-group li.active a {\n border-color: #dfdfdf;\n color: #000;\n margin-right: -1px;\n background: #fff;\n}\nhtml[dir=rtl] .acf-tab-wrap.-left .acf-tab-group {\n left: auto;\n right: 0;\n}\nhtml[dir=rtl] .acf-tab-wrap.-left .acf-tab-group li.active a {\n margin-right: 0;\n margin-left: -1px;\n}\n.acf-field + .acf-tab-wrap.-left:before {\n content: \"\";\n display: block;\n position: relative;\n z-index: 1;\n height: 10px;\n border-top: #dfdfdf solid 1px;\n border-bottom: #dfdfdf solid 1px;\n margin-bottom: -1px;\n}\n.acf-tab-wrap.-left:first-child .acf-tab-group li:first-child a {\n border-top: none;\n}\n\n/* sidebar */\n.acf-fields.-sidebar {\n padding: 0 0 0 20% !important;\n position: relative;\n /* before */\n /* rtl */\n}\n.acf-fields.-sidebar:before {\n content: \"\";\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n width: 20%;\n bottom: 0;\n border-right: #dfdfdf solid 1px;\n background: #f9f9f9;\n z-index: 1;\n}\nhtml[dir=rtl] .acf-fields.-sidebar {\n padding: 0 20% 0 0 !important;\n}\nhtml[dir=rtl] .acf-fields.-sidebar:before {\n border-left: #dfdfdf solid 1px;\n border-right-width: 0;\n left: auto;\n right: 0;\n}\n.acf-fields.-sidebar.-left {\n padding: 0 0 0 180px !important;\n /* rtl */\n}\nhtml[dir=rtl] .acf-fields.-sidebar.-left {\n padding: 0 180px 0 0 !important;\n}\n.acf-fields.-sidebar.-left:before {\n background: #f1f1f1;\n border-color: #dfdfdf;\n width: 180px;\n}\n.acf-fields.-sidebar.-left > .acf-tab-wrap.-left .acf-tab-group {\n width: 180px;\n}\n.acf-fields.-sidebar.-left > .acf-tab-wrap.-left .acf-tab-group li a {\n border-color: #e4e4e4;\n}\n.acf-fields.-sidebar.-left > .acf-tab-wrap.-left .acf-tab-group li.active a {\n background: #f9f9f9;\n}\n.acf-fields.-sidebar > .acf-field-tab + .acf-field {\n border-top: none;\n}\n\n.acf-fields.-clear > .acf-tab-wrap {\n background: transparent;\n}\n.acf-fields.-clear > .acf-tab-wrap .acf-tab-group {\n margin-top: 0;\n border-top: none;\n padding-left: 0;\n padding-right: 0;\n}\n.acf-fields.-clear > .acf-tab-wrap .acf-tab-group li a {\n background: #e5e5e5;\n}\n.acf-fields.-clear > .acf-tab-wrap .acf-tab-group li a:hover {\n background: #fff;\n}\n.acf-fields.-clear > .acf-tab-wrap .acf-tab-group li.active a {\n background: #f1f1f1;\n}\n\n/* seamless */\n.acf-postbox.seamless > .acf-fields.-sidebar {\n margin-left: 0 !important;\n}\n.acf-postbox.seamless > .acf-fields.-sidebar:before {\n background: transparent;\n}\n.acf-postbox.seamless > .acf-fields > .acf-tab-wrap {\n background: transparent;\n margin-bottom: 10px;\n padding-left: 12px;\n padding-right: 12px;\n}\n.acf-postbox.seamless > .acf-fields > .acf-tab-wrap .acf-tab-group {\n border-top: 0 none;\n border-color: #ccd0d4;\n}\n.acf-postbox.seamless > .acf-fields > .acf-tab-wrap .acf-tab-group li a {\n background: #e5e5e5;\n border-color: #ccd0d4;\n}\n.acf-postbox.seamless > .acf-fields > .acf-tab-wrap .acf-tab-group li a:hover {\n background: #fff;\n}\n.acf-postbox.seamless > .acf-fields > .acf-tab-wrap .acf-tab-group li.active a {\n background: #f1f1f1;\n}\n.acf-postbox.seamless > .acf-fields > .acf-tab-wrap.-left:before {\n border-top: none;\n height: auto;\n}\n.acf-postbox.seamless > .acf-fields > .acf-tab-wrap.-left .acf-tab-group {\n margin-bottom: 0;\n}\n.acf-postbox.seamless > .acf-fields > .acf-tab-wrap.-left .acf-tab-group li a {\n border-width: 1px 0 1px 1px !important;\n border-color: #cccccc;\n background: #e5e5e5;\n}\n.acf-postbox.seamless > .acf-fields > .acf-tab-wrap.-left .acf-tab-group li.active a {\n background: #f1f1f1;\n}\n\n.menu-edit .acf-fields.-clear > .acf-tab-wrap .acf-tab-group li a,\n.widget .acf-fields.-clear > .acf-tab-wrap .acf-tab-group li a {\n background: #f1f1f1;\n}\n.menu-edit .acf-fields.-clear > .acf-tab-wrap .acf-tab-group li a:hover, .menu-edit .acf-fields.-clear > .acf-tab-wrap .acf-tab-group li.active a,\n.widget .acf-fields.-clear > .acf-tab-wrap .acf-tab-group li a:hover,\n.widget .acf-fields.-clear > .acf-tab-wrap .acf-tab-group li.active a {\n background: #fff;\n}\n\n.compat-item .acf-tab-wrap td {\n display: block;\n}\n\n/* within gallery sidebar */\n.acf-gallery-side .acf-tab-wrap {\n border-top: 0 none !important;\n}\n\n.acf-gallery-side .acf-tab-wrap .acf-tab-group {\n margin: 10px 0 !important;\n padding: 0 !important;\n}\n\n.acf-gallery-side .acf-tab-group li.active a {\n background: #f9f9f9 !important;\n}\n\n/* withing widget */\n.widget .acf-tab-group {\n border-bottom-color: #e8e8e8;\n}\n\n.widget .acf-tab-group li a {\n background: #f1f1f1;\n}\n\n.widget .acf-tab-group li.active a {\n background: #fff;\n}\n\n/* media popup (edit image) */\n.media-modal.acf-expanded .compat-attachment-fields > tbody > tr.acf-tab-wrap .acf-tab-group {\n padding-left: 23%;\n border-bottom-color: #dddddd;\n}\n\n/* table */\n.form-table > tbody > tr.acf-tab-wrap .acf-tab-group {\n padding: 0 5px 0 210px;\n}\n\n/* rtl */\nhtml[dir=rtl] .form-table > tbody > tr.acf-tab-wrap .acf-tab-group {\n padding: 0 210px 0 5px;\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\toembed\n*\n*--------------------------------------------------------------------------------------------*/\n.acf-oembed {\n position: relative;\n border: #ccd0d4 solid 1px;\n background: #fff;\n}\n.acf-oembed .title {\n position: relative;\n border-bottom: #ccd0d4 solid 1px;\n padding: 5px 10px;\n}\n.acf-oembed .title .input-search {\n margin: 0;\n font-size: 14px;\n line-height: 30px;\n height: 30px;\n padding: 0;\n border: 0 none;\n box-shadow: none;\n border-radius: 0;\n font-family: inherit;\n cursor: text;\n}\n.acf-oembed .title .acf-actions {\n padding: 6px;\n}\n.acf-oembed .canvas {\n position: relative;\n min-height: 250px;\n background: #f9f9f9;\n}\n.acf-oembed .canvas .canvas-media {\n position: relative;\n z-index: 1;\n}\n.acf-oembed .canvas iframe {\n display: block;\n margin: 0;\n padding: 0;\n width: 100%;\n}\n.acf-oembed .canvas .acf-icon.-picture {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n z-index: 0;\n height: 42px;\n width: 42px;\n font-size: 42px;\n color: #999;\n}\n.acf-oembed .canvas .acf-loading-overlay {\n background: rgba(255, 255, 255, 0.9);\n}\n.acf-oembed .canvas .canvas-error {\n position: absolute;\n top: 50%;\n left: 0%;\n right: 0%;\n margin: -9px 0 0 0;\n text-align: center;\n display: none;\n}\n.acf-oembed .canvas .canvas-error p {\n padding: 8px;\n margin: 0;\n display: inline;\n}\n.acf-oembed.has-value .canvas {\n min-height: 50px;\n}\n.acf-oembed.has-value .input-search {\n font-weight: bold;\n}\n.acf-oembed.has-value .title:hover .acf-actions {\n display: block;\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tImage\n*\n*--------------------------------------------------------------------------------------------*/\n.acf-image-uploader {\n position: relative;\n /* image wrap*/\n /* input */\n /* rtl */\n}\n.acf-image-uploader:after {\n display: block;\n clear: both;\n content: \"\";\n}\n.acf-image-uploader p {\n margin: 0;\n}\n.acf-image-uploader .image-wrap {\n position: relative;\n float: left;\n /* hover */\n}\n.acf-image-uploader .image-wrap img {\n max-width: 100%;\n max-height: 100%;\n width: auto;\n height: auto;\n display: block;\n min-width: 30px;\n min-height: 30px;\n background: #f1f1f1;\n margin: 0;\n padding: 0;\n /* svg */\n}\n.acf-image-uploader .image-wrap img[src$=\".svg\"] {\n min-height: 100px;\n min-width: 100px;\n}\n.acf-image-uploader .image-wrap:hover .acf-actions {\n display: block;\n}\n.acf-image-uploader input.button {\n width: auto;\n}\nhtml[dir=rtl] .acf-image-uploader .image-wrap {\n float: right;\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tFile\n*\n*--------------------------------------------------------------------------------------------*/\n.acf-file-uploader {\n position: relative;\n /* hover */\n /* rtl */\n}\n.acf-file-uploader p {\n margin: 0;\n}\n.acf-file-uploader .file-wrap {\n border: #ccd0d4 solid 1px;\n min-height: 84px;\n position: relative;\n background: #fff;\n}\n.acf-file-uploader .file-icon {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n padding: 10px;\n background: #f1f1f1;\n border-right: #d5d9dd solid 1px;\n}\n.acf-file-uploader .file-icon img {\n display: block;\n padding: 0;\n margin: 0;\n max-width: 48px;\n}\n.acf-file-uploader .file-info {\n padding: 10px;\n margin-left: 69px;\n}\n.acf-file-uploader .file-info p {\n margin: 0 0 2px;\n font-size: 13px;\n line-height: 1.4em;\n word-break: break-all;\n}\n.acf-file-uploader .file-info a {\n text-decoration: none;\n}\n.acf-file-uploader:hover .acf-actions {\n display: block;\n}\nhtml[dir=rtl] .acf-file-uploader .file-icon {\n left: auto;\n right: 0;\n border-left: #e5e5e5 solid 1px;\n border-right: none;\n}\nhtml[dir=rtl] .acf-file-uploader .file-info {\n margin-right: 69px;\n margin-left: 0;\n}\n\n/*-----------------------------------------------------------------------------\n*\n*\tDate Picker\n*\n*-----------------------------------------------------------------------------*/\n.acf-ui-datepicker .ui-datepicker {\n z-index: 900000 !important;\n}\n.acf-ui-datepicker .ui-datepicker .ui-widget-header a {\n cursor: pointer;\n transition: none;\n}\n\n/* fix highlight state overriding hover / active */\n.acf-ui-datepicker .ui-state-highlight.ui-state-hover {\n border: 1px solid #98b7e8 !important;\n background: #98b7e8 !important;\n font-weight: normal !important;\n color: #ffffff !important;\n}\n\n.acf-ui-datepicker .ui-state-highlight.ui-state-active {\n border: 1px solid #3875d7 !important;\n background: #3875d7 !important;\n font-weight: normal !important;\n color: #ffffff !important;\n}\n\n/*-----------------------------------------------------------------------------\n*\n*\tSeparator field\n*\n*-----------------------------------------------------------------------------*/\n.acf-field-separator {\n /* fields */\n}\n.acf-field-separator .acf-label {\n margin-bottom: 0;\n}\n.acf-field-separator .acf-label label {\n font-weight: normal;\n}\n.acf-field-separator .acf-input {\n display: none;\n}\n.acf-fields > .acf-field-separator {\n background: #f9f9f9;\n border-bottom: 1px solid #dfdfdf;\n border-top: 1px solid #dfdfdf;\n margin-bottom: -1px;\n z-index: 2;\n}\n\n/*-----------------------------------------------------------------------------\n*\n*\tTaxonomy\n*\n*-----------------------------------------------------------------------------*/\n.acf-taxonomy-field {\n position: relative;\n /* hover */\n /* select */\n}\n.acf-taxonomy-field .categorychecklist-holder {\n border: #ccd0d4 solid 1px;\n border-radius: 3px;\n max-height: 200px;\n overflow: auto;\n}\n.acf-taxonomy-field .acf-checkbox-list {\n margin: 0;\n padding: 10px;\n}\n.acf-taxonomy-field .acf-checkbox-list ul.children {\n padding-left: 18px;\n}\n.acf-taxonomy-field:hover .acf-actions {\n display: block;\n}\n.acf-taxonomy-field[data-ftype=select] .acf-actions {\n padding: 0;\n margin: -9px;\n}\n\n/*-----------------------------------------------------------------------------\n*\n*\tRange\n*\n*-----------------------------------------------------------------------------*/\n.acf-range-wrap {\n /* rtl */\n}\n.acf-range-wrap .acf-append,\n.acf-range-wrap .acf-prepend {\n display: inline-block;\n vertical-align: middle;\n line-height: 28px;\n margin: 0 7px 0 0;\n}\n.acf-range-wrap .acf-append {\n margin: 0 0 0 7px;\n}\n.acf-range-wrap input[type=range] {\n display: inline-block;\n padding: 0;\n margin: 0;\n vertical-align: middle;\n height: 28px;\n}\n.acf-range-wrap input[type=range]:focus {\n outline: none;\n}\n.acf-range-wrap input[type=number] {\n display: inline-block;\n min-width: 5em;\n padding-right: 4px;\n margin-left: 10px;\n vertical-align: middle;\n}\nhtml[dir=rtl] .acf-range-wrap input[type=number] {\n margin-right: 10px;\n margin-left: 0;\n}\nhtml[dir=rtl] .acf-range-wrap .acf-append {\n margin: 0 7px 0 0;\n}\nhtml[dir=rtl] .acf-range-wrap .acf-prepend {\n margin: 0 0 0 7px;\n}\n\n/*-----------------------------------------------------------------------------\n*\n* acf-accordion\n*\n*-----------------------------------------------------------------------------*/\n.acf-accordion {\n margin: -1px 0;\n padding: 0;\n background: #fff;\n border-top: 1px solid #d5d9dd;\n border-bottom: 1px solid #d5d9dd;\n z-index: 1;\n}\n.acf-accordion .acf-accordion-title {\n margin: 0;\n padding: 12px;\n font-weight: bold;\n cursor: pointer;\n font-size: inherit;\n font-size: 13px;\n line-height: 1.4em;\n}\n.acf-accordion .acf-accordion-title:hover {\n background: #f3f4f5;\n}\n.acf-accordion .acf-accordion-title label {\n margin: 0;\n padding: 0;\n font-size: 13px;\n line-height: 1.4em;\n}\n.acf-accordion .acf-accordion-title p {\n font-weight: normal;\n}\n.acf-accordion .acf-accordion-title .acf-accordion-icon {\n float: right;\n}\n.acf-accordion .acf-accordion-title svg.acf-accordion-icon {\n position: absolute;\n right: 10px;\n top: 50%;\n transform: translateY(-50%);\n color: #191e23;\n fill: currentColor;\n}\n.acf-accordion .acf-accordion-content {\n margin: 0;\n padding: 0 12px 12px;\n display: none;\n}\n.acf-accordion.-open > .acf-accordion-content {\n display: block;\n}\n\n.acf-field.acf-accordion {\n margin: -1px 0;\n padding: 0 !important;\n border-color: #d5d9dd;\n}\n.acf-field.acf-accordion .acf-label.acf-accordion-title {\n padding: 12px;\n width: auto;\n float: none;\n width: auto;\n}\n.acf-field.acf-accordion .acf-input.acf-accordion-content {\n padding: 0;\n float: none;\n width: auto;\n}\n.acf-field.acf-accordion .acf-input.acf-accordion-content > .acf-fields {\n border-top: #eeeeee solid 1px;\n}\n.acf-field.acf-accordion .acf-input.acf-accordion-content > .acf-fields.-clear {\n padding: 0 12px 15px;\n}\n\n/* field specific (left) */\n.acf-fields.-left > .acf-field.acf-accordion:before {\n display: none;\n}\n.acf-fields.-left > .acf-field.acf-accordion .acf-accordion-title {\n width: auto;\n margin: 0 !important;\n padding: 12px;\n float: none !important;\n}\n.acf-fields.-left > .acf-field.acf-accordion .acf-accordion-content {\n padding: 0 !important;\n}\n\n/* field specific (clear) */\n.acf-fields.-clear > .acf-field.acf-accordion {\n border: #cccccc solid 1px;\n background: transparent;\n}\n.acf-fields.-clear > .acf-field.acf-accordion + .acf-field.acf-accordion {\n margin-top: -16px;\n}\n\n/* table */\ntr.acf-field.acf-accordion {\n background: transparent;\n}\ntr.acf-field.acf-accordion > .acf-input {\n padding: 0 !important;\n border: #cccccc solid 1px;\n}\ntr.acf-field.acf-accordion .acf-accordion-content {\n padding: 0 12px 12px;\n}\n\n/* #addtag */\n#addtag div.acf-field.error {\n border: 0 none;\n padding: 8px 0;\n}\n\n#addtag > .acf-field.acf-accordion {\n padding-right: 0;\n margin-right: 5%;\n}\n#addtag > .acf-field.acf-accordion + p.submit {\n margin-top: 0;\n}\n\n/* border */\ntr.acf-accordion {\n margin: 15px 0 !important;\n}\ntr.acf-accordion + tr.acf-accordion {\n margin-top: -16px !important;\n}\n\n/* seamless */\n.acf-postbox.seamless > .acf-fields > .acf-accordion {\n margin-left: 12px;\n margin-right: 12px;\n border: #ccd0d4 solid 1px;\n}\n\n/* rtl */\n/* menu item */\n/*\n.menu-item-settings > .field-acf > .acf-field.acf-accordion {\n\tborder: #dfdfdf solid 1px;\n\tmargin: 10px -13px 10px -11px;\n\n\t+ .acf-field.acf-accordion {\n\t\tmargin-top: -11px;\n\t}\n}\n*/\n/* widget */\n.widget .widget-content > .acf-field.acf-accordion {\n border: #dfdfdf solid 1px;\n margin-bottom: 10px;\n}\n.widget .widget-content > .acf-field.acf-accordion .acf-accordion-title {\n margin-bottom: 0;\n}\n.widget .widget-content > .acf-field.acf-accordion + .acf-field.acf-accordion {\n margin-top: -11px;\n}\n\n.media-modal .compat-attachment-fields .acf-field.acf-accordion + .acf-field.acf-accordion {\n margin-top: -1px;\n}\n.media-modal .compat-attachment-fields .acf-field.acf-accordion > .acf-input {\n width: 100%;\n}\n.media-modal .compat-attachment-fields .acf-field.acf-accordion .compat-attachment-fields > tbody > tr > td {\n padding-bottom: 5px;\n}\n\n/*-----------------------------------------------------------------------------\n*\n*\tBlock Editor\n*\n*-----------------------------------------------------------------------------*/\n.block-editor .edit-post-sidebar .acf-postbox > .postbox-header,\n.block-editor .edit-post-sidebar .acf-postbox > .hndle {\n border-bottom-width: 0 !important;\n}\n.block-editor .edit-post-sidebar .acf-postbox.closed > .postbox-header,\n.block-editor .edit-post-sidebar .acf-postbox.closed > .hndle {\n border-bottom-width: 1px !important;\n}\n.block-editor .edit-post-sidebar .acf-fields {\n min-height: 1px;\n overflow: auto;\n}\n.block-editor .edit-post-sidebar .acf-fields > .acf-field {\n border-width: 0;\n border-color: #e2e4e7;\n margin: 16px;\n padding: 0;\n width: auto !important;\n min-height: 0 !important;\n float: none !important;\n}\n.block-editor .edit-post-sidebar .acf-fields > .acf-field > .acf-label {\n margin-bottom: 5px;\n}\n.block-editor .edit-post-sidebar .acf-fields > .acf-field > .acf-label label {\n font-weight: normal;\n}\n.block-editor .edit-post-sidebar .acf-fields > .acf-field.acf-accordion {\n padding: 0;\n margin: 0;\n border-top-width: 1px;\n}\n.block-editor .edit-post-sidebar .acf-fields > .acf-field.acf-accordion:first-child {\n border-top-width: 0;\n}\n.block-editor .edit-post-sidebar .acf-fields > .acf-field.acf-accordion .acf-accordion-title {\n margin: 0;\n padding: 15px;\n}\n.block-editor .edit-post-sidebar .acf-fields > .acf-field.acf-accordion .acf-accordion-title label {\n font-weight: 500;\n color: rgb(30, 30, 30);\n}\n.block-editor .edit-post-sidebar .acf-fields > .acf-field.acf-accordion .acf-accordion-title svg.acf-accordion-icon {\n right: 16px;\n}\n.block-editor .edit-post-sidebar .acf-fields > .acf-field.acf-accordion .acf-accordion-content > .acf-fields {\n border-top-width: 0;\n}\n\n/*-----------------------------------------------------------------------------\n*\n* Prefix field label & prefix field names\n*\n*-----------------------------------------------------------------------------*/\n.acf-field-setting-prefix_label p.description,\n.acf-field-setting-prefix_name p.description {\n order: 3;\n margin-top: 0;\n margin-left: 16px;\n}\n.acf-field-setting-prefix_label p.description code,\n.acf-field-setting-prefix_name p.description code {\n padding-top: 4px;\n padding-right: 6px;\n padding-bottom: 4px;\n padding-left: 6px;\n background-color: #F2F4F7;\n border-radius: 4px;\n color: #667085;\n}\n\n/*-----------------------------------------------------------------------------\n*\n* Editor tab styles\n*\n*-----------------------------------------------------------------------------*/\n.acf-fields > .acf-tab-wrap:first-child .acf-tab-group {\n border-top: none;\n}\n\n.acf-fields > .acf-tab-wrap .acf-tab-group li.active a {\n background: #ffffff;\n}\n\n.acf-fields > .acf-tab-wrap .acf-tab-group li a {\n background: #f1f1f1;\n border-color: #ccd0d4;\n}\n\n.acf-fields > .acf-tab-wrap .acf-tab-group li a:hover {\n background: #fff;\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tUser\n*\n*--------------------------------------------------------------------------------------------*/\n.form-table > tbody {\n /* field */\n /* tab wrap */\n /* misc */\n}\n.form-table > tbody > .acf-field {\n /* label */\n /* input */\n}\n.form-table > tbody > .acf-field > .acf-label {\n padding: 20px 10px 20px 0;\n width: 210px;\n /* rtl */\n}\nhtml[dir=rtl] .form-table > tbody > .acf-field > .acf-label {\n padding: 20px 0 20px 10px;\n}\n.form-table > tbody > .acf-field > .acf-label label {\n font-size: 14px;\n color: #23282d;\n}\n.form-table > tbody > .acf-field > .acf-input {\n padding: 15px 10px;\n /* rtl */\n}\nhtml[dir=rtl] .form-table > tbody > .acf-field > .acf-input {\n padding: 15px 10px 15px 5%;\n}\n.form-table > tbody > .acf-tab-wrap td {\n padding: 15px 5% 15px 0;\n /* rtl */\n}\nhtml[dir=rtl] .form-table > tbody > .acf-tab-wrap td {\n padding: 15px 0 15px 5%;\n}\n.form-table > tbody .form-table th.acf-th {\n width: auto;\n}\n\n#your-profile,\n#createuser {\n /* override for user css */\n /* allow sub fields to display correctly */\n}\n#your-profile .acf-field input[type=text],\n#your-profile .acf-field input[type=password],\n#your-profile .acf-field input[type=number],\n#your-profile .acf-field input[type=search],\n#your-profile .acf-field input[type=email],\n#your-profile .acf-field input[type=url],\n#your-profile .acf-field select,\n#createuser .acf-field input[type=text],\n#createuser .acf-field input[type=password],\n#createuser .acf-field input[type=number],\n#createuser .acf-field input[type=search],\n#createuser .acf-field input[type=email],\n#createuser .acf-field input[type=url],\n#createuser .acf-field select {\n max-width: 25em;\n}\n#your-profile .acf-field textarea,\n#createuser .acf-field textarea {\n max-width: 500px;\n}\n#your-profile .acf-field .acf-field input[type=text],\n#your-profile .acf-field .acf-field input[type=password],\n#your-profile .acf-field .acf-field input[type=number],\n#your-profile .acf-field .acf-field input[type=search],\n#your-profile .acf-field .acf-field input[type=email],\n#your-profile .acf-field .acf-field input[type=url],\n#your-profile .acf-field .acf-field textarea,\n#your-profile .acf-field .acf-field select,\n#createuser .acf-field .acf-field input[type=text],\n#createuser .acf-field .acf-field input[type=password],\n#createuser .acf-field .acf-field input[type=number],\n#createuser .acf-field .acf-field input[type=search],\n#createuser .acf-field .acf-field input[type=email],\n#createuser .acf-field .acf-field input[type=url],\n#createuser .acf-field .acf-field textarea,\n#createuser .acf-field .acf-field select {\n max-width: none;\n}\n\n#registerform h2 {\n margin: 1em 0;\n}\n#registerform .acf-field {\n margin-top: 0;\n /*\n \t\t.acf-input {\n \t\t\tinput {\n \t\t\t\tfont-size: 24px;\n \t\t\t\tpadding: 5px;\n \t\t\t\theight: auto;\n \t\t\t}\n \t\t}\n */\n}\n#registerform .acf-field .acf-label {\n margin-bottom: 0;\n}\n#registerform .acf-field .acf-label label {\n font-weight: normal;\n line-height: 1.5;\n}\n#registerform p.submit {\n text-align: right;\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tTerm\n*\n*--------------------------------------------------------------------------------------------*/\n#acf-term-fields {\n padding-right: 5%;\n}\n#acf-term-fields > .acf-field > .acf-label {\n margin: 0;\n}\n#acf-term-fields > .acf-field > .acf-label label {\n font-size: 12px;\n font-weight: normal;\n}\n\np.submit .spinner,\np.submit .acf-spinner {\n vertical-align: top;\n float: none;\n margin: 4px 4px 0;\n}\n\n#edittag .acf-fields.-left > .acf-field {\n padding-left: 220px;\n}\n#edittag .acf-fields.-left > .acf-field:before {\n width: 209px;\n}\n#edittag .acf-fields.-left > .acf-field > .acf-label {\n width: 220px;\n margin-left: -220px;\n padding: 0 10px;\n}\n#edittag .acf-fields.-left > .acf-field > .acf-input {\n padding: 0;\n}\n\n#edittag > .acf-fields.-left {\n width: 96%;\n}\n#edittag > .acf-fields.-left > .acf-field > .acf-label {\n padding-left: 0;\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tComment\n*\n*--------------------------------------------------------------------------------------------*/\n.editcomment td:first-child {\n white-space: nowrap;\n width: 131px;\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tWidget\n*\n*--------------------------------------------------------------------------------------------*/\n#widgets-right .widget .acf-field .description {\n padding-left: 0;\n padding-right: 0;\n}\n\n.acf-widget-fields > .acf-field .acf-label {\n margin-bottom: 5px;\n}\n.acf-widget-fields > .acf-field .acf-label label {\n font-weight: normal;\n margin: 0;\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tNav Menu\n*\n*--------------------------------------------------------------------------------------------*/\n.acf-menu-settings {\n border-top: 1px solid #eee;\n margin-top: 2em;\n}\n.acf-menu-settings.-seamless {\n border-top: none;\n margin-top: 15px;\n}\n.acf-menu-settings.-seamless > h2 {\n display: none;\n}\n.acf-menu-settings .list li {\n display: block;\n margin-bottom: 0;\n}\n\n.acf-fields.acf-menu-item-fields {\n clear: both;\n padding-top: 1px;\n}\n.acf-fields.acf-menu-item-fields > .acf-field {\n margin: 5px 0;\n padding-right: 10px;\n}\n.acf-fields.acf-menu-item-fields > .acf-field .acf-label {\n margin-bottom: 0;\n}\n.acf-fields.acf-menu-item-fields > .acf-field .acf-label label {\n font-style: italic;\n font-weight: normal;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Attachment Form (single)\n*\n*---------------------------------------------------------------------------------------------*/\n#post .compat-attachment-fields .compat-field-acf-form-data {\n display: none;\n}\n#post .compat-attachment-fields,\n#post .compat-attachment-fields > tbody,\n#post .compat-attachment-fields > tbody > tr,\n#post .compat-attachment-fields > tbody > tr > th,\n#post .compat-attachment-fields > tbody > tr > td {\n display: block;\n}\n#post .compat-attachment-fields > tbody > .acf-field {\n margin: 15px 0;\n}\n#post .compat-attachment-fields > tbody > .acf-field > .acf-label {\n margin: 0;\n}\n#post .compat-attachment-fields > tbody > .acf-field > .acf-label label {\n margin: 0;\n padding: 0;\n}\n#post .compat-attachment-fields > tbody > .acf-field > .acf-label label p {\n margin: 0 0 3px !important;\n}\n#post .compat-attachment-fields > tbody > .acf-field > .acf-input {\n margin: 0;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Media Model\n*\n*---------------------------------------------------------------------------------------------*/\n/* WP sets tables to act as divs. ACF uses tables, so these muct be reset */\n.media-modal .compat-attachment-fields td.acf-input table {\n display: table;\n table-layout: auto;\n}\n.media-modal .compat-attachment-fields td.acf-input table tbody {\n display: table-row-group;\n}\n.media-modal .compat-attachment-fields td.acf-input table tr {\n display: table-row;\n}\n.media-modal .compat-attachment-fields td.acf-input table td, .media-modal .compat-attachment-fields td.acf-input table th {\n display: table-cell;\n}\n\n/* field widths floats */\n.media-modal .compat-attachment-fields > tbody > .acf-field {\n margin: 5px 0;\n}\n.media-modal .compat-attachment-fields > tbody > .acf-field > .acf-label {\n min-width: 30%;\n margin: 0;\n padding: 0;\n float: left;\n text-align: right;\n display: block;\n float: left;\n}\n.media-modal .compat-attachment-fields > tbody > .acf-field > .acf-label > label {\n padding-top: 6px;\n margin: 0;\n color: #666666;\n font-weight: 400;\n line-height: 16px;\n}\n.media-modal .compat-attachment-fields > tbody > .acf-field > .acf-input {\n width: 65%;\n margin: 0;\n padding: 0;\n float: right;\n display: block;\n}\n.media-modal .compat-attachment-fields > tbody > .acf-field p.description {\n margin: 0;\n}\n\n/* restricted selection (copy of WP .upload-errors)*/\n.acf-selection-error {\n background: #ffebe8;\n border: 1px solid #c00;\n border-radius: 3px;\n padding: 8px;\n margin: 20px 0 0;\n}\n.acf-selection-error .selection-error-label {\n background: #CC0000;\n border-radius: 3px;\n color: #fff;\n font-weight: bold;\n margin-right: 8px;\n padding: 2px 4px;\n}\n.acf-selection-error .selection-error-message {\n color: #b44;\n display: block;\n padding-top: 8px;\n word-wrap: break-word;\n white-space: pre-wrap;\n}\n\n/* disabled attachment */\n.media-modal .attachment.acf-disabled .thumbnail {\n opacity: 0.25 !important;\n}\n.media-modal .attachment.acf-disabled .attachment-preview:before {\n background: rgba(0, 0, 0, 0.15);\n z-index: 1;\n position: relative;\n}\n\n/* misc */\n.media-modal {\n /* compat-item */\n /* allow line breaks in upload error */\n /* fix required span */\n /* sidebar */\n /* mobile md */\n}\n.media-modal .compat-field-acf-form-data,\n.media-modal .compat-field-acf-blank {\n display: none !important;\n}\n.media-modal .upload-error-message {\n white-space: pre-wrap;\n}\n.media-modal .acf-required {\n padding: 0 !important;\n margin: 0 !important;\n float: none !important;\n color: #f00 !important;\n}\n.media-modal .media-sidebar .compat-item {\n padding-bottom: 20px;\n}\n@media (max-width: 900px) {\n .media-modal {\n /* label */\n /* field */\n }\n .media-modal .setting span,\n .media-modal .compat-attachment-fields > tbody > .acf-field > .acf-label {\n width: 98%;\n float: none;\n text-align: left;\n min-height: 0;\n padding: 0;\n }\n .media-modal .setting input,\n .media-modal .setting textarea,\n .media-modal .compat-attachment-fields > tbody > .acf-field > .acf-input {\n float: none;\n height: auto;\n max-width: none;\n width: 98%;\n }\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Media Model (expand details)\n*\n*---------------------------------------------------------------------------------------------*/\n.media-modal .acf-expand-details {\n float: right;\n padding: 8px 10px;\n margin-right: 6px;\n font-size: 13px;\n height: 18px;\n line-height: 18px;\n color: #666;\n text-decoration: none;\n}\n.media-modal .acf-expand-details:focus, .media-modal .acf-expand-details:active {\n outline: 0 none;\n box-shadow: none;\n color: #666;\n}\n.media-modal .acf-expand-details:hover {\n color: #000;\n}\n.media-modal .acf-expand-details .is-open {\n display: none;\n}\n.media-modal .acf-expand-details .is-closed {\n display: block;\n}\n@media (max-width: 640px) {\n .media-modal .acf-expand-details {\n display: none;\n }\n}\n\n/* expanded */\n.media-modal.acf-expanded {\n /* toggle */\n}\n.media-modal.acf-expanded .acf-expand-details .is-open {\n display: block;\n}\n.media-modal.acf-expanded .acf-expand-details .is-closed {\n display: none;\n}\n.media-modal.acf-expanded .attachments-browser .media-toolbar,\n.media-modal.acf-expanded .attachments-browser .attachments {\n right: 740px;\n}\n.media-modal.acf-expanded .media-sidebar {\n width: 708px;\n}\n.media-modal.acf-expanded .media-sidebar .attachment-info .thumbnail {\n float: left;\n max-height: none;\n}\n.media-modal.acf-expanded .media-sidebar .attachment-info .thumbnail img {\n max-width: 100%;\n max-height: 200px;\n}\n.media-modal.acf-expanded .media-sidebar .attachment-info .details {\n float: right;\n}\n.media-modal.acf-expanded .media-sidebar .attachment-info .thumbnail,\n.media-modal.acf-expanded .media-sidebar .attachment-details .setting .name,\n.media-modal.acf-expanded .media-sidebar .compat-attachment-fields > tbody > .acf-field > .acf-label {\n min-width: 20%;\n margin-right: 0;\n}\n.media-modal.acf-expanded .media-sidebar .attachment-info .details,\n.media-modal.acf-expanded .media-sidebar .attachment-details .setting input,\n.media-modal.acf-expanded .media-sidebar .attachment-details .setting textarea,\n.media-modal.acf-expanded .media-sidebar .attachment-details .setting + .description,\n.media-modal.acf-expanded .media-sidebar .compat-attachment-fields > tbody > .acf-field > .acf-input {\n min-width: 77%;\n}\n@media (max-width: 900px) {\n .media-modal.acf-expanded .attachments-browser .media-toolbar {\n display: none;\n }\n .media-modal.acf-expanded .attachments {\n display: none;\n }\n .media-modal.acf-expanded .media-sidebar {\n width: auto;\n max-width: none !important;\n bottom: 0 !important;\n }\n .media-modal.acf-expanded .media-sidebar .attachment-info .thumbnail {\n min-width: 0;\n max-width: none;\n width: 30%;\n }\n .media-modal.acf-expanded .media-sidebar .attachment-info .details {\n min-width: 0;\n max-width: none;\n width: 67%;\n }\n}\n@media (max-width: 640px) {\n .media-modal.acf-expanded .media-sidebar .attachment-info .thumbnail, .media-modal.acf-expanded .media-sidebar .attachment-info .details {\n width: 100%;\n }\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* ACF Media Model\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-media-modal {\n /* hide embed settings */\n}\n.acf-media-modal .media-embed .setting.align,\n.acf-media-modal .media-embed .setting.link-to {\n display: none;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* ACF Media Model (Select Mode)\n*\n*---------------------------------------------------------------------------------------------*/\n/*---------------------------------------------------------------------------------------------\n*\n* ACF Media Model (Edit Mode)\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-media-modal.-edit {\n /* resize modal */\n left: 15%;\n right: 15%;\n top: 100px;\n bottom: 100px;\n /* hide elements */\n /* full width */\n /* tidy up incorrect distance */\n /* title box shadow (to match media grid) */\n /* sidebar */\n /* mobile md */\n /* mobile sm */\n}\n.acf-media-modal.-edit .media-frame-menu,\n.acf-media-modal.-edit .media-frame-router,\n.acf-media-modal.-edit .media-frame-content .attachments,\n.acf-media-modal.-edit .media-frame-content .media-toolbar {\n display: none;\n}\n.acf-media-modal.-edit .media-frame-title,\n.acf-media-modal.-edit .media-frame-content,\n.acf-media-modal.-edit .media-frame-toolbar,\n.acf-media-modal.-edit .media-sidebar {\n width: auto;\n left: 0;\n right: 0;\n}\n.acf-media-modal.-edit .media-frame-content {\n top: 50px;\n}\n.acf-media-modal.-edit .media-frame-title {\n border-bottom: 1px solid #DFDFDF;\n box-shadow: 0 4px 4px -4px rgba(0, 0, 0, 0.1);\n}\n.acf-media-modal.-edit .media-sidebar {\n padding: 0 16px;\n /* WP details */\n /* ACF fields */\n /* WP required message */\n}\n.acf-media-modal.-edit .media-sidebar .attachment-details {\n overflow: visible;\n /* hide 'Attachment Details' heading */\n /* remove overflow */\n /* move thumbnail */\n}\n.acf-media-modal.-edit .media-sidebar .attachment-details > h3, .acf-media-modal.-edit .media-sidebar .attachment-details > h2 {\n display: none;\n}\n.acf-media-modal.-edit .media-sidebar .attachment-details .attachment-info {\n background: #fff;\n border-bottom: #dddddd solid 1px;\n padding: 16px;\n margin: 0 -16px 16px;\n}\n.acf-media-modal.-edit .media-sidebar .attachment-details .thumbnail {\n margin: 0 16px 0 0;\n}\n.acf-media-modal.-edit .media-sidebar .attachment-details .setting {\n margin: 0 0 5px;\n}\n.acf-media-modal.-edit .media-sidebar .attachment-details .setting span {\n margin: 0;\n}\n.acf-media-modal.-edit .media-sidebar .compat-attachment-fields > tbody > .acf-field {\n margin: 0 0 5px;\n}\n.acf-media-modal.-edit .media-sidebar .compat-attachment-fields > tbody > .acf-field p.description {\n margin-top: 3px;\n}\n.acf-media-modal.-edit .media-sidebar .media-types-required-info {\n display: none;\n}\n@media (max-width: 900px) {\n .acf-media-modal.-edit {\n top: 30px;\n right: 30px;\n bottom: 30px;\n left: 30px;\n }\n}\n@media (max-width: 640px) {\n .acf-media-modal.-edit {\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n }\n}\n@media (max-width: 480px) {\n .acf-media-modal.-edit .media-frame-content {\n top: 40px;\n }\n}\n\n.acf-temp-remove {\n position: relative;\n opacity: 1;\n -webkit-transition: all 0.25s ease;\n -moz-transition: all 0.25s ease;\n -o-transition: all 0.25s ease;\n transition: all 0.25s ease;\n overflow: hidden;\n /* overlay prevents hover */\n}\n.acf-temp-remove:after {\n display: block;\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 99;\n}\n\n.hidden-by-conditional-logic {\n display: none !important;\n}\n.hidden-by-conditional-logic.appear-empty {\n display: table-cell !important;\n}\n.hidden-by-conditional-logic.appear-empty .acf-input {\n display: none !important;\n}\n\n.acf-postbox.acf-hidden {\n display: none !important;\n}\n\n.acf-attention {\n transition: border 0.25s ease-out;\n}\n.acf-attention.-focused {\n border: #23282d solid 1px !important;\n transition: none;\n}\n\ntr.acf-attention {\n transition: box-shadow 0.25s ease-out;\n position: relative;\n}\ntr.acf-attention.-focused {\n box-shadow: #23282d 0 0 0px 1px !important;\n}\n\n#editor .edit-post-layout__metaboxes {\n padding: 0;\n}\n#editor .edit-post-layout__metaboxes .edit-post-meta-boxes-area {\n margin: 0;\n}\n#editor .metabox-location-side .postbox-container {\n float: none;\n}\n#editor .postbox {\n color: #444;\n}\n#editor .postbox > .postbox-header .hndle {\n border-bottom: none;\n}\n#editor .postbox > .postbox-header .hndle:hover {\n background: transparent;\n}\n#editor .postbox > .postbox-header .handle-actions .handle-order-higher,\n#editor .postbox > .postbox-header .handle-actions .handle-order-lower {\n width: 1.62rem;\n}\n#editor .postbox > .postbox-header .handle-actions .acf-hndle-cog {\n height: 44px;\n line-height: 44px;\n}\n#editor .postbox > .postbox-header:hover {\n background: #f0f0f0;\n}\n#editor .postbox:last-child.closed > .postbox-header {\n border-bottom: none;\n}\n#editor .postbox:last-child > .inside {\n border-bottom: none;\n}\n#editor .block-editor-writing-flow__click-redirect {\n min-height: 50px;\n}\n\nbody.is-dragging-metaboxes #acf_after_title-sortables {\n outline: 3px dashed #646970;\n display: flow-root;\n min-height: 60px;\n margin-bottom: 3px !important;\n}","/*--------------------------------------------------------------------------------------------\n*\n*\tVars\n*\n*--------------------------------------------------------------------------------------------*/\n\n/* colors */\n$acf_blue: #2a9bd9;\n$acf_notice: #2a9bd9;\n$acf_error: #d94f4f;\n$acf_success: #49ad52;\n$acf_warning: #fd8d3b;\n\n/* acf-field */\n$field_padding: 15px 12px;\n$field_padding_x: 12px;\n$field_padding_y: 15px;\n$fp: 15px 12px;\n$fy: 15px;\n$fx: 12px;\n\n/* responsive */\n$md: 880px;\n$sm: 640px;\n\n// Admin.\n$wp-card-border: #ccd0d4;\t\t\t// Card border.\n$wp-card-border-1: #d5d9dd;\t\t // Card inner border 1: Structural (darker).\n$wp-card-border-2: #eeeeee;\t\t // Card inner border 2: Fields (lighter).\n$wp-input-border: #7e8993;\t\t // Input border.\n\n// Admin 3.8\n$wp38-card-border: #E5E5E5;\t\t // Card border.\n$wp38-card-border-1: #dfdfdf;\t\t// Card inner border 1: Structural (darker).\n$wp38-card-border-2: #eeeeee;\t\t// Card inner border 2: Fields (lighter).\n$wp38-input-border: #dddddd;\t\t // Input border.\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tACF 6 ↓\n*\n*--------------------------------------------------------------------------------------------*/\n\n// Grays\n$gray-50: #F9FAFB;\n$gray-100: #F2F4F7;\n$gray-200: #EAECF0;\n$gray-300: #D0D5DD;\n$gray-400: #98A2B3;\n$gray-500: #667085;\n$gray-600: #475467;\n$gray-700: #344054;\n$gray-800: #1D2939;\n$gray-900: #101828;\n\n// Blues\n$blue-50: #EBF5FA;\n$blue-100: #D8EBF5;\n$blue-200: #A5D2E7;\n$blue-300: #6BB5D8;\n$blue-400: #399CCB;\n$blue-500: #0783BE;\n$blue-600: #066998;\n$blue-700: #044E71;\n$blue-800: #033F5B;\n$blue-900: #032F45;\n\n// Utility\n$color-info:\t#2D69DA;\n$color-success:\t#52AA59;\n$color-warning:\t#F79009;\n$color-danger:\t#D13737;\n\n$color-primary: $blue-500;\n$color-primary-hover: $blue-600;\n$color-secondary: $gray-500;\n$color-secondary-hover: $gray-400;\n\n// Gradients\n$gradient-pro: linear-gradient(90.52deg, #3E8BFF 0.44%, #A45CFF 113.3%);\n\n// Border radius\n$radius-sm:\t4px;\n$radius-md: 6px;\n$radius-lg: 8px;\n$radius-xl: 12px;\n\n// Elevations / Box shadows\n$elevation-01: 0px 1px 2px rgba($gray-900, 0.10);\n\n// Input & button focus outline\n$outline: 3px solid $blue-50;\n\n// Link colours\n$link-color: $blue-500;\n\n// Responsive\n$max-width: 1440px;","/*--------------------------------------------------------------------------------------------\n*\n* Mixins\n*\n*--------------------------------------------------------------------------------------------*/\n@mixin clearfix() {\n\t&:after {\n\t\tdisplay: block;\n\t\tclear: both;\n\t\tcontent: \"\";\n\t}\n}\n\n@mixin border-box() {\n\t-webkit-box-sizing: border-box;\n\t-moz-box-sizing: border-box;\n\tbox-sizing: border-box;\n}\n\n@mixin centered() {\n\tposition: absolute;\n\ttop: 50%;\n\tleft: 50%;\n\ttransform: translate(-50%, -50%);\n}\n\n@mixin animate( $properties: 'all' ) {\n\t-webkit-transition: $properties 0.3s ease; // Safari 3.2+, Chrome\n -moz-transition: $properties 0.3s ease; \t// Firefox 4-15\n -o-transition: $properties 0.3s ease; \t\t// Opera 10.5–12.00\n transition: $properties 0.3s ease; \t\t// Firefox 16+, Opera 12.50+\n}\n\n@mixin rtl() {\n\thtml[dir=\"rtl\"] & {\n\t\ttext-align: right;\n\t\t@content;\n\t}\n}\n\n@mixin wp-admin( $version: '3-8' ) {\n\t.acf-admin-#{$version} & {\n\t\t@content;\n\t}\n}","/*---------------------------------------------------------------------------------------------\n*\n* Global\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-admin-page {\n\t#wpcontent {\n\t\tline-height: 140%;\n\t}\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Links\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-admin-page {\n\n\ta {\n\t\tcolor: $blue-500;\n\t}\n\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Headings\n*\n*---------------------------------------------------------------------------------------------*/\n\n.acf-h1 {\n\tfont-size: 21px;\n\tfont-weight: 400;\n}\n\n.acf-h2 {\n\tfont-size: 18px;\n\tfont-weight: 400;\n}\n\n.acf-h3 {\n\tfont-size: 16px;\n\tfont-weight: 400;\n}\n\n.acf-admin-page,\n.acf-headerbar {\n\n\th1 {\n\t\t@extend .acf-h1;\n\t}\n\n\th2 {\n\t\t@extend .acf-h2;\n\t}\n\n\th3 {\n\t\t@extend .acf-h3;\n\t}\n\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Paragraphs\n*\n*---------------------------------------------------------------------------------------------*/\n\n.acf-admin-page {\n\n\t.p1 {\n\t\tfont-size: 15px;\n\t}\n\n\t.p2 {\n\t\tfont-size: 14px;\n\t}\n\n\t.p3 {\n\t\tfont-size: 13.5px;\n\t}\n\n\t.p4 {\n\t\tfont-size: 13px;\n\t}\n\n\t.p5 {\n\t\tfont-size: 12.5px;\n\t}\n\n\t.p6 {\n\t\tfont-size: 12px;\n\t}\n\n\t.p7 {\n\t\tfont-size: 11.5px;\n\t}\n\n\t.p8 {\n\t\tfont-size: 11px;\n\t}\n\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Page titles\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-page-title {\n\t@extend .acf-h2;\n\tcolor: $gray-700;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Hide old / native WP titles from pages\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-admin-page {\n\n\t.acf-settings-wrap h1 {\n\t\tdisplay: none !important;\n\t}\n\n\t#acf-admin-tools h1:not(.acf-field-group-pro-features-title, .acf-field-group-pro-features-title-sm) {\n\t\tdisplay: none !important;\n\t}\n\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Small\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-small {\n\t@extend .p6;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Link focus style\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-admin-page {\n\ta:focus {\n\t\tbox-shadow: none;\n\t\toutline: none;\n\t}\n\n\ta:focus-visible {\n\t\tbox-shadow: 0 0 0 1px #4f94d4, 0 0 2px 1px rgb(79 148 212 / 80%);\n\t\toutline: 1px solid transparent;\n\t}\n}\n","/*--------------------------------------------------------------------------------------------\n*\n*\tacf-field\n*\n*--------------------------------------------------------------------------------------------*/\n\n.acf-field,\n.acf-field .acf-label,\n.acf-field .acf-input {\n\t-webkit-box-sizing: border-box;\n\t-moz-box-sizing: border-box;\n\tbox-sizing: border-box;\n\tposition: relative;\n}\n\n.acf-field {\n\tmargin: 15px 0;\n\n\t// clear is important as it will avoid any layout issues with floating fields\n\t// do not delete (you have tried this)\n\tclear: both;\n\n\t// description\n\tp.description {\n\t\tdisplay: block;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t}\n\n\t// label\n\t.acf-label {\n\t\tvertical-align: top;\n\t\tmargin: 0 0 10px;\n\n\t\tlabel {\n\t\t\tdisplay: block;\n\t\t\tfont-weight: 500;\n\t\t\tmargin: 0 0 3px;\n\t\t\tpadding: 0;\n\t\t}\n\n\t\t&:empty {\n\t\t\tmargin-bottom: 0;\n\t\t}\n\t}\n\n\t// input\n\t.acf-input {\n\t\tvertical-align: top;\n\t}\n\n\t// description\n\tp.description {\n\t\tdisplay: block;\n\t\tmargin: {\n\t\t\ttop: 6px;\n\t\t}\n\t\t@extend .p6;\n\t\tcolor: $gray-500;\n\t}\n\n\t// notice\n\t.acf-notice {\n\t\tmargin: 0 0 15px;\n\t\tbackground: #edf2ff;\n\t\tcolor: #0c6ca0;\n\t\tborder-color: #2183b9;\n\n\t\t// error\n\t\t&.-error {\n\t\t\tbackground: #ffe6e6;\n\t\t\tcolor: #cc2727;\n\t\t\tborder-color: #d12626;\n\t\t}\n\n\t\t// success\n\t\t&.-success {\n\t\t\tbackground: #eefbe8;\n\t\t\tcolor: #0e7b17;\n\t\t\tborder-color: #32a23b;\n\t\t}\n\n\t\t// warning\n\t\t&.-warning {\n\t\t\tbackground: #fff3e6;\n\t\t\tcolor: #bd4b0e;\n\t\t\tborder-color: #d16226;\n\t\t}\n\t}\n\n\t// table\n\t@at-root td#{&},\n\t\ttr#{&} {\n\t\tmargin: 0;\n\t}\n}\n\n// width\n.acf-field[data-width] {\n\tfloat: left;\n\tclear: none;\n\n\t// next\n\t+ .acf-field[data-width] {\n\t\tborder-left: 1px solid #eeeeee;\n\t}\n\n\t// rtl\n\thtml[dir=\"rtl\"] & {\n\t\tfloat: right;\n\n\t\t+ .acf-field[data-width] {\n\t\t\tborder-left: none;\n\t\t\tborder-right: 1px solid #eeeeee;\n\t\t}\n\t}\n\n\t// table\n\t@at-root td#{&},\n\t\ttr#{&} {\n\t\tfloat: none;\n\t}\n\n\t// mobile\n\t/*\n\t@media screen and (max-width: $sm) {\n\t\tfloat: none;\n\t\twidth: auto;\n\t\tborder-left-width: 0;\n\t\tborder-right-width: 0;\n\t}\n*/\n}\n\n// float helpers\n.acf-field.-c0 {\n\tclear: both;\n\tborder-left-width: 0 !important;\n\n\t// rtl\n\thtml[dir=\"rtl\"] & {\n\t\tborder-left-width: 1px !important;\n\t\tborder-right-width: 0 !important;\n\t}\n}\n\n.acf-field.-r0 {\n\tborder-top-width: 0 !important;\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tacf-fields\n*\n*--------------------------------------------------------------------------------------------*/\n\n.acf-fields {\n\tposition: relative;\n\n\t// clearifx\n\t@include clearfix();\n\n\t// border\n\t&.-border {\n\t\tborder: $wp-card-border solid 1px;\n\t\tbackground: #fff;\n\t}\n\n\t// field\n\t> .acf-field {\n\t\tposition: relative;\n\t\tmargin: 0;\n\t\tpadding: 16px;\n\t\tborder-top: {\n\t\t\twidth: 1px;\n\t\t\tstyle: solid;\n\t\t\tcolor: $gray-200;\n\t\t}\n\n\t\t// first\n\t\t&:first-child {\n\t\t\tborder-top: none;\n\t\t\tmargin-top: 0;\n\t\t}\n\t}\n\n\t// table\n\t@at-root td#{&} {\n\t\tpadding: 0 !important;\n\t}\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tacf-fields (clear)\n*\n*--------------------------------------------------------------------------------------------*/\n\n.acf-fields.-clear > .acf-field {\n\tborder: none;\n\tpadding: 0;\n\tmargin: 15px 0;\n\n\t// width\n\t&[data-width] {\n\t\tborder: none !important;\n\t}\n\n\t// label\n\t> .acf-label {\n\t\tpadding: 0;\n\t}\n\n\t// input\n\t> .acf-input {\n\t\tpadding: 0;\n\t}\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tacf-fields (left)\n*\n*--------------------------------------------------------------------------------------------*/\n\n.acf-fields.-left > .acf-field {\n\tpadding: $fy 0;\n\n\t// clearifx\n\t@include clearfix();\n\n\t// sidebar\n\t&:before {\n\t\tcontent: \"\";\n\t\tdisplay: block;\n\t\tposition: absolute;\n\t\tz-index: 0;\n\t\tbackground: #f9f9f9;\n\t\tborder-color: #e1e1e1;\n\t\tborder-style: solid;\n\t\tborder-width: 0 1px 0 0;\n\t\ttop: 0;\n\t\tbottom: 0;\n\t\tleft: 0;\n\t\twidth: 20%;\n\t}\n\n\t// width\n\t&[data-width] {\n\t\tfloat: none;\n\t\twidth: auto !important;\n\t\tborder-left-width: 0 !important;\n\t\tborder-right-width: 0 !important;\n\t}\n\n\t// label\n\t> .acf-label {\n\t\tfloat: left;\n\t\twidth: 20%;\n\t\tmargin: 0;\n\t\tpadding: 0 $fx;\n\t}\n\n\t// input\n\t> .acf-input {\n\t\tfloat: left;\n\t\twidth: 80%;\n\t\tmargin: 0;\n\t\tpadding: 0 $fx;\n\t}\n\n\t// rtl\n\thtml[dir=\"rtl\"] & {\n\t\t// sidebar\n\t\t&:before {\n\t\t\tborder-width: 0 0 0 1px;\n\t\t\tleft: auto;\n\t\t\tright: 0;\n\t\t}\n\n\t\t// label\n\t\t> .acf-label {\n\t\t\tfloat: right;\n\t\t}\n\n\t\t// input\n\t\t> .acf-input {\n\t\t\tfloat: right;\n\t\t}\n\t}\n\n\t// In sidebar.\n\t#side-sortables & {\n\t\t&:before {\n\t\t\tdisplay: none;\n\t\t}\n\t\t> .acf-label {\n\t\t\twidth: 100%;\n\t\t\tmargin-bottom: 10px;\n\t\t}\n\t\t> .acf-input {\n\t\t\twidth: 100%;\n\t\t}\n\t}\n\n\t// mobile\n\t@media screen and (max-width: $sm) {\n\t\t// sidebar\n\t\t&:before {\n\t\t\tdisplay: none;\n\t\t}\n\n\t\t// label\n\t\t> .acf-label {\n\t\t\twidth: 100%;\n\t\t\tmargin-bottom: 10px;\n\t\t}\n\n\t\t// input\n\t\t> .acf-input {\n\t\t\twidth: 100%;\n\t\t}\n\t}\n}\n\n/* clear + left */\n.acf-fields.-clear.-left > .acf-field {\n\tpadding: 0;\n\tborder: none;\n\n\t// sidebar\n\t&:before {\n\t\tdisplay: none;\n\t}\n\n\t// label\n\t> .acf-label {\n\t\tpadding: 0;\n\t}\n\n\t// input\n\t> .acf-input {\n\t\tpadding: 0;\n\t}\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tacf-table\n*\n*--------------------------------------------------------------------------------------------*/\n\n.acf-table tr.acf-field {\n\t// label\n\t> td.acf-label {\n\t\tpadding: $fp;\n\t\tmargin: 0;\n\t\tbackground: #f9f9f9;\n\t\twidth: 20%;\n\t}\n\n\t// input\n\t> td.acf-input {\n\t\tpadding: $fp;\n\t\tmargin: 0;\n\t\tborder-left-color: #e1e1e1;\n\t}\n}\n\n.acf-sortable-tr-helper {\n\tposition: relative !important;\n\tdisplay: table-row !important;\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tacf-postbox\n*\n*--------------------------------------------------------------------------------------------*/\n\n.acf-postbox {\n\tposition: relative;\n\n\t// inside\n\t> .inside {\n\t\tmargin: 0 !important; /* override WP style - do not delete - you have tried this before */\n\t\tpadding: 0 !important; /* override WP style - do not delete - you have tried this before */\n\t}\n\n\t// Edit cog.\n\t.acf-hndle-cog {\n\t\tcolor: #72777c;\n\t\tfont-size: 16px;\n\t\tline-height: 36px;\n\t\theight: 36px; // Mimic WP 5.5\n\t\twidth: 1.62rem; // Mimic WP 5.5\n\t\tposition: relative;\n\t\tdisplay: none;\n\t\t&:hover {\n\t\t\tcolor: #191e23;\n\t\t}\n\t}\n\n\t// Show on hover.\n\t> .hndle:hover,\n\t> .postbox-header:hover {\n\t\t.acf-hndle-cog {\n\t\t\tdisplay: inline-block;\n\t\t}\n\t}\n\n\t// WP < 5.5 styling\n\t> .hndle {\n\t\t.acf-hndle-cog {\n\t\t\theight: 20px;\n\t\t\tline-height: 20px;\n\t\t\tfloat: right;\n\t\t\twidth: auto;\n\t\t\t&:hover {\n\t\t\t\tcolor: #777777;\n\t\t\t}\n\t\t}\n\t}\n\n\t// replace\n\t.acf-replace-with-fields {\n\t\tpadding: 15px;\n\t\ttext-align: center;\n\t}\n}\n\n// Correct margin around #acf_after_title\n#post-body-content #acf_after_title-sortables {\n\tmargin: 20px 0 -20px;\n}\n\n/* seamless */\n.acf-postbox.seamless {\n\tborder: 0 none;\n\tbackground: transparent;\n\tbox-shadow: none;\n\n\t/* hide hndle */\n\t> .postbox-header,\n\t> .hndle,\n\t> .handlediv {\n\t\tdisplay: none !important;\n\t}\n\n\t/* inside */\n\t> .inside {\n\t\tdisplay: block !important; /* stop metabox from hiding when closed */\n\t\tmargin-left: -$field_padding_x !important;\n\t\tmargin-right: -$field_padding_x !important;\n\n\t\t> .acf-field {\n\t\t\tborder-color: transparent;\n\t\t}\n\t}\n}\n\n/* seamless (left) */\n.acf-postbox.seamless > .acf-fields.-left {\n\t/* hide sidebar bg */\n\t> .acf-field:before {\n\t\tdisplay: none;\n\t}\n\n\t/* mobile */\n\t@media screen and (max-width: 782px) {\n\t\t/* remove padding */\n\t\t& > .acf-field > .acf-label,\n\t\t& > .acf-field > .acf-input {\n\t\t\tpadding: 0;\n\t\t}\n\t}\n}\n\n/*-----------------------------------------------------------------------------\n*\n* Inputs\n*\n*-----------------------------------------------------------------------------*/\n\n.acf-field {\n\tinput[type=\"text\"],\n\tinput[type=\"password\"],\n\tinput[type=\"date\"],\n\tinput[type=\"datetime\"],\n\tinput[type=\"datetime-local\"],\n\tinput[type=\"email\"],\n\tinput[type=\"month\"],\n\tinput[type=\"number\"],\n\tinput[type=\"search\"],\n\tinput[type=\"tel\"],\n\tinput[type=\"time\"],\n\tinput[type=\"url\"],\n\tinput[type=\"week\"],\n\ttextarea,\n\tselect {\n\t\twidth: 100%;\n\t\tpadding: 4px 8px;\n\t\tmargin: 0;\n\t\tbox-sizing: border-box;\n\t\tfont-size: 14px;\n\t\tline-height: 1.4;\n\n\t\t// WP Admin 3.8\n\t\t@include wp-admin(\"3-8\") {\n\t\t\tpadding: 3px 5px;\n\t\t}\n\t}\n\ttextarea {\n\t\tresize: vertical;\n\t}\n}\n\n// Fix extra padding in Firefox.\nbody.acf-browser-firefox .acf-field select {\n\tpadding: 4px 5px;\n}\n\n/*-----------------------------------------------------------------------------\n*\n* Text\n*\n*-----------------------------------------------------------------------------*/\n.acf-input-prepend,\n.acf-input-append,\n.acf-input-wrap {\n\tbox-sizing: border-box;\n}\n\n.acf-input-prepend,\n.acf-input-append {\n\tfont-size: 13px;\n\tline-height: 1.4;\n\tpadding: 4px 8px;\n\tbackground: #f5f5f5;\n\tborder: $wp-input-border solid 1px;\n\tmin-height: 30px;\n\n\t// WP Admin 3.8\n\t@include wp-admin(\"3-8\") {\n\t\tpadding: 3px 5px;\n\t\tborder-color: $wp38-input-border;\n\t\tmin-height: 28px;\n\t}\n}\n\n.acf-input-prepend {\n\tfloat: left;\n\tborder-right-width: 0;\n\tborder-radius: 3px 0 0 3px;\n}\n\n.acf-input-append {\n\tfloat: right;\n\tborder-left-width: 0;\n\tborder-radius: 0 3px 3px 0;\n}\n\n.acf-input-wrap {\n\tposition: relative;\n\toverflow: hidden;\n\t.acf-is-prepended {\n\t\tborder-radius: 0 $radius-md $radius-md 0 !important;\n\t}\n\t.acf-is-appended {\n\t\tborder-radius: $radius-md 0 0 $radius-md !important;\n\t}\n\t.acf-is-prepended.acf-is-appended {\n\t\tborder-radius: 0 !important;\n\t}\n}\n\n/* rtl */\nhtml[dir=\"rtl\"] .acf-input-prepend {\n\tborder-left-width: 0;\n\tborder-right-width: 1px;\n\tborder-radius: 0 3px 3px 0;\n\n\tfloat: right;\n}\n\nhtml[dir=\"rtl\"] .acf-input-append {\n\tborder-left-width: 1px;\n\tborder-right-width: 0;\n\tborder-radius: 3px 0 0 3px;\n\tfloat: left;\n}\n\nhtml[dir=\"rtl\"] input.acf-is-prepended {\n\tborder-radius: 3px 0 0 3px !important;\n}\n\nhtml[dir=\"rtl\"] input.acf-is-appended {\n\tborder-radius: 0 3px 3px 0 !important;\n}\n\nhtml[dir=\"rtl\"] input.acf-is-prepended.acf-is-appended {\n\tborder-radius: 0 !important;\n}\n\n/*-----------------------------------------------------------------------------\n*\n* Color Picker\n*\n*-----------------------------------------------------------------------------*/\n\n.acf-color-picker {\n\t.wp-color-result {\n\t\tborder-color: $wp-input-border;\n\t\t@include wp-admin(\"3-8\") {\n\t\t\tborder-color: $wp-card-border;\n\t\t}\n\t}\n\t.wp-picker-active {\n\t\tposition: relative;\n\t\tz-index: 1;\n\t}\n}\n\n/*-----------------------------------------------------------------------------\n*\n* Url\n*\n*-----------------------------------------------------------------------------*/\n\n.acf-url {\n\ti {\n\t\tposition: absolute;\n\t\ttop: 5px;\n\t\tleft: 5px;\n\t\topacity: 0.5;\n\t\tcolor: #7e8993;\n\t}\n\n\tinput[type=\"url\"] {\n\t\tpadding-left: 27px !important;\n\t}\n\n\t&.-valid i {\n\t\topacity: 1;\n\t}\n}\n\n/*-----------------------------------------------------------------------------\n*\n* Select2 (v3)\n*\n*-----------------------------------------------------------------------------*/\n\n.select2-container.-acf {\n\tz-index: 1001;\n\t\n\t.select2-choices {\n\t\tbackground: #fff;\n\t\tborder-color: #ddd;\n\t\tbox-shadow: 0 1px 2px rgba(0, 0, 0, 0.07) inset;\n\t\tmin-height: 31px;\n\n\t\t.select2-search-choice {\n\t\t\tmargin: 5px 0 5px 5px;\n\t\t\tpadding: 3px 5px 3px 18px;\n\t\t\tborder-color: #bbb;\n\t\t\tbackground: #f9f9f9;\n\t\t\tbox-shadow: 0 1px 0 rgba(255, 255, 255, 0.25) inset;\n\n\t\t\t/* sortable item*/\n\t\t\t&.ui-sortable-helper {\n\t\t\t\tbackground: #5897fb;\n\t\t\t\tborder-color: darken(#5897fb, 5%);\n\t\t\t\tcolor: #fff !important;\n\t\t\t\tbox-shadow: 0 0 3px rgba(0, 0, 0, 0.1);\n\n\t\t\t\ta {\n\t\t\t\t\tvisibility: hidden;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t/* sortable shadow */\n\t\t\t&.ui-sortable-placeholder {\n\t\t\t\tbackground-color: #f7f7f7;\n\t\t\t\tborder-color: #f7f7f7;\n\t\t\t\tvisibility: visible !important;\n\t\t\t}\n\t\t}\n\n\t\t.select2-search-choice-focus {\n\t\t\tborder-color: #999;\n\t\t}\n\n\t\t.select2-search-field input {\n\t\t\theight: 31px;\n\t\t\tline-height: 22px;\n\t\t\tmargin: 0;\n\t\t\tpadding: 5px 5px 5px 7px;\n\t\t}\n\t}\n\n\t.select2-choice {\n\t\tborder-color: #bbbbbb;\n\n\t\t.select2-arrow {\n\t\t\tbackground: transparent;\n\t\t\tborder-left-color: #dfdfdf;\n\t\t\tpadding-left: 1px;\n\t\t}\n\n\t\t.select2-result-description {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\n\t/* open */\n\t&.select2-container-active .select2-choices,\n\t&.select2-dropdown-open .select2-choices {\n\t\tborder-color: #5b9dd9;\n\t\tborder-radius: 3px 3px 0 0;\n\t}\n\n\t/* single open */\n\t&.select2-dropdown-open .select2-choice {\n\t\tbackground: #fff;\n\t\tborder-color: #5b9dd9;\n\t}\n}\n\n/* rtl */\nhtml[dir=\"rtl\"] .select2-container.-acf {\n\t.select2-search-choice-close {\n\t\tleft: 24px;\n\t}\n\n\t.select2-choice > .select2-chosen {\n\t\tmargin-left: 42px;\n\t}\n\n\t.select2-choice .select2-arrow {\n\t\tpadding-left: 0;\n\t\tpadding-right: 1px;\n\t}\n}\n\n/* description */\n.select2-drop {\n\t/* search*/\n\t.select2-search {\n\t\tpadding: 4px 4px 0;\n\t}\n\n\t/* result */\n\t.select2-result {\n\t\t.select2-result-description {\n\t\t\tcolor: #999;\n\t\t\tfont-size: 12px;\n\t\t\tmargin-left: 5px;\n\t\t}\n\n\t\t/* hover*/\n\t\t&.select2-highlighted {\n\t\t\t.select2-result-description {\n\t\t\t\tcolor: #fff;\n\t\t\t\topacity: 0.75;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/*-----------------------------------------------------------------------------\n*\n* Select2 (v4)\n*\n*-----------------------------------------------------------------------------*/\n.select2-container.-acf {\n\t// Reset WP default style.\n\tli {\n\t\tmargin-bottom: 0;\n\t}\n\n\t// select2 4.1 specific targeting for plugin conflict resolution.\n\t&[data-select2-id^=\"select2-data\"] {\n\t\t.select2-selection--multiple {\n\t\t\toverflow: hidden;\n\t\t}\n\t}\n\n\t// Customize border color to match WP admin.\n\t.select2-selection {\n\t\tborder-color: $wp-input-border;\n\n\t\t// WP Admin 3.8\n\t\t@include wp-admin(\"3-8\") {\n\t\t\tborder-color: #aaa;\n\t\t}\n\t}\n\n\t// Multiple wrap.\n\t.select2-selection--multiple {\n\t\t// If no value, increase hidden search input full width.\n\t\t// Overrides calculated px width issues.\n\t\t.select2-search--inline:first-child {\n\t\t\tfloat: none;\n\t\t\tinput {\n\t\t\t\twidth: 100% !important;\n\t\t\t}\n\t\t}\n\n\t\t// ul: Remove padding because li already has margin-right.\n\t\t.select2-selection__rendered {\n\t\t\tpadding-right: 0;\n\t\t}\n\n\t\t// incredibly specific targeting of an ID that only gets applied in select2 4.1 to solve plugin conflicts\n\t\t.select2-selection__rendered[id^=\"select2-acf-field\"] {\n\t\t\tdisplay: inline;\n\t\t\tpadding: 0;\n\t\t\tmargin: 0;\n\n\t\t\t.select2-selection__choice {\n\t\t\t\tmargin-right: 0;\n\t\t\t}\n\t\t}\n\n\t\t// li\n\t\t.select2-selection__choice {\n\t\t\tbackground-color: #f7f7f7;\n\t\t\tborder-color: #cccccc;\n\n\t\t\t// Allow choice to wrap multiple lines.\n\t\t\tmax-width: 100%;\n\t\t\toverflow: hidden;\n\t\t\tword-wrap: normal !important;\n\t\t\twhite-space: normal;\n\n\t\t\t// Sortable.\n\t\t\t&.ui-sortable-helper {\n\t\t\t\tbackground: $blue-500;\n\t\t\t\tborder-color: $blue-600;\n\t\t\t\tcolor: #fff !important;\n\t\t\t\tbox-shadow: 0 0 3px rgba(0, 0, 0, 0.1);\n\n\t\t\t\tspan {\n\t\t\t\t\tvisibility: hidden;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Fixed for select2's 4.1 css changes when loaded by another plugin.\n\t\t\t.select2-selection__choice__remove {\n\t\t\t\tposition: static;\n\t\t\t\tborder-right: none;\n\t\t\t\tpadding: 0;\n\t\t\t}\n\n\t\t\t// Sortable shadow\n\t\t\t&.ui-sortable-placeholder {\n\t\t\t\tbackground-color: $gray-100;\n\t\t\t\tborder-color: $gray-100;\n\t\t\t\tvisibility: visible !important;\n\t\t\t}\n\t\t}\n\n\t\t// search\n\t\t.select2-search__field {\n\t\t\tbox-shadow: none !important;\n\t\t\tmin-height: 0;\n\t\t}\n\t}\n\n\t// Fix single select pushing out repeater field table width.\n\t.acf-row & .select2-selection--single {\n\t\toverflow: hidden;\n\t\t.select2-selection__rendered {\n\t\t\twhite-space: normal;\n\t\t}\n\t}\n}\n\n.acf-admin-single-field-group .select2-dropdown {\n\tborder-color: $blue-300 !important;\n\tmargin-top: -5px;\n\toverflow: hidden;\n\tbox-shadow: $elevation-01;\n}\n\n.select2-dropdown.select2-dropdown--above {\n\tmargin-top: 0;\n}\n\n.acf-admin-single-field-group .select2-container--default .select2-results__option[aria-selected=\"true\"] {\n\tbackground-color: $gray-50 !important;\n\tcolor: $gray-500;\n\n\t&:hover {\n\t\tcolor: $blue-400;\n\t}\n}\n\n.acf-admin-single-field-group .select2-container--default\n\t.select2-results__option--highlighted[aria-selected] {\n\tcolor: #fff !important;\n\tbackground-color: $blue-500 !important;\n}\n\n// remove bottom margin on options\n.select2-dropdown .select2-results__option {\n\tmargin-bottom: 0;\n}\n\n// z-index helper.\n.select2-container {\n\t.select2-dropdown {\n\t\tz-index: 900000;\n\n\t\t// Reset input height.\n\t\t.select2-search__field {\n\t\t\tline-height: 1.4;\n\t\t\tmin-height: 0;\n\t\t}\n\t}\n}\n\n/*-----------------------------------------------------------------------------\n*\n* Link\n*\n*-----------------------------------------------------------------------------*/\n\n.acf-link {\n\t.link-wrap {\n\t\tdisplay: none;\n\t\tborder: $wp-card-border solid 1px;\n\t\tborder-radius: 3px;\n\t\tpadding: 5px;\n\t\tline-height: 26px;\n\t\tbackground: #fff;\n\n\t\tword-wrap: break-word;\n\t\tword-break: break-all;\n\n\t\t.link-title {\n\t\t\tpadding: 0 5px;\n\t\t}\n\t}\n\n\t// Has value.\n\t&.-value {\n\t\t.button {\n\t\t\tdisplay: none;\n\t\t}\n\t\t.acf-icon.-link-ext {\n\t\t\tdisplay: none;\n\t\t}\n\t\t.link-wrap {\n\t\t\tdisplay: inline-block;\n\t\t}\n\t}\n\n\t// Is external.\n\t&.-external {\n\t\t.acf-icon.-link-ext {\n\t\t\tdisplay: inline-block;\n\t\t}\n\t}\n}\n\n#wp-link-backdrop {\n\tz-index: 900000 !important;\n}\n#wp-link-wrap {\n\tz-index: 900001 !important;\n}\n\n/*-----------------------------------------------------------------------------\n*\n* Radio\n*\n*-----------------------------------------------------------------------------*/\n\nul.acf-radio-list,\nul.acf-checkbox-list {\n\tbackground: transparent;\n\tborder: 1px solid transparent;\n\tposition: relative;\n\tpadding: 1px;\n\tmargin: 0;\n\n\t&:focus-within {\n\t\tborder: 1px solid $blue-200;\n\t\tborder-radius: $radius-md;\n\t}\n\n\tli {\n\t\tfont-size: 13px;\n\t\tline-height: 22px;\n\t\tmargin: 0;\n\t\tposition: relative;\n\t\tword-wrap: break-word;\n\n\t\tlabel {\n\t\t\tdisplay: inline;\n\t\t}\n\n\t\tinput[type=\"checkbox\"],\n\t\tinput[type=\"radio\"] {\n\t\t\tmargin: -1px 4px 0 0;\n\t\t\tvertical-align: middle;\n\t\t}\n\n\t\tinput[type=\"text\"] {\n\t\t\twidth: auto;\n\t\t\tvertical-align: middle;\n\t\t\tmargin: 2px 0;\n\t\t}\n\n\t\t/* attachment sidebar fix*/\n\t\tspan {\n\t\t\tfloat: none;\n\t\t}\n\n\t\ti {\n\t\t\tvertical-align: middle;\n\t\t}\n\t}\n\n\t/* hl */\n\t&.acf-hl {\n\t\tli {\n\t\t\tmargin-right: 20px;\n\t\t\tclear: none;\n\t\t}\n\t}\n\n\t/* rtl */\n\thtml[dir=\"rtl\"] & {\n\t\tinput[type=\"checkbox\"],\n\t\tinput[type=\"radio\"] {\n\t\t\tmargin-left: 4px;\n\t\t\tmargin-right: 0;\n\t\t}\n\t}\n}\n\n/*-----------------------------------------------------------------------------\n*\n* Button Group\n*\n*-----------------------------------------------------------------------------*/\n\n.acf-button-group {\n\tdisplay: inline-block;\n\n\tlabel {\n\t\tdisplay: inline-block;\n\t\tborder: $wp-input-border solid 1px;\n\t\tposition: relative;\n\t\tz-index: 1;\n\t\tpadding: 5px 10px;\n\t\tbackground: #fff;\n\n\t\t&:hover {\n\t\t\tcolor: #016087;\n\t\t\tbackground: #f3f5f6;\n\t\t\tborder-color: #0071a1;\n\t\t\tz-index: 2;\n\t\t}\n\n\t\t&.selected {\n\t\t\tborder-color: #007cba;\n\t\t\tbackground: lighten(#007cba, 5%);\n\t\t\tcolor: #fff;\n\t\t\tz-index: 2;\n\t\t}\n\t}\n\n\tinput {\n\t\tdisplay: none !important;\n\t}\n\n\t/* default (horizontal) */\n\t& {\n\t\tpadding-left: 1px;\n\t\tdisplay: inline-flex;\n\t\tflex-direction: row;\n\t\tflex-wrap: nowrap;\n\n\t\tlabel {\n\t\t\tmargin: 0 0 0 -1px;\n\t\t\tflex: 1;\n\t\t\ttext-align: center;\n\t\t\twhite-space: nowrap;\n\n\t\t\t// corners\n\t\t\t&:first-child {\n\t\t\t\tborder-radius: 3px 0 0 3px;\n\t\t\t\thtml[dir=\"rtl\"] & {\n\t\t\t\t\tborder-radius: 0 3px 3px 0;\n\t\t\t\t}\n\t\t\t}\n\t\t\t&:last-child {\n\t\t\t\tborder-radius: 0 3px 3px 0;\n\t\t\t\thtml[dir=\"rtl\"] & {\n\t\t\t\t\tborder-radius: 3px 0 0 3px;\n\t\t\t\t}\n\t\t\t}\n\t\t\t&:only-child {\n\t\t\t\tborder-radius: 3px;\n\t\t\t}\n\t\t}\n\t}\n\n\t/* vertical */\n\t&.-vertical {\n\t\tpadding-left: 0;\n\t\tpadding-top: 1px;\n\t\tflex-direction: column;\n\n\t\tlabel {\n\t\t\tmargin: -1px 0 0 0;\n\n\t\t\t// corners\n\t\t\t&:first-child {\n\t\t\t\tborder-radius: 3px 3px 0 0;\n\t\t\t}\n\t\t\t&:last-child {\n\t\t\t\tborder-radius: 0 0 3px 3px;\n\t\t\t}\n\t\t\t&:only-child {\n\t\t\t\tborder-radius: 3px;\n\t\t\t}\n\t\t}\n\t}\n\n\t// WP Admin 3.8\n\t@include wp-admin(\"3-8\") {\n\t\tlabel {\n\t\t\tborder-color: $wp-card-border;\n\t\t\t&:hover {\n\t\t\t\tborder-color: #0071a1;\n\t\t\t}\n\t\t\t&.selected {\n\t\t\t\tborder-color: #007cba;\n\t\t\t}\n\t\t}\n\t}\n}\n\n.acf-admin-page {\n\t.acf-button-group {\n\t\tdisplay: flex;\n\t\talign-items: stretch;\n\t\talign-content: center;\n\t\theight: 40px;\n\t\tborder-radius: $radius-md;\n\t\tbox-shadow: $elevation-01;\n\n\t\tlabel {\n\t\t\tdisplay: inline-flex;\n\t\t\talign-items: center;\n\t\t\talign-content: center;\n\t\t\tborder: $gray-300 solid 1px;\n\t\t\tpadding: 6px 16px;\n\t\t\tcolor: $gray-600;\n\t\t\tfont-weight: 500;\n\n\t\t\t&:hover {\n\t\t\t\tcolor: $color-primary;\n\t\t\t}\n\n\t\t\t&.selected {\n\t\t\t\tbackground: $gray-50;\n\t\t\t\tcolor: $color-primary;\n\t\t\t}\n\t\t}\n\t}\n\n\t.select2-container.-acf {\n\t\t.select2-selection--multiple {\n\t\t\t.select2-selection__choice {\n\t\t\t\tdisplay: inline-flex;\n\t\t\t\talign-items: center;\n\t\t\t\tmargin: {\n\t\t\t\t\ttop: 8px;\n\t\t\t\t\tleft: 2px;\n\t\t\t\t};\n\t\t\t\tposition: relative;\n\t\t\t\tpadding: {\n\t\t\t\t\ttop: 4px;\n\t\t\t\t\tright: auto;\n\t\t\t\t\tbottom: 4px;\n\t\t\t\t\tleft: 8px;\n\t\t\t\t}\n\t\t\t\tbackground-color: $blue-50;\n\t\t\t\tborder-color: $blue-200;\n\t\t\t\tcolor: $blue-500;\n\n\t\t\t\t.select2-selection__choice__remove {\n\t\t\t\t\torder: 2;\n\t\t\t\t\twidth: 14px;\n\t\t\t\t\theight: 14px;\n\t\t\t\t\tmargin: {\n\t\t\t\t\t\tright: 0;\n\t\t\t\t\t\tleft: 4px;\n\t\t\t\t\t}\n\t\t\t\t\tcolor: $blue-300;\n\t\t\t\t\ttext-indent: 100%;\n\t\t\t\t\twhite-space: nowrap;\n\t\t\t\t\toverflow: hidden;\n\n\t\t\t\t\t&:hover {\n\t\t\t\t\t\tcolor: $blue-500;\n\t\t\t\t\t}\n\n\t\t\t\t\t&:before {\n\t\t\t\t\t\tcontent: \"\";\n\t\t\t\t\t\t$icon-size: 14px;\n\t\t\t\t\t\tdisplay: block;\n\t\t\t\t\t\twidth: $icon-size;\n\t\t\t\t\t\theight: $icon-size;\n\t\t\t\t\t\ttop: 0;\n\t\t\t\t\t\tleft: 0;\n\t\t\t\t\t\tbackground-color: currentColor;\n\t\t\t\t\t\tborder: none;\n\t\t\t\t\t\tborder-radius: 0;\n\t\t\t\t\t\t-webkit-mask-size: contain;\n\t\t\t\t\t\tmask-size: contain;\n\t\t\t\t\t\t-webkit-mask-repeat: no-repeat;\n\t\t\t\t\t\tmask-repeat: no-repeat;\n\t\t\t\t\t\t-webkit-mask-position: center;\n\t\t\t\t\t\tmask-position: center;\n\t\t\t\t\t\t-webkit-mask-image: url(\"../../images/icons/icon-close.svg\");\n\t\t\t\t\t\tmask-image: url(\"../../images/icons/icon-close.svg\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n/*-----------------------------------------------------------------------------\n*\n* Checkbox\n*\n*-----------------------------------------------------------------------------*/\n\n.acf-checkbox-list {\n\t.button {\n\t\tmargin: 10px 0 0;\n\t}\n}\n\n/*-----------------------------------------------------------------------------\n*\n* True / False\n*\n*-----------------------------------------------------------------------------*/\n.acf-switch {\n\tdisplay: inline-block;\n\tborder-radius: 5px;\n\tcursor: pointer;\n\tposition: relative;\n\tbackground: #f5f5f5;\n\theight: 30px;\n\tvertical-align: middle;\n\tborder: $wp-input-border solid 1px;\n\n\t-webkit-transition: background 0.25s ease;\n\t-moz-transition: background 0.25s ease;\n\t-o-transition: background 0.25s ease;\n\ttransition: background 0.25s ease;\n\n\tspan {\n\t\tdisplay: inline-block;\n\t\tfloat: left;\n\t\ttext-align: center;\n\n\t\tfont-size: 13px;\n\t\tline-height: 22px;\n\n\t\tpadding: 4px 10px;\n\t\tmin-width: 15px;\n\n\t\ti {\n\t\t\tvertical-align: middle;\n\t\t}\n\t}\n\n\t.acf-switch-on {\n\t\tcolor: #fff;\n\t\ttext-shadow: #007cba 0 1px 0;\n\t}\n\n\t.acf-switch-off {\n\t}\n\n\t.acf-switch-slider {\n\t\tposition: absolute;\n\t\ttop: 2px;\n\t\tleft: 2px;\n\t\tbottom: 2px;\n\t\tright: 50%;\n\t\tz-index: 1;\n\t\tbackground: #fff;\n\t\tborder-radius: 3px;\n\t\tborder: $wp-input-border solid 1px;\n\n\t\t-webkit-transition: all 0.25s ease;\n\t\t-moz-transition: all 0.25s ease;\n\t\t-o-transition: all 0.25s ease;\n\t\ttransition: all 0.25s ease;\n\n\t\ttransition-property: left, right;\n\t}\n\n\t/* hover */\n\t&:hover,\n\t&.-focus {\n\t\tborder-color: #0071a1;\n\t\tbackground: #f3f5f6;\n\t\tcolor: #016087;\n\t\t.acf-switch-slider {\n\t\t\tborder-color: #0071a1;\n\t\t}\n\t}\n\n\t/* active */\n\t&.-on {\n\t\tbackground: #0d99d5;\n\t\tborder-color: #007cba;\n\n\t\t.acf-switch-slider {\n\t\t\tleft: 50%;\n\t\t\tright: 2px;\n\t\t\tborder-color: #007cba;\n\t\t}\n\n\t\t/* hover */\n\t\t&:hover {\n\t\t\tborder-color: #007cba;\n\t\t}\n\t}\n\n\t/* message */\n\t+ span {\n\t\tmargin-left: 6px;\n\t}\n\n\t// WP Admin 3.8\n\t@include wp-admin(\"3-8\") {\n\t\tborder-color: $wp-card-border;\n\t\t.acf-switch-slider {\n\t\t\tborder-color: $wp-card-border;\n\t\t}\n\n\t\t&:hover,\n\t\t&.-focus {\n\t\t\tborder-color: #0071a1;\n\t\t\t.acf-switch-slider {\n\t\t\t\tborder-color: #0071a1;\n\t\t\t}\n\t\t}\n\n\t\t&.-on {\n\t\t\tborder-color: #007cba;\n\t\t\t.acf-switch-slider {\n\t\t\t\tborder-color: #007cba;\n\t\t\t}\n\t\t\t&:hover {\n\t\t\t\tborder-color: #007cba;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/* checkbox */\n.acf-switch-input {\n\topacity: 0;\n\tposition: absolute;\n\tmargin: 0;\n}\n\n.acf-admin-single-field-group .acf-true-false {\n\tborder: 1px solid transparent;\n\n\t&:focus-within {\n\t\tborder: 1px solid $blue-400;\n\t\tborder-radius: 120px;\n\t}\n}\n\n/* in media modal */\n.compat-item .acf-true-false {\n\t.message {\n\t\tfloat: none;\n\t\tpadding: 0;\n\t\tvertical-align: middle;\n\t}\n}\n\n/*--------------------------------------------------------------------------\n*\n*\tGoogle Map\n*\n*-------------------------------------------------------------------------*/\n\n.acf-google-map {\n\tposition: relative;\n\tborder: $wp-card-border solid 1px;\n\tbackground: #fff;\n\n\t.title {\n\t\tposition: relative;\n\t\tborder-bottom: $wp-card-border solid 1px;\n\n\t\t.search {\n\t\t\tmargin: 0;\n\t\t\tfont-size: 14px;\n\t\t\tline-height: 30px;\n\t\t\theight: 40px;\n\t\t\tpadding: 5px 10px;\n\t\t\tborder: 0 none;\n\t\t\tbox-shadow: none;\n\t\t\tborder-radius: 0;\n\t\t\tfont-family: inherit;\n\t\t\tcursor: text;\n\t\t}\n\n\t\t.acf-loading {\n\t\t\tposition: absolute;\n\t\t\ttop: 10px;\n\t\t\tright: 11px;\n\t\t\tdisplay: none;\n\t\t}\n\n\t\t// Avoid icons disapearing when click/blur events conflict.\n\t\t.acf-icon:active {\n\t\t\tdisplay: inline-block !important;\n\t\t}\n\t}\n\n\t.canvas {\n\t\theight: 400px;\n\t}\n\n\t// Show actions on hover.\n\t&:hover .title .acf-actions {\n\t\tdisplay: block;\n\t}\n\n\t// Default state (show locate, hide search and cancel).\n\t.title {\n\t\t.acf-icon.-location {\n\t\t\tdisplay: inline-block;\n\t\t}\n\t\t.acf-icon.-cancel,\n\t\t.acf-icon.-search {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\n\t// Has value (hide locate, show cancel).\n\t&.-value .title {\n\t\t.search {\n\t\t\tfont-weight: bold;\n\t\t}\n\t\t.acf-icon.-location {\n\t\t\tdisplay: none;\n\t\t}\n\t\t.acf-icon.-cancel {\n\t\t\tdisplay: inline-block;\n\t\t}\n\t}\n\n\t// Is searching (hide locate, show search and cancel).\n\t&.-searching .title {\n\t\t.acf-icon.-location {\n\t\t\tdisplay: none;\n\t\t}\n\t\t.acf-icon.-cancel,\n\t\t.acf-icon.-search {\n\t\t\tdisplay: inline-block;\n\t\t}\n\n\t\t// Show actions.\n\t\t.acf-actions {\n\t\t\tdisplay: block;\n\t\t}\n\n\t\t// Change search font-weght.\n\t\t.search {\n\t\t\tfont-weight: normal !important;\n\t\t}\n\t}\n\n\t// Loading.\n\t&.-loading .title {\n\t\ta {\n\t\t\tdisplay: none !important;\n\t\t}\n\t\ti {\n\t\t\tdisplay: inline-block;\n\t\t}\n\t}\n}\n\n/* autocomplete */\n.pac-container {\n\tborder-width: 1px 0;\n\tbox-shadow: none;\n}\n\n.pac-container:after {\n\tdisplay: none;\n}\n\n.pac-container .pac-item:first-child {\n\tborder-top: 0 none;\n}\n.pac-container .pac-item {\n\tpadding: 5px 10px;\n\tcursor: pointer;\n}\n\nhtml[dir=\"rtl\"] .pac-container .pac-item {\n\ttext-align: right;\n}\n\n/*--------------------------------------------------------------------------\n*\n*\tRelationship\n*\n*-------------------------------------------------------------------------*/\n\n.acf-relationship {\n\tbackground: #fff;\n\tborder: $wp-card-border solid 1px;\n\n\t// Filters.\n\t.filters {\n\t\t@include clearfix();\n\t\tborder-bottom: $wp-card-border solid 1px;\n\t\tbackground: #fff;\n\n\t\t.filter {\n\t\t\tmargin: 0;\n\t\t\tpadding: 0;\n\t\t\tfloat: left;\n\t\t\twidth: 100%;\n\t\t\tbox-sizing: border-box;\n\t\t\tpadding: 7px 7px 7px 0;\n\t\t\t&:first-child {\n\t\t\t\tpadding-left: 7px;\n\t\t\t}\n\n\t\t\t// inputs\n\t\t\tinput,\n\t\t\tselect {\n\t\t\t\tmargin: 0;\n\t\t\t\tfloat: none; /* potential fix for media popup? */\n\n\t\t\t\t&:focus,\n\t\t\t\t&:active {\n\t\t\t\t\toutline: none;\n\t\t\t\t\tbox-shadow: none;\n\t\t\t\t}\n\t\t\t}\n\t\t\tinput {\n\t\t\t\tborder-color: transparent;\n\t\t\t\tbox-shadow: none;\n\t\t\t\tpadding-left: 3px;\n\t\t\t\tpadding-right: 3px;\n\t\t\t}\n\t\t}\n\n\t\t/* widths */\n\t\t&.-f2 {\n\t\t\t.filter {\n\t\t\t\twidth: 50%;\n\t\t\t}\n\t\t}\n\t\t&.-f3 {\n\t\t\t.filter {\n\t\t\t\twidth: 25%;\n\t\t\t}\n\t\t\t.filter.-search {\n\t\t\t\twidth: 50%;\n\t\t\t}\n\t\t}\n\t}\n\n\t/* list */\n\t.list {\n\t\tmargin: 0;\n\t\tpadding: 5px;\n\t\theight: 160px;\n\t\toverflow: auto;\n\n\t\t.acf-rel-label,\n\t\t.acf-rel-item,\n\t\tp {\n\t\t\tpadding: 5px;\n\t\t\tmargin: 0;\n\t\t\tdisplay: block;\n\t\t\tposition: relative;\n\t\t\tmin-height: 18px;\n\t\t}\n\n\t\t.acf-rel-label {\n\t\t\tfont-weight: bold;\n\t\t}\n\n\t\t.acf-rel-item {\n\t\t\tcursor: pointer;\n\n\t\t\tb {\n\t\t\t\ttext-decoration: underline;\n\t\t\t\tfont-weight: normal;\n\t\t\t}\n\n\t\t\t.thumbnail {\n\t\t\t\tbackground: darken(#f9f9f9, 10%);\n\t\t\t\twidth: 22px;\n\t\t\t\theight: 22px;\n\t\t\t\tfloat: left;\n\t\t\t\tmargin: -2px 5px 0 0;\n\n\t\t\t\timg {\n\t\t\t\t\tmax-width: 22px;\n\t\t\t\t\tmax-height: 22px;\n\t\t\t\t\tmargin: 0 auto;\n\t\t\t\t\tdisplay: block;\n\t\t\t\t}\n\n\t\t\t\t&.-icon {\n\t\t\t\t\tbackground: #fff;\n\n\t\t\t\t\timg {\n\t\t\t\t\t\tmax-height: 20px;\n\t\t\t\t\t\tmargin-top: 1px;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t/* hover */\n\t\t\t&:hover {\n\t\t\t\tbackground: #3875d7;\n\t\t\t\tcolor: #fff;\n\n\t\t\t\t.thumbnail {\n\t\t\t\t\tbackground: lighten(#3875d7, 25%);\n\n\t\t\t\t\t&.-icon {\n\t\t\t\t\t\tbackground: #fff;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t/* disabled */\n\t\t\t&.disabled {\n\t\t\t\topacity: 0.5;\n\n\t\t\t\t&:hover {\n\t\t\t\t\tbackground: transparent;\n\t\t\t\t\tcolor: #333;\n\t\t\t\t\tcursor: default;\n\n\t\t\t\t\t.thumbnail {\n\t\t\t\t\t\tbackground: darken(#f9f9f9, 10%);\n\n\t\t\t\t\t\t&.-icon {\n\t\t\t\t\t\t\tbackground: #fff;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tul {\n\t\t\tpadding-bottom: 5px;\n\n\t\t\t.acf-rel-label,\n\t\t\t.acf-rel-item,\n\t\t\tp {\n\t\t\t\tpadding-left: 20px;\n\t\t\t}\n\t\t}\n\t}\n\n\t/* selection (bottom) */\n\t.selection {\n\t\t@include clearfix();\n\t\tposition: relative;\n\n\t\t.values,\n\t\t.choices {\n\t\t\twidth: 50%;\n\t\t\tbackground: #fff;\n\t\t\tfloat: left;\n\t\t}\n\n\t\t/* choices */\n\t\t.choices {\n\t\t\tbackground: #f9f9f9;\n\n\t\t\t.list {\n\t\t\t\tborder-right: #dfdfdf solid 1px;\n\t\t\t}\n\t\t}\n\n\t\t/* values */\n\t\t.values {\n\t\t\t.acf-icon {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 4px;\n\t\t\t\tright: 7px;\n\t\t\t\tdisplay: none;\n\n\t\t\t\t/* rtl */\n\t\t\t\thtml[dir=\"rtl\"] & {\n\t\t\t\t\tright: auto;\n\t\t\t\t\tleft: 7px;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t.acf-rel-item:hover .acf-icon {\n\t\t\t\tdisplay: block;\n\t\t\t}\n\n\t\t\t.acf-rel-item {\n\t\t\t\tcursor: move;\n\n\t\t\t\tb {\n\t\t\t\t\ttext-decoration: none;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n/* menu item fix */\n.menu-item {\n\t.acf-relationship {\n\t\tul {\n\t\t\twidth: auto;\n\t\t}\n\n\t\tli {\n\t\t\tdisplay: block;\n\t\t}\n\t}\n}\n\n/*--------------------------------------------------------------------------\n*\n*\tWYSIWYG\n*\n*-------------------------------------------------------------------------*/\n\n.acf-editor-wrap {\n\t// Delay.\n\t&.delay {\n\t\t.acf-editor-toolbar {\n\t\t\tcontent: \"\";\n\t\t\tdisplay: block;\n\t\t\tbackground: #f5f5f5;\n\t\t\tborder-bottom: #dddddd solid 1px;\n\t\t\tcolor: #555d66;\n\t\t\tpadding: 10px;\n\t\t}\n\n\t\t.wp-editor-area {\n\t\t\tpadding: 10px;\n\t\t\tborder: none;\n\t\t\tcolor: inherit !important; // Fixes white text bug.\n\t\t}\n\t}\n\n\tiframe {\n\t\tmin-height: 200px;\n\t}\n\n\t.wp-editor-container {\n\t\tborder: 1px solid $wp-card-border;\n\t\tbox-shadow: none !important;\n\t}\n\n\t.wp-editor-tabs {\n\t\tbox-sizing: content-box;\n\t}\n\n\t.wp-switch-editor {\n\t\tborder-color: $wp-card-border;\n\t\tborder-bottom-color: transparent;\n\t}\n}\n\n// Full Screen Mode.\n#mce_fullscreen_container {\n\tz-index: 900000 !important;\n}\n\n/*-----------------------------------------------------------------------------\n*\n*\tTab\n*\n*-----------------------------------------------------------------------------*/\n\n.acf-field-tab {\n\tdisplay: none !important;\n}\n\n// class to hide fields\n.hidden-by-tab {\n\tdisplay: none !important;\n}\n\n// ensure floating fields do not disturb tab wrap\n.acf-tab-wrap {\n\tclear: both;\n\tz-index: 1;\n}\n\n// tab group\n.acf-tab-group {\n\tborder-bottom: #ccc solid 1px;\n\tpadding: 10px 10px 0;\n\n\tli {\n\t\tmargin: 0 0.5em 0 0;\n\n\t\ta {\n\t\t\tpadding: 5px 10px;\n\t\t\tdisplay: block;\n\n\t\t\tcolor: #555;\n\t\t\tfont-size: 14px;\n\t\t\tfont-weight: 600;\n\t\t\tline-height: 24px;\n\n\t\t\tborder: #ccc solid 1px;\n\t\t\tborder-bottom: 0 none;\n\t\t\ttext-decoration: none;\n\t\t\tbackground: #e5e5e5;\n\t\t\ttransition: none;\n\n\t\t\t&:hover {\n\t\t\t\tbackground: #fff;\n\t\t\t}\n\n\t\t\t&:focus {\n\t\t\t\toutline: none;\n\t\t\t\tbox-shadow: none;\n\t\t\t}\n\n\t\t\t&:empty {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t}\n\n\t\t// rtl\n\t\thtml[dir=\"rtl\"] & {\n\t\t\tmargin: 0 0 0 0.5em;\n\t\t}\n\n\t\t// active\n\t\t&.active a {\n\t\t\tbackground: #f1f1f1;\n\t\t\tcolor: #000;\n\t\t\tpadding-bottom: 6px;\n\t\t\tmargin-bottom: -1px;\n\t\t\tposition: relative;\n\t\t\tz-index: 1;\n\t\t}\n\t}\n}\n\n// inside acf-fields\n.acf-fields > .acf-tab-wrap {\n\tbackground: #f9f9f9;\n\n\t// group\n\t.acf-tab-group {\n\t\tposition: relative;\n\t\tborder-top: $wp-card-border solid 1px;\n\t\tborder-bottom: $wp-card-border solid 1px;\n\n\t\t// Pull next element (field) up and underneith.\n\t\tz-index: 2;\n\t\tmargin-bottom: -1px;\n\n\t\t// \t\tli a {\n\t\t// \t\t\tbackground: #f1f1f1;\n\t\t// \t\t\tborder-color: $wp-card-border;\n\t\t//\n\t\t// \t\t\t&:hover {\n\t\t// \t\t\t\tbackground: #FFF;\n\t\t// \t\t\t}\n\t\t// \t\t}\n\t\t//\n\t\t// \t\tli.active a {\n\t\t// \t\t\tbackground: #FFFFFF;\n\t\t// \t\t}\n\n\t\t// WP Admin 3.8\n\t\t@include wp-admin(\"3-8\") {\n\t\t\tborder-color: $wp38-card-border-1;\n\t\t}\n\t}\n\n\t// first child\n\t// fixes issue causing double border-top due to WP postbox .handlediv\n\t// &:first-child .acf-tab-group {\n\t// \tborder-top: none;\n\t// }\n}\n\n// inside acf-fields.-left\n.acf-fields.-left > .acf-tab-wrap {\n\t// group\n\t.acf-tab-group {\n\t\tpadding-left: 20%;\n\n\t\t/* mobile */\n\t\t@media screen and (max-width: $sm) {\n\t\t\tpadding-left: 10px;\n\t\t}\n\n\t\t/* rtl */\n\t\thtml[dir=\"rtl\"] & {\n\t\t\tpadding-left: 0;\n\t\t\tpadding-right: 20%;\n\n\t\t\t/* mobile */\n\t\t\t@media screen and (max-width: 850px) {\n\t\t\t\tpadding-right: 10px;\n\t\t\t}\n\t\t}\n\t}\n}\n\n// left\n.acf-tab-wrap.-left {\n\t// group\n\t.acf-tab-group {\n\t\tposition: absolute;\n\t\tleft: 0;\n\t\twidth: 20%;\n\t\tborder: 0 none;\n\t\tpadding: 0 !important; /* important overrides 'left aligned labels' */\n\t\tmargin: 1px 0 0;\n\n\t\t// li\n\t\tli {\n\t\t\tfloat: none;\n\t\t\tmargin: -1px 0 0;\n\n\t\t\ta {\n\t\t\t\tborder: 1px solid #ededed;\n\t\t\t\tfont-size: 13px;\n\t\t\t\tline-height: 18px;\n\t\t\t\tcolor: #0073aa;\n\t\t\t\tpadding: 10px;\n\t\t\t\tmargin: 0;\n\t\t\t\tfont-weight: normal;\n\t\t\t\tborder-width: 1px 0;\n\t\t\t\tborder-radius: 0;\n\t\t\t\tbackground: transparent;\n\n\t\t\t\t&:hover {\n\t\t\t\t\tcolor: #00a0d2;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t&.active a {\n\t\t\t\tborder-color: #dfdfdf;\n\t\t\t\tcolor: #000;\n\t\t\t\tmargin-right: -1px;\n\t\t\t\tbackground: #fff;\n\t\t\t}\n\t\t}\n\n\t\t// rtl\n\t\thtml[dir=\"rtl\"] & {\n\t\t\tleft: auto;\n\t\t\tright: 0;\n\n\t\t\tli.active a {\n\t\t\t\tmargin-right: 0;\n\t\t\t\tmargin-left: -1px;\n\t\t\t}\n\t\t}\n\t}\n\n\t// space before field\n\t.acf-field + &:before {\n\t\tcontent: \"\";\n\t\tdisplay: block;\n\t\tposition: relative;\n\t\tz-index: 1;\n\t\theight: 10px;\n\t\tborder-top: #dfdfdf solid 1px;\n\t\tborder-bottom: #dfdfdf solid 1px;\n\t\tmargin-bottom: -1px;\n\t}\n\n\t// first child has negative margin issues\n\t&:first-child {\n\t\t.acf-tab-group {\n\t\t\tli:first-child a {\n\t\t\t\tborder-top: none;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/* sidebar */\n.acf-fields.-sidebar {\n\tpadding: 0 0 0 20% !important;\n\tposition: relative;\n\n\t/* before */\n\t&:before {\n\t\tcontent: \"\";\n\t\tdisplay: block;\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tleft: 0;\n\t\twidth: 20%;\n\t\tbottom: 0;\n\t\tborder-right: #dfdfdf solid 1px;\n\t\tbackground: #f9f9f9;\n\t\tz-index: 1;\n\t}\n\n\t/* rtl */\n\thtml[dir=\"rtl\"] & {\n\t\tpadding: 0 20% 0 0 !important;\n\n\t\t&:before {\n\t\t\tborder-left: #dfdfdf solid 1px;\n\t\t\tborder-right-width: 0;\n\t\t\tleft: auto;\n\t\t\tright: 0;\n\t\t}\n\t}\n\n\t// left\n\t&.-left {\n\t\tpadding: 0 0 0 180px !important;\n\n\t\t/* rtl */\n\t\thtml[dir=\"rtl\"] & {\n\t\t\tpadding: 0 180px 0 0 !important;\n\t\t}\n\n\t\t&:before {\n\t\t\tbackground: #f1f1f1;\n\t\t\tborder-color: #dfdfdf;\n\t\t\twidth: 180px;\n\t\t}\n\n\t\t> .acf-tab-wrap.-left .acf-tab-group {\n\t\t\twidth: 180px;\n\n\t\t\tli a {\n\t\t\t\tborder-color: #e4e4e4;\n\t\t\t}\n\n\t\t\tli.active a {\n\t\t\t\tbackground: #f9f9f9;\n\t\t\t}\n\t\t}\n\t}\n\n\t// fix double border\n\t> .acf-field-tab + .acf-field {\n\t\tborder-top: none;\n\t}\n}\n\n// clear\n.acf-fields.-clear > .acf-tab-wrap {\n\tbackground: transparent;\n\n\t// group\n\t.acf-tab-group {\n\t\tmargin-top: 0;\n\t\tborder-top: none;\n\t\tpadding-left: 0;\n\t\tpadding-right: 0;\n\n\t\tli a {\n\t\t\tbackground: #e5e5e5;\n\n\t\t\t&:hover {\n\t\t\t\tbackground: #fff;\n\t\t\t}\n\t\t}\n\n\t\tli.active a {\n\t\t\tbackground: #f1f1f1;\n\t\t}\n\t}\n}\n\n/* seamless */\n.acf-postbox.seamless {\n\t// sidebar\n\t> .acf-fields.-sidebar {\n\t\tmargin-left: 0 !important;\n\n\t\t&:before {\n\t\t\tbackground: transparent;\n\t\t}\n\t}\n\n\t// default\n\t> .acf-fields > .acf-tab-wrap {\n\t\tbackground: transparent;\n\t\tmargin-bottom: 10px;\n\t\tpadding-left: $fx;\n\t\tpadding-right: $fx;\n\n\t\t.acf-tab-group {\n\t\t\tborder-top: 0 none;\n\t\t\tborder-color: $wp-card-border;\n\n\t\t\tli a {\n\t\t\t\tbackground: #e5e5e5;\n\t\t\t\tborder-color: $wp-card-border;\n\n\t\t\t\t&:hover {\n\t\t\t\t\tbackground: #fff;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tli.active a {\n\t\t\t\tbackground: #f1f1f1;\n\t\t\t}\n\t\t}\n\t}\n\n\t// left tabs\n\t> .acf-fields > .acf-tab-wrap.-left {\n\t\t&:before {\n\t\t\tborder-top: none;\n\t\t\theight: auto;\n\t\t}\n\n\t\t.acf-tab-group {\n\t\t\tmargin-bottom: 0;\n\n\t\t\tli a {\n\t\t\t\tborder-width: 1px 0 1px 1px !important;\n\t\t\t\tborder-color: #cccccc;\n\t\t\t\tbackground: #e5e5e5;\n\t\t\t}\n\n\t\t\tli.active a {\n\t\t\t\tbackground: #f1f1f1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n// menu\n.menu-edit,\n.widget {\n\t.acf-fields.-clear > .acf-tab-wrap .acf-tab-group li {\n\t\ta {\n\t\t\tbackground: #f1f1f1;\n\t\t}\n\t\ta:hover,\n\t\t&.active a {\n\t\t\tbackground: #fff;\n\t\t}\n\t}\n}\n\n.compat-item .acf-tab-wrap td {\n\tdisplay: block;\n}\n\n/* within gallery sidebar */\n.acf-gallery-side .acf-tab-wrap {\n\tborder-top: 0 none !important;\n}\n\n.acf-gallery-side .acf-tab-wrap .acf-tab-group {\n\tmargin: 10px 0 !important;\n\tpadding: 0 !important;\n}\n\n.acf-gallery-side .acf-tab-group li.active a {\n\tbackground: #f9f9f9 !important;\n}\n\n/* withing widget */\n.widget .acf-tab-group {\n\tborder-bottom-color: #e8e8e8;\n}\n\n.widget .acf-tab-group li a {\n\tbackground: #f1f1f1;\n}\n\n.widget .acf-tab-group li.active a {\n\tbackground: #fff;\n}\n\n/* media popup (edit image) */\n.media-modal.acf-expanded\n\t.compat-attachment-fields\n\t> tbody\n\t> tr.acf-tab-wrap\n\t.acf-tab-group {\n\tpadding-left: 23%;\n\tborder-bottom-color: #dddddd;\n}\n\n/* table */\n\n.form-table > tbody > tr.acf-tab-wrap .acf-tab-group {\n\tpadding: 0 5px 0 210px;\n}\n\n/* rtl */\nhtml[dir=\"rtl\"] .form-table > tbody > tr.acf-tab-wrap .acf-tab-group {\n\tpadding: 0 210px 0 5px;\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\toembed\n*\n*--------------------------------------------------------------------------------------------*/\n\n.acf-oembed {\n\tposition: relative;\n\tborder: $wp-card-border solid 1px;\n\tbackground: #fff;\n\n\t.title {\n\t\tposition: relative;\n\t\tborder-bottom: $wp-card-border solid 1px;\n\t\tpadding: 5px 10px;\n\n\t\t.input-search {\n\t\t\tmargin: 0;\n\t\t\tfont-size: 14px;\n\t\t\tline-height: 30px;\n\t\t\theight: 30px;\n\t\t\tpadding: 0;\n\t\t\tborder: 0 none;\n\t\t\tbox-shadow: none;\n\t\t\tborder-radius: 0;\n\t\t\tfont-family: inherit;\n\t\t\tcursor: text;\n\t\t}\n\n\t\t.acf-actions {\n\t\t\tpadding: 6px;\n\t\t}\n\t}\n\n\t.canvas {\n\t\tposition: relative;\n\t\tmin-height: 250px;\n\t\tbackground: #f9f9f9;\n\n\t\t.canvas-media {\n\t\t\tposition: relative;\n\t\t\tz-index: 1;\n\t\t}\n\n\t\tiframe {\n\t\t\tdisplay: block;\n\t\t\tmargin: 0;\n\t\t\tpadding: 0;\n\t\t\twidth: 100%;\n\t\t}\n\n\t\t.acf-icon.-picture {\n\t\t\t@include centered();\n\t\t\tz-index: 0;\n\n\t\t\theight: 42px;\n\t\t\twidth: 42px;\n\t\t\tfont-size: 42px;\n\t\t\tcolor: #999;\n\t\t}\n\n\t\t.acf-loading-overlay {\n\t\t\tbackground: rgba(255, 255, 255, 0.9);\n\t\t}\n\n\t\t.canvas-error {\n\t\t\tposition: absolute;\n\t\t\ttop: 50%;\n\t\t\tleft: 0%;\n\t\t\tright: 0%;\n\t\t\tmargin: -9px 0 0 0;\n\t\t\ttext-align: center;\n\t\t\tdisplay: none;\n\n\t\t\tp {\n\t\t\t\tpadding: 8px;\n\t\t\t\tmargin: 0;\n\t\t\t\tdisplay: inline;\n\t\t\t}\n\t\t}\n\t}\n\n\t// has value\n\t&.has-value {\n\t\t.canvas {\n\t\t\tmin-height: 50px;\n\t\t}\n\n\t\t.input-search {\n\t\t\tfont-weight: bold;\n\t\t}\n\n\t\t.title:hover .acf-actions {\n\t\t\tdisplay: block;\n\t\t}\n\t}\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tImage\n*\n*--------------------------------------------------------------------------------------------*/\n\n.acf-image-uploader {\n\t@include clearfix();\n\tposition: relative;\n\n\tp {\n\t\tmargin: 0;\n\t}\n\n\t/* image wrap*/\n\t.image-wrap {\n\t\tposition: relative;\n\t\tfloat: left;\n\n\t\timg {\n\t\t\tmax-width: 100%;\n\t\t\tmax-height: 100%;\n\t\t\twidth: auto;\n\t\t\theight: auto;\n\t\t\tdisplay: block;\n\t\t\tmin-width: 30px;\n\t\t\tmin-height: 30px;\n\t\t\tbackground: #f1f1f1;\n\t\t\tmargin: 0;\n\t\t\tpadding: 0;\n\n\t\t\t/* svg */\n\t\t\t&[src$=\".svg\"] {\n\t\t\t\tmin-height: 100px;\n\t\t\t\tmin-width: 100px;\n\t\t\t}\n\t\t}\n\n\t\t/* hover */\n\t\t&:hover .acf-actions {\n\t\t\tdisplay: block;\n\t\t}\n\t}\n\n\t/* input */\n\tinput.button {\n\t\twidth: auto;\n\t}\n\n\t/* rtl */\n\thtml[dir=\"rtl\"] & {\n\t\t.image-wrap {\n\t\t\tfloat: right;\n\t\t}\n\t}\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tFile\n*\n*--------------------------------------------------------------------------------------------*/\n\n.acf-file-uploader {\n\tposition: relative;\n\n\tp {\n\t\tmargin: 0;\n\t}\n\n\t.file-wrap {\n\t\tborder: $wp-card-border solid 1px;\n\t\tmin-height: 84px;\n\t\tposition: relative;\n\t\tbackground: #fff;\n\t}\n\n\t.file-icon {\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tleft: 0;\n\t\tbottom: 0;\n\t\tpadding: 10px;\n\t\tbackground: #f1f1f1;\n\t\tborder-right: $wp-card-border-1 solid 1px;\n\n\t\timg {\n\t\t\tdisplay: block;\n\t\t\tpadding: 0;\n\t\t\tmargin: 0;\n\t\t\tmax-width: 48px;\n\t\t}\n\t}\n\n\t.file-info {\n\t\tpadding: 10px;\n\t\tmargin-left: 69px;\n\n\t\tp {\n\t\t\tmargin: 0 0 2px;\n\t\t\tfont-size: 13px;\n\t\t\tline-height: 1.4em;\n\t\t\tword-break: break-all;\n\t\t}\n\n\t\ta {\n\t\t\ttext-decoration: none;\n\t\t}\n\t}\n\n\t/* hover */\n\t&:hover .acf-actions {\n\t\tdisplay: block;\n\t}\n\n\t/* rtl */\n\thtml[dir=\"rtl\"] & {\n\t\t.file-icon {\n\t\t\tleft: auto;\n\t\t\tright: 0;\n\t\t\tborder-left: #e5e5e5 solid 1px;\n\t\t\tborder-right: none;\n\t\t}\n\n\t\t.file-info {\n\t\t\tmargin-right: 69px;\n\t\t\tmargin-left: 0;\n\t\t}\n\t}\n}\n\n/*-----------------------------------------------------------------------------\n*\n*\tDate Picker\n*\n*-----------------------------------------------------------------------------*/\n\n.acf-ui-datepicker .ui-datepicker {\n\tz-index: 900000 !important;\n\n\t.ui-widget-header a {\n\t\tcursor: pointer;\n\t\ttransition: none;\n\t}\n}\n\n/* fix highlight state overriding hover / active */\n.acf-ui-datepicker .ui-state-highlight.ui-state-hover {\n\tborder: 1px solid #98b7e8 !important;\n\tbackground: #98b7e8 !important;\n\tfont-weight: normal !important;\n\tcolor: #ffffff !important;\n}\n\n.acf-ui-datepicker .ui-state-highlight.ui-state-active {\n\tborder: 1px solid #3875d7 !important;\n\tbackground: #3875d7 !important;\n\tfont-weight: normal !important;\n\tcolor: #ffffff !important;\n}\n\n/*-----------------------------------------------------------------------------\n*\n*\tSeparator field\n*\n*-----------------------------------------------------------------------------*/\n\n.acf-field-separator {\n\t.acf-label {\n\t\tmargin-bottom: 0;\n\n\t\tlabel {\n\t\t\tfont-weight: normal;\n\t\t}\n\t}\n\n\t.acf-input {\n\t\tdisplay: none;\n\t}\n\n\t/* fields */\n\t.acf-fields > & {\n\t\tbackground: #f9f9f9;\n\t\tborder-bottom: 1px solid #dfdfdf;\n\t\tborder-top: 1px solid #dfdfdf;\n\t\tmargin-bottom: -1px;\n\t\tz-index: 2;\n\t}\n}\n\n/*-----------------------------------------------------------------------------\n*\n*\tTaxonomy\n*\n*-----------------------------------------------------------------------------*/\n\n.acf-taxonomy-field {\n\tposition: relative;\n\n\t.categorychecklist-holder {\n\t\tborder: $wp-card-border solid 1px;\n\t\tborder-radius: 3px;\n\t\tmax-height: 200px;\n\t\toverflow: auto;\n\t}\n\n\t.acf-checkbox-list {\n\t\tmargin: 0;\n\t\tpadding: 10px;\n\n\t\tul.children {\n\t\t\tpadding-left: 18px;\n\t\t}\n\t}\n\n\t/* hover */\n\t&:hover {\n\t\t.acf-actions {\n\t\t\tdisplay: block;\n\t\t}\n\t}\n\n\t/* select */\n\t&[data-ftype=\"select\"] {\n\t\t.acf-actions {\n\t\t\tpadding: 0;\n\t\t\tmargin: -9px;\n\t\t}\n\t}\n}\n\n/*-----------------------------------------------------------------------------\n*\n*\tRange\n*\n*-----------------------------------------------------------------------------*/\n\n.acf-range-wrap {\n\t.acf-append,\n\t.acf-prepend {\n\t\tdisplay: inline-block;\n\t\tvertical-align: middle;\n\t\tline-height: 28px;\n\t\tmargin: 0 7px 0 0;\n\t}\n\n\t.acf-append {\n\t\tmargin: 0 0 0 7px;\n\t}\n\n\tinput[type=\"range\"] {\n\t\tdisplay: inline-block;\n\t\tpadding: 0;\n\t\tmargin: 0;\n\t\tvertical-align: middle;\n\t\theight: 28px;\n\n\t\t&:focus {\n\t\t\toutline: none;\n\t\t}\n\t}\n\n\tinput[type=\"number\"] {\n\t\tdisplay: inline-block;\n\t\tmin-width: 5em;\n\t\tpadding-right: 4px;\n\t\tmargin-left: 10px;\n\t\tvertical-align: middle;\n\t}\n\n\t/* rtl */\n\thtml[dir=\"rtl\"] & {\n\t\tinput[type=\"number\"] {\n\t\t\tmargin-right: 10px;\n\t\t\tmargin-left: 0;\n\t\t}\n\n\t\t.acf-append {\n\t\t\tmargin: 0 7px 0 0;\n\t\t}\n\t\t.acf-prepend {\n\t\t\tmargin: 0 0 0 7px;\n\t\t}\n\t}\n}\n\n/*-----------------------------------------------------------------------------\n*\n* acf-accordion\n*\n*-----------------------------------------------------------------------------*/\n\n.acf-accordion {\n\tmargin: -1px 0;\n\tpadding: 0;\n\tbackground: #fff;\n\tborder-top: 1px solid $wp-card-border-1;\n\tborder-bottom: 1px solid $wp-card-border-1;\n\tz-index: 1; // Display above following field.\n\n\t// Title.\n\t.acf-accordion-title {\n\t\tmargin: 0;\n\t\tpadding: 12px;\n\t\tfont-weight: bold;\n\t\tcursor: pointer;\n\t\tfont-size: inherit;\n\t\tfont-size: 13px;\n\t\tline-height: 1.4em;\n\n\t\t&:hover {\n\t\t\tbackground: #f3f4f5;\n\t\t}\n\n\t\tlabel {\n\t\t\tmargin: 0;\n\t\t\tpadding: 0;\n\t\t\tfont-size: 13px;\n\t\t\tline-height: 1.4em;\n\t\t}\n\n\t\tp {\n\t\t\tfont-weight: normal;\n\t\t}\n\n\t\t.acf-accordion-icon {\n\t\t\tfloat: right;\n\t\t}\n\n\t\t// Gutenberg uses SVG.\n\t\tsvg.acf-accordion-icon {\n\t\t\tposition: absolute;\n\t\t\tright: 10px;\n\t\t\ttop: 50%;\n\t\t\ttransform: translateY(-50%);\n\t\t\tcolor: #191e23;\n\t\t\tfill: currentColor;\n\t\t}\n\t}\n\n\t.acf-accordion-content {\n\t\tmargin: 0;\n\t\tpadding: 0 12px 12px;\n\t\tdisplay: none;\n\t}\n\n\t// Open.\n\t&.-open {\n\t\t> .acf-accordion-content {\n\t\t\tdisplay: block;\n\t\t}\n\t}\n}\n\n// Field specific overrides\n.acf-field.acf-accordion {\n\tmargin: -1px 0;\n\tpadding: 0 !important; // !important needed to avoid Gutenberg sidebar issues.\n\tborder-color: $wp-card-border-1;\n\n\t.acf-label.acf-accordion-title {\n\t\tpadding: 12px;\n\t\twidth: auto;\n\t\tfloat: none;\n\t\twidth: auto;\n\t}\n\n\t.acf-input.acf-accordion-content {\n\t\tpadding: 0;\n\t\tfloat: none;\n\t\twidth: auto;\n\n\t\t> .acf-fields {\n\t\t\tborder-top: $wp-card-border-2 solid 1px;\n\n\t\t\t&.-clear {\n\t\t\t\tpadding: 0 $fx $fy;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/* field specific (left) */\n.acf-fields.-left > .acf-field.acf-accordion {\n\t&:before {\n\t\tdisplay: none;\n\t}\n\n\t.acf-accordion-title {\n\t\twidth: auto;\n\t\tmargin: 0 !important;\n\t\tpadding: 12px;\n\t\tfloat: none !important;\n\t}\n\n\t.acf-accordion-content {\n\t\tpadding: 0 !important;\n\t}\n}\n\n/* field specific (clear) */\n.acf-fields.-clear > .acf-field.acf-accordion {\n\tborder: #cccccc solid 1px;\n\tbackground: transparent;\n\n\t+ .acf-field.acf-accordion {\n\t\tmargin-top: -16px;\n\t}\n}\n\n/* table */\ntr.acf-field.acf-accordion {\n\tbackground: transparent;\n\n\t> .acf-input {\n\t\tpadding: 0 !important;\n\t\tborder: #cccccc solid 1px;\n\t}\n\n\t.acf-accordion-content {\n\t\tpadding: 0 12px 12px;\n\t}\n}\n\n/* #addtag */\n#addtag div.acf-field.error {\n\tborder: 0 none;\n\tpadding: 8px 0;\n}\n\n#addtag > .acf-field.acf-accordion {\n\tpadding-right: 0;\n\tmargin-right: 5%;\n\n\t+ p.submit {\n\t\tmargin-top: 0;\n\t}\n}\n\n/* border */\ntr.acf-accordion {\n\tmargin: 15px 0 !important;\n\n\t+ tr.acf-accordion {\n\t\tmargin-top: -16px !important;\n\t}\n}\n\n/* seamless */\n.acf-postbox.seamless > .acf-fields > .acf-accordion {\n\tmargin-left: $field_padding_x;\n\tmargin-right: $field_padding_x;\n\tborder: $wp-card-border solid 1px;\n}\n\n/* rtl */\nhtml[dir=\"rtl\"] .acf-accordion {\n}\n\n/* menu item */\n/*\n.menu-item-settings > .field-acf > .acf-field.acf-accordion {\n\tborder: #dfdfdf solid 1px;\n\tmargin: 10px -13px 10px -11px;\n\n\t+ .acf-field.acf-accordion {\n\t\tmargin-top: -11px;\n\t}\n}\n*/\n\n/* widget */\n.widget .widget-content > .acf-field.acf-accordion {\n\tborder: #dfdfdf solid 1px;\n\tmargin-bottom: 10px;\n\n\t.acf-accordion-title {\n\t\tmargin-bottom: 0;\n\t}\n\n\t+ .acf-field.acf-accordion {\n\t\tmargin-top: -11px;\n\t}\n}\n\n// media modal\n.media-modal .compat-attachment-fields .acf-field.acf-accordion {\n\t// siblings\n\t+ .acf-field.acf-accordion {\n\t\tmargin-top: -1px;\n\t}\n\n\t// input\n\t> .acf-input {\n\t\twidth: 100%;\n\t}\n\n\t// table\n\t.compat-attachment-fields > tbody > tr > td {\n\t\tpadding-bottom: 5px;\n\t}\n}\n\n/*-----------------------------------------------------------------------------\n*\n*\tBlock Editor\n*\n*-----------------------------------------------------------------------------*/\n.block-editor {\n\t// Sidebar\n\t.edit-post-sidebar {\n\t\t// Remove metabox hndle border to simulate component panel.\n\t\t.acf-postbox {\n\t\t\t> .postbox-header,\n\t\t\t> .hndle {\n\t\t\t\tborder-bottom-width: 0 !important;\n\t\t\t}\n\t\t\t&.closed {\n\t\t\t\t> .postbox-header,\n\t\t\t\t> .hndle {\n\t\t\t\t\tborder-bottom-width: 1px !important;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Field wrap.\n\t\t.acf-fields {\n\t\t\tmin-height: 1px;\n\t\t\toverflow: auto; // Fixes margin-collapse issue in WP 5.3.\n\n\t\t\t> .acf-field {\n\t\t\t\tborder-width: 0;\n\t\t\t\tborder-color: #e2e4e7;\n\t\t\t\tmargin: 16px;\n\t\t\t\tpadding: 0;\n\n\t\t\t\t// Force full width.\n\t\t\t\twidth: auto !important;\n\t\t\t\tmin-height: 0 !important;\n\t\t\t\tfloat: none !important;\n\n\t\t\t\t// Field labels.\n\t\t\t\t> .acf-label {\n\t\t\t\t\tmargin-bottom: 5px;\n\t\t\t\t\tlabel {\n\t\t\t\t\t\tfont-weight: normal;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Accordions.\n\t\t\t\t&.acf-accordion {\n\t\t\t\t\tpadding: 0;\n\t\t\t\t\tmargin: 0;\n\t\t\t\t\tborder-top-width: 1px;\n\n\t\t\t\t\t&:first-child {\n\t\t\t\t\t\tborder-top-width: 0;\n\t\t\t\t\t}\n\n\t\t\t\t\t.acf-accordion-title {\n\t\t\t\t\t\tmargin: 0;\n\t\t\t\t\t\tpadding: 15px;\n\t\t\t\t\t\tlabel {\n\t\t\t\t\t\t\tfont-weight: 500;\n\t\t\t\t\t\t\tcolor: rgb(30, 30, 30);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tsvg.acf-accordion-icon {\n\t\t\t\t\t\t\tright: 16px;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t.acf-accordion-content {\n\t\t\t\t\t\t> .acf-fields {\n\t\t\t\t\t\t\tborder-top-width: 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n/*-----------------------------------------------------------------------------\n*\n* Prefix field label & prefix field names\n*\n*-----------------------------------------------------------------------------*/\n.acf-field-setting-prefix_label,\n.acf-field-setting-prefix_name {\n\tp.description {\n\t\torder: 3;\n\t\tmargin: {\n\t\t\ttop: 0;\n\t\t\tleft: 16px;\n\t\t}\n\n\t\tcode {\n\t\t\tpadding: {\n\t\t\t\ttop: 4px;\n\t\t\t\tright: 6px;\n\t\t\t\tbottom: 4px;\n\t\t\t\tleft: 6px;\n\t\t\t}\n\t\t\tbackground-color: $gray-100;\n\t\t\tborder-radius: 4px;\n\t\t\t@extend .p7;\n\t\t\tcolor: $gray-500;\n\t\t}\n\t}\n}\n\n/*-----------------------------------------------------------------------------\n*\n* Editor tab styles\n*\n*-----------------------------------------------------------------------------*/\n\n.acf-fields > .acf-tab-wrap:first-child .acf-tab-group {\n\tborder-top: none;\n}\n\n.acf-fields > .acf-tab-wrap .acf-tab-group li.active a {\n\tbackground: #ffffff;\n}\n\n.acf-fields > .acf-tab-wrap .acf-tab-group li a {\n\tbackground: #f1f1f1;\n\tborder-color: #ccd0d4;\n}\n\n.acf-fields > .acf-tab-wrap .acf-tab-group li a:hover {\n\tbackground: #fff;\n}\n","/*--------------------------------------------------------------------------------------------\n*\n*\tUser\n*\n*--------------------------------------------------------------------------------------------*/\n\n.form-table > tbody {\n\n\t/* field */\n\t> .acf-field {\n\n\t\t/* label */\n\t\t> .acf-label {\n\t\t\tpadding: 20px 10px 20px 0;\n\t\t width: 210px;\n\n\t\t /* rtl */\n\t\t\thtml[dir=\"rtl\"] & {\n\t\t\t\tpadding: 20px 0 20px 10px;\n\t\t\t}\n\n\t\t label {\n\t\t\t\tfont-size: 14px;\n\t\t\t\tcolor: #23282d;\n\t\t\t}\n\n\t\t}\n\n\n\t\t/* input */\n\t\t> .acf-input {\n\t\t\tpadding: 15px 10px;\n\n\t\t\t/* rtl */\n\t\t\thtml[dir=\"rtl\"] & {\n\t\t\t\tpadding: 15px 10px 15px 5%;\n\t\t\t}\n\t\t}\n\n\t}\n\n\n\t/* tab wrap */\n\t> .acf-tab-wrap td {\n\t\tpadding: 15px 5% 15px 0;\n\n\t\t/* rtl */\n\t\thtml[dir=\"rtl\"] & {\n\t\t\tpadding: 15px 0 15px 5%;\n\t\t}\n\n\t}\n\n\n\t/* misc */\n\t.form-table th.acf-th {\n\t\twidth: auto;\n\t}\n\n}\n\n#your-profile,\n#createuser {\n\n\t/* override for user css */\n\t.acf-field input[type=\"text\"],\n\t.acf-field input[type=\"password\"],\n\t.acf-field input[type=\"number\"],\n\t.acf-field input[type=\"search\"],\n\t.acf-field input[type=\"email\"],\n\t.acf-field input[type=\"url\"],\n\t.acf-field select {\n\t max-width: 25em;\n\t}\n\n\t.acf-field textarea {\n\t\tmax-width: 500px;\n\t}\n\n\n\t/* allow sub fields to display correctly */\n\t.acf-field .acf-field input[type=\"text\"],\n\t.acf-field .acf-field input[type=\"password\"],\n\t.acf-field .acf-field input[type=\"number\"],\n\t.acf-field .acf-field input[type=\"search\"],\n\t.acf-field .acf-field input[type=\"email\"],\n\t.acf-field .acf-field input[type=\"url\"],\n\t.acf-field .acf-field textarea,\n\t.acf-field .acf-field select {\n\t max-width: none;\n\t}\n}\n\n#registerform {\n\n\th2 {\n\t\tmargin: 1em 0;\n\t}\n\n\t.acf-field {\n\t\tmargin-top: 0;\n\n\t\t.acf-label {\n\t\t\tmargin-bottom: 0;\n\n\t\t\tlabel {\n\t\t\t\tfont-weight: normal;\n\t\t\t\tline-height: 1.5;\n\t\t\t}\n\t\t}\n\n/*\n\t\t.acf-input {\n\t\t\tinput {\n\t\t\t\tfont-size: 24px;\n\t\t\t\tpadding: 5px;\n\t\t\t\theight: auto;\n\t\t\t}\n\t\t}\n*/\n\t}\n\n\tp.submit {\n\t\ttext-align: right;\n\t}\n\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tTerm\n*\n*--------------------------------------------------------------------------------------------*/\n\n// add term\n#acf-term-fields {\n\tpadding-right: 5%;\n\n\t> .acf-field {\n\n\t\t> .acf-label {\n\t\t\tmargin: 0;\n\n\t\t\tlabel {\n\t\t\t\tfont-size: 12px;\n\t\t\t\tfont-weight: normal;\n\t\t\t}\n\t\t}\n\t}\n\n}\n\np.submit .spinner,\np.submit .acf-spinner {\n\tvertical-align: top;\n\tfloat: none;\n\tmargin: 4px 4px 0;\n}\n\n\n// edit term\n#edittag .acf-fields.-left {\n\n\t> .acf-field {\n\t\tpadding-left: 220px;\n\n\t\t&:before {\n\t\t\twidth: 209px;\n\t\t}\n\n\t\t> .acf-label {\n\t\t\twidth: 220px;\n\t\t\tmargin-left: -220px;\n\t\t\tpadding: 0 10px;\n\t\t}\n\n\t\t> .acf-input {\n\t\t\tpadding: 0;\n\t\t}\n\t}\n}\n\n#edittag > .acf-fields.-left {\n\twidth: 96%;\n\n\t> .acf-field {\n\n\t\t> .acf-label {\n\t\t\tpadding-left: 0;\n\t\t}\n\t}\n}\n\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tComment\n*\n*--------------------------------------------------------------------------------------------*/\n\n.editcomment td:first-child {\n white-space: nowrap;\n width: 131px;\n}\n\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tWidget\n*\n*--------------------------------------------------------------------------------------------*/\n\n#widgets-right .widget .acf-field .description {\n\tpadding-left: 0;\n\tpadding-right: 0;\n}\n\n.acf-widget-fields {\n\n\t> .acf-field {\n\n\t\t.acf-label {\n\t\t\tmargin-bottom: 5px;\n\n\t\t\tlabel {\n\t\t\t\tfont-weight: normal;\n\t\t\t\tmargin: 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tNav Menu\n*\n*--------------------------------------------------------------------------------------------*/\n\n.acf-menu-settings {\n\tborder-top: 1px solid #eee;\n margin-top: 2em;\n\n\t// seamless\n\t&.-seamless {\n\t\tborder-top: none;\n\t\tmargin-top: 15px;\n\n\t\t> h2 { display: none; }\n\t}\n\n\t// Fix relationship conflict.\n\t.list li {\n\t\tdisplay: block;\n\t\tmargin-bottom: 0;\n\t}\n}\n\n.acf-fields.acf-menu-item-fields {\n\tclear: both;\n\tpadding-top: 1px; // Fixes margin overlap.\n\n\t> .acf-field {\n\t\tmargin: 5px 0;\n\t\tpadding-right: 10px;\n\n\t\t.acf-label {\n\t\t\tmargin-bottom: 0;\n\t\t\tlabel {\n\t\t\t\tfont-style: italic;\n\t\t\t\tfont-weight: normal;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Attachment Form (single)\n*\n*---------------------------------------------------------------------------------------------*/\n\n#post .compat-attachment-fields {\n\n\t.compat-field-acf-form-data {\n\t\tdisplay: none;\n\t}\n\n\t&,\n\t> tbody,\n\t> tbody > tr,\n\t> tbody > tr > th,\n\t> tbody > tr > td {\n\t\tdisplay: block;\n\t}\n\n\t> tbody > .acf-field {\n\t\tmargin: 15px 0;\n\n\t\t> .acf-label {\n\t\t\tmargin: 0;\n\n\t\t\tlabel {\n\t\t\t\tmargin: 0;\n\t\t\t\tpadding: 0;\n\n\t\t\t\tp {\n\t\t\t\t\tmargin: 0 0 3px !important;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t> .acf-input {\n\t\t\tmargin: 0;\n\t\t}\n\t}\n}\n\n","/*---------------------------------------------------------------------------------------------\n*\n* Media Model\n*\n*---------------------------------------------------------------------------------------------*/\n\n/* WP sets tables to act as divs. ACF uses tables, so these muct be reset */\n.media-modal .compat-attachment-fields td.acf-input {\n\t\n\ttable {\n\t\tdisplay: table;\n\t\ttable-layout: auto;\n\t\t\n\t\ttbody {\n\t\t\tdisplay: table-row-group;\n\t\t}\n\t\t\n\t\ttr {\n\t\t\tdisplay: table-row;\n\t\t}\n\t\t\n\t\ttd, th {\n\t\t\tdisplay: table-cell;\n\t\t}\n\t\t\n\t}\n\t\n}\n\n\n/* field widths floats */\n.media-modal .compat-attachment-fields > tbody > .acf-field {\n\tmargin: 5px 0;\n\t\n\t> .acf-label {\n\t\tmin-width: 30%;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\tfloat: left;\n\t text-align: right;\n\t display: block;\n\t float: left;\n\t \n\t > label {\n\t\t padding-top: 6px;\n\t\t\tmargin: 0;\n\t\t\tcolor: #666666;\n\t\t font-weight: 400;\n\t\t line-height: 16px;\n\t }\n\t}\n\t\n\t> .acf-input {\n\t\twidth: 65%;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t float: right;\n\t display: block;\n\t}\n\t\n\tp.description {\n\t\tmargin: 0;\n\t}\n}\n\n\n/* restricted selection (copy of WP .upload-errors)*/\n.acf-selection-error {\n\tbackground: #ffebe8;\n border: 1px solid #c00;\n border-radius: 3px;\n padding: 8px;\n margin: 20px 0 0;\n \n .selection-error-label {\n\t\tbackground: #CC0000;\n\t border-radius: 3px;\n\t color: #fff;\n\t font-weight: bold;\n\t margin-right: 8px;\n\t padding: 2px 4px;\n\t}\n\t\n\t.selection-error-message {\n\t\tcolor: #b44;\n\t display: block;\n\t padding-top: 8px;\n\t word-wrap: break-word;\n\t white-space: pre-wrap;\n\t}\n}\n\n\n/* disabled attachment */\n.media-modal .attachment.acf-disabled {\n\t\n\t.thumbnail {\n\t\topacity: 0.25 !important;\n\t}\n\t\t\n\t.attachment-preview:before {\n\t\tbackground: rgba(0,0,0,0.15);\n\t\tz-index: 1;\n\t\tposition: relative;\n\t}\n\n}\n\n\n/* misc */\n.media-modal {\n\t\n\t/* compat-item */\n\t.compat-field-acf-form-data,\n\t.compat-field-acf-blank {\n\t\tdisplay: none !important;\n\t}\n\t\n\t\n\t/* allow line breaks in upload error */\n\t.upload-error-message {\n\t\twhite-space: pre-wrap;\n\t}\n\t\n\t\n\t/* fix required span */\n\t.acf-required {\n\t\tpadding: 0 !important;\n\t\tmargin: 0 !important;\n\t\tfloat: none !important;\n\t\tcolor: #f00 !important;\n\t}\n\t\n\t\n\t/* sidebar */\n\t.media-sidebar {\n\t\t\n\t\t.compat-item{\n\t\t\tpadding-bottom: 20px;\n\t\t}\n\t\t\n\t}\n\t\n\t\n\t/* mobile md */\n\t@media (max-width: 900px) {\n\t\t\n\t\t/* label */\n\t\t.setting span, \n\t\t.compat-attachment-fields > tbody > .acf-field > .acf-label {\n\t\t\twidth: 98%;\n\t\t\tfloat: none;\n\t\t\ttext-align: left;\n\t\t\tmin-height: 0;\n\t\t\tpadding: 0;\n\t\t}\n\t\t\n\t\t\n\t\t/* field */\n\t\t.setting input, \n\t\t.setting textarea, \n\t\t.compat-attachment-fields > tbody > .acf-field > .acf-input {\n\t\t\tfloat: none;\n\t\t height: auto;\n\t\t max-width: none;\n\t\t width: 98%;\n\t\t}\n\n\t}\n\n\t\n}\n\n\n\n/*---------------------------------------------------------------------------------------------\n*\n* Media Model (expand details)\n*\n*---------------------------------------------------------------------------------------------*/\n\n.media-modal .acf-expand-details {\n\tfloat: right;\n\tpadding: 8px 10px;\n\tmargin-right: 6px;\n\tfont-size: 13px;\n\theight: 18px;\n\tline-height: 18px;\n\tcolor: #666;\n\ttext-decoration: none;\n\n\t// States.\n\t&:focus, &:active {\n\t\toutline: 0 none;\n\t\tbox-shadow: none;\n\t\tcolor: #666;\n\t}\n\t&:hover {\n\t\tcolor: #000;\n\t}\n\t\n\t// Open & close.\n\t.is-open { display: none; }\n\t.is-closed { display: block; }\n\t\n\t// Hide on mobile.\n\t@media (max-width: $sm) {\n\t\tdisplay: none;\n\t}\n}\n\n\n/* expanded */\n.media-modal.acf-expanded {\n\t\n\t/* toggle */\n\t.acf-expand-details {\n\t\t.is-open { display: block; }\n\t\t.is-closed { display: none; }\n\t\t\n\t}\n\t\n\t// Components.\n\t.attachments-browser .media-toolbar, \n\t.attachments-browser .attachments { right: 740px; }\n\t.media-sidebar { width: 708px; }\n\t\n\t// Sidebar.\n\t.media-sidebar {\n\t\t\n\t\t// Attachment info.\n\t\t.attachment-info {\n\t\t\t.thumbnail {\n\t\t\t\tfloat: left;\n\t\t\t\tmax-height: none;\n\n\t\t\t\timg {\n\t\t\t\t\tmax-width: 100%;\n\t\t\t\t\tmax-height: 200px;\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\t.details {\n\t\t\t\tfloat: right;\n\t\t\t}\n\t\t}\n\t\t\n\t\t// Label\n\t\t.attachment-info .thumbnail,\n\t\t.attachment-details .setting .name, \n\t\t.compat-attachment-fields > tbody > .acf-field > .acf-label {\n\t\t\tmin-width: 20%;\n\t\t\tmargin-right: 0;\n\t\t}\n\t\t\n\t\t// Input\n\t\t.attachment-info .details,\n\t\t.attachment-details .setting input, \n\t\t.attachment-details .setting textarea,\n\t\t.attachment-details .setting + .description,\n\t\t.compat-attachment-fields > tbody > .acf-field > .acf-input {\n\t\t\tmin-width: 77%;\n\t\t}\n\t}\n\t\n\t// Screen: Medium.\n\t@media (max-width: 900px) {\n\t\t\n\t\t// Components.\n\t\t.attachments-browser .media-toolbar { display: none; }\n\t\t.attachments { display: none; }\n\t\t.media-sidebar { width: auto; max-width: none !important; bottom: 0 !important; }\n\t\t\n\t\t// Sidebar.\n\t\t.media-sidebar {\n\t\t\t\n\t\t\t// Attachment info.\n\t\t\t.attachment-info {\n\t\t\t\t.thumbnail {\n\t\t\t\t\tmin-width: 0;\n\t\t\t\t\tmax-width: none;\n\t\t\t\t\twidth: 30%;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t.details {\n\t\t\t\t\tmin-width: 0;\n\t\t\t\t\tmax-width: none;\n\t\t\t\t\twidth: 67%;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\t\n\t\t}\n\t}\n\t\n\t// Screen: small.\n\t@media (max-width: 640px) {\n\t\t\n\t\t// Sidebar.\n\t\t.media-sidebar {\n\t\t\t\n\t\t\t// Attachment info.\n\t\t\t.attachment-info {\n\t\t\t\t.thumbnail, .details {\n\t\t\t\t\twidth: 100%;\n\t\t\t\t}\n\t\t\t}\t\n\t\t}\n\t}\n}\n\n\n\n/*---------------------------------------------------------------------------------------------\n*\n* ACF Media Model\n*\n*---------------------------------------------------------------------------------------------*/\n\n.acf-media-modal {\n\t\n\t/* hide embed settings */\n\t.media-embed {\n\t\t.setting.align,\n\t\t.setting.link-to {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n}\n\n\n/*---------------------------------------------------------------------------------------------\n*\n* ACF Media Model (Select Mode)\n*\n*---------------------------------------------------------------------------------------------*/\n\n.acf-media-modal.-select {\n\t\n\t\n\t\n}\n\n\n/*---------------------------------------------------------------------------------------------\n*\n* ACF Media Model (Edit Mode)\n*\n*---------------------------------------------------------------------------------------------*/\n\n.acf-media-modal.-edit {\n\t\n\t/* resize modal */\n\tleft: 15%;\n\tright: 15%;\n\ttop: 100px;\n\tbottom: 100px;\n\t\n\t\n\t/* hide elements */\n\t.media-frame-menu,\n\t.media-frame-router,\n\t.media-frame-content .attachments,\n\t.media-frame-content .media-toolbar {\n\t display: none;\n\t}\n\t\n\t\n\t/* full width */\n\t.media-frame-title,\n\t.media-frame-content,\n\t.media-frame-toolbar,\n\t.media-sidebar {\n\t\twidth: auto;\n\t\tleft: 0;\n\t\tright: 0;\n\t}\n\t\n\t\n\t/* tidy up incorrect distance */\n\t.media-frame-content {\n\t top: 50px;\n\t}\n\t\n\t\n\t/* title box shadow (to match media grid) */\n\t.media-frame-title {\n\t border-bottom: 1px solid #DFDFDF;\n\t box-shadow: 0 4px 4px -4px rgba(0, 0, 0, 0.1);\n\t}\n\t\n\t\n\t/* sidebar */\n\t.media-sidebar {\n\t\t\n\t\tpadding: 0 16px;\n\t\t\n\t\t/* WP details */\n\t\t.attachment-details {\n\t\t\t\n\t\t\toverflow: visible;\n\t\t\t\n\t\t\t/* hide 'Attachment Details' heading */\n\t\t\t> h3, > h2 {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t/* remove overflow */\n\t\t\t.attachment-info {\n\t\t\t\tbackground: #fff;\n\t\t\t\tborder-bottom: #dddddd solid 1px;\n\t\t\t\tpadding: 16px;\n\t\t\t\tmargin: 0 -16px 16px;\n\t\t\t}\n\t\t\t\n\t\t\t/* move thumbnail */\n\t\t\t.thumbnail {\n\t\t\t\tmargin: 0 16px 0 0;\n\t\t\t}\n\t\t\t\n\t\t\t.setting {\n\t\t\t\tmargin: 0 0 5px;\n\t\t\t\t\n\t\t\t\tspan {\n\t\t\t\t\tmargin: 0;\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\t\n\t\t/* ACF fields */\n\t\t.compat-attachment-fields {\n\t\t\t\n\t\t\t> tbody > .acf-field {\n\t\t\t\tmargin: 0 0 5px;\n\t\t\t\t\n\t\t\t\tp.description {\n\t\t\t\t\tmargin-top: 3px;\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\t\n\t\t/* WP required message */\n\t\t.media-types-required-info { display: none; }\n\t\t\n\t}\n\t\n\t\n\t/* mobile md */\n\t@media (max-width: 900px) {\n\t\ttop: 30px;\n\t\tright: 30px;\n\t\tbottom: 30px;\n\t\tleft: 30px;\n\t}\n\t\n\t\n\t/* mobile sm */\n\t@media (max-width: 640px) {\n\t\ttop: 0;\n\t\tright: 0;\n\t\tbottom: 0;\n\t\tleft: 0;\n\t}\n\t\n\t@media (max-width: 480px) {\n\t\t.media-frame-content {\n\t\t top: 40px;\n\t\t}\n\t}\n}\n","// Temp remove.\n.acf-temp-remove {\n\tposition: relative;\n\topacity: 1;\n\t-webkit-transition: all 0.25s ease;\n\t-moz-transition: all 0.25s ease;\n\t-o-transition: all 0.25s ease;\n\ttransition: all 0.25s ease;\n\toverflow: hidden;\n\t\n\t/* overlay prevents hover */\n\t&:after {\n\t\tdisplay: block;\n\t\tcontent: \"\";\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tleft: 0;\n\t\tright: 0;\n\t\tbottom: 0;\n\t\tz-index: 99;\n\t}\n}\n\n// Conditional Logic.\n.hidden-by-conditional-logic {\n\tdisplay: none !important;\n\t\n\t// Table cells may \"appear empty\".\n\t&.appear-empty {\n\t\tdisplay: table-cell !important;\n\t\t.acf-input {\n\t\t\tdisplay: none !important;\n\t\t}\n\t}\n}\n\n// Compat support for \"Tabify\" plugin.\n.acf-postbox.acf-hidden {\n\tdisplay: none !important;\n}\n\n// Focus Attention.\n.acf-attention {\n\ttransition: border 0.250s ease-out;\n\t&.-focused {\n\t\tborder: #23282d solid 1px !important;\n\t\ttransition: none;\n\t}\n}\ntr.acf-attention {\n\ttransition: box-shadow 0.250s ease-out;\n\tposition: relative;\n\t&.-focused {\n\t\tbox-shadow: #23282d 0 0 0px 1px !important;\n\t}\n}","// Gutenberg specific styles.\n#editor {\n\n\t// Postbox container.\n\t.edit-post-layout__metaboxes {\n\t\tpadding: 0;\n\t\t.edit-post-meta-boxes-area {\n\t\t\tmargin: 0;\n\t\t}\n\t}\n\n\t// Sidebar postbox container.\n\t.metabox-location-side {\n\t\t.postbox-container {\n\t\t\tfloat: none;\n\t\t}\n\t}\n\n\t// Alter postbox to look like panel component.\n\t.postbox {\n\t\tcolor: #444;\n\n\t\t> .postbox-header {\n\t\t\t.hndle {\n\t\t\t\tborder-bottom: none;\n\t\t\t\t&:hover {\n\t\t\t\t\tbackground: transparent;\n\t\t\t\t}\n\t\t\t}\n\t\t\t.handle-actions {\n\t\t\t\t.handle-order-higher,\n\t\t\t\t.handle-order-lower {\n\t\t\t\t\twidth: 1.62rem;\n\t\t\t\t}\n\n\t\t\t\t// Fix \"Edit\" icon height.\n\t\t\t\t.acf-hndle-cog {\n\t\t\t\t\theight: 44px;\n\t\t\t\t\tline-height: 44px;\n\t\t\t\t}\n\t\t\t}\n\t\t\t&:hover {\n\t\t\t\tbackground: #f0f0f0;\n\t\t\t}\n\t\t}\n\n\t\t// Hide bottom border of last postbox.\n\t\t&:last-child.closed > .postbox-header {\n\t\t\tborder-bottom: none;\n\t\t}\n\t\t&:last-child > .inside {\n\t\t\tborder-bottom: none;\n\t\t}\n\t}\n\n\t// Prevent metaboxes being forced offscreen.\n\t.block-editor-writing-flow__click-redirect {\n\t\tmin-height: 50px;\n\t}\n}\n\n// Fix to display \"High\" metabox area when dragging metaboxes.\nbody.is-dragging-metaboxes #acf_after_title-sortables{\n\toutline: 3px dashed #646970;\n\tdisplay: flow-root;\n\tmin-height: 60px;\n\tmargin-bottom: 3px !important\n}\n\n\n\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/assets/build/css/acf-input.min.css b/assets/build/css/acf-input.min.css new file mode 100644 index 0000000..f46a17d --- /dev/null +++ b/assets/build/css/acf-input.min.css @@ -0,0 +1 @@ +.acf-admin-page #wpcontent{line-height:140%}.acf-admin-page a{color:#0783be}.acf-h1,.acf-admin-page h1,.acf-headerbar h1{font-size:21px;font-weight:400}.acf-h2,.acf-page-title,.acf-admin-page h2,.acf-headerbar h2{font-size:18px;font-weight:400}.acf-h3,.acf-admin-page h3,.acf-headerbar h3{font-size:16px;font-weight:400}.acf-admin-page .p1{font-size:15px}.acf-admin-page .p2{font-size:14px}.acf-admin-page .p3{font-size:13.5px}.acf-admin-page .p4{font-size:13px}.acf-admin-page .p5{font-size:12.5px}.acf-admin-page .p6,.acf-admin-page .acf-field p.description,.acf-field .acf-admin-page p.description,.acf-admin-page .acf-small{font-size:12px}.acf-admin-page .p7,.acf-admin-page .acf-field-setting-prefix_label p.description code,.acf-field-setting-prefix_label p.description .acf-admin-page code,.acf-admin-page .acf-field-setting-prefix_name p.description code,.acf-field-setting-prefix_name p.description .acf-admin-page code{font-size:11.5px}.acf-admin-page .p8{font-size:11px}.acf-page-title{color:#344054}.acf-admin-page .acf-settings-wrap h1{display:none !important}.acf-admin-page #acf-admin-tools h1:not(.acf-field-group-pro-features-title,.acf-field-group-pro-features-title-sm){display:none !important}.acf-admin-page a:focus{box-shadow:none;outline:none}.acf-admin-page a:focus-visible{box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(79,148,212,.8);outline:1px solid rgba(0,0,0,0)}.acf-field,.acf-field .acf-label,.acf-field .acf-input{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:relative}.acf-field{margin:15px 0;clear:both}.acf-field p.description{display:block;margin:0;padding:0}.acf-field .acf-label{vertical-align:top;margin:0 0 10px}.acf-field .acf-label label{display:block;font-weight:500;margin:0 0 3px;padding:0}.acf-field .acf-label:empty{margin-bottom:0}.acf-field .acf-input{vertical-align:top}.acf-field p.description{display:block;margin-top:6px;color:#667085}.acf-field .acf-notice{margin:0 0 15px;background:#edf2ff;color:#0c6ca0;border-color:#2183b9}.acf-field .acf-notice.-error{background:#ffe6e6;color:#cc2727;border-color:#d12626}.acf-field .acf-notice.-success{background:#eefbe8;color:#0e7b17;border-color:#32a23b}.acf-field .acf-notice.-warning{background:#fff3e6;color:#bd4b0e;border-color:#d16226}td.acf-field,tr.acf-field{margin:0}.acf-field[data-width]{float:left;clear:none}.acf-field[data-width]+.acf-field[data-width]{border-left:1px solid #eee}html[dir=rtl] .acf-field[data-width]{float:right}html[dir=rtl] .acf-field[data-width]+.acf-field[data-width]{border-left:none;border-right:1px solid #eee}td.acf-field[data-width],tr.acf-field[data-width]{float:none}.acf-field.-c0{clear:both;border-left-width:0 !important}html[dir=rtl] .acf-field.-c0{border-left-width:1px !important;border-right-width:0 !important}.acf-field.-r0{border-top-width:0 !important}.acf-fields{position:relative}.acf-fields:after{display:block;clear:both;content:""}.acf-fields.-border{border:#ccd0d4 solid 1px;background:#fff}.acf-fields>.acf-field{position:relative;margin:0;padding:16px;border-top-width:1px;border-top-style:solid;border-top-color:#eaecf0}.acf-fields>.acf-field:first-child{border-top:none;margin-top:0}td.acf-fields{padding:0 !important}.acf-fields.-clear>.acf-field{border:none;padding:0;margin:15px 0}.acf-fields.-clear>.acf-field[data-width]{border:none !important}.acf-fields.-clear>.acf-field>.acf-label{padding:0}.acf-fields.-clear>.acf-field>.acf-input{padding:0}.acf-fields.-left>.acf-field{padding:15px 0}.acf-fields.-left>.acf-field:after{display:block;clear:both;content:""}.acf-fields.-left>.acf-field:before{content:"";display:block;position:absolute;z-index:0;background:#f9f9f9;border-color:#e1e1e1;border-style:solid;border-width:0 1px 0 0;top:0;bottom:0;left:0;width:20%}.acf-fields.-left>.acf-field[data-width]{float:none;width:auto !important;border-left-width:0 !important;border-right-width:0 !important}.acf-fields.-left>.acf-field>.acf-label{float:left;width:20%;margin:0;padding:0 12px}.acf-fields.-left>.acf-field>.acf-input{float:left;width:80%;margin:0;padding:0 12px}html[dir=rtl] .acf-fields.-left>.acf-field:before{border-width:0 0 0 1px;left:auto;right:0}html[dir=rtl] .acf-fields.-left>.acf-field>.acf-label{float:right}html[dir=rtl] .acf-fields.-left>.acf-field>.acf-input{float:right}#side-sortables .acf-fields.-left>.acf-field:before{display:none}#side-sortables .acf-fields.-left>.acf-field>.acf-label{width:100%;margin-bottom:10px}#side-sortables .acf-fields.-left>.acf-field>.acf-input{width:100%}@media screen and (max-width: 640px){.acf-fields.-left>.acf-field:before{display:none}.acf-fields.-left>.acf-field>.acf-label{width:100%;margin-bottom:10px}.acf-fields.-left>.acf-field>.acf-input{width:100%}}.acf-fields.-clear.-left>.acf-field{padding:0;border:none}.acf-fields.-clear.-left>.acf-field:before{display:none}.acf-fields.-clear.-left>.acf-field>.acf-label{padding:0}.acf-fields.-clear.-left>.acf-field>.acf-input{padding:0}.acf-table tr.acf-field>td.acf-label{padding:15px 12px;margin:0;background:#f9f9f9;width:20%}.acf-table tr.acf-field>td.acf-input{padding:15px 12px;margin:0;border-left-color:#e1e1e1}.acf-sortable-tr-helper{position:relative !important;display:table-row !important}.acf-postbox{position:relative}.acf-postbox>.inside{margin:0 !important;padding:0 !important}.acf-postbox .acf-hndle-cog{color:#72777c;font-size:16px;line-height:36px;height:36px;width:1.62rem;position:relative;display:none}.acf-postbox .acf-hndle-cog:hover{color:#191e23}.acf-postbox>.hndle:hover .acf-hndle-cog,.acf-postbox>.postbox-header:hover .acf-hndle-cog{display:inline-block}.acf-postbox>.hndle .acf-hndle-cog{height:20px;line-height:20px;float:right;width:auto}.acf-postbox>.hndle .acf-hndle-cog:hover{color:#777}.acf-postbox .acf-replace-with-fields{padding:15px;text-align:center}#post-body-content #acf_after_title-sortables{margin:20px 0 -20px}.acf-postbox.seamless{border:0 none;background:rgba(0,0,0,0);box-shadow:none}.acf-postbox.seamless>.postbox-header,.acf-postbox.seamless>.hndle,.acf-postbox.seamless>.handlediv{display:none !important}.acf-postbox.seamless>.inside{display:block !important;margin-left:-12px !important;margin-right:-12px !important}.acf-postbox.seamless>.inside>.acf-field{border-color:rgba(0,0,0,0)}.acf-postbox.seamless>.acf-fields.-left>.acf-field:before{display:none}@media screen and (max-width: 782px){.acf-postbox.seamless>.acf-fields.-left>.acf-field>.acf-label,.acf-postbox.seamless>.acf-fields.-left>.acf-field>.acf-input{padding:0}}.acf-field input[type=text],.acf-field input[type=password],.acf-field input[type=date],.acf-field input[type=datetime],.acf-field input[type=datetime-local],.acf-field input[type=email],.acf-field input[type=month],.acf-field input[type=number],.acf-field input[type=search],.acf-field input[type=tel],.acf-field input[type=time],.acf-field input[type=url],.acf-field input[type=week],.acf-field textarea,.acf-field select{width:100%;padding:4px 8px;margin:0;box-sizing:border-box;font-size:14px;line-height:1.4}.acf-admin-3-8 .acf-field input[type=text],.acf-admin-3-8 .acf-field input[type=password],.acf-admin-3-8 .acf-field input[type=date],.acf-admin-3-8 .acf-field input[type=datetime],.acf-admin-3-8 .acf-field input[type=datetime-local],.acf-admin-3-8 .acf-field input[type=email],.acf-admin-3-8 .acf-field input[type=month],.acf-admin-3-8 .acf-field input[type=number],.acf-admin-3-8 .acf-field input[type=search],.acf-admin-3-8 .acf-field input[type=tel],.acf-admin-3-8 .acf-field input[type=time],.acf-admin-3-8 .acf-field input[type=url],.acf-admin-3-8 .acf-field input[type=week],.acf-admin-3-8 .acf-field textarea,.acf-admin-3-8 .acf-field select{padding:3px 5px}.acf-field textarea{resize:vertical}body.acf-browser-firefox .acf-field select{padding:4px 5px}.acf-input-prepend,.acf-input-append,.acf-input-wrap{box-sizing:border-box}.acf-input-prepend,.acf-input-append{font-size:13px;line-height:1.4;padding:4px 8px;background:#f5f5f5;border:#7e8993 solid 1px;min-height:30px}.acf-admin-3-8 .acf-input-prepend,.acf-admin-3-8 .acf-input-append{padding:3px 5px;border-color:#ddd;min-height:28px}.acf-input-prepend{float:left;border-right-width:0;border-radius:3px 0 0 3px}.acf-input-append{float:right;border-left-width:0;border-radius:0 3px 3px 0}.acf-input-wrap{position:relative;overflow:hidden}.acf-input-wrap .acf-is-prepended{border-radius:0 6px 6px 0 !important}.acf-input-wrap .acf-is-appended{border-radius:6px 0 0 6px !important}.acf-input-wrap .acf-is-prepended.acf-is-appended{border-radius:0 !important}html[dir=rtl] .acf-input-prepend{border-left-width:0;border-right-width:1px;border-radius:0 3px 3px 0;float:right}html[dir=rtl] .acf-input-append{border-left-width:1px;border-right-width:0;border-radius:3px 0 0 3px;float:left}html[dir=rtl] input.acf-is-prepended{border-radius:3px 0 0 3px !important}html[dir=rtl] input.acf-is-appended{border-radius:0 3px 3px 0 !important}html[dir=rtl] input.acf-is-prepended.acf-is-appended{border-radius:0 !important}.acf-color-picker .wp-color-result{border-color:#7e8993}.acf-admin-3-8 .acf-color-picker .wp-color-result{border-color:#ccd0d4}.acf-color-picker .wp-picker-active{position:relative;z-index:1}.acf-url i{position:absolute;top:5px;left:5px;opacity:.5;color:#7e8993}.acf-url input[type=url]{padding-left:27px !important}.acf-url.-valid i{opacity:1}.select2-container.-acf{z-index:1001}.select2-container.-acf .select2-choices{background:#fff;border-color:#ddd;box-shadow:0 1px 2px rgba(0,0,0,.07) inset;min-height:31px}.select2-container.-acf .select2-choices .select2-search-choice{margin:5px 0 5px 5px;padding:3px 5px 3px 18px;border-color:#bbb;background:#f9f9f9;box-shadow:0 1px 0 rgba(255,255,255,.25) inset}.select2-container.-acf .select2-choices .select2-search-choice.ui-sortable-helper{background:#5897fb;border-color:#3f87fa;color:#fff !important;box-shadow:0 0 3px rgba(0,0,0,.1)}.select2-container.-acf .select2-choices .select2-search-choice.ui-sortable-helper a{visibility:hidden}.select2-container.-acf .select2-choices .select2-search-choice.ui-sortable-placeholder{background-color:#f7f7f7;border-color:#f7f7f7;visibility:visible !important}.select2-container.-acf .select2-choices .select2-search-choice-focus{border-color:#999}.select2-container.-acf .select2-choices .select2-search-field input{height:31px;line-height:22px;margin:0;padding:5px 5px 5px 7px}.select2-container.-acf .select2-choice{border-color:#bbb}.select2-container.-acf .select2-choice .select2-arrow{background:rgba(0,0,0,0);border-left-color:#dfdfdf;padding-left:1px}.select2-container.-acf .select2-choice .select2-result-description{display:none}.select2-container.-acf.select2-container-active .select2-choices,.select2-container.-acf.select2-dropdown-open .select2-choices{border-color:#5b9dd9;border-radius:3px 3px 0 0}.select2-container.-acf.select2-dropdown-open .select2-choice{background:#fff;border-color:#5b9dd9}html[dir=rtl] .select2-container.-acf .select2-search-choice-close{left:24px}html[dir=rtl] .select2-container.-acf .select2-choice>.select2-chosen{margin-left:42px}html[dir=rtl] .select2-container.-acf .select2-choice .select2-arrow{padding-left:0;padding-right:1px}.select2-drop .select2-search{padding:4px 4px 0}.select2-drop .select2-result .select2-result-description{color:#999;font-size:12px;margin-left:5px}.select2-drop .select2-result.select2-highlighted .select2-result-description{color:#fff;opacity:.75}.select2-container.-acf li{margin-bottom:0}.select2-container.-acf[data-select2-id^=select2-data] .select2-selection--multiple{overflow:hidden}.select2-container.-acf .select2-selection{border-color:#7e8993}.acf-admin-3-8 .select2-container.-acf .select2-selection{border-color:#aaa}.select2-container.-acf .select2-selection--multiple .select2-search--inline:first-child{float:none}.select2-container.-acf .select2-selection--multiple .select2-search--inline:first-child input{width:100% !important}.select2-container.-acf .select2-selection--multiple .select2-selection__rendered{padding-right:0}.select2-container.-acf .select2-selection--multiple .select2-selection__rendered[id^=select2-acf-field]{display:inline;padding:0;margin:0}.select2-container.-acf .select2-selection--multiple .select2-selection__rendered[id^=select2-acf-field] .select2-selection__choice{margin-right:0}.select2-container.-acf .select2-selection--multiple .select2-selection__choice{background-color:#f7f7f7;border-color:#ccc;max-width:100%;overflow:hidden;word-wrap:normal !important;white-space:normal}.select2-container.-acf .select2-selection--multiple .select2-selection__choice.ui-sortable-helper{background:#0783be;border-color:#066998;color:#fff !important;box-shadow:0 0 3px rgba(0,0,0,.1)}.select2-container.-acf .select2-selection--multiple .select2-selection__choice.ui-sortable-helper span{visibility:hidden}.select2-container.-acf .select2-selection--multiple .select2-selection__choice .select2-selection__choice__remove{position:static;border-right:none;padding:0}.select2-container.-acf .select2-selection--multiple .select2-selection__choice.ui-sortable-placeholder{background-color:#f2f4f7;border-color:#f2f4f7;visibility:visible !important}.select2-container.-acf .select2-selection--multiple .select2-search__field{box-shadow:none !important;min-height:0}.acf-row .select2-container.-acf .select2-selection--single{overflow:hidden}.acf-row .select2-container.-acf .select2-selection--single .select2-selection__rendered{white-space:normal}.acf-admin-single-field-group .select2-dropdown{border-color:#6bb5d8 !important;margin-top:-5px;overflow:hidden;box-shadow:0px 1px 2px rgba(16,24,40,.1)}.select2-dropdown.select2-dropdown--above{margin-top:0}.acf-admin-single-field-group .select2-container--default .select2-results__option[aria-selected=true]{background-color:#f9fafb !important;color:#667085}.acf-admin-single-field-group .select2-container--default .select2-results__option[aria-selected=true]:hover{color:#399ccb}.acf-admin-single-field-group .select2-container--default .select2-results__option--highlighted[aria-selected]{color:#fff !important;background-color:#0783be !important}.select2-dropdown .select2-results__option{margin-bottom:0}.select2-container .select2-dropdown{z-index:900000}.select2-container .select2-dropdown .select2-search__field{line-height:1.4;min-height:0}.acf-link .link-wrap{display:none;border:#ccd0d4 solid 1px;border-radius:3px;padding:5px;line-height:26px;background:#fff;word-wrap:break-word;word-break:break-all}.acf-link .link-wrap .link-title{padding:0 5px}.acf-link.-value .button{display:none}.acf-link.-value .acf-icon.-link-ext{display:none}.acf-link.-value .link-wrap{display:inline-block}.acf-link.-external .acf-icon.-link-ext{display:inline-block}#wp-link-backdrop{z-index:900000 !important}#wp-link-wrap{z-index:900001 !important}ul.acf-radio-list,ul.acf-checkbox-list{background:rgba(0,0,0,0);border:1px solid rgba(0,0,0,0);position:relative;padding:1px;margin:0}ul.acf-radio-list:focus-within,ul.acf-checkbox-list:focus-within{border:1px solid #a5d2e7;border-radius:6px}ul.acf-radio-list li,ul.acf-checkbox-list li{font-size:13px;line-height:22px;margin:0;position:relative;word-wrap:break-word}ul.acf-radio-list li label,ul.acf-checkbox-list li label{display:inline}ul.acf-radio-list li input[type=checkbox],ul.acf-radio-list li input[type=radio],ul.acf-checkbox-list li input[type=checkbox],ul.acf-checkbox-list li input[type=radio]{margin:-1px 4px 0 0;vertical-align:middle}ul.acf-radio-list li input[type=text],ul.acf-checkbox-list li input[type=text]{width:auto;vertical-align:middle;margin:2px 0}ul.acf-radio-list li span,ul.acf-checkbox-list li span{float:none}ul.acf-radio-list li i,ul.acf-checkbox-list li i{vertical-align:middle}ul.acf-radio-list.acf-hl li,ul.acf-checkbox-list.acf-hl li{margin-right:20px;clear:none}html[dir=rtl] ul.acf-radio-list input[type=checkbox],html[dir=rtl] ul.acf-radio-list input[type=radio],html[dir=rtl] ul.acf-checkbox-list input[type=checkbox],html[dir=rtl] ul.acf-checkbox-list input[type=radio]{margin-left:4px;margin-right:0}.acf-button-group{display:inline-block}.acf-button-group label{display:inline-block;border:#7e8993 solid 1px;position:relative;z-index:1;padding:5px 10px;background:#fff}.acf-button-group label:hover{color:#016087;background:#f3f5f6;border-color:#0071a1;z-index:2}.acf-button-group label.selected{border-color:#007cba;background:#008dd4;color:#fff;z-index:2}.acf-button-group input{display:none !important}.acf-button-group{padding-left:1px;display:inline-flex;flex-direction:row;flex-wrap:nowrap}.acf-button-group label{margin:0 0 0 -1px;flex:1;text-align:center;white-space:nowrap}.acf-button-group label:first-child{border-radius:3px 0 0 3px}html[dir=rtl] .acf-button-group label:first-child{border-radius:0 3px 3px 0}.acf-button-group label:last-child{border-radius:0 3px 3px 0}html[dir=rtl] .acf-button-group label:last-child{border-radius:3px 0 0 3px}.acf-button-group label:only-child{border-radius:3px}.acf-button-group.-vertical{padding-left:0;padding-top:1px;flex-direction:column}.acf-button-group.-vertical label{margin:-1px 0 0 0}.acf-button-group.-vertical label:first-child{border-radius:3px 3px 0 0}.acf-button-group.-vertical label:last-child{border-radius:0 0 3px 3px}.acf-button-group.-vertical label:only-child{border-radius:3px}.acf-admin-3-8 .acf-button-group label{border-color:#ccd0d4}.acf-admin-3-8 .acf-button-group label:hover{border-color:#0071a1}.acf-admin-3-8 .acf-button-group label.selected{border-color:#007cba}.acf-admin-page .acf-button-group{display:flex;align-items:stretch;align-content:center;height:40px;border-radius:6px;box-shadow:0px 1px 2px rgba(16,24,40,.1)}.acf-admin-page .acf-button-group label{display:inline-flex;align-items:center;align-content:center;border:#d0d5dd solid 1px;padding:6px 16px;color:#475467;font-weight:500}.acf-admin-page .acf-button-group label:hover{color:#0783be}.acf-admin-page .acf-button-group label.selected{background:#f9fafb;color:#0783be}.acf-admin-page .select2-container.-acf .select2-selection--multiple .select2-selection__choice{display:inline-flex;align-items:center;margin-top:8px;margin-left:2px;position:relative;padding-top:4px;padding-right:auto;padding-bottom:4px;padding-left:8px;background-color:#ebf5fa;border-color:#a5d2e7;color:#0783be}.acf-admin-page .select2-container.-acf .select2-selection--multiple .select2-selection__choice .select2-selection__choice__remove{order:2;width:14px;height:14px;margin-right:0;margin-left:4px;color:#6bb5d8;text-indent:100%;white-space:nowrap;overflow:hidden}.acf-admin-page .select2-container.-acf .select2-selection--multiple .select2-selection__choice .select2-selection__choice__remove:hover{color:#0783be}.acf-admin-page .select2-container.-acf .select2-selection--multiple .select2-selection__choice .select2-selection__choice__remove:before{content:"";display:block;width:14px;height:14px;top:0;left:0;background-color:currentColor;border:none;border-radius:0;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-image:url("../../images/icons/icon-close.svg");mask-image:url("../../images/icons/icon-close.svg")}.acf-checkbox-list .button{margin:10px 0 0}.acf-switch{display:inline-block;border-radius:5px;cursor:pointer;position:relative;background:#f5f5f5;height:30px;vertical-align:middle;border:#7e8993 solid 1px;-webkit-transition:background .25s ease;-moz-transition:background .25s ease;-o-transition:background .25s ease;transition:background .25s ease}.acf-switch span{display:inline-block;float:left;text-align:center;font-size:13px;line-height:22px;padding:4px 10px;min-width:15px}.acf-switch span i{vertical-align:middle}.acf-switch .acf-switch-on{color:#fff;text-shadow:#007cba 0 1px 0}.acf-switch .acf-switch-slider{position:absolute;top:2px;left:2px;bottom:2px;right:50%;z-index:1;background:#fff;border-radius:3px;border:#7e8993 solid 1px;-webkit-transition:all .25s ease;-moz-transition:all .25s ease;-o-transition:all .25s ease;transition:all .25s ease;transition-property:left,right}.acf-switch:hover,.acf-switch.-focus{border-color:#0071a1;background:#f3f5f6;color:#016087}.acf-switch:hover .acf-switch-slider,.acf-switch.-focus .acf-switch-slider{border-color:#0071a1}.acf-switch.-on{background:#0d99d5;border-color:#007cba}.acf-switch.-on .acf-switch-slider{left:50%;right:2px;border-color:#007cba}.acf-switch.-on:hover{border-color:#007cba}.acf-switch+span{margin-left:6px}.acf-admin-3-8 .acf-switch{border-color:#ccd0d4}.acf-admin-3-8 .acf-switch .acf-switch-slider{border-color:#ccd0d4}.acf-admin-3-8 .acf-switch:hover,.acf-admin-3-8 .acf-switch.-focus{border-color:#0071a1}.acf-admin-3-8 .acf-switch:hover .acf-switch-slider,.acf-admin-3-8 .acf-switch.-focus .acf-switch-slider{border-color:#0071a1}.acf-admin-3-8 .acf-switch.-on{border-color:#007cba}.acf-admin-3-8 .acf-switch.-on .acf-switch-slider{border-color:#007cba}.acf-admin-3-8 .acf-switch.-on:hover{border-color:#007cba}.acf-switch-input{opacity:0;position:absolute;margin:0}.acf-admin-single-field-group .acf-true-false{border:1px solid rgba(0,0,0,0)}.acf-admin-single-field-group .acf-true-false:focus-within{border:1px solid #399ccb;border-radius:120px}.compat-item .acf-true-false .message{float:none;padding:0;vertical-align:middle}.acf-google-map{position:relative;border:#ccd0d4 solid 1px;background:#fff}.acf-google-map .title{position:relative;border-bottom:#ccd0d4 solid 1px}.acf-google-map .title .search{margin:0;font-size:14px;line-height:30px;height:40px;padding:5px 10px;border:0 none;box-shadow:none;border-radius:0;font-family:inherit;cursor:text}.acf-google-map .title .acf-loading{position:absolute;top:10px;right:11px;display:none}.acf-google-map .title .acf-icon:active{display:inline-block !important}.acf-google-map .canvas{height:400px}.acf-google-map:hover .title .acf-actions{display:block}.acf-google-map .title .acf-icon.-location{display:inline-block}.acf-google-map .title .acf-icon.-cancel,.acf-google-map .title .acf-icon.-search{display:none}.acf-google-map.-value .title .search{font-weight:bold}.acf-google-map.-value .title .acf-icon.-location{display:none}.acf-google-map.-value .title .acf-icon.-cancel{display:inline-block}.acf-google-map.-searching .title .acf-icon.-location{display:none}.acf-google-map.-searching .title .acf-icon.-cancel,.acf-google-map.-searching .title .acf-icon.-search{display:inline-block}.acf-google-map.-searching .title .acf-actions{display:block}.acf-google-map.-searching .title .search{font-weight:normal !important}.acf-google-map.-loading .title a{display:none !important}.acf-google-map.-loading .title i{display:inline-block}.pac-container{border-width:1px 0;box-shadow:none}.pac-container:after{display:none}.pac-container .pac-item:first-child{border-top:0 none}.pac-container .pac-item{padding:5px 10px;cursor:pointer}html[dir=rtl] .pac-container .pac-item{text-align:right}.acf-relationship{background:#fff;border:#ccd0d4 solid 1px}.acf-relationship .filters{border-bottom:#ccd0d4 solid 1px;background:#fff}.acf-relationship .filters:after{display:block;clear:both;content:""}.acf-relationship .filters .filter{margin:0;padding:0;float:left;width:100%;box-sizing:border-box;padding:7px 7px 7px 0}.acf-relationship .filters .filter:first-child{padding-left:7px}.acf-relationship .filters .filter input,.acf-relationship .filters .filter select{margin:0;float:none}.acf-relationship .filters .filter input:focus,.acf-relationship .filters .filter input:active,.acf-relationship .filters .filter select:focus,.acf-relationship .filters .filter select:active{outline:none;box-shadow:none}.acf-relationship .filters .filter input{border-color:rgba(0,0,0,0);box-shadow:none;padding-left:3px;padding-right:3px}.acf-relationship .filters.-f2 .filter{width:50%}.acf-relationship .filters.-f3 .filter{width:25%}.acf-relationship .filters.-f3 .filter.-search{width:50%}.acf-relationship .list{margin:0;padding:5px;height:160px;overflow:auto}.acf-relationship .list .acf-rel-label,.acf-relationship .list .acf-rel-item,.acf-relationship .list p{padding:5px;margin:0;display:block;position:relative;min-height:18px}.acf-relationship .list .acf-rel-label{font-weight:bold}.acf-relationship .list .acf-rel-item{cursor:pointer}.acf-relationship .list .acf-rel-item b{text-decoration:underline;font-weight:normal}.acf-relationship .list .acf-rel-item .thumbnail{background:#e0e0e0;width:22px;height:22px;float:left;margin:-2px 5px 0 0}.acf-relationship .list .acf-rel-item .thumbnail img{max-width:22px;max-height:22px;margin:0 auto;display:block}.acf-relationship .list .acf-rel-item .thumbnail.-icon{background:#fff}.acf-relationship .list .acf-rel-item .thumbnail.-icon img{max-height:20px;margin-top:1px}.acf-relationship .list .acf-rel-item:hover{background:#3875d7;color:#fff}.acf-relationship .list .acf-rel-item:hover .thumbnail{background:#a2bfec}.acf-relationship .list .acf-rel-item:hover .thumbnail.-icon{background:#fff}.acf-relationship .list .acf-rel-item.disabled{opacity:.5}.acf-relationship .list .acf-rel-item.disabled:hover{background:rgba(0,0,0,0);color:#333;cursor:default}.acf-relationship .list .acf-rel-item.disabled:hover .thumbnail{background:#e0e0e0}.acf-relationship .list .acf-rel-item.disabled:hover .thumbnail.-icon{background:#fff}.acf-relationship .list ul{padding-bottom:5px}.acf-relationship .list ul .acf-rel-label,.acf-relationship .list ul .acf-rel-item,.acf-relationship .list ul p{padding-left:20px}.acf-relationship .selection{position:relative}.acf-relationship .selection:after{display:block;clear:both;content:""}.acf-relationship .selection .values,.acf-relationship .selection .choices{width:50%;background:#fff;float:left}.acf-relationship .selection .choices{background:#f9f9f9}.acf-relationship .selection .choices .list{border-right:#dfdfdf solid 1px}.acf-relationship .selection .values .acf-icon{position:absolute;top:4px;right:7px;display:none}html[dir=rtl] .acf-relationship .selection .values .acf-icon{right:auto;left:7px}.acf-relationship .selection .values .acf-rel-item:hover .acf-icon{display:block}.acf-relationship .selection .values .acf-rel-item{cursor:move}.acf-relationship .selection .values .acf-rel-item b{text-decoration:none}.menu-item .acf-relationship ul{width:auto}.menu-item .acf-relationship li{display:block}.acf-editor-wrap.delay .acf-editor-toolbar{content:"";display:block;background:#f5f5f5;border-bottom:#ddd solid 1px;color:#555d66;padding:10px}.acf-editor-wrap.delay .wp-editor-area{padding:10px;border:none;color:inherit !important}.acf-editor-wrap iframe{min-height:200px}.acf-editor-wrap .wp-editor-container{border:1px solid #ccd0d4;box-shadow:none !important}.acf-editor-wrap .wp-editor-tabs{box-sizing:content-box}.acf-editor-wrap .wp-switch-editor{border-color:#ccd0d4;border-bottom-color:rgba(0,0,0,0)}#mce_fullscreen_container{z-index:900000 !important}.acf-field-tab{display:none !important}.hidden-by-tab{display:none !important}.acf-tab-wrap{clear:both;z-index:1}.acf-tab-group{border-bottom:#ccc solid 1px;padding:10px 10px 0}.acf-tab-group li{margin:0 .5em 0 0}.acf-tab-group li a{padding:5px 10px;display:block;color:#555;font-size:14px;font-weight:600;line-height:24px;border:#ccc solid 1px;border-bottom:0 none;text-decoration:none;background:#e5e5e5;transition:none}.acf-tab-group li a:hover{background:#fff}.acf-tab-group li a:focus{outline:none;box-shadow:none}.acf-tab-group li a:empty{display:none}html[dir=rtl] .acf-tab-group li{margin:0 0 0 .5em}.acf-tab-group li.active a{background:#f1f1f1;color:#000;padding-bottom:6px;margin-bottom:-1px;position:relative;z-index:1}.acf-fields>.acf-tab-wrap{background:#f9f9f9}.acf-fields>.acf-tab-wrap .acf-tab-group{position:relative;border-top:#ccd0d4 solid 1px;border-bottom:#ccd0d4 solid 1px;z-index:2;margin-bottom:-1px}.acf-admin-3-8 .acf-fields>.acf-tab-wrap .acf-tab-group{border-color:#dfdfdf}.acf-fields.-left>.acf-tab-wrap .acf-tab-group{padding-left:20%}@media screen and (max-width: 640px){.acf-fields.-left>.acf-tab-wrap .acf-tab-group{padding-left:10px}}html[dir=rtl] .acf-fields.-left>.acf-tab-wrap .acf-tab-group{padding-left:0;padding-right:20%}@media screen and (max-width: 850px){html[dir=rtl] .acf-fields.-left>.acf-tab-wrap .acf-tab-group{padding-right:10px}}.acf-tab-wrap.-left .acf-tab-group{position:absolute;left:0;width:20%;border:0 none;padding:0 !important;margin:1px 0 0}.acf-tab-wrap.-left .acf-tab-group li{float:none;margin:-1px 0 0}.acf-tab-wrap.-left .acf-tab-group li a{border:1px solid #ededed;font-size:13px;line-height:18px;color:#0073aa;padding:10px;margin:0;font-weight:normal;border-width:1px 0;border-radius:0;background:rgba(0,0,0,0)}.acf-tab-wrap.-left .acf-tab-group li a:hover{color:#00a0d2}.acf-tab-wrap.-left .acf-tab-group li.active a{border-color:#dfdfdf;color:#000;margin-right:-1px;background:#fff}html[dir=rtl] .acf-tab-wrap.-left .acf-tab-group{left:auto;right:0}html[dir=rtl] .acf-tab-wrap.-left .acf-tab-group li.active a{margin-right:0;margin-left:-1px}.acf-field+.acf-tab-wrap.-left:before{content:"";display:block;position:relative;z-index:1;height:10px;border-top:#dfdfdf solid 1px;border-bottom:#dfdfdf solid 1px;margin-bottom:-1px}.acf-tab-wrap.-left:first-child .acf-tab-group li:first-child a{border-top:none}.acf-fields.-sidebar{padding:0 0 0 20% !important;position:relative}.acf-fields.-sidebar:before{content:"";display:block;position:absolute;top:0;left:0;width:20%;bottom:0;border-right:#dfdfdf solid 1px;background:#f9f9f9;z-index:1}html[dir=rtl] .acf-fields.-sidebar{padding:0 20% 0 0 !important}html[dir=rtl] .acf-fields.-sidebar:before{border-left:#dfdfdf solid 1px;border-right-width:0;left:auto;right:0}.acf-fields.-sidebar.-left{padding:0 0 0 180px !important}html[dir=rtl] .acf-fields.-sidebar.-left{padding:0 180px 0 0 !important}.acf-fields.-sidebar.-left:before{background:#f1f1f1;border-color:#dfdfdf;width:180px}.acf-fields.-sidebar.-left>.acf-tab-wrap.-left .acf-tab-group{width:180px}.acf-fields.-sidebar.-left>.acf-tab-wrap.-left .acf-tab-group li a{border-color:#e4e4e4}.acf-fields.-sidebar.-left>.acf-tab-wrap.-left .acf-tab-group li.active a{background:#f9f9f9}.acf-fields.-sidebar>.acf-field-tab+.acf-field{border-top:none}.acf-fields.-clear>.acf-tab-wrap{background:rgba(0,0,0,0)}.acf-fields.-clear>.acf-tab-wrap .acf-tab-group{margin-top:0;border-top:none;padding-left:0;padding-right:0}.acf-fields.-clear>.acf-tab-wrap .acf-tab-group li a{background:#e5e5e5}.acf-fields.-clear>.acf-tab-wrap .acf-tab-group li a:hover{background:#fff}.acf-fields.-clear>.acf-tab-wrap .acf-tab-group li.active a{background:#f1f1f1}.acf-postbox.seamless>.acf-fields.-sidebar{margin-left:0 !important}.acf-postbox.seamless>.acf-fields.-sidebar:before{background:rgba(0,0,0,0)}.acf-postbox.seamless>.acf-fields>.acf-tab-wrap{background:rgba(0,0,0,0);margin-bottom:10px;padding-left:12px;padding-right:12px}.acf-postbox.seamless>.acf-fields>.acf-tab-wrap .acf-tab-group{border-top:0 none;border-color:#ccd0d4}.acf-postbox.seamless>.acf-fields>.acf-tab-wrap .acf-tab-group li a{background:#e5e5e5;border-color:#ccd0d4}.acf-postbox.seamless>.acf-fields>.acf-tab-wrap .acf-tab-group li a:hover{background:#fff}.acf-postbox.seamless>.acf-fields>.acf-tab-wrap .acf-tab-group li.active a{background:#f1f1f1}.acf-postbox.seamless>.acf-fields>.acf-tab-wrap.-left:before{border-top:none;height:auto}.acf-postbox.seamless>.acf-fields>.acf-tab-wrap.-left .acf-tab-group{margin-bottom:0}.acf-postbox.seamless>.acf-fields>.acf-tab-wrap.-left .acf-tab-group li a{border-width:1px 0 1px 1px !important;border-color:#ccc;background:#e5e5e5}.acf-postbox.seamless>.acf-fields>.acf-tab-wrap.-left .acf-tab-group li.active a{background:#f1f1f1}.menu-edit .acf-fields.-clear>.acf-tab-wrap .acf-tab-group li a,.widget .acf-fields.-clear>.acf-tab-wrap .acf-tab-group li a{background:#f1f1f1}.menu-edit .acf-fields.-clear>.acf-tab-wrap .acf-tab-group li a:hover,.menu-edit .acf-fields.-clear>.acf-tab-wrap .acf-tab-group li.active a,.widget .acf-fields.-clear>.acf-tab-wrap .acf-tab-group li a:hover,.widget .acf-fields.-clear>.acf-tab-wrap .acf-tab-group li.active a{background:#fff}.compat-item .acf-tab-wrap td{display:block}.acf-gallery-side .acf-tab-wrap{border-top:0 none !important}.acf-gallery-side .acf-tab-wrap .acf-tab-group{margin:10px 0 !important;padding:0 !important}.acf-gallery-side .acf-tab-group li.active a{background:#f9f9f9 !important}.widget .acf-tab-group{border-bottom-color:#e8e8e8}.widget .acf-tab-group li a{background:#f1f1f1}.widget .acf-tab-group li.active a{background:#fff}.media-modal.acf-expanded .compat-attachment-fields>tbody>tr.acf-tab-wrap .acf-tab-group{padding-left:23%;border-bottom-color:#ddd}.form-table>tbody>tr.acf-tab-wrap .acf-tab-group{padding:0 5px 0 210px}html[dir=rtl] .form-table>tbody>tr.acf-tab-wrap .acf-tab-group{padding:0 210px 0 5px}.acf-oembed{position:relative;border:#ccd0d4 solid 1px;background:#fff}.acf-oembed .title{position:relative;border-bottom:#ccd0d4 solid 1px;padding:5px 10px}.acf-oembed .title .input-search{margin:0;font-size:14px;line-height:30px;height:30px;padding:0;border:0 none;box-shadow:none;border-radius:0;font-family:inherit;cursor:text}.acf-oembed .title .acf-actions{padding:6px}.acf-oembed .canvas{position:relative;min-height:250px;background:#f9f9f9}.acf-oembed .canvas .canvas-media{position:relative;z-index:1}.acf-oembed .canvas iframe{display:block;margin:0;padding:0;width:100%}.acf-oembed .canvas .acf-icon.-picture{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);z-index:0;height:42px;width:42px;font-size:42px;color:#999}.acf-oembed .canvas .acf-loading-overlay{background:rgba(255,255,255,.9)}.acf-oembed .canvas .canvas-error{position:absolute;top:50%;left:0%;right:0%;margin:-9px 0 0 0;text-align:center;display:none}.acf-oembed .canvas .canvas-error p{padding:8px;margin:0;display:inline}.acf-oembed.has-value .canvas{min-height:50px}.acf-oembed.has-value .input-search{font-weight:bold}.acf-oembed.has-value .title:hover .acf-actions{display:block}.acf-image-uploader{position:relative}.acf-image-uploader:after{display:block;clear:both;content:""}.acf-image-uploader p{margin:0}.acf-image-uploader .image-wrap{position:relative;float:left}.acf-image-uploader .image-wrap img{max-width:100%;max-height:100%;width:auto;height:auto;display:block;min-width:30px;min-height:30px;background:#f1f1f1;margin:0;padding:0}.acf-image-uploader .image-wrap img[src$=".svg"]{min-height:100px;min-width:100px}.acf-image-uploader .image-wrap:hover .acf-actions{display:block}.acf-image-uploader input.button{width:auto}html[dir=rtl] .acf-image-uploader .image-wrap{float:right}.acf-file-uploader{position:relative}.acf-file-uploader p{margin:0}.acf-file-uploader .file-wrap{border:#ccd0d4 solid 1px;min-height:84px;position:relative;background:#fff}.acf-file-uploader .file-icon{position:absolute;top:0;left:0;bottom:0;padding:10px;background:#f1f1f1;border-right:#d5d9dd solid 1px}.acf-file-uploader .file-icon img{display:block;padding:0;margin:0;max-width:48px}.acf-file-uploader .file-info{padding:10px;margin-left:69px}.acf-file-uploader .file-info p{margin:0 0 2px;font-size:13px;line-height:1.4em;word-break:break-all}.acf-file-uploader .file-info a{text-decoration:none}.acf-file-uploader:hover .acf-actions{display:block}html[dir=rtl] .acf-file-uploader .file-icon{left:auto;right:0;border-left:#e5e5e5 solid 1px;border-right:none}html[dir=rtl] .acf-file-uploader .file-info{margin-right:69px;margin-left:0}.acf-ui-datepicker .ui-datepicker{z-index:900000 !important}.acf-ui-datepicker .ui-datepicker .ui-widget-header a{cursor:pointer;transition:none}.acf-ui-datepicker .ui-state-highlight.ui-state-hover{border:1px solid #98b7e8 !important;background:#98b7e8 !important;font-weight:normal !important;color:#fff !important}.acf-ui-datepicker .ui-state-highlight.ui-state-active{border:1px solid #3875d7 !important;background:#3875d7 !important;font-weight:normal !important;color:#fff !important}.acf-field-separator .acf-label{margin-bottom:0}.acf-field-separator .acf-label label{font-weight:normal}.acf-field-separator .acf-input{display:none}.acf-fields>.acf-field-separator{background:#f9f9f9;border-bottom:1px solid #dfdfdf;border-top:1px solid #dfdfdf;margin-bottom:-1px;z-index:2}.acf-taxonomy-field{position:relative}.acf-taxonomy-field .categorychecklist-holder{border:#ccd0d4 solid 1px;border-radius:3px;max-height:200px;overflow:auto}.acf-taxonomy-field .acf-checkbox-list{margin:0;padding:10px}.acf-taxonomy-field .acf-checkbox-list ul.children{padding-left:18px}.acf-taxonomy-field:hover .acf-actions{display:block}.acf-taxonomy-field[data-ftype=select] .acf-actions{padding:0;margin:-9px}.acf-range-wrap .acf-append,.acf-range-wrap .acf-prepend{display:inline-block;vertical-align:middle;line-height:28px;margin:0 7px 0 0}.acf-range-wrap .acf-append{margin:0 0 0 7px}.acf-range-wrap input[type=range]{display:inline-block;padding:0;margin:0;vertical-align:middle;height:28px}.acf-range-wrap input[type=range]:focus{outline:none}.acf-range-wrap input[type=number]{display:inline-block;min-width:5em;padding-right:4px;margin-left:10px;vertical-align:middle}html[dir=rtl] .acf-range-wrap input[type=number]{margin-right:10px;margin-left:0}html[dir=rtl] .acf-range-wrap .acf-append{margin:0 7px 0 0}html[dir=rtl] .acf-range-wrap .acf-prepend{margin:0 0 0 7px}.acf-accordion{margin:-1px 0;padding:0;background:#fff;border-top:1px solid #d5d9dd;border-bottom:1px solid #d5d9dd;z-index:1}.acf-accordion .acf-accordion-title{margin:0;padding:12px;font-weight:bold;cursor:pointer;font-size:inherit;font-size:13px;line-height:1.4em}.acf-accordion .acf-accordion-title:hover{background:#f3f4f5}.acf-accordion .acf-accordion-title label{margin:0;padding:0;font-size:13px;line-height:1.4em}.acf-accordion .acf-accordion-title p{font-weight:normal}.acf-accordion .acf-accordion-title .acf-accordion-icon{float:right}.acf-accordion .acf-accordion-title svg.acf-accordion-icon{position:absolute;right:10px;top:50%;transform:translateY(-50%);color:#191e23;fill:currentColor}.acf-accordion .acf-accordion-content{margin:0;padding:0 12px 12px;display:none}.acf-accordion.-open>.acf-accordion-content{display:block}.acf-field.acf-accordion{margin:-1px 0;padding:0 !important;border-color:#d5d9dd}.acf-field.acf-accordion .acf-label.acf-accordion-title{padding:12px;width:auto;float:none;width:auto}.acf-field.acf-accordion .acf-input.acf-accordion-content{padding:0;float:none;width:auto}.acf-field.acf-accordion .acf-input.acf-accordion-content>.acf-fields{border-top:#eee solid 1px}.acf-field.acf-accordion .acf-input.acf-accordion-content>.acf-fields.-clear{padding:0 12px 15px}.acf-fields.-left>.acf-field.acf-accordion:before{display:none}.acf-fields.-left>.acf-field.acf-accordion .acf-accordion-title{width:auto;margin:0 !important;padding:12px;float:none !important}.acf-fields.-left>.acf-field.acf-accordion .acf-accordion-content{padding:0 !important}.acf-fields.-clear>.acf-field.acf-accordion{border:#ccc solid 1px;background:rgba(0,0,0,0)}.acf-fields.-clear>.acf-field.acf-accordion+.acf-field.acf-accordion{margin-top:-16px}tr.acf-field.acf-accordion{background:rgba(0,0,0,0)}tr.acf-field.acf-accordion>.acf-input{padding:0 !important;border:#ccc solid 1px}tr.acf-field.acf-accordion .acf-accordion-content{padding:0 12px 12px}#addtag div.acf-field.error{border:0 none;padding:8px 0}#addtag>.acf-field.acf-accordion{padding-right:0;margin-right:5%}#addtag>.acf-field.acf-accordion+p.submit{margin-top:0}tr.acf-accordion{margin:15px 0 !important}tr.acf-accordion+tr.acf-accordion{margin-top:-16px !important}.acf-postbox.seamless>.acf-fields>.acf-accordion{margin-left:12px;margin-right:12px;border:#ccd0d4 solid 1px}.widget .widget-content>.acf-field.acf-accordion{border:#dfdfdf solid 1px;margin-bottom:10px}.widget .widget-content>.acf-field.acf-accordion .acf-accordion-title{margin-bottom:0}.widget .widget-content>.acf-field.acf-accordion+.acf-field.acf-accordion{margin-top:-11px}.media-modal .compat-attachment-fields .acf-field.acf-accordion+.acf-field.acf-accordion{margin-top:-1px}.media-modal .compat-attachment-fields .acf-field.acf-accordion>.acf-input{width:100%}.media-modal .compat-attachment-fields .acf-field.acf-accordion .compat-attachment-fields>tbody>tr>td{padding-bottom:5px}.block-editor .edit-post-sidebar .acf-postbox>.postbox-header,.block-editor .edit-post-sidebar .acf-postbox>.hndle{border-bottom-width:0 !important}.block-editor .edit-post-sidebar .acf-postbox.closed>.postbox-header,.block-editor .edit-post-sidebar .acf-postbox.closed>.hndle{border-bottom-width:1px !important}.block-editor .edit-post-sidebar .acf-fields{min-height:1px;overflow:auto}.block-editor .edit-post-sidebar .acf-fields>.acf-field{border-width:0;border-color:#e2e4e7;margin:16px;padding:0;width:auto !important;min-height:0 !important;float:none !important}.block-editor .edit-post-sidebar .acf-fields>.acf-field>.acf-label{margin-bottom:5px}.block-editor .edit-post-sidebar .acf-fields>.acf-field>.acf-label label{font-weight:normal}.block-editor .edit-post-sidebar .acf-fields>.acf-field.acf-accordion{padding:0;margin:0;border-top-width:1px}.block-editor .edit-post-sidebar .acf-fields>.acf-field.acf-accordion:first-child{border-top-width:0}.block-editor .edit-post-sidebar .acf-fields>.acf-field.acf-accordion .acf-accordion-title{margin:0;padding:15px}.block-editor .edit-post-sidebar .acf-fields>.acf-field.acf-accordion .acf-accordion-title label{font-weight:500;color:#1e1e1e}.block-editor .edit-post-sidebar .acf-fields>.acf-field.acf-accordion .acf-accordion-title svg.acf-accordion-icon{right:16px}.block-editor .edit-post-sidebar .acf-fields>.acf-field.acf-accordion .acf-accordion-content>.acf-fields{border-top-width:0}.acf-field-setting-prefix_label p.description,.acf-field-setting-prefix_name p.description{order:3;margin-top:0;margin-left:16px}.acf-field-setting-prefix_label p.description code,.acf-field-setting-prefix_name p.description code{padding-top:4px;padding-right:6px;padding-bottom:4px;padding-left:6px;background-color:#f2f4f7;border-radius:4px;color:#667085}.acf-fields>.acf-tab-wrap:first-child .acf-tab-group{border-top:none}.acf-fields>.acf-tab-wrap .acf-tab-group li.active a{background:#fff}.acf-fields>.acf-tab-wrap .acf-tab-group li a{background:#f1f1f1;border-color:#ccd0d4}.acf-fields>.acf-tab-wrap .acf-tab-group li a:hover{background:#fff}.form-table>tbody>.acf-field>.acf-label{padding:20px 10px 20px 0;width:210px}html[dir=rtl] .form-table>tbody>.acf-field>.acf-label{padding:20px 0 20px 10px}.form-table>tbody>.acf-field>.acf-label label{font-size:14px;color:#23282d}.form-table>tbody>.acf-field>.acf-input{padding:15px 10px}html[dir=rtl] .form-table>tbody>.acf-field>.acf-input{padding:15px 10px 15px 5%}.form-table>tbody>.acf-tab-wrap td{padding:15px 5% 15px 0}html[dir=rtl] .form-table>tbody>.acf-tab-wrap td{padding:15px 0 15px 5%}.form-table>tbody .form-table th.acf-th{width:auto}#your-profile .acf-field input[type=text],#your-profile .acf-field input[type=password],#your-profile .acf-field input[type=number],#your-profile .acf-field input[type=search],#your-profile .acf-field input[type=email],#your-profile .acf-field input[type=url],#your-profile .acf-field select,#createuser .acf-field input[type=text],#createuser .acf-field input[type=password],#createuser .acf-field input[type=number],#createuser .acf-field input[type=search],#createuser .acf-field input[type=email],#createuser .acf-field input[type=url],#createuser .acf-field select{max-width:25em}#your-profile .acf-field textarea,#createuser .acf-field textarea{max-width:500px}#your-profile .acf-field .acf-field input[type=text],#your-profile .acf-field .acf-field input[type=password],#your-profile .acf-field .acf-field input[type=number],#your-profile .acf-field .acf-field input[type=search],#your-profile .acf-field .acf-field input[type=email],#your-profile .acf-field .acf-field input[type=url],#your-profile .acf-field .acf-field textarea,#your-profile .acf-field .acf-field select,#createuser .acf-field .acf-field input[type=text],#createuser .acf-field .acf-field input[type=password],#createuser .acf-field .acf-field input[type=number],#createuser .acf-field .acf-field input[type=search],#createuser .acf-field .acf-field input[type=email],#createuser .acf-field .acf-field input[type=url],#createuser .acf-field .acf-field textarea,#createuser .acf-field .acf-field select{max-width:none}#registerform h2{margin:1em 0}#registerform .acf-field{margin-top:0}#registerform .acf-field .acf-label{margin-bottom:0}#registerform .acf-field .acf-label label{font-weight:normal;line-height:1.5}#registerform p.submit{text-align:right}#acf-term-fields{padding-right:5%}#acf-term-fields>.acf-field>.acf-label{margin:0}#acf-term-fields>.acf-field>.acf-label label{font-size:12px;font-weight:normal}p.submit .spinner,p.submit .acf-spinner{vertical-align:top;float:none;margin:4px 4px 0}#edittag .acf-fields.-left>.acf-field{padding-left:220px}#edittag .acf-fields.-left>.acf-field:before{width:209px}#edittag .acf-fields.-left>.acf-field>.acf-label{width:220px;margin-left:-220px;padding:0 10px}#edittag .acf-fields.-left>.acf-field>.acf-input{padding:0}#edittag>.acf-fields.-left{width:96%}#edittag>.acf-fields.-left>.acf-field>.acf-label{padding-left:0}.editcomment td:first-child{white-space:nowrap;width:131px}#widgets-right .widget .acf-field .description{padding-left:0;padding-right:0}.acf-widget-fields>.acf-field .acf-label{margin-bottom:5px}.acf-widget-fields>.acf-field .acf-label label{font-weight:normal;margin:0}.acf-menu-settings{border-top:1px solid #eee;margin-top:2em}.acf-menu-settings.-seamless{border-top:none;margin-top:15px}.acf-menu-settings.-seamless>h2{display:none}.acf-menu-settings .list li{display:block;margin-bottom:0}.acf-fields.acf-menu-item-fields{clear:both;padding-top:1px}.acf-fields.acf-menu-item-fields>.acf-field{margin:5px 0;padding-right:10px}.acf-fields.acf-menu-item-fields>.acf-field .acf-label{margin-bottom:0}.acf-fields.acf-menu-item-fields>.acf-field .acf-label label{font-style:italic;font-weight:normal}#post .compat-attachment-fields .compat-field-acf-form-data{display:none}#post .compat-attachment-fields,#post .compat-attachment-fields>tbody,#post .compat-attachment-fields>tbody>tr,#post .compat-attachment-fields>tbody>tr>th,#post .compat-attachment-fields>tbody>tr>td{display:block}#post .compat-attachment-fields>tbody>.acf-field{margin:15px 0}#post .compat-attachment-fields>tbody>.acf-field>.acf-label{margin:0}#post .compat-attachment-fields>tbody>.acf-field>.acf-label label{margin:0;padding:0}#post .compat-attachment-fields>tbody>.acf-field>.acf-label label p{margin:0 0 3px !important}#post .compat-attachment-fields>tbody>.acf-field>.acf-input{margin:0}.media-modal .compat-attachment-fields td.acf-input table{display:table;table-layout:auto}.media-modal .compat-attachment-fields td.acf-input table tbody{display:table-row-group}.media-modal .compat-attachment-fields td.acf-input table tr{display:table-row}.media-modal .compat-attachment-fields td.acf-input table td,.media-modal .compat-attachment-fields td.acf-input table th{display:table-cell}.media-modal .compat-attachment-fields>tbody>.acf-field{margin:5px 0}.media-modal .compat-attachment-fields>tbody>.acf-field>.acf-label{min-width:30%;margin:0;padding:0;float:left;text-align:right;display:block;float:left}.media-modal .compat-attachment-fields>tbody>.acf-field>.acf-label>label{padding-top:6px;margin:0;color:#666;font-weight:400;line-height:16px}.media-modal .compat-attachment-fields>tbody>.acf-field>.acf-input{width:65%;margin:0;padding:0;float:right;display:block}.media-modal .compat-attachment-fields>tbody>.acf-field p.description{margin:0}.acf-selection-error{background:#ffebe8;border:1px solid #c00;border-radius:3px;padding:8px;margin:20px 0 0}.acf-selection-error .selection-error-label{background:#c00;border-radius:3px;color:#fff;font-weight:bold;margin-right:8px;padding:2px 4px}.acf-selection-error .selection-error-message{color:#b44;display:block;padding-top:8px;word-wrap:break-word;white-space:pre-wrap}.media-modal .attachment.acf-disabled .thumbnail{opacity:.25 !important}.media-modal .attachment.acf-disabled .attachment-preview:before{background:rgba(0,0,0,.15);z-index:1;position:relative}.media-modal .compat-field-acf-form-data,.media-modal .compat-field-acf-blank{display:none !important}.media-modal .upload-error-message{white-space:pre-wrap}.media-modal .acf-required{padding:0 !important;margin:0 !important;float:none !important;color:red !important}.media-modal .media-sidebar .compat-item{padding-bottom:20px}@media(max-width: 900px){.media-modal .setting span,.media-modal .compat-attachment-fields>tbody>.acf-field>.acf-label{width:98%;float:none;text-align:left;min-height:0;padding:0}.media-modal .setting input,.media-modal .setting textarea,.media-modal .compat-attachment-fields>tbody>.acf-field>.acf-input{float:none;height:auto;max-width:none;width:98%}}.media-modal .acf-expand-details{float:right;padding:8px 10px;margin-right:6px;font-size:13px;height:18px;line-height:18px;color:#666;text-decoration:none}.media-modal .acf-expand-details:focus,.media-modal .acf-expand-details:active{outline:0 none;box-shadow:none;color:#666}.media-modal .acf-expand-details:hover{color:#000}.media-modal .acf-expand-details .is-open{display:none}.media-modal .acf-expand-details .is-closed{display:block}@media(max-width: 640px){.media-modal .acf-expand-details{display:none}}.media-modal.acf-expanded .acf-expand-details .is-open{display:block}.media-modal.acf-expanded .acf-expand-details .is-closed{display:none}.media-modal.acf-expanded .attachments-browser .media-toolbar,.media-modal.acf-expanded .attachments-browser .attachments{right:740px}.media-modal.acf-expanded .media-sidebar{width:708px}.media-modal.acf-expanded .media-sidebar .attachment-info .thumbnail{float:left;max-height:none}.media-modal.acf-expanded .media-sidebar .attachment-info .thumbnail img{max-width:100%;max-height:200px}.media-modal.acf-expanded .media-sidebar .attachment-info .details{float:right}.media-modal.acf-expanded .media-sidebar .attachment-info .thumbnail,.media-modal.acf-expanded .media-sidebar .attachment-details .setting .name,.media-modal.acf-expanded .media-sidebar .compat-attachment-fields>tbody>.acf-field>.acf-label{min-width:20%;margin-right:0}.media-modal.acf-expanded .media-sidebar .attachment-info .details,.media-modal.acf-expanded .media-sidebar .attachment-details .setting input,.media-modal.acf-expanded .media-sidebar .attachment-details .setting textarea,.media-modal.acf-expanded .media-sidebar .attachment-details .setting+.description,.media-modal.acf-expanded .media-sidebar .compat-attachment-fields>tbody>.acf-field>.acf-input{min-width:77%}@media(max-width: 900px){.media-modal.acf-expanded .attachments-browser .media-toolbar{display:none}.media-modal.acf-expanded .attachments{display:none}.media-modal.acf-expanded .media-sidebar{width:auto;max-width:none !important;bottom:0 !important}.media-modal.acf-expanded .media-sidebar .attachment-info .thumbnail{min-width:0;max-width:none;width:30%}.media-modal.acf-expanded .media-sidebar .attachment-info .details{min-width:0;max-width:none;width:67%}}@media(max-width: 640px){.media-modal.acf-expanded .media-sidebar .attachment-info .thumbnail,.media-modal.acf-expanded .media-sidebar .attachment-info .details{width:100%}}.acf-media-modal .media-embed .setting.align,.acf-media-modal .media-embed .setting.link-to{display:none}.acf-media-modal.-edit{left:15%;right:15%;top:100px;bottom:100px}.acf-media-modal.-edit .media-frame-menu,.acf-media-modal.-edit .media-frame-router,.acf-media-modal.-edit .media-frame-content .attachments,.acf-media-modal.-edit .media-frame-content .media-toolbar{display:none}.acf-media-modal.-edit .media-frame-title,.acf-media-modal.-edit .media-frame-content,.acf-media-modal.-edit .media-frame-toolbar,.acf-media-modal.-edit .media-sidebar{width:auto;left:0;right:0}.acf-media-modal.-edit .media-frame-content{top:50px}.acf-media-modal.-edit .media-frame-title{border-bottom:1px solid #dfdfdf;box-shadow:0 4px 4px -4px rgba(0,0,0,.1)}.acf-media-modal.-edit .media-sidebar{padding:0 16px}.acf-media-modal.-edit .media-sidebar .attachment-details{overflow:visible}.acf-media-modal.-edit .media-sidebar .attachment-details>h3,.acf-media-modal.-edit .media-sidebar .attachment-details>h2{display:none}.acf-media-modal.-edit .media-sidebar .attachment-details .attachment-info{background:#fff;border-bottom:#ddd solid 1px;padding:16px;margin:0 -16px 16px}.acf-media-modal.-edit .media-sidebar .attachment-details .thumbnail{margin:0 16px 0 0}.acf-media-modal.-edit .media-sidebar .attachment-details .setting{margin:0 0 5px}.acf-media-modal.-edit .media-sidebar .attachment-details .setting span{margin:0}.acf-media-modal.-edit .media-sidebar .compat-attachment-fields>tbody>.acf-field{margin:0 0 5px}.acf-media-modal.-edit .media-sidebar .compat-attachment-fields>tbody>.acf-field p.description{margin-top:3px}.acf-media-modal.-edit .media-sidebar .media-types-required-info{display:none}@media(max-width: 900px){.acf-media-modal.-edit{top:30px;right:30px;bottom:30px;left:30px}}@media(max-width: 640px){.acf-media-modal.-edit{top:0;right:0;bottom:0;left:0}}@media(max-width: 480px){.acf-media-modal.-edit .media-frame-content{top:40px}}.acf-temp-remove{position:relative;opacity:1;-webkit-transition:all .25s ease;-moz-transition:all .25s ease;-o-transition:all .25s ease;transition:all .25s ease;overflow:hidden}.acf-temp-remove:after{display:block;content:"";position:absolute;top:0;left:0;right:0;bottom:0;z-index:99}.hidden-by-conditional-logic{display:none !important}.hidden-by-conditional-logic.appear-empty{display:table-cell !important}.hidden-by-conditional-logic.appear-empty .acf-input{display:none !important}.acf-postbox.acf-hidden{display:none !important}.acf-attention{transition:border .25s ease-out}.acf-attention.-focused{border:#23282d solid 1px !important;transition:none}tr.acf-attention{transition:box-shadow .25s ease-out;position:relative}tr.acf-attention.-focused{box-shadow:#23282d 0 0 0px 1px !important}#editor .edit-post-layout__metaboxes{padding:0}#editor .edit-post-layout__metaboxes .edit-post-meta-boxes-area{margin:0}#editor .metabox-location-side .postbox-container{float:none}#editor .postbox{color:#444}#editor .postbox>.postbox-header .hndle{border-bottom:none}#editor .postbox>.postbox-header .hndle:hover{background:rgba(0,0,0,0)}#editor .postbox>.postbox-header .handle-actions .handle-order-higher,#editor .postbox>.postbox-header .handle-actions .handle-order-lower{width:1.62rem}#editor .postbox>.postbox-header .handle-actions .acf-hndle-cog{height:44px;line-height:44px}#editor .postbox>.postbox-header:hover{background:#f0f0f0}#editor .postbox:last-child.closed>.postbox-header{border-bottom:none}#editor .postbox:last-child>.inside{border-bottom:none}#editor .block-editor-writing-flow__click-redirect{min-height:50px}body.is-dragging-metaboxes #acf_after_title-sortables{outline:3px dashed #646970;display:flow-root;min-height:60px;margin-bottom:3px !important} diff --git a/assets/build/css/pro/acf-pro-field-group.css b/assets/build/css/pro/acf-pro-field-group.css new file mode 100644 index 0000000..4557083 --- /dev/null +++ b/assets/build/css/pro/acf-pro-field-group.css @@ -0,0 +1,144 @@ +/*!******************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/advanced-custom-fields-pro/assets/src/sass/pro/acf-pro-field-group.scss ***! + \******************************************************************************************************************************************************************************************************************************/ +@charset "UTF-8"; +/*-------------------------------------------------------------------------------------------- +* +* Vars +* +*--------------------------------------------------------------------------------------------*/ +/* colors */ +/* acf-field */ +/* responsive */ +/*-------------------------------------------------------------------------------------------- +* +* ACF 6 ↓ +* +*--------------------------------------------------------------------------------------------*/ +/*-------------------------------------------------------------------------------------------- +* +* Mixins +* +*--------------------------------------------------------------------------------------------*/ +/*--------------------------------------------------------------------------------------------- +* +* Flexible Content +* +*---------------------------------------------------------------------------------------------*/ +.acf-field-setting-fc_layout .acf-toggle-fc-layout { + width: 34px; + height: 31px; + margin: 0; + padding: 0; + border: 0; + background: transparent; + cursor: pointer; + left: 20.83%; + right: 20.83%; + top: 33.33%; + bottom: 33.33%; +} +.acf-field-setting-fc_layout .toggle-indicator::before { + z-index: -1; + content: ""; + display: inline-flex; + width: 20px; + height: 20px; + margin-left: -28px; + background-color: currentColor; + border: none; + border-radius: 0; + -webkit-mask-size: contain; + mask-size: contain; + -webkit-mask-repeat: no-repeat; + mask-repeat: no-repeat; + -webkit-mask-position: center; + mask-position: center; + -webkit-mask-image: url(../../../images/icons/icon-chevron-down.svg); + mask-image: url(../../../images/icons/icon-chevron-down.svg); +} +.rtl .acf-field-setting-fc_layout .toggle-indicator::before { + margin-left: 0px; + position: absolute; + top: 9px; + z-index: 100; + left: 8px; +} + +.acf-field-setting-fc_layout .toggle-indicator.open::before { + -webkit-mask-image: url(../../../images/icons/icon-chevron-up.svg); + mask-image: url(../../../images/icons/icon-chevron-up.svg); +} +.acf-field-setting-fc_layout .toggle-indicator.closed::before { + -webkit-mask-image: url(../../../images/icons/icon-chevron-down.svg); + mask-image: url(../../../images/icons/icon-chevron-down.svg); +} +.acf-field-setting-fc_layout .acf-flexible-content-field-label-name { + padding-left: 5px; +} +.acf-field-setting-fc_layout .acf-fc-meta { + margin: 0 0 10px; + padding: 0; +} +.acf-field-setting-fc_layout .acf-fc-meta li { + margin: 0 0 10px; + padding: 0; +} +.acf-field-setting-fc_layout .acf-fc-meta .acf-fc-meta-display { + float: left; + width: 100%; + padding-right: 5px; +} +.acf-field-setting-fc_layout .acf-fc-meta .acf-fc-meta-left { + width: calc(50% - 4px); + float: left; + clear: left; + margin-right: 4px; +} +.acf-field-setting-fc_layout .acf-fc-meta .acf-fc-meta-right { + width: calc(50% - 4px); + float: left; + margin-left: 4px; +} +.acf-field-setting-fc_layout .acf-fc-meta .acf-fc-meta-min { + width: calc(25% - 5px); + float: left; + margin-right: 5px; +} +.acf-field-setting-fc_layout .acf-fc-meta .acf-fc-meta-max { + width: calc(25% - 10px); + float: left; + margin-left: 4px; +} +.acf-field-setting-fc_layout .acf-fc-meta .acf-fc-meta-label .acf-input-prepend, +.acf-field-setting-fc_layout .acf-fc-meta .acf-fc-meta-name .acf-input-prepend, +.acf-field-setting-fc_layout .acf-fc-meta .acf-fc-meta-display .acf-input-prepend { + min-width: 60px; +} +.acf-field-setting-fc_layout .acf-fc_draggable, +.acf-field-setting-fc_layout .reorder-layout { + cursor: grab; +} +.acf-field-setting-fc_layout .acf-fl-actions a { + padding: 1px 0; + font-size: 13px; + line-height: 20px; +} + +/*--------------------------------------------------------------------------------------------- +* +* Clone +* +*---------------------------------------------------------------------------------------------*/ +.acf-field-object-clone { + /* group */ + /* seamless */ +} +.acf-field-object-clone[data-display=seamless] .acf-field-setting-instructions, +.acf-field-object-clone[data-display=seamless] .acf-field-setting-layout, +.acf-field-object-clone[data-display=seamless] .acf-field-setting-wrapper, +.acf-field-object-clone[data-display=seamless] .acf-field-setting-conditional_logic { + display: none; +} + +/*# sourceMappingURL=acf-pro-field-group.css.map*/ \ No newline at end of file diff --git a/assets/build/css/pro/acf-pro-field-group.css.map b/assets/build/css/pro/acf-pro-field-group.css.map new file mode 100644 index 0000000..b026318 --- /dev/null +++ b/assets/build/css/pro/acf-pro-field-group.css.map @@ -0,0 +1 @@ +{"version":3,"file":"acf-pro-field-group.css","mappings":";;;AAAA,gBAAgB;ACAhB;;;;8FAAA;AAMA;AAOA;AAQA;AAgBA;;;;8FAAA;ACrCA;;;;8FAAA;ACAA;;;;+FAAA;AAOC;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AHkBF;AGfC;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AHiBF;AGfW;EACR;EACA;EACA;EACA;EACA;AHiBH;;AGZC;EACC;EACA;AHeF;AGZC;EACC;EACA;AHcF;AGVC;EACC;AHYF;AGRC;EACC;EACA;AHUF;AGRE;EACC;EACA;AHUH;AGPE;EACC;EACA;EACA;AHSH;AGNE;EACC;EACA;EACA;EAEC;AHOJ;AGHE;EACC;EACA;EAEC;AHIJ;AGAE;EACC;EACA;EAEC;AHCJ;AGGE;EACC;EACA;EAEC;AHFJ;AGME;;;EAGC;AHJH;AGQC;;EAEC;AHNF;AGaE;EACC;EACA;EACA;AHXH;;AGiBA;;;;+FAAA;AAMA;EAEC;EAOA;AHtBD;AGyBE;;;;EAIC;AHvBH,C","sources":["webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/sass/pro/acf-pro-field-group.scss","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/sass/_variables.scss","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/sass/_mixins.scss","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/sass/pro/_field-group.scss"],"sourcesContent":["@charset \"UTF-8\";\n/*--------------------------------------------------------------------------------------------\n*\n*\tVars\n*\n*--------------------------------------------------------------------------------------------*/\n/* colors */\n/* acf-field */\n/* responsive */\n/*--------------------------------------------------------------------------------------------\n*\n*\tACF 6 ↓\n*\n*--------------------------------------------------------------------------------------------*/\n/*--------------------------------------------------------------------------------------------\n*\n* Mixins\n*\n*--------------------------------------------------------------------------------------------*/\n/*---------------------------------------------------------------------------------------------\n*\n*\tFlexible Content\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-field-setting-fc_layout .acf-toggle-fc-layout {\n width: 34px;\n height: 31px;\n margin: 0;\n padding: 0;\n border: 0;\n background: transparent;\n cursor: pointer;\n left: 20.83%;\n right: 20.83%;\n top: 33.33%;\n bottom: 33.33%;\n}\n.acf-field-setting-fc_layout .toggle-indicator::before {\n z-index: -1;\n content: \"\";\n display: inline-flex;\n width: 20px;\n height: 20px;\n margin-left: -28px;\n background-color: currentColor;\n border: none;\n border-radius: 0;\n -webkit-mask-size: contain;\n mask-size: contain;\n -webkit-mask-repeat: no-repeat;\n mask-repeat: no-repeat;\n -webkit-mask-position: center;\n mask-position: center;\n -webkit-mask-image: url(../../../images/icons/icon-chevron-down.svg);\n mask-image: url(../../../images/icons/icon-chevron-down.svg);\n}\n.rtl .acf-field-setting-fc_layout .toggle-indicator::before {\n margin-left: 0px;\n position: absolute;\n top: 9px;\n z-index: 100;\n left: 8px;\n}\n\n.acf-field-setting-fc_layout .toggle-indicator.open::before {\n -webkit-mask-image: url(../../../images/icons/icon-chevron-up.svg);\n mask-image: url(../../../images/icons/icon-chevron-up.svg);\n}\n.acf-field-setting-fc_layout .toggle-indicator.closed::before {\n -webkit-mask-image: url(../../../images/icons/icon-chevron-down.svg);\n mask-image: url(../../../images/icons/icon-chevron-down.svg);\n}\n.acf-field-setting-fc_layout .acf-flexible-content-field-label-name {\n padding-left: 5px;\n}\n.acf-field-setting-fc_layout .acf-fc-meta {\n margin: 0 0 10px;\n padding: 0;\n}\n.acf-field-setting-fc_layout .acf-fc-meta li {\n margin: 0 0 10px;\n padding: 0;\n}\n.acf-field-setting-fc_layout .acf-fc-meta .acf-fc-meta-display {\n float: left;\n width: 100%;\n padding-right: 5px;\n}\n.acf-field-setting-fc_layout .acf-fc-meta .acf-fc-meta-left {\n width: calc(50% - 4px);\n float: left;\n clear: left;\n margin-right: 4px;\n}\n.acf-field-setting-fc_layout .acf-fc-meta .acf-fc-meta-right {\n width: calc(50% - 4px);\n float: left;\n margin-left: 4px;\n}\n.acf-field-setting-fc_layout .acf-fc-meta .acf-fc-meta-min {\n width: calc(25% - 5px);\n float: left;\n margin-right: 5px;\n}\n.acf-field-setting-fc_layout .acf-fc-meta .acf-fc-meta-max {\n width: calc(25% - 10px);\n float: left;\n margin-left: 4px;\n}\n.acf-field-setting-fc_layout .acf-fc-meta .acf-fc-meta-label .acf-input-prepend,\n.acf-field-setting-fc_layout .acf-fc-meta .acf-fc-meta-name .acf-input-prepend,\n.acf-field-setting-fc_layout .acf-fc-meta .acf-fc-meta-display .acf-input-prepend {\n min-width: 60px;\n}\n.acf-field-setting-fc_layout .acf-fc_draggable,\n.acf-field-setting-fc_layout .reorder-layout {\n cursor: grab;\n}\n.acf-field-setting-fc_layout .acf-fl-actions a {\n padding: 1px 0;\n font-size: 13px;\n line-height: 20px;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n*\tClone\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-field-object-clone {\n /* group */\n /* seamless */\n}\n.acf-field-object-clone[data-display=seamless] .acf-field-setting-instructions,\n.acf-field-object-clone[data-display=seamless] .acf-field-setting-layout,\n.acf-field-object-clone[data-display=seamless] .acf-field-setting-wrapper,\n.acf-field-object-clone[data-display=seamless] .acf-field-setting-conditional_logic {\n display: none;\n}","/*--------------------------------------------------------------------------------------------\n*\n*\tVars\n*\n*--------------------------------------------------------------------------------------------*/\n\n/* colors */\n$acf_blue: #2a9bd9;\n$acf_notice: #2a9bd9;\n$acf_error: #d94f4f;\n$acf_success: #49ad52;\n$acf_warning: #fd8d3b;\n\n/* acf-field */\n$field_padding: 15px 12px;\n$field_padding_x: 12px;\n$field_padding_y: 15px;\n$fp: 15px 12px;\n$fy: 15px;\n$fx: 12px;\n\n/* responsive */\n$md: 880px;\n$sm: 640px;\n\n// Admin.\n$wp-card-border: #ccd0d4;\t\t\t// Card border.\n$wp-card-border-1: #d5d9dd;\t\t // Card inner border 1: Structural (darker).\n$wp-card-border-2: #eeeeee;\t\t // Card inner border 2: Fields (lighter).\n$wp-input-border: #7e8993;\t\t // Input border.\n\n// Admin 3.8\n$wp38-card-border: #E5E5E5;\t\t // Card border.\n$wp38-card-border-1: #dfdfdf;\t\t// Card inner border 1: Structural (darker).\n$wp38-card-border-2: #eeeeee;\t\t// Card inner border 2: Fields (lighter).\n$wp38-input-border: #dddddd;\t\t // Input border.\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tACF 6 ↓\n*\n*--------------------------------------------------------------------------------------------*/\n\n// Grays\n$gray-50: #F9FAFB;\n$gray-100: #F2F4F7;\n$gray-200: #EAECF0;\n$gray-300: #D0D5DD;\n$gray-400: #98A2B3;\n$gray-500: #667085;\n$gray-600: #475467;\n$gray-700: #344054;\n$gray-800: #1D2939;\n$gray-900: #101828;\n\n// Blues\n$blue-50: #EBF5FA;\n$blue-100: #D8EBF5;\n$blue-200: #A5D2E7;\n$blue-300: #6BB5D8;\n$blue-400: #399CCB;\n$blue-500: #0783BE;\n$blue-600: #066998;\n$blue-700: #044E71;\n$blue-800: #033F5B;\n$blue-900: #032F45;\n\n// Utility\n$color-info:\t#2D69DA;\n$color-success:\t#52AA59;\n$color-warning:\t#F79009;\n$color-danger:\t#D13737;\n\n$color-primary: $blue-500;\n$color-primary-hover: $blue-600;\n$color-secondary: $gray-500;\n$color-secondary-hover: $gray-400;\n\n// Gradients\n$gradient-pro: linear-gradient(90.52deg, #3E8BFF 0.44%, #A45CFF 113.3%);\n\n// Border radius\n$radius-sm:\t4px;\n$radius-md: 6px;\n$radius-lg: 8px;\n$radius-xl: 12px;\n\n// Elevations / Box shadows\n$elevation-01: 0px 1px 2px rgba($gray-900, 0.10);\n\n// Input & button focus outline\n$outline: 3px solid $blue-50;\n\n// Link colours\n$link-color: $blue-500;\n\n// Responsive\n$max-width: 1440px;","/*--------------------------------------------------------------------------------------------\n*\n* Mixins\n*\n*--------------------------------------------------------------------------------------------*/\n@mixin clearfix() {\n\t&:after {\n\t\tdisplay: block;\n\t\tclear: both;\n\t\tcontent: \"\";\n\t}\n}\n\n@mixin border-box() {\n\t-webkit-box-sizing: border-box;\n\t-moz-box-sizing: border-box;\n\tbox-sizing: border-box;\n}\n\n@mixin centered() {\n\tposition: absolute;\n\ttop: 50%;\n\tleft: 50%;\n\ttransform: translate(-50%, -50%);\n}\n\n@mixin animate( $properties: 'all' ) {\n\t-webkit-transition: $properties 0.3s ease; // Safari 3.2+, Chrome\n -moz-transition: $properties 0.3s ease; \t// Firefox 4-15\n -o-transition: $properties 0.3s ease; \t\t// Opera 10.5–12.00\n transition: $properties 0.3s ease; \t\t// Firefox 16+, Opera 12.50+\n}\n\n@mixin rtl() {\n\thtml[dir=\"rtl\"] & {\n\t\ttext-align: right;\n\t\t@content;\n\t}\n}\n\n@mixin wp-admin( $version: '3-8' ) {\n\t.acf-admin-#{$version} & {\n\t\t@content;\n\t}\n}","/*---------------------------------------------------------------------------------------------\n*\n*\tFlexible Content\n*\n*---------------------------------------------------------------------------------------------*/\n\n.acf-field-setting-fc_layout {\n\t.acf-toggle-fc-layout {\n\t\twidth: 34px;\n\t\theight: 31px;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\tborder: 0;\n\t\tbackground: transparent;\n\t\tcursor: pointer;\n\t\tleft: 20.83%;\n\t\tright: 20.83%;\n\t\ttop: 33.33%;\n\t\tbottom: 33.33%;\n\t}\n\n\t.toggle-indicator::before {\n\t\tz-index:-1;\n\t\tcontent: \"\";\n\t\tdisplay: inline-flex;\n\t\twidth: 20px;\n\t\theight: 20px;\n\t\tmargin-left: -28px;\n\t\tbackground-color: currentColor;\n\t\tborder: none;\n\t\tborder-radius: 0;\n\t\t-webkit-mask-size: contain;\n\t\tmask-size: contain;\n\t\t-webkit-mask-repeat: no-repeat;\n\t\tmask-repeat: no-repeat;\n\t\t-webkit-mask-position: center;\n\t\tmask-position: center;\n\t\t-webkit-mask-image: url(../../../images/icons/icon-chevron-down.svg);\n\t\tmask-image: url(../../../images/icons/icon-chevron-down.svg);\n\n\t\t@at-root .rtl #{&} {\n\t\t\tmargin-left: 0px;\n\t\t\tposition: absolute;\n\t\t\ttop: 9px;\n\t\t\tz-index: 100;\n\t\t\tleft: 8px;\n\t\t}\n\n\t}\n\n\t.toggle-indicator.open::before{\n\t\t-webkit-mask-image: url(../../../images/icons/icon-chevron-up.svg);\n\t\tmask-image: url(../../../images/icons/icon-chevron-up.svg);\n\t}\n\n\t.toggle-indicator.closed::before{\n\t\t-webkit-mask-image: url(../../../images/icons/icon-chevron-down.svg);\n\t\tmask-image: url(../../../images/icons/icon-chevron-down.svg);\n\t}\n\n\t// name label\n\t.acf-flexible-content-field-label-name {\n\t\tpadding-left: 5px;\n\t}\n\n\t// meta\n\t.acf-fc-meta {\n\t\tmargin: 0 0 10px;\n\t\tpadding: 0;\n\n\t\tli {\n\t\t\tmargin: 0 0 10px;\n\t\t\tpadding: 0;\n\t\t}\n\n\t\t.acf-fc-meta-display {\n\t\t\tfloat: left;\n\t\t\twidth: 100%;\n\t\t\tpadding-right: 5px;\n\t\t}\n\n\t\t.acf-fc-meta-left {\n\t\t\twidth: calc(50% - 4px);\n\t\t\tfloat: left;\n\t\t\tclear: left;\n\t\t\tmargin: {\n\t\t\t\tright: 4px;\n\t\t\t};\n\t\t}\n\n\t\t.acf-fc-meta-right {\n\t\t\twidth: calc(50% - 4px);\n\t\t\tfloat: left;\n\t\t\tmargin: {\n\t\t\t\tleft: 4px;\n\t\t\t};\n\t\t}\n\n\t\t.acf-fc-meta-min {\n\t\t\twidth: calc(25% - 5px);\n\t\t\tfloat: left;\n\t\t\tmargin: {\n\t\t\t\tright: 5px;\n\t\t\t};\n\t\t}\n\n\t\t.acf-fc-meta-max {\n\t\t\twidth: calc(25% - 10px);\n\t\t\tfloat: left;\n\t\t\tmargin: {\n\t\t\t\tleft: 4px;\n\t\t\t};\n\t\t}\n\n\t\t.acf-fc-meta-label .acf-input-prepend,\n\t\t.acf-fc-meta-name .acf-input-prepend,\n\t\t.acf-fc-meta-display .acf-input-prepend {\n\t\t\tmin-width: 60px;\n\t\t}\n\t}\n\n\t.acf-fc_draggable,\n\t.reorder-layout {\n\t\tcursor: grab;\n\t}\n\n\t// actions\n\t.acf-fl-actions {\n\t\t// visibility: hidden;\n\n\t\ta {\n\t\t\tpadding: 1px 0;\n\t\t\tfont-size: 13px;\n\t\t\tline-height: 20px;\n\t\t}\n\t}\n}\n\n\n/*---------------------------------------------------------------------------------------------\n*\n*\tClone\n*\n*---------------------------------------------------------------------------------------------*/\n\n.acf-field-object-clone {\n\n\t/* group */\n\t&[data-display=\"group\"] {\n\n\n\t}\n\n\n\t/* seamless */\n\t&[data-display=\"seamless\"] {\n\n\t\t.acf-field-setting-instructions,\n\t\t.acf-field-setting-layout,\n\t\t.acf-field-setting-wrapper,\n\t\t.acf-field-setting-conditional_logic {\n\t\t\tdisplay: none;\n\t\t}\n\n\t}\n\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/assets/build/css/pro/acf-pro-field-group.min.css b/assets/build/css/pro/acf-pro-field-group.min.css new file mode 100644 index 0000000..65034c5 --- /dev/null +++ b/assets/build/css/pro/acf-pro-field-group.min.css @@ -0,0 +1 @@ +.acf-field-setting-fc_layout .acf-toggle-fc-layout{width:34px;height:31px;margin:0;padding:0;border:0;background:rgba(0,0,0,0);cursor:pointer;left:20.83%;right:20.83%;top:33.33%;bottom:33.33%}.acf-field-setting-fc_layout .toggle-indicator::before{z-index:-1;content:"";display:inline-flex;width:20px;height:20px;margin-left:-28px;background-color:currentColor;border:none;border-radius:0;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-image:url(../../../images/icons/icon-chevron-down.svg);mask-image:url(../../../images/icons/icon-chevron-down.svg)}.rtl .acf-field-setting-fc_layout .toggle-indicator::before{margin-left:0px;position:absolute;top:9px;z-index:100;left:8px}.acf-field-setting-fc_layout .toggle-indicator.open::before{-webkit-mask-image:url(../../../images/icons/icon-chevron-up.svg);mask-image:url(../../../images/icons/icon-chevron-up.svg)}.acf-field-setting-fc_layout .toggle-indicator.closed::before{-webkit-mask-image:url(../../../images/icons/icon-chevron-down.svg);mask-image:url(../../../images/icons/icon-chevron-down.svg)}.acf-field-setting-fc_layout .acf-flexible-content-field-label-name{padding-left:5px}.acf-field-setting-fc_layout .acf-fc-meta{margin:0 0 10px;padding:0}.acf-field-setting-fc_layout .acf-fc-meta li{margin:0 0 10px;padding:0}.acf-field-setting-fc_layout .acf-fc-meta .acf-fc-meta-display{float:left;width:100%;padding-right:5px}.acf-field-setting-fc_layout .acf-fc-meta .acf-fc-meta-left{width:calc(50% - 4px);float:left;clear:left;margin-right:4px}.acf-field-setting-fc_layout .acf-fc-meta .acf-fc-meta-right{width:calc(50% - 4px);float:left;margin-left:4px}.acf-field-setting-fc_layout .acf-fc-meta .acf-fc-meta-min{width:calc(25% - 5px);float:left;margin-right:5px}.acf-field-setting-fc_layout .acf-fc-meta .acf-fc-meta-max{width:calc(25% - 10px);float:left;margin-left:4px}.acf-field-setting-fc_layout .acf-fc-meta .acf-fc-meta-label .acf-input-prepend,.acf-field-setting-fc_layout .acf-fc-meta .acf-fc-meta-name .acf-input-prepend,.acf-field-setting-fc_layout .acf-fc-meta .acf-fc-meta-display .acf-input-prepend{min-width:60px}.acf-field-setting-fc_layout .acf-fc_draggable,.acf-field-setting-fc_layout .reorder-layout{cursor:grab}.acf-field-setting-fc_layout .acf-fl-actions a{padding:1px 0;font-size:13px;line-height:20px}.acf-field-object-clone[data-display=seamless] .acf-field-setting-instructions,.acf-field-object-clone[data-display=seamless] .acf-field-setting-layout,.acf-field-object-clone[data-display=seamless] .acf-field-setting-wrapper,.acf-field-object-clone[data-display=seamless] .acf-field-setting-conditional_logic{display:none} diff --git a/assets/build/css/pro/acf-pro-input.css b/assets/build/css/pro/acf-pro-input.css new file mode 100644 index 0000000..7de888a --- /dev/null +++ b/assets/build/css/pro/acf-pro-input.css @@ -0,0 +1,733 @@ +/*!************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/advanced-custom-fields-pro/assets/src/sass/pro/acf-pro-input.scss ***! + \************************************************************************************************************************************************************************************************************************/ +@charset "UTF-8"; +/*-------------------------------------------------------------------------------------------- +* +* Vars +* +*--------------------------------------------------------------------------------------------*/ +/* colors */ +/* acf-field */ +/* responsive */ +/*-------------------------------------------------------------------------------------------- +* +* ACF 6 ↓ +* +*--------------------------------------------------------------------------------------------*/ +/*-------------------------------------------------------------------------------------------- +* +* Mixins +* +*--------------------------------------------------------------------------------------------*/ +/*--------------------------------------------------------------------------------------------- +* +* Repeater +* +*---------------------------------------------------------------------------------------------*/ +.acf-repeater { + /* table */ + /* row handle (add/remove) */ + /* add in spacer to th (force correct width) */ + /* row */ + /* sortable */ + /* layouts */ + /* + &.-row > table > tbody > tr:before, + &.-block > table > tbody > tr:before { + content: ""; + display: table-row; + height: 2px; + background: #f00; + } + */ + /* empty */ + /* collapsed */ + /* collapsed (block layout) */ + /* collapsed (table layout) */ +} +.acf-repeater > table { + margin: 0 0 8px; + background: #F9F9F9; +} +.acf-repeater > table > tbody tr.acf-divider:not(:first-child) > td { + border-top: 10px solid #EAECF0; +} +.acf-repeater .acf-row-handle { + width: 16px; + text-align: center !important; + vertical-align: middle !important; + position: relative; + /* icons */ + /* .order */ + /* remove */ +} +.acf-repeater .acf-row-handle .acf-order-input-wrap { + width: 45px; +} +.acf-repeater .acf-row-handle .acf-order-input::-webkit-outer-spin-button, +.acf-repeater .acf-row-handle .acf-order-input::-webkit-inner-spin-button { + -webkit-appearance: none; + margin: 0; +} +.acf-repeater .acf-row-handle .acf-order-input { + -moz-appearance: textfield; + text-align: center; +} +.acf-repeater .acf-row-handle .acf-icon { + display: none; + position: absolute; + top: 0; + margin: -8px 0 0 -2px; + /* minus icon */ +} +.acf-repeater .acf-row-handle .acf-icon.-minus { + top: 50%; + /* ie fix */ +} +body.browser-msie .acf-repeater .acf-row-handle .acf-icon.-minus { + top: 25px; +} +.acf-repeater .acf-row-handle.order { + background: #f4f4f4; + cursor: move; + color: #aaa; + text-shadow: #fff 0 1px 0; +} +.acf-repeater .acf-row-handle.order:hover { + color: #666; +} +.acf-repeater .acf-row-handle.order + td { + border-left-color: #DFDFDF; +} +.acf-repeater .acf-row-handle.pagination { + cursor: auto; +} +.acf-repeater .acf-row-handle.remove { + background: #F9F9F9; + border-left-color: #DFDFDF; +} +.acf-repeater th.acf-row-handle:before { + content: ""; + width: 16px; + display: block; + height: 1px; +} +.acf-repeater .acf-row { + /* hide clone */ + /* hover */ +} +.acf-repeater .acf-row.acf-clone { + display: none !important; +} +.acf-repeater .acf-row:hover, .acf-repeater .acf-row.-hover { + /* icons */ +} +.acf-repeater .acf-row:hover > .acf-row-handle .acf-icon, .acf-repeater .acf-row.-hover > .acf-row-handle .acf-icon { + display: block; +} +.acf-repeater .acf-row:hover > .acf-row-handle .acf-icon.show-on-shift, .acf-repeater .acf-row.-hover > .acf-row-handle .acf-icon.show-on-shift { + display: none; +} +body.acf-keydown-shift .acf-repeater .acf-row:hover > .acf-row-handle .acf-icon.show-on-shift, body.acf-keydown-shift .acf-repeater .acf-row.-hover > .acf-row-handle .acf-icon.show-on-shift { + display: block; +} +body.acf-keydown-shift .acf-repeater .acf-row:hover > .acf-row-handle .acf-icon.hide-on-shift, body.acf-keydown-shift .acf-repeater .acf-row.-hover > .acf-row-handle .acf-icon.hide-on-shift { + display: none; +} +.acf-repeater > table > tbody > tr.ui-sortable-helper { + box-shadow: 0 1px 5px rgba(0, 0, 0, 0.2); +} +.acf-repeater > table > tbody > tr.ui-sortable-placeholder { + visibility: visible !important; +} +.acf-repeater > table > tbody > tr.ui-sortable-placeholder td { + background: #F9F9F9; +} +.acf-repeater.-row > table > tbody > tr > td, .acf-repeater.-block > table > tbody > tr > td { + border-top-color: #E1E1E1; +} +.acf-repeater.-empty > table > thead > tr > th { + border-bottom: 0 none; +} +.acf-repeater.-empty.-row > table, .acf-repeater.-empty.-block > table { + display: none; +} +.acf-repeater .acf-row.-collapsed > .acf-field { + display: none !important; +} +.acf-repeater .acf-row.-collapsed > td.acf-field.-collapsed-target { + display: table-cell !important; +} +.acf-repeater .acf-row.-collapsed > .acf-fields > * { + display: none !important; +} +.acf-repeater .acf-row.-collapsed > .acf-fields > .acf-field.-collapsed-target { + display: block !important; +} +.acf-repeater .acf-row.-collapsed > .acf-fields > .acf-field.-collapsed-target[data-width] { + float: none !important; + width: auto !important; +} +.acf-repeater.-table .acf-row.-collapsed .acf-field.-collapsed-target { + border-left-color: #dfdfdf; +} +.acf-repeater.-max .acf-icon[data-event=add-row] { + display: none !important; +} +.acf-repeater .acf-actions .acf-button { + float: right; + pointer-events: auto !important; +} +.acf-repeater .acf-actions .acf-tablenav { + float: right; + margin-right: 20px; +} +.acf-repeater .acf-actions .acf-tablenav .current-page { + width: auto !important; +} + +/*--------------------------------------------------------------------------------------------- +* +* Flexible Content +* +*---------------------------------------------------------------------------------------------*/ +.acf-flexible-content { + position: relative; +} +.acf-flexible-content > .clones { + display: none; +} +.acf-flexible-content > .values { + margin: 0 0 8px; +} +.acf-flexible-content > .values > .ui-sortable-placeholder { + visibility: visible !important; + border: 1px dashed #b4b9be; + box-shadow: none; + background: transparent; +} +.acf-flexible-content .layout { + position: relative; + margin: 20px 0 0; + background: #fff; + border: 1px solid #ccd0d4; +} +.acf-flexible-content .layout:first-child { + margin-top: 0; +} +.acf-flexible-content .layout .acf-fc-layout-handle { + display: block; + position: relative; + padding: 8px 10px; + cursor: move; + border-bottom: #ccd0d4 solid 1px; + color: #444; + font-size: 14px; + line-height: 1.4em; +} +.acf-flexible-content .layout .acf-fc-layout-order { + display: block; + width: 20px; + height: 20px; + border-radius: 10px; + display: inline-block; + text-align: center; + line-height: 20px; + margin: 0 2px 0 0; + background: #F1F1F1; + font-size: 12px; + color: #444; +} +html[dir=rtl] .acf-flexible-content .layout .acf-fc-layout-order { + float: right; + margin-right: 0; + margin-left: 5px; +} +.acf-flexible-content .layout .acf-fc-layout-controls { + position: absolute; + top: 8px; + right: 8px; +} +.acf-flexible-content .layout .acf-fc-layout-controls .acf-icon { + display: block; + float: left; + margin: 0 0 0 5px; +} +.acf-flexible-content .layout .acf-fc-layout-controls .acf-icon.-plus, .acf-flexible-content .layout .acf-fc-layout-controls .acf-icon.-minus, .acf-flexible-content .layout .acf-fc-layout-controls .acf-icon.-duplicate { + visibility: hidden; +} +html[dir=rtl] .acf-flexible-content .layout .acf-fc-layout-controls { + right: auto; + left: 9px; +} +.acf-flexible-content .layout.is-selected { + border-color: #7e8993; +} +.acf-flexible-content .layout.is-selected .acf-fc-layout-handle { + border-color: #7e8993; +} +.acf-flexible-content .layout:hover .acf-fc-layout-controls .acf-icon.-plus, .acf-flexible-content .layout:hover .acf-fc-layout-controls .acf-icon.-minus, .acf-flexible-content .layout:hover .acf-fc-layout-controls .acf-icon.-duplicate, .acf-flexible-content .layout.-hover .acf-fc-layout-controls .acf-icon.-plus, .acf-flexible-content .layout.-hover .acf-fc-layout-controls .acf-icon.-minus, .acf-flexible-content .layout.-hover .acf-fc-layout-controls .acf-icon.-duplicate { + visibility: visible; +} +.acf-flexible-content .layout.-collapsed > .acf-fc-layout-handle { + border-bottom-width: 0; +} +.acf-flexible-content .layout.-collapsed > .acf-fields, +.acf-flexible-content .layout.-collapsed > .acf-table { + display: none; +} +.acf-flexible-content .layout > .acf-table { + border: 0 none; + box-shadow: none; +} +.acf-flexible-content .layout > .acf-table > tbody > tr { + background: #fff; +} +.acf-flexible-content .layout > .acf-table > thead > tr > th { + background: #F9F9F9; +} +.acf-flexible-content .no-value-message { + padding: 19px; + border: #ccc dashed 2px; + text-align: center; + display: none; +} +.acf-flexible-content.-empty > .no-value-message { + display: block; +} + +.acf-fc-popup { + padding: 5px 0; + z-index: 900001; + min-width: 135px; +} +.acf-fc-popup ul, .acf-fc-popup li { + list-style: none; + display: block; + margin: 0; + padding: 0; +} +.acf-fc-popup li { + position: relative; + float: none; + white-space: nowrap; +} +.acf-fc-popup .badge { + display: inline-block; + border-radius: 8px; + font-size: 9px; + line-height: 15px; + padding: 0 5px; + background: #d54e21; + text-align: center; + color: #fff; + vertical-align: top; + margin: 0 0 0 5px; +} +.acf-fc-popup a { + color: #eee; + padding: 5px 10px; + display: block; + text-decoration: none; + position: relative; +} +.acf-fc-popup a:hover { + background: #0073aa; + color: #fff; +} +.acf-fc-popup a.disabled { + color: #888; + background: transparent; +} + +/*--------------------------------------------------------------------------------------------- +* +* Galery +* +*---------------------------------------------------------------------------------------------*/ +.acf-gallery { + border: #ccd0d4 solid 1px; + height: 400px; + position: relative; + /* main */ + /* attachments */ + /* attachment */ + /* toolbar */ + /* sidebar */ + /* side info */ + /* side data */ + /* column widths */ + /* resizable */ +} +.acf-gallery .acf-gallery-main { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + background: #fff; + z-index: 2; +} +.acf-gallery .acf-gallery-attachments { + position: absolute; + top: 0; + right: 0; + bottom: 48px; + left: 0; + padding: 5px; + overflow: auto; + overflow-x: hidden; +} +.acf-gallery .acf-gallery-attachment { + width: 25%; + float: left; + cursor: pointer; + position: relative; + /* hover */ + /* sortable */ + /* active */ + /* icon */ + /* rtl */ +} +.acf-gallery .acf-gallery-attachment .margin { + margin: 5px; + border: #d5d9dd solid 1px; + position: relative; + overflow: hidden; + background: #eee; +} +.acf-gallery .acf-gallery-attachment .margin:before { + content: ""; + display: block; + padding-top: 100%; +} +.acf-gallery .acf-gallery-attachment .thumbnail { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + transform: translate(50%, 50%); +} +html[dir=rtl] .acf-gallery .acf-gallery-attachment .thumbnail { + transform: translate(-50%, 50%); +} +.acf-gallery .acf-gallery-attachment .thumbnail img { + display: block; + height: auto; + max-height: 100%; + width: auto; + transform: translate(-50%, -50%); +} +html[dir=rtl] .acf-gallery .acf-gallery-attachment .thumbnail img { + transform: translate(50%, -50%); +} +.acf-gallery .acf-gallery-attachment .filename { + position: absolute; + bottom: 0; + left: 0; + right: 0; + padding: 5%; + background: #F4F4F4; + background: rgba(255, 255, 255, 0.8); + border-top: #DFDFDF solid 1px; + font-weight: bold; + text-align: center; + word-wrap: break-word; + max-height: 90%; + overflow: hidden; +} +.acf-gallery .acf-gallery-attachment .actions { + position: absolute; + top: 0; + right: 0; + display: none; +} +.acf-gallery .acf-gallery-attachment:hover .actions { + display: block; +} +.acf-gallery .acf-gallery-attachment.ui-sortable-helper .margin { + border: none; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3); +} +.acf-gallery .acf-gallery-attachment.ui-sortable-placeholder .margin { + background: #F1F1F1; + border: none; +} +.acf-gallery .acf-gallery-attachment.ui-sortable-placeholder .margin * { + display: none !important; +} +.acf-gallery .acf-gallery-attachment.active .margin { + box-shadow: 0 0 0 1px #FFFFFF, 0 0 0 5px #0073aa; +} +.acf-gallery .acf-gallery-attachment.-icon .thumbnail img { + transform: translate(-50%, -70%); +} +html[dir=rtl] .acf-gallery .acf-gallery-attachment { + float: right; +} +.acf-gallery.sidebar-open { + /* hide attachment actions when sidebar is open */ + /* allow sidebar to move over main for small widths (widget edit box) */ +} +.acf-gallery.sidebar-open .acf-gallery-attachment .actions { + display: none; +} +.acf-gallery.sidebar-open .acf-gallery-side { + z-index: 2; +} +.acf-gallery .acf-gallery-toolbar { + position: absolute; + right: 0; + bottom: 0; + left: 0; + padding: 10px; + border-top: #d5d9dd solid 1px; + background: #fff; + min-height: 28px; +} +.acf-gallery .acf-gallery-toolbar .acf-hl li { + line-height: 24px; +} +.acf-gallery .acf-gallery-toolbar .bulk-actions-select { + width: auto; + margin: 0 1px 0 0; +} +.acf-gallery .acf-gallery-side { + position: absolute; + top: 0; + right: 0; + bottom: 0; + width: 0; + background: #F9F9F9; + border-left: #ccd0d4 solid 1px; + z-index: 1; + overflow: hidden; +} +.acf-gallery .acf-gallery-side .acf-gallery-side-inner { + position: absolute; + top: 0; + left: 0; + bottom: 0; + width: 349px; +} +.acf-gallery .acf-gallery-side-info { + position: relative; + width: 100%; + padding: 10px; + margin: -10px 0 15px -10px; + background: #F1F1F1; + border-bottom: #DFDFDF solid 1px; +} +.acf-gallery .acf-gallery-side-info:after { + display: block; + clear: both; + content: ""; +} +html[dir=rtl] .acf-gallery .acf-gallery-side-info { + margin-left: 0; + margin-right: -10px; +} +.acf-gallery .acf-gallery-side-info img { + float: left; + width: auto; + max-width: 65px; + max-height: 65px; + margin: 0 10px 1px 0; + background: #FFFFFF; + padding: 3px; + border: #ccd0d4 solid 1px; + border-radius: 1px; + /* rtl */ +} +html[dir=rtl] .acf-gallery .acf-gallery-side-info img { + float: right; + margin: 0 0 0 10px; +} +.acf-gallery .acf-gallery-side-info p { + font-size: 13px; + line-height: 15px; + margin: 3px 0; + word-break: break-all; + color: #666; +} +.acf-gallery .acf-gallery-side-info p strong { + color: #000; +} +.acf-gallery .acf-gallery-side-info a { + text-decoration: none; +} +.acf-gallery .acf-gallery-side-info a.acf-gallery-edit { + color: #21759b; +} +.acf-gallery .acf-gallery-side-info a.acf-gallery-remove { + color: #bc0b0b; +} +.acf-gallery .acf-gallery-side-info a:hover { + text-decoration: underline; +} +.acf-gallery .acf-gallery-side-data { + position: absolute; + top: 0; + right: 0; + bottom: 48px; + left: 0; + overflow: auto; + overflow-x: inherit; + padding: 10px; +} +.acf-gallery .acf-gallery-side-data .acf-label, +.acf-gallery .acf-gallery-side-data th.label { + color: #666666; + font-size: 12px; + line-height: 25px; + padding: 0 4px 8px 0 !important; + width: auto !important; + vertical-align: top; +} +html[dir=rtl] .acf-gallery .acf-gallery-side-data .acf-label, +html[dir=rtl] .acf-gallery .acf-gallery-side-data th.label { + padding: 0 0 8px 4px !important; +} +.acf-gallery .acf-gallery-side-data .acf-label label, +.acf-gallery .acf-gallery-side-data th.label label { + font-weight: normal; +} +.acf-gallery .acf-gallery-side-data .acf-input, +.acf-gallery .acf-gallery-side-data td.field { + padding: 0 0 8px !important; +} +.acf-gallery .acf-gallery-side-data textarea { + min-height: 0; + height: 60px; +} +.acf-gallery .acf-gallery-side-data p.help { + font-size: 12px; +} +.acf-gallery .acf-gallery-side-data p.help:hover { + font-weight: normal; +} +.acf-gallery[data-columns="1"] .acf-gallery-attachment { + width: 100%; +} +.acf-gallery[data-columns="2"] .acf-gallery-attachment { + width: 50%; +} +.acf-gallery[data-columns="3"] .acf-gallery-attachment { + width: 33.333%; +} +.acf-gallery[data-columns="4"] .acf-gallery-attachment { + width: 25%; +} +.acf-gallery[data-columns="5"] .acf-gallery-attachment { + width: 20%; +} +.acf-gallery[data-columns="6"] .acf-gallery-attachment { + width: 16.666%; +} +.acf-gallery[data-columns="7"] .acf-gallery-attachment { + width: 14.285%; +} +.acf-gallery[data-columns="8"] .acf-gallery-attachment { + width: 12.5%; +} +.acf-gallery .ui-resizable-handle { + display: block; + position: absolute; +} +.acf-gallery .ui-resizable-s { + bottom: -5px; + cursor: ns-resize; + height: 7px; + left: 0; + width: 100%; +} + +/* media modal selected */ +.acf-media-modal .attachment.acf-selected { + box-shadow: 0 0 0 3px #fff inset, 0 0 0 7px #0073aa inset !important; +} +.acf-media-modal .attachment.acf-selected .check { + display: none !important; +} +.acf-media-modal .attachment.acf-selected .thumbnail { + opacity: 0.25 !important; +} +.acf-media-modal .attachment.acf-selected .attachment-preview:before { + background: rgba(0, 0, 0, 0.15); + z-index: 1; + position: relative; +} + +/*----------------------------------------------------------------------------- +* +* ACF Blocks +* +*----------------------------------------------------------------------------*/ +.acf-block-component .components-placeholder { + margin: 0; +} + +.acf-block-component .acf-block-fields { + background: #fff; + text-align: left; + font-size: 13px; + line-height: 1.4em; + color: #444; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; +} +.acf-block-component .acf-block-fields.acf-empty-block-fields { + border: 1px solid #1e1e1e; + padding: 12px; +} +.components-panel .acf-block-component .acf-block-fields.acf-empty-block-fields { + border: none; + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; +} +html[dir=rtl] .acf-block-component .acf-block-fields { + text-align: right; +} +.acf-block-component .acf-block-fields p { + font-size: 13px; + line-height: 1.5; +} + +.acf-block-body .acf-block-fields { + border: #adb2ad solid 1px; +} +.acf-block-body .acf-block-fields .acf-tab-wrap .acf-tab-group { + margin-left: 0; + padding: 16px 20px 0; +} +.acf-block-body .acf-fields > .acf-field { + padding: 16px 20px; +} +.acf-block-body .acf-fields > .acf-field.acf-accordion { + border-color: #adb2ad; +} +.acf-block-body .acf-fields > .acf-field.acf-accordion .acf-accordion-title { + padding: 16px 20px; +} +.acf-block-body .acf-block-preview { + min-height: 10px; +} + +.acf-block-panel .acf-block-fields { + border-top: #ddd solid 1px; + border-bottom: #ddd solid 1px; + min-height: 1px; +} +.acf-block-panel .acf-block-fields:empty { + border-top: none; +} +.acf-block-panel .acf-block-fields .acf-tab-wrap { + background: transparent; +} + +.components-panel__body .acf-block-panel { + margin: 16px -16px -16px; +} + +/*# sourceMappingURL=acf-pro-input.css.map*/ \ No newline at end of file diff --git a/assets/build/css/pro/acf-pro-input.css.map b/assets/build/css/pro/acf-pro-input.css.map new file mode 100644 index 0000000..6baa6d3 --- /dev/null +++ b/assets/build/css/pro/acf-pro-input.css.map @@ -0,0 +1 @@ +{"version":3,"file":"acf-pro-input.css","mappings":";;;AAAA,gBAAgB;ACAhB;;;;8FAAA;AAMA;AAOA;AAQA;AAgBA;;;;8FAAA;ACrCA;;;;8FAAA;ACAA;;;;+FAAA;AAMA;EAEC;EAUA;EAqEA;EASA;EAiCA;EAcA;EACD;;;;;;;;GAAA;EAgBC;EAWA;EAYA;EAkBA;AH7JD;AGnCC;EACC;EACA;AHqCF;AGnCE;EACC;AHqCH;AGhCC;EACC;EACA;EACA;EACA;EAiBA;EAmBA;EAoBA;AHnBF;AGnCE;EACC;AHqCH;AGlCE;;EAEC;EACA;AHoCH;AGjCE;EACC;EACA;AHmCH;AG/BE;EACC;EACA;EACA;EACA;EAGA;AH+BH;AG9BG;EACC;EAEA;AH+BJ;AG9BI;EAAsB;AHiC1B;AG1BE;EACC;EACA;EACA;EACA;AH4BH;AG1BG;EACC;AH4BJ;AGzBG;EACC;AH2BJ;AGvBE;EACC;AHyBH;AGrBE;EACC;EACA;AHuBH;AGjBC;EACC;EACA;EACA;EACA;AHmBF;AGdC;EAEC;EAMA;AHUF;AGfE;EACC;AHiBH;AGZE;EAGC;AHYH;AGXG;EACC;AHaJ;AGVI;EACC;AHYL;AGXK;EACC;AHaN;AGTK;EACC;AHWN;AGHC;EACC;AHKF;AGFC;EACC;AHIF;AGFE;EACC;AHIH;AGYC;EAEC;AHXF;AGgBC;EACC;AHdF;AGiBC;EAEC;AHhBF;AGuBE;EACC;AHrBH;AGwBE;EACC;AHtBH;AG6BE;EACC;AH3BH;AG8BE;EACC;AH5BH;AG8BG;EACC;EACA;AH5BJ;AGmCC;EACC;AHjCF;AGwCE;EACC;AHtCH;AG2CE;EACC;EACA;AHzCH;AG4CE;EACC;EACA;AH1CH;AG4CG;EACC;AH1CJ;;AGgDA;;;;+FAAA;AAMA;EACC;AH9CD;AGiDC;EACC;AH/CF;AGmDC;EACC;AHjDF;AGoDE;EACC;EACA;EAEA;EACA;AHnDH;AGwDC;EACC;EACA;EACG;EACA;AHtDL;AGwDK;EACF;AHtDH;AG0DE;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AHxDH;AG4DE;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AH1DH;AG4DG;EACC;EACA;EACA;AH1DJ;AG+DE;EACC;EACA;EACA;AH7DH;AG+DG;EACC;EACA;EACA;AH7DJ;AG+DI;EAAkC;AH5DtC;AG+DG;EACC;EACA;AH7DJ;AGkEE;EACC,qBFzSe;ADyOlB;AGiEG;EACC,qBF3Sc;AD4OlB;AG2EK;EAAkC;AHxEvC;AG+EG;EACC;AH7EJ;AGgFG;;EAEC;AH9EJ;AGmFE;EACC;EACA;AHjFH;AGmFG;EACC;AHjFJ;AGoFG;EACC;AHlFJ;AGwFC;EACC;EACA;EACA;EACA;AHtFF;AG0FC;EACC;AHxFF;;AG6FA;EACC;EACA;EACA;AH1FD;AG4FC;EACC;EACA;EACA;EACA;AH1FF;AG6FC;EACC;EACA;EACA;AH3FF;AG8FC;EACC;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;AH7FF;AGgGC;EACC;EACA;EACA;EACA;EACA;AH9FF;AGgGE;EACC;EACA;AH9FH;AGiGE;EACC;EACA;AH/FH;;AGsGA;;;;+FAAA;AAMA;EACC;EACA;EACA;EAEA;EAWA;EAaA;EAoJA;EAuBA;EAyBA;EAiEA;EAmDA;EAWA;AHxbD;AG8FC;EACC;EACA;EACA;EACA;EACA;EACA;EACA;AH5FF;AGgGC;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AH9FF;AGmGC;EACC;EACA;EACA;EACA;EAiEA;EAUA;EAuBA;EAUA;EAUA;AHlNF;AG8FE;EACC;EACA;EACA;EACA;EACA;AH5FH;AG8FG;EACC;EACG;EACA;AH5FP;AGgGE;EACC;EACA;EACA;EACA;EACA;EACA;AH9FH;AGgGG;EACC;AH9FJ;AGiGG;EACC;EACA;EACA;EACA;EACA;AH/FJ;AGiGI;EACC;AH/FL;AGoGE;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AHlGN;AGqGE;EACC;EACA;EACA;EACA;AHnGH;AG0GG;EACC;AHxGJ;AGiHG;EACC;EACA;AH/GJ;AGqHG;EACC;EACA;AHnHJ;AGqHI;EACC;AHnHL;AG6HG;EACC;AH3HJ;AGoIG;EACC;AHlIJ;AGyIE;EACC;AHvIH;AG8IC;EAEC;EAMA;AHlJF;AG6IE;EACC;AH3IH;AGgJE;EACC;AH9IH;AGqJC;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AHnJF;AGqJE;EACC;AHnJH;AGsJE;EACC;EACA;AHpJH;AG2JC;EACC;EACA;EACA;EACA;EACA;EAEA;EACA;EAEA;EACA;AH3JF;AG6JE;EACC;EACA;EACA;EACA;EACA;AH3JH;AGkKC;EAEC;EACA;EACA;EACA;EACA;EACA;AHjKF;AEhgBC;EACC;EACA;EACA;AFkgBF;AG8JE;EACC;EACA;AH5JH;AG+JE;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;AH9JH;AG+JG;EACC;EACA;AH7JJ;AGiKE;EACC;EACA;EACA;EACA;EACA;AH/JH;AGiKG;EACC;AH/JJ;AGmKE;EACC;AHjKH;AGmKG;EACC;AHjKJ;AGoKG;EACC;AHlKJ;AGqKG;EACC;AHnKJ;AG4KC;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AH1KF;AG6KE;;EAEC;EACA;EACA;EACA;EACA;EACA;AH3KH;AG6KG;;EACC;AH1KJ;AG6KG;;EACC;AH1KJ;AG8KE;;EAEC;AH5KH;AG+KE;EACC;EACA;AH7KH;AGgLE;EACC;AH9KH;AGgLG;EACC;AH9KJ;AGsLC;EAA8C;AHnL/C;AGoLC;EAA8C;AHjL/C;AGkLC;EAA8C;AH/K/C;AGgLC;EAA8C;AH7K/C;AG8KC;EAA8C;AH3K/C;AG4KC;EAA8C;AHzK/C;AG0KC;EAA8C;AHvK/C;AGwKC;EAA8C;AHrK/C;AGyKC;EACC;EACA;AHvKF;AG0KC;EACC;EACA;EACA;EACA;EACA;AHxKF;;AG+KA;AACA;EACC;AH5KD;AG8KC;EACC;AH5KF;AG+KC;EACC;AH7KF;AGgLC;EACC;EACA;EACA;AH9KF;;AIjpBA;;;;8EAAA;AASC;EACC;AJgpBF;;AI3oBA;EAEC;EAGA;EACA;EACA;EACA;EACA,gIACC;AJ0oBF;AIhoBC;EACC;EACA;AJkoBF;AIhoBE;EACC;EACA;EACA;AJkoBH;AI9nBC;EACC;AJgoBF;AI7nBC;EACC;EACA;AJ+nBF;;AIxnBC;EACC;AJ2nBF;AItnBG;EACC;EACA;AJwnBJ;AIlnBC;EACC;AJonBF;AIjnBE;EACC;AJmnBH;AIjnBG;EACC;AJmnBJ;AI7mBC;EACC;AJ+mBF;;AIxmBC;EACC;EACA;EACA;AJ2mBF;AIzmBE;EACC;AJ2mBH;AIvmBE;EACC;AJymBH;;AIlmBA;EACC;AJqmBD,C","sources":["webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/sass/pro/acf-pro-input.scss","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/sass/_variables.scss","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/sass/_mixins.scss","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/sass/pro/_fields.scss","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/sass/pro/_blocks.scss"],"sourcesContent":["@charset \"UTF-8\";\n/*--------------------------------------------------------------------------------------------\n*\n*\tVars\n*\n*--------------------------------------------------------------------------------------------*/\n/* colors */\n/* acf-field */\n/* responsive */\n/*--------------------------------------------------------------------------------------------\n*\n*\tACF 6 ↓\n*\n*--------------------------------------------------------------------------------------------*/\n/*--------------------------------------------------------------------------------------------\n*\n* Mixins\n*\n*--------------------------------------------------------------------------------------------*/\n/*---------------------------------------------------------------------------------------------\n*\n* Repeater\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-repeater {\n /* table */\n /* row handle (add/remove) */\n /* add in spacer to th (force correct width) */\n /* row */\n /* sortable */\n /* layouts */\n /*\n \t&.-row > table > tbody > tr:before,\n \t&.-block > table > tbody > tr:before {\n \t\tcontent: \"\";\n \t\tdisplay: table-row;\n \t\theight: 2px;\n \t\tbackground: #f00;\n \t}\n */\n /* empty */\n /* collapsed */\n /* collapsed (block layout) */\n /* collapsed (table layout) */\n}\n.acf-repeater > table {\n margin: 0 0 8px;\n background: #F9F9F9;\n}\n.acf-repeater > table > tbody tr.acf-divider:not(:first-child) > td {\n border-top: 10px solid #EAECF0;\n}\n.acf-repeater .acf-row-handle {\n width: 16px;\n text-align: center !important;\n vertical-align: middle !important;\n position: relative;\n /* icons */\n /* .order */\n /* remove */\n}\n.acf-repeater .acf-row-handle .acf-order-input-wrap {\n width: 45px;\n}\n.acf-repeater .acf-row-handle .acf-order-input::-webkit-outer-spin-button,\n.acf-repeater .acf-row-handle .acf-order-input::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n}\n.acf-repeater .acf-row-handle .acf-order-input {\n -moz-appearance: textfield;\n text-align: center;\n}\n.acf-repeater .acf-row-handle .acf-icon {\n display: none;\n position: absolute;\n top: 0;\n margin: -8px 0 0 -2px;\n /* minus icon */\n}\n.acf-repeater .acf-row-handle .acf-icon.-minus {\n top: 50%;\n /* ie fix */\n}\nbody.browser-msie .acf-repeater .acf-row-handle .acf-icon.-minus {\n top: 25px;\n}\n.acf-repeater .acf-row-handle.order {\n background: #f4f4f4;\n cursor: move;\n color: #aaa;\n text-shadow: #fff 0 1px 0;\n}\n.acf-repeater .acf-row-handle.order:hover {\n color: #666;\n}\n.acf-repeater .acf-row-handle.order + td {\n border-left-color: #DFDFDF;\n}\n.acf-repeater .acf-row-handle.pagination {\n cursor: auto;\n}\n.acf-repeater .acf-row-handle.remove {\n background: #F9F9F9;\n border-left-color: #DFDFDF;\n}\n.acf-repeater th.acf-row-handle:before {\n content: \"\";\n width: 16px;\n display: block;\n height: 1px;\n}\n.acf-repeater .acf-row {\n /* hide clone */\n /* hover */\n}\n.acf-repeater .acf-row.acf-clone {\n display: none !important;\n}\n.acf-repeater .acf-row:hover, .acf-repeater .acf-row.-hover {\n /* icons */\n}\n.acf-repeater .acf-row:hover > .acf-row-handle .acf-icon, .acf-repeater .acf-row.-hover > .acf-row-handle .acf-icon {\n display: block;\n}\n.acf-repeater .acf-row:hover > .acf-row-handle .acf-icon.show-on-shift, .acf-repeater .acf-row.-hover > .acf-row-handle .acf-icon.show-on-shift {\n display: none;\n}\nbody.acf-keydown-shift .acf-repeater .acf-row:hover > .acf-row-handle .acf-icon.show-on-shift, body.acf-keydown-shift .acf-repeater .acf-row.-hover > .acf-row-handle .acf-icon.show-on-shift {\n display: block;\n}\nbody.acf-keydown-shift .acf-repeater .acf-row:hover > .acf-row-handle .acf-icon.hide-on-shift, body.acf-keydown-shift .acf-repeater .acf-row.-hover > .acf-row-handle .acf-icon.hide-on-shift {\n display: none;\n}\n.acf-repeater > table > tbody > tr.ui-sortable-helper {\n box-shadow: 0 1px 5px rgba(0, 0, 0, 0.2);\n}\n.acf-repeater > table > tbody > tr.ui-sortable-placeholder {\n visibility: visible !important;\n}\n.acf-repeater > table > tbody > tr.ui-sortable-placeholder td {\n background: #F9F9F9;\n}\n.acf-repeater.-row > table > tbody > tr > td, .acf-repeater.-block > table > tbody > tr > td {\n border-top-color: #E1E1E1;\n}\n.acf-repeater.-empty > table > thead > tr > th {\n border-bottom: 0 none;\n}\n.acf-repeater.-empty.-row > table, .acf-repeater.-empty.-block > table {\n display: none;\n}\n.acf-repeater .acf-row.-collapsed > .acf-field {\n display: none !important;\n}\n.acf-repeater .acf-row.-collapsed > td.acf-field.-collapsed-target {\n display: table-cell !important;\n}\n.acf-repeater .acf-row.-collapsed > .acf-fields > * {\n display: none !important;\n}\n.acf-repeater .acf-row.-collapsed > .acf-fields > .acf-field.-collapsed-target {\n display: block !important;\n}\n.acf-repeater .acf-row.-collapsed > .acf-fields > .acf-field.-collapsed-target[data-width] {\n float: none !important;\n width: auto !important;\n}\n.acf-repeater.-table .acf-row.-collapsed .acf-field.-collapsed-target {\n border-left-color: #dfdfdf;\n}\n.acf-repeater.-max .acf-icon[data-event=add-row] {\n display: none !important;\n}\n.acf-repeater .acf-actions .acf-button {\n float: right;\n pointer-events: auto !important;\n}\n.acf-repeater .acf-actions .acf-tablenav {\n float: right;\n margin-right: 20px;\n}\n.acf-repeater .acf-actions .acf-tablenav .current-page {\n width: auto !important;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Flexible Content\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-flexible-content {\n position: relative;\n}\n.acf-flexible-content > .clones {\n display: none;\n}\n.acf-flexible-content > .values {\n margin: 0 0 8px;\n}\n.acf-flexible-content > .values > .ui-sortable-placeholder {\n visibility: visible !important;\n border: 1px dashed #b4b9be;\n box-shadow: none;\n background: transparent;\n}\n.acf-flexible-content .layout {\n position: relative;\n margin: 20px 0 0;\n background: #fff;\n border: 1px solid #ccd0d4;\n}\n.acf-flexible-content .layout:first-child {\n margin-top: 0;\n}\n.acf-flexible-content .layout .acf-fc-layout-handle {\n display: block;\n position: relative;\n padding: 8px 10px;\n cursor: move;\n border-bottom: #ccd0d4 solid 1px;\n color: #444;\n font-size: 14px;\n line-height: 1.4em;\n}\n.acf-flexible-content .layout .acf-fc-layout-order {\n display: block;\n width: 20px;\n height: 20px;\n border-radius: 10px;\n display: inline-block;\n text-align: center;\n line-height: 20px;\n margin: 0 2px 0 0;\n background: #F1F1F1;\n font-size: 12px;\n color: #444;\n}\nhtml[dir=rtl] .acf-flexible-content .layout .acf-fc-layout-order {\n float: right;\n margin-right: 0;\n margin-left: 5px;\n}\n.acf-flexible-content .layout .acf-fc-layout-controls {\n position: absolute;\n top: 8px;\n right: 8px;\n}\n.acf-flexible-content .layout .acf-fc-layout-controls .acf-icon {\n display: block;\n float: left;\n margin: 0 0 0 5px;\n}\n.acf-flexible-content .layout .acf-fc-layout-controls .acf-icon.-plus, .acf-flexible-content .layout .acf-fc-layout-controls .acf-icon.-minus, .acf-flexible-content .layout .acf-fc-layout-controls .acf-icon.-duplicate {\n visibility: hidden;\n}\nhtml[dir=rtl] .acf-flexible-content .layout .acf-fc-layout-controls {\n right: auto;\n left: 9px;\n}\n.acf-flexible-content .layout.is-selected {\n border-color: #7e8993;\n}\n.acf-flexible-content .layout.is-selected .acf-fc-layout-handle {\n border-color: #7e8993;\n}\n.acf-flexible-content .layout:hover .acf-fc-layout-controls .acf-icon.-plus, .acf-flexible-content .layout:hover .acf-fc-layout-controls .acf-icon.-minus, .acf-flexible-content .layout:hover .acf-fc-layout-controls .acf-icon.-duplicate, .acf-flexible-content .layout.-hover .acf-fc-layout-controls .acf-icon.-plus, .acf-flexible-content .layout.-hover .acf-fc-layout-controls .acf-icon.-minus, .acf-flexible-content .layout.-hover .acf-fc-layout-controls .acf-icon.-duplicate {\n visibility: visible;\n}\n.acf-flexible-content .layout.-collapsed > .acf-fc-layout-handle {\n border-bottom-width: 0;\n}\n.acf-flexible-content .layout.-collapsed > .acf-fields,\n.acf-flexible-content .layout.-collapsed > .acf-table {\n display: none;\n}\n.acf-flexible-content .layout > .acf-table {\n border: 0 none;\n box-shadow: none;\n}\n.acf-flexible-content .layout > .acf-table > tbody > tr {\n background: #fff;\n}\n.acf-flexible-content .layout > .acf-table > thead > tr > th {\n background: #F9F9F9;\n}\n.acf-flexible-content .no-value-message {\n padding: 19px;\n border: #ccc dashed 2px;\n text-align: center;\n display: none;\n}\n.acf-flexible-content.-empty > .no-value-message {\n display: block;\n}\n\n.acf-fc-popup {\n padding: 5px 0;\n z-index: 900001;\n min-width: 135px;\n}\n.acf-fc-popup ul, .acf-fc-popup li {\n list-style: none;\n display: block;\n margin: 0;\n padding: 0;\n}\n.acf-fc-popup li {\n position: relative;\n float: none;\n white-space: nowrap;\n}\n.acf-fc-popup .badge {\n display: inline-block;\n border-radius: 8px;\n font-size: 9px;\n line-height: 15px;\n padding: 0 5px;\n background: #d54e21;\n text-align: center;\n color: #fff;\n vertical-align: top;\n margin: 0 0 0 5px;\n}\n.acf-fc-popup a {\n color: #eee;\n padding: 5px 10px;\n display: block;\n text-decoration: none;\n position: relative;\n}\n.acf-fc-popup a:hover {\n background: #0073aa;\n color: #fff;\n}\n.acf-fc-popup a.disabled {\n color: #888;\n background: transparent;\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Galery\n*\n*---------------------------------------------------------------------------------------------*/\n.acf-gallery {\n border: #ccd0d4 solid 1px;\n height: 400px;\n position: relative;\n /* main */\n /* attachments */\n /* attachment */\n /* toolbar */\n /* sidebar */\n /* side info */\n /* side data */\n /* column widths */\n /* resizable */\n}\n.acf-gallery .acf-gallery-main {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: #fff;\n z-index: 2;\n}\n.acf-gallery .acf-gallery-attachments {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 48px;\n left: 0;\n padding: 5px;\n overflow: auto;\n overflow-x: hidden;\n}\n.acf-gallery .acf-gallery-attachment {\n width: 25%;\n float: left;\n cursor: pointer;\n position: relative;\n /* hover */\n /* sortable */\n /* active */\n /* icon */\n /* rtl */\n}\n.acf-gallery .acf-gallery-attachment .margin {\n margin: 5px;\n border: #d5d9dd solid 1px;\n position: relative;\n overflow: hidden;\n background: #eee;\n}\n.acf-gallery .acf-gallery-attachment .margin:before {\n content: \"\";\n display: block;\n padding-top: 100%;\n}\n.acf-gallery .acf-gallery-attachment .thumbnail {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n transform: translate(50%, 50%);\n}\nhtml[dir=rtl] .acf-gallery .acf-gallery-attachment .thumbnail {\n transform: translate(-50%, 50%);\n}\n.acf-gallery .acf-gallery-attachment .thumbnail img {\n display: block;\n height: auto;\n max-height: 100%;\n width: auto;\n transform: translate(-50%, -50%);\n}\nhtml[dir=rtl] .acf-gallery .acf-gallery-attachment .thumbnail img {\n transform: translate(50%, -50%);\n}\n.acf-gallery .acf-gallery-attachment .filename {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n padding: 5%;\n background: #F4F4F4;\n background: rgba(255, 255, 255, 0.8);\n border-top: #DFDFDF solid 1px;\n font-weight: bold;\n text-align: center;\n word-wrap: break-word;\n max-height: 90%;\n overflow: hidden;\n}\n.acf-gallery .acf-gallery-attachment .actions {\n position: absolute;\n top: 0;\n right: 0;\n display: none;\n}\n.acf-gallery .acf-gallery-attachment:hover .actions {\n display: block;\n}\n.acf-gallery .acf-gallery-attachment.ui-sortable-helper .margin {\n border: none;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);\n}\n.acf-gallery .acf-gallery-attachment.ui-sortable-placeholder .margin {\n background: #F1F1F1;\n border: none;\n}\n.acf-gallery .acf-gallery-attachment.ui-sortable-placeholder .margin * {\n display: none !important;\n}\n.acf-gallery .acf-gallery-attachment.active .margin {\n box-shadow: 0 0 0 1px #FFFFFF, 0 0 0 5px #0073aa;\n}\n.acf-gallery .acf-gallery-attachment.-icon .thumbnail img {\n transform: translate(-50%, -70%);\n}\nhtml[dir=rtl] .acf-gallery .acf-gallery-attachment {\n float: right;\n}\n.acf-gallery.sidebar-open {\n /* hide attachment actions when sidebar is open */\n /* allow sidebar to move over main for small widths (widget edit box) */\n}\n.acf-gallery.sidebar-open .acf-gallery-attachment .actions {\n display: none;\n}\n.acf-gallery.sidebar-open .acf-gallery-side {\n z-index: 2;\n}\n.acf-gallery .acf-gallery-toolbar {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n padding: 10px;\n border-top: #d5d9dd solid 1px;\n background: #fff;\n min-height: 28px;\n}\n.acf-gallery .acf-gallery-toolbar .acf-hl li {\n line-height: 24px;\n}\n.acf-gallery .acf-gallery-toolbar .bulk-actions-select {\n width: auto;\n margin: 0 1px 0 0;\n}\n.acf-gallery .acf-gallery-side {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n width: 0;\n background: #F9F9F9;\n border-left: #ccd0d4 solid 1px;\n z-index: 1;\n overflow: hidden;\n}\n.acf-gallery .acf-gallery-side .acf-gallery-side-inner {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n width: 349px;\n}\n.acf-gallery .acf-gallery-side-info {\n position: relative;\n width: 100%;\n padding: 10px;\n margin: -10px 0 15px -10px;\n background: #F1F1F1;\n border-bottom: #DFDFDF solid 1px;\n}\n.acf-gallery .acf-gallery-side-info:after {\n display: block;\n clear: both;\n content: \"\";\n}\nhtml[dir=rtl] .acf-gallery .acf-gallery-side-info {\n margin-left: 0;\n margin-right: -10px;\n}\n.acf-gallery .acf-gallery-side-info img {\n float: left;\n width: auto;\n max-width: 65px;\n max-height: 65px;\n margin: 0 10px 1px 0;\n background: #FFFFFF;\n padding: 3px;\n border: #ccd0d4 solid 1px;\n border-radius: 1px;\n /* rtl */\n}\nhtml[dir=rtl] .acf-gallery .acf-gallery-side-info img {\n float: right;\n margin: 0 0 0 10px;\n}\n.acf-gallery .acf-gallery-side-info p {\n font-size: 13px;\n line-height: 15px;\n margin: 3px 0;\n word-break: break-all;\n color: #666;\n}\n.acf-gallery .acf-gallery-side-info p strong {\n color: #000;\n}\n.acf-gallery .acf-gallery-side-info a {\n text-decoration: none;\n}\n.acf-gallery .acf-gallery-side-info a.acf-gallery-edit {\n color: #21759b;\n}\n.acf-gallery .acf-gallery-side-info a.acf-gallery-remove {\n color: #bc0b0b;\n}\n.acf-gallery .acf-gallery-side-info a:hover {\n text-decoration: underline;\n}\n.acf-gallery .acf-gallery-side-data {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 48px;\n left: 0;\n overflow: auto;\n overflow-x: inherit;\n padding: 10px;\n}\n.acf-gallery .acf-gallery-side-data .acf-label,\n.acf-gallery .acf-gallery-side-data th.label {\n color: #666666;\n font-size: 12px;\n line-height: 25px;\n padding: 0 4px 8px 0 !important;\n width: auto !important;\n vertical-align: top;\n}\nhtml[dir=rtl] .acf-gallery .acf-gallery-side-data .acf-label,\nhtml[dir=rtl] .acf-gallery .acf-gallery-side-data th.label {\n padding: 0 0 8px 4px !important;\n}\n.acf-gallery .acf-gallery-side-data .acf-label label,\n.acf-gallery .acf-gallery-side-data th.label label {\n font-weight: normal;\n}\n.acf-gallery .acf-gallery-side-data .acf-input,\n.acf-gallery .acf-gallery-side-data td.field {\n padding: 0 0 8px !important;\n}\n.acf-gallery .acf-gallery-side-data textarea {\n min-height: 0;\n height: 60px;\n}\n.acf-gallery .acf-gallery-side-data p.help {\n font-size: 12px;\n}\n.acf-gallery .acf-gallery-side-data p.help:hover {\n font-weight: normal;\n}\n.acf-gallery[data-columns=\"1\"] .acf-gallery-attachment {\n width: 100%;\n}\n.acf-gallery[data-columns=\"2\"] .acf-gallery-attachment {\n width: 50%;\n}\n.acf-gallery[data-columns=\"3\"] .acf-gallery-attachment {\n width: 33.333%;\n}\n.acf-gallery[data-columns=\"4\"] .acf-gallery-attachment {\n width: 25%;\n}\n.acf-gallery[data-columns=\"5\"] .acf-gallery-attachment {\n width: 20%;\n}\n.acf-gallery[data-columns=\"6\"] .acf-gallery-attachment {\n width: 16.666%;\n}\n.acf-gallery[data-columns=\"7\"] .acf-gallery-attachment {\n width: 14.285%;\n}\n.acf-gallery[data-columns=\"8\"] .acf-gallery-attachment {\n width: 12.5%;\n}\n.acf-gallery .ui-resizable-handle {\n display: block;\n position: absolute;\n}\n.acf-gallery .ui-resizable-s {\n bottom: -5px;\n cursor: ns-resize;\n height: 7px;\n left: 0;\n width: 100%;\n}\n\n/* media modal selected */\n.acf-media-modal .attachment.acf-selected {\n box-shadow: 0 0 0 3px #fff inset, 0 0 0 7px #0073aa inset !important;\n}\n.acf-media-modal .attachment.acf-selected .check {\n display: none !important;\n}\n.acf-media-modal .attachment.acf-selected .thumbnail {\n opacity: 0.25 !important;\n}\n.acf-media-modal .attachment.acf-selected .attachment-preview:before {\n background: rgba(0, 0, 0, 0.15);\n z-index: 1;\n position: relative;\n}\n\n/*-----------------------------------------------------------------------------\n*\n*\tACF Blocks\n*\n*----------------------------------------------------------------------------*/\n.acf-block-component .components-placeholder {\n margin: 0;\n}\n\n.acf-block-component .acf-block-fields {\n background: #fff;\n text-align: left;\n font-size: 13px;\n line-height: 1.4em;\n color: #444;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n}\n.acf-block-component .acf-block-fields.acf-empty-block-fields {\n border: 1px solid #1e1e1e;\n padding: 12px;\n}\n.components-panel .acf-block-component .acf-block-fields.acf-empty-block-fields {\n border: none;\n border-top: 1px solid #ddd;\n border-bottom: 1px solid #ddd;\n}\nhtml[dir=rtl] .acf-block-component .acf-block-fields {\n text-align: right;\n}\n.acf-block-component .acf-block-fields p {\n font-size: 13px;\n line-height: 1.5;\n}\n\n.acf-block-body .acf-block-fields {\n border: #adb2ad solid 1px;\n}\n.acf-block-body .acf-block-fields .acf-tab-wrap .acf-tab-group {\n margin-left: 0;\n padding: 16px 20px 0;\n}\n.acf-block-body .acf-fields > .acf-field {\n padding: 16px 20px;\n}\n.acf-block-body .acf-fields > .acf-field.acf-accordion {\n border-color: #adb2ad;\n}\n.acf-block-body .acf-fields > .acf-field.acf-accordion .acf-accordion-title {\n padding: 16px 20px;\n}\n.acf-block-body .acf-block-preview {\n min-height: 10px;\n}\n\n.acf-block-panel .acf-block-fields {\n border-top: #ddd solid 1px;\n border-bottom: #ddd solid 1px;\n min-height: 1px;\n}\n.acf-block-panel .acf-block-fields:empty {\n border-top: none;\n}\n.acf-block-panel .acf-block-fields .acf-tab-wrap {\n background: transparent;\n}\n\n.components-panel__body .acf-block-panel {\n margin: 16px -16px -16px;\n}","/*--------------------------------------------------------------------------------------------\n*\n*\tVars\n*\n*--------------------------------------------------------------------------------------------*/\n\n/* colors */\n$acf_blue: #2a9bd9;\n$acf_notice: #2a9bd9;\n$acf_error: #d94f4f;\n$acf_success: #49ad52;\n$acf_warning: #fd8d3b;\n\n/* acf-field */\n$field_padding: 15px 12px;\n$field_padding_x: 12px;\n$field_padding_y: 15px;\n$fp: 15px 12px;\n$fy: 15px;\n$fx: 12px;\n\n/* responsive */\n$md: 880px;\n$sm: 640px;\n\n// Admin.\n$wp-card-border: #ccd0d4;\t\t\t// Card border.\n$wp-card-border-1: #d5d9dd;\t\t // Card inner border 1: Structural (darker).\n$wp-card-border-2: #eeeeee;\t\t // Card inner border 2: Fields (lighter).\n$wp-input-border: #7e8993;\t\t // Input border.\n\n// Admin 3.8\n$wp38-card-border: #E5E5E5;\t\t // Card border.\n$wp38-card-border-1: #dfdfdf;\t\t// Card inner border 1: Structural (darker).\n$wp38-card-border-2: #eeeeee;\t\t// Card inner border 2: Fields (lighter).\n$wp38-input-border: #dddddd;\t\t // Input border.\n\n/*--------------------------------------------------------------------------------------------\n*\n*\tACF 6 ↓\n*\n*--------------------------------------------------------------------------------------------*/\n\n// Grays\n$gray-50: #F9FAFB;\n$gray-100: #F2F4F7;\n$gray-200: #EAECF0;\n$gray-300: #D0D5DD;\n$gray-400: #98A2B3;\n$gray-500: #667085;\n$gray-600: #475467;\n$gray-700: #344054;\n$gray-800: #1D2939;\n$gray-900: #101828;\n\n// Blues\n$blue-50: #EBF5FA;\n$blue-100: #D8EBF5;\n$blue-200: #A5D2E7;\n$blue-300: #6BB5D8;\n$blue-400: #399CCB;\n$blue-500: #0783BE;\n$blue-600: #066998;\n$blue-700: #044E71;\n$blue-800: #033F5B;\n$blue-900: #032F45;\n\n// Utility\n$color-info:\t#2D69DA;\n$color-success:\t#52AA59;\n$color-warning:\t#F79009;\n$color-danger:\t#D13737;\n\n$color-primary: $blue-500;\n$color-primary-hover: $blue-600;\n$color-secondary: $gray-500;\n$color-secondary-hover: $gray-400;\n\n// Gradients\n$gradient-pro: linear-gradient(90.52deg, #3E8BFF 0.44%, #A45CFF 113.3%);\n\n// Border radius\n$radius-sm:\t4px;\n$radius-md: 6px;\n$radius-lg: 8px;\n$radius-xl: 12px;\n\n// Elevations / Box shadows\n$elevation-01: 0px 1px 2px rgba($gray-900, 0.10);\n\n// Input & button focus outline\n$outline: 3px solid $blue-50;\n\n// Link colours\n$link-color: $blue-500;\n\n// Responsive\n$max-width: 1440px;","/*--------------------------------------------------------------------------------------------\n*\n* Mixins\n*\n*--------------------------------------------------------------------------------------------*/\n@mixin clearfix() {\n\t&:after {\n\t\tdisplay: block;\n\t\tclear: both;\n\t\tcontent: \"\";\n\t}\n}\n\n@mixin border-box() {\n\t-webkit-box-sizing: border-box;\n\t-moz-box-sizing: border-box;\n\tbox-sizing: border-box;\n}\n\n@mixin centered() {\n\tposition: absolute;\n\ttop: 50%;\n\tleft: 50%;\n\ttransform: translate(-50%, -50%);\n}\n\n@mixin animate( $properties: 'all' ) {\n\t-webkit-transition: $properties 0.3s ease; // Safari 3.2+, Chrome\n -moz-transition: $properties 0.3s ease; \t// Firefox 4-15\n -o-transition: $properties 0.3s ease; \t\t// Opera 10.5–12.00\n transition: $properties 0.3s ease; \t\t// Firefox 16+, Opera 12.50+\n}\n\n@mixin rtl() {\n\thtml[dir=\"rtl\"] & {\n\t\ttext-align: right;\n\t\t@content;\n\t}\n}\n\n@mixin wp-admin( $version: '3-8' ) {\n\t.acf-admin-#{$version} & {\n\t\t@content;\n\t}\n}","/*---------------------------------------------------------------------------------------------\n*\n* Repeater\n*\n*---------------------------------------------------------------------------------------------*/\n\n.acf-repeater {\n\t\n\t/* table */\n\t> table {\n\t\tmargin: 0 0 8px;\n\t\tbackground: #F9F9F9;\n\n\t\t> tbody tr.acf-divider:not(:first-child) > td {\n\t\t\tborder-top: 10px solid $gray-200;\n\t\t}\n\t}\n\t\n\t/* row handle (add/remove) */\n\t.acf-row-handle {\n\t\twidth: 16px;\n\t\ttext-align: center !important;\n\t\tvertical-align: middle !important;\n\t\tposition: relative;\n\n\t\t.acf-order-input-wrap {\n\t\t\twidth: 45px;\n\t\t}\n\n\t\t.acf-order-input::-webkit-outer-spin-button,\n\t\t.acf-order-input::-webkit-inner-spin-button {\n\t\t\t-webkit-appearance: none;\n\t\t\tmargin: 0;\n\t\t}\n\n\t\t.acf-order-input {\n\t\t\t-moz-appearance: textfield;\n\t\t\ttext-align: center;\n\t\t}\n\n\t\t/* icons */\n\t\t.acf-icon {\n\t\t\tdisplay: none;\n\t\t\tposition: absolute;\n\t\t\ttop: 0;\n\t\t\tmargin: -8px 0 0 -2px;\n\t\t\t\n\t\t\t\n\t\t\t/* minus icon */\n\t\t\t&.-minus {\n\t\t\t\ttop: 50%;\n\t\t\t\t\n\t\t\t\t/* ie fix */\n\t\t\t\tbody.browser-msie & { top: 25px; }\n\t\t\t\t\n\t\t\t}\n\t\t}\n\t\t\n\t\t\n\t\t/* .order */\n\t\t&.order {\n\t\t\tbackground: #f4f4f4;\n\t\t\tcursor: move;\n\t\t\tcolor: #aaa;\n\t\t\ttext-shadow: #fff 0 1px 0;\n\t\t\t\n\t\t\t&:hover {\n\t\t\t\tcolor: #666;\n\t\t\t}\n\t\t\t\n\t\t\t+ td {\n\t\t\t\tborder-left-color: #DFDFDF;\n\t\t\t}\n\t\t}\n\n\t\t&.pagination {\n\t\t\tcursor: auto;\n\t\t}\n\t\t\n\t\t/* remove */\n\t\t&.remove {\n\t\t\tbackground: #F9F9F9;\n\t\t\tborder-left-color: #DFDFDF;\n\t\t}\n\t}\n\t\n\t\n\t/* add in spacer to th (force correct width) */\n\tth.acf-row-handle:before {\n\t\tcontent: \"\";\n\t\twidth: 16px;\n\t\tdisplay: block;\n\t\theight: 1px;\n\t}\n\t\n\t\n\t/* row */\n\t.acf-row {\n\t\t\n\t\t/* hide clone */\n\t\t&.acf-clone {\n\t\t\tdisplay: none !important;\n\t\t}\n\t\t\n\t\t\n\t\t/* hover */\n\t\t&:hover,\n\t\t&.-hover {\n\t\t\t\n\t\t\t/* icons */\n\t\t\t> .acf-row-handle .acf-icon {\n\t\t\t\tdisplay: block;\n\n\t\t\t\t// Show \"duplicate\" icon above \"add\" when holding \"shift\" key.\n\t\t\t\t&.show-on-shift {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t\tbody.acf-keydown-shift & {\n\t\t\t\t\t\tdisplay: block;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t&.hide-on-shift {\n\t\t\t\t\tbody.acf-keydown-shift & {\n\t\t\t\t\t\tdisplay: none;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/* sortable */\n\t> table > tbody > tr.ui-sortable-helper {\n\t\tbox-shadow: 0 1px 5px rgba(0,0,0,0.2);\n\t}\n\t\n\t> table > tbody > tr.ui-sortable-placeholder {\n\t\tvisibility: visible !important;\n\t\t\n\t\ttd {\n\t\t\tbackground: #F9F9F9;\n\t\t}\n\t}\n\t\n\t\n\t/* layouts */\n/*\n\t&.-row > table > tbody > tr:before,\n\t&.-block > table > tbody > tr:before {\n\t\tcontent: \"\";\n\t\tdisplay: table-row;\n\t\theight: 2px;\n\t\tbackground: #f00;\n\t}\n*/\n\t\n\t&.-row > table > tbody > tr > td,\n\t&.-block > table > tbody > tr > td {\n\t\tborder-top-color: #E1E1E1;\n\t}\n\t\n\t\n\t/* empty */\n\t&.-empty > table > thead > tr > th {\n\t\tborder-bottom: 0 none;\n\t}\n\t\n\t&.-empty.-row > table,\n\t&.-empty.-block > table {\n\t\tdisplay: none;\n\t}\n\t\n\t\n\t/* collapsed */\n\t.acf-row.-collapsed {\n\t\t\n\t\t> .acf-field {\n\t\t\tdisplay: none !important;\n\t\t}\n\t\t\n\t\t> td.acf-field.-collapsed-target {\n\t\t\tdisplay: table-cell !important;\n\t\t}\n\t}\n\t\n\t/* collapsed (block layout) */\n\t.acf-row.-collapsed > .acf-fields {\n\t\t\n\t\t> * {\n\t\t\tdisplay: none !important;\n\t\t}\n\t\t\n\t\t> .acf-field.-collapsed-target {\n\t\t\tdisplay: block !important;\n\t\t\t\n\t\t\t&[data-width] {\n\t\t\t\tfloat: none !important;\n\t\t\t\twidth: auto !important;\n\t\t\t}\n\t\t}\n\t}\n\t\n\t\n\t/* collapsed (table layout) */\n\t&.-table .acf-row.-collapsed .acf-field.-collapsed-target {\n\t\tborder-left-color: #dfdfdf;\n\t}\n\t\n\t// Reached maximum rows.\n\t&.-max {\n\t\t\n\t\t// Hide icons to add rows.\n\t\t.acf-icon[data-event=\"add-row\"] {\n\t\t\tdisplay: none !important;\n\t\t}\n\t}\n\n\t.acf-actions {\n\t\t.acf-button {\n\t\t\tfloat: right;\n\t\t\tpointer-events: auto !important;\n\t\t}\n\n\t\t.acf-tablenav {\n\t\t\tfloat: right;\n\t\t\tmargin-right: 20px;\n\n\t\t\t.current-page {\n\t\t\t\twidth: auto !important;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/*---------------------------------------------------------------------------------------------\n*\n* Flexible Content\n*\n*---------------------------------------------------------------------------------------------*/\n\n.acf-flexible-content {\n\tposition: relative;\n\t\n\t// clones\n\t> .clones {\n\t\tdisplay: none;\n\t}\n\t\n\t// values\n\t> .values {\n\t\tmargin: 0 0 8px;\n\t\t\n\t\t// sortable\n\t\t> .ui-sortable-placeholder {\n\t\t\tvisibility: visible !important;\n\t\t\tborder: 1px dashed #b4b9be;\n\t\t\n\t\t\tbox-shadow: none;\n\t\t\tbackground: transparent;\n\t\t}\n\t}\n\t\n\t// layout\n\t.layout {\n\t\tposition: relative;\n\t\tmargin: 20px 0 0;\n\t background: #fff;\n\t border: 1px solid $wp-card-border;\n\t\t\n\t &:first-child {\n\t\t\tmargin-top: 0;\n\t\t}\n\t\t\t\n\t\t// handle\n\t\t.acf-fc-layout-handle {\n\t\t\tdisplay: block;\n\t\t\tposition: relative;\n\t\t\tpadding: 8px 10px;\n\t\t\tcursor: move;\n\t\t\tborder-bottom: $wp-card-border solid 1px;\n\t\t\tcolor: #444;\n\t\t\tfont-size: 14px;\n\t\t\tline-height: 1.4em;\n\t\t}\n\t\t\n\t\t// order\n\t\t.acf-fc-layout-order {\n\t\t\tdisplay: block;\n\t\t\twidth: 20px;\n\t\t\theight: 20px;\n\t\t\tborder-radius: 10px;\n\t\t\tdisplay: inline-block;\n\t\t\ttext-align: center;\n\t\t\tline-height: 20px;\n\t\t\tmargin: 0 2px 0 0;\n\t\t\tbackground: #F1F1F1;\n\t\t\tfont-size: 12px;\n\t\t\tcolor: #444;\n\t\t\t\n\t\t\thtml[dir=\"rtl\"] & {\n\t\t\t\tfloat: right;\n\t\t\t\tmargin-right: 0;\n\t\t\t\tmargin-left: 5px;\n\t\t\t}\n\t\t}\n\t\t\n\t\t// controlls\n\t\t.acf-fc-layout-controls {\n\t\t\tposition: absolute;\n\t\t\ttop: 8px;\n\t\t\tright: 8px;\n\t\t\t\n\t\t\t.acf-icon {\n\t\t\t\tdisplay: block;\n\t\t\t\tfloat: left;\n\t\t\t\tmargin: 0 0 0 5px;\n\t\t\t\t\n\t\t\t\t&.-plus, &.-minus, &.-duplicate { visibility: hidden; }\n\t\t\t}\n\t\t\t\n\t\t\thtml[dir=\"rtl\"] & {\n\t\t\t\tright: auto;\n\t\t\t\tleft: 9px;\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\t&.is-selected {\n\t\t\tborder-color: $wp-input-border;\n\t\t\t.acf-fc-layout-handle {\n\t\t\t\tborder-color: $wp-input-border;\n\t\t\t}\n\t\t}\n\t\t\n\t\t// open\n\t\t&:hover, \n\t\t&.-hover {\n\t\t\t\n\t\t\t// controls\n\t\t\t.acf-fc-layout-controls {\n\t\t\t\t\n\t\t\t\t.acf-icon {\n\t\t\t\t\t&.-plus, &.-minus, &.-duplicate { visibility: visible; }\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\t// collapsed\n\t\t&.-collapsed {\n\t\t\t> .acf-fc-layout-handle {\n\t\t\t\tborder-bottom-width: 0;\n\t\t\t}\n\t\t\t\n\t\t\t> .acf-fields,\n\t\t\t> .acf-table {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t}\n\t\t\n\t\t// table\n\t\t> .acf-table {\n\t\t\tborder: 0 none;\n\t\t\tbox-shadow: none;\n\t\t\t\n\t\t\t> tbody > tr {\n\t\t\t\tbackground: #fff;\n\t\t\t}\n\t\t\t\n\t\t\t> thead > tr > th {\n\t\t\t\tbackground: #F9F9F9;\n\t\t\t}\n\t\t}\n\t}\n\n\t// no value\n\t.no-value-message {\n\t\tpadding: 19px;\n\t\tborder: #ccc dashed 2px;\n\t\ttext-align: center;\n\t\tdisplay: none;\n\t}\n\n\t// empty\n\t&.-empty > .no-value-message {\n\t\tdisplay: block;\n\t}\n}\n\n// popup\n.acf-fc-popup {\n\tpadding: 5px 0;\n\tz-index: 900001; // +1 higher than .acf-tooltip\n\tmin-width: 135px;\n\t\n\tul, li {\n\t\tlist-style: none;\n\t\tdisplay: block;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t}\n\t\n\tli {\n\t\tposition: relative;\n\t\tfloat: none;\n\t\twhite-space: nowrap;\n\t}\n\t\n\t.badge {\n\t\tdisplay: inline-block;\n\t\tborder-radius: 8px;\n\t\tfont-size: 9px;\n\t\tline-height: 15px;\n\t\tpadding: 0 5px;\n\t\t\n\t\tbackground: #d54e21;\n\t\ttext-align: center;\n\t\tcolor: #fff;\n\t\tvertical-align: top;\n\t\tmargin: 0 0 0 5px;\n\t}\n\t\n\ta {\n\t\tcolor: #eee;\n\t\tpadding: 5px 10px;\n\t\tdisplay: block;\n\t\ttext-decoration: none;\n\t\tposition: relative;\n\t\t\n\t\t&:hover {\n\t\t\tbackground: #0073aa;\n\t\t\tcolor: #fff;\n\t\t}\n\t\t\n\t\t&.disabled {\n\t\t\tcolor: #888;\n\t\t\tbackground: transparent;\n\t\t}\n\t}\n}\n\n\n\n/*---------------------------------------------------------------------------------------------\n*\n* Galery\n*\n*---------------------------------------------------------------------------------------------*/\n\n.acf-gallery {\n\tborder: $wp-card-border solid 1px;\n\theight: 400px;\n\tposition: relative;\n\t\n\t/* main */\n\t.acf-gallery-main {\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tright: 0;\n\t\tbottom: 0;\n\t\tleft: 0;\n\t\tbackground: #fff;\n\t\tz-index: 2;\n\t}\n\t\n\t/* attachments */\n\t.acf-gallery-attachments {\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tright: 0;\n\t\tbottom: 48px;\n\t\tleft: 0;\n\t\tpadding: 5px;\n\t\toverflow: auto;\n\t\toverflow-x: hidden;\n\t}\n\t\n\t\n\t/* attachment */\n\t.acf-gallery-attachment {\n\t\twidth: 25%;\n\t\tfloat: left;\n\t\tcursor: pointer;\n\t\tposition: relative;\n\t\t\n\t\t.margin {\n\t\t\tmargin: 5px;\n\t\t\tborder: $wp-card-border-1 solid 1px;\n\t\t\tposition: relative;\n\t\t\toverflow: hidden;\n\t\t\tbackground: #eee;\n\t\t\t\n\t\t\t&:before {\n\t\t\t\tcontent: \"\";\n\t\t\t display: block;\n\t\t\t padding-top: 100%;\n\t\t\t}\n\t\t}\n\t\t\n\t\t.thumbnail {\n\t\t\tposition: absolute;\n\t\t\ttop: 0;\n\t\t\tleft: 0;\n\t\t\twidth: 100%;\n\t\t\theight: 100%;\n\t\t\ttransform: translate(50%, 50%);\n\t\t\t\n\t\t\thtml[dir=\"rtl\"] & { \n\t\t\t\ttransform: translate(-50%, 50%);\n\t\t\t}\n\t\t\t\n\t\t\timg {\n\t\t\t\tdisplay: block;\n\t\t\t\theight: auto;\n\t\t\t\tmax-height: 100%;\n\t\t\t\twidth: auto;\n\t\t\t\ttransform: translate(-50%, -50%);\n\t\t\t\t\n\t\t\t\thtml[dir=\"rtl\"] & { \n\t\t\t\t\ttransform: translate(50%, -50%);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\t.filename {\n\t\t position: absolute;\n\t\t bottom: 0;\n\t\t left: 0;\n\t\t right: 0;\n\t\t padding: 5%;\n\t\t background: #F4F4F4;\n\t\t background: rgba(255, 255, 255, 0.8);\n\t\t border-top: #DFDFDF solid 1px;\n\t\t font-weight: bold;\n\t\t text-align: center;\n\t\t word-wrap: break-word;\n\t\t max-height: 90%;\n\t\t overflow: hidden;\n\t\t}\n\t\t\n\t\t.actions {\n\t\t\tposition: absolute;\n\t\t\ttop: 0;\n\t\t\tright: 0;\n\t\t\tdisplay: none;\n\t\t}\n\t\t\n\t\t\n\t\t/* hover */\n\t\t&:hover {\n\t\t\t\n\t\t\t.actions {\n\t\t\t\tdisplay: block;\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\t\n\t\t/* sortable */\n\t\t&.ui-sortable-helper {\n\t\t\t\n\t\t\t.margin {\n\t\t\t\tborder: none;\n\t\t\t\tbox-shadow: 0 1px 3px rgba(0,0,0,0.3);\n\t\t\t}\n\t\t}\n\t\t\n\t\t&.ui-sortable-placeholder {\n\t\t\t\n\t\t\t.margin {\n\t\t\t\tbackground: #F1F1F1;\n\t\t\t\tborder: none;\n\t\t\t\t\n\t\t\t\t* {\n\t\t\t\t\tdisplay: none !important;\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\t\n\t\t/* active */\n\t\t&.active {\n\t\t\t\n\t\t\t.margin {\n\t\t\t\tbox-shadow: 0 0 0 1px #FFFFFF, 0 0 0 5px #0073aa;\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\t\n\t\t/* icon */\n\t\t&.-icon {\n\t\t\t\n\t\t\t.thumbnail img {\n\t\t\t\ttransform: translate(-50%, -70%);\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\t\n\t\t/* rtl */\n\t\thtml[dir=\"rtl\"] & {\n\t\t\tfloat: right;\n\t\t}\n\t\t\n\t}\n\t\n\t\n\t\n\t&.sidebar-open {\n\t\t\n\t\t/* hide attachment actions when sidebar is open */\n\t\t.acf-gallery-attachment .actions {\n\t\t\tdisplay: none;\n\t\t}\n\t\t\n\t\t\n\t\t/* allow sidebar to move over main for small widths (widget edit box) */\n\t\t.acf-gallery-side {\n\t\t\tz-index: 2;\n\t\t}\n\t\t\n\t}\n\t\n\t\n\t/* toolbar */\n\t.acf-gallery-toolbar {\n\t\tposition: absolute;\n\t\tright: 0;\n\t\tbottom: 0;\n\t\tleft: 0;\n\t\tpadding: 10px;\n\t\tborder-top: $wp-card-border-1 solid 1px;\n\t\tbackground: #fff;\n\t\tmin-height: 28px;\n\t\t\n\t\t.acf-hl li {\n\t\t\tline-height: 24px;\n\t\t}\n\t\t\n\t\t.bulk-actions-select {\n\t\t\twidth: auto;\n\t\t\tmargin: 0 1px 0 0;\n\t\t}\n\t\t\n\t}\n\t\n\t\n\t/* sidebar */\n\t.acf-gallery-side {\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tright: 0;\n\t\tbottom: 0;\n\t\twidth: 0;\n\t\t\n\t\tbackground: #F9F9F9;\n\t\tborder-left: $wp-card-border solid 1px;\n\t\t\n\t\tz-index: 1;\n\t\toverflow: hidden;\n\t\t\n\t\t.acf-gallery-side-inner {\n\t\t\tposition: absolute;\n\t\t\ttop: 0;\n\t\t\tleft: 0;\n\t\t\tbottom: 0;\n\t\t\twidth: 349px;\n\t\t}\n\t\t\n\t}\n\t\n\t\n\t/* side info */\n\t.acf-gallery-side-info {\n\t\t@include clearfix();\n\t\tposition: relative;\n\t\twidth: 100%;\n\t\tpadding: 10px;\n\t\tmargin: -10px 0 15px -10px;\n\t\tbackground: #F1F1F1;\n\t\tborder-bottom: #DFDFDF solid 1px;\n\t\t\n\t\thtml[dir=\"rtl\"] & {\n\t\t\tmargin-left: 0;\n\t\t\tmargin-right: -10px;\n\t\t}\n\t\n\t\timg {\n\t\t\tfloat: left;\n\t\t\twidth: auto;\n\t\t\tmax-width: 65px;\n\t\t\tmax-height: 65px;\n\t\t\tmargin: 0 10px 1px 0;\n\t\t\tbackground: #FFFFFF;\n\t\t\tpadding: 3px;\n\t\t\tborder: $wp-card-border solid 1px;\n\t\t\tborder-radius: 1px;\n\t\t\t\n\t\t\t/* rtl */\n\t\t\thtml[dir=\"rtl\"] & {\n\t\t\t\tfloat: right;\n\t\t\t\tmargin: 0 0 0 10px;\n\t\t\t}\n\t\t}\n\t\t\t\t\n\t\tp {\n\t\t\tfont-size: 13px;\n\t\t\tline-height: 15px;\n\t\t\tmargin: 3px 0;\n\t\t\tword-break: break-all;\n\t\t\tcolor: #666;\n\t\t\t\n\t\t\tstrong {\n\t\t\t\tcolor: #000;\n\t\t\t}\n\t\t}\n\t\t\n\t\ta {\n\t\t\ttext-decoration: none;\n\t\t\t\n\t\t\t&.acf-gallery-edit {\n\t\t\t\tcolor: #21759b;\n\t\t\t}\n\t\t\t\n\t\t\t&.acf-gallery-remove {\n\t\t\t\tcolor: #bc0b0b;\n\t\t\t}\n\t\t\t\n\t\t\t&:hover {\n\t\t\t\ttext-decoration: underline;\n\t\t\t}\n\t\t\n\t\t}\n\t\t\n\t}\n\t\n\t\n\t/* side data */\n\t.acf-gallery-side-data {\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tright: 0;\n\t\tbottom: 48px;\n\t\tleft: 0;\n\t\toverflow: auto;\n\t\toverflow-x: inherit;\n\t\tpadding: 10px;\n\t\n\t\t\n\t\t.acf-label,\n\t\tth.label {\n\t\t\tcolor: #666666;\n\t\t\tfont-size: 12px;\n\t\t\tline-height: 25px;\n\t\t\tpadding: 0 4px 8px 0 !important;\n\t\t\twidth: auto !important;\n\t\t\tvertical-align: top;\n\t\t\t\n\t\t\thtml[dir=\"rtl\"] & { \n\t\t\t\tpadding: 0 0 8px 4px !important;\n\t\t\t}\n\t\t\t\n\t\t\tlabel {\n\t\t\t\tfont-weight: normal;\n\t\t\t}\n\t\t}\n\t\t\t\t\n\t\t.acf-input,\n\t\ttd.field {\n\t\t\tpadding: 0 0 8px !important;\n\t\t}\n\t\t\n\t\ttextarea {\n\t\t\tmin-height: 0;\n\t\t\theight: 60px;\n\t\t}\n\t\t\n\t\tp.help {\n\t\t\tfont-size: 12px;\n\t\t\t\n\t\t\t&:hover {\n\t\t\t\tfont-weight: normal;\n\t\t\t}\n\t\t}\n\t\n\t}\n\t\n\t\n\t/* column widths */\n\t&[data-columns=\"1\"] .acf-gallery-attachment { width: 100%; }\n\t&[data-columns=\"2\"] .acf-gallery-attachment { width: 50%; }\n\t&[data-columns=\"3\"] .acf-gallery-attachment { width: 33.333%; }\n\t&[data-columns=\"4\"] .acf-gallery-attachment { width: 25%; }\n\t&[data-columns=\"5\"] .acf-gallery-attachment { width: 20%; }\n\t&[data-columns=\"6\"] .acf-gallery-attachment { width: 16.666%; }\n\t&[data-columns=\"7\"] .acf-gallery-attachment { width: 14.285%; }\n\t&[data-columns=\"8\"] .acf-gallery-attachment { width: 12.5%; }\n\t\n\t\n\t/* resizable */\n\t.ui-resizable-handle {\n\t\tdisplay: block;\n\t\tposition: absolute;\n\t}\n\t\n\t.ui-resizable-s {\n\t\tbottom: -5px;\n\t\tcursor: ns-resize;\n\t\theight: 7px;\n\t\tleft: 0;\n\t\twidth: 100%;\n\t}\n\n}\n\n\n\n/* media modal selected */\n.acf-media-modal .attachment.acf-selected {\n\tbox-shadow: 0 0 0 3px #fff inset, 0 0 0 7px #0073aa inset !important;\n\t\n\t.check {\n\t\tdisplay: none !important;\n\t}\n\t\n\t.thumbnail {\n\t\topacity: 0.25 !important;\n\t}\n\t\t\n\t.attachment-preview:before {\n\t\tbackground: rgba(0,0,0,0.15);\n\t\tz-index: 1;\n\t\tposition: relative;\n\t}\n\n}\n","/*-----------------------------------------------------------------------------\n*\n*\tACF Blocks\n*\n*----------------------------------------------------------------------------*/\n\n// All block components.\n.acf-block-component {\n\n\t.components-placeholder {\n\t\tmargin: 0;\n\t}\n}\n\n// Block fields\n.acf-block-component .acf-block-fields {\n\t// Ensure white background behind fields.\n\tbackground: #fff;\n\n\t// Generic body styles\n\ttext-align: left;\n\tfont-size: 13px;\n\tline-height: 1.4em;\n\tcolor: #444;\n\tfont-family:\n\t\t-apple-system,\n\t\tBlinkMacSystemFont,\n\t\t\"Segoe UI\",\n\t\tRoboto,\n\t\tOxygen-Sans,\n\t\tUbuntu,\n\t\tCantarell,\n\t\t\"Helvetica Neue\",\n\t\tsans-serif;\n\n\t&.acf-empty-block-fields {\n\t\tborder: 1px solid #1e1e1e;\n\t\tpadding: 12px;\n\n\t\t.components-panel & {\n\t\t\tborder: none;\n\t\t\tborder-top: 1px solid #ddd;\n\t\t\tborder-bottom: 1px solid #ddd;\n\t\t}\n\t}\n\n\thtml[dir=\"rtl\"] & {\n\t\ttext-align: right;\n\t}\n\n\tp {\n\t\tfont-size: 13px;\n\t\tline-height: 1.5;\n\t}\n}\n\n// Block body.\n.acf-block-body {\n\t// Fields wrapper.\n\t.acf-block-fields {\n\t\tborder: #adb2ad solid 1px;\n\n\t\t// Tab\n\t\t.acf-tab-wrap {\n\n\t\t\t.acf-tab-group {\n\t\t\t\tmargin-left: 0;\n\t\t\t\tpadding: 16px 20px 0;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Block fields (div).\n\t.acf-fields > .acf-field {\n\t\tpadding: 16px 20px;\n\n\t\t// Accordions.\n\t\t&.acf-accordion {\n\t\t\tborder-color: #adb2ad;\n\n\t\t\t.acf-accordion-title {\n\t\t\t\tpadding: 16px 20px;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Preview.\n\t.acf-block-preview {\n\t\tmin-height: 10px;\n\t}\n}\n\n// Block panel.\n.acf-block-panel {\n\t// Fields wrapper.\n\t.acf-block-fields {\n\t\tborder-top: #ddd solid 1px;\n\t\tborder-bottom: #ddd solid 1px;\n\t\tmin-height: 1px;\n\n\t\t&:empty {\n\t\t\tborder-top: none;\n\t\t}\n\n\t\t// Tab\n\t\t.acf-tab-wrap {\n\t\t\tbackground: transparent;\n\t\t}\n\t}\n}\n\n// Add compatibility for WP 5.3 and older.\n// - Sidebar area is wrapped in a PanelBody element.\n.components-panel__body .acf-block-panel {\n\tmargin: 16px -16px -16px;\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/assets/build/css/pro/acf-pro-input.min.css b/assets/build/css/pro/acf-pro-input.min.css new file mode 100644 index 0000000..49b9af3 --- /dev/null +++ b/assets/build/css/pro/acf-pro-input.min.css @@ -0,0 +1 @@ +.acf-repeater>table{margin:0 0 8px;background:#f9f9f9}.acf-repeater>table>tbody tr.acf-divider:not(:first-child)>td{border-top:10px solid #eaecf0}.acf-repeater .acf-row-handle{width:16px;text-align:center !important;vertical-align:middle !important;position:relative}.acf-repeater .acf-row-handle .acf-order-input-wrap{width:45px}.acf-repeater .acf-row-handle .acf-order-input::-webkit-outer-spin-button,.acf-repeater .acf-row-handle .acf-order-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.acf-repeater .acf-row-handle .acf-order-input{-moz-appearance:textfield;text-align:center}.acf-repeater .acf-row-handle .acf-icon{display:none;position:absolute;top:0;margin:-8px 0 0 -2px}.acf-repeater .acf-row-handle .acf-icon.-minus{top:50%}body.browser-msie .acf-repeater .acf-row-handle .acf-icon.-minus{top:25px}.acf-repeater .acf-row-handle.order{background:#f4f4f4;cursor:move;color:#aaa;text-shadow:#fff 0 1px 0}.acf-repeater .acf-row-handle.order:hover{color:#666}.acf-repeater .acf-row-handle.order+td{border-left-color:#dfdfdf}.acf-repeater .acf-row-handle.pagination{cursor:auto}.acf-repeater .acf-row-handle.remove{background:#f9f9f9;border-left-color:#dfdfdf}.acf-repeater th.acf-row-handle:before{content:"";width:16px;display:block;height:1px}.acf-repeater .acf-row.acf-clone{display:none !important}.acf-repeater .acf-row:hover>.acf-row-handle .acf-icon,.acf-repeater .acf-row.-hover>.acf-row-handle .acf-icon{display:block}.acf-repeater .acf-row:hover>.acf-row-handle .acf-icon.show-on-shift,.acf-repeater .acf-row.-hover>.acf-row-handle .acf-icon.show-on-shift{display:none}body.acf-keydown-shift .acf-repeater .acf-row:hover>.acf-row-handle .acf-icon.show-on-shift,body.acf-keydown-shift .acf-repeater .acf-row.-hover>.acf-row-handle .acf-icon.show-on-shift{display:block}body.acf-keydown-shift .acf-repeater .acf-row:hover>.acf-row-handle .acf-icon.hide-on-shift,body.acf-keydown-shift .acf-repeater .acf-row.-hover>.acf-row-handle .acf-icon.hide-on-shift{display:none}.acf-repeater>table>tbody>tr.ui-sortable-helper{box-shadow:0 1px 5px rgba(0,0,0,.2)}.acf-repeater>table>tbody>tr.ui-sortable-placeholder{visibility:visible !important}.acf-repeater>table>tbody>tr.ui-sortable-placeholder td{background:#f9f9f9}.acf-repeater.-row>table>tbody>tr>td,.acf-repeater.-block>table>tbody>tr>td{border-top-color:#e1e1e1}.acf-repeater.-empty>table>thead>tr>th{border-bottom:0 none}.acf-repeater.-empty.-row>table,.acf-repeater.-empty.-block>table{display:none}.acf-repeater .acf-row.-collapsed>.acf-field{display:none !important}.acf-repeater .acf-row.-collapsed>td.acf-field.-collapsed-target{display:table-cell !important}.acf-repeater .acf-row.-collapsed>.acf-fields>*{display:none !important}.acf-repeater .acf-row.-collapsed>.acf-fields>.acf-field.-collapsed-target{display:block !important}.acf-repeater .acf-row.-collapsed>.acf-fields>.acf-field.-collapsed-target[data-width]{float:none !important;width:auto !important}.acf-repeater.-table .acf-row.-collapsed .acf-field.-collapsed-target{border-left-color:#dfdfdf}.acf-repeater.-max .acf-icon[data-event=add-row]{display:none !important}.acf-repeater .acf-actions .acf-button{float:right;pointer-events:auto !important}.acf-repeater .acf-actions .acf-tablenav{float:right;margin-right:20px}.acf-repeater .acf-actions .acf-tablenav .current-page{width:auto !important}.acf-flexible-content{position:relative}.acf-flexible-content>.clones{display:none}.acf-flexible-content>.values{margin:0 0 8px}.acf-flexible-content>.values>.ui-sortable-placeholder{visibility:visible !important;border:1px dashed #b4b9be;box-shadow:none;background:rgba(0,0,0,0)}.acf-flexible-content .layout{position:relative;margin:20px 0 0;background:#fff;border:1px solid #ccd0d4}.acf-flexible-content .layout:first-child{margin-top:0}.acf-flexible-content .layout .acf-fc-layout-handle{display:block;position:relative;padding:8px 10px;cursor:move;border-bottom:#ccd0d4 solid 1px;color:#444;font-size:14px;line-height:1.4em}.acf-flexible-content .layout .acf-fc-layout-order{display:block;width:20px;height:20px;border-radius:10px;display:inline-block;text-align:center;line-height:20px;margin:0 2px 0 0;background:#f1f1f1;font-size:12px;color:#444}html[dir=rtl] .acf-flexible-content .layout .acf-fc-layout-order{float:right;margin-right:0;margin-left:5px}.acf-flexible-content .layout .acf-fc-layout-controls{position:absolute;top:8px;right:8px}.acf-flexible-content .layout .acf-fc-layout-controls .acf-icon{display:block;float:left;margin:0 0 0 5px}.acf-flexible-content .layout .acf-fc-layout-controls .acf-icon.-plus,.acf-flexible-content .layout .acf-fc-layout-controls .acf-icon.-minus,.acf-flexible-content .layout .acf-fc-layout-controls .acf-icon.-duplicate{visibility:hidden}html[dir=rtl] .acf-flexible-content .layout .acf-fc-layout-controls{right:auto;left:9px}.acf-flexible-content .layout.is-selected{border-color:#7e8993}.acf-flexible-content .layout.is-selected .acf-fc-layout-handle{border-color:#7e8993}.acf-flexible-content .layout:hover .acf-fc-layout-controls .acf-icon.-plus,.acf-flexible-content .layout:hover .acf-fc-layout-controls .acf-icon.-minus,.acf-flexible-content .layout:hover .acf-fc-layout-controls .acf-icon.-duplicate,.acf-flexible-content .layout.-hover .acf-fc-layout-controls .acf-icon.-plus,.acf-flexible-content .layout.-hover .acf-fc-layout-controls .acf-icon.-minus,.acf-flexible-content .layout.-hover .acf-fc-layout-controls .acf-icon.-duplicate{visibility:visible}.acf-flexible-content .layout.-collapsed>.acf-fc-layout-handle{border-bottom-width:0}.acf-flexible-content .layout.-collapsed>.acf-fields,.acf-flexible-content .layout.-collapsed>.acf-table{display:none}.acf-flexible-content .layout>.acf-table{border:0 none;box-shadow:none}.acf-flexible-content .layout>.acf-table>tbody>tr{background:#fff}.acf-flexible-content .layout>.acf-table>thead>tr>th{background:#f9f9f9}.acf-flexible-content .no-value-message{padding:19px;border:#ccc dashed 2px;text-align:center;display:none}.acf-flexible-content.-empty>.no-value-message{display:block}.acf-fc-popup{padding:5px 0;z-index:900001;min-width:135px}.acf-fc-popup ul,.acf-fc-popup li{list-style:none;display:block;margin:0;padding:0}.acf-fc-popup li{position:relative;float:none;white-space:nowrap}.acf-fc-popup .badge{display:inline-block;border-radius:8px;font-size:9px;line-height:15px;padding:0 5px;background:#d54e21;text-align:center;color:#fff;vertical-align:top;margin:0 0 0 5px}.acf-fc-popup a{color:#eee;padding:5px 10px;display:block;text-decoration:none;position:relative}.acf-fc-popup a:hover{background:#0073aa;color:#fff}.acf-fc-popup a.disabled{color:#888;background:rgba(0,0,0,0)}.acf-gallery{border:#ccd0d4 solid 1px;height:400px;position:relative}.acf-gallery .acf-gallery-main{position:absolute;top:0;right:0;bottom:0;left:0;background:#fff;z-index:2}.acf-gallery .acf-gallery-attachments{position:absolute;top:0;right:0;bottom:48px;left:0;padding:5px;overflow:auto;overflow-x:hidden}.acf-gallery .acf-gallery-attachment{width:25%;float:left;cursor:pointer;position:relative}.acf-gallery .acf-gallery-attachment .margin{margin:5px;border:#d5d9dd solid 1px;position:relative;overflow:hidden;background:#eee}.acf-gallery .acf-gallery-attachment .margin:before{content:"";display:block;padding-top:100%}.acf-gallery .acf-gallery-attachment .thumbnail{position:absolute;top:0;left:0;width:100%;height:100%;transform:translate(50%, 50%)}html[dir=rtl] .acf-gallery .acf-gallery-attachment .thumbnail{transform:translate(-50%, 50%)}.acf-gallery .acf-gallery-attachment .thumbnail img{display:block;height:auto;max-height:100%;width:auto;transform:translate(-50%, -50%)}html[dir=rtl] .acf-gallery .acf-gallery-attachment .thumbnail img{transform:translate(50%, -50%)}.acf-gallery .acf-gallery-attachment .filename{position:absolute;bottom:0;left:0;right:0;padding:5%;background:#f4f4f4;background:rgba(255,255,255,.8);border-top:#dfdfdf solid 1px;font-weight:bold;text-align:center;word-wrap:break-word;max-height:90%;overflow:hidden}.acf-gallery .acf-gallery-attachment .actions{position:absolute;top:0;right:0;display:none}.acf-gallery .acf-gallery-attachment:hover .actions{display:block}.acf-gallery .acf-gallery-attachment.ui-sortable-helper .margin{border:none;box-shadow:0 1px 3px rgba(0,0,0,.3)}.acf-gallery .acf-gallery-attachment.ui-sortable-placeholder .margin{background:#f1f1f1;border:none}.acf-gallery .acf-gallery-attachment.ui-sortable-placeholder .margin *{display:none !important}.acf-gallery .acf-gallery-attachment.active .margin{box-shadow:0 0 0 1px #fff,0 0 0 5px #0073aa}.acf-gallery .acf-gallery-attachment.-icon .thumbnail img{transform:translate(-50%, -70%)}html[dir=rtl] .acf-gallery .acf-gallery-attachment{float:right}.acf-gallery.sidebar-open .acf-gallery-attachment .actions{display:none}.acf-gallery.sidebar-open .acf-gallery-side{z-index:2}.acf-gallery .acf-gallery-toolbar{position:absolute;right:0;bottom:0;left:0;padding:10px;border-top:#d5d9dd solid 1px;background:#fff;min-height:28px}.acf-gallery .acf-gallery-toolbar .acf-hl li{line-height:24px}.acf-gallery .acf-gallery-toolbar .bulk-actions-select{width:auto;margin:0 1px 0 0}.acf-gallery .acf-gallery-side{position:absolute;top:0;right:0;bottom:0;width:0;background:#f9f9f9;border-left:#ccd0d4 solid 1px;z-index:1;overflow:hidden}.acf-gallery .acf-gallery-side .acf-gallery-side-inner{position:absolute;top:0;left:0;bottom:0;width:349px}.acf-gallery .acf-gallery-side-info{position:relative;width:100%;padding:10px;margin:-10px 0 15px -10px;background:#f1f1f1;border-bottom:#dfdfdf solid 1px}.acf-gallery .acf-gallery-side-info:after{display:block;clear:both;content:""}html[dir=rtl] .acf-gallery .acf-gallery-side-info{margin-left:0;margin-right:-10px}.acf-gallery .acf-gallery-side-info img{float:left;width:auto;max-width:65px;max-height:65px;margin:0 10px 1px 0;background:#fff;padding:3px;border:#ccd0d4 solid 1px;border-radius:1px}html[dir=rtl] .acf-gallery .acf-gallery-side-info img{float:right;margin:0 0 0 10px}.acf-gallery .acf-gallery-side-info p{font-size:13px;line-height:15px;margin:3px 0;word-break:break-all;color:#666}.acf-gallery .acf-gallery-side-info p strong{color:#000}.acf-gallery .acf-gallery-side-info a{text-decoration:none}.acf-gallery .acf-gallery-side-info a.acf-gallery-edit{color:#21759b}.acf-gallery .acf-gallery-side-info a.acf-gallery-remove{color:#bc0b0b}.acf-gallery .acf-gallery-side-info a:hover{text-decoration:underline}.acf-gallery .acf-gallery-side-data{position:absolute;top:0;right:0;bottom:48px;left:0;overflow:auto;overflow-x:inherit;padding:10px}.acf-gallery .acf-gallery-side-data .acf-label,.acf-gallery .acf-gallery-side-data th.label{color:#666;font-size:12px;line-height:25px;padding:0 4px 8px 0 !important;width:auto !important;vertical-align:top}html[dir=rtl] .acf-gallery .acf-gallery-side-data .acf-label,html[dir=rtl] .acf-gallery .acf-gallery-side-data th.label{padding:0 0 8px 4px !important}.acf-gallery .acf-gallery-side-data .acf-label label,.acf-gallery .acf-gallery-side-data th.label label{font-weight:normal}.acf-gallery .acf-gallery-side-data .acf-input,.acf-gallery .acf-gallery-side-data td.field{padding:0 0 8px !important}.acf-gallery .acf-gallery-side-data textarea{min-height:0;height:60px}.acf-gallery .acf-gallery-side-data p.help{font-size:12px}.acf-gallery .acf-gallery-side-data p.help:hover{font-weight:normal}.acf-gallery[data-columns="1"] .acf-gallery-attachment{width:100%}.acf-gallery[data-columns="2"] .acf-gallery-attachment{width:50%}.acf-gallery[data-columns="3"] .acf-gallery-attachment{width:33.333%}.acf-gallery[data-columns="4"] .acf-gallery-attachment{width:25%}.acf-gallery[data-columns="5"] .acf-gallery-attachment{width:20%}.acf-gallery[data-columns="6"] .acf-gallery-attachment{width:16.666%}.acf-gallery[data-columns="7"] .acf-gallery-attachment{width:14.285%}.acf-gallery[data-columns="8"] .acf-gallery-attachment{width:12.5%}.acf-gallery .ui-resizable-handle{display:block;position:absolute}.acf-gallery .ui-resizable-s{bottom:-5px;cursor:ns-resize;height:7px;left:0;width:100%}.acf-media-modal .attachment.acf-selected{box-shadow:0 0 0 3px #fff inset,0 0 0 7px #0073aa inset !important}.acf-media-modal .attachment.acf-selected .check{display:none !important}.acf-media-modal .attachment.acf-selected .thumbnail{opacity:.25 !important}.acf-media-modal .attachment.acf-selected .attachment-preview:before{background:rgba(0,0,0,.15);z-index:1;position:relative}.acf-block-component .components-placeholder{margin:0}.acf-block-component .acf-block-fields{background:#fff;text-align:left;font-size:13px;line-height:1.4em;color:#444;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.acf-block-component .acf-block-fields.acf-empty-block-fields{border:1px solid #1e1e1e;padding:12px}.components-panel .acf-block-component .acf-block-fields.acf-empty-block-fields{border:none;border-top:1px solid #ddd;border-bottom:1px solid #ddd}html[dir=rtl] .acf-block-component .acf-block-fields{text-align:right}.acf-block-component .acf-block-fields p{font-size:13px;line-height:1.5}.acf-block-body .acf-block-fields{border:#adb2ad solid 1px}.acf-block-body .acf-block-fields .acf-tab-wrap .acf-tab-group{margin-left:0;padding:16px 20px 0}.acf-block-body .acf-fields>.acf-field{padding:16px 20px}.acf-block-body .acf-fields>.acf-field.acf-accordion{border-color:#adb2ad}.acf-block-body .acf-fields>.acf-field.acf-accordion .acf-accordion-title{padding:16px 20px}.acf-block-body .acf-block-preview{min-height:10px}.acf-block-panel .acf-block-fields{border-top:#ddd solid 1px;border-bottom:#ddd solid 1px;min-height:1px}.acf-block-panel .acf-block-fields:empty{border-top:none}.acf-block-panel .acf-block-fields .acf-tab-wrap{background:rgba(0,0,0,0)}.components-panel__body .acf-block-panel{margin:16px -16px -16px} diff --git a/assets/build/js/acf-field-group.js b/assets/build/js/acf-field-group.js new file mode 100644 index 0000000..b4e3ed3 --- /dev/null +++ b/assets/build/js/acf-field-group.js @@ -0,0 +1,3131 @@ +/******/ (function() { // webpackBootstrap +/******/ var __webpack_modules__ = ({ + +/***/ "./src/advanced-custom-fields-pro/assets/src/js/_browse-fields-modal.js": +/*!******************************************************************************!*\ + !*** ./src/advanced-custom-fields-pro/assets/src/js/_browse-fields-modal.js ***! + \******************************************************************************/ +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js"); + +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } +/** + * Extends acf.models.Modal to create the field browser. + * + * @package Advanced Custom Fields + */ + +(function ($, undefined, acf) { + const browseFieldsModal = { + data: { + openedBy: null, + currentFieldType: null, + popularFieldTypes: ['text', 'textarea', 'email', 'url', 'file', 'gallery', 'select', 'true_false', 'link', 'post_object', 'relationship', 'repeater', 'flexible_content', 'clone'] + }, + events: { + 'click .acf-modal-close': 'onClickClose', + 'keydown .acf-browse-fields-modal': 'onPressEscapeClose', + 'click .acf-select-field': 'onClickSelectField', + 'click .acf-field-type': 'onClickFieldType', + 'changed:currentFieldType': 'onChangeFieldType', + 'input .acf-search-field-types': 'onSearchFieldTypes', + 'click .acf-browse-popular-fields': 'onClickBrowsePopular' + }, + setup: function (props) { + $.extend(this.data, props); + this.$el = $(this.tmpl()); + this.render(); + }, + initialize: function () { + this.open(); + this.lockFocusToModal(true); + this.$el.find('.acf-modal-title').focus(); + acf.doAction('show', this.$el); + }, + tmpl: function () { + return $('#tmpl-acf-browse-fields-modal').html(); + }, + getFieldTypes: function (category, search) { + let fieldTypes; + if (!acf.get('is_pro')) { + // Add in the pro fields. + fieldTypes = Object.values(_objectSpread(_objectSpread({}, acf.get('fieldTypes')), acf.get('PROFieldTypes'))); + } else { + fieldTypes = Object.values(acf.get('fieldTypes')); + } + if (category) { + if ('popular' === category) { + return fieldTypes.filter(fieldType => this.get('popularFieldTypes').includes(fieldType.name)); + } + if ('pro' === category) { + return fieldTypes.filter(fieldType => fieldType.pro); + } + fieldTypes = fieldTypes.filter(fieldType => fieldType.category === category); + } + if (search) { + fieldTypes = fieldTypes.filter(fieldType => { + const label = fieldType.label.toLowerCase(); + const labelParts = label.split(' '); + let match = false; + if (label.startsWith(search.toLowerCase())) { + match = true; + } else if (labelParts.length > 1) { + labelParts.forEach(part => { + if (part.startsWith(search.toLowerCase())) { + match = true; + } + }); + } + return match; + }); + } + return fieldTypes; + }, + render: function () { + acf.doAction('append', this.$el); + const $tabs = this.$el.find('.acf-field-types-tab'); + const self = this; + $tabs.each(function () { + const category = $(this).data('category'); + const fieldTypes = self.getFieldTypes(category); + fieldTypes.forEach(fieldType => { + $(this).append(self.getFieldTypeHTML(fieldType)); + }); + }); + this.initializeFieldLabel(); + this.initializeFieldType(); + this.onChangeFieldType(); + }, + getFieldTypeHTML: function (fieldType) { + const iconName = fieldType.name.replaceAll('_', '-'); + return ` + + ${fieldType.pro && !acf.get('is_pro') ? 'PRO' : fieldType.pro ? 'PRO' : ''} + + ${fieldType.label} + + `; + }, + decodeFieldTypeURL: function (url) { + if (typeof url != 'string') return url; + return url.replaceAll('&', '&'); + }, + renderFieldTypeDesc: function (fieldType) { + const fieldTypeInfo = this.getFieldTypes().filter(fieldTypeFilter => fieldTypeFilter.name === fieldType)[0] || {}; + const args = acf.parseArgs(fieldTypeInfo, { + label: '', + description: '', + doc_url: false, + tutorial_url: false, + preview_image: false, + pro: false + }); + this.$el.find('.field-type-name').text(args.label); + this.$el.find('.field-type-desc').text(args.description); + if (args.doc_url) { + this.$el.find('.field-type-doc').attr('href', this.decodeFieldTypeURL(args.doc_url)).show(); + } else { + this.$el.find('.field-type-doc').hide(); + } + if (args.tutorial_url) { + this.$el.find('.field-type-tutorial').attr('href', this.decodeFieldTypeURL(args.tutorial_url)).parent().show(); + } else { + this.$el.find('.field-type-tutorial').parent().hide(); + } + if (args.preview_image) { + this.$el.find('.field-type-image').attr('src', args.preview_image).show(); + } else { + this.$el.find('.field-type-image').hide(); + } + const isPro = acf.get('is_pro'); + const $upgateToProButton = this.$el.find('.acf-btn-pro'); + const $upgradeToUnlockButton = this.$el.find('.field-type-upgrade-to-unlock'); + if (args.pro && !isPro) { + $upgateToProButton.show(); + $upgateToProButton.attr('href', $upgateToProButton.data('urlBase') + fieldType); + $upgradeToUnlockButton.show(); + $upgradeToUnlockButton.attr('href', $upgradeToUnlockButton.data('urlBase') + fieldType); + this.$el.find('.acf-insert-field-label').attr('disabled', true); + this.$el.find('.acf-select-field').hide(); + } else { + $upgateToProButton.hide(); + $upgradeToUnlockButton.hide(); + this.$el.find('.acf-insert-field-label').attr('disabled', false); + this.$el.find('.acf-select-field').show(); + } + }, + initializeFieldType: function () { + var _fieldObject$data; + const fieldObject = this.get('openedBy'); + const fieldType = fieldObject === null || fieldObject === void 0 ? void 0 : (_fieldObject$data = fieldObject.data) === null || _fieldObject$data === void 0 ? void 0 : _fieldObject$data.type; + + // Select default field type + if (fieldType) { + this.set('currentFieldType', fieldType); + } else { + this.set('currentFieldType', 'text'); + } + + // Select first tab with selected field type + // If type selected is wthin Popular, select Popular Tab + // Else select first tab the type belongs + const fieldTypes = this.getFieldTypes(); + const isFieldTypePopular = this.get('popularFieldTypes').includes(fieldType); + let category = ''; + if (isFieldTypePopular) { + category = 'popular'; + } else { + const selectedFieldType = fieldTypes.find(x => { + return x.name === fieldType; + }); + category = selectedFieldType.category; + } + const uppercaseCategory = category[0].toUpperCase() + category.slice(1); + const searchTabElement = `.acf-modal-content .acf-tab-wrap a:contains('${uppercaseCategory}')`; + setTimeout(() => { + $(searchTabElement).click(); + }, 0); + }, + initializeFieldLabel: function () { + const fieldObject = this.get('openedBy'); + const labelText = fieldObject.$fieldLabel().val(); + const $fieldLabel = this.$el.find('.acf-insert-field-label'); + if (labelText) { + $fieldLabel.val(labelText); + } else { + $fieldLabel.val(''); + } + }, + updateFieldObjectFieldLabel: function () { + const label = this.$el.find('.acf-insert-field-label').val(); + const fieldObject = this.get('openedBy'); + fieldObject.$fieldLabel().val(label); + fieldObject.$fieldLabel().trigger('blur'); + }, + onChangeFieldType: function () { + const fieldType = this.get('currentFieldType'); + this.$el.find('.selected').removeClass('selected'); + this.$el.find('.acf-field-type[data-field-type="' + fieldType + '"]').addClass('selected'); + this.renderFieldTypeDesc(fieldType); + }, + onSearchFieldTypes: function (e) { + const $modal = this.$el.find('.acf-browse-fields-modal'); + const inputVal = this.$el.find('.acf-search-field-types').val(); + const self = this; + let searchString, + resultsHtml = ''; + let matches = []; + if ('string' === typeof inputVal) { + searchString = inputVal.trim(); + matches = this.getFieldTypes(false, searchString); + } + if (searchString.length && matches.length) { + $modal.addClass('is-searching'); + } else { + $modal.removeClass('is-searching'); + } + if (!matches.length) { + $modal.addClass('no-results-found'); + this.$el.find('.acf-invalid-search-term').text(searchString); + return; + } else { + $modal.removeClass('no-results-found'); + } + matches.forEach(fieldType => { + resultsHtml = resultsHtml + self.getFieldTypeHTML(fieldType); + }); + $('.acf-field-type-search-results').html(resultsHtml); + this.set('currentFieldType', matches[0].name); + this.onChangeFieldType(); + }, + onClickBrowsePopular: function () { + this.$el.find('.acf-search-field-types').val('').trigger('input'); + this.$el.find('.acf-tab-wrap a').first().trigger('click'); + }, + onClickSelectField: function (e) { + const fieldObject = this.get('openedBy'); + fieldObject.$fieldTypeSelect().val(this.get('currentFieldType')); + fieldObject.$fieldTypeSelect().trigger('change'); + this.updateFieldObjectFieldLabel(); + this.close(); + }, + onClickFieldType: function (e) { + const $fieldType = $(e.currentTarget); + this.set('currentFieldType', $fieldType.data('field-type')); + }, + onClickClose: function () { + this.close(); + }, + onPressEscapeClose: function (e) { + if (e.key === 'Escape') { + this.close(); + } + }, + close: function () { + this.lockFocusToModal(false); + this.returnFocusToOrigin(); + this.remove(); + }, + focus: function () { + this.$el.find('button').first().trigger('focus'); + } + }; + acf.models.browseFieldsModal = acf.models.Modal.extend(browseFieldsModal); + acf.newBrowseFieldsModal = props => new acf.models.browseFieldsModal(props); +})(window.jQuery, undefined, window.acf); + +/***/ }), + +/***/ "./src/advanced-custom-fields-pro/assets/src/js/_field-group-compatibility.js": +/*!************************************************************************************!*\ + !*** ./src/advanced-custom-fields-pro/assets/src/js/_field-group-compatibility.js ***! + \************************************************************************************/ +/***/ (function() { + +(function ($, undefined) { + var _acf = acf.getCompatibility(acf); + + /** + * fieldGroupCompatibility + * + * Compatibility layer for extinct acf.field_group + * + * @date 15/12/17 + * @since 5.7.0 + * + * @param void + * @return void + */ + + _acf.field_group = { + save_field: function ($field, type) { + type = type !== undefined ? type : 'settings'; + acf.getFieldObject($field).save(type); + }, + delete_field: function ($field, animate) { + animate = animate !== undefined ? animate : true; + acf.getFieldObject($field).delete({ + animate: animate + }); + }, + update_field_meta: function ($field, name, value) { + acf.getFieldObject($field).prop(name, value); + }, + delete_field_meta: function ($field, name) { + acf.getFieldObject($field).prop(name, null); + } + }; + + /** + * fieldGroupCompatibility.field_object + * + * Compatibility layer for extinct acf.field_group.field_object + * + * @date 15/12/17 + * @since 5.7.0 + * + * @param void + * @return void + */ + + _acf.field_group.field_object = acf.model.extend({ + // vars + type: '', + o: {}, + $field: null, + $settings: null, + tag: function (tag) { + // vars + var type = this.type; + + // explode, add 'field' and implode + // - open => open_field + // - change_type => change_field_type + var tags = tag.split('_'); + tags.splice(1, 0, 'field'); + tag = tags.join('_'); + + // add type + if (type) { + tag += '/type=' + type; + } + + // return + return tag; + }, + selector: function () { + // vars + var selector = '.acf-field-object'; + var type = this.type; + + // add type + if (type) { + selector += '-' + type; + selector = acf.str_replace('_', '-', selector); + } + + // return + return selector; + }, + _add_action: function (name, callback) { + // vars + var model = this; + + // add action + acf.add_action(this.tag(name), function ($field) { + // focus + model.set('$field', $field); + + // callback + model[callback].apply(model, arguments); + }); + }, + _add_filter: function (name, callback) { + // vars + var model = this; + + // add action + acf.add_filter(this.tag(name), function ($field) { + // focus + model.set('$field', $field); + + // callback + model[callback].apply(model, arguments); + }); + }, + _add_event: function (name, callback) { + // vars + var model = this; + var event = name.substr(0, name.indexOf(' ')); + var selector = name.substr(name.indexOf(' ') + 1); + var context = this.selector(); + + // add event + $(document).on(event, context + ' ' + selector, function (e) { + // append $el to event object + e.$el = $(this); + e.$field = e.$el.closest('.acf-field-object'); + + // focus + model.set('$field', e.$field); + + // callback + model[callback].apply(model, [e]); + }); + }, + _set_$field: function () { + // vars + this.o = this.$field.data(); + + // els + this.$settings = this.$field.find('> .settings > table > tbody'); + + // focus + this.focus(); + }, + focus: function () { + // do nothing + }, + setting: function (name) { + return this.$settings.find('> .acf-field-setting-' + name); + } + }); + + /* + * field + * + * This model fires actions and filters for registered fields + * + * @type function + * @date 21/02/2014 + * @since 3.5.1 + * + * @param n/a + * @return n/a + */ + + var actionManager = new acf.Model({ + actions: { + open_field_object: 'onOpenFieldObject', + close_field_object: 'onCloseFieldObject', + add_field_object: 'onAddFieldObject', + duplicate_field_object: 'onDuplicateFieldObject', + delete_field_object: 'onDeleteFieldObject', + change_field_object_type: 'onChangeFieldObjectType', + change_field_object_label: 'onChangeFieldObjectLabel', + change_field_object_name: 'onChangeFieldObjectName', + change_field_object_parent: 'onChangeFieldObjectParent', + sortstop_field_object: 'onChangeFieldObjectParent' + }, + onOpenFieldObject: function (field) { + acf.doAction('open_field', field.$el); + acf.doAction('open_field/type=' + field.get('type'), field.$el); + acf.doAction('render_field_settings', field.$el); + acf.doAction('render_field_settings/type=' + field.get('type'), field.$el); + }, + onCloseFieldObject: function (field) { + acf.doAction('close_field', field.$el); + acf.doAction('close_field/type=' + field.get('type'), field.$el); + }, + onAddFieldObject: function (field) { + acf.doAction('add_field', field.$el); + acf.doAction('add_field/type=' + field.get('type'), field.$el); + }, + onDuplicateFieldObject: function (field) { + acf.doAction('duplicate_field', field.$el); + acf.doAction('duplicate_field/type=' + field.get('type'), field.$el); + }, + onDeleteFieldObject: function (field) { + acf.doAction('delete_field', field.$el); + acf.doAction('delete_field/type=' + field.get('type'), field.$el); + }, + onChangeFieldObjectType: function (field) { + acf.doAction('change_field_type', field.$el); + acf.doAction('change_field_type/type=' + field.get('type'), field.$el); + acf.doAction('render_field_settings', field.$el); + acf.doAction('render_field_settings/type=' + field.get('type'), field.$el); + }, + onChangeFieldObjectLabel: function (field) { + acf.doAction('change_field_label', field.$el); + acf.doAction('change_field_label/type=' + field.get('type'), field.$el); + }, + onChangeFieldObjectName: function (field) { + acf.doAction('change_field_name', field.$el); + acf.doAction('change_field_name/type=' + field.get('type'), field.$el); + }, + onChangeFieldObjectParent: function (field) { + acf.doAction('update_field_parent', field.$el); + } + }); +})(jQuery); + +/***/ }), + +/***/ "./src/advanced-custom-fields-pro/assets/src/js/_field-group-conditions.js": +/*!*********************************************************************************!*\ + !*** ./src/advanced-custom-fields-pro/assets/src/js/_field-group-conditions.js ***! + \*********************************************************************************/ +/***/ (function() { + +(function ($, undefined) { + /** + * ConditionalLogicFieldSetting + * + * description + * + * @date 3/2/18 + * @since 5.6.5 + * + * @param type $var Description. Default. + * @return type Description. + */ + + var ConditionalLogicFieldSetting = acf.FieldSetting.extend({ + type: '', + name: 'conditional_logic', + events: { + 'change .conditions-toggle': 'onChangeToggle', + 'click .add-conditional-group': 'onClickAddGroup', + 'focus .condition-rule-field': 'onFocusField', + 'change .condition-rule-field': 'onChangeField', + 'change .condition-rule-operator': 'onChangeOperator', + 'click .add-conditional-rule': 'onClickAdd', + 'click .remove-conditional-rule': 'onClickRemove' + }, + $rule: false, + scope: function ($rule) { + this.$rule = $rule; + return this; + }, + ruleData: function (name, value) { + return this.$rule.data.apply(this.$rule, arguments); + }, + $input: function (name) { + return this.$rule.find('.condition-rule-' + name); + }, + $td: function (name) { + return this.$rule.find('td.' + name); + }, + $toggle: function () { + return this.$('.conditions-toggle'); + }, + $control: function () { + return this.$('.rule-groups'); + }, + $groups: function () { + return this.$('.rule-group'); + }, + $rules: function () { + return this.$('.rule'); + }, + $tabLabel: function () { + return this.fieldObject.$el.find('.conditional-logic-badge'); + }, + open: function () { + var $div = this.$control(); + $div.show(); + acf.enable($div); + }, + close: function () { + var $div = this.$control(); + $div.hide(); + acf.disable($div); + }, + render: function () { + // show + if (this.$toggle().prop('checked')) { + this.$tabLabel().addClass('is-enabled'); + this.renderRules(); + this.open(); + + // hide + } else { + this.$tabLabel().removeClass('is-enabled'); + this.close(); + } + }, + renderRules: function () { + // vars + var self = this; + + // loop + this.$rules().each(function () { + self.renderRule($(this)); + }); + }, + renderRule: function ($rule) { + this.scope($rule); + this.renderField(); + this.renderOperator(); + this.renderValue(); + }, + renderField: function () { + // vars + var choices = []; + var validFieldTypes = []; + var cid = this.fieldObject.cid; + var $select = this.$input('field'); + + // loop + acf.getFieldObjects().map(function (fieldObject) { + // vars + var choice = { + id: fieldObject.getKey(), + text: fieldObject.getLabel() + }; + + // bail early if is self + if (fieldObject.cid === cid) { + choice.text += ' ' + acf.__('(this field)'); + choice.disabled = true; + } + + // get selected field conditions + var conditionTypes = acf.getConditionTypes({ + fieldType: fieldObject.getType() + }); + + // bail early if no types + if (!conditionTypes.length) { + choice.disabled = true; + } + + // calulate indents + var indents = fieldObject.getParents().length; + choice.text = '- '.repeat(indents) + choice.text; + + // append + choices.push(choice); + }); + + // allow for scenario where only one field exists + if (!choices.length) { + choices.push({ + id: '', + text: acf.__('No toggle fields available') + }); + } + + // render + acf.renderSelect($select, choices); + + // set + this.ruleData('field', $select.val()); + }, + renderOperator: function () { + // bail early if no field selected + if (!this.ruleData('field')) { + return; + } + + // vars + var $select = this.$input('operator'); + var val = $select.val(); + var choices = []; + + // set saved value on first render + // - this allows the 2nd render to correctly select an option + if ($select.val() === null) { + acf.renderSelect($select, [{ + id: this.ruleData('operator'), + text: '' + }]); + } + + // get selected field + var $field = acf.findFieldObject(this.ruleData('field')); + var field = acf.getFieldObject($field); + + // get selected field conditions + var conditionTypes = acf.getConditionTypes({ + fieldType: field.getType() + }); + + // html + conditionTypes.map(function (model) { + choices.push({ + id: model.prototype.operator, + text: model.prototype.label + }); + }); + + // render + acf.renderSelect($select, choices); + + // set + this.ruleData('operator', $select.val()); + }, + renderValue: function () { + // bail early if no field selected + if (!this.ruleData('field') || !this.ruleData('operator')) { + return; + } + + // vars + var $select = this.$input('value'); + var $td = this.$td('value'); + var val = $select.val(); + + // get selected field + var $field = acf.findFieldObject(this.ruleData('field')); + var field = acf.getFieldObject($field); + + // get selected field conditions + var conditionTypes = acf.getConditionTypes({ + fieldType: field.getType(), + operator: this.ruleData('operator') + }); + + // html + var conditionType = conditionTypes[0].prototype; + var choices = conditionType.choices(field); + + // create html: array + if (choices instanceof Array) { + var $newSelect = $(''); + acf.renderSelect($newSelect, choices); + + // create html: string () + } else { + var $newSelect = $(choices); + } + + // append + $select.detach(); + $td.html($newSelect); + + // copy attrs + // timeout needed to avoid browser bug where "disabled" attribute is not applied + setTimeout(function () { + ['class', 'name', 'id'].map(function (attr) { + $newSelect.attr(attr, $select.attr(attr)); + }); + }, 0); + + // select existing value (if not a disabled input) + if (!$newSelect.prop('disabled')) { + acf.val($newSelect, val, true); + } + + // set + this.ruleData('value', $newSelect.val()); + }, + onChangeToggle: function () { + this.render(); + }, + onClickAddGroup: function (e, $el) { + this.addGroup(); + }, + addGroup: function () { + // vars + var $group = this.$('.rule-group:last'); + + // duplicate + var $group2 = acf.duplicate($group); + + // update h4 + $group2.find('h4').text(acf.__('or')); + + // remove all tr's except the first one + $group2.find('tr').not(':first').remove(); + + // save field + this.fieldObject.save(); + }, + onFocusField: function (e, $el) { + this.renderField(); + }, + onChangeField: function (e, $el) { + // scope + this.scope($el.closest('.rule')); + + // set data + this.ruleData('field', $el.val()); + + // render + this.renderOperator(); + this.renderValue(); + }, + onChangeOperator: function (e, $el) { + // scope + this.scope($el.closest('.rule')); + + // set data + this.ruleData('operator', $el.val()); + + // render + this.renderValue(); + }, + onClickAdd: function (e, $el) { + // duplciate + var $rule = acf.duplicate($el.closest('.rule')); + + // render + this.renderRule($rule); + }, + onClickRemove: function (e, $el) { + // vars + var $rule = $el.closest('.rule'); + + // save field + this.fieldObject.save(); + + // remove group + if ($rule.siblings('.rule').length == 0) { + $rule.closest('.rule-group').remove(); + } + + // remove + $rule.remove(); + } + }); + acf.registerFieldSetting(ConditionalLogicFieldSetting); + + /** + * conditionalLogicHelper + * + * description + * + * @date 20/4/18 + * @since 5.6.9 + * + * @param type $var Description. Default. + * @return type Description. + */ + + var conditionalLogicHelper = new acf.Model({ + actions: { + duplicate_field_objects: 'onDuplicateFieldObjects' + }, + onDuplicateFieldObjects: function (children, newField, prevField) { + // vars + var data = {}; + var $selects = $(); + + // reference change in key + children.map(function (child) { + // store reference of changed key + data[child.get('prevKey')] = child.get('key'); + + // append condition select + $selects = $selects.add(child.$('.condition-rule-field')); + }); + + // loop + $selects.each(function () { + // vars + var $select = $(this); + var val = $select.val(); + + // bail early if val is not a ref key + if (!val || !data[val]) { + return; + } + + // modify selected option + $select.find('option:selected').attr('value', data[val]); + + // set new val + $select.val(data[val]); + }); + } + }); +})(jQuery); + +/***/ }), + +/***/ "./src/advanced-custom-fields-pro/assets/src/js/_field-group-field.js": +/*!****************************************************************************!*\ + !*** ./src/advanced-custom-fields-pro/assets/src/js/_field-group-field.js ***! + \****************************************************************************/ +/***/ (function() { + +(function ($, undefined) { + acf.FieldObject = acf.Model.extend({ + // class used to avoid nested event triggers + eventScope: '.acf-field-object', + // variable for field type select2 + fieldTypeSelect2: false, + // events + events: { + 'click .copyable': 'onClickCopy', + 'click .handle': 'onClickEdit', + 'click .close-field': 'onClickEdit', + 'click a[data-key="acf_field_settings_tabs"]': 'onChangeSettingsTab', + 'click .delete-field': 'onClickDelete', + 'click .duplicate-field': 'duplicate', + 'click .move-field': 'move', + 'click .browse-fields': 'browseFields', + 'focus .edit-field': 'onFocusEdit', + 'blur .edit-field, .row-options a': 'onBlurEdit', + 'change .field-type': 'onChangeType', + 'change .field-required': 'onChangeRequired', + 'blur .field-label': 'onChangeLabel', + 'blur .field-name': 'onChangeName', + change: 'onChange', + changed: 'onChanged' + }, + // data + data: { + // Similar to ID, but used for HTML puposes. + // It is possbile for a new field to have an ID of 0, but an id of 'field_123' */ + id: 0, + // The field key ('field_123') + key: '', + // The field type (text, image, etc) + type: '' + + // The $post->ID of this field + //ID: 0, + + // The field's parent + //parent: 0, + + // The menu order + //menu_order: 0 + }, + + setup: function ($field) { + // set $el + this.$el = $field; + + // inherit $field data (id, key, type) + this.inherit($field); + + // load additional props + // - this won't trigger 'changed' + this.prop('ID'); + this.prop('parent'); + this.prop('menu_order'); + }, + $input: function (name) { + return $('#' + this.getInputId() + '-' + name); + }, + $meta: function () { + return this.$('.meta:first'); + }, + $handle: function () { + return this.$('.handle:first'); + }, + $settings: function () { + return this.$('.settings:first'); + }, + $setting: function (name) { + return this.$('.acf-field-settings:first .acf-field-setting-' + name); + }, + $fieldTypeSelect: function () { + return this.$('.field-type'); + }, + $fieldLabel: function () { + return this.$('.field-label'); + }, + getParent: function () { + return acf.getFieldObjects({ + child: this.$el, + limit: 1 + }).pop(); + }, + getParents: function () { + return acf.getFieldObjects({ + child: this.$el + }); + }, + getFields: function () { + return acf.getFieldObjects({ + parent: this.$el + }); + }, + getInputName: function () { + return 'acf_fields[' + this.get('id') + ']'; + }, + getInputId: function () { + return 'acf_fields-' + this.get('id'); + }, + newInput: function (name, value) { + // vars + var inputId = this.getInputId(); + var inputName = this.getInputName(); + + // append name + if (name) { + inputId += '-' + name; + inputName += '[' + name + ']'; + } + + // create input (avoid HTML + JSON value issues) + var $input = $('').attr({ + id: inputId, + name: inputName, + value: value + }); + this.$('> .meta').append($input); + + // return + return $input; + }, + getProp: function (name) { + // check data + if (this.has(name)) { + return this.get(name); + } + + // get input value + var $input = this.$input(name); + var value = $input.length ? $input.val() : null; + + // set data silently (cache) + this.set(name, value, true); + + // return + return value; + }, + setProp: function (name, value) { + // get input + var $input = this.$input(name); + var prevVal = $input.val(); + + // create if new + if (!$input.length) { + $input = this.newInput(name, value); + } + + // remove + if (value === null) { + $input.remove(); + + // update + } else { + $input.val(value); + } + + //console.log('setProp', name, value, this); + + // set data silently (cache) + if (!this.has(name)) { + //console.log('setting silently'); + this.set(name, value, true); + + // set data allowing 'change' event to fire + } else { + //console.log('setting loudly!'); + this.set(name, value); + } + + // return + return this; + }, + prop: function (name, value) { + if (value !== undefined) { + return this.setProp(name, value); + } else { + return this.getProp(name); + } + }, + props: function (props) { + Object.keys(props).map(function (key) { + this.setProp(key, props[key]); + }, this); + }, + getLabel: function () { + // get label with empty default + var label = this.prop('label'); + if (label === '') { + label = acf.__('(no label)'); + } + + // return + return label; + }, + getName: function () { + return this.prop('name'); + }, + getType: function () { + return this.prop('type'); + }, + getTypeLabel: function () { + var type = this.prop('type'); + var types = acf.get('fieldTypes'); + return types[type] ? types[type].label : type; + }, + getKey: function () { + return this.prop('key'); + }, + initialize: function () { + this.checkCopyable(); + }, + makeCopyable: function (text) { + if (!navigator.clipboard) return '' + text + ''; + return '' + text + ''; + }, + checkCopyable: function () { + if (!navigator.clipboard) { + this.$el.find('.copyable').addClass('copy-unsupported'); + } + }, + initializeFieldTypeSelect2: function () { + if (this.fieldTypeSelect2) return; + + // Support disabling via filter. + if (this.$fieldTypeSelect().hasClass('disable-select2')) return; + + // Check for a full modern version of select2, bail loading if not found with a console warning. + try { + $.fn.select2.amd.require('select2/compat/dropdownCss'); + } catch (err) { + console.warn('ACF was not able to load the full version of select2 due to a conflicting version provided by another plugin or theme taking precedence. Select2 fields may not work as expected.'); + return; + } + this.fieldTypeSelect2 = acf.newSelect2(this.$fieldTypeSelect(), { + field: false, + ajax: false, + multiple: false, + allowNull: false, + suppressFilters: true, + dropdownCssClass: 'field-type-select-results', + templateResult: function (selection) { + if (selection.loading || selection.element && selection.element.nodeName == 'OPTGROUP') { + var $selection = $(''); + $selection.html(acf.escHtml(selection.text)); + } else { + var $selection = $('' + acf.escHtml(selection.text) + ''); + } + $selection.data('element', selection.element); + return $selection; + }, + templateSelection: function (selection) { + var $selection = $('' + acf.escHtml(selection.text) + ''); + $selection.data('element', selection.element); + return $selection; + } + }); + this.fieldTypeSelect2.on('select2:open', function () { + $('.field-type-select-results input.select2-search__field').attr('placeholder', acf.__('Type to search...')); + }); + this.fieldTypeSelect2.on('change', function (e) { + $(e.target).parents('ul:first').find('button.browse-fields').prop('disabled', true); + }); + + // When typing happens on the li element above the select2. + this.fieldTypeSelect2.$el.parent().on('keydown', '.select2-selection.select2-selection--single', this.onKeyDownSelect); + }, + addProFields: function () { + // Make sure we're only running this on free version. + if (acf.get('is_pro')) { + return; + } + + // Make sure we haven't appended these fields before. + var $fieldTypeSelect = this.$fieldTypeSelect(); + if ($fieldTypeSelect.hasClass('acf-free-field-type')) return; + + // Loop over each pro field type and append it to the select. + const PROFieldTypes = acf.get('PROFieldTypes'); + if (typeof PROFieldTypes !== 'object') return; + const $layoutGroup = $fieldTypeSelect.find('optgroup option[value="group"]').parent(); + const $contentGroup = $fieldTypeSelect.find('optgroup option[value="image"]').parent(); + for (const [name, field] of Object.entries(PROFieldTypes)) { + const $useGroup = field.category === 'content' ? $contentGroup : $layoutGroup; + $useGroup.append(''); + } + $fieldTypeSelect.addClass('acf-free-field-type'); + }, + render: function () { + // vars + var $handle = this.$('.handle:first'); + var menu_order = this.prop('menu_order'); + var label = this.getLabel(); + var name = this.prop('name'); + var type = this.getTypeLabel(); + var key = this.prop('key'); + var required = this.$input('required').prop('checked'); + + // update menu order + $handle.find('.acf-icon').html(parseInt(menu_order) + 1); + + // update required + if (required) { + label += ' *'; + } + + // update label + $handle.find('.li-field-label strong a').html(label); + + // update name + $handle.find('.li-field-name').html(this.makeCopyable(name)); + + // update type + const iconName = acf.strSlugify(this.getType()); + $handle.find('.field-type-label').text(' ' + type); + $handle.find('.field-type-icon').removeClass().addClass('field-type-icon field-type-icon-' + iconName); + + // update key + $handle.find('.li-field-key').html(this.makeCopyable(key)); + + // action for 3rd party customization + acf.doAction('render_field_object', this); + }, + refresh: function () { + acf.doAction('refresh_field_object', this); + }, + isOpen: function () { + return this.$el.hasClass('open'); + }, + onClickCopy: function (e) { + e.stopPropagation(); + if (!navigator.clipboard) return; + navigator.clipboard.writeText($(e.target).text()).then(() => { + $(e.target).addClass('copied'); + setTimeout(function () { + $(e.target).removeClass('copied'); + }, 2000); + }); + }, + onClickEdit: function (e) { + $target = $(e.target); + if ($target.parent().hasClass('row-options') && !$target.hasClass('edit-field')) return; + this.isOpen() ? this.close() : this.open(); + }, + onChangeSettingsTab: function () { + const $settings = this.$el.children('.settings'); + acf.doAction('show', $settings); + }, + /** + * Adds 'active' class to row options nearest to the target. + */ + onFocusEdit: function (e) { + var $rowOptions = $(e.target).closest('li').find('.row-options'); + $rowOptions.addClass('active'); + }, + /** + * Removes 'active' class from row options if links in same row options area are no longer in focus. + */ + onBlurEdit: function (e) { + var focusDelayMilliseconds = 50; + var $rowOptionsBlurElement = $(e.target).closest('li').find('.row-options'); + + // Timeout so that `activeElement` gives the new element in focus instead of the body. + setTimeout(function () { + var $rowOptionsFocusElement = $(document.activeElement).closest('li').find('.row-options'); + if (!$rowOptionsBlurElement.is($rowOptionsFocusElement)) { + $rowOptionsBlurElement.removeClass('active'); + } + }, focusDelayMilliseconds); + }, + open: function () { + // vars + var $settings = this.$el.children('.settings'); + + // initialise field type select + this.addProFields(); + this.initializeFieldTypeSelect2(); + + // action (open) + acf.doAction('open_field_object', this); + this.trigger('openFieldObject'); + + // action (show) + acf.doAction('show', $settings); + + // open + $settings.slideDown(); + this.$el.addClass('open'); + }, + onKeyDownSelect: function (e) { + // Omit events from special keys. + if (!(e.which >= 186 && e.which <= 222 || + // punctuation and special characters + [8, 9, 13, 16, 17, 18, 19, 20, 27, 32, 33, 34, 35, 36, 37, 38, 39, 40, 45, 46, 91, 92, 93, 144, 145].includes(e.which) || + // Special keys + e.which >= 112 && e.which <= 123)) { + // Function keys + $(this).closest('.select2-container').siblings('select:enabled').select2('open'); + return; + } + }, + close: function () { + // vars + var $settings = this.$el.children('.settings'); + + // close + $settings.slideUp(); + this.$el.removeClass('open'); + + // action (close) + acf.doAction('close_field_object', this); + this.trigger('closeFieldObject'); + + // action (hide) + acf.doAction('hide', $settings); + }, + serialize: function () { + return acf.serialize(this.$el, this.getInputName()); + }, + save: function (type) { + // defaults + type = type || 'settings'; // meta, settings + + // vars + var save = this.getProp('save'); + + // bail if already saving settings + if (save === 'settings') { + return; + } + + // prop + this.setProp('save', type); + + // debug + this.$el.attr('data-save', type); + + // action + acf.doAction('save_field_object', this, type); + }, + submit: function () { + // vars + var inputName = this.getInputName(); + var save = this.get('save'); + + // close + if (this.isOpen()) { + this.close(); + } + + // allow all inputs to save + if (save == 'settings') { + // do nothing + // allow only meta inputs to save + } else if (save == 'meta') { + this.$('> .settings [name^="' + inputName + '"]').remove(); + + // prevent all inputs from saving + } else { + this.$('[name^="' + inputName + '"]').remove(); + } + + // action + acf.doAction('submit_field_object', this); + }, + onChange: function (e, $el) { + // save settings + this.save(); + + // action for 3rd party customization + acf.doAction('change_field_object', this); + }, + onChanged: function (e, $el, name, value) { + if (this.getType() === $el.attr('data-type')) { + $('button.acf-btn.browse-fields').prop('disabled', false); + } + + // ignore 'save' + if (name == 'save') { + return; + } + + // save meta + if (['menu_order', 'parent'].indexOf(name) > -1) { + this.save('meta'); + + // save field + } else { + this.save(); + } + + // render + if (['menu_order', 'label', 'required', 'name', 'type', 'key'].indexOf(name) > -1) { + this.render(); + } + + // action for 3rd party customization + acf.doAction('change_field_object_' + name, this, value); + }, + onChangeLabel: function (e, $el) { + // set + var label = $el.val(); + this.set('label', label); + + // render name + if (this.prop('name') == '') { + var name = acf.applyFilters('generate_field_object_name', acf.strSanitize(label), this); + this.prop('name', name); + } + }, + onChangeName: function (e, $el) { + // set + var name = $el.val(); + this.set('name', name); + + // error + if (name.substr(0, 6) === 'field_') { + alert(acf.__('The string "field_" may not be used at the start of a field name')); + } + }, + onChangeRequired: function (e, $el) { + // set + var required = $el.prop('checked') ? 1 : 0; + this.set('required', required); + }, + delete: function (args) { + // defaults + args = acf.parseArgs(args, { + animate: true + }); + + // add to remove list + var id = this.prop('ID'); + if (id) { + var $input = $('#_acf_delete_fields'); + var newVal = $input.val() + '|' + id; + $input.val(newVal); + } + + // action + acf.doAction('delete_field_object', this); + + // animate + if (args.animate) { + this.removeAnimate(); + } else { + this.remove(); + } + }, + onClickDelete: function (e, $el) { + // Bypass confirmation when holding down "shift" key. + if (e.shiftKey) { + return this.delete(); + } + + // add class + this.$el.addClass('-hover'); + + // add tooltip + var tooltip = acf.newTooltip({ + confirmRemove: true, + target: $el, + context: this, + confirm: function () { + this.delete(); + }, + cancel: function () { + this.$el.removeClass('-hover'); + } + }); + }, + removeAnimate: function () { + // vars + var field = this; + var $list = this.$el.parent(); + var $fields = acf.findFieldObjects({ + sibling: this.$el + }); + + // remove + acf.remove({ + target: this.$el, + endHeight: $fields.length ? 0 : 50, + complete: function () { + field.remove(); + acf.doAction('removed_field_object', field, $list); + } + }); + + // action + acf.doAction('remove_field_object', field, $list); + }, + duplicate: function () { + // vars + var newKey = acf.uniqid('field_'); + + // duplicate + var $newField = acf.duplicate({ + target: this.$el, + search: this.get('id'), + replace: newKey + }); + + // set new key + $newField.attr('data-key', newKey); + + // get instance + var newField = acf.getFieldObject($newField); + + // update newField label / name + var label = newField.prop('label'); + var name = newField.prop('name'); + var end = name.split('_').pop(); + var copy = acf.__('copy'); + + // increase suffix "1" + if (acf.isNumeric(end)) { + var i = end * 1 + 1; + label = label.replace(end, i); + name = name.replace(end, i); + + // increase suffix "(copy1)" + } else if (end.indexOf(copy) === 0) { + var i = end.replace(copy, '') * 1; + i = i ? i + 1 : 2; + + // replace + label = label.replace(end, copy + i); + name = name.replace(end, copy + i); + + // add default "(copy)" + } else { + label += ' (' + copy + ')'; + name += '_' + copy; + } + newField.prop('ID', 0); + newField.prop('label', label); + newField.prop('name', name); + newField.prop('key', newKey); + + // close the current field if it's open. + if (this.isOpen()) { + this.close(); + } + + // open the new field and initialise correctly. + newField.open(); + + // focus label + var $label = newField.$setting('label input'); + setTimeout(function () { + $label.trigger('focus'); + }, 251); + + // action + acf.doAction('duplicate_field_object', this, newField); + acf.doAction('append_field_object', newField); + }, + wipe: function () { + // vars + var prevId = this.get('id'); + var prevKey = this.get('key'); + var newKey = acf.uniqid('field_'); + + // rename + acf.rename({ + target: this.$el, + search: prevId, + replace: newKey + }); + + // data + this.set('id', newKey); + this.set('prevId', prevId); + this.set('prevKey', prevKey); + + // props + this.prop('key', newKey); + this.prop('ID', 0); + + // attr + this.$el.attr('data-key', newKey); + this.$el.attr('data-id', newKey); + + // action + acf.doAction('wipe_field_object', this); + }, + move: function () { + // helper + var hasChanged = function (field) { + return field.get('save') == 'settings'; + }; + + // vars + var changed = hasChanged(this); + + // has sub fields changed + if (!changed) { + acf.getFieldObjects({ + parent: this.$el + }).map(function (field) { + changed = hasChanged(field) || field.changed; + }); + } + + // bail early if changed + if (changed) { + alert(acf.__('This field cannot be moved until its changes have been saved')); + return; + } + + // step 1. + var id = this.prop('ID'); + var field = this; + var popup = false; + var step1 = function () { + // popup + popup = acf.newPopup({ + title: acf.__('Move Custom Field'), + loading: true, + width: '300px', + openedBy: field.$el.find('.move-field') + }); + + // ajax + var ajaxData = { + action: 'acf/field_group/move_field', + field_id: id + }; + + // get HTML + $.ajax({ + url: acf.get('ajaxurl'), + data: acf.prepareForAjax(ajaxData), + type: 'post', + dataType: 'html', + success: step2 + }); + }; + var step2 = function (html) { + // update popup + popup.loading(false); + popup.content(html); + + // submit form + popup.on('submit', 'form', step3); + }; + var step3 = function (e, $el) { + // prevent + e.preventDefault(); + + // disable + acf.startButtonLoading(popup.$('.button')); + + // ajax + var ajaxData = { + action: 'acf/field_group/move_field', + field_id: id, + field_group_id: popup.$('select').val() + }; + + // get HTML + $.ajax({ + url: acf.get('ajaxurl'), + data: acf.prepareForAjax(ajaxData), + type: 'post', + dataType: 'html', + success: step4 + }); + }; + var step4 = function (html) { + popup.content(html); + if (wp.a11y && wp.a11y.speak && acf.__) { + wp.a11y.speak(acf.__('Field moved to other group'), 'polite'); + } + popup.$('.acf-close-popup').focus(); + field.removeAnimate(); + }; + + // start + step1(); + }, + browseFields: function (e, $el) { + e.preventDefault(); + const modal = acf.newBrowseFieldsModal({ + openedBy: this + }); + }, + onChangeType: function (e, $el) { + // clea previous timout + if (this.changeTimeout) { + clearTimeout(this.changeTimeout); + } + + // set new timeout + // - prevents changing type multiple times whilst user types in newType + this.changeTimeout = this.setTimeout(function () { + this.changeType($el.val()); + }, 300); + }, + changeType: function (newType) { + var prevType = this.prop('type'); + var prevClass = acf.strSlugify('acf-field-object-' + prevType); + var newClass = acf.strSlugify('acf-field-object-' + newType); + + // Update props. + this.$el.removeClass(prevClass).addClass(newClass); + this.$el.attr('data-type', newType); + this.$el.data('type', newType); + + // Abort XHR if this field is already loading AJAX data. + if (this.has('xhr')) { + this.get('xhr').abort(); + } + + // Store old settings so they can be reused later. + const $oldSettings = {}; + this.$el.find('.acf-field-settings:first > .acf-field-settings-main > .acf-field-type-settings').each(function () { + let tab = $(this).data('parent-tab'); + let $tabSettings = $(this).children().removeData(); + $oldSettings[tab] = $tabSettings; + $tabSettings.detach(); + }); + this.set('settings-' + prevType, $oldSettings); + + // Show the settings if we already have them cached. + if (this.has('settings-' + newType)) { + let $newSettings = this.get('settings-' + newType); + this.showFieldTypeSettings($newSettings); + this.set('type', newType); + return; + } + + // Add loading spinner. + const $loading = $('
'); + this.$el.find('.acf-field-settings-main-general .acf-field-type-settings').before($loading); + const ajaxData = { + action: 'acf/field_group/render_field_settings', + field: this.serialize(), + prefix: this.getInputName() + }; + + // Get the settings for this field type over AJAX. + var xhr = $.ajax({ + url: acf.get('ajaxurl'), + data: acf.prepareForAjax(ajaxData), + type: 'post', + dataType: 'json', + context: this, + success: function (response) { + if (!acf.isAjaxSuccess(response)) { + return; + } + this.showFieldTypeSettings(response.data); + }, + complete: function () { + // also triggered by xhr.abort(); + $loading.remove(); + this.set('type', newType); + //this.refresh(); + } + }); + + // set + this.set('xhr', xhr); + }, + showFieldTypeSettings: function (settings) { + if ('object' !== typeof settings) { + return; + } + const self = this; + const tabs = Object.keys(settings); + tabs.forEach(tab => { + const $tab = self.$el.find('.acf-field-settings-main-' + tab.replace('_', '-') + ' .acf-field-type-settings'); + let tabContent = ''; + if (['object', 'string'].includes(typeof settings[tab])) { + tabContent = settings[tab]; + } + $tab.prepend(tabContent); + acf.doAction('append', $tab); + }); + }, + updateParent: function () { + // vars + var ID = acf.get('post_id'); + + // check parent + var parent = this.getParent(); + if (parent) { + ID = parseInt(parent.prop('ID')) || parent.prop('key'); + } + + // update + this.prop('parent', ID); + } + }); +})(jQuery); + +/***/ }), + +/***/ "./src/advanced-custom-fields-pro/assets/src/js/_field-group-fields.js": +/*!*****************************************************************************!*\ + !*** ./src/advanced-custom-fields-pro/assets/src/js/_field-group-fields.js ***! + \*****************************************************************************/ +/***/ (function() { + +(function ($, undefined) { + /** + * acf.findFieldObject + * + * Returns a single fieldObject $el for a given field key + * + * @date 1/2/18 + * @since 5.7.0 + * + * @param string key The field key + * @return jQuery + */ + + acf.findFieldObject = function (key) { + return acf.findFieldObjects({ + key: key, + limit: 1 + }); + }; + + /** + * acf.findFieldObjects + * + * Returns an array of fieldObject $el for the given args + * + * @date 1/2/18 + * @since 5.7.0 + * + * @param object args + * @return jQuery + */ + + acf.findFieldObjects = function (args) { + // vars + args = args || {}; + var selector = '.acf-field-object'; + var $fields = false; + + // args + args = acf.parseArgs(args, { + id: '', + key: '', + type: '', + limit: false, + list: null, + parent: false, + sibling: false, + child: false + }); + + // id + if (args.id) { + selector += '[data-id="' + args.id + '"]'; + } + + // key + if (args.key) { + selector += '[data-key="' + args.key + '"]'; + } + + // type + if (args.type) { + selector += '[data-type="' + args.type + '"]'; + } + + // query + if (args.list) { + $fields = args.list.children(selector); + } else if (args.parent) { + $fields = args.parent.find(selector); + } else if (args.sibling) { + $fields = args.sibling.siblings(selector); + } else if (args.child) { + $fields = args.child.parents(selector); + } else { + $fields = $(selector); + } + + // limit + if (args.limit) { + $fields = $fields.slice(0, args.limit); + } + + // return + return $fields; + }; + + /** + * acf.getFieldObject + * + * Returns a single fieldObject instance for a given $el|key + * + * @date 1/2/18 + * @since 5.7.0 + * + * @param string|jQuery $field The field $el or key + * @return jQuery + */ + + acf.getFieldObject = function ($field) { + // allow key + if (typeof $field === 'string') { + $field = acf.findFieldObject($field); + } + + // instantiate + var field = $field.data('acf'); + if (!field) { + field = acf.newFieldObject($field); + } + + // return + return field; + }; + + /** + * acf.getFieldObjects + * + * Returns an array of fieldObject instances for the given args + * + * @date 1/2/18 + * @since 5.7.0 + * + * @param object args + * @return array + */ + + acf.getFieldObjects = function (args) { + // query + var $fields = acf.findFieldObjects(args); + + // loop + var fields = []; + $fields.each(function () { + var field = acf.getFieldObject($(this)); + fields.push(field); + }); + + // return + return fields; + }; + + /** + * acf.newFieldObject + * + * Initializes and returns a new FieldObject instance + * + * @date 1/2/18 + * @since 5.7.0 + * + * @param jQuery $field The field $el + * @return object + */ + + acf.newFieldObject = function ($field) { + // instantiate + var field = new acf.FieldObject($field); + + // action + acf.doAction('new_field_object', field); + + // return + return field; + }; + + /** + * actionManager + * + * description + * + * @date 15/12/17 + * @since 5.6.5 + * + * @param type $var Description. Default. + * @return type Description. + */ + + var eventManager = new acf.Model({ + priority: 5, + initialize: function () { + // actions + var actions = ['prepare', 'ready', 'append', 'remove']; + + // loop + actions.map(function (action) { + this.addFieldActions(action); + }, this); + }, + addFieldActions: function (action) { + // vars + var pluralAction = action + '_field_objects'; // ready_field_objects + var singleAction = action + '_field_object'; // ready_field_object + var singleEvent = action + 'FieldObject'; // readyFieldObject + + // global action + var callback = function ($el /*, arg1, arg2, etc*/) { + // vars + var fieldObjects = acf.getFieldObjects({ + parent: $el + }); + + // call plural + if (fieldObjects.length) { + /// get args [$el, arg1] + var args = acf.arrayArgs(arguments); + + // modify args [pluralAction, fields, arg1] + args.splice(0, 1, pluralAction, fieldObjects); + acf.doAction.apply(null, args); + } + }; + + // plural action + var pluralCallback = function (fieldObjects /*, arg1, arg2, etc*/) { + /// get args [fields, arg1] + var args = acf.arrayArgs(arguments); + + // modify args [singleAction, fields, arg1] + args.unshift(singleAction); + + // loop + fieldObjects.map(function (fieldObject) { + // modify args [singleAction, field, arg1] + args[1] = fieldObject; + acf.doAction.apply(null, args); + }); + }; + + // single action + var singleCallback = function (fieldObject /*, arg1, arg2, etc*/) { + /// get args [$field, arg1] + var args = acf.arrayArgs(arguments); + + // modify args [singleAction, $field, arg1] + args.unshift(singleAction); + + // action variations (ready_field/type=image) + var variations = ['type', 'name', 'key']; + variations.map(function (variation) { + args[0] = singleAction + '/' + variation + '=' + fieldObject.get(variation); + acf.doAction.apply(null, args); + }); + + // modify args [arg1] + args.splice(0, 2); + + // event + fieldObject.trigger(singleEvent, args); + }; + + // add actions + acf.addAction(action, callback, 5); + acf.addAction(pluralAction, pluralCallback, 5); + acf.addAction(singleAction, singleCallback, 5); + } + }); + + /** + * fieldManager + * + * description + * + * @date 4/1/18 + * @since 5.6.5 + * + * @param type $var Description. Default. + * @return type Description. + */ + + var fieldManager = new acf.Model({ + id: 'fieldManager', + events: { + 'submit #post': 'onSubmit', + 'mouseenter .acf-field-list': 'onHoverSortable', + 'click .add-field': 'onClickAdd' + }, + actions: { + removed_field_object: 'onRemovedField', + sortstop_field_object: 'onReorderField', + delete_field_object: 'onDeleteField', + change_field_object_type: 'onChangeFieldType', + duplicate_field_object: 'onDuplicateField' + }, + onSubmit: function (e, $el) { + // vars + var fields = acf.getFieldObjects(); + + // loop + fields.map(function (field) { + field.submit(); + }); + }, + setFieldMenuOrder: function (field) { + this.renderFields(field.$el.parent()); + }, + onHoverSortable: function (e, $el) { + // bail early if already sortable + if ($el.hasClass('ui-sortable')) return; + + // sortable + $el.sortable({ + helper: function (event, element) { + // https://core.trac.wordpress.org/ticket/16972#comment:22 + return element.clone().find(':input').attr('name', function (i, currentName) { + return 'sort_' + parseInt(Math.random() * 100000, 10).toString() + '_' + currentName; + }).end(); + }, + handle: '.acf-sortable-handle', + connectWith: '.acf-field-list', + start: function (e, ui) { + var field = acf.getFieldObject(ui.item); + ui.placeholder.height(ui.item.height()); + acf.doAction('sortstart_field_object', field, $el); + }, + update: function (e, ui) { + var field = acf.getFieldObject(ui.item); + acf.doAction('sortstop_field_object', field, $el); + } + }); + }, + onRemovedField: function (field, $list) { + this.renderFields($list); + }, + onReorderField: function (field, $list) { + field.updateParent(); + this.renderFields($list); + }, + onDeleteField: function (field) { + // delete children + field.getFields().map(function (child) { + child.delete({ + animate: false + }); + }); + }, + onChangeFieldType: function (field) { + // enable browse field modal button + field.$el.find('button.browse-fields').prop('disabled', false); + }, + onDuplicateField: function (field, newField) { + // check for children + var children = newField.getFields(); + if (children.length) { + // loop + children.map(function (child) { + // wipe field + child.wipe(); + + // if the child is open, re-fire the open method to ensure it's initialised correctly. + if (child.isOpen()) { + child.open(); + } + + // update parent + child.updateParent(); + }); + + // action + acf.doAction('duplicate_field_objects', children, newField, field); + } + + // set menu order + this.setFieldMenuOrder(newField); + }, + renderFields: function ($list) { + // vars + var fields = acf.getFieldObjects({ + list: $list + }); + + // no fields + if (!fields.length) { + $list.addClass('-empty'); + $list.parents('.acf-field-list-wrap').first().addClass('-empty'); + return; + } + + // has fields + $list.removeClass('-empty'); + $list.parents('.acf-field-list-wrap').first().removeClass('-empty'); + + // prop + fields.map(function (field, i) { + field.prop('menu_order', i); + }); + }, + onClickAdd: function (e, $el) { + let $list; + if ($el.hasClass('add-first-field')) { + $list = $el.parents('.acf-field-list').eq(0); + } else if ($el.parent().hasClass('acf-headerbar-actions') || $el.parent().hasClass('no-fields-message-inner')) { + $list = $('.acf-field-list:first'); + } else if ($el.parent().hasClass('acf-sub-field-list-header')) { + $list = $el.parents('.acf-input:first').find('.acf-field-list:first'); + } else { + $list = $el.closest('.acf-tfoot').siblings('.acf-field-list'); + } + this.addField($list); + }, + addField: function ($list) { + // vars + var html = $('#tmpl-acf-field').html(); + var $el = $(html); + var prevId = $el.data('id'); + var newKey = acf.uniqid('field_'); + + // duplicate + var $newField = acf.duplicate({ + target: $el, + search: prevId, + replace: newKey, + append: function ($el, $el2) { + $list.append($el2); + } + }); + + // get instance + var newField = acf.getFieldObject($newField); + + // props + newField.prop('key', newKey); + newField.prop('ID', 0); + newField.prop('label', ''); + newField.prop('name', ''); + + // attr + $newField.attr('data-key', newKey); + $newField.attr('data-id', newKey); + + // update parent prop + newField.updateParent(); + + // focus type + var $type = newField.$input('type'); + setTimeout(function () { + if ($list.hasClass('acf-auto-add-field')) { + $list.removeClass('acf-auto-add-field'); + } else { + $type.trigger('focus'); + } + }, 251); + + // open + newField.open(); + + // set menu order + this.renderFields($list); + + // action + acf.doAction('add_field_object', newField); + acf.doAction('append_field_object', newField); + } + }); +})(jQuery); + +/***/ }), + +/***/ "./src/advanced-custom-fields-pro/assets/src/js/_field-group-locations.js": +/*!********************************************************************************!*\ + !*** ./src/advanced-custom-fields-pro/assets/src/js/_field-group-locations.js ***! + \********************************************************************************/ +/***/ (function() { + +(function ($, undefined) { + /** + * locationManager + * + * Field group location rules functionality + * + * @date 15/12/17 + * @since 5.7.0 + * + * @param void + * @return void + */ + + var locationManager = new acf.Model({ + id: 'locationManager', + wait: 'ready', + events: { + 'click .add-location-rule': 'onClickAddRule', + 'click .add-location-group': 'onClickAddGroup', + 'click .remove-location-rule': 'onClickRemoveRule', + 'change .refresh-location-rule': 'onChangeRemoveRule' + }, + initialize: function () { + this.$el = $('#acf-field-group-options'); + this.addProLocations(); + this.updateGroupsClass(); + }, + addProLocations: function () { + // Make sure we're only running this on free version. + if (acf.get('is_pro')) { + return; + } + + // Loop over each pro field type and append it to the select. + const PROLocationTypes = acf.get('PROLocationTypes'); + if (typeof PROLocationTypes !== 'object') return; + const $formsGroup = this.$el.find('select.refresh-location-rule').find('optgroup[label="Forms"]'); + for (const [key, name] of Object.entries(PROLocationTypes)) { + $formsGroup.append(''); + } + }, + onClickAddRule: function (e, $el) { + this.addRule($el.closest('tr')); + }, + onClickRemoveRule: function (e, $el) { + this.removeRule($el.closest('tr')); + }, + onChangeRemoveRule: function (e, $el) { + this.changeRule($el.closest('tr')); + }, + onClickAddGroup: function (e, $el) { + this.addGroup(); + }, + addRule: function ($tr) { + acf.duplicate($tr); + this.updateGroupsClass(); + }, + removeRule: function ($tr) { + if ($tr.siblings('tr').length == 0) { + $tr.closest('.rule-group').remove(); + } else { + $tr.remove(); + } + + // Update h4 + var $group = this.$('.rule-group:first'); + $group.find('h4').text(acf.__('Show this field group if')); + this.updateGroupsClass(); + }, + changeRule: function ($rule) { + // vars + var $group = $rule.closest('.rule-group'); + var prefix = $rule.find('td.param select').attr('name').replace('[param]', ''); + + // ajaxdata + var ajaxdata = {}; + ajaxdata.action = 'acf/field_group/render_location_rule'; + ajaxdata.rule = acf.serialize($rule, prefix); + ajaxdata.rule.id = $rule.data('id'); + ajaxdata.rule.group = $group.data('id'); + + // temp disable + acf.disable($rule.find('td.value')); + + // ajax + $.ajax({ + url: acf.get('ajaxurl'), + data: acf.prepareForAjax(ajaxdata), + type: 'post', + dataType: 'html', + success: function (html) { + if (!html) return; + $rule.replaceWith(html); + } + }); + }, + addGroup: function () { + // vars + var $group = this.$('.rule-group:last'); + + // duplicate + $group2 = acf.duplicate($group); + + // update h4 + $group2.find('h4').text(acf.__('or')); + + // remove all tr's except the first one + $group2.find('tr').not(':first').remove(); + + // update the groups class + this.updateGroupsClass(); + }, + updateGroupsClass: function () { + var $group = this.$('.rule-group:last'); + var $ruleGroups = $group.closest('.rule-groups'); + var rows_count = $ruleGroups.find('.acf-table tr').length; + if (rows_count > 1) { + $ruleGroups.addClass('rule-groups-multiple'); + } else { + $ruleGroups.removeClass('rule-groups-multiple'); + } + } + }); +})(jQuery); + +/***/ }), + +/***/ "./src/advanced-custom-fields-pro/assets/src/js/_field-group-settings.js": +/*!*******************************************************************************!*\ + !*** ./src/advanced-custom-fields-pro/assets/src/js/_field-group-settings.js ***! + \*******************************************************************************/ +/***/ (function() { + +(function ($, undefined) { + /** + * mid + * + * Calculates the model ID for a field type + * + * @date 15/12/17 + * @since 5.6.5 + * + * @param string type + * @return string + */ + + var modelId = function (type) { + return acf.strPascalCase(type || '') + 'FieldSetting'; + }; + + /** + * registerFieldType + * + * description + * + * @date 14/12/17 + * @since 5.6.5 + * + * @param type $var Description. Default. + * @return type Description. + */ + + acf.registerFieldSetting = function (model) { + var proto = model.prototype; + var mid = modelId(proto.type + ' ' + proto.name); + this.models[mid] = model; + }; + + /** + * newField + * + * description + * + * @date 14/12/17 + * @since 5.6.5 + * + * @param type $var Description. Default. + * @return type Description. + */ + + acf.newFieldSetting = function (field) { + // vars + var type = field.get('setting') || ''; + var name = field.get('name') || ''; + var mid = modelId(type + ' ' + name); + var model = acf.models[mid] || null; + + // bail early if no setting + if (model === null) return false; + + // instantiate + var setting = new model(field); + + // return + return setting; + }; + + /** + * acf.getFieldSetting + * + * description + * + * @date 19/4/18 + * @since 5.6.9 + * + * @param type $var Description. Default. + * @return type Description. + */ + + acf.getFieldSetting = function (field) { + // allow jQuery + if (field instanceof jQuery) { + field = acf.getField(field); + } + + // return + return field.setting; + }; + + /** + * settingsManager + * + * @since 5.6.5 + * + * @param object The object containing the extended variables and methods. + * @return void + */ + var settingsManager = new acf.Model({ + actions: { + new_field: 'onNewField' + }, + onNewField: function (field) { + field.setting = acf.newFieldSetting(field); + } + }); + + /** + * acf.FieldSetting + * + * @since 5.6.5 + * + * @param object The object containing the extended variables and methods. + * @return void + */ + acf.FieldSetting = acf.Model.extend({ + field: false, + type: '', + name: '', + wait: 'ready', + eventScope: '.acf-field', + events: { + change: 'render' + }, + setup: function (field) { + // vars + var $field = field.$el; + + // set props + this.$el = $field; + this.field = field; + this.$fieldObject = $field.closest('.acf-field-object'); + this.fieldObject = acf.getFieldObject(this.$fieldObject); + + // inherit data + $.extend(this.data, field.data); + }, + initialize: function () { + this.render(); + }, + render: function () { + // do nothing + } + }); + + /** + * Accordion and Tab Endpoint Settings + * + * The 'endpoint' setting on accordions and tabs requires an additional class on the + * field object row when enabled. + * + * @since 6.0.0 + * + * @param object The object containing the extended variables and methods. + * @return void + */ + var EndpointFieldSetting = acf.FieldSetting.extend({ + type: '', + name: '', + render: function () { + var $endpoint_setting = this.fieldObject.$setting('endpoint'); + var $endpoint_field = $endpoint_setting.find('input[type="checkbox"]:first'); + if ($endpoint_field.is(':checked')) { + this.fieldObject.$el.addClass('acf-field-is-endpoint'); + } else { + this.fieldObject.$el.removeClass('acf-field-is-endpoint'); + } + } + }); + var AccordionEndpointFieldSetting = EndpointFieldSetting.extend({ + type: 'accordion', + name: 'endpoint' + }); + var TabEndpointFieldSetting = EndpointFieldSetting.extend({ + type: 'tab', + name: 'endpoint' + }); + acf.registerFieldSetting(AccordionEndpointFieldSetting); + acf.registerFieldSetting(TabEndpointFieldSetting); + + /** + * Date Picker + * + * This field type requires some extra logic for its settings + * + * @since 5.0.0 + * + * @param object The object containing the extended variables and methods. + * @return void + */ + var DisplayFormatFieldSetting = acf.FieldSetting.extend({ + type: '', + name: '', + render: function () { + var $input = this.$('input[type="radio"]:checked'); + if ($input.val() != 'other') { + this.$('input[type="text"]').val($input.val()); + } + } + }); + var DatePickerDisplayFormatFieldSetting = DisplayFormatFieldSetting.extend({ + type: 'date_picker', + name: 'display_format' + }); + var DatePickerReturnFormatFieldSetting = DisplayFormatFieldSetting.extend({ + type: 'date_picker', + name: 'return_format' + }); + acf.registerFieldSetting(DatePickerDisplayFormatFieldSetting); + acf.registerFieldSetting(DatePickerReturnFormatFieldSetting); + + /** + * Date Time Picker + * + * This field type requires some extra logic for its settings + * + * @since 5.0.0 + * + * @param object The object containing the extended variables and methods. + * @return void + */ + var DateTimePickerDisplayFormatFieldSetting = DisplayFormatFieldSetting.extend({ + type: 'date_time_picker', + name: 'display_format' + }); + var DateTimePickerReturnFormatFieldSetting = DisplayFormatFieldSetting.extend({ + type: 'date_time_picker', + name: 'return_format' + }); + acf.registerFieldSetting(DateTimePickerDisplayFormatFieldSetting); + acf.registerFieldSetting(DateTimePickerReturnFormatFieldSetting); + + /** + * Time Picker + * + * This field type requires some extra logic for its settings + * + * @since 5.0.0 + * + * @param object The object containing the extended variables and methods. + * @return void + */ + var TimePickerDisplayFormatFieldSetting = DisplayFormatFieldSetting.extend({ + type: 'time_picker', + name: 'display_format' + }); + var TimePickerReturnFormatFieldSetting = DisplayFormatFieldSetting.extend({ + type: 'time_picker', + name: 'return_format' + }); + acf.registerFieldSetting(TimePickerDisplayFormatFieldSetting); + acf.registerFieldSetting(TimePickerReturnFormatFieldSetting); + + /** + * Color Picker Settings. + * + * @date 16/12/20 + * @since 5.9.4 + * + * @param object The object containing the extended variables and methods. + * @return void + */ + var ColorPickerReturnFormat = acf.FieldSetting.extend({ + type: 'color_picker', + name: 'enable_opacity', + render: function () { + var $return_format_setting = this.fieldObject.$setting('return_format'); + var $default_value_setting = this.fieldObject.$setting('default_value'); + var $labelText = $return_format_setting.find('input[type="radio"][value="string"]').parent('label').contents().last(); + var $defaultPlaceholder = $default_value_setting.find('input[type="text"]'); + var l10n = acf.get('colorPickerL10n'); + if (this.field.val()) { + $labelText.replaceWith(l10n.rgba_string); + $defaultPlaceholder.attr('placeholder', 'rgba(255,255,255,0.8)'); + } else { + $labelText.replaceWith(l10n.hex_string); + $defaultPlaceholder.attr('placeholder', '#FFFFFF'); + } + } + }); + acf.registerFieldSetting(ColorPickerReturnFormat); +})(jQuery); + +/***/ }), + +/***/ "./src/advanced-custom-fields-pro/assets/src/js/_field-group.js": +/*!**********************************************************************!*\ + !*** ./src/advanced-custom-fields-pro/assets/src/js/_field-group.js ***! + \**********************************************************************/ +/***/ (function() { + +(function ($, undefined) { + /** + * fieldGroupManager + * + * Generic field group functionality + * + * @date 15/12/17 + * @since 5.7.0 + * + * @param void + * @return void + */ + + var fieldGroupManager = new acf.Model({ + id: 'fieldGroupManager', + events: { + 'submit #post': 'onSubmit', + 'click a[href="#"]': 'onClick', + 'click .acf-delete-field-group': 'onClickDeleteFieldGroup', + 'blur input#title': 'validateTitle', + 'input input#title': 'validateTitle' + }, + filters: { + find_fields_args: 'filterFindFieldArgs', + find_fields_selector: 'filterFindFieldsSelector' + }, + initialize: function () { + acf.addAction('prepare', this.maybeInitNewFieldGroup); + }, + maybeInitNewFieldGroup: function () { + let $field_list_wrapper = $('#acf-field-group-fields > .inside > .acf-field-list-wrap.acf-auto-add-field'); + if ($field_list_wrapper.length) { + $('.acf-headerbar-actions .add-field').trigger('click'); + $('.acf-title-wrap #title').trigger('focus'); + } + }, + onSubmit: function (e, $el) { + // vars + var $title = $('.acf-title-wrap #title'); + + // empty + if (!$title.val()) { + // prevent default + e.preventDefault(); + + // unlock form + acf.unlockForm($el); + + // focus + $title.trigger('focus'); + } + }, + onClick: function (e) { + e.preventDefault(); + }, + onClickDeleteFieldGroup: function (e, $el) { + e.preventDefault(); + $el.addClass('-hover'); + + // Add confirmation tooltip. + acf.newTooltip({ + confirm: true, + target: $el, + context: this, + text: acf.__('Move field group to trash?'), + confirm: function () { + window.location.href = $el.attr('href'); + }, + cancel: function () { + $el.removeClass('-hover'); + } + }); + }, + validateTitle: function (e, $el) { + let $submitButton = $('.acf-publish'); + if (!$el.val()) { + $el.addClass('acf-input-error'); + $submitButton.addClass('disabled'); + $('.acf-publish').addClass('disabled'); + } else { + $el.removeClass('acf-input-error'); + $submitButton.removeClass('disabled'); + $('.acf-publish').removeClass('disabled'); + } + }, + filterFindFieldArgs: function (args) { + args.visible = true; + if (args.parent && (args.parent.hasClass('acf-field-object') || args.parent.hasClass('acf-browse-fields-modal-wrap') || args.parent.parents('.acf-field-object').length)) { + args.visible = false; + args.excludeSubFields = true; + } + + // If the field has any open subfields, don't exclude subfields as they're already being displayed. + if (args.parent && args.parent.find('.acf-field-object.open').length) { + args.excludeSubFields = false; + } + return args; + }, + filterFindFieldsSelector: function (selector) { + return selector + ', .acf-field-acf-field-group-settings-tabs'; + } + }); + + /** + * screenOptionsManager + * + * Screen options functionality + * + * @date 15/12/17 + * @since 5.7.0 + * + * @param void + * @return void + */ + + var screenOptionsManager = new acf.Model({ + id: 'screenOptionsManager', + wait: 'prepare', + events: { + 'change #acf-field-key-hide': 'onFieldKeysChange', + 'change #acf-field-settings-tabs': 'onFieldSettingsTabsChange', + 'change [name="screen_columns"]': 'render' + }, + initialize: function () { + // vars + var $div = $('#adv-settings'); + var $append = $('#acf-append-show-on-screen'); + + // append + $div.find('.metabox-prefs').append($append.html()); + $div.find('.metabox-prefs br').remove(); + + // clean up + $append.remove(); + + // initialize + this.$el = $('#screen-options-wrap'); + + // render + this.render(); + }, + isFieldKeysChecked: function () { + return this.$el.find('#acf-field-key-hide').prop('checked'); + }, + isFieldSettingsTabsChecked: function () { + const $input = this.$el.find('#acf-field-settings-tabs'); + + // Screen option is hidden by filter. + if (!$input.length) { + return false; + } + return $input.prop('checked'); + }, + getSelectedColumnCount: function () { + return this.$el.find('input[name="screen_columns"]:checked').val(); + }, + onFieldKeysChange: function (e, $el) { + var val = this.isFieldKeysChecked() ? 1 : 0; + acf.updateUserSetting('show_field_keys', val); + this.render(); + }, + onFieldSettingsTabsChange: function () { + const val = this.isFieldSettingsTabsChecked() ? 1 : 0; + acf.updateUserSetting('show_field_settings_tabs', val); + this.render(); + }, + render: function () { + if (this.isFieldKeysChecked()) { + $('#acf-field-group-fields').addClass('show-field-keys'); + } else { + $('#acf-field-group-fields').removeClass('show-field-keys'); + } + if (!this.isFieldSettingsTabsChecked()) { + $('#acf-field-group-fields').addClass('hide-tabs'); + $('.acf-field-settings-main').removeClass('acf-hidden').prop('hidden', false); + } else { + $('#acf-field-group-fields').removeClass('hide-tabs'); + $('.acf-field-object').each(function () { + const tabFields = acf.getFields({ + type: 'tab', + parent: $(this), + excludeSubFields: true, + limit: 1 + }); + if (tabFields.length) { + tabFields[0].tabs.set('initialized', false); + } + acf.doAction('show', $(this)); + }); + } + if (this.getSelectedColumnCount() == 1) { + $('body').removeClass('columns-2'); + $('body').addClass('columns-1'); + } else { + $('body').removeClass('columns-1'); + $('body').addClass('columns-2'); + } + } + }); + + /** + * appendFieldManager + * + * Appends fields together + * + * @date 15/12/17 + * @since 5.7.0 + * + * @param void + * @return void + */ + + var appendFieldManager = new acf.Model({ + actions: { + new_field: 'onNewField' + }, + onNewField: function (field) { + // bail early if not append + if (!field.has('append')) return; + + // vars + var append = field.get('append'); + var $sibling = field.$el.siblings('[data-name="' + append + '"]').first(); + + // bail early if no sibling + if (!$sibling.length) return; + + // ul + var $div = $sibling.children('.acf-input'); + var $ul = $div.children('ul'); + + // create ul + if (!$ul.length) { + $div.wrapInner(''); + $ul = $div.children('ul'); + } + + // li + var html = field.$('.acf-input').html(); + var $li = $('
  • ' + html + '
  • '); + $ul.append($li); + $ul.attr('data-cols', $ul.children().length); + + // clean up + field.remove(); + } + }); +})(jQuery); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js": +/*!*******************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/defineProperty.js ***! + \*******************************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": function() { return /* binding */ _defineProperty; } +/* harmony export */ }); +/* harmony import */ var _toPropertyKey_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toPropertyKey.js */ "./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js"); + +function _defineProperty(obj, key, value) { + key = (0,_toPropertyKey_js__WEBPACK_IMPORTED_MODULE_0__["default"])(key); + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; +} + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/toPrimitive.js": +/*!****************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/toPrimitive.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": function() { return /* binding */ _toPrimitive; } +/* harmony export */ }); +/* harmony import */ var _typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typeof.js */ "./node_modules/@babel/runtime/helpers/esm/typeof.js"); + +function _toPrimitive(input, hint) { + if ((0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__["default"])(input) !== "object" || input === null) return input; + var prim = input[Symbol.toPrimitive]; + if (prim !== undefined) { + var res = prim.call(input, hint || "default"); + if ((0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__["default"])(res) !== "object") return res; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return (hint === "string" ? String : Number)(input); +} + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js": +/*!******************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js ***! + \******************************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": function() { return /* binding */ _toPropertyKey; } +/* harmony export */ }); +/* harmony import */ var _typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typeof.js */ "./node_modules/@babel/runtime/helpers/esm/typeof.js"); +/* harmony import */ var _toPrimitive_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./toPrimitive.js */ "./node_modules/@babel/runtime/helpers/esm/toPrimitive.js"); + + +function _toPropertyKey(arg) { + var key = (0,_toPrimitive_js__WEBPACK_IMPORTED_MODULE_1__["default"])(arg, "string"); + return (0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__["default"])(key) === "symbol" ? key : String(key); +} + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/typeof.js": +/*!***********************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/typeof.js ***! + \***********************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": function() { return /* binding */ _typeof; } +/* harmony export */ }); +function _typeof(obj) { + "@babel/helpers - typeof"; + + return _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; + }, _typeof(obj); +} + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat get default export */ +/******/ !function() { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function() { return module['default']; } : +/******/ function() { return module; }; +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ }(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ !function() { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = function(exports, definition) { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ }(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ !function() { +/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); } +/******/ }(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ !function() { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ }(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be in strict mode. +!function() { +"use strict"; +/*!*************************************************************************!*\ + !*** ./src/advanced-custom-fields-pro/assets/src/js/acf-field-group.js ***! + \*************************************************************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _field_group_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_field-group.js */ "./src/advanced-custom-fields-pro/assets/src/js/_field-group.js"); +/* harmony import */ var _field_group_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_field_group_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _field_group_field_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_field-group-field.js */ "./src/advanced-custom-fields-pro/assets/src/js/_field-group-field.js"); +/* harmony import */ var _field_group_field_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_field_group_field_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _field_group_settings_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_field-group-settings.js */ "./src/advanced-custom-fields-pro/assets/src/js/_field-group-settings.js"); +/* harmony import */ var _field_group_settings_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_field_group_settings_js__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _field_group_conditions_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_field-group-conditions.js */ "./src/advanced-custom-fields-pro/assets/src/js/_field-group-conditions.js"); +/* harmony import */ var _field_group_conditions_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_field_group_conditions_js__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _field_group_fields_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_field-group-fields.js */ "./src/advanced-custom-fields-pro/assets/src/js/_field-group-fields.js"); +/* harmony import */ var _field_group_fields_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_field_group_fields_js__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _field_group_locations_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./_field-group-locations.js */ "./src/advanced-custom-fields-pro/assets/src/js/_field-group-locations.js"); +/* harmony import */ var _field_group_locations_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_field_group_locations_js__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var _field_group_compatibility_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./_field-group-compatibility.js */ "./src/advanced-custom-fields-pro/assets/src/js/_field-group-compatibility.js"); +/* harmony import */ var _field_group_compatibility_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_field_group_compatibility_js__WEBPACK_IMPORTED_MODULE_6__); +/* harmony import */ var _browse_fields_modal_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./_browse-fields-modal.js */ "./src/advanced-custom-fields-pro/assets/src/js/_browse-fields-modal.js"); + + + + + + + + +}(); +/******/ })() +; +//# sourceMappingURL=acf-field-group.js.map \ No newline at end of file diff --git a/assets/build/js/acf-field-group.js.map b/assets/build/js/acf-field-group.js.map new file mode 100644 index 0000000..a025a14 --- /dev/null +++ b/assets/build/js/acf-field-group.js.map @@ -0,0 +1 @@ +{"version":3,"file":"acf-field-group.js","mappings":"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","sources":["webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_browse-fields-modal.js","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_field-group-compatibility.js","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_field-group-conditions.js","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_field-group-field.js","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_field-group-fields.js","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_field-group-locations.js","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_field-group-settings.js","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_field-group.js","webpack://advanced-custom-fields-pro/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://advanced-custom-fields-pro/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://advanced-custom-fields-pro/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://advanced-custom-fields-pro/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://advanced-custom-fields-pro/webpack/bootstrap","webpack://advanced-custom-fields-pro/webpack/runtime/compat get default export","webpack://advanced-custom-fields-pro/webpack/runtime/define property getters","webpack://advanced-custom-fields-pro/webpack/runtime/hasOwnProperty shorthand","webpack://advanced-custom-fields-pro/webpack/runtime/make namespace object","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/acf-field-group.js"],"sourcesContent":["/**\n * Extends acf.models.Modal to create the field browser.\n *\n * @package Advanced Custom Fields\n */\n\n( function ( $, undefined, acf ) {\n\tconst browseFieldsModal = {\n\t\tdata: {\n\t\t\topenedBy: null,\n\t\t\tcurrentFieldType: null,\n\t\t\tpopularFieldTypes: [\n\t\t\t\t'text',\n\t\t\t\t'textarea',\n\t\t\t\t'email',\n\t\t\t\t'url',\n\t\t\t\t'file',\n\t\t\t\t'gallery',\n\t\t\t\t'select',\n\t\t\t\t'true_false',\n\t\t\t\t'link',\n\t\t\t\t'post_object',\n\t\t\t\t'relationship',\n\t\t\t\t'repeater',\n\t\t\t\t'flexible_content',\n\t\t\t\t'clone',\n\t\t\t],\n\t\t},\n\n\t\tevents: {\n\t\t\t'click .acf-modal-close': 'onClickClose',\n\t\t\t'keydown .acf-browse-fields-modal': 'onPressEscapeClose',\n\t\t\t'click .acf-select-field': 'onClickSelectField',\n\t\t\t'click .acf-field-type': 'onClickFieldType',\n\t\t\t'changed:currentFieldType': 'onChangeFieldType',\n\t\t\t'input .acf-search-field-types': 'onSearchFieldTypes',\n\t\t\t'click .acf-browse-popular-fields': 'onClickBrowsePopular',\n\t\t},\n\n\t\tsetup: function ( props ) {\n\t\t\t$.extend( this.data, props );\n\t\t\tthis.$el = $( this.tmpl() );\n\t\t\tthis.render();\n\t\t},\n\n\t\tinitialize: function () {\n\t\t\tthis.open();\n\t\t\tthis.lockFocusToModal( true );\n\t\t\tthis.$el.find( '.acf-modal-title' ).focus();\n\t\t\tacf.doAction( 'show', this.$el );\n\t\t},\n\n\t\ttmpl: function () {\n\t\t\treturn $( '#tmpl-acf-browse-fields-modal' ).html();\n\t\t},\n\n\t\tgetFieldTypes: function ( category, search ) {\n\t\t\tlet fieldTypes;\n\t\t\tif ( ! acf.get( 'is_pro' ) ) {\n\t\t\t\t// Add in the pro fields.\n\t\t\t\tfieldTypes = Object.values( {\n\t\t\t\t\t...acf.get( 'fieldTypes' ),\n\t\t\t\t\t...acf.get( 'PROFieldTypes' ),\n\t\t\t\t} );\n\t\t\t} else {\n\t\t\t\tfieldTypes = Object.values( acf.get( 'fieldTypes' ) );\n\t\t\t}\n\n\t\t\tif ( category ) {\n\t\t\t\tif ( 'popular' === category ) {\n\t\t\t\t\treturn fieldTypes.filter( ( fieldType ) =>\n\t\t\t\t\t\tthis.get( 'popularFieldTypes' ).includes(\n\t\t\t\t\t\t\tfieldType.name\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tif ( 'pro' === category ) {\n\t\t\t\t\treturn fieldTypes.filter( ( fieldType ) => fieldType.pro );\n\t\t\t\t}\n\n\t\t\t\tfieldTypes = fieldTypes.filter(\n\t\t\t\t\t( fieldType ) => fieldType.category === category\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif ( search ) {\n\t\t\t\tfieldTypes = fieldTypes.filter( ( fieldType ) => {\n\t\t\t\t\tconst label = fieldType.label.toLowerCase();\n\t\t\t\t\tconst labelParts = label.split( ' ' );\n\t\t\t\t\tlet match = false;\n\n\t\t\t\t\tif ( label.startsWith( search.toLowerCase() ) ) {\n\t\t\t\t\t\tmatch = true;\n\t\t\t\t\t} else if ( labelParts.length > 1 ) {\n\t\t\t\t\t\tlabelParts.forEach( ( part ) => {\n\t\t\t\t\t\t\tif ( part.startsWith( search.toLowerCase() ) ) {\n\t\t\t\t\t\t\t\tmatch = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\n\t\t\t\t\treturn match;\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn fieldTypes;\n\t\t},\n\n\t\trender: function () {\n\t\t\tacf.doAction( 'append', this.$el );\n\n\t\t\tconst $tabs = this.$el.find( '.acf-field-types-tab' );\n\t\t\tconst self = this;\n\n\t\t\t$tabs.each( function () {\n\t\t\t\tconst category = $( this ).data( 'category' );\n\t\t\t\tconst fieldTypes = self.getFieldTypes( category );\n\t\t\t\tfieldTypes.forEach( ( fieldType ) => {\n\t\t\t\t\t$( this ).append( self.getFieldTypeHTML( fieldType ) );\n\t\t\t\t} );\n\t\t\t} );\n\n\t\t\tthis.initializeFieldLabel();\n\t\t\tthis.initializeFieldType();\n\t\t\tthis.onChangeFieldType();\n\t\t},\n\n\t\tgetFieldTypeHTML: function ( fieldType ) {\n\t\t\tconst iconName = fieldType.name.replaceAll( '_', '-' );\n\n\t\t\treturn `\n\t\t\t\n\t\t\t\t${\n\t\t\t\t\tfieldType.pro && ! acf.get( 'is_pro' )\n\t\t\t\t\t\t? 'PRO'\n\t\t\t\t\t\t: fieldType.pro\n\t\t\t\t\t\t? 'PRO'\n\t\t\t\t\t\t: ''\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t${ fieldType.label }\n\t\t\t\n\t\t\t`;\n\t\t},\n\n\t\tdecodeFieldTypeURL: function ( url ) {\n\t\t\tif ( typeof url != 'string' ) return url;\n\t\t\treturn url.replaceAll( '&', '&' );\n\t\t},\n\n\t\trenderFieldTypeDesc: function ( fieldType ) {\n\t\t\tconst fieldTypeInfo =\n\t\t\t\tthis.getFieldTypes().filter(\n\t\t\t\t\t( fieldTypeFilter ) => fieldTypeFilter.name === fieldType\n\t\t\t\t)[ 0 ] || {};\n\n\t\t\tconst args = acf.parseArgs( fieldTypeInfo, {\n\t\t\t\tlabel: '',\n\t\t\t\tdescription: '',\n\t\t\t\tdoc_url: false,\n\t\t\t\ttutorial_url: false,\n\t\t\t\tpreview_image: false,\n\t\t\t\tpro: false,\n\t\t\t} );\n\n\t\t\tthis.$el.find( '.field-type-name' ).text( args.label );\n\t\t\tthis.$el.find( '.field-type-desc' ).text( args.description );\n\n\t\t\tif ( args.doc_url ) {\n\t\t\t\tthis.$el\n\t\t\t\t\t.find( '.field-type-doc' )\n\t\t\t\t\t.attr( 'href', this.decodeFieldTypeURL( args.doc_url ) )\n\t\t\t\t\t.show();\n\t\t\t} else {\n\t\t\t\tthis.$el.find( '.field-type-doc' ).hide();\n\t\t\t}\n\n\t\t\tif ( args.tutorial_url ) {\n\t\t\t\tthis.$el\n\t\t\t\t\t.find( '.field-type-tutorial' )\n\t\t\t\t\t.attr(\n\t\t\t\t\t\t'href',\n\t\t\t\t\t\tthis.decodeFieldTypeURL( args.tutorial_url )\n\t\t\t\t\t)\n\t\t\t\t\t.parent()\n\t\t\t\t\t.show();\n\t\t\t} else {\n\t\t\t\tthis.$el.find( '.field-type-tutorial' ).parent().hide();\n\t\t\t}\n\n\t\t\tif ( args.preview_image ) {\n\t\t\t\tthis.$el\n\t\t\t\t\t.find( '.field-type-image' )\n\t\t\t\t\t.attr( 'src', args.preview_image )\n\t\t\t\t\t.show();\n\t\t\t} else {\n\t\t\t\tthis.$el.find( '.field-type-image' ).hide();\n\t\t\t}\n\n\t\t\tconst isPro = acf.get( 'is_pro' );\n\t\t\tconst $upgateToProButton = this.$el.find( '.acf-btn-pro' );\n\t\t\tconst $upgradeToUnlockButton = this.$el.find(\n\t\t\t\t'.field-type-upgrade-to-unlock'\n\t\t\t);\n\n\t\t\tif ( args.pro && ! isPro ) {\n\t\t\t\t$upgateToProButton.show();\n\t\t\t\t$upgateToProButton.attr(\n\t\t\t\t\t'href',\n\t\t\t\t\t$upgateToProButton.data( 'urlBase' ) + fieldType\n\t\t\t\t);\n\n\t\t\t\t$upgradeToUnlockButton.show();\n\t\t\t\t$upgradeToUnlockButton.attr(\n\t\t\t\t\t'href',\n\t\t\t\t\t$upgradeToUnlockButton.data( 'urlBase' ) + fieldType\n\t\t\t\t);\n\t\t\t\tthis.$el\n\t\t\t\t\t.find( '.acf-insert-field-label' )\n\t\t\t\t\t.attr( 'disabled', true );\n\t\t\t\tthis.$el.find( '.acf-select-field' ).hide();\n\t\t\t} else {\n\t\t\t\t$upgateToProButton.hide();\n\t\t\t\t$upgradeToUnlockButton.hide();\n\t\t\t\tthis.$el\n\t\t\t\t\t.find( '.acf-insert-field-label' )\n\t\t\t\t\t.attr( 'disabled', false );\n\t\t\t\tthis.$el.find( '.acf-select-field' ).show();\n\t\t\t}\n\t\t},\n\n\t\tinitializeFieldType: function () {\n\t\t\tconst fieldObject = this.get( 'openedBy' );\n\t\t\tconst fieldType = fieldObject?.data?.type;\n\n\t\t\t// Select default field type\n\t\t\tif ( fieldType ) {\n\t\t\t\tthis.set( 'currentFieldType', fieldType );\n\t\t\t} else {\n\t\t\t\tthis.set( 'currentFieldType', 'text' );\n\t\t\t}\n\n\t\t\t// Select first tab with selected field type\n\t\t\t// If type selected is wthin Popular, select Popular Tab\n\t\t\t// Else select first tab the type belongs\n\t\t\tconst fieldTypes = this.getFieldTypes();\n\t\t\tconst isFieldTypePopular =\n\t\t\t\tthis.get( 'popularFieldTypes' ).includes( fieldType );\n\n\t\t\tlet category = '';\n\t\t\tif ( isFieldTypePopular ) {\n\t\t\t\tcategory = 'popular';\n\t\t\t} else {\n\t\t\t\tconst selectedFieldType = fieldTypes.find( ( x ) => {\n\t\t\t\t\treturn x.name === fieldType;\n\t\t\t\t} );\n\n\t\t\t\tcategory = selectedFieldType.category;\n\t\t\t}\n\n\t\t\tconst uppercaseCategory =\n\t\t\t\tcategory[ 0 ].toUpperCase() + category.slice( 1 );\n\t\t\tconst searchTabElement = `.acf-modal-content .acf-tab-wrap a:contains('${ uppercaseCategory }')`;\n\t\t\tsetTimeout( () => {\n\t\t\t\t$( searchTabElement ).click();\n\t\t\t}, 0 );\n\t\t},\n\n\t\tinitializeFieldLabel: function () {\n\t\t\tconst fieldObject = this.get( 'openedBy' );\n\t\t\tconst labelText = fieldObject.$fieldLabel().val();\n\t\t\tconst $fieldLabel = this.$el.find( '.acf-insert-field-label' );\n\t\t\tif ( labelText ) {\n\t\t\t\t$fieldLabel.val( labelText );\n\t\t\t} else {\n\t\t\t\t$fieldLabel.val( '' );\n\t\t\t}\n\t\t},\n\n\t\tupdateFieldObjectFieldLabel: function () {\n\t\t\tconst label = this.$el.find( '.acf-insert-field-label' ).val();\n\t\t\tconst fieldObject = this.get( 'openedBy' );\n\t\t\tfieldObject.$fieldLabel().val( label );\n\t\t\tfieldObject.$fieldLabel().trigger( 'blur' );\n\t\t},\n\n\t\tonChangeFieldType: function () {\n\t\t\tconst fieldType = this.get( 'currentFieldType' );\n\n\t\t\tthis.$el.find( '.selected' ).removeClass( 'selected' );\n\t\t\tthis.$el\n\t\t\t\t.find( '.acf-field-type[data-field-type=\"' + fieldType + '\"]' )\n\t\t\t\t.addClass( 'selected' );\n\n\t\t\tthis.renderFieldTypeDesc( fieldType );\n\t\t},\n\n\t\tonSearchFieldTypes: function ( e ) {\n\t\t\tconst $modal = this.$el.find( '.acf-browse-fields-modal' );\n\t\t\tconst inputVal = this.$el.find( '.acf-search-field-types' ).val();\n\t\t\tconst self = this;\n\t\t\tlet searchString,\n\t\t\t\tresultsHtml = '';\n\t\t\tlet matches = [];\n\n\t\t\tif ( 'string' === typeof inputVal ) {\n\t\t\t\tsearchString = inputVal.trim();\n\t\t\t\tmatches = this.getFieldTypes( false, searchString );\n\t\t\t}\n\n\t\t\tif ( searchString.length && matches.length ) {\n\t\t\t\t$modal.addClass( 'is-searching' );\n\t\t\t} else {\n\t\t\t\t$modal.removeClass( 'is-searching' );\n\t\t\t}\n\n\t\t\tif ( ! matches.length ) {\n\t\t\t\t$modal.addClass( 'no-results-found' );\n\t\t\t\tthis.$el\n\t\t\t\t\t.find( '.acf-invalid-search-term' )\n\t\t\t\t\t.text( searchString );\n\t\t\t\treturn;\n\t\t\t} else {\n\t\t\t\t$modal.removeClass( 'no-results-found' );\n\t\t\t}\n\n\t\t\tmatches.forEach( ( fieldType ) => {\n\t\t\t\tresultsHtml = resultsHtml + self.getFieldTypeHTML( fieldType );\n\t\t\t} );\n\n\t\t\t$( '.acf-field-type-search-results' ).html( resultsHtml );\n\n\t\t\tthis.set( 'currentFieldType', matches[ 0 ].name );\n\t\t\tthis.onChangeFieldType();\n\t\t},\n\n\t\tonClickBrowsePopular: function () {\n\t\t\tthis.$el\n\t\t\t\t.find( '.acf-search-field-types' )\n\t\t\t\t.val( '' )\n\t\t\t\t.trigger( 'input' );\n\t\t\tthis.$el.find( '.acf-tab-wrap a' ).first().trigger( 'click' );\n\t\t},\n\n\t\tonClickSelectField: function ( e ) {\n\t\t\tconst fieldObject = this.get( 'openedBy' );\n\n\t\t\tfieldObject\n\t\t\t\t.$fieldTypeSelect()\n\t\t\t\t.val( this.get( 'currentFieldType' ) );\n\t\t\tfieldObject.$fieldTypeSelect().trigger( 'change' );\n\n\t\t\tthis.updateFieldObjectFieldLabel();\n\n\t\t\tthis.close();\n\t\t},\n\n\t\tonClickFieldType: function ( e ) {\n\t\t\tconst $fieldType = $( e.currentTarget );\n\t\t\tthis.set( 'currentFieldType', $fieldType.data( 'field-type' ) );\n\t\t},\n\n\t\tonClickClose: function () {\n\t\t\tthis.close();\n\t\t},\n\n\t\tonPressEscapeClose: function ( e ) {\n\t\t\tif ( e.key === 'Escape' ) {\n\t\t\t\tthis.close();\n\t\t\t}\n\t\t},\n\n\t\tclose: function () {\n\t\t\tthis.lockFocusToModal( false );\n\t\t\tthis.returnFocusToOrigin();\n\t\t\tthis.remove();\n\t\t},\n\n\t\tfocus: function () {\n\t\t\tthis.$el.find( 'button' ).first().trigger( 'focus' );\n\t\t},\n\t};\n\n\tacf.models.browseFieldsModal = acf.models.Modal.extend( browseFieldsModal );\n\tacf.newBrowseFieldsModal = ( props ) =>\n\t\tnew acf.models.browseFieldsModal( props );\n} )( window.jQuery, undefined, window.acf );\n","( function ( $, undefined ) {\n\tvar _acf = acf.getCompatibility( acf );\n\n\t/**\n\t * fieldGroupCompatibility\n\t *\n\t * Compatibility layer for extinct acf.field_group\n\t *\n\t * @date\t15/12/17\n\t * @since\t5.7.0\n\t *\n\t * @param\tvoid\n\t * @return\tvoid\n\t */\n\n\t_acf.field_group = {\n\t\tsave_field: function ( $field, type ) {\n\t\t\ttype = type !== undefined ? type : 'settings';\n\t\t\tacf.getFieldObject( $field ).save( type );\n\t\t},\n\n\t\tdelete_field: function ( $field, animate ) {\n\t\t\tanimate = animate !== undefined ? animate : true;\n\t\t\tacf.getFieldObject( $field ).delete( {\n\t\t\t\tanimate: animate,\n\t\t\t} );\n\t\t},\n\n\t\tupdate_field_meta: function ( $field, name, value ) {\n\t\t\tacf.getFieldObject( $field ).prop( name, value );\n\t\t},\n\n\t\tdelete_field_meta: function ( $field, name ) {\n\t\t\tacf.getFieldObject( $field ).prop( name, null );\n\t\t},\n\t};\n\n\t/**\n\t * fieldGroupCompatibility.field_object\n\t *\n\t * Compatibility layer for extinct acf.field_group.field_object\n\t *\n\t * @date\t15/12/17\n\t * @since\t5.7.0\n\t *\n\t * @param\tvoid\n\t * @return\tvoid\n\t */\n\n\t_acf.field_group.field_object = acf.model.extend( {\n\t\t// vars\n\t\ttype: '',\n\t\to: {},\n\t\t$field: null,\n\t\t$settings: null,\n\n\t\ttag: function ( tag ) {\n\t\t\t// vars\n\t\t\tvar type = this.type;\n\n\t\t\t// explode, add 'field' and implode\n\t\t\t// - open \t\t\t=> open_field\n\t\t\t// - change_type\t=> change_field_type\n\t\t\tvar tags = tag.split( '_' );\n\t\t\ttags.splice( 1, 0, 'field' );\n\t\t\ttag = tags.join( '_' );\n\n\t\t\t// add type\n\t\t\tif ( type ) {\n\t\t\t\ttag += '/type=' + type;\n\t\t\t}\n\n\t\t\t// return\n\t\t\treturn tag;\n\t\t},\n\n\t\tselector: function () {\n\t\t\t// vars\n\t\t\tvar selector = '.acf-field-object';\n\t\t\tvar type = this.type;\n\n\t\t\t// add type\n\t\t\tif ( type ) {\n\t\t\t\tselector += '-' + type;\n\t\t\t\tselector = acf.str_replace( '_', '-', selector );\n\t\t\t}\n\n\t\t\t// return\n\t\t\treturn selector;\n\t\t},\n\n\t\t_add_action: function ( name, callback ) {\n\t\t\t// vars\n\t\t\tvar model = this;\n\n\t\t\t// add action\n\t\t\tacf.add_action( this.tag( name ), function ( $field ) {\n\t\t\t\t// focus\n\t\t\t\tmodel.set( '$field', $field );\n\n\t\t\t\t// callback\n\t\t\t\tmodel[ callback ].apply( model, arguments );\n\t\t\t} );\n\t\t},\n\n\t\t_add_filter: function ( name, callback ) {\n\t\t\t// vars\n\t\t\tvar model = this;\n\n\t\t\t// add action\n\t\t\tacf.add_filter( this.tag( name ), function ( $field ) {\n\t\t\t\t// focus\n\t\t\t\tmodel.set( '$field', $field );\n\n\t\t\t\t// callback\n\t\t\t\tmodel[ callback ].apply( model, arguments );\n\t\t\t} );\n\t\t},\n\n\t\t_add_event: function ( name, callback ) {\n\t\t\t// vars\n\t\t\tvar model = this;\n\t\t\tvar event = name.substr( 0, name.indexOf( ' ' ) );\n\t\t\tvar selector = name.substr( name.indexOf( ' ' ) + 1 );\n\t\t\tvar context = this.selector();\n\n\t\t\t// add event\n\t\t\t$( document ).on( event, context + ' ' + selector, function ( e ) {\n\t\t\t\t// append $el to event object\n\t\t\t\te.$el = $( this );\n\t\t\t\te.$field = e.$el.closest( '.acf-field-object' );\n\n\t\t\t\t// focus\n\t\t\t\tmodel.set( '$field', e.$field );\n\n\t\t\t\t// callback\n\t\t\t\tmodel[ callback ].apply( model, [ e ] );\n\t\t\t} );\n\t\t},\n\n\t\t_set_$field: function () {\n\t\t\t// vars\n\t\t\tthis.o = this.$field.data();\n\n\t\t\t// els\n\t\t\tthis.$settings = this.$field.find( '> .settings > table > tbody' );\n\n\t\t\t// focus\n\t\t\tthis.focus();\n\t\t},\n\n\t\tfocus: function () {\n\t\t\t// do nothing\n\t\t},\n\n\t\tsetting: function ( name ) {\n\t\t\treturn this.$settings.find( '> .acf-field-setting-' + name );\n\t\t},\n\t} );\n\n\t/*\n\t * field\n\t *\n\t * This model fires actions and filters for registered fields\n\t *\n\t * @type\tfunction\n\t * @date\t21/02/2014\n\t * @since\t3.5.1\n\t *\n\t * @param\tn/a\n\t * @return\tn/a\n\t */\n\n\tvar actionManager = new acf.Model( {\n\t\tactions: {\n\t\t\topen_field_object: 'onOpenFieldObject',\n\t\t\tclose_field_object: 'onCloseFieldObject',\n\t\t\tadd_field_object: 'onAddFieldObject',\n\t\t\tduplicate_field_object: 'onDuplicateFieldObject',\n\t\t\tdelete_field_object: 'onDeleteFieldObject',\n\t\t\tchange_field_object_type: 'onChangeFieldObjectType',\n\t\t\tchange_field_object_label: 'onChangeFieldObjectLabel',\n\t\t\tchange_field_object_name: 'onChangeFieldObjectName',\n\t\t\tchange_field_object_parent: 'onChangeFieldObjectParent',\n\t\t\tsortstop_field_object: 'onChangeFieldObjectParent',\n\t\t},\n\n\t\tonOpenFieldObject: function ( field ) {\n\t\t\tacf.doAction( 'open_field', field.$el );\n\t\t\tacf.doAction( 'open_field/type=' + field.get( 'type' ), field.$el );\n\n\t\t\tacf.doAction( 'render_field_settings', field.$el );\n\t\t\tacf.doAction(\n\t\t\t\t'render_field_settings/type=' + field.get( 'type' ),\n\t\t\t\tfield.$el\n\t\t\t);\n\t\t},\n\n\t\tonCloseFieldObject: function ( field ) {\n\t\t\tacf.doAction( 'close_field', field.$el );\n\t\t\tacf.doAction(\n\t\t\t\t'close_field/type=' + field.get( 'type' ),\n\t\t\t\tfield.$el\n\t\t\t);\n\t\t},\n\n\t\tonAddFieldObject: function ( field ) {\n\t\t\tacf.doAction( 'add_field', field.$el );\n\t\t\tacf.doAction( 'add_field/type=' + field.get( 'type' ), field.$el );\n\t\t},\n\n\t\tonDuplicateFieldObject: function ( field ) {\n\t\t\tacf.doAction( 'duplicate_field', field.$el );\n\t\t\tacf.doAction(\n\t\t\t\t'duplicate_field/type=' + field.get( 'type' ),\n\t\t\t\tfield.$el\n\t\t\t);\n\t\t},\n\n\t\tonDeleteFieldObject: function ( field ) {\n\t\t\tacf.doAction( 'delete_field', field.$el );\n\t\t\tacf.doAction(\n\t\t\t\t'delete_field/type=' + field.get( 'type' ),\n\t\t\t\tfield.$el\n\t\t\t);\n\t\t},\n\n\t\tonChangeFieldObjectType: function ( field ) {\n\t\t\tacf.doAction( 'change_field_type', field.$el );\n\t\t\tacf.doAction(\n\t\t\t\t'change_field_type/type=' + field.get( 'type' ),\n\t\t\t\tfield.$el\n\t\t\t);\n\n\t\t\tacf.doAction( 'render_field_settings', field.$el );\n\t\t\tacf.doAction(\n\t\t\t\t'render_field_settings/type=' + field.get( 'type' ),\n\t\t\t\tfield.$el\n\t\t\t);\n\t\t},\n\n\t\tonChangeFieldObjectLabel: function ( field ) {\n\t\t\tacf.doAction( 'change_field_label', field.$el );\n\t\t\tacf.doAction(\n\t\t\t\t'change_field_label/type=' + field.get( 'type' ),\n\t\t\t\tfield.$el\n\t\t\t);\n\t\t},\n\n\t\tonChangeFieldObjectName: function ( field ) {\n\t\t\tacf.doAction( 'change_field_name', field.$el );\n\t\t\tacf.doAction(\n\t\t\t\t'change_field_name/type=' + field.get( 'type' ),\n\t\t\t\tfield.$el\n\t\t\t);\n\t\t},\n\n\t\tonChangeFieldObjectParent: function ( field ) {\n\t\t\tacf.doAction( 'update_field_parent', field.$el );\n\t\t},\n\t} );\n} )( jQuery );\n","( function ( $, undefined ) {\n\t/**\n\t * ConditionalLogicFieldSetting\n\t *\n\t * description\n\t *\n\t * @date\t3/2/18\n\t * @since\t5.6.5\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tvar ConditionalLogicFieldSetting = acf.FieldSetting.extend( {\n\t\ttype: '',\n\t\tname: 'conditional_logic',\n\t\tevents: {\n\t\t\t'change .conditions-toggle': 'onChangeToggle',\n\t\t\t'click .add-conditional-group': 'onClickAddGroup',\n\t\t\t'focus .condition-rule-field': 'onFocusField',\n\t\t\t'change .condition-rule-field': 'onChangeField',\n\t\t\t'change .condition-rule-operator': 'onChangeOperator',\n\t\t\t'click .add-conditional-rule': 'onClickAdd',\n\t\t\t'click .remove-conditional-rule': 'onClickRemove',\n\t\t},\n\n\t\t$rule: false,\n\n\t\tscope: function ( $rule ) {\n\t\t\tthis.$rule = $rule;\n\t\t\treturn this;\n\t\t},\n\n\t\truleData: function ( name, value ) {\n\t\t\treturn this.$rule.data.apply( this.$rule, arguments );\n\t\t},\n\n\t\t$input: function ( name ) {\n\t\t\treturn this.$rule.find( '.condition-rule-' + name );\n\t\t},\n\n\t\t$td: function ( name ) {\n\t\t\treturn this.$rule.find( 'td.' + name );\n\t\t},\n\n\t\t$toggle: function () {\n\t\t\treturn this.$( '.conditions-toggle' );\n\t\t},\n\n\t\t$control: function () {\n\t\t\treturn this.$( '.rule-groups' );\n\t\t},\n\n\t\t$groups: function () {\n\t\t\treturn this.$( '.rule-group' );\n\t\t},\n\n\t\t$rules: function () {\n\t\t\treturn this.$( '.rule' );\n\t\t},\n\n\t\t$tabLabel: function () {\n\t\t\treturn this.fieldObject.$el.find('.conditional-logic-badge');\n\t\t},\n\n\t\topen: function () {\n\t\t\tvar $div = this.$control();\n\t\t\t$div.show();\n\t\t\tacf.enable( $div );\n\t\t},\n\n\t\tclose: function () {\n\t\t\tvar $div = this.$control();\n\t\t\t$div.hide();\n\t\t\tacf.disable( $div );\n\t\t},\n\n\t\trender: function () {\n\t\t\t// show\n\t\t\tif ( this.$toggle().prop( 'checked' ) ) {\n\t\t\t\tthis.$tabLabel().addClass('is-enabled');\n\t\t\t\tthis.renderRules();\n\t\t\t\tthis.open();\n\n\t\t\t\t// hide\n\t\t\t} else {\n\t\t\t\tthis.$tabLabel().removeClass('is-enabled');\n\t\t\t\tthis.close();\n\t\t\t}\n\t\t},\n\n\t\trenderRules: function () {\n\t\t\t// vars\n\t\t\tvar self = this;\n\n\t\t\t// loop\n\t\t\tthis.$rules().each( function () {\n\t\t\t\tself.renderRule( $( this ) );\n\t\t\t} );\n\t\t},\n\n\t\trenderRule: function ( $rule ) {\n\t\t\tthis.scope( $rule );\n\t\t\tthis.renderField();\n\t\t\tthis.renderOperator();\n\t\t\tthis.renderValue();\n\t\t},\n\n\t\trenderField: function () {\n\t\t\t// vars\n\t\t\tvar choices = [];\n\t\t\tvar validFieldTypes = [];\n\t\t\tvar cid = this.fieldObject.cid;\n\t\t\tvar $select = this.$input( 'field' );\n\n\t\t\t// loop\n\t\t\tacf.getFieldObjects().map( function ( fieldObject ) {\n\t\t\t\t// vars\n\t\t\t\tvar choice = {\n\t\t\t\t\tid: fieldObject.getKey(),\n\t\t\t\t\ttext: fieldObject.getLabel(),\n\t\t\t\t};\n\n\t\t\t\t// bail early if is self\n\t\t\t\tif ( fieldObject.cid === cid ) {\n\t\t\t\t\tchoice.text += ' ' + acf.__( '(this field)' );\n\t\t\t\t\tchoice.disabled = true;\n\t\t\t\t}\n\n\t\t\t\t// get selected field conditions\n\t\t\t\tvar conditionTypes = acf.getConditionTypes( {\n\t\t\t\t\tfieldType: fieldObject.getType(),\n\t\t\t\t} );\n\n\t\t\t\t// bail early if no types\n\t\t\t\tif ( ! conditionTypes.length ) {\n\t\t\t\t\tchoice.disabled = true;\n\t\t\t\t}\n\n\t\t\t\t// calulate indents\n\t\t\t\tvar indents = fieldObject.getParents().length;\n\t\t\t\tchoice.text = '- '.repeat( indents ) + choice.text;\n\n\t\t\t\t// append\n\t\t\t\tchoices.push( choice );\n\t\t\t} );\n\n\t\t\t// allow for scenario where only one field exists\n\t\t\tif ( ! choices.length ) {\n\t\t\t\tchoices.push( {\n\t\t\t\t\tid: '',\n\t\t\t\t\ttext: acf.__( 'No toggle fields available' ),\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t// render\n\t\t\tacf.renderSelect( $select, choices );\n\n\t\t\t// set\n\t\t\tthis.ruleData( 'field', $select.val() );\n\t\t},\n\n\t\trenderOperator: function () {\n\t\t\t// bail early if no field selected\n\t\t\tif ( ! this.ruleData( 'field' ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// vars\n\t\t\tvar $select = this.$input( 'operator' );\n\t\t\tvar val = $select.val();\n\t\t\tvar choices = [];\n\n\t\t\t// set saved value on first render\n\t\t\t// - this allows the 2nd render to correctly select an option\n\t\t\tif ( $select.val() === null ) {\n\t\t\t\tacf.renderSelect( $select, [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: this.ruleData( 'operator' ),\n\t\t\t\t\t\ttext: '',\n\t\t\t\t\t},\n\t\t\t\t] );\n\t\t\t}\n\n\t\t\t// get selected field\n\t\t\tvar $field = acf.findFieldObject( this.ruleData( 'field' ) );\n\t\t\tvar field = acf.getFieldObject( $field );\n\n\t\t\t// get selected field conditions\n\t\t\tvar conditionTypes = acf.getConditionTypes( {\n\t\t\t\tfieldType: field.getType(),\n\t\t\t} );\n\n\t\t\t// html\n\t\t\tconditionTypes.map( function ( model ) {\n\t\t\t\tchoices.push( {\n\t\t\t\t\tid: model.prototype.operator,\n\t\t\t\t\ttext: model.prototype.label,\n\t\t\t\t} );\n\t\t\t} );\n\n\t\t\t// render\n\t\t\tacf.renderSelect( $select, choices );\n\n\t\t\t// set\n\t\t\tthis.ruleData( 'operator', $select.val() );\n\t\t},\n\n\t\trenderValue: function () {\n\t\t\t// bail early if no field selected\n\t\t\tif ( ! this.ruleData( 'field' ) || ! this.ruleData( 'operator' ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// vars\n\t\t\tvar $select = this.$input( 'value' );\n\t\t\tvar $td = this.$td( 'value' );\n\t\t\tvar val = $select.val();\n\n\t\t\t// get selected field\n\t\t\tvar $field = acf.findFieldObject( this.ruleData( 'field' ) );\n\t\t\tvar field = acf.getFieldObject( $field );\n\n\t\t\t// get selected field conditions\n\t\t\tvar conditionTypes = acf.getConditionTypes( {\n\t\t\t\tfieldType: field.getType(),\n\t\t\t\toperator: this.ruleData( 'operator' ),\n\t\t\t} );\n\n\t\t\t// html\n\t\t\tvar conditionType = conditionTypes[ 0 ].prototype;\n\t\t\tvar choices = conditionType.choices( field );\n\n\t\t\t// create html: array\n\t\t\tif ( choices instanceof Array ) {\n\t\t\t\tvar $newSelect = $( '' );\n\t\t\t\tacf.renderSelect( $newSelect, choices );\n\n\t\t\t\t// create html: string ()\n\t\t\t} else {\n\t\t\t\tvar $newSelect = $( choices );\n\t\t\t}\n\n\t\t\t// append\n\t\t\t$select.detach();\n\t\t\t$td.html( $newSelect );\n\n\t\t\t// copy attrs\n\t\t\t// timeout needed to avoid browser bug where \"disabled\" attribute is not applied\n\t\t\tsetTimeout( function () {\n\t\t\t\t[ 'class', 'name', 'id' ].map( function ( attr ) {\n\t\t\t\t\t$newSelect.attr( attr, $select.attr( attr ) );\n\t\t\t\t} );\n\t\t\t}, 0 );\n\n\t\t\t// select existing value (if not a disabled input)\n\t\t\tif ( ! $newSelect.prop( 'disabled' ) ) {\n\t\t\t\tacf.val( $newSelect, val, true );\n\t\t\t}\n\n\t\t\t// set\n\t\t\tthis.ruleData( 'value', $newSelect.val() );\n\t\t},\n\n\t\tonChangeToggle: function () {\n\t\t\tthis.render();\n\t\t},\n\n\t\tonClickAddGroup: function ( e, $el ) {\n\t\t\tthis.addGroup();\n\t\t},\n\n\t\taddGroup: function () {\n\t\t\t// vars\n\t\t\tvar $group = this.$( '.rule-group:last' );\n\n\t\t\t// duplicate\n\t\t\tvar $group2 = acf.duplicate( $group );\n\n\t\t\t// update h4\n\t\t\t$group2.find( 'h4' ).text( acf.__( 'or' ) );\n\n\t\t\t// remove all tr's except the first one\n\t\t\t$group2.find( 'tr' ).not( ':first' ).remove();\n\n\t\t\t// save field\n\t\t\tthis.fieldObject.save();\n\t\t},\n\n\t\tonFocusField: function ( e, $el ) {\n\t\t\tthis.renderField();\n\t\t},\n\n\t\tonChangeField: function ( e, $el ) {\n\t\t\t// scope\n\t\t\tthis.scope( $el.closest( '.rule' ) );\n\n\t\t\t// set data\n\t\t\tthis.ruleData( 'field', $el.val() );\n\n\t\t\t// render\n\t\t\tthis.renderOperator();\n\t\t\tthis.renderValue();\n\t\t},\n\n\t\tonChangeOperator: function ( e, $el ) {\n\t\t\t// scope\n\t\t\tthis.scope( $el.closest( '.rule' ) );\n\n\t\t\t// set data\n\t\t\tthis.ruleData( 'operator', $el.val() );\n\n\t\t\t// render\n\t\t\tthis.renderValue();\n\t\t},\n\n\t\tonClickAdd: function ( e, $el ) {\n\t\t\t// duplciate\n\t\t\tvar $rule = acf.duplicate( $el.closest( '.rule' ) );\n\n\t\t\t// render\n\t\t\tthis.renderRule( $rule );\n\t\t},\n\n\t\tonClickRemove: function ( e, $el ) {\n\t\t\t// vars\n\t\t\tvar $rule = $el.closest( '.rule' );\n\n\t\t\t// save field\n\t\t\tthis.fieldObject.save();\n\n\t\t\t// remove group\n\t\t\tif ( $rule.siblings( '.rule' ).length == 0 ) {\n\t\t\t\t$rule.closest( '.rule-group' ).remove();\n\t\t\t}\n\n\t\t\t// remove\n\t\t\t$rule.remove();\n\t\t},\n\t} );\n\n\tacf.registerFieldSetting( ConditionalLogicFieldSetting );\n\n\t/**\n\t * conditionalLogicHelper\n\t *\n\t * description\n\t *\n\t * @date\t20/4/18\n\t * @since\t5.6.9\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tvar conditionalLogicHelper = new acf.Model( {\n\t\tactions: {\n\t\t\tduplicate_field_objects: 'onDuplicateFieldObjects',\n\t\t},\n\n\t\tonDuplicateFieldObjects: function ( children, newField, prevField ) {\n\t\t\t// vars\n\t\t\tvar data = {};\n\t\t\tvar $selects = $();\n\n\t\t\t// reference change in key\n\t\t\tchildren.map( function ( child ) {\n\t\t\t\t// store reference of changed key\n\t\t\t\tdata[ child.get( 'prevKey' ) ] = child.get( 'key' );\n\n\t\t\t\t// append condition select\n\t\t\t\t$selects = $selects.add( child.$( '.condition-rule-field' ) );\n\t\t\t} );\n\n\t\t\t// loop\n\t\t\t$selects.each( function () {\n\t\t\t\t// vars\n\t\t\t\tvar $select = $( this );\n\t\t\t\tvar val = $select.val();\n\n\t\t\t\t// bail early if val is not a ref key\n\t\t\t\tif ( ! val || ! data[ val ] ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// modify selected option\n\t\t\t\t$select.find( 'option:selected' ).attr( 'value', data[ val ] );\n\n\t\t\t\t// set new val\n\t\t\t\t$select.val( data[ val ] );\n\t\t\t} );\n\t\t},\n\t} );\n} )( jQuery );\n","( function ( $, undefined ) {\n\tacf.FieldObject = acf.Model.extend( {\n\t\t// class used to avoid nested event triggers\n\t\teventScope: '.acf-field-object',\n\n\t\t// variable for field type select2\n\t\tfieldTypeSelect2: false,\n\n\t\t// events\n\t\tevents: {\n\t\t\t'click .copyable': 'onClickCopy',\n\t\t\t'click .handle': 'onClickEdit',\n\t\t\t'click .close-field': 'onClickEdit',\n\t\t\t'click a[data-key=\"acf_field_settings_tabs\"]':\n\t\t\t\t'onChangeSettingsTab',\n\t\t\t'click .delete-field': 'onClickDelete',\n\t\t\t'click .duplicate-field': 'duplicate',\n\t\t\t'click .move-field': 'move',\n\t\t\t'click .browse-fields': 'browseFields',\n\n\t\t\t'focus .edit-field': 'onFocusEdit',\n\t\t\t'blur .edit-field, .row-options a': 'onBlurEdit',\n\n\t\t\t'change .field-type': 'onChangeType',\n\t\t\t'change .field-required': 'onChangeRequired',\n\t\t\t'blur .field-label': 'onChangeLabel',\n\t\t\t'blur .field-name': 'onChangeName',\n\n\t\t\tchange: 'onChange',\n\t\t\tchanged: 'onChanged',\n\t\t},\n\n\t\t// data\n\t\tdata: {\n\t\t\t// Similar to ID, but used for HTML puposes.\n\t\t\t// It is possbile for a new field to have an ID of 0, but an id of 'field_123' */\n\t\t\tid: 0,\n\n\t\t\t// The field key ('field_123')\n\t\t\tkey: '',\n\n\t\t\t// The field type (text, image, etc)\n\t\t\ttype: '',\n\n\t\t\t// The $post->ID of this field\n\t\t\t//ID: 0,\n\n\t\t\t// The field's parent\n\t\t\t//parent: 0,\n\n\t\t\t// The menu order\n\t\t\t//menu_order: 0\n\t\t},\n\n\t\tsetup: function ( $field ) {\n\t\t\t// set $el\n\t\t\tthis.$el = $field;\n\n\t\t\t// inherit $field data (id, key, type)\n\t\t\tthis.inherit( $field );\n\n\t\t\t// load additional props\n\t\t\t// - this won't trigger 'changed'\n\t\t\tthis.prop( 'ID' );\n\t\t\tthis.prop( 'parent' );\n\t\t\tthis.prop( 'menu_order' );\n\t\t},\n\n\t\t$input: function ( name ) {\n\t\t\treturn $( '#' + this.getInputId() + '-' + name );\n\t\t},\n\n\t\t$meta: function () {\n\t\t\treturn this.$( '.meta:first' );\n\t\t},\n\n\t\t$handle: function () {\n\t\t\treturn this.$( '.handle:first' );\n\t\t},\n\n\t\t$settings: function () {\n\t\t\treturn this.$( '.settings:first' );\n\t\t},\n\n\t\t$setting: function ( name ) {\n\t\t\treturn this.$(\n\t\t\t\t'.acf-field-settings:first .acf-field-setting-' + name\n\t\t\t);\n\t\t},\n\n\t\t$fieldTypeSelect: function () {\n\t\t\treturn this.$( '.field-type' );\n\t\t},\n\n\t\t$fieldLabel: function () {\n\t\t\treturn this.$( '.field-label' );\n\t\t},\n\n\t\tgetParent: function () {\n\t\t\treturn acf.getFieldObjects( { child: this.$el, limit: 1 } ).pop();\n\t\t},\n\n\t\tgetParents: function () {\n\t\t\treturn acf.getFieldObjects( { child: this.$el } );\n\t\t},\n\n\t\tgetFields: function () {\n\t\t\treturn acf.getFieldObjects( { parent: this.$el } );\n\t\t},\n\n\t\tgetInputName: function () {\n\t\t\treturn 'acf_fields[' + this.get( 'id' ) + ']';\n\t\t},\n\n\t\tgetInputId: function () {\n\t\t\treturn 'acf_fields-' + this.get( 'id' );\n\t\t},\n\n\t\tnewInput: function ( name, value ) {\n\t\t\t// vars\n\t\t\tvar inputId = this.getInputId();\n\t\t\tvar inputName = this.getInputName();\n\n\t\t\t// append name\n\t\t\tif ( name ) {\n\t\t\t\tinputId += '-' + name;\n\t\t\t\tinputName += '[' + name + ']';\n\t\t\t}\n\n\t\t\t// create input (avoid HTML + JSON value issues)\n\t\t\tvar $input = $( '' ).attr( {\n\t\t\t\tid: inputId,\n\t\t\t\tname: inputName,\n\t\t\t\tvalue: value,\n\t\t\t} );\n\t\t\tthis.$( '> .meta' ).append( $input );\n\n\t\t\t// return\n\t\t\treturn $input;\n\t\t},\n\n\t\tgetProp: function ( name ) {\n\t\t\t// check data\n\t\t\tif ( this.has( name ) ) {\n\t\t\t\treturn this.get( name );\n\t\t\t}\n\n\t\t\t// get input value\n\t\t\tvar $input = this.$input( name );\n\t\t\tvar value = $input.length ? $input.val() : null;\n\n\t\t\t// set data silently (cache)\n\t\t\tthis.set( name, value, true );\n\n\t\t\t// return\n\t\t\treturn value;\n\t\t},\n\n\t\tsetProp: function ( name, value ) {\n\t\t\t// get input\n\t\t\tvar $input = this.$input( name );\n\t\t\tvar prevVal = $input.val();\n\n\t\t\t// create if new\n\t\t\tif ( ! $input.length ) {\n\t\t\t\t$input = this.newInput( name, value );\n\t\t\t}\n\n\t\t\t// remove\n\t\t\tif ( value === null ) {\n\t\t\t\t$input.remove();\n\n\t\t\t\t// update\n\t\t\t} else {\n\t\t\t\t$input.val( value );\n\t\t\t}\n\n\t\t\t//console.log('setProp', name, value, this);\n\n\t\t\t// set data silently (cache)\n\t\t\tif ( ! this.has( name ) ) {\n\t\t\t\t//console.log('setting silently');\n\t\t\t\tthis.set( name, value, true );\n\n\t\t\t\t// set data allowing 'change' event to fire\n\t\t\t} else {\n\t\t\t\t//console.log('setting loudly!');\n\t\t\t\tthis.set( name, value );\n\t\t\t}\n\n\t\t\t// return\n\t\t\treturn this;\n\t\t},\n\n\t\tprop: function ( name, value ) {\n\t\t\tif ( value !== undefined ) {\n\t\t\t\treturn this.setProp( name, value );\n\t\t\t} else {\n\t\t\t\treturn this.getProp( name );\n\t\t\t}\n\t\t},\n\n\t\tprops: function ( props ) {\n\t\t\tObject.keys( props ).map( function ( key ) {\n\t\t\t\tthis.setProp( key, props[ key ] );\n\t\t\t}, this );\n\t\t},\n\n\t\tgetLabel: function () {\n\t\t\t// get label with empty default\n\t\t\tvar label = this.prop( 'label' );\n\t\t\tif ( label === '' ) {\n\t\t\t\tlabel = acf.__( '(no label)' );\n\t\t\t}\n\n\t\t\t// return\n\t\t\treturn label;\n\t\t},\n\n\t\tgetName: function () {\n\t\t\treturn this.prop( 'name' );\n\t\t},\n\n\t\tgetType: function () {\n\t\t\treturn this.prop( 'type' );\n\t\t},\n\n\t\tgetTypeLabel: function () {\n\t\t\tvar type = this.prop( 'type' );\n\t\t\tvar types = acf.get( 'fieldTypes' );\n\t\t\treturn types[ type ] ? types[ type ].label : type;\n\t\t},\n\n\t\tgetKey: function () {\n\t\t\treturn this.prop( 'key' );\n\t\t},\n\n\t\tinitialize: function () {\n\t\t\tthis.checkCopyable();\n\t\t},\n\n\t\tmakeCopyable: function ( text ) {\n\t\t\tif ( ! navigator.clipboard )\n\t\t\t\treturn (\n\t\t\t\t\t'' +\n\t\t\t\t\ttext +\n\t\t\t\t\t''\n\t\t\t\t);\n\t\t\treturn '' + text + '';\n\t\t},\n\n\t\tcheckCopyable: function () {\n\t\t\tif ( ! navigator.clipboard ) {\n\t\t\t\tthis.$el.find( '.copyable' ).addClass( 'copy-unsupported' );\n\t\t\t}\n\t\t},\n\n\t\tinitializeFieldTypeSelect2: function () {\n\t\t\tif ( this.fieldTypeSelect2 ) return;\n\n\t\t\t// Support disabling via filter.\n\t\t\tif ( this.$fieldTypeSelect().hasClass( 'disable-select2' ) ) return;\n\n\t\t\t// Check for a full modern version of select2, bail loading if not found with a console warning.\n\t\t\ttry {\n\t\t\t\t$.fn.select2.amd.require( 'select2/compat/dropdownCss' );\n\t\t\t} catch ( err ) {\n\t\t\t\tconsole.warn(\n\t\t\t\t\t'ACF was not able to load the full version of select2 due to a conflicting version provided by another plugin or theme taking precedence. Select2 fields may not work as expected.'\n\t\t\t\t);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.fieldTypeSelect2 = acf.newSelect2( this.$fieldTypeSelect(), {\n\t\t\t\tfield: false,\n\t\t\t\tajax: false,\n\t\t\t\tmultiple: false,\n\t\t\t\tallowNull: false,\n\t\t\t\tsuppressFilters: true,\n\t\t\t\tdropdownCssClass: 'field-type-select-results',\n\t\t\t\ttemplateResult: function ( selection ) {\n\t\t\t\t\tif (\n\t\t\t\t\t\tselection.loading ||\n\t\t\t\t\t\t( selection.element &&\n\t\t\t\t\t\t\tselection.element.nodeName == 'OPTGROUP' )\n\t\t\t\t\t) {\n\t\t\t\t\t\tvar $selection = $(\n\t\t\t\t\t\t\t''\n\t\t\t\t\t\t);\n\t\t\t\t\t\t$selection.html( acf.escHtml( selection.text ) );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar $selection = $(\n\t\t\t\t\t\t\t'' +\n\t\t\t\t\t\t\t\tacf.escHtml( selection.text ) +\n\t\t\t\t\t\t\t\t''\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\t$selection.data( 'element', selection.element );\n\t\t\t\t\treturn $selection;\n\t\t\t\t},\n\t\t\t\ttemplateSelection: function ( selection ) {\n\t\t\t\t\tvar $selection = $(\n\t\t\t\t\t\t'' +\n\t\t\t\t\t\t\tacf.escHtml( selection.text ) +\n\t\t\t\t\t\t\t''\n\t\t\t\t\t);\n\t\t\t\t\t$selection.data( 'element', selection.element );\n\t\t\t\t\treturn $selection;\n\t\t\t\t},\n\t\t\t} );\n\n\t\t\tthis.fieldTypeSelect2.on( 'select2:open', function () {\n\t\t\t\t$(\n\t\t\t\t\t'.field-type-select-results input.select2-search__field'\n\t\t\t\t).attr( 'placeholder', acf.__( 'Type to search...' ) );\n\t\t\t} );\n\n\t\t\tthis.fieldTypeSelect2.on( 'change', function ( e ) {\n\t\t\t\t$( e.target )\n\t\t\t\t\t.parents( 'ul:first' )\n\t\t\t\t\t.find( 'button.browse-fields' )\n\t\t\t\t\t.prop( 'disabled', true );\n\t\t\t} );\n\n\t\t\t// When typing happens on the li element above the select2.\n\t\t\tthis.fieldTypeSelect2.$el\n\t\t\t\t.parent()\n\t\t\t\t.on(\n\t\t\t\t\t'keydown',\n\t\t\t\t\t'.select2-selection.select2-selection--single',\n\t\t\t\t\tthis.onKeyDownSelect\n\t\t\t\t);\n\t\t},\n\t\taddProFields: function () {\n\t\t\t// Make sure we're only running this on free version.\n\t\t\tif ( acf.get( 'is_pro' ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Make sure we haven't appended these fields before.\n\t\t\tvar $fieldTypeSelect = this.$fieldTypeSelect();\n\t\t\tif ( $fieldTypeSelect.hasClass( 'acf-free-field-type' ) ) return;\n\n\t\t\t// Loop over each pro field type and append it to the select.\n\t\t\tconst PROFieldTypes = acf.get( 'PROFieldTypes' );\n\t\t\tif ( typeof PROFieldTypes !== 'object' ) return;\n\n\t\t\tconst $layoutGroup = $fieldTypeSelect\n\t\t\t\t.find( 'optgroup option[value=\"group\"]' )\n\t\t\t\t.parent();\n\n\t\t\tconst $contentGroup = $fieldTypeSelect\n\t\t\t\t.find( 'optgroup option[value=\"image\"]' )\n\t\t\t\t.parent();\n\n\t\t\tfor ( const [ name, field ] of Object.entries( PROFieldTypes ) ) {\n\t\t\t\tconst $useGroup =\n\t\t\t\t\tfield.category === 'content' ? $contentGroup : $layoutGroup;\n\t\t\t\t$useGroup.append(\n\t\t\t\t\t''\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t$fieldTypeSelect.addClass( 'acf-free-field-type' );\n\t\t},\n\n\t\trender: function () {\n\t\t\t// vars\n\t\t\tvar $handle = this.$( '.handle:first' );\n\t\t\tvar menu_order = this.prop( 'menu_order' );\n\t\t\tvar label = this.getLabel();\n\t\t\tvar name = this.prop( 'name' );\n\t\t\tvar type = this.getTypeLabel();\n\t\t\tvar key = this.prop( 'key' );\n\t\t\tvar required = this.$input( 'required' ).prop( 'checked' );\n\n\t\t\t// update menu order\n\t\t\t$handle.find( '.acf-icon' ).html( parseInt( menu_order ) + 1 );\n\n\t\t\t// update required\n\t\t\tif ( required ) {\n\t\t\t\tlabel += ' *';\n\t\t\t}\n\n\t\t\t// update label\n\t\t\t$handle.find( '.li-field-label strong a' ).html( label );\n\n\t\t\t// update name\n\t\t\t$handle.find( '.li-field-name' ).html( this.makeCopyable( name ) );\n\n\t\t\t// update type\n\t\t\tconst iconName = acf.strSlugify( this.getType() );\n\t\t\t$handle.find( '.field-type-label' ).text( ' ' + type );\n\t\t\t$handle\n\t\t\t\t.find( '.field-type-icon' )\n\t\t\t\t.removeClass()\n\t\t\t\t.addClass( 'field-type-icon field-type-icon-' + iconName );\n\n\t\t\t// update key\n\t\t\t$handle.find( '.li-field-key' ).html( this.makeCopyable( key ) );\n\n\t\t\t// action for 3rd party customization\n\t\t\tacf.doAction( 'render_field_object', this );\n\t\t},\n\n\t\trefresh: function () {\n\t\t\tacf.doAction( 'refresh_field_object', this );\n\t\t},\n\n\t\tisOpen: function () {\n\t\t\treturn this.$el.hasClass( 'open' );\n\t\t},\n\n\t\tonClickCopy: function ( e ) {\n\t\t\te.stopPropagation();\n\t\t\tif ( ! navigator.clipboard ) return;\n\t\t\tnavigator.clipboard.writeText( $( e.target ).text() ).then( () => {\n\t\t\t\t$( e.target ).addClass( 'copied' );\n\t\t\t\tsetTimeout( function () {\n\t\t\t\t\t$( e.target ).removeClass( 'copied' );\n\t\t\t\t}, 2000 );\n\t\t\t} );\n\t\t},\n\n\t\tonClickEdit: function ( e ) {\n\t\t\t$target = $( e.target );\n\t\t\tif (\n\t\t\t\t$target.parent().hasClass( 'row-options' ) &&\n\t\t\t\t! $target.hasClass( 'edit-field' )\n\t\t\t)\n\t\t\t\treturn;\n\t\t\tthis.isOpen() ? this.close() : this.open();\n\t\t},\n\n\t\tonChangeSettingsTab: function () {\n\t\t\tconst $settings = this.$el.children( '.settings' );\n\t\t\tacf.doAction( 'show', $settings );\n\t\t},\n\n\t\t/**\n\t\t * Adds 'active' class to row options nearest to the target.\n\t\t */\n\t\tonFocusEdit: function ( e ) {\n\t\t\tvar $rowOptions = $( e.target )\n\t\t\t\t.closest( 'li' )\n\t\t\t\t.find( '.row-options' );\n\t\t\t$rowOptions.addClass( 'active' );\n\t\t},\n\n\t\t/**\n\t\t * Removes 'active' class from row options if links in same row options area are no longer in focus.\n\t\t */\n\t\tonBlurEdit: function ( e ) {\n\t\t\tvar focusDelayMilliseconds = 50;\n\t\t\tvar $rowOptionsBlurElement = $( e.target )\n\t\t\t\t.closest( 'li' )\n\t\t\t\t.find( '.row-options' );\n\n\t\t\t// Timeout so that `activeElement` gives the new element in focus instead of the body.\n\t\t\tsetTimeout( function () {\n\t\t\t\tvar $rowOptionsFocusElement = $( document.activeElement )\n\t\t\t\t\t.closest( 'li' )\n\t\t\t\t\t.find( '.row-options' );\n\t\t\t\tif ( ! $rowOptionsBlurElement.is( $rowOptionsFocusElement ) ) {\n\t\t\t\t\t$rowOptionsBlurElement.removeClass( 'active' );\n\t\t\t\t}\n\t\t\t}, focusDelayMilliseconds );\n\t\t},\n\n\t\topen: function () {\n\t\t\t// vars\n\t\t\tvar $settings = this.$el.children( '.settings' );\n\n\t\t\t// initialise field type select\n\t\t\tthis.addProFields();\n\t\t\tthis.initializeFieldTypeSelect2();\n\n\t\t\t// action (open)\n\t\t\tacf.doAction( 'open_field_object', this );\n\t\t\tthis.trigger( 'openFieldObject' );\n\n\t\t\t// action (show)\n\t\t\tacf.doAction( 'show', $settings );\n\n\t\t\t// open\n\t\t\t$settings.slideDown();\n\t\t\tthis.$el.addClass( 'open' );\n\t\t},\n\n\t\tonKeyDownSelect: function ( e ) {\n\t\t\t// Omit events from special keys.\n\t\t\tif (\n\t\t\t\t! (\n\t\t\t\t\t( e.which >= 186 && e.which <= 222 ) || // punctuation and special characters\n\t\t\t\t\t[\n\t\t\t\t\t\t8, 9, 13, 16, 17, 18, 19, 20, 27, 32, 33, 34, 35, 36,\n\t\t\t\t\t\t37, 38, 39, 40, 45, 46, 91, 92, 93, 144, 145,\n\t\t\t\t\t].includes( e.which ) || // Special keys\n\t\t\t\t\t( e.which >= 112 && e.which <= 123 )\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\t// Function keys\n\t\t\t\t$( this )\n\t\t\t\t\t.closest( '.select2-container' )\n\t\t\t\t\t.siblings( 'select:enabled' )\n\t\t\t\t\t.select2( 'open' );\n\t\t\t\treturn;\n\t\t\t}\n\t\t},\n\n\t\tclose: function () {\n\t\t\t// vars\n\t\t\tvar $settings = this.$el.children( '.settings' );\n\n\t\t\t// close\n\t\t\t$settings.slideUp();\n\t\t\tthis.$el.removeClass( 'open' );\n\n\t\t\t// action (close)\n\t\t\tacf.doAction( 'close_field_object', this );\n\t\t\tthis.trigger( 'closeFieldObject' );\n\n\t\t\t// action (hide)\n\t\t\tacf.doAction( 'hide', $settings );\n\t\t},\n\n\t\tserialize: function () {\n\t\t\treturn acf.serialize( this.$el, this.getInputName() );\n\t\t},\n\n\t\tsave: function ( type ) {\n\t\t\t// defaults\n\t\t\ttype = type || 'settings'; // meta, settings\n\n\t\t\t// vars\n\t\t\tvar save = this.getProp( 'save' );\n\n\t\t\t// bail if already saving settings\n\t\t\tif ( save === 'settings' ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// prop\n\t\t\tthis.setProp( 'save', type );\n\n\t\t\t// debug\n\t\t\tthis.$el.attr( 'data-save', type );\n\n\t\t\t// action\n\t\t\tacf.doAction( 'save_field_object', this, type );\n\t\t},\n\n\t\tsubmit: function () {\n\t\t\t// vars\n\t\t\tvar inputName = this.getInputName();\n\t\t\tvar save = this.get( 'save' );\n\n\t\t\t// close\n\t\t\tif ( this.isOpen() ) {\n\t\t\t\tthis.close();\n\t\t\t}\n\n\t\t\t// allow all inputs to save\n\t\t\tif ( save == 'settings' ) {\n\t\t\t\t// do nothing\n\t\t\t\t// allow only meta inputs to save\n\t\t\t} else if ( save == 'meta' ) {\n\t\t\t\tthis.$( '> .settings [name^=\"' + inputName + '\"]' ).remove();\n\n\t\t\t\t// prevent all inputs from saving\n\t\t\t} else {\n\t\t\t\tthis.$( '[name^=\"' + inputName + '\"]' ).remove();\n\t\t\t}\n\n\t\t\t// action\n\t\t\tacf.doAction( 'submit_field_object', this );\n\t\t},\n\n\t\tonChange: function ( e, $el ) {\n\t\t\t// save settings\n\t\t\tthis.save();\n\n\t\t\t// action for 3rd party customization\n\t\t\tacf.doAction( 'change_field_object', this );\n\t\t},\n\n\t\tonChanged: function ( e, $el, name, value ) {\n\t\t\tif ( this.getType() === $el.attr( 'data-type' ) ) {\n\t\t\t\t$( 'button.acf-btn.browse-fields' ).prop( 'disabled', false );\n\t\t\t}\n\n\t\t\t// ignore 'save'\n\t\t\tif ( name == 'save' ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// save meta\n\t\t\tif ( [ 'menu_order', 'parent' ].indexOf( name ) > -1 ) {\n\t\t\t\tthis.save( 'meta' );\n\n\t\t\t\t// save field\n\t\t\t} else {\n\t\t\t\tthis.save();\n\t\t\t}\n\n\t\t\t// render\n\t\t\tif (\n\t\t\t\t[\n\t\t\t\t\t'menu_order',\n\t\t\t\t\t'label',\n\t\t\t\t\t'required',\n\t\t\t\t\t'name',\n\t\t\t\t\t'type',\n\t\t\t\t\t'key',\n\t\t\t\t].indexOf( name ) > -1\n\t\t\t) {\n\t\t\t\tthis.render();\n\t\t\t}\n\n\t\t\t// action for 3rd party customization\n\t\t\tacf.doAction( 'change_field_object_' + name, this, value );\n\t\t},\n\n\t\tonChangeLabel: function ( e, $el ) {\n\t\t\t// set\n\t\t\tvar label = $el.val();\n\t\t\tthis.set( 'label', label );\n\n\t\t\t// render name\n\t\t\tif ( this.prop( 'name' ) == '' ) {\n\t\t\t\tvar name = acf.applyFilters(\n\t\t\t\t\t'generate_field_object_name',\n\t\t\t\t\tacf.strSanitize( label ),\n\t\t\t\t\tthis\n\t\t\t\t);\n\t\t\t\tthis.prop( 'name', name );\n\t\t\t}\n\t\t},\n\n\t\tonChangeName: function ( e, $el ) {\n\t\t\t// set\n\t\t\tvar name = $el.val();\n\t\t\tthis.set( 'name', name );\n\n\t\t\t// error\n\t\t\tif ( name.substr( 0, 6 ) === 'field_' ) {\n\t\t\t\talert(\n\t\t\t\t\tacf.__(\n\t\t\t\t\t\t'The string \"field_\" may not be used at the start of a field name'\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\n\t\tonChangeRequired: function ( e, $el ) {\n\t\t\t// set\n\t\t\tvar required = $el.prop( 'checked' ) ? 1 : 0;\n\t\t\tthis.set( 'required', required );\n\t\t},\n\n\t\tdelete: function ( args ) {\n\t\t\t// defaults\n\t\t\targs = acf.parseArgs( args, {\n\t\t\t\tanimate: true,\n\t\t\t} );\n\n\t\t\t// add to remove list\n\t\t\tvar id = this.prop( 'ID' );\n\n\t\t\tif ( id ) {\n\t\t\t\tvar $input = $( '#_acf_delete_fields' );\n\t\t\t\tvar newVal = $input.val() + '|' + id;\n\t\t\t\t$input.val( newVal );\n\t\t\t}\n\n\t\t\t// action\n\t\t\tacf.doAction( 'delete_field_object', this );\n\n\t\t\t// animate\n\t\t\tif ( args.animate ) {\n\t\t\t\tthis.removeAnimate();\n\t\t\t} else {\n\t\t\t\tthis.remove();\n\t\t\t}\n\t\t},\n\n\t\tonClickDelete: function ( e, $el ) {\n\t\t\t// Bypass confirmation when holding down \"shift\" key.\n\t\t\tif ( e.shiftKey ) {\n\t\t\t\treturn this.delete();\n\t\t\t}\n\n\t\t\t// add class\n\t\t\tthis.$el.addClass( '-hover' );\n\n\t\t\t// add tooltip\n\t\t\tvar tooltip = acf.newTooltip( {\n\t\t\t\tconfirmRemove: true,\n\t\t\t\ttarget: $el,\n\t\t\t\tcontext: this,\n\t\t\t\tconfirm: function () {\n\t\t\t\t\tthis.delete();\n\t\t\t\t},\n\t\t\t\tcancel: function () {\n\t\t\t\t\tthis.$el.removeClass( '-hover' );\n\t\t\t\t},\n\t\t\t} );\n\t\t},\n\n\t\tremoveAnimate: function () {\n\t\t\t// vars\n\t\t\tvar field = this;\n\t\t\tvar $list = this.$el.parent();\n\t\t\tvar $fields = acf.findFieldObjects( {\n\t\t\t\tsibling: this.$el,\n\t\t\t} );\n\n\t\t\t// remove\n\t\t\tacf.remove( {\n\t\t\t\ttarget: this.$el,\n\t\t\t\tendHeight: $fields.length ? 0 : 50,\n\t\t\t\tcomplete: function () {\n\t\t\t\t\tfield.remove();\n\t\t\t\t\tacf.doAction( 'removed_field_object', field, $list );\n\t\t\t\t},\n\t\t\t} );\n\n\t\t\t// action\n\t\t\tacf.doAction( 'remove_field_object', field, $list );\n\t\t},\n\n\t\tduplicate: function () {\n\t\t\t// vars\n\t\t\tvar newKey = acf.uniqid( 'field_' );\n\n\t\t\t// duplicate\n\t\t\tvar $newField = acf.duplicate( {\n\t\t\t\ttarget: this.$el,\n\t\t\t\tsearch: this.get( 'id' ),\n\t\t\t\treplace: newKey,\n\t\t\t} );\n\n\t\t\t// set new key\n\t\t\t$newField.attr( 'data-key', newKey );\n\n\t\t\t// get instance\n\t\t\tvar newField = acf.getFieldObject( $newField );\n\n\t\t\t// update newField label / name\n\t\t\tvar label = newField.prop( 'label' );\n\t\t\tvar name = newField.prop( 'name' );\n\t\t\tvar end = name.split( '_' ).pop();\n\t\t\tvar copy = acf.__( 'copy' );\n\n\t\t\t// increase suffix \"1\"\n\t\t\tif ( acf.isNumeric( end ) ) {\n\t\t\t\tvar i = end * 1 + 1;\n\t\t\t\tlabel = label.replace( end, i );\n\t\t\t\tname = name.replace( end, i );\n\n\t\t\t\t// increase suffix \"(copy1)\"\n\t\t\t} else if ( end.indexOf( copy ) === 0 ) {\n\t\t\t\tvar i = end.replace( copy, '' ) * 1;\n\t\t\t\ti = i ? i + 1 : 2;\n\n\t\t\t\t// replace\n\t\t\t\tlabel = label.replace( end, copy + i );\n\t\t\t\tname = name.replace( end, copy + i );\n\n\t\t\t\t// add default \"(copy)\"\n\t\t\t} else {\n\t\t\t\tlabel += ' (' + copy + ')';\n\t\t\t\tname += '_' + copy;\n\t\t\t}\n\n\t\t\tnewField.prop( 'ID', 0 );\n\t\t\tnewField.prop( 'label', label );\n\t\t\tnewField.prop( 'name', name );\n\t\t\tnewField.prop( 'key', newKey );\n\n\t\t\t// close the current field if it's open.\n\t\t\tif ( this.isOpen() ) {\n\t\t\t\tthis.close();\n\t\t\t}\n\t\t\t\n\t\t\t// open the new field and initialise correctly.\n\t\t\tnewField.open();\n\n\t\t\t// focus label\n\t\t\tvar $label = newField.$setting( 'label input' );\n\t\t\tsetTimeout( function () {\n\t\t\t\t$label.trigger( 'focus' );\n\t\t\t}, 251 );\n\n\t\t\t// action\n\t\t\tacf.doAction( 'duplicate_field_object', this, newField );\n\t\t\tacf.doAction( 'append_field_object', newField );\n\t\t},\n\n\t\twipe: function () {\n\t\t\t// vars\n\t\t\tvar prevId = this.get( 'id' );\n\t\t\tvar prevKey = this.get( 'key' );\n\t\t\tvar newKey = acf.uniqid( 'field_' );\n\n\t\t\t// rename\n\t\t\tacf.rename( {\n\t\t\t\ttarget: this.$el,\n\t\t\t\tsearch: prevId,\n\t\t\t\treplace: newKey,\n\t\t\t} );\n\n\t\t\t// data\n\t\t\tthis.set( 'id', newKey );\n\t\t\tthis.set( 'prevId', prevId );\n\t\t\tthis.set( 'prevKey', prevKey );\n\n\t\t\t// props\n\t\t\tthis.prop( 'key', newKey );\n\t\t\tthis.prop( 'ID', 0 );\n\n\t\t\t// attr\n\t\t\tthis.$el.attr( 'data-key', newKey );\n\t\t\tthis.$el.attr( 'data-id', newKey );\n\n\t\t\t// action\n\t\t\tacf.doAction( 'wipe_field_object', this );\n\t\t},\n\n\t\tmove: function () {\n\t\t\t// helper\n\t\t\tvar hasChanged = function ( field ) {\n\t\t\t\treturn field.get( 'save' ) == 'settings';\n\t\t\t};\n\n\t\t\t// vars\n\t\t\tvar changed = hasChanged( this );\n\n\t\t\t// has sub fields changed\n\t\t\tif ( ! changed ) {\n\t\t\t\tacf.getFieldObjects( {\n\t\t\t\t\tparent: this.$el,\n\t\t\t\t} ).map( function ( field ) {\n\t\t\t\t\tchanged = hasChanged( field ) || field.changed;\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t// bail early if changed\n\t\t\tif ( changed ) {\n\t\t\t\talert(\n\t\t\t\t\tacf.__(\n\t\t\t\t\t\t'This field cannot be moved until its changes have been saved'\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// step 1.\n\t\t\tvar id = this.prop( 'ID' );\n\t\t\tvar field = this;\n\t\t\tvar popup = false;\n\t\t\tvar step1 = function () {\n\t\t\t\t// popup\n\t\t\t\tpopup = acf.newPopup( {\n\t\t\t\t\ttitle: acf.__( 'Move Custom Field' ),\n\t\t\t\t\tloading: true,\n\t\t\t\t\twidth: '300px',\n\t\t\t\t\topenedBy: field.$el.find( '.move-field' ),\n\t\t\t\t} );\n\n\t\t\t\t// ajax\n\t\t\t\tvar ajaxData = {\n\t\t\t\t\taction: 'acf/field_group/move_field',\n\t\t\t\t\tfield_id: id,\n\t\t\t\t};\n\n\t\t\t\t// get HTML\n\t\t\t\t$.ajax( {\n\t\t\t\t\turl: acf.get( 'ajaxurl' ),\n\t\t\t\t\tdata: acf.prepareForAjax( ajaxData ),\n\t\t\t\t\ttype: 'post',\n\t\t\t\t\tdataType: 'html',\n\t\t\t\t\tsuccess: step2,\n\t\t\t\t} );\n\t\t\t};\n\n\t\t\tvar step2 = function ( html ) {\n\t\t\t\t// update popup\n\t\t\t\tpopup.loading( false );\n\t\t\t\tpopup.content( html );\n\n\t\t\t\t// submit form\n\t\t\t\tpopup.on( 'submit', 'form', step3 );\n\t\t\t};\n\n\t\t\tvar step3 = function ( e, $el ) {\n\t\t\t\t// prevent\n\t\t\t\te.preventDefault();\n\n\t\t\t\t// disable\n\t\t\t\tacf.startButtonLoading( popup.$( '.button' ) );\n\n\t\t\t\t// ajax\n\t\t\t\tvar ajaxData = {\n\t\t\t\t\taction: 'acf/field_group/move_field',\n\t\t\t\t\tfield_id: id,\n\t\t\t\t\tfield_group_id: popup.$( 'select' ).val(),\n\t\t\t\t};\n\n\t\t\t\t// get HTML\n\t\t\t\t$.ajax( {\n\t\t\t\t\turl: acf.get( 'ajaxurl' ),\n\t\t\t\t\tdata: acf.prepareForAjax( ajaxData ),\n\t\t\t\t\ttype: 'post',\n\t\t\t\t\tdataType: 'html',\n\t\t\t\t\tsuccess: step4,\n\t\t\t\t} );\n\t\t\t};\n\n\t\t\tvar step4 = function ( html ) {\n\t\t\t\tpopup.content( html );\n\n\t\t\t\tif ( wp.a11y && wp.a11y.speak && acf.__ ) {\n\t\t\t\t\twp.a11y.speak(\n\t\t\t\t\t\tacf.__( 'Field moved to other group' ),\n\t\t\t\t\t\t'polite'\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tpopup.$( '.acf-close-popup' ).focus();\n\n\t\t\t\tfield.removeAnimate();\n\t\t\t};\n\n\t\t\t// start\n\t\t\tstep1();\n\t\t},\n\n\t\tbrowseFields: function ( e, $el ) {\n\t\t\te.preventDefault();\n\n\t\t\tconst modal = acf.newBrowseFieldsModal( {\n\t\t\t\topenedBy: this,\n\t\t\t} );\n\t\t},\n\n\t\tonChangeType: function ( e, $el ) {\n\t\t\t// clea previous timout\n\t\t\tif ( this.changeTimeout ) {\n\t\t\t\tclearTimeout( this.changeTimeout );\n\t\t\t}\n\n\t\t\t// set new timeout\n\t\t\t// - prevents changing type multiple times whilst user types in newType\n\t\t\tthis.changeTimeout = this.setTimeout( function () {\n\t\t\t\tthis.changeType( $el.val() );\n\t\t\t}, 300 );\n\t\t},\n\n\t\tchangeType: function ( newType ) {\n\t\t\tvar prevType = this.prop( 'type' );\n\t\t\tvar prevClass = acf.strSlugify( 'acf-field-object-' + prevType );\n\t\t\tvar newClass = acf.strSlugify( 'acf-field-object-' + newType );\n\n\t\t\t// Update props.\n\t\t\tthis.$el.removeClass( prevClass ).addClass( newClass );\n\t\t\tthis.$el.attr( 'data-type', newType );\n\t\t\tthis.$el.data( 'type', newType );\n\n\t\t\t// Abort XHR if this field is already loading AJAX data.\n\t\t\tif ( this.has( 'xhr' ) ) {\n\t\t\t\tthis.get( 'xhr' ).abort();\n\t\t\t}\n\n\t\t\t// Store old settings so they can be reused later.\n\t\t\tconst $oldSettings = {};\n\n\t\t\tthis.$el\n\t\t\t\t.find(\n\t\t\t\t\t'.acf-field-settings:first > .acf-field-settings-main > .acf-field-type-settings'\n\t\t\t\t)\n\t\t\t\t.each( function () {\n\t\t\t\t\tlet tab = $( this ).data( 'parent-tab' );\n\t\t\t\t\tlet $tabSettings = $( this ).children().removeData();\n\n\t\t\t\t\t$oldSettings[ tab ] = $tabSettings;\n\n\t\t\t\t\t$tabSettings.detach();\n\t\t\t\t} );\n\n\t\t\tthis.set( 'settings-' + prevType, $oldSettings );\n\n\t\t\t// Show the settings if we already have them cached.\n\t\t\tif ( this.has( 'settings-' + newType ) ) {\n\t\t\t\tlet $newSettings = this.get( 'settings-' + newType );\n\n\t\t\t\tthis.showFieldTypeSettings( $newSettings );\n\t\t\t\tthis.set( 'type', newType );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Add loading spinner.\n\t\t\tconst $loading = $(\n\t\t\t\t'
    '\n\t\t\t);\n\t\t\tthis.$el\n\t\t\t\t.find(\n\t\t\t\t\t'.acf-field-settings-main-general .acf-field-type-settings'\n\t\t\t\t)\n\t\t\t\t.before( $loading );\n\n\t\t\tconst ajaxData = {\n\t\t\t\taction: 'acf/field_group/render_field_settings',\n\t\t\t\tfield: this.serialize(),\n\t\t\t\tprefix: this.getInputName(),\n\t\t\t};\n\n\t\t\t// Get the settings for this field type over AJAX.\n\t\t\tvar xhr = $.ajax( {\n\t\t\t\turl: acf.get( 'ajaxurl' ),\n\t\t\t\tdata: acf.prepareForAjax( ajaxData ),\n\t\t\t\ttype: 'post',\n\t\t\t\tdataType: 'json',\n\t\t\t\tcontext: this,\n\t\t\t\tsuccess: function ( response ) {\n\t\t\t\t\tif ( ! acf.isAjaxSuccess( response ) ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.showFieldTypeSettings( response.data );\n\t\t\t\t},\n\t\t\t\tcomplete: function () {\n\t\t\t\t\t// also triggered by xhr.abort();\n\t\t\t\t\t$loading.remove();\n\t\t\t\t\tthis.set( 'type', newType );\n\t\t\t\t\t//this.refresh();\n\t\t\t\t},\n\t\t\t} );\n\n\t\t\t// set\n\t\t\tthis.set( 'xhr', xhr );\n\t\t},\n\n\t\tshowFieldTypeSettings: function ( settings ) {\n\t\t\tif ( 'object' !== typeof settings ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = this;\n\t\t\tconst tabs = Object.keys( settings );\n\n\t\t\ttabs.forEach( ( tab ) => {\n\t\t\t\tconst $tab = self.$el.find(\n\t\t\t\t\t'.acf-field-settings-main-' +\n\t\t\t\t\t\ttab.replace( '_', '-' ) +\n\t\t\t\t\t\t' .acf-field-type-settings'\n\t\t\t\t);\n\t\t\t\tlet tabContent = '';\n\n\t\t\t\tif (\n\t\t\t\t\t[ 'object', 'string' ].includes( typeof settings[ tab ] )\n\t\t\t\t) {\n\t\t\t\t\ttabContent = settings[ tab ];\n\t\t\t\t}\n\n\t\t\t\t$tab.prepend( tabContent );\n\t\t\t\tacf.doAction( 'append', $tab );\n\t\t\t} );\n\t\t},\n\n\t\tupdateParent: function () {\n\t\t\t// vars\n\t\t\tvar ID = acf.get( 'post_id' );\n\n\t\t\t// check parent\n\t\t\tvar parent = this.getParent();\n\t\t\tif ( parent ) {\n\t\t\t\tID = parseInt( parent.prop( 'ID' ) ) || parent.prop( 'key' );\n\t\t\t}\n\n\t\t\t// update\n\t\t\tthis.prop( 'parent', ID );\n\t\t},\n\t} );\n} )( jQuery );\n","( function ( $, undefined ) {\n\t/**\n\t * acf.findFieldObject\n\t *\n\t * Returns a single fieldObject $el for a given field key\n\t *\n\t * @date\t1/2/18\n\t * @since\t5.7.0\n\t *\n\t * @param\tstring key The field key\n\t * @return\tjQuery\n\t */\n\n\tacf.findFieldObject = function ( key ) {\n\t\treturn acf.findFieldObjects( {\n\t\t\tkey: key,\n\t\t\tlimit: 1,\n\t\t} );\n\t};\n\n\t/**\n\t * acf.findFieldObjects\n\t *\n\t * Returns an array of fieldObject $el for the given args\n\t *\n\t * @date\t1/2/18\n\t * @since\t5.7.0\n\t *\n\t * @param\tobject args\n\t * @return\tjQuery\n\t */\n\n\tacf.findFieldObjects = function ( args ) {\n\t\t// vars\n\t\targs = args || {};\n\t\tvar selector = '.acf-field-object';\n\t\tvar $fields = false;\n\n\t\t// args\n\t\targs = acf.parseArgs( args, {\n\t\t\tid: '',\n\t\t\tkey: '',\n\t\t\ttype: '',\n\t\t\tlimit: false,\n\t\t\tlist: null,\n\t\t\tparent: false,\n\t\t\tsibling: false,\n\t\t\tchild: false,\n\t\t} );\n\n\t\t// id\n\t\tif ( args.id ) {\n\t\t\tselector += '[data-id=\"' + args.id + '\"]';\n\t\t}\n\n\t\t// key\n\t\tif ( args.key ) {\n\t\t\tselector += '[data-key=\"' + args.key + '\"]';\n\t\t}\n\n\t\t// type\n\t\tif ( args.type ) {\n\t\t\tselector += '[data-type=\"' + args.type + '\"]';\n\t\t}\n\n\t\t// query\n\t\tif ( args.list ) {\n\t\t\t$fields = args.list.children( selector );\n\t\t} else if ( args.parent ) {\n\t\t\t$fields = args.parent.find( selector );\n\t\t} else if ( args.sibling ) {\n\t\t\t$fields = args.sibling.siblings( selector );\n\t\t} else if ( args.child ) {\n\t\t\t$fields = args.child.parents( selector );\n\t\t} else {\n\t\t\t$fields = $( selector );\n\t\t}\n\n\t\t// limit\n\t\tif ( args.limit ) {\n\t\t\t$fields = $fields.slice( 0, args.limit );\n\t\t}\n\n\t\t// return\n\t\treturn $fields;\n\t};\n\n\t/**\n\t * acf.getFieldObject\n\t *\n\t * Returns a single fieldObject instance for a given $el|key\n\t *\n\t * @date\t1/2/18\n\t * @since\t5.7.0\n\t *\n\t * @param\tstring|jQuery $field The field $el or key\n\t * @return\tjQuery\n\t */\n\n\tacf.getFieldObject = function ( $field ) {\n\t\t// allow key\n\t\tif ( typeof $field === 'string' ) {\n\t\t\t$field = acf.findFieldObject( $field );\n\t\t}\n\n\t\t// instantiate\n\t\tvar field = $field.data( 'acf' );\n\t\tif ( ! field ) {\n\t\t\tfield = acf.newFieldObject( $field );\n\t\t}\n\n\t\t// return\n\t\treturn field;\n\t};\n\n\t/**\n\t * acf.getFieldObjects\n\t *\n\t * Returns an array of fieldObject instances for the given args\n\t *\n\t * @date\t1/2/18\n\t * @since\t5.7.0\n\t *\n\t * @param\tobject args\n\t * @return\tarray\n\t */\n\n\tacf.getFieldObjects = function ( args ) {\n\t\t// query\n\t\tvar $fields = acf.findFieldObjects( args );\n\n\t\t// loop\n\t\tvar fields = [];\n\t\t$fields.each( function () {\n\t\t\tvar field = acf.getFieldObject( $( this ) );\n\t\t\tfields.push( field );\n\t\t} );\n\n\t\t// return\n\t\treturn fields;\n\t};\n\n\t/**\n\t * acf.newFieldObject\n\t *\n\t * Initializes and returns a new FieldObject instance\n\t *\n\t * @date\t1/2/18\n\t * @since\t5.7.0\n\t *\n\t * @param\tjQuery $field The field $el\n\t * @return\tobject\n\t */\n\n\tacf.newFieldObject = function ( $field ) {\n\t\t// instantiate\n\t\tvar field = new acf.FieldObject( $field );\n\n\t\t// action\n\t\tacf.doAction( 'new_field_object', field );\n\n\t\t// return\n\t\treturn field;\n\t};\n\n\t/**\n\t * actionManager\n\t *\n\t * description\n\t *\n\t * @date\t15/12/17\n\t * @since\t5.6.5\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tvar eventManager = new acf.Model( {\n\t\tpriority: 5,\n\n\t\tinitialize: function () {\n\t\t\t// actions\n\t\t\tvar actions = [ 'prepare', 'ready', 'append', 'remove' ];\n\n\t\t\t// loop\n\t\t\tactions.map( function ( action ) {\n\t\t\t\tthis.addFieldActions( action );\n\t\t\t}, this );\n\t\t},\n\n\t\taddFieldActions: function ( action ) {\n\t\t\t// vars\n\t\t\tvar pluralAction = action + '_field_objects'; // ready_field_objects\n\t\t\tvar singleAction = action + '_field_object'; // ready_field_object\n\t\t\tvar singleEvent = action + 'FieldObject'; // readyFieldObject\n\n\t\t\t// global action\n\t\t\tvar callback = function ( $el /*, arg1, arg2, etc*/ ) {\n\t\t\t\t// vars\n\t\t\t\tvar fieldObjects = acf.getFieldObjects( { parent: $el } );\n\n\t\t\t\t// call plural\n\t\t\t\tif ( fieldObjects.length ) {\n\t\t\t\t\t/// get args [$el, arg1]\n\t\t\t\t\tvar args = acf.arrayArgs( arguments );\n\n\t\t\t\t\t// modify args [pluralAction, fields, arg1]\n\t\t\t\t\targs.splice( 0, 1, pluralAction, fieldObjects );\n\t\t\t\t\tacf.doAction.apply( null, args );\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t// plural action\n\t\t\tvar pluralCallback = function (\n\t\t\t\tfieldObjects /*, arg1, arg2, etc*/\n\t\t\t) {\n\t\t\t\t/// get args [fields, arg1]\n\t\t\t\tvar args = acf.arrayArgs( arguments );\n\n\t\t\t\t// modify args [singleAction, fields, arg1]\n\t\t\t\targs.unshift( singleAction );\n\n\t\t\t\t// loop\n\t\t\t\tfieldObjects.map( function ( fieldObject ) {\n\t\t\t\t\t// modify args [singleAction, field, arg1]\n\t\t\t\t\targs[ 1 ] = fieldObject;\n\t\t\t\t\tacf.doAction.apply( null, args );\n\t\t\t\t} );\n\t\t\t};\n\n\t\t\t// single action\n\t\t\tvar singleCallback = function (\n\t\t\t\tfieldObject /*, arg1, arg2, etc*/\n\t\t\t) {\n\t\t\t\t/// get args [$field, arg1]\n\t\t\t\tvar args = acf.arrayArgs( arguments );\n\n\t\t\t\t// modify args [singleAction, $field, arg1]\n\t\t\t\targs.unshift( singleAction );\n\n\t\t\t\t// action variations (ready_field/type=image)\n\t\t\t\tvar variations = [ 'type', 'name', 'key' ];\n\t\t\t\tvariations.map( function ( variation ) {\n\t\t\t\t\targs[ 0 ] =\n\t\t\t\t\t\tsingleAction +\n\t\t\t\t\t\t'/' +\n\t\t\t\t\t\tvariation +\n\t\t\t\t\t\t'=' +\n\t\t\t\t\t\tfieldObject.get( variation );\n\t\t\t\t\tacf.doAction.apply( null, args );\n\t\t\t\t} );\n\n\t\t\t\t// modify args [arg1]\n\t\t\t\targs.splice( 0, 2 );\n\n\t\t\t\t// event\n\t\t\t\tfieldObject.trigger( singleEvent, args );\n\t\t\t};\n\n\t\t\t// add actions\n\t\t\tacf.addAction( action, callback, 5 );\n\t\t\tacf.addAction( pluralAction, pluralCallback, 5 );\n\t\t\tacf.addAction( singleAction, singleCallback, 5 );\n\t\t},\n\t} );\n\n\t/**\n\t * fieldManager\n\t *\n\t * description\n\t *\n\t * @date\t4/1/18\n\t * @since\t5.6.5\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tvar fieldManager = new acf.Model( {\n\t\tid: 'fieldManager',\n\n\t\tevents: {\n\t\t\t'submit #post': 'onSubmit',\n\t\t\t'mouseenter .acf-field-list': 'onHoverSortable',\n\t\t\t'click .add-field': 'onClickAdd',\n\t\t},\n\n\t\tactions: {\n\t\t\tremoved_field_object: 'onRemovedField',\n\t\t\tsortstop_field_object: 'onReorderField',\n\t\t\tdelete_field_object: 'onDeleteField',\n\t\t\tchange_field_object_type: 'onChangeFieldType',\n\t\t\tduplicate_field_object: 'onDuplicateField',\n\t\t},\n\n\t\tonSubmit: function ( e, $el ) {\n\t\t\t// vars\n\t\t\tvar fields = acf.getFieldObjects();\n\n\t\t\t// loop\n\t\t\tfields.map( function ( field ) {\n\t\t\t\tfield.submit();\n\t\t\t} );\n\t\t},\n\n\t\tsetFieldMenuOrder: function ( field ) {\n\t\t\tthis.renderFields( field.$el.parent() );\n\t\t},\n\n\t\tonHoverSortable: function ( e, $el ) {\n\t\t\t// bail early if already sortable\n\t\t\tif ( $el.hasClass( 'ui-sortable' ) ) return;\n\n\t\t\t// sortable\n\t\t\t$el.sortable( {\n\t\t\t\thelper: function( event, element ) {\n\t\t\t\t\t// https://core.trac.wordpress.org/ticket/16972#comment:22\n\t\t\t\t\treturn element.clone()\n\t\t\t\t\t\t.find( ':input' )\n\t\t\t\t\t\t\t.attr( 'name', function( i, currentName ) {\n\t\t\t\t\t\t\t\t\treturn 'sort_' + parseInt( Math.random() * 100000, 10 ).toString() + '_' + currentName;\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t.end();\n\t\t\t\t},\n\t\t\t\thandle: '.acf-sortable-handle',\n\t\t\t\tconnectWith: '.acf-field-list',\n\t\t\t\tstart: function ( e, ui ) {\n\t\t\t\t\tvar field = acf.getFieldObject( ui.item );\n\t\t\t\t\tui.placeholder.height( ui.item.height() );\n\t\t\t\t\tacf.doAction( 'sortstart_field_object', field, $el );\n\t\t\t\t},\n\t\t\t\tupdate: function ( e, ui ) {\n\t\t\t\t\tvar field = acf.getFieldObject( ui.item );\n\t\t\t\t\tacf.doAction( 'sortstop_field_object', field, $el );\n\t\t\t\t},\n\t\t\t} );\n\t\t},\n\n\t\tonRemovedField: function ( field, $list ) {\n\t\t\tthis.renderFields( $list );\n\t\t},\n\n\t\tonReorderField: function ( field, $list ) {\n\t\t\tfield.updateParent();\n\t\t\tthis.renderFields( $list );\n\t\t},\n\n\t\tonDeleteField: function ( field ) {\n\t\t\t// delete children\n\t\t\tfield.getFields().map( function ( child ) {\n\t\t\t\tchild.delete( { animate: false } );\n\t\t\t} );\n\t\t},\n\n\t\tonChangeFieldType: function ( field ) {\n\t\t\t// enable browse field modal button\n\t\t\tfield.$el.find( 'button.browse-fields' ).prop( 'disabled', false );\n\t\t},\n\n\t\tonDuplicateField: function ( field, newField ) {\n\t\t\t// check for children\n\t\t\tvar children = newField.getFields();\n\t\t\tif ( children.length ) {\n\t\t\t\t// loop\n\t\t\t\tchildren.map( function ( child ) {\n\t\t\t\t\t// wipe field\n\t\t\t\t\tchild.wipe();\n\n\t\t\t\t\t// if the child is open, re-fire the open method to ensure it's initialised correctly.\n\t\t\t\t\tif ( child.isOpen() ) {\n\t\t\t\t\t\tchild.open();\n\t\t\t\t\t}\n\n\t\t\t\t\t// update parent\n\t\t\t\t\tchild.updateParent();\n\t\t\t\t} );\n\n\t\t\t\t// action\n\t\t\t\tacf.doAction(\n\t\t\t\t\t'duplicate_field_objects',\n\t\t\t\t\tchildren,\n\t\t\t\t\tnewField,\n\t\t\t\t\tfield\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// set menu order\n\t\t\tthis.setFieldMenuOrder( newField );\n\t\t},\n\n\t\trenderFields: function ( $list ) {\n\t\t\t// vars\n\t\t\tvar fields = acf.getFieldObjects( {\n\t\t\t\tlist: $list,\n\t\t\t} );\n\n\t\t\t// no fields\n\t\t\tif ( ! fields.length ) {\n\t\t\t\t$list.addClass( '-empty' );\n\t\t\t\t$list\n\t\t\t\t\t.parents( '.acf-field-list-wrap' )\n\t\t\t\t\t.first()\n\t\t\t\t\t.addClass( '-empty' );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// has fields\n\t\t\t$list.removeClass( '-empty' );\n\t\t\t$list\n\t\t\t\t.parents( '.acf-field-list-wrap' )\n\t\t\t\t.first()\n\t\t\t\t.removeClass( '-empty' );\n\n\t\t\t// prop\n\t\t\tfields.map( function ( field, i ) {\n\t\t\t\tfield.prop( 'menu_order', i );\n\t\t\t} );\n\t\t},\n\n\t\tonClickAdd: function ( e, $el ) {\n\t\t\tlet $list;\n\n\t\t\tif ( $el.hasClass( 'add-first-field' ) ) {\n\t\t\t\t$list = $el.parents( '.acf-field-list' ).eq( 0 );\n\t\t\t} else if (\n\t\t\t\t$el.parent().hasClass( 'acf-headerbar-actions' ) ||\n\t\t\t\t$el.parent().hasClass( 'no-fields-message-inner' )\n\t\t\t) {\n\t\t\t\t$list = $( '.acf-field-list:first' );\n\t\t\t} else if ( $el.parent().hasClass( 'acf-sub-field-list-header' ) ) {\n\t\t\t\t$list = $el\n\t\t\t\t\t.parents( '.acf-input:first' )\n\t\t\t\t\t.find( '.acf-field-list:first' );\n\t\t\t} else {\n\t\t\t\t$list = $el\n\t\t\t\t\t.closest( '.acf-tfoot' )\n\t\t\t\t\t.siblings( '.acf-field-list' );\n\t\t\t}\n\n\t\t\tthis.addField( $list );\n\t\t},\n\n\t\taddField: function ( $list ) {\n\t\t\t// vars\n\t\t\tvar html = $( '#tmpl-acf-field' ).html();\n\t\t\tvar $el = $( html );\n\t\t\tvar prevId = $el.data( 'id' );\n\t\t\tvar newKey = acf.uniqid( 'field_' );\n\n\t\t\t// duplicate\n\t\t\tvar $newField = acf.duplicate( {\n\t\t\t\ttarget: $el,\n\t\t\t\tsearch: prevId,\n\t\t\t\treplace: newKey,\n\t\t\t\tappend: function ( $el, $el2 ) {\n\t\t\t\t\t$list.append( $el2 );\n\t\t\t\t},\n\t\t\t} );\n\n\t\t\t// get instance\n\t\t\tvar newField = acf.getFieldObject( $newField );\n\n\t\t\t// props\n\t\t\tnewField.prop( 'key', newKey );\n\t\t\tnewField.prop( 'ID', 0 );\n\t\t\tnewField.prop( 'label', '' );\n\t\t\tnewField.prop( 'name', '' );\n\n\t\t\t// attr\n\t\t\t$newField.attr( 'data-key', newKey );\n\t\t\t$newField.attr( 'data-id', newKey );\n\n\t\t\t// update parent prop\n\t\t\tnewField.updateParent();\n\n\t\t\t// focus type\n\t\t\tvar $type = newField.$input( 'type' );\n\t\t\tsetTimeout( function () {\n\t\t\t\tif ( $list.hasClass( 'acf-auto-add-field' ) ) {\n\t\t\t\t\t$list.removeClass( 'acf-auto-add-field' );\n\t\t\t\t} else {\n\t\t\t\t\t$type.trigger( 'focus' );\n\t\t\t\t}\n\t\t\t}, 251 );\n\n\t\t\t// open\n\t\t\tnewField.open();\n\n\t\t\t// set menu order\n\t\t\tthis.renderFields( $list );\n\n\t\t\t// action\n\t\t\tacf.doAction( 'add_field_object', newField );\n\t\t\tacf.doAction( 'append_field_object', newField );\n\t\t},\n\t} );\n} )( jQuery );\n","( function ( $, undefined ) {\n\t/**\n\t * locationManager\n\t *\n\t * Field group location rules functionality\n\t *\n\t * @date\t15/12/17\n\t * @since\t5.7.0\n\t *\n\t * @param\tvoid\n\t * @return\tvoid\n\t */\n\n\tvar locationManager = new acf.Model( {\n\t\tid: 'locationManager',\n\t\twait: 'ready',\n\n\t\tevents: {\n\t\t\t'click .add-location-rule': 'onClickAddRule',\n\t\t\t'click .add-location-group': 'onClickAddGroup',\n\t\t\t'click .remove-location-rule': 'onClickRemoveRule',\n\t\t\t'change .refresh-location-rule': 'onChangeRemoveRule',\n\t\t},\n\n\t\tinitialize: function () {\n\t\t\tthis.$el = $( '#acf-field-group-options' );\n\t\t\tthis.addProLocations();\n\t\t\tthis.updateGroupsClass();\n\t\t},\n\n\t\taddProLocations: function () {\n\t\t\t// Make sure we're only running this on free version.\n\t\t\tif ( acf.get( 'is_pro' ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Loop over each pro field type and append it to the select.\n\t\t\tconst PROLocationTypes = acf.get( 'PROLocationTypes' );\n\t\t\tif ( typeof PROLocationTypes !== 'object' ) return;\n\n\t\t\tconst $formsGroup = this.$el\n\t\t\t\t.find( 'select.refresh-location-rule' )\n\t\t\t\t.find( 'optgroup[label=\"Forms\"]' )\n\n\t\t\tfor ( const [ key, name ] of Object.entries( PROLocationTypes ) ) {\n\t\t\t\t$formsGroup.append(\n\t\t\t\t\t''\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\n\t\tonClickAddRule: function ( e, $el ) {\n\t\t\tthis.addRule( $el.closest( 'tr' ) );\n\t\t},\n\n\t\tonClickRemoveRule: function ( e, $el ) {\n\t\t\tthis.removeRule( $el.closest( 'tr' ) );\n\t\t},\n\n\t\tonChangeRemoveRule: function ( e, $el ) {\n\t\t\tthis.changeRule( $el.closest( 'tr' ) );\n\t\t},\n\n\t\tonClickAddGroup: function ( e, $el ) {\n\t\t\tthis.addGroup();\n\t\t},\n\n\t\taddRule: function ( $tr ) {\n\t\t\tacf.duplicate( $tr );\n\t\t\tthis.updateGroupsClass();\n\t\t},\n\n\t\tremoveRule: function ( $tr ) {\n\t\t\tif ( $tr.siblings( 'tr' ).length == 0 ) {\n\t\t\t\t$tr.closest( '.rule-group' ).remove();\n\t\t\t} else {\n\t\t\t\t$tr.remove();\n\t\t\t}\n\n\t\t\t// Update h4\n\t\t\tvar $group = this.$( '.rule-group:first' );\n\t\t\t$group.find( 'h4' ).text( acf.__( 'Show this field group if' ) );\n\n\t\t\tthis.updateGroupsClass();\n\t\t},\n\n\t\tchangeRule: function ( $rule ) {\n\t\t\t// vars\n\t\t\tvar $group = $rule.closest( '.rule-group' );\n\t\t\tvar prefix = $rule\n\t\t\t\t.find( 'td.param select' )\n\t\t\t\t.attr( 'name' )\n\t\t\t\t.replace( '[param]', '' );\n\n\t\t\t// ajaxdata\n\t\t\tvar ajaxdata = {};\n\t\t\tajaxdata.action = 'acf/field_group/render_location_rule';\n\t\t\tajaxdata.rule = acf.serialize( $rule, prefix );\n\t\t\tajaxdata.rule.id = $rule.data( 'id' );\n\t\t\tajaxdata.rule.group = $group.data( 'id' );\n\n\t\t\t// temp disable\n\t\t\tacf.disable( $rule.find( 'td.value' ) );\n\n\t\t\t// ajax\n\t\t\t$.ajax( {\n\t\t\t\turl: acf.get( 'ajaxurl' ),\n\t\t\t\tdata: acf.prepareForAjax( ajaxdata ),\n\t\t\t\ttype: 'post',\n\t\t\t\tdataType: 'html',\n\t\t\t\tsuccess: function ( html ) {\n\t\t\t\t\tif ( ! html ) return;\n\t\t\t\t\t$rule.replaceWith( html );\n\t\t\t\t},\n\t\t\t} );\n\t\t},\n\n\t\taddGroup: function () {\n\t\t\t// vars\n\t\t\tvar $group = this.$( '.rule-group:last' );\n\n\t\t\t// duplicate\n\t\t\t$group2 = acf.duplicate( $group );\n\n\t\t\t// update h4\n\t\t\t$group2.find( 'h4' ).text( acf.__( 'or' ) );\n\n\t\t\t// remove all tr's except the first one\n\t\t\t$group2.find( 'tr' ).not( ':first' ).remove();\n\n\t\t\t// update the groups class\n\t\t\tthis.updateGroupsClass();\n\t\t},\n\n\t\tupdateGroupsClass: function () {\n\t\t\tvar $group = this.$( '.rule-group:last' );\n\n\t\t\tvar $ruleGroups = $group.closest( '.rule-groups' );\n\n\t\t\tvar rows_count = $ruleGroups.find( '.acf-table tr' ).length;\n\n\t\t\tif ( rows_count > 1 ) {\n\t\t\t\t$ruleGroups.addClass( 'rule-groups-multiple' );\n\t\t\t} else {\n\t\t\t\t$ruleGroups.removeClass( 'rule-groups-multiple' );\n\t\t\t}\n\t\t},\n\t} );\n} )( jQuery );\n","( function ( $, undefined ) {\n\t/**\n\t * mid\n\t *\n\t * Calculates the model ID for a field type\n\t *\n\t * @date\t15/12/17\n\t * @since\t5.6.5\n\t *\n\t * @param\tstring type\n\t * @return\tstring\n\t */\n\n\tvar modelId = function ( type ) {\n\t\treturn acf.strPascalCase( type || '' ) + 'FieldSetting';\n\t};\n\n\t/**\n\t * registerFieldType\n\t *\n\t * description\n\t *\n\t * @date\t14/12/17\n\t * @since\t5.6.5\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tacf.registerFieldSetting = function ( model ) {\n\t\tvar proto = model.prototype;\n\t\tvar mid = modelId( proto.type + ' ' + proto.name );\n\t\tthis.models[ mid ] = model;\n\t};\n\n\t/**\n\t * newField\n\t *\n\t * description\n\t *\n\t * @date\t14/12/17\n\t * @since\t5.6.5\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tacf.newFieldSetting = function ( field ) {\n\t\t// vars\n\t\tvar type = field.get( 'setting' ) || '';\n\t\tvar name = field.get( 'name' ) || '';\n\t\tvar mid = modelId( type + ' ' + name );\n\t\tvar model = acf.models[ mid ] || null;\n\n\t\t// bail early if no setting\n\t\tif ( model === null ) return false;\n\n\t\t// instantiate\n\t\tvar setting = new model( field );\n\n\t\t// return\n\t\treturn setting;\n\t};\n\n\t/**\n\t * acf.getFieldSetting\n\t *\n\t * description\n\t *\n\t * @date\t19/4/18\n\t * @since\t5.6.9\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tacf.getFieldSetting = function ( field ) {\n\t\t// allow jQuery\n\t\tif ( field instanceof jQuery ) {\n\t\t\tfield = acf.getField( field );\n\t\t}\n\n\t\t// return\n\t\treturn field.setting;\n\t};\n\n\t/**\n\t * settingsManager\n\t *\n\t * @since\t5.6.5\n\t *\n\t * @param\tobject The object containing the extended variables and methods.\n\t * @return\tvoid\n\t */\n\tvar settingsManager = new acf.Model( {\n\t\tactions: {\n\t\t\tnew_field: 'onNewField',\n\t\t},\n\t\tonNewField: function ( field ) {\n\t\t\tfield.setting = acf.newFieldSetting( field );\n\t\t},\n\t} );\n\n\t/**\n\t * acf.FieldSetting\n\t *\n\t * @since\t5.6.5\n\t *\n\t * @param\tobject The object containing the extended variables and methods.\n\t * @return\tvoid\n\t */\n\tacf.FieldSetting = acf.Model.extend( {\n\t\tfield: false,\n\t\ttype: '',\n\t\tname: '',\n\t\twait: 'ready',\n\t\teventScope: '.acf-field',\n\n\t\tevents: {\n\t\t\tchange: 'render',\n\t\t},\n\n\t\tsetup: function ( field ) {\n\t\t\t// vars\n\t\t\tvar $field = field.$el;\n\n\t\t\t// set props\n\t\t\tthis.$el = $field;\n\t\t\tthis.field = field;\n\t\t\tthis.$fieldObject = $field.closest( '.acf-field-object' );\n\t\t\tthis.fieldObject = acf.getFieldObject( this.$fieldObject );\n\n\t\t\t// inherit data\n\t\t\t$.extend( this.data, field.data );\n\t\t},\n\n\t\tinitialize: function () {\n\t\t\tthis.render();\n\t\t},\n\n\t\trender: function () {\n\t\t\t// do nothing\n\t\t},\n\t} );\n\n\t/**\n\t * Accordion and Tab Endpoint Settings\n\t *\n\t * The 'endpoint' setting on accordions and tabs requires an additional class on the\n\t * field object row when enabled.\n\t *\n\t * @since\t6.0.0\n\t *\n\t * @param\tobject The object containing the extended variables and methods.\n\t * @return\tvoid\n\t */\n\tvar EndpointFieldSetting = acf.FieldSetting.extend( {\n\t\ttype: '',\n\t\tname: '',\n\t\trender: function () {\n\t\t\tvar $endpoint_setting = this.fieldObject.$setting( 'endpoint' );\n\t\t\tvar $endpoint_field = $endpoint_setting.find(\n\t\t\t\t'input[type=\"checkbox\"]:first'\n\t\t\t);\n\t\t\tif ( $endpoint_field.is( ':checked' ) ) {\n\t\t\t\tthis.fieldObject.$el.addClass( 'acf-field-is-endpoint' );\n\t\t\t} else {\n\t\t\t\tthis.fieldObject.$el.removeClass( 'acf-field-is-endpoint' );\n\t\t\t}\n\t\t},\n\t} );\n\n\tvar AccordionEndpointFieldSetting = EndpointFieldSetting.extend( {\n\t\ttype: 'accordion',\n\t\tname: 'endpoint',\n\t} );\n\n\tvar TabEndpointFieldSetting = EndpointFieldSetting.extend( {\n\t\ttype: 'tab',\n\t\tname: 'endpoint',\n\t} );\n\n\tacf.registerFieldSetting( AccordionEndpointFieldSetting );\n\tacf.registerFieldSetting( TabEndpointFieldSetting );\n\n\t/**\n\t * Date Picker\n\t *\n\t * This field type requires some extra logic for its settings\n\t *\n\t * @since\t5.0.0\n\t *\n\t * @param\tobject The object containing the extended variables and methods.\n\t * @return\tvoid\n\t */\n\tvar DisplayFormatFieldSetting = acf.FieldSetting.extend( {\n\t\ttype: '',\n\t\tname: '',\n\t\trender: function () {\n\t\t\tvar $input = this.$( 'input[type=\"radio\"]:checked' );\n\t\t\tif ( $input.val() != 'other' ) {\n\t\t\t\tthis.$( 'input[type=\"text\"]' ).val( $input.val() );\n\t\t\t}\n\t\t},\n\t} );\n\n\tvar DatePickerDisplayFormatFieldSetting = DisplayFormatFieldSetting.extend(\n\t\t{\n\t\t\ttype: 'date_picker',\n\t\t\tname: 'display_format',\n\t\t}\n\t);\n\n\tvar DatePickerReturnFormatFieldSetting = DisplayFormatFieldSetting.extend( {\n\t\ttype: 'date_picker',\n\t\tname: 'return_format',\n\t} );\n\n\tacf.registerFieldSetting( DatePickerDisplayFormatFieldSetting );\n\tacf.registerFieldSetting( DatePickerReturnFormatFieldSetting );\n\n\t/**\n\t * Date Time Picker\n\t *\n\t * This field type requires some extra logic for its settings\n\t *\n\t * @since\t5.0.0\n\t *\n\t * @param\tobject The object containing the extended variables and methods.\n\t * @return\tvoid\n\t */\n\tvar DateTimePickerDisplayFormatFieldSetting =\n\t\tDisplayFormatFieldSetting.extend( {\n\t\t\ttype: 'date_time_picker',\n\t\t\tname: 'display_format',\n\t\t} );\n\n\tvar DateTimePickerReturnFormatFieldSetting =\n\t\tDisplayFormatFieldSetting.extend( {\n\t\t\ttype: 'date_time_picker',\n\t\t\tname: 'return_format',\n\t\t} );\n\n\tacf.registerFieldSetting( DateTimePickerDisplayFormatFieldSetting );\n\tacf.registerFieldSetting( DateTimePickerReturnFormatFieldSetting );\n\n\t/**\n\t * Time Picker\n\t *\n\t * This field type requires some extra logic for its settings\n\t *\n\t * @since\t5.0.0\n\t *\n\t * @param\tobject The object containing the extended variables and methods.\n\t * @return\tvoid\n\t */\n\tvar TimePickerDisplayFormatFieldSetting = DisplayFormatFieldSetting.extend(\n\t\t{\n\t\t\ttype: 'time_picker',\n\t\t\tname: 'display_format',\n\t\t}\n\t);\n\n\tvar TimePickerReturnFormatFieldSetting = DisplayFormatFieldSetting.extend( {\n\t\ttype: 'time_picker',\n\t\tname: 'return_format',\n\t} );\n\n\tacf.registerFieldSetting( TimePickerDisplayFormatFieldSetting );\n\tacf.registerFieldSetting( TimePickerReturnFormatFieldSetting );\n\n\t/**\n\t * Color Picker Settings.\n\t *\n\t * @date\t16/12/20\n\t * @since\t5.9.4\n\t *\n\t * @param\tobject The object containing the extended variables and methods.\n\t * @return\tvoid\n\t */\n\tvar ColorPickerReturnFormat = acf.FieldSetting.extend( {\n\t\ttype: 'color_picker',\n\t\tname: 'enable_opacity',\n\t\trender: function () {\n\t\t\tvar $return_format_setting =\n\t\t\t\tthis.fieldObject.$setting( 'return_format' );\n\t\t\tvar $default_value_setting =\n\t\t\t\tthis.fieldObject.$setting( 'default_value' );\n\t\t\tvar $labelText = $return_format_setting\n\t\t\t\t.find( 'input[type=\"radio\"][value=\"string\"]' )\n\t\t\t\t.parent( 'label' )\n\t\t\t\t.contents()\n\t\t\t\t.last();\n\t\t\tvar $defaultPlaceholder =\n\t\t\t\t$default_value_setting.find( 'input[type=\"text\"]' );\n\t\t\tvar l10n = acf.get( 'colorPickerL10n' );\n\n\t\t\tif ( this.field.val() ) {\n\t\t\t\t$labelText.replaceWith( l10n.rgba_string );\n\t\t\t\t$defaultPlaceholder.attr(\n\t\t\t\t\t'placeholder',\n\t\t\t\t\t'rgba(255,255,255,0.8)'\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\t$labelText.replaceWith( l10n.hex_string );\n\t\t\t\t$defaultPlaceholder.attr( 'placeholder', '#FFFFFF' );\n\t\t\t}\n\t\t},\n\t} );\n\tacf.registerFieldSetting( ColorPickerReturnFormat );\n} )( jQuery );\n","( function ( $, undefined ) {\n\t/**\n\t * fieldGroupManager\n\t *\n\t * Generic field group functionality\n\t *\n\t * @date\t15/12/17\n\t * @since\t5.7.0\n\t *\n\t * @param\tvoid\n\t * @return\tvoid\n\t */\n\n\tvar fieldGroupManager = new acf.Model( {\n\t\tid: 'fieldGroupManager',\n\n\t\tevents: {\n\t\t\t'submit #post': 'onSubmit',\n\t\t\t'click a[href=\"#\"]': 'onClick',\n\t\t\t'click .acf-delete-field-group': 'onClickDeleteFieldGroup',\n\t\t\t'blur input#title': 'validateTitle',\n\t\t\t'input input#title': 'validateTitle',\n\t\t},\n\n\t\tfilters: {\n\t\t\tfind_fields_args: 'filterFindFieldArgs',\n\t\t\tfind_fields_selector: 'filterFindFieldsSelector',\n\t\t},\n\n\t\tinitialize: function () {\n\t\t\tacf.addAction( 'prepare', this.maybeInitNewFieldGroup );\n\t\t},\n\n\t\tmaybeInitNewFieldGroup: function () {\n\t\t\tlet $field_list_wrapper = $(\n\t\t\t\t'#acf-field-group-fields > .inside > .acf-field-list-wrap.acf-auto-add-field'\n\t\t\t);\n\n\t\t\tif ( $field_list_wrapper.length ) {\n\t\t\t\t$( '.acf-headerbar-actions .add-field' ).trigger( 'click' );\n\t\t\t\t$( '.acf-title-wrap #title' ).trigger( 'focus' );\n\t\t\t}\n\t\t},\n\n\t\tonSubmit: function ( e, $el ) {\n\t\t\t// vars\n\t\t\tvar $title = $( '.acf-title-wrap #title' );\n\n\t\t\t// empty\n\t\t\tif ( ! $title.val() ) {\n\t\t\t\t// prevent default\n\t\t\t\te.preventDefault();\n\n\t\t\t\t// unlock form\n\t\t\t\tacf.unlockForm( $el );\n\n\t\t\t\t// focus\n\t\t\t\t$title.trigger( 'focus' );\n\t\t\t}\n\t\t},\n\n\t\tonClick: function ( e ) {\n\t\t\te.preventDefault();\n\t\t},\n\n\t\tonClickDeleteFieldGroup: function ( e, $el ) {\n\t\t\te.preventDefault();\n\t\t\t$el.addClass( '-hover' );\n\n\t\t\t// Add confirmation tooltip.\n\t\t\tacf.newTooltip( {\n\t\t\t\tconfirm: true,\n\t\t\t\ttarget: $el,\n\t\t\t\tcontext: this,\n\t\t\t\ttext: acf.__( 'Move field group to trash?' ),\n\t\t\t\tconfirm: function () {\n\t\t\t\t\twindow.location.href = $el.attr( 'href' );\n\t\t\t\t},\n\t\t\t\tcancel: function () {\n\t\t\t\t\t$el.removeClass( '-hover' );\n\t\t\t\t},\n\t\t\t} );\n\t\t},\n\n\t\tvalidateTitle: function ( e, $el ) {\n\t\t\tlet $submitButton = $( '.acf-publish' );\n\n\t\t\tif ( ! $el.val() ) {\n\t\t\t\t$el.addClass( 'acf-input-error' );\n\t\t\t\t$submitButton.addClass( 'disabled' );\n\t\t\t\t$( '.acf-publish' ).addClass( 'disabled' );\n\t\t\t} else {\n\t\t\t\t$el.removeClass( 'acf-input-error' );\n\t\t\t\t$submitButton.removeClass( 'disabled' );\n\t\t\t\t$( '.acf-publish' ).removeClass( 'disabled' );\n\t\t\t}\n\t\t},\n\n\t\tfilterFindFieldArgs: function ( args ) {\n\t\t\targs.visible = true;\n\n\t\t\tif (\n\t\t\t\targs.parent &&\n\t\t\t\t( args.parent.hasClass( 'acf-field-object' ) ||\n\t\t\t\t\targs.parent.hasClass( 'acf-browse-fields-modal-wrap' ) ||\n\t\t\t\t\targs.parent.parents( '.acf-field-object' ).length )\n\t\t\t) {\n\t\t\t\targs.visible = false;\n\t\t\t\targs.excludeSubFields = true;\n\t\t\t}\n\n\t\t\t// If the field has any open subfields, don't exclude subfields as they're already being displayed.\n\t\t\tif (\n\t\t\t\targs.parent &&\n\t\t\t\targs.parent.find( '.acf-field-object.open' ).length\n\t\t\t) {\n\t\t\t\targs.excludeSubFields = false;\n\t\t\t}\n\n\t\t\treturn args;\n\t\t},\n\n\t\tfilterFindFieldsSelector: function ( selector ) {\n\t\t\treturn selector + ', .acf-field-acf-field-group-settings-tabs';\n\t\t},\n\t} );\n\n\t/**\n\t * screenOptionsManager\n\t *\n\t * Screen options functionality\n\t *\n\t * @date\t15/12/17\n\t * @since\t5.7.0\n\t *\n\t * @param\tvoid\n\t * @return\tvoid\n\t */\n\n\tvar screenOptionsManager = new acf.Model( {\n\t\tid: 'screenOptionsManager',\n\t\twait: 'prepare',\n\n\t\tevents: {\n\t\t\t'change #acf-field-key-hide': 'onFieldKeysChange',\n\t\t\t'change #acf-field-settings-tabs': 'onFieldSettingsTabsChange',\n\t\t\t'change [name=\"screen_columns\"]': 'render',\n\t\t},\n\n\t\tinitialize: function () {\n\t\t\t// vars\n\t\t\tvar $div = $( '#adv-settings' );\n\t\t\tvar $append = $( '#acf-append-show-on-screen' );\n\n\t\t\t// append\n\t\t\t$div.find( '.metabox-prefs' ).append( $append.html() );\n\t\t\t$div.find( '.metabox-prefs br' ).remove();\n\n\t\t\t// clean up\n\t\t\t$append.remove();\n\n\t\t\t// initialize\n\t\t\tthis.$el = $( '#screen-options-wrap' );\n\n\t\t\t// render\n\t\t\tthis.render();\n\t\t},\n\n\t\tisFieldKeysChecked: function () {\n\t\t\treturn this.$el.find( '#acf-field-key-hide' ).prop( 'checked' );\n\t\t},\n\n\t\tisFieldSettingsTabsChecked: function () {\n\t\t\tconst $input = this.$el.find( '#acf-field-settings-tabs' );\n\n\t\t\t// Screen option is hidden by filter.\n\t\t\tif ( ! $input.length ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn $input.prop( 'checked' );\n\t\t},\n\n\t\tgetSelectedColumnCount: function () {\n\t\t\treturn this.$el\n\t\t\t\t.find( 'input[name=\"screen_columns\"]:checked' )\n\t\t\t\t.val();\n\t\t},\n\n\t\tonFieldKeysChange: function ( e, $el ) {\n\t\t\tvar val = this.isFieldKeysChecked() ? 1 : 0;\n\t\t\tacf.updateUserSetting( 'show_field_keys', val );\n\t\t\tthis.render();\n\t\t},\n\n\t\tonFieldSettingsTabsChange: function () {\n\t\t\tconst val = this.isFieldSettingsTabsChecked() ? 1 : 0;\n\t\t\tacf.updateUserSetting( 'show_field_settings_tabs', val );\n\t\t\tthis.render();\n\t\t},\n\n\t\trender: function () {\n\t\t\tif ( this.isFieldKeysChecked() ) {\n\t\t\t\t$( '#acf-field-group-fields' ).addClass( 'show-field-keys' );\n\t\t\t} else {\n\t\t\t\t$( '#acf-field-group-fields' ).removeClass( 'show-field-keys' );\n\t\t\t}\n\n\t\t\tif ( ! this.isFieldSettingsTabsChecked() ) {\n\t\t\t\t$( '#acf-field-group-fields' ).addClass( 'hide-tabs' );\n\t\t\t\t$( '.acf-field-settings-main' )\n\t\t\t\t\t.removeClass( 'acf-hidden' )\n\t\t\t\t\t.prop( 'hidden', false );\n\t\t\t} else {\n\t\t\t\t$( '#acf-field-group-fields' ).removeClass( 'hide-tabs' );\n\n\t\t\t\t$( '.acf-field-object' ).each( function () {\n\t\t\t\t\tconst tabFields = acf.getFields( {\n\t\t\t\t\t\ttype: 'tab',\n\t\t\t\t\t\tparent: $( this ),\n\t\t\t\t\t\texcludeSubFields: true,\n\t\t\t\t\t\tlimit: 1,\n\t\t\t\t\t} );\n\n\t\t\t\t\tif ( tabFields.length ) {\n\t\t\t\t\t\ttabFields[ 0 ].tabs.set( 'initialized', false );\n\t\t\t\t\t}\n\n\t\t\t\t\tacf.doAction( 'show', $( this ) );\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tif ( this.getSelectedColumnCount() == 1 ) {\n\t\t\t\t$( 'body' ).removeClass( 'columns-2' );\n\t\t\t\t$( 'body' ).addClass( 'columns-1' );\n\t\t\t} else {\n\t\t\t\t$( 'body' ).removeClass( 'columns-1' );\n\t\t\t\t$( 'body' ).addClass( 'columns-2' );\n\t\t\t}\n\t\t},\n\t} );\n\n\t/**\n\t * appendFieldManager\n\t *\n\t * Appends fields together\n\t *\n\t * @date\t15/12/17\n\t * @since\t5.7.0\n\t *\n\t * @param\tvoid\n\t * @return\tvoid\n\t */\n\n\tvar appendFieldManager = new acf.Model( {\n\t\tactions: {\n\t\t\tnew_field: 'onNewField',\n\t\t},\n\n\t\tonNewField: function ( field ) {\n\t\t\t// bail early if not append\n\t\t\tif ( ! field.has( 'append' ) ) return;\n\n\t\t\t// vars\n\t\t\tvar append = field.get( 'append' );\n\t\t\tvar $sibling = field.$el\n\t\t\t\t.siblings( '[data-name=\"' + append + '\"]' )\n\t\t\t\t.first();\n\n\t\t\t// bail early if no sibling\n\t\t\tif ( ! $sibling.length ) return;\n\n\t\t\t// ul\n\t\t\tvar $div = $sibling.children( '.acf-input' );\n\t\t\tvar $ul = $div.children( 'ul' );\n\n\t\t\t// create ul\n\t\t\tif ( ! $ul.length ) {\n\t\t\t\t$div.wrapInner( '' );\n\t\t\t\t$ul = $div.children( 'ul' );\n\t\t\t}\n\n\t\t\t// li\n\t\t\tvar html = field.$( '.acf-input' ).html();\n\t\t\tvar $li = $( '
  • ' + html + '
  • ' );\n\t\t\t$ul.append( $li );\n\t\t\t$ul.attr( 'data-cols', $ul.children().length );\n\n\t\t\t// clean up\n\t\t\tfield.remove();\n\t\t},\n\t} );\n} )( jQuery );\n","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import './_field-group.js';\nimport './_field-group-field.js';\nimport './_field-group-settings.js';\nimport './_field-group-conditions.js';\nimport './_field-group-fields.js';\nimport './_field-group-locations.js';\nimport './_field-group-compatibility.js';\nimport './_browse-fields-modal.js';\n"],"names":["$","undefined","acf","browseFieldsModal","data","openedBy","currentFieldType","popularFieldTypes","events","setup","props","extend","$el","tmpl","render","initialize","open","lockFocusToModal","find","focus","doAction","html","getFieldTypes","category","search","fieldTypes","get","Object","values","_objectSpread","filter","fieldType","includes","name","pro","label","toLowerCase","labelParts","split","match","startsWith","length","forEach","part","$tabs","self","each","append","getFieldTypeHTML","initializeFieldLabel","initializeFieldType","onChangeFieldType","iconName","replaceAll","decodeFieldTypeURL","url","renderFieldTypeDesc","fieldTypeInfo","fieldTypeFilter","args","parseArgs","description","doc_url","tutorial_url","preview_image","text","attr","show","hide","parent","isPro","$upgateToProButton","$upgradeToUnlockButton","_fieldObject$data","fieldObject","type","set","isFieldTypePopular","selectedFieldType","x","uppercaseCategory","toUpperCase","slice","searchTabElement","setTimeout","click","labelText","$fieldLabel","val","updateFieldObjectFieldLabel","trigger","removeClass","addClass","onSearchFieldTypes","e","$modal","inputVal","searchString","resultsHtml","matches","trim","onClickBrowsePopular","first","onClickSelectField","$fieldTypeSelect","close","onClickFieldType","$fieldType","currentTarget","onClickClose","onPressEscapeClose","key","returnFocusToOrigin","remove","models","Modal","newBrowseFieldsModal","window","jQuery","_acf","getCompatibility","field_group","save_field","$field","getFieldObject","save","delete_field","animate","delete","update_field_meta","value","prop","delete_field_meta","field_object","model","o","$settings","tag","tags","splice","join","selector","str_replace","_add_action","callback","add_action","apply","arguments","_add_filter","add_filter","_add_event","event","substr","indexOf","context","document","on","closest","_set_$field","setting","actionManager","Model","actions","open_field_object","close_field_object","add_field_object","duplicate_field_object","delete_field_object","change_field_object_type","change_field_object_label","change_field_object_name","change_field_object_parent","sortstop_field_object","onOpenFieldObject","field","onCloseFieldObject","onAddFieldObject","onDuplicateFieldObject","onDeleteFieldObject","onChangeFieldObjectType","onChangeFieldObjectLabel","onChangeFieldObjectName","onChangeFieldObjectParent","ConditionalLogicFieldSetting","FieldSetting","$rule","scope","ruleData","$input","$td","$toggle","$control","$groups","$rules","$tabLabel","$div","enable","disable","renderRules","renderRule","renderField","renderOperator","renderValue","choices","validFieldTypes","cid","$select","getFieldObjects","map","choice","id","getKey","getLabel","__","disabled","conditionTypes","getConditionTypes","getType","indents","getParents","repeat","push","renderSelect","findFieldObject","prototype","operator","conditionType","Array","$newSelect","detach","onChangeToggle","onClickAddGroup","addGroup","$group","$group2","duplicate","not","onFocusField","onChangeField","onChangeOperator","onClickAdd","onClickRemove","siblings","registerFieldSetting","conditionalLogicHelper","duplicate_field_objects","onDuplicateFieldObjects","children","newField","prevField","$selects","child","add","FieldObject","eventScope","fieldTypeSelect2","change","changed","inherit","getInputId","$meta","$handle","$setting","getParent","limit","pop","getFields","getInputName","newInput","inputId","inputName","getProp","has","setProp","prevVal","keys","getName","getTypeLabel","types","checkCopyable","makeCopyable","navigator","clipboard","initializeFieldTypeSelect2","hasClass","fn","select2","amd","require","err","console","warn","newSelect2","ajax","multiple","allowNull","suppressFilters","dropdownCssClass","templateResult","selection","loading","element","nodeName","$selection","escHtml","templateSelection","target","parents","onKeyDownSelect","addProFields","PROFieldTypes","$layoutGroup","$contentGroup","entries","$useGroup","menu_order","required","parseInt","strSlugify","refresh","isOpen","onClickCopy","stopPropagation","writeText","then","onClickEdit","$target","onChangeSettingsTab","onFocusEdit","$rowOptions","onBlurEdit","focusDelayMilliseconds","$rowOptionsBlurElement","$rowOptionsFocusElement","activeElement","is","slideDown","which","slideUp","serialize","submit","onChange","onChanged","onChangeLabel","applyFilters","strSanitize","onChangeName","alert","onChangeRequired","newVal","removeAnimate","onClickDelete","shiftKey","tooltip","newTooltip","confirmRemove","confirm","cancel","$list","$fields","findFieldObjects","sibling","endHeight","complete","newKey","uniqid","$newField","replace","end","copy","isNumeric","i","$label","wipe","prevId","prevKey","rename","move","hasChanged","popup","step1","newPopup","title","width","ajaxData","action","field_id","prepareForAjax","dataType","success","step2","content","step3","preventDefault","startButtonLoading","field_group_id","step4","wp","a11y","speak","browseFields","modal","onChangeType","changeTimeout","clearTimeout","changeType","newType","prevType","prevClass","newClass","abort","$oldSettings","tab","$tabSettings","removeData","$newSettings","showFieldTypeSettings","$loading","before","prefix","xhr","response","isAjaxSuccess","settings","tabs","$tab","tabContent","prepend","updateParent","ID","list","newFieldObject","fields","eventManager","priority","addFieldActions","pluralAction","singleAction","singleEvent","fieldObjects","arrayArgs","pluralCallback","unshift","singleCallback","variations","variation","addAction","fieldManager","removed_field_object","onSubmit","setFieldMenuOrder","renderFields","onHoverSortable","sortable","helper","clone","currentName","Math","random","toString","handle","connectWith","start","ui","item","placeholder","height","update","onRemovedField","onReorderField","onDeleteField","onDuplicateField","eq","addField","$el2","$type","locationManager","wait","addProLocations","updateGroupsClass","PROLocationTypes","$formsGroup","onClickAddRule","addRule","onClickRemoveRule","removeRule","onChangeRemoveRule","changeRule","$tr","ajaxdata","rule","group","replaceWith","$ruleGroups","rows_count","modelId","strPascalCase","proto","mid","newFieldSetting","getFieldSetting","getField","settingsManager","new_field","onNewField","$fieldObject","EndpointFieldSetting","$endpoint_setting","$endpoint_field","AccordionEndpointFieldSetting","TabEndpointFieldSetting","DisplayFormatFieldSetting","DatePickerDisplayFormatFieldSetting","DatePickerReturnFormatFieldSetting","DateTimePickerDisplayFormatFieldSetting","DateTimePickerReturnFormatFieldSetting","TimePickerDisplayFormatFieldSetting","TimePickerReturnFormatFieldSetting","ColorPickerReturnFormat","$return_format_setting","$default_value_setting","$labelText","contents","last","$defaultPlaceholder","l10n","rgba_string","hex_string","fieldGroupManager","filters","find_fields_args","find_fields_selector","maybeInitNewFieldGroup","$field_list_wrapper","$title","unlockForm","onClick","onClickDeleteFieldGroup","location","href","validateTitle","$submitButton","filterFindFieldArgs","visible","excludeSubFields","filterFindFieldsSelector","screenOptionsManager","$append","isFieldKeysChecked","isFieldSettingsTabsChecked","getSelectedColumnCount","onFieldKeysChange","updateUserSetting","onFieldSettingsTabsChange","tabFields","appendFieldManager","$sibling","$ul","wrapInner","$li"],"sourceRoot":""} \ No newline at end of file diff --git a/assets/build/js/acf-field-group.min.js b/assets/build/js/acf-field-group.min.js new file mode 100644 index 0000000..fd4750b --- /dev/null +++ b/assets/build/js/acf-field-group.min.js @@ -0,0 +1 @@ +!function(){var e={2961:function(){!function(e,t){var i=acf.getCompatibility(acf);i.field_group={save_field:function(e,i){i=i!==t?i:"settings",acf.getFieldObject(e).save(i)},delete_field:function(e,i){i=i===t||i,acf.getFieldObject(e).delete({animate:i})},update_field_meta:function(e,t,i){acf.getFieldObject(e).prop(t,i)},delete_field_meta:function(e,t){acf.getFieldObject(e).prop(t,null)}},i.field_group.field_object=acf.model.extend({type:"",o:{},$field:null,$settings:null,tag:function(e){var t=this.type,i=e.split("_");return i.splice(1,0,"field"),e=i.join("_"),t&&(e+="/type="+t),e},selector:function(){var e=".acf-field-object",t=this.type;return t&&(e+="-"+t,e=acf.str_replace("_","-",e)),e},_add_action:function(e,t){var i=this;acf.add_action(this.tag(e),(function(e){i.set("$field",e),i[t].apply(i,arguments)}))},_add_filter:function(e,t){var i=this;acf.add_filter(this.tag(e),(function(e){i.set("$field",e),i[t].apply(i,arguments)}))},_add_event:function(t,i){var n=this,a=t.substr(0,t.indexOf(" ")),l=t.substr(t.indexOf(" ")+1),o=this.selector();e(document).on(a,o+" "+l,(function(t){t.$el=e(this),t.$field=t.$el.closest(".acf-field-object"),n.set("$field",t.$field),n[i].apply(n,[t])}))},_set_$field:function(){this.o=this.$field.data(),this.$settings=this.$field.find("> .settings > table > tbody"),this.focus()},focus:function(){},setting:function(e){return this.$settings.find("> .acf-field-setting-"+e)}}),new acf.Model({actions:{open_field_object:"onOpenFieldObject",close_field_object:"onCloseFieldObject",add_field_object:"onAddFieldObject",duplicate_field_object:"onDuplicateFieldObject",delete_field_object:"onDeleteFieldObject",change_field_object_type:"onChangeFieldObjectType",change_field_object_label:"onChangeFieldObjectLabel",change_field_object_name:"onChangeFieldObjectName",change_field_object_parent:"onChangeFieldObjectParent",sortstop_field_object:"onChangeFieldObjectParent"},onOpenFieldObject:function(e){acf.doAction("open_field",e.$el),acf.doAction("open_field/type="+e.get("type"),e.$el),acf.doAction("render_field_settings",e.$el),acf.doAction("render_field_settings/type="+e.get("type"),e.$el)},onCloseFieldObject:function(e){acf.doAction("close_field",e.$el),acf.doAction("close_field/type="+e.get("type"),e.$el)},onAddFieldObject:function(e){acf.doAction("add_field",e.$el),acf.doAction("add_field/type="+e.get("type"),e.$el)},onDuplicateFieldObject:function(e){acf.doAction("duplicate_field",e.$el),acf.doAction("duplicate_field/type="+e.get("type"),e.$el)},onDeleteFieldObject:function(e){acf.doAction("delete_field",e.$el),acf.doAction("delete_field/type="+e.get("type"),e.$el)},onChangeFieldObjectType:function(e){acf.doAction("change_field_type",e.$el),acf.doAction("change_field_type/type="+e.get("type"),e.$el),acf.doAction("render_field_settings",e.$el),acf.doAction("render_field_settings/type="+e.get("type"),e.$el)},onChangeFieldObjectLabel:function(e){acf.doAction("change_field_label",e.$el),acf.doAction("change_field_label/type="+e.get("type"),e.$el)},onChangeFieldObjectName:function(e){acf.doAction("change_field_name",e.$el),acf.doAction("change_field_name/type="+e.get("type"),e.$el)},onChangeFieldObjectParent:function(e){acf.doAction("update_field_parent",e.$el)}})}(jQuery)},8931:function(){var e,t;e=jQuery,t=acf.FieldSetting.extend({type:"",name:"conditional_logic",events:{"change .conditions-toggle":"onChangeToggle","click .add-conditional-group":"onClickAddGroup","focus .condition-rule-field":"onFocusField","change .condition-rule-field":"onChangeField","change .condition-rule-operator":"onChangeOperator","click .add-conditional-rule":"onClickAdd","click .remove-conditional-rule":"onClickRemove"},$rule:!1,scope:function(e){return this.$rule=e,this},ruleData:function(e,t){return this.$rule.data.apply(this.$rule,arguments)},$input:function(e){return this.$rule.find(".condition-rule-"+e)},$td:function(e){return this.$rule.find("td."+e)},$toggle:function(){return this.$(".conditions-toggle")},$control:function(){return this.$(".rule-groups")},$groups:function(){return this.$(".rule-group")},$rules:function(){return this.$(".rule")},$tabLabel:function(){return this.fieldObject.$el.find(".conditional-logic-badge")},open:function(){var e=this.$control();e.show(),acf.enable(e)},close:function(){var e=this.$control();e.hide(),acf.disable(e)},render:function(){this.$toggle().prop("checked")?(this.$tabLabel().addClass("is-enabled"),this.renderRules(),this.open()):(this.$tabLabel().removeClass("is-enabled"),this.close())},renderRules:function(){var t=this;this.$rules().each((function(){t.renderRule(e(this))}))},renderRule:function(e){this.scope(e),this.renderField(),this.renderOperator(),this.renderValue()},renderField:function(){var e=[],t=this.fieldObject.cid,i=this.$input("field");acf.getFieldObjects().map((function(i){var n={id:i.getKey(),text:i.getLabel()};i.cid===t&&(n.text+=" "+acf.__("(this field)"),n.disabled=!0),acf.getConditionTypes({fieldType:i.getType()}).length||(n.disabled=!0);var a=i.getParents().length;n.text="- ".repeat(a)+n.text,e.push(n)})),e.length||e.push({id:"",text:acf.__("No toggle fields available")}),acf.renderSelect(i,e),this.ruleData("field",i.val())},renderOperator:function(){if(this.ruleData("field")){var e=this.$input("operator"),t=(e.val(),[]);null===e.val()&&acf.renderSelect(e,[{id:this.ruleData("operator"),text:""}]);var i=acf.findFieldObject(this.ruleData("field")),n=acf.getFieldObject(i);acf.getConditionTypes({fieldType:n.getType()}).map((function(e){t.push({id:e.prototype.operator,text:e.prototype.label})})),acf.renderSelect(e,t),this.ruleData("operator",e.val())}},renderValue:function(){if(this.ruleData("field")&&this.ruleData("operator")){var t=this.$input("value"),i=this.$td("value"),n=t.val(),a=acf.findFieldObject(this.ruleData("field")),l=acf.getFieldObject(a),o=acf.getConditionTypes({fieldType:l.getType(),operator:this.ruleData("operator")})[0].prototype.choices(l);if(o instanceof Array){var s=e("");acf.renderSelect(s,o)}else s=e(o);t.detach(),i.html(s),setTimeout((function(){["class","name","id"].map((function(e){s.attr(e,t.attr(e))}))}),0),s.prop("disabled")||acf.val(s,n,!0),this.ruleData("value",s.val())}},onChangeToggle:function(){this.render()},onClickAddGroup:function(e,t){this.addGroup()},addGroup:function(){var e=this.$(".rule-group:last"),t=acf.duplicate(e);t.find("h4").text(acf.__("or")),t.find("tr").not(":first").remove(),this.fieldObject.save()},onFocusField:function(e,t){this.renderField()},onChangeField:function(e,t){this.scope(t.closest(".rule")),this.ruleData("field",t.val()),this.renderOperator(),this.renderValue()},onChangeOperator:function(e,t){this.scope(t.closest(".rule")),this.ruleData("operator",t.val()),this.renderValue()},onClickAdd:function(e,t){var i=acf.duplicate(t.closest(".rule"));this.renderRule(i)},onClickRemove:function(e,t){var i=t.closest(".rule");this.fieldObject.save(),0==i.siblings(".rule").length&&i.closest(".rule-group").remove(),i.remove()}}),acf.registerFieldSetting(t),new acf.Model({actions:{duplicate_field_objects:"onDuplicateFieldObjects"},onDuplicateFieldObjects:function(t,i,n){var a={},l=e();t.map((function(e){a[e.get("prevKey")]=e.get("key"),l=l.add(e.$(".condition-rule-field"))})),l.each((function(){var t=e(this),i=t.val();i&&a[i]&&(t.find("option:selected").attr("value",a[i]),t.val(a[i]))}))}})},5358:function(){var e;e=jQuery,acf.FieldObject=acf.Model.extend({eventScope:".acf-field-object",fieldTypeSelect2:!1,events:{"click .copyable":"onClickCopy","click .handle":"onClickEdit","click .close-field":"onClickEdit",'click a[data-key="acf_field_settings_tabs"]':"onChangeSettingsTab","click .delete-field":"onClickDelete","click .duplicate-field":"duplicate","click .move-field":"move","click .browse-fields":"browseFields","focus .edit-field":"onFocusEdit","blur .edit-field, .row-options a":"onBlurEdit","change .field-type":"onChangeType","change .field-required":"onChangeRequired","blur .field-label":"onChangeLabel","blur .field-name":"onChangeName",change:"onChange",changed:"onChanged"},data:{id:0,key:"",type:""},setup:function(e){this.$el=e,this.inherit(e),this.prop("ID"),this.prop("parent"),this.prop("menu_order")},$input:function(t){return e("#"+this.getInputId()+"-"+t)},$meta:function(){return this.$(".meta:first")},$handle:function(){return this.$(".handle:first")},$settings:function(){return this.$(".settings:first")},$setting:function(e){return this.$(".acf-field-settings:first .acf-field-setting-"+e)},$fieldTypeSelect:function(){return this.$(".field-type")},$fieldLabel:function(){return this.$(".field-label")},getParent:function(){return acf.getFieldObjects({child:this.$el,limit:1}).pop()},getParents:function(){return acf.getFieldObjects({child:this.$el})},getFields:function(){return acf.getFieldObjects({parent:this.$el})},getInputName:function(){return"acf_fields["+this.get("id")+"]"},getInputId:function(){return"acf_fields-"+this.get("id")},newInput:function(t,i){var n=this.getInputId(),a=this.getInputName();t&&(n+="-"+t,a+="["+t+"]");var l=e("").attr({id:n,name:a,value:i});return this.$("> .meta").append(l),l},getProp:function(e){if(this.has(e))return this.get(e);var t=this.$input(e),i=t.length?t.val():null;return this.set(e,i,!0),i},setProp:function(e,t){var i=this.$input(e);return i.val(),i.length||(i=this.newInput(e,t)),null===t?i.remove():i.val(t),this.has(e)?this.set(e,t):this.set(e,t,!0),this},prop:function(e,t){return void 0!==t?this.setProp(e,t):this.getProp(e)},props:function(e){Object.keys(e).map((function(t){this.setProp(t,e[t])}),this)},getLabel:function(){var e=this.prop("label");return""===e&&(e=acf.__("(no label)")),e},getName:function(){return this.prop("name")},getType:function(){return this.prop("type")},getTypeLabel:function(){var e=this.prop("type"),t=acf.get("fieldTypes");return t[e]?t[e].label:e},getKey:function(){return this.prop("key")},initialize:function(){this.checkCopyable()},makeCopyable:function(e){return navigator.clipboard?''+e+"":''+e+""},checkCopyable:function(){navigator.clipboard||this.$el.find(".copyable").addClass("copy-unsupported")},initializeFieldTypeSelect2:function(){if(!this.fieldTypeSelect2&&!this.$fieldTypeSelect().hasClass("disable-select2")){try{e.fn.select2.amd.require("select2/compat/dropdownCss")}catch(e){return void console.warn("ACF was not able to load the full version of select2 due to a conflicting version provided by another plugin or theme taking precedence. Select2 fields may not work as expected.")}this.fieldTypeSelect2=acf.newSelect2(this.$fieldTypeSelect(),{field:!1,ajax:!1,multiple:!1,allowNull:!1,suppressFilters:!0,dropdownCssClass:"field-type-select-results",templateResult:function(t){if(t.loading||t.element&&"OPTGROUP"==t.element.nodeName)(i=e('')).html(acf.escHtml(t.text));else var i=e(''+acf.escHtml(t.text)+"");return i.data("element",t.element),i},templateSelection:function(t){var i=e(''+acf.escHtml(t.text)+"");return i.data("element",t.element),i}}),this.fieldTypeSelect2.on("select2:open",(function(){e(".field-type-select-results input.select2-search__field").attr("placeholder",acf.__("Type to search..."))})),this.fieldTypeSelect2.on("change",(function(t){e(t.target).parents("ul:first").find("button.browse-fields").prop("disabled",!0)})),this.fieldTypeSelect2.$el.parent().on("keydown",".select2-selection.select2-selection--single",this.onKeyDownSelect)}},addProFields:function(){if(acf.get("is_pro"))return;var e=this.$fieldTypeSelect();if(e.hasClass("acf-free-field-type"))return;const t=acf.get("PROFieldTypes");if("object"!=typeof t)return;const i=e.find('optgroup option[value="group"]').parent(),n=e.find('optgroup option[value="image"]').parent();for(const[e,a]of Object.entries(t))("content"===a.category?n:i).append('");e.addClass("acf-free-field-type")},render:function(){var e=this.$(".handle:first"),t=this.prop("menu_order"),i=this.getLabel(),n=this.prop("name"),a=this.getTypeLabel(),l=this.prop("key"),o=this.$input("required").prop("checked");e.find(".acf-icon").html(parseInt(t)+1),o&&(i+=' *'),e.find(".li-field-label strong a").html(i),e.find(".li-field-name").html(this.makeCopyable(n));const s=acf.strSlugify(this.getType());e.find(".field-type-label").text(" "+a),e.find(".field-type-icon").removeClass().addClass("field-type-icon field-type-icon-"+s),e.find(".li-field-key").html(this.makeCopyable(l)),acf.doAction("render_field_object",this)},refresh:function(){acf.doAction("refresh_field_object",this)},isOpen:function(){return this.$el.hasClass("open")},onClickCopy:function(t){t.stopPropagation(),navigator.clipboard&&navigator.clipboard.writeText(e(t.target).text()).then((()=>{e(t.target).addClass("copied"),setTimeout((function(){e(t.target).removeClass("copied")}),2e3)}))},onClickEdit:function(t){$target=e(t.target),$target.parent().hasClass("row-options")&&!$target.hasClass("edit-field")||(this.isOpen()?this.close():this.open())},onChangeSettingsTab:function(){const e=this.$el.children(".settings");acf.doAction("show",e)},onFocusEdit:function(t){e(t.target).closest("li").find(".row-options").addClass("active")},onBlurEdit:function(t){var i=e(t.target).closest("li").find(".row-options");setTimeout((function(){var t=e(document.activeElement).closest("li").find(".row-options");i.is(t)||i.removeClass("active")}),50)},open:function(){var e=this.$el.children(".settings");this.addProFields(),this.initializeFieldTypeSelect2(),acf.doAction("open_field_object",this),this.trigger("openFieldObject"),acf.doAction("show",e),e.slideDown(),this.$el.addClass("open")},onKeyDownSelect:function(t){t.which>=186&&t.which<=222||[8,9,13,16,17,18,19,20,27,32,33,34,35,36,37,38,39,40,45,46,91,92,93,144,145].includes(t.which)||t.which>=112&&t.which<=123||e(this).closest(".select2-container").siblings("select:enabled").select2("open")},close:function(){var e=this.$el.children(".settings");e.slideUp(),this.$el.removeClass("open"),acf.doAction("close_field_object",this),this.trigger("closeFieldObject"),acf.doAction("hide",e)},serialize:function(){return acf.serialize(this.$el,this.getInputName())},save:function(e){e=e||"settings","settings"!==this.getProp("save")&&(this.setProp("save",e),this.$el.attr("data-save",e),acf.doAction("save_field_object",this,e))},submit:function(){var e=this.getInputName(),t=this.get("save");this.isOpen()&&this.close(),"settings"==t||("meta"==t?this.$('> .settings [name^="'+e+'"]').remove():this.$('[name^="'+e+'"]').remove()),acf.doAction("submit_field_object",this)},onChange:function(e,t){this.save(),acf.doAction("change_field_object",this)},onChanged:function(t,i,n,a){this.getType()===i.attr("data-type")&&e("button.acf-btn.browse-fields").prop("disabled",!1),"save"!=n&&(["menu_order","parent"].indexOf(n)>-1?this.save("meta"):this.save(),["menu_order","label","required","name","type","key"].indexOf(n)>-1&&this.render(),acf.doAction("change_field_object_"+n,this,a))},onChangeLabel:function(e,t){var i=t.val();if(this.set("label",i),""==this.prop("name")){var n=acf.applyFilters("generate_field_object_name",acf.strSanitize(i),this);this.prop("name",n)}},onChangeName:function(e,t){var i=t.val();this.set("name",i),"field_"===i.substr(0,6)&&alert(acf.__('The string "field_" may not be used at the start of a field name'))},onChangeRequired:function(e,t){var i=t.prop("checked")?1:0;this.set("required",i)},delete:function(t){t=acf.parseArgs(t,{animate:!0});var i=this.prop("ID");if(i){var n=e("#_acf_delete_fields"),a=n.val()+"|"+i;n.val(a)}acf.doAction("delete_field_object",this),t.animate?this.removeAnimate():this.remove()},onClickDelete:function(e,t){if(e.shiftKey)return this.delete();this.$el.addClass("-hover"),acf.newTooltip({confirmRemove:!0,target:t,context:this,confirm:function(){this.delete()},cancel:function(){this.$el.removeClass("-hover")}})},removeAnimate:function(){var e=this,t=this.$el.parent(),i=acf.findFieldObjects({sibling:this.$el});acf.remove({target:this.$el,endHeight:i.length?0:50,complete:function(){e.remove(),acf.doAction("removed_field_object",e,t)}}),acf.doAction("remove_field_object",e,t)},duplicate:function(){var e=acf.uniqid("field_"),t=acf.duplicate({target:this.$el,search:this.get("id"),replace:e});t.attr("data-key",e);var i=acf.getFieldObject(t),n=i.prop("label"),a=i.prop("name"),l=a.split("_").pop(),o=acf.__("copy");if(acf.isNumeric(l)){var s=1*l+1;n=n.replace(l,s),a=a.replace(l,s)}else 0===l.indexOf(o)?(s=(s=1*l.replace(o,""))?s+1:2,n=n.replace(l,o+s),a=a.replace(l,o+s)):(n+=" ("+o+")",a+="_"+o);i.prop("ID",0),i.prop("label",n),i.prop("name",a),i.prop("key",e),this.isOpen()&&this.close(),i.open();var c=i.$setting("label input");setTimeout((function(){c.trigger("focus")}),251),acf.doAction("duplicate_field_object",this,i),acf.doAction("append_field_object",i)},wipe:function(){var e=this.get("id"),t=this.get("key"),i=acf.uniqid("field_");acf.rename({target:this.$el,search:e,replace:i}),this.set("id",i),this.set("prevId",e),this.set("prevKey",t),this.prop("key",i),this.prop("ID",0),this.$el.attr("data-key",i),this.$el.attr("data-id",i),acf.doAction("wipe_field_object",this)},move:function(){var t=function(e){return"settings"==e.get("save")},i=t(this);if(i||acf.getFieldObjects({parent:this.$el}).map((function(e){i=t(e)||e.changed})),i)alert(acf.__("This field cannot be moved until its changes have been saved"));else{var n=this.prop("ID"),a=this,l=!1,o=function(e){l.loading(!1),l.content(e),l.on("submit","form",s)},s=function(t,i){t.preventDefault(),acf.startButtonLoading(l.$(".button"));var a={action:"acf/field_group/move_field",field_id:n,field_group_id:l.$("select").val()};e.ajax({url:acf.get("ajaxurl"),data:acf.prepareForAjax(a),type:"post",dataType:"html",success:c})},c=function(e){l.content(e),wp.a11y&&wp.a11y.speak&&acf.__&&wp.a11y.speak(acf.__("Field moved to other group"),"polite"),l.$(".acf-close-popup").focus(),a.removeAnimate()};!function(){l=acf.newPopup({title:acf.__("Move Custom Field"),loading:!0,width:"300px",openedBy:a.$el.find(".move-field")});var t={action:"acf/field_group/move_field",field_id:n};e.ajax({url:acf.get("ajaxurl"),data:acf.prepareForAjax(t),type:"post",dataType:"html",success:o})}()}},browseFields:function(e,t){e.preventDefault(),acf.newBrowseFieldsModal({openedBy:this})},onChangeType:function(e,t){this.changeTimeout&&clearTimeout(this.changeTimeout),this.changeTimeout=this.setTimeout((function(){this.changeType(t.val())}),300)},changeType:function(t){var i=this.prop("type"),n=acf.strSlugify("acf-field-object-"+i),a=acf.strSlugify("acf-field-object-"+t);this.$el.removeClass(n).addClass(a),this.$el.attr("data-type",t),this.$el.data("type",t),this.has("xhr")&&this.get("xhr").abort();const l={};if(this.$el.find(".acf-field-settings:first > .acf-field-settings-main > .acf-field-type-settings").each((function(){let t=e(this).data("parent-tab"),i=e(this).children().removeData();l[t]=i,i.detach()})),this.set("settings-"+i,l),this.has("settings-"+t)){let e=this.get("settings-"+t);return this.showFieldTypeSettings(e),void this.set("type",t)}const o=e('
    ');this.$el.find(".acf-field-settings-main-general .acf-field-type-settings").before(o);const s={action:"acf/field_group/render_field_settings",field:this.serialize(),prefix:this.getInputName()};var c=e.ajax({url:acf.get("ajaxurl"),data:acf.prepareForAjax(s),type:"post",dataType:"json",context:this,success:function(e){acf.isAjaxSuccess(e)&&this.showFieldTypeSettings(e.data)},complete:function(){o.remove(),this.set("type",t)}});this.set("xhr",c)},showFieldTypeSettings:function(e){if("object"!=typeof e)return;const t=this;Object.keys(e).forEach((i=>{const n=t.$el.find(".acf-field-settings-main-"+i.replace("_","-")+" .acf-field-type-settings");let a="";["object","string"].includes(typeof e[i])&&(a=e[i]),n.prepend(a),acf.doAction("append",n)}))},updateParent:function(){var e=acf.get("post_id"),t=this.getParent();t&&(e=parseInt(t.prop("ID"))||t.prop("key")),this.prop("parent",e)}})},3523:function(){var e;e=jQuery,acf.findFieldObject=function(e){return acf.findFieldObjects({key:e,limit:1})},acf.findFieldObjects=function(t){t=t||{};var i=".acf-field-object",n=!1;return(t=acf.parseArgs(t,{id:"",key:"",type:"",limit:!1,list:null,parent:!1,sibling:!1,child:!1})).id&&(i+='[data-id="'+t.id+'"]'),t.key&&(i+='[data-key="'+t.key+'"]'),t.type&&(i+='[data-type="'+t.type+'"]'),n=t.list?t.list.children(i):t.parent?t.parent.find(i):t.sibling?t.sibling.siblings(i):t.child?t.child.parents(i):e(i),t.limit&&(n=n.slice(0,t.limit)),n},acf.getFieldObject=function(e){"string"==typeof e&&(e=acf.findFieldObject(e));var t=e.data("acf");return t||(t=acf.newFieldObject(e)),t},acf.getFieldObjects=function(t){var i=acf.findFieldObjects(t),n=[];return i.each((function(){var t=acf.getFieldObject(e(this));n.push(t)})),n},acf.newFieldObject=function(e){var t=new acf.FieldObject(e);return acf.doAction("new_field_object",t),t},new acf.Model({priority:5,initialize:function(){["prepare","ready","append","remove"].map((function(e){this.addFieldActions(e)}),this)},addFieldActions:function(e){var t=e+"_field_objects",i=e+"_field_object",n=e+"FieldObject";acf.addAction(e,(function(e){var i=acf.getFieldObjects({parent:e});if(i.length){var n=acf.arrayArgs(arguments);n.splice(0,1,t,i),acf.doAction.apply(null,n)}}),5),acf.addAction(t,(function(e){var t=acf.arrayArgs(arguments);t.unshift(i),e.map((function(e){t[1]=e,acf.doAction.apply(null,t)}))}),5),acf.addAction(i,(function(e){var t=acf.arrayArgs(arguments);t.unshift(i),["type","name","key"].map((function(n){t[0]=i+"/"+n+"="+e.get(n),acf.doAction.apply(null,t)})),t.splice(0,2),e.trigger(n,t)}),5)}}),new acf.Model({id:"fieldManager",events:{"submit #post":"onSubmit","mouseenter .acf-field-list":"onHoverSortable","click .add-field":"onClickAdd"},actions:{removed_field_object:"onRemovedField",sortstop_field_object:"onReorderField",delete_field_object:"onDeleteField",change_field_object_type:"onChangeFieldType",duplicate_field_object:"onDuplicateField"},onSubmit:function(e,t){acf.getFieldObjects().map((function(e){e.submit()}))},setFieldMenuOrder:function(e){this.renderFields(e.$el.parent())},onHoverSortable:function(e,t){t.hasClass("ui-sortable")||t.sortable({helper:function(e,t){return t.clone().find(":input").attr("name",(function(e,t){return"sort_"+parseInt(1e5*Math.random(),10).toString()+"_"+t})).end()},handle:".acf-sortable-handle",connectWith:".acf-field-list",start:function(e,i){var n=acf.getFieldObject(i.item);i.placeholder.height(i.item.height()),acf.doAction("sortstart_field_object",n,t)},update:function(e,i){var n=acf.getFieldObject(i.item);acf.doAction("sortstop_field_object",n,t)}})},onRemovedField:function(e,t){this.renderFields(t)},onReorderField:function(e,t){e.updateParent(),this.renderFields(t)},onDeleteField:function(e){e.getFields().map((function(e){e.delete({animate:!1})}))},onChangeFieldType:function(e){e.$el.find("button.browse-fields").prop("disabled",!1)},onDuplicateField:function(e,t){var i=t.getFields();i.length&&(i.map((function(e){e.wipe(),e.isOpen()&&e.open(),e.updateParent()})),acf.doAction("duplicate_field_objects",i,t,e)),this.setFieldMenuOrder(t)},renderFields:function(e){var t=acf.getFieldObjects({list:e});if(!t.length)return e.addClass("-empty"),void e.parents(".acf-field-list-wrap").first().addClass("-empty");e.removeClass("-empty"),e.parents(".acf-field-list-wrap").first().removeClass("-empty"),t.map((function(e,t){e.prop("menu_order",t)}))},onClickAdd:function(t,i){let n;n=i.hasClass("add-first-field")?i.parents(".acf-field-list").eq(0):i.parent().hasClass("acf-headerbar-actions")||i.parent().hasClass("no-fields-message-inner")?e(".acf-field-list:first"):i.parent().hasClass("acf-sub-field-list-header")?i.parents(".acf-input:first").find(".acf-field-list:first"):i.closest(".acf-tfoot").siblings(".acf-field-list"),this.addField(n)},addField:function(t){var i=e("#tmpl-acf-field").html(),n=e(i),a=n.data("id"),l=acf.uniqid("field_"),o=acf.duplicate({target:n,search:a,replace:l,append:function(e,i){t.append(i)}}),s=acf.getFieldObject(o);s.prop("key",l),s.prop("ID",0),s.prop("label",""),s.prop("name",""),o.attr("data-key",l),o.attr("data-id",l),s.updateParent();var c=s.$input("type");setTimeout((function(){t.hasClass("acf-auto-add-field")?t.removeClass("acf-auto-add-field"):c.trigger("focus")}),251),s.open(),this.renderFields(t),acf.doAction("add_field_object",s),acf.doAction("append_field_object",s)}})},8687:function(){var e;e=jQuery,new acf.Model({id:"locationManager",wait:"ready",events:{"click .add-location-rule":"onClickAddRule","click .add-location-group":"onClickAddGroup","click .remove-location-rule":"onClickRemoveRule","change .refresh-location-rule":"onChangeRemoveRule"},initialize:function(){this.$el=e("#acf-field-group-options"),this.addProLocations(),this.updateGroupsClass()},addProLocations:function(){if(acf.get("is_pro"))return;const e=acf.get("PROLocationTypes");if("object"!=typeof e)return;const t=this.$el.find("select.refresh-location-rule").find('optgroup[label="Forms"]');for(const[i,n]of Object.entries(e))t.append('")},onClickAddRule:function(e,t){this.addRule(t.closest("tr"))},onClickRemoveRule:function(e,t){this.removeRule(t.closest("tr"))},onChangeRemoveRule:function(e,t){this.changeRule(t.closest("tr"))},onClickAddGroup:function(e,t){this.addGroup()},addRule:function(e){acf.duplicate(e),this.updateGroupsClass()},removeRule:function(e){0==e.siblings("tr").length?e.closest(".rule-group").remove():e.remove(),this.$(".rule-group:first").find("h4").text(acf.__("Show this field group if")),this.updateGroupsClass()},changeRule:function(t){var i=t.closest(".rule-group"),n=t.find("td.param select").attr("name").replace("[param]",""),a={action:"acf/field_group/render_location_rule"};a.rule=acf.serialize(t,n),a.rule.id=t.data("id"),a.rule.group=i.data("id"),acf.disable(t.find("td.value")),e.ajax({url:acf.get("ajaxurl"),data:acf.prepareForAjax(a),type:"post",dataType:"html",success:function(e){e&&t.replaceWith(e)}})},addGroup:function(){var e=this.$(".rule-group:last");$group2=acf.duplicate(e),$group2.find("h4").text(acf.__("or")),$group2.find("tr").not(":first").remove(),this.updateGroupsClass()},updateGroupsClass:function(){var e=this.$(".rule-group:last").closest(".rule-groups");e.find(".acf-table tr").length>1?e.addClass("rule-groups-multiple"):e.removeClass("rule-groups-multiple")}})},6125:function(){!function(e,t){var i=function(e){return acf.strPascalCase(e||"")+"FieldSetting"};acf.registerFieldSetting=function(e){var t=e.prototype,n=i(t.type+" "+t.name);this.models[n]=e},acf.newFieldSetting=function(e){var t=e.get("setting")||"",n=e.get("name")||"",a=i(t+" "+n),l=acf.models[a]||null;return null!==l&&new l(e)},acf.getFieldSetting=function(e){return e instanceof jQuery&&(e=acf.getField(e)),e.setting},new acf.Model({actions:{new_field:"onNewField"},onNewField:function(e){e.setting=acf.newFieldSetting(e)}}),acf.FieldSetting=acf.Model.extend({field:!1,type:"",name:"",wait:"ready",eventScope:".acf-field",events:{change:"render"},setup:function(t){var i=t.$el;this.$el=i,this.field=t,this.$fieldObject=i.closest(".acf-field-object"),this.fieldObject=acf.getFieldObject(this.$fieldObject),e.extend(this.data,t.data)},initialize:function(){this.render()},render:function(){}});var n=acf.FieldSetting.extend({type:"",name:"",render:function(){this.fieldObject.$setting("endpoint").find('input[type="checkbox"]:first').is(":checked")?this.fieldObject.$el.addClass("acf-field-is-endpoint"):this.fieldObject.$el.removeClass("acf-field-is-endpoint")}}),a=n.extend({type:"accordion",name:"endpoint"}),l=n.extend({type:"tab",name:"endpoint"});acf.registerFieldSetting(a),acf.registerFieldSetting(l);var o=acf.FieldSetting.extend({type:"",name:"",render:function(){var e=this.$('input[type="radio"]:checked');"other"!=e.val()&&this.$('input[type="text"]').val(e.val())}}),s=o.extend({type:"date_picker",name:"display_format"}),c=o.extend({type:"date_picker",name:"return_format"});acf.registerFieldSetting(s),acf.registerFieldSetting(c);var r=o.extend({type:"date_time_picker",name:"display_format"}),d=o.extend({type:"date_time_picker",name:"return_format"});acf.registerFieldSetting(r),acf.registerFieldSetting(d);var f=o.extend({type:"time_picker",name:"display_format"}),p=o.extend({type:"time_picker",name:"return_format"});acf.registerFieldSetting(f),acf.registerFieldSetting(p);var u=acf.FieldSetting.extend({type:"color_picker",name:"enable_opacity",render:function(){var e=this.fieldObject.$setting("return_format"),t=this.fieldObject.$setting("default_value"),i=e.find('input[type="radio"][value="string"]').parent("label").contents().last(),n=t.find('input[type="text"]'),a=acf.get("colorPickerL10n");this.field.val()?(i.replaceWith(a.rgba_string),n.attr("placeholder","rgba(255,255,255,0.8)")):(i.replaceWith(a.hex_string),n.attr("placeholder","#FFFFFF"))}});acf.registerFieldSetting(u)}(jQuery)},3791:function(){var e;e=jQuery,new acf.Model({id:"fieldGroupManager",events:{"submit #post":"onSubmit",'click a[href="#"]':"onClick","click .acf-delete-field-group":"onClickDeleteFieldGroup","blur input#title":"validateTitle","input input#title":"validateTitle"},filters:{find_fields_args:"filterFindFieldArgs",find_fields_selector:"filterFindFieldsSelector"},initialize:function(){acf.addAction("prepare",this.maybeInitNewFieldGroup)},maybeInitNewFieldGroup:function(){e("#acf-field-group-fields > .inside > .acf-field-list-wrap.acf-auto-add-field").length&&(e(".acf-headerbar-actions .add-field").trigger("click"),e(".acf-title-wrap #title").trigger("focus"))},onSubmit:function(t,i){var n=e(".acf-title-wrap #title");n.val()||(t.preventDefault(),acf.unlockForm(i),n.trigger("focus"))},onClick:function(e){e.preventDefault()},onClickDeleteFieldGroup:function(e,t){e.preventDefault(),t.addClass("-hover"),acf.newTooltip({confirm:!0,target:t,context:this,text:acf.__("Move field group to trash?"),confirm:function(){window.location.href=t.attr("href")},cancel:function(){t.removeClass("-hover")}})},validateTitle:function(t,i){let n=e(".acf-publish");i.val()?(i.removeClass("acf-input-error"),n.removeClass("disabled"),e(".acf-publish").removeClass("disabled")):(i.addClass("acf-input-error"),n.addClass("disabled"),e(".acf-publish").addClass("disabled"))},filterFindFieldArgs:function(e){return e.visible=!0,e.parent&&(e.parent.hasClass("acf-field-object")||e.parent.hasClass("acf-browse-fields-modal-wrap")||e.parent.parents(".acf-field-object").length)&&(e.visible=!1,e.excludeSubFields=!0),e.parent&&e.parent.find(".acf-field-object.open").length&&(e.excludeSubFields=!1),e},filterFindFieldsSelector:function(e){return e+", .acf-field-acf-field-group-settings-tabs"}}),new acf.Model({id:"screenOptionsManager",wait:"prepare",events:{"change #acf-field-key-hide":"onFieldKeysChange","change #acf-field-settings-tabs":"onFieldSettingsTabsChange",'change [name="screen_columns"]':"render"},initialize:function(){var t=e("#adv-settings"),i=e("#acf-append-show-on-screen");t.find(".metabox-prefs").append(i.html()),t.find(".metabox-prefs br").remove(),i.remove(),this.$el=e("#screen-options-wrap"),this.render()},isFieldKeysChecked:function(){return this.$el.find("#acf-field-key-hide").prop("checked")},isFieldSettingsTabsChecked:function(){const e=this.$el.find("#acf-field-settings-tabs");return!!e.length&&e.prop("checked")},getSelectedColumnCount:function(){return this.$el.find('input[name="screen_columns"]:checked').val()},onFieldKeysChange:function(e,t){var i=this.isFieldKeysChecked()?1:0;acf.updateUserSetting("show_field_keys",i),this.render()},onFieldSettingsTabsChange:function(){const e=this.isFieldSettingsTabsChecked()?1:0;acf.updateUserSetting("show_field_settings_tabs",e),this.render()},render:function(){this.isFieldKeysChecked()?e("#acf-field-group-fields").addClass("show-field-keys"):e("#acf-field-group-fields").removeClass("show-field-keys"),this.isFieldSettingsTabsChecked()?(e("#acf-field-group-fields").removeClass("hide-tabs"),e(".acf-field-object").each((function(){const t=acf.getFields({type:"tab",parent:e(this),excludeSubFields:!0,limit:1});t.length&&t[0].tabs.set("initialized",!1),acf.doAction("show",e(this))}))):(e("#acf-field-group-fields").addClass("hide-tabs"),e(".acf-field-settings-main").removeClass("acf-hidden").prop("hidden",!1)),1==this.getSelectedColumnCount()?(e("body").removeClass("columns-2"),e("body").addClass("columns-1")):(e("body").removeClass("columns-1"),e("body").addClass("columns-2"))}}),new acf.Model({actions:{new_field:"onNewField"},onNewField:function(t){if(t.has("append")){var i=t.get("append"),n=t.$el.siblings('[data-name="'+i+'"]').first();if(n.length){var a=n.children(".acf-input"),l=a.children("ul");l.length||(a.wrapInner(''),l=a.children("ul"));var o=t.$(".acf-input").html(),s=e("
  • "+o+"
  • ");l.append(s),l.attr("data-cols",l.children().length),t.remove()}}}})}},t={};function i(n){var a=t[n];if(void 0!==a)return a.exports;var l=t[n]={exports:{}};return e[n](l,l.exports,i),l.exports}!function(){"use strict";function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e(t)}function t(t,i,n){return(i=function(t){var i=function(t,i){if("object"!==e(t)||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var a=n.call(t,"string");if("object"!==e(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"===e(i)?i:String(i)}(i))in t?Object.defineProperty(t,i,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[i]=n,t}function n(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function a(e){for(var i=1;ithis.get("popularFieldTypes").includes(e.name)));if("pro"===e)return n.filter((e=>e.pro));n=n.filter((t=>t.category===e))}return t&&(n=n.filter((e=>{const i=e.label.toLowerCase(),n=i.split(" ");let a=!1;return i.startsWith(t.toLowerCase())?a=!0:n.length>1&&n.forEach((e=>{e.startsWith(t.toLowerCase())&&(a=!0)})),a}))),n},render:function(){i.doAction("append",this.$el);const t=this.$el.find(".acf-field-types-tab"),n=this;t.each((function(){const t=e(this).data("category");n.getFieldTypes(t).forEach((t=>{e(this).append(n.getFieldTypeHTML(t))}))})),this.initializeFieldLabel(),this.initializeFieldType(),this.onChangeFieldType()},getFieldTypeHTML:function(e){const t=e.name.replaceAll("_","-");return`\n\t\t\t\n\t\t\t\t${e.pro&&!i.get("is_pro")?'PRO':e.pro?'PRO':""}\n\t\t\t\t\n\t\t\t\t${e.label}\n\t\t\t\n\t\t\t`},decodeFieldTypeURL:function(e){return"string"!=typeof e?e:e.replaceAll("&","&")},renderFieldTypeDesc:function(e){const t=this.getFieldTypes().filter((t=>t.name===e))[0]||{},n=i.parseArgs(t,{label:"",description:"",doc_url:!1,tutorial_url:!1,preview_image:!1,pro:!1});this.$el.find(".field-type-name").text(n.label),this.$el.find(".field-type-desc").text(n.description),n.doc_url?this.$el.find(".field-type-doc").attr("href",this.decodeFieldTypeURL(n.doc_url)).show():this.$el.find(".field-type-doc").hide(),n.tutorial_url?this.$el.find(".field-type-tutorial").attr("href",this.decodeFieldTypeURL(n.tutorial_url)).parent().show():this.$el.find(".field-type-tutorial").parent().hide(),n.preview_image?this.$el.find(".field-type-image").attr("src",n.preview_image).show():this.$el.find(".field-type-image").hide();const a=i.get("is_pro"),l=this.$el.find(".acf-btn-pro"),o=this.$el.find(".field-type-upgrade-to-unlock");n.pro&&!a?(l.show(),l.attr("href",l.data("urlBase")+e),o.show(),o.attr("href",o.data("urlBase")+e),this.$el.find(".acf-insert-field-label").attr("disabled",!0),this.$el.find(".acf-select-field").hide()):(l.hide(),o.hide(),this.$el.find(".acf-insert-field-label").attr("disabled",!1),this.$el.find(".acf-select-field").show())},initializeFieldType:function(){var t;const i=this.get("openedBy"),n=null==i||null===(t=i.data)||void 0===t?void 0:t.type;n?this.set("currentFieldType",n):this.set("currentFieldType","text");const a=this.getFieldTypes();let l="";l=this.get("popularFieldTypes").includes(n)?"popular":a.find((e=>e.name===n)).category;const o=`.acf-modal-content .acf-tab-wrap a:contains('${l[0].toUpperCase()+l.slice(1)}')`;setTimeout((()=>{e(o).click()}),0)},initializeFieldLabel:function(){const e=this.get("openedBy").$fieldLabel().val(),t=this.$el.find(".acf-insert-field-label");e?t.val(e):t.val("")},updateFieldObjectFieldLabel:function(){const e=this.$el.find(".acf-insert-field-label").val(),t=this.get("openedBy");t.$fieldLabel().val(e),t.$fieldLabel().trigger("blur")},onChangeFieldType:function(){const e=this.get("currentFieldType");this.$el.find(".selected").removeClass("selected"),this.$el.find('.acf-field-type[data-field-type="'+e+'"]').addClass("selected"),this.renderFieldTypeDesc(e)},onSearchFieldTypes:function(t){const i=this.$el.find(".acf-browse-fields-modal"),n=this.$el.find(".acf-search-field-types").val(),a=this;let l,o="",s=[];if("string"==typeof n&&(l=n.trim(),s=this.getFieldTypes(!1,l)),l.length&&s.length?i.addClass("is-searching"):i.removeClass("is-searching"),!s.length)return i.addClass("no-results-found"),void this.$el.find(".acf-invalid-search-term").text(l);i.removeClass("no-results-found"),s.forEach((e=>{o+=a.getFieldTypeHTML(e)})),e(".acf-field-type-search-results").html(o),this.set("currentFieldType",s[0].name),this.onChangeFieldType()},onClickBrowsePopular:function(){this.$el.find(".acf-search-field-types").val("").trigger("input"),this.$el.find(".acf-tab-wrap a").first().trigger("click")},onClickSelectField:function(e){const t=this.get("openedBy");t.$fieldTypeSelect().val(this.get("currentFieldType")),t.$fieldTypeSelect().trigger("change"),this.updateFieldObjectFieldLabel(),this.close()},onClickFieldType:function(t){const i=e(t.currentTarget);this.set("currentFieldType",i.data("field-type"))},onClickClose:function(){this.close()},onPressEscapeClose:function(e){"Escape"===e.key&&this.close()},close:function(){this.lockFocusToModal(!1),this.returnFocusToOrigin(),this.remove()},focus:function(){this.$el.find("button").first().trigger("focus")}};i.models.browseFieldsModal=i.models.Modal.extend(n),i.newBrowseFieldsModal=e=>new i.models.browseFieldsModal(e)}(window.jQuery,0,window.acf)}()}(); \ No newline at end of file diff --git a/assets/build/js/acf-input.js b/assets/build/js/acf-input.js new file mode 100644 index 0000000..224b18e --- /dev/null +++ b/assets/build/js/acf-input.js @@ -0,0 +1,10492 @@ +/******/ (function() { // webpackBootstrap +/******/ var __webpack_modules__ = ({ + +/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-compatibility.js": +/*!****************************************************************************!*\ + !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-compatibility.js ***! + \****************************************************************************/ +/***/ (function() { + +(function ($, undefined) { + /** + * acf.newCompatibility + * + * Inserts a new __proto__ object compatibility layer + * + * @date 15/2/18 + * @since 5.6.9 + * + * @param object instance The object to modify. + * @param object compatibilty Optional. The compatibilty layer. + * @return object compatibilty + */ + + acf.newCompatibility = function (instance, compatibilty) { + // defaults + compatibilty = compatibilty || {}; + + // inherit __proto_- + compatibilty.__proto__ = instance.__proto__; + + // inject + instance.__proto__ = compatibilty; + + // reference + instance.compatibility = compatibilty; + + // return + return compatibilty; + }; + + /** + * acf.getCompatibility + * + * Returns the compatibility layer for a given instance + * + * @date 13/3/18 + * @since 5.6.9 + * + * @param object instance The object to look in. + * @return object|null compatibility The compatibility object or null on failure. + */ + + acf.getCompatibility = function (instance) { + return instance.compatibility || null; + }; + + /** + * acf (compatibility) + * + * Compatibility layer for the acf object + * + * @date 15/2/18 + * @since 5.6.9 + * + * @param void + * @return void + */ + + var _acf = acf.newCompatibility(acf, { + // storage + l10n: {}, + o: {}, + fields: {}, + // changed function names + update: acf.set, + add_action: acf.addAction, + remove_action: acf.removeAction, + do_action: acf.doAction, + add_filter: acf.addFilter, + remove_filter: acf.removeFilter, + apply_filters: acf.applyFilters, + parse_args: acf.parseArgs, + disable_el: acf.disable, + disable_form: acf.disable, + enable_el: acf.enable, + enable_form: acf.enable, + update_user_setting: acf.updateUserSetting, + prepare_for_ajax: acf.prepareForAjax, + is_ajax_success: acf.isAjaxSuccess, + remove_el: acf.remove, + remove_tr: acf.remove, + str_replace: acf.strReplace, + render_select: acf.renderSelect, + get_uniqid: acf.uniqid, + serialize_form: acf.serialize, + esc_html: acf.strEscape, + str_sanitize: acf.strSanitize + }); + _acf._e = function (k1, k2) { + // defaults + k1 = k1 || ''; + k2 = k2 || ''; + + // compability + var compatKey = k2 ? k1 + '.' + k2 : k1; + var compats = { + 'image.select': 'Select Image', + 'image.edit': 'Edit Image', + 'image.update': 'Update Image' + }; + if (compats[compatKey]) { + return acf.__(compats[compatKey]); + } + + // try k1 + var string = this.l10n[k1] || ''; + + // try k2 + if (k2) { + string = string[k2] || ''; + } + + // return + return string; + }; + _acf.get_selector = function (s) { + // vars + var selector = '.acf-field'; + + // bail early if no search + if (!s) { + return selector; + } + + // compatibility with object + if ($.isPlainObject(s)) { + if ($.isEmptyObject(s)) { + return selector; + } else { + for (var k in s) { + s = s[k]; + break; + } + } + } + + // append + selector += '-' + s; + + // replace underscores (split/join replaces all and is faster than regex!) + selector = acf.strReplace('_', '-', selector); + + // remove potential double up + selector = acf.strReplace('field-field-', 'field-', selector); + + // return + return selector; + }; + _acf.get_fields = function (s, $el, all) { + // args + var args = { + is: s || '', + parent: $el || false, + suppressFilters: all || false + }; + + // change 'field_123' to '.acf-field-123' + if (args.is) { + args.is = this.get_selector(args.is); + } + + // return + return acf.findFields(args); + }; + _acf.get_field = function (s, $el) { + // get fields + var $fields = this.get_fields.apply(this, arguments); + + // return + if ($fields.length) { + return $fields.first(); + } else { + return false; + } + }; + _acf.get_closest_field = function ($el, s) { + return $el.closest(this.get_selector(s)); + }; + _acf.get_field_wrap = function ($el) { + return $el.closest(this.get_selector()); + }; + _acf.get_field_key = function ($field) { + return $field.data('key'); + }; + _acf.get_field_type = function ($field) { + return $field.data('type'); + }; + _acf.get_data = function ($el, defaults) { + return acf.parseArgs($el.data(), defaults); + }; + _acf.maybe_get = function (obj, key, value) { + // default + if (value === undefined) { + value = null; + } + + // get keys + keys = String(key).split('.'); + + // acf.isget + for (var i = 0; i < keys.length; i++) { + if (!obj.hasOwnProperty(keys[i])) { + return value; + } + obj = obj[keys[i]]; + } + return obj; + }; + + /** + * hooks + * + * Modify add_action and add_filter functions to add compatibility with changed $field parameter + * Using the acf.add_action() or acf.add_filter() functions will interpret new field parameters as jQuery $field + * + * @date 12/5/18 + * @since 5.6.9 + * + * @param void + * @return void + */ + + var compatibleArgument = function (arg) { + return arg instanceof acf.Field ? arg.$el : arg; + }; + var compatibleArguments = function (args) { + return acf.arrayArgs(args).map(compatibleArgument); + }; + var compatibleCallback = function (origCallback) { + return function () { + // convert to compatible arguments + if (arguments.length) { + var args = compatibleArguments(arguments); + + // add default argument for 'ready', 'append' and 'load' events + } else { + var args = [$(document)]; + } + + // return + return origCallback.apply(this, args); + }; + }; + _acf.add_action = function (action, callback, priority, context) { + // handle multiple actions + var actions = action.split(' '); + var length = actions.length; + if (length > 1) { + for (var i = 0; i < length; i++) { + action = actions[i]; + _acf.add_action.apply(this, arguments); + } + return this; + } + + // single + var callback = compatibleCallback(callback); + return acf.addAction.apply(this, arguments); + }; + _acf.add_filter = function (action, callback, priority, context) { + var callback = compatibleCallback(callback); + return acf.addFilter.apply(this, arguments); + }; + + /* + * acf.model + * + * This model acts as a scafold for action.event driven modules + * + * @type object + * @date 8/09/2014 + * @since 5.0.0 + * + * @param (object) + * @return (object) + */ + + _acf.model = { + actions: {}, + filters: {}, + events: {}, + extend: function (args) { + // extend + var model = $.extend({}, this, args); + + // setup actions + $.each(model.actions, function (name, callback) { + model._add_action(name, callback); + }); + + // setup filters + $.each(model.filters, function (name, callback) { + model._add_filter(name, callback); + }); + + // setup events + $.each(model.events, function (name, callback) { + model._add_event(name, callback); + }); + + // return + return model; + }, + _add_action: function (name, callback) { + // split + var model = this, + data = name.split(' '); + + // add missing priority + var name = data[0] || '', + priority = data[1] || 10; + + // add action + acf.add_action(name, model[callback], priority, model); + }, + _add_filter: function (name, callback) { + // split + var model = this, + data = name.split(' '); + + // add missing priority + var name = data[0] || '', + priority = data[1] || 10; + + // add action + acf.add_filter(name, model[callback], priority, model); + }, + _add_event: function (name, callback) { + // vars + var model = this, + i = name.indexOf(' '), + event = i > 0 ? name.substr(0, i) : name, + selector = i > 0 ? name.substr(i + 1) : ''; + + // event + var fn = function (e) { + // append $el to event object + e.$el = $(this); + + // append $field to event object (used in field group) + if (acf.field_group) { + e.$field = e.$el.closest('.acf-field-object'); + } + + // event + if (typeof model.event === 'function') { + e = model.event(e); + } + + // callback + model[callback].apply(model, arguments); + }; + + // add event + if (selector) { + $(document).on(event, selector, fn); + } else { + $(document).on(event, fn); + } + }, + get: function (name, value) { + // defaults + value = value || null; + + // get + if (typeof this[name] !== 'undefined') { + value = this[name]; + } + + // return + return value; + }, + set: function (name, value) { + // set + this[name] = value; + + // function for 3rd party + if (typeof this['_set_' + name] === 'function') { + this['_set_' + name].apply(this); + } + + // return for chaining + return this; + } + }; + + /* + * field + * + * This model sets up many of the field's interactions + * + * @type function + * @date 21/02/2014 + * @since 3.5.1 + * + * @param n/a + * @return n/a + */ + + _acf.field = acf.model.extend({ + type: '', + o: {}, + $field: null, + _add_action: function (name, callback) { + // vars + var model = this; + + // update name + name = name + '_field/type=' + model.type; + + // add action + acf.add_action(name, function ($field) { + // focus + model.set('$field', $field); + + // callback + model[callback].apply(model, arguments); + }); + }, + _add_filter: function (name, callback) { + // vars + var model = this; + + // update name + name = name + '_field/type=' + model.type; + + // add action + acf.add_filter(name, function ($field) { + // focus + model.set('$field', $field); + + // callback + model[callback].apply(model, arguments); + }); + }, + _add_event: function (name, callback) { + // vars + var model = this, + event = name.substr(0, name.indexOf(' ')), + selector = name.substr(name.indexOf(' ') + 1), + context = acf.get_selector(model.type); + + // add event + $(document).on(event, context + ' ' + selector, function (e) { + // vars + var $el = $(this); + var $field = acf.get_closest_field($el, model.type); + + // bail early if no field + if (!$field.length) return; + + // focus + if (!$field.is(model.$field)) { + model.set('$field', $field); + } + + // append to event + e.$el = $el; + e.$field = $field; + + // callback + model[callback].apply(model, [e]); + }); + }, + _set_$field: function () { + // callback + if (typeof this.focus === 'function') { + this.focus(); + } + }, + // depreciated + doFocus: function ($field) { + return this.set('$field', $field); + } + }); + + /** + * validation + * + * description + * + * @date 15/2/18 + * @since 5.6.9 + * + * @param type $var Description. Default. + * @return type Description. + */ + + var _validation = acf.newCompatibility(acf.validation, { + remove_error: function ($field) { + acf.getField($field).removeError(); + }, + add_warning: function ($field, message) { + acf.getField($field).showNotice({ + text: message, + type: 'warning', + timeout: 1000 + }); + }, + fetch: acf.validateForm, + enableSubmit: acf.enableSubmit, + disableSubmit: acf.disableSubmit, + showSpinner: acf.showSpinner, + hideSpinner: acf.hideSpinner, + unlockForm: acf.unlockForm, + lockForm: acf.lockForm + }); + + /** + * tooltip + * + * description + * + * @date 15/2/18 + * @since 5.6.9 + * + * @param type $var Description. Default. + * @return type Description. + */ + + _acf.tooltip = { + tooltip: function (text, $el) { + var tooltip = acf.newTooltip({ + text: text, + target: $el + }); + + // return + return tooltip.$el; + }, + temp: function (text, $el) { + var tooltip = acf.newTooltip({ + text: text, + target: $el, + timeout: 250 + }); + }, + confirm: function ($el, callback, text, button_y, button_n) { + var tooltip = acf.newTooltip({ + confirm: true, + text: text, + target: $el, + confirm: function () { + callback(true); + }, + cancel: function () { + callback(false); + } + }); + }, + confirm_remove: function ($el, callback) { + var tooltip = acf.newTooltip({ + confirmRemove: true, + target: $el, + confirm: function () { + callback(true); + }, + cancel: function () { + callback(false); + } + }); + } + }; + + /** + * tooltip + * + * description + * + * @date 15/2/18 + * @since 5.6.9 + * + * @param type $var Description. Default. + * @return type Description. + */ + + _acf.media = new acf.Model({ + activeFrame: false, + actions: { + new_media_popup: 'onNewMediaPopup' + }, + frame: function () { + return this.activeFrame; + }, + onNewMediaPopup: function (popup) { + this.activeFrame = popup.frame; + }, + popup: function (props) { + // update props + if (props.mime_types) { + props.allowedTypes = props.mime_types; + } + if (props.id) { + props.attachment = props.id; + } + + // new + var popup = acf.newMediaPopup(props); + + // append + /* + if( props.selected ) { + popup.selected = props.selected; + } + */ + + // return + return popup.frame; + } + }); + + /** + * Select2 + * + * description + * + * @date 11/6/18 + * @since 5.6.9 + * + * @param type $var Description. Default. + * @return type Description. + */ + + _acf.select2 = { + init: function ($select, args, $field) { + // compatible args + if (args.allow_null) { + args.allowNull = args.allow_null; + } + if (args.ajax_action) { + args.ajaxAction = args.ajax_action; + } + if ($field) { + args.field = acf.getField($field); + } + + // return + return acf.newSelect2($select, args); + }, + destroy: function ($select) { + return acf.getInstance($select).destroy(); + } + }; + + /** + * postbox + * + * description + * + * @date 11/6/18 + * @since 5.6.9 + * + * @param type $var Description. Default. + * @return type Description. + */ + + _acf.postbox = { + render: function (args) { + // compatible args + if (args.edit_url) { + args.editLink = args.edit_url; + } + if (args.edit_title) { + args.editTitle = args.edit_title; + } + + // return + return acf.newPostbox(args); + } + }; + + /** + * acf.screen + * + * description + * + * @date 11/6/18 + * @since 5.6.9 + * + * @param type $var Description. Default. + * @return type Description. + */ + + acf.newCompatibility(acf.screen, { + update: function () { + return this.set.apply(this, arguments); + }, + fetch: acf.screen.check + }); + _acf.ajax = acf.screen; +})(jQuery); + +/***/ }), + +/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-condition-types.js": +/*!******************************************************************************!*\ + !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-condition-types.js ***! + \******************************************************************************/ +/***/ (function() { + +(function ($, undefined) { + var __ = acf.__; + var parseString = function (val) { + return val ? '' + val : ''; + }; + var isEqualTo = function (v1, v2) { + return parseString(v1).toLowerCase() === parseString(v2).toLowerCase(); + }; + var isEqualToNumber = function (v1, v2) { + return parseFloat(v1) === parseFloat(v2); + }; + var isGreaterThan = function (v1, v2) { + return parseFloat(v1) > parseFloat(v2); + }; + var isLessThan = function (v1, v2) { + return parseFloat(v1) < parseFloat(v2); + }; + var inArray = function (v1, array) { + // cast all values as string + array = array.map(function (v2) { + return parseString(v2); + }); + return array.indexOf(v1) > -1; + }; + var containsString = function (haystack, needle) { + return parseString(haystack).indexOf(parseString(needle)) > -1; + }; + var matchesPattern = function (v1, pattern) { + var regexp = new RegExp(parseString(pattern), 'gi'); + return parseString(v1).match(regexp); + }; + + /** + * hasValue + * + * description + * + * @date 1/2/18 + * @since 5.6.5 + * + * @param void + * @return void + */ + + var HasValue = acf.Condition.extend({ + type: 'hasValue', + operator: '!=empty', + label: __('Has any value'), + fieldTypes: ['text', 'textarea', 'number', 'range', 'email', 'url', 'password', 'image', 'file', 'wysiwyg', 'oembed', 'select', 'checkbox', 'radio', 'button_group', 'link', 'post_object', 'page_link', 'relationship', 'taxonomy', 'user', 'google_map', 'date_picker', 'date_time_picker', 'time_picker', 'color_picker'], + match: function (rule, field) { + let val = field.val(); + if (val instanceof Array) { + val = val.length; + } + return val ? true : false; + }, + choices: function (fieldObject) { + return ''; + } + }); + acf.registerConditionType(HasValue); + + /** + * hasValue + * + * description + * + * @date 1/2/18 + * @since 5.6.5 + * + * @param void + * @return void + */ + + var HasNoValue = HasValue.extend({ + type: 'hasNoValue', + operator: '==empty', + label: __('Has no value'), + match: function (rule, field) { + return !HasValue.prototype.match.apply(this, arguments); + } + }); + acf.registerConditionType(HasNoValue); + + /** + * EqualTo + * + * description + * + * @date 1/2/18 + * @since 5.6.5 + * + * @param void + * @return void + */ + + var EqualTo = acf.Condition.extend({ + type: 'equalTo', + operator: '==', + label: __('Value is equal to'), + fieldTypes: ['text', 'textarea', 'number', 'range', 'email', 'url', 'password'], + match: function (rule, field) { + if (acf.isNumeric(rule.value)) { + return isEqualToNumber(rule.value, field.val()); + } else { + return isEqualTo(rule.value, field.val()); + } + }, + choices: function (fieldObject) { + return ''; + } + }); + acf.registerConditionType(EqualTo); + + /** + * NotEqualTo + * + * description + * + * @date 1/2/18 + * @since 5.6.5 + * + * @param void + * @return void + */ + + var NotEqualTo = EqualTo.extend({ + type: 'notEqualTo', + operator: '!=', + label: __('Value is not equal to'), + match: function (rule, field) { + return !EqualTo.prototype.match.apply(this, arguments); + } + }); + acf.registerConditionType(NotEqualTo); + + /** + * PatternMatch + * + * description + * + * @date 1/2/18 + * @since 5.6.5 + * + * @param void + * @return void + */ + + var PatternMatch = acf.Condition.extend({ + type: 'patternMatch', + operator: '==pattern', + label: __('Value matches pattern'), + fieldTypes: ['text', 'textarea', 'email', 'url', 'password', 'wysiwyg'], + match: function (rule, field) { + return matchesPattern(field.val(), rule.value); + }, + choices: function (fieldObject) { + return ''; + } + }); + acf.registerConditionType(PatternMatch); + + /** + * Contains + * + * description + * + * @date 1/2/18 + * @since 5.6.5 + * + * @param void + * @return void + */ + + var Contains = acf.Condition.extend({ + type: 'contains', + operator: '==contains', + label: __('Value contains'), + fieldTypes: ['text', 'textarea', 'number', 'email', 'url', 'password', 'wysiwyg', 'oembed', 'select'], + match: function (rule, field) { + return containsString(field.val(), rule.value); + }, + choices: function (fieldObject) { + return ''; + } + }); + acf.registerConditionType(Contains); + + /** + * TrueFalseEqualTo + * + * description + * + * @date 1/2/18 + * @since 5.6.5 + * + * @param void + * @return void + */ + + var TrueFalseEqualTo = EqualTo.extend({ + type: 'trueFalseEqualTo', + choiceType: 'select', + fieldTypes: ['true_false'], + choices: function (field) { + return [{ + id: 1, + text: __('Checked') + }]; + } + }); + acf.registerConditionType(TrueFalseEqualTo); + + /** + * TrueFalseNotEqualTo + * + * description + * + * @date 1/2/18 + * @since 5.6.5 + * + * @param void + * @return void + */ + + var TrueFalseNotEqualTo = NotEqualTo.extend({ + type: 'trueFalseNotEqualTo', + choiceType: 'select', + fieldTypes: ['true_false'], + choices: function (field) { + return [{ + id: 1, + text: __('Checked') + }]; + } + }); + acf.registerConditionType(TrueFalseNotEqualTo); + + /** + * SelectEqualTo + * + * description + * + * @date 1/2/18 + * @since 5.6.5 + * + * @param void + * @return void + */ + + var SelectEqualTo = acf.Condition.extend({ + type: 'selectEqualTo', + operator: '==', + label: __('Value is equal to'), + fieldTypes: ['select', 'checkbox', 'radio', 'button_group'], + match: function (rule, field) { + var val = field.val(); + if (val instanceof Array) { + return inArray(rule.value, val); + } else { + return isEqualTo(rule.value, val); + } + }, + choices: function (fieldObject) { + // vars + var choices = []; + var lines = fieldObject.$setting('choices textarea').val().split('\n'); + + // allow null + if (fieldObject.$input('allow_null').prop('checked')) { + choices.push({ + id: '', + text: __('Null') + }); + } + + // loop + lines.map(function (line) { + // split + line = line.split(':'); + + // default label to value + line[1] = line[1] || line[0]; + + // append + choices.push({ + id: line[0].trim(), + text: line[1].trim() + }); + }); + + // return + return choices; + } + }); + acf.registerConditionType(SelectEqualTo); + + /** + * SelectNotEqualTo + * + * description + * + * @date 1/2/18 + * @since 5.6.5 + * + * @param void + * @return void + */ + + var SelectNotEqualTo = SelectEqualTo.extend({ + type: 'selectNotEqualTo', + operator: '!=', + label: __('Value is not equal to'), + match: function (rule, field) { + return !SelectEqualTo.prototype.match.apply(this, arguments); + } + }); + acf.registerConditionType(SelectNotEqualTo); + + /** + * GreaterThan + * + * description + * + * @date 1/2/18 + * @since 5.6.5 + * + * @param void + * @return void + */ + + var GreaterThan = acf.Condition.extend({ + type: 'greaterThan', + operator: '>', + label: __('Value is greater than'), + fieldTypes: ['number', 'range'], + match: function (rule, field) { + var val = field.val(); + if (val instanceof Array) { + val = val.length; + } + return isGreaterThan(val, rule.value); + }, + choices: function (fieldObject) { + return ''; + } + }); + acf.registerConditionType(GreaterThan); + + /** + * LessThan + * + * description + * + * @date 1/2/18 + * @since 5.6.5 + * + * @param void + * @return void + */ + + var LessThan = GreaterThan.extend({ + type: 'lessThan', + operator: '<', + label: __('Value is less than'), + match: function (rule, field) { + var val = field.val(); + if (val instanceof Array) { + val = val.length; + } + if (val === undefined || val === null || val === false) { + return true; + } + return isLessThan(val, rule.value); + }, + choices: function (fieldObject) { + return ''; + } + }); + acf.registerConditionType(LessThan); + + /** + * SelectedGreaterThan + * + * description + * + * @date 1/2/18 + * @since 5.6.5 + * + * @param void + * @return void + */ + + var SelectionGreaterThan = GreaterThan.extend({ + type: 'selectionGreaterThan', + label: __('Selection is greater than'), + fieldTypes: ['checkbox', 'select', 'post_object', 'page_link', 'relationship', 'taxonomy', 'user'] + }); + acf.registerConditionType(SelectionGreaterThan); + + /** + * SelectedGreaterThan + * + * description + * + * @date 1/2/18 + * @since 5.6.5 + * + * @param void + * @return void + */ + + var SelectionLessThan = LessThan.extend({ + type: 'selectionLessThan', + label: __('Selection is less than'), + fieldTypes: ['checkbox', 'select', 'post_object', 'page_link', 'relationship', 'taxonomy', 'user'] + }); + acf.registerConditionType(SelectionLessThan); +})(jQuery); + +/***/ }), + +/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-condition.js": +/*!************************************************************************!*\ + !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-condition.js ***! + \************************************************************************/ +/***/ (function() { + +(function ($, undefined) { + // vars + var storage = []; + + /** + * acf.Condition + * + * description + * + * @date 23/3/18 + * @since 5.6.9 + * + * @param type $var Description. Default. + * @return type Description. + */ + + acf.Condition = acf.Model.extend({ + type: '', + // used for model name + operator: '==', + // rule operator + label: '', + // label shown when editing fields + choiceType: 'input', + // input, select + fieldTypes: [], + // auto connect this conditions with these field types + + data: { + conditions: false, + // the parent instance + field: false, + // the field which we query against + rule: {} // the rule [field, operator, value] + }, + + events: { + change: 'change', + keyup: 'change', + enableField: 'change', + disableField: 'change' + }, + setup: function (props) { + $.extend(this.data, props); + }, + getEventTarget: function ($el, event) { + return $el || this.get('field').$el; + }, + change: function (e, $el) { + this.get('conditions').change(e); + }, + match: function (rule, field) { + return false; + }, + calculate: function () { + return this.match(this.get('rule'), this.get('field')); + }, + choices: function (field) { + return ''; + } + }); + + /** + * acf.newCondition + * + * description + * + * @date 1/2/18 + * @since 5.6.5 + * + * @param type $var Description. Default. + * @return type Description. + */ + + acf.newCondition = function (rule, conditions) { + // currently setting up conditions for fieldX, this field is the 'target' + var target = conditions.get('field'); + + // use the 'target' to find the 'trigger' field. + // - this field is used to setup the conditional logic events + var field = target.getField(rule.field); + + // bail early if no target or no field (possible if field doesn't exist due to HTML error) + if (!target || !field) { + return false; + } + + // vars + var args = { + rule: rule, + target: target, + conditions: conditions, + field: field + }; + + // vars + var fieldType = field.get('type'); + var operator = rule.operator; + + // get avaibale conditions + var conditionTypes = acf.getConditionTypes({ + fieldType: fieldType, + operator: operator + }); + + // instantiate + var model = conditionTypes[0] || acf.Condition; + + // instantiate + var condition = new model(args); + + // return + return condition; + }; + + /** + * mid + * + * Calculates the model ID for a field type + * + * @date 15/12/17 + * @since 5.6.5 + * + * @param string type + * @return string + */ + + var modelId = function (type) { + return acf.strPascalCase(type || '') + 'Condition'; + }; + + /** + * acf.registerConditionType + * + * description + * + * @date 1/2/18 + * @since 5.6.5 + * + * @param type $var Description. Default. + * @return type Description. + */ + + acf.registerConditionType = function (model) { + // vars + var proto = model.prototype; + var type = proto.type; + var mid = modelId(type); + + // store model + acf.models[mid] = model; + + // store reference + storage.push(type); + }; + + /** + * acf.getConditionType + * + * description + * + * @date 1/2/18 + * @since 5.6.5 + * + * @param type $var Description. Default. + * @return type Description. + */ + + acf.getConditionType = function (type) { + var mid = modelId(type); + return acf.models[mid] || false; + }; + + /** + * acf.registerConditionForFieldType + * + * description + * + * @date 1/2/18 + * @since 5.6.5 + * + * @param type $var Description. Default. + * @return type Description. + */ + + acf.registerConditionForFieldType = function (conditionType, fieldType) { + // get model + var model = acf.getConditionType(conditionType); + + // append + if (model) { + model.prototype.fieldTypes.push(fieldType); + } + }; + + /** + * acf.getConditionTypes + * + * description + * + * @date 1/2/18 + * @since 5.6.5 + * + * @param type $var Description. Default. + * @return type Description. + */ + + acf.getConditionTypes = function (args) { + // defaults + args = acf.parseArgs(args, { + fieldType: '', + operator: '' + }); + + // clonse available types + var types = []; + + // loop + storage.map(function (type) { + // vars + var model = acf.getConditionType(type); + var ProtoFieldTypes = model.prototype.fieldTypes; + var ProtoOperator = model.prototype.operator; + + // check fieldType + if (args.fieldType && ProtoFieldTypes.indexOf(args.fieldType) === -1) { + return; + } + + // check operator + if (args.operator && ProtoOperator !== args.operator) { + return; + } + + // append + types.push(model); + }); + + // return + return types; + }; +})(jQuery); + +/***/ }), + +/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-conditions.js": +/*!*************************************************************************!*\ + !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-conditions.js ***! + \*************************************************************************/ +/***/ (function() { + +(function ($, undefined) { + // vars + var CONTEXT = 'conditional_logic'; + + /** + * conditionsManager + * + * description + * + * @date 1/2/18 + * @since 5.6.5 + * + * @param type $var Description. Default. + * @return type Description. + */ + + var conditionsManager = new acf.Model({ + id: 'conditionsManager', + priority: 20, + // run actions later + + actions: { + new_field: 'onNewField' + }, + onNewField: function (field) { + if (field.has('conditions')) { + field.getConditions().render(); + } + } + }); + + /** + * acf.Field.prototype.getField + * + * Finds a field that is related to another field + * + * @date 1/2/18 + * @since 5.6.5 + * + * @param type $var Description. Default. + * @return type Description. + */ + + var getSiblingField = function (field, key) { + // find sibling (very fast) + var fields = acf.getFields({ + key: key, + sibling: field.$el, + suppressFilters: true + }); + + // find sibling-children (fast) + // needed for group fields, accordions, etc + if (!fields.length) { + fields = acf.getFields({ + key: key, + parent: field.$el.parent(), + suppressFilters: true + }); + } + + // Check for fields on other settings tabs (probably less fast). + if (!fields.length && $('.acf-field-settings').length) { + fields = acf.getFields({ + key: key, + parent: field.$el.parents('.acf-field-settings:first'), + suppressFilters: true + }); + } + if (!fields.length && $('#acf-basic-settings').length) { + fields = acf.getFields({ + key: key, + parent: $('#acf-basic-settings'), + suppressFilters: true + }); + } + + // return + if (fields.length) { + return fields[0]; + } + return false; + }; + acf.Field.prototype.getField = function (key) { + // get sibling field + var field = getSiblingField(this, key); + + // return early + if (field) { + return field; + } + + // move up through each parent and try again + var parents = this.parents(); + for (var i = 0; i < parents.length; i++) { + // get sibling field + field = getSiblingField(parents[i], key); + + // return early + if (field) { + return field; + } + } + + // return + return false; + }; + + /** + * acf.Field.prototype.getConditions + * + * Returns the field's conditions instance + * + * @date 1/2/18 + * @since 5.6.5 + * + * @param type $var Description. Default. + * @return type Description. + */ + + acf.Field.prototype.getConditions = function () { + // instantiate + if (!this.conditions) { + this.conditions = new Conditions(this); + } + + // return + return this.conditions; + }; + + /** + * Conditions + * + * description + * + * @date 1/2/18 + * @since 5.6.5 + * + * @param type $var Description. Default. + * @return type Description. + */ + var timeout = false; + var Conditions = acf.Model.extend({ + id: 'Conditions', + data: { + field: false, + // The field with "data-conditions" (target). + timeStamp: false, + // Reference used during "change" event. + groups: [] // The groups of condition instances. + }, + + setup: function (field) { + // data + this.data.field = field; + + // vars + var conditions = field.get('conditions'); + + // detect groups + if (conditions instanceof Array) { + // detect groups + if (conditions[0] instanceof Array) { + // loop + conditions.map(function (rules, i) { + this.addRules(rules, i); + }, this); + + // detect rules + } else { + this.addRules(conditions); + } + + // detect rule + } else { + this.addRule(conditions); + } + }, + change: function (e) { + // this function may be triggered multiple times per event due to multiple condition classes + // compare timestamp to allow only 1 trigger per event + if (this.get('timeStamp') === e.timeStamp) { + return false; + } else { + this.set('timeStamp', e.timeStamp, true); + } + + // render condition and store result + var changed = this.render(); + }, + render: function () { + return this.calculate() ? this.show() : this.hide(); + }, + show: function () { + return this.get('field').showEnable(this.cid, CONTEXT); + }, + hide: function () { + return this.get('field').hideDisable(this.cid, CONTEXT); + }, + calculate: function () { + // vars + var pass = false; + + // loop + this.getGroups().map(function (group) { + // igrnore this group if another group passed + if (pass) return; + + // find passed + var passed = group.filter(function (condition) { + return condition.calculate(); + }); + + // if all conditions passed, update the global var + if (passed.length == group.length) { + pass = true; + } + }); + return pass; + }, + hasGroups: function () { + return this.data.groups != null; + }, + getGroups: function () { + return this.data.groups; + }, + addGroup: function () { + var group = []; + this.data.groups.push(group); + return group; + }, + hasGroup: function (i) { + return this.data.groups[i] != null; + }, + getGroup: function (i) { + return this.data.groups[i]; + }, + removeGroup: function (i) { + this.data.groups[i].delete; + return this; + }, + addRules: function (rules, group) { + rules.map(function (rule) { + this.addRule(rule, group); + }, this); + }, + addRule: function (rule, group) { + // defaults + group = group || 0; + + // vars + var groupArray; + + // get group + if (this.hasGroup(group)) { + groupArray = this.getGroup(group); + } else { + groupArray = this.addGroup(); + } + + // instantiate + var condition = acf.newCondition(rule, this); + + // bail early if condition failed (field did not exist) + if (!condition) { + return false; + } + + // add rule + groupArray.push(condition); + }, + hasRule: function () {}, + getRule: function (rule, group) { + // defaults + rule = rule || 0; + group = group || 0; + return this.data.groups[group][rule]; + }, + removeRule: function () {} + }); +})(jQuery); + +/***/ }), + +/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-accordion.js": +/*!******************************************************************************!*\ + !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-field-accordion.js ***! + \******************************************************************************/ +/***/ (function() { + +(function ($, undefined) { + var i = 0; + var Field = acf.Field.extend({ + type: 'accordion', + wait: '', + $control: function () { + return this.$('.acf-fields:first'); + }, + initialize: function () { + // Bail early if this is a duplicate of an existing initialized accordion. + if (this.$el.hasClass('acf-accordion')) { + return; + } + + // bail early if is cell + if (this.$el.is('td')) return; + + // enpoint + if (this.get('endpoint')) { + return this.remove(); + } + + // vars + var $field = this.$el; + var $label = this.$labelWrap(); + var $input = this.$inputWrap(); + var $wrap = this.$control(); + var $instructions = $input.children('.description'); + + // force description into label + if ($instructions.length) { + $label.append($instructions); + } + + // table + if (this.$el.is('tr')) { + // vars + var $table = this.$el.closest('table'); + var $newLabel = $('
    '); + var $newInput = $('
    '); + var $newTable = $(''); + var $newWrap = $(''); + + // dom + $newLabel.append($label.html()); + $newTable.append($newWrap); + $newInput.append($newTable); + $input.append($newLabel); + $input.append($newInput); + + // modify + $label.remove(); + $wrap.remove(); + $input.attr('colspan', 2); + + // update vars + $label = $newLabel; + $input = $newInput; + $wrap = $newWrap; + } + + // add classes + $field.addClass('acf-accordion'); + $label.addClass('acf-accordion-title'); + $input.addClass('acf-accordion-content'); + + // index + i++; + + // multi-expand + if (this.get('multi_expand')) { + $field.attr('multi-expand', 1); + } + + // open + var order = acf.getPreference('this.accordions') || []; + if (order[i - 1] !== undefined) { + this.set('open', order[i - 1]); + } + if (this.get('open')) { + $field.addClass('-open'); + $input.css('display', 'block'); // needed for accordion to close smoothly + } + + // add icon + $label.prepend(accordionManager.iconHtml({ + open: this.get('open') + })); + + // classes + // - remove 'inside' which is a #poststuff WP class + var $parent = $field.parent(); + $wrap.addClass($parent.hasClass('-left') ? '-left' : ''); + $wrap.addClass($parent.hasClass('-clear') ? '-clear' : ''); + + // append + $wrap.append($field.nextUntil('.acf-field-accordion', '.acf-field')); + + // clean up + $wrap.removeAttr('data-open data-multi_expand data-endpoint'); + } + }); + acf.registerFieldType(Field); + + /** + * accordionManager + * + * Events manager for the acf accordion + * + * @date 14/2/18 + * @since 5.6.9 + * + * @param void + * @return void + */ + + var accordionManager = new acf.Model({ + actions: { + unload: 'onUnload' + }, + events: { + 'click .acf-accordion-title': 'onClick', + 'invalidField .acf-accordion': 'onInvalidField' + }, + isOpen: function ($el) { + return $el.hasClass('-open'); + }, + toggle: function ($el) { + if (this.isOpen($el)) { + this.close($el); + } else { + this.open($el); + } + }, + iconHtml: function (props) { + // Use SVG inside Gutenberg editor. + if (acf.isGutenberg()) { + if (props.open) { + return ''; + } else { + return ''; + } + } else { + if (props.open) { + return ''; + } else { + return ''; + } + } + }, + open: function ($el) { + var duration = acf.isGutenberg() ? 0 : 300; + + // open + $el.find('.acf-accordion-content:first').slideDown(duration).css('display', 'block'); + $el.find('.acf-accordion-icon:first').replaceWith(this.iconHtml({ + open: true + })); + $el.addClass('-open'); + + // action + acf.doAction('show', $el); + + // close siblings + if (!$el.attr('multi-expand')) { + $el.siblings('.acf-accordion.-open').each(function () { + accordionManager.close($(this)); + }); + } + }, + close: function ($el) { + var duration = acf.isGutenberg() ? 0 : 300; + + // close + $el.find('.acf-accordion-content:first').slideUp(duration); + $el.find('.acf-accordion-icon:first').replaceWith(this.iconHtml({ + open: false + })); + $el.removeClass('-open'); + + // action + acf.doAction('hide', $el); + }, + onClick: function (e, $el) { + // prevent Defailt + e.preventDefault(); + + // open close + this.toggle($el.parent()); + }, + onInvalidField: function (e, $el) { + // bail early if already focused + if (this.busy) { + return; + } + + // disable functionality for 1sec (allow next validation to work) + this.busy = true; + this.setTimeout(function () { + this.busy = false; + }, 1000); + + // open accordion + this.open($el); + }, + onUnload: function (e) { + // vars + var order = []; + + // loop + $('.acf-accordion').each(function () { + var open = $(this).hasClass('-open') ? 1 : 0; + order.push(open); + }); + + // set + if (order.length) { + acf.setPreference('this.accordions', order); + } + } + }); +})(jQuery); + +/***/ }), + +/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-button-group.js": +/*!*********************************************************************************!*\ + !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-field-button-group.js ***! + \*********************************************************************************/ +/***/ (function() { + +(function ($, undefined) { + var Field = acf.Field.extend({ + type: 'button_group', + events: { + 'click input[type="radio"]': 'onClick' + }, + $control: function () { + return this.$('.acf-button-group'); + }, + $input: function () { + return this.$('input:checked'); + }, + setValue: function (val) { + this.$('input[value="' + val + '"]').prop('checked', true).trigger('change'); + }, + onClick: function (e, $el) { + // vars + var $label = $el.parent('label'); + var selected = $label.hasClass('selected'); + + // remove previous selected + this.$('.selected').removeClass('selected'); + + // add active class + $label.addClass('selected'); + + // allow null + if (this.get('allow_null') && selected) { + $label.removeClass('selected'); + $el.prop('checked', false).trigger('change'); + } + } + }); + acf.registerFieldType(Field); +})(jQuery); + +/***/ }), + +/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-checkbox.js": +/*!*****************************************************************************!*\ + !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-field-checkbox.js ***! + \*****************************************************************************/ +/***/ (function() { + +(function ($, undefined) { + var Field = acf.Field.extend({ + type: 'checkbox', + events: { + 'change input': 'onChange', + 'click .acf-add-checkbox': 'onClickAdd', + 'click .acf-checkbox-toggle': 'onClickToggle', + 'click .acf-checkbox-custom': 'onClickCustom' + }, + $control: function () { + return this.$('.acf-checkbox-list'); + }, + $toggle: function () { + return this.$('.acf-checkbox-toggle'); + }, + $input: function () { + return this.$('input[type="hidden"]'); + }, + $inputs: function () { + return this.$('input[type="checkbox"]').not('.acf-checkbox-toggle'); + }, + getValue: function () { + var val = []; + this.$(':checked').each(function () { + val.push($(this).val()); + }); + return val.length ? val : false; + }, + onChange: function (e, $el) { + // Vars. + var checked = $el.prop('checked'); + var $label = $el.parent('label'); + var $toggle = this.$toggle(); + + // Add or remove "selected" class. + if (checked) { + $label.addClass('selected'); + } else { + $label.removeClass('selected'); + } + + // Update toggle state if all inputs are checked. + if ($toggle.length) { + var $inputs = this.$inputs(); + + // all checked + if ($inputs.not(':checked').length == 0) { + $toggle.prop('checked', true); + } else { + $toggle.prop('checked', false); + } + } + }, + onClickAdd: function (e, $el) { + var html = '
  • '; + $el.parent('li').before(html); + $el.parent('li').parent().find('input[type="text"]').last().focus(); + }, + onClickToggle: function (e, $el) { + // Vars. + var checked = $el.prop('checked'); + var $inputs = this.$('input[type="checkbox"]'); + var $labels = this.$('label'); + + // Update "checked" state. + $inputs.prop('checked', checked); + + // Add or remove "selected" class. + if (checked) { + $labels.addClass('selected'); + } else { + $labels.removeClass('selected'); + } + }, + onClickCustom: function (e, $el) { + var checked = $el.prop('checked'); + var $text = $el.next('input[type="text"]'); + + // checked + if (checked) { + $text.prop('disabled', false); + + // not checked + } else { + $text.prop('disabled', true); + + // remove + if ($text.val() == '') { + $el.parent('li').remove(); + } + } + } + }); + acf.registerFieldType(Field); +})(jQuery); + +/***/ }), + +/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-color-picker.js": +/*!*********************************************************************************!*\ + !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-field-color-picker.js ***! + \*********************************************************************************/ +/***/ (function() { + +(function ($, undefined) { + var Field = acf.Field.extend({ + type: 'color_picker', + wait: 'load', + events: { + duplicateField: 'onDuplicate' + }, + $control: function () { + return this.$('.acf-color-picker'); + }, + $input: function () { + return this.$('input[type="hidden"]'); + }, + $inputText: function () { + return this.$('input[type="text"]'); + }, + setValue: function (val) { + // update input (with change) + acf.val(this.$input(), val); + + // update iris + this.$inputText().iris('color', val); + }, + initialize: function () { + // vars + var $input = this.$input(); + var $inputText = this.$inputText(); + + // event + var onChange = function (e) { + // timeout is required to ensure the $input val is correct + setTimeout(function () { + acf.val($input, $inputText.val()); + }, 1); + }; + + // args + var args = { + defaultColor: false, + palettes: true, + hide: true, + change: onChange, + clear: onChange + }; + + // filter + var args = acf.applyFilters('color_picker_args', args, this); + + // initialize + $inputText.wpColorPicker(args); + }, + onDuplicate: function (e, $el, $duplicate) { + // The wpColorPicker library does not provide a destroy method. + // Manually reset DOM by replacing elements back to their original state. + $colorPicker = $duplicate.find('.wp-picker-container'); + $inputText = $duplicate.find('input[type="text"]'); + $colorPicker.replaceWith($inputText); + } + }); + acf.registerFieldType(Field); +})(jQuery); + +/***/ }), + +/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-date-picker.js": +/*!********************************************************************************!*\ + !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-field-date-picker.js ***! + \********************************************************************************/ +/***/ (function() { + +(function ($, undefined) { + var Field = acf.Field.extend({ + type: 'date_picker', + events: { + 'blur input[type="text"]': 'onBlur', + duplicateField: 'onDuplicate' + }, + $control: function () { + return this.$('.acf-date-picker'); + }, + $input: function () { + return this.$('input[type="hidden"]'); + }, + $inputText: function () { + return this.$('input[type="text"]'); + }, + initialize: function () { + // save_format: compatibility with ACF < 5.0.0 + if (this.has('save_format')) { + return this.initializeCompatibility(); + } + + // vars + var $input = this.$input(); + var $inputText = this.$inputText(); + + // args + var args = { + dateFormat: this.get('date_format'), + altField: $input, + altFormat: 'yymmdd', + changeYear: true, + yearRange: '-100:+100', + changeMonth: true, + showButtonPanel: true, + firstDay: this.get('first_day') + }; + + // filter + args = acf.applyFilters('date_picker_args', args, this); + + // add date picker + acf.newDatePicker($inputText, args); + + // action + acf.doAction('date_picker_init', $inputText, args, this); + }, + initializeCompatibility: function () { + // vars + var $input = this.$input(); + var $inputText = this.$inputText(); + + // get and set value from alt field + $inputText.val($input.val()); + + // args + var args = { + dateFormat: this.get('date_format'), + altField: $input, + altFormat: this.get('save_format'), + changeYear: true, + yearRange: '-100:+100', + changeMonth: true, + showButtonPanel: true, + firstDay: this.get('first_day') + }; + + // filter for 3rd party customization + args = acf.applyFilters('date_picker_args', args, this); + + // backup + var dateFormat = args.dateFormat; + + // change args.dateFormat + args.dateFormat = this.get('save_format'); + + // add date picker + acf.newDatePicker($inputText, args); + + // now change the format back to how it should be. + $inputText.datepicker('option', 'dateFormat', dateFormat); + + // action for 3rd party customization + acf.doAction('date_picker_init', $inputText, args, this); + }, + onBlur: function () { + if (!this.$inputText().val()) { + acf.val(this.$input(), ''); + } + }, + onDuplicate: function (e, $el, $duplicate) { + $duplicate.find('input[type="text"]').removeClass('hasDatepicker').removeAttr('id'); + } + }); + acf.registerFieldType(Field); + + // manager + var datePickerManager = new acf.Model({ + priority: 5, + wait: 'ready', + initialize: function () { + // vars + var locale = acf.get('locale'); + var rtl = acf.get('rtl'); + var l10n = acf.get('datePickerL10n'); + + // bail early if no l10n + if (!l10n) { + return false; + } + + // bail early if no datepicker library + if (typeof $.datepicker === 'undefined') { + return false; + } + + // rtl + l10n.isRTL = rtl; + + // append + $.datepicker.regional[locale] = l10n; + $.datepicker.setDefaults(l10n); + } + }); + + // add + acf.newDatePicker = function ($input, args) { + // bail early if no datepicker library + if (typeof $.datepicker === 'undefined') { + return false; + } + + // defaults + args = args || {}; + + // initialize + $input.datepicker(args); + + // wrap the datepicker (only if it hasn't already been wrapped) + if ($('body > #ui-datepicker-div').exists()) { + $('body > #ui-datepicker-div').wrap('
    '); + } + }; +})(jQuery); + +/***/ }), + +/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-date-time-picker.js": +/*!*************************************************************************************!*\ + !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-field-date-time-picker.js ***! + \*************************************************************************************/ +/***/ (function() { + +(function ($, undefined) { + var Field = acf.models.DatePickerField.extend({ + type: 'date_time_picker', + $control: function () { + return this.$('.acf-date-time-picker'); + }, + initialize: function () { + // vars + var $input = this.$input(); + var $inputText = this.$inputText(); + + // args + var args = { + dateFormat: this.get('date_format'), + timeFormat: this.get('time_format'), + altField: $input, + altFieldTimeOnly: false, + altFormat: 'yy-mm-dd', + altTimeFormat: 'HH:mm:ss', + changeYear: true, + yearRange: '-100:+100', + changeMonth: true, + showButtonPanel: true, + firstDay: this.get('first_day'), + controlType: 'select', + oneLine: true + }; + + // filter + args = acf.applyFilters('date_time_picker_args', args, this); + + // add date time picker + acf.newDateTimePicker($inputText, args); + + // action + acf.doAction('date_time_picker_init', $inputText, args, this); + } + }); + acf.registerFieldType(Field); + + // manager + var dateTimePickerManager = new acf.Model({ + priority: 5, + wait: 'ready', + initialize: function () { + // vars + var locale = acf.get('locale'); + var rtl = acf.get('rtl'); + var l10n = acf.get('dateTimePickerL10n'); + + // bail early if no l10n + if (!l10n) { + return false; + } + + // bail early if no datepicker library + if (typeof $.timepicker === 'undefined') { + return false; + } + + // rtl + l10n.isRTL = rtl; + + // append + $.timepicker.regional[locale] = l10n; + $.timepicker.setDefaults(l10n); + } + }); + + // add + acf.newDateTimePicker = function ($input, args) { + // bail early if no datepicker library + if (typeof $.timepicker === 'undefined') { + return false; + } + + // defaults + args = args || {}; + + // initialize + $input.datetimepicker(args); + + // wrap the datepicker (only if it hasn't already been wrapped) + if ($('body > #ui-datepicker-div').exists()) { + $('body > #ui-datepicker-div').wrap('
    '); + } + }; +})(jQuery); + +/***/ }), + +/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-file.js": +/*!*************************************************************************!*\ + !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-field-file.js ***! + \*************************************************************************/ +/***/ (function() { + +(function ($, undefined) { + var Field = acf.models.ImageField.extend({ + type: 'file', + $control: function () { + return this.$('.acf-file-uploader'); + }, + $input: function () { + return this.$('input[type="hidden"]:first'); + }, + validateAttachment: function (attachment) { + // defaults + attachment = attachment || {}; + + // WP attachment + if (attachment.id !== undefined) { + attachment = attachment.attributes; + } + + // args + attachment = acf.parseArgs(attachment, { + url: '', + alt: '', + title: '', + filename: '', + filesizeHumanReadable: '', + icon: '/wp-includes/images/media/default.png' + }); + + // return + return attachment; + }, + render: function (attachment) { + // vars + attachment = this.validateAttachment(attachment); + + // update image + this.$('img').attr({ + src: attachment.icon, + alt: attachment.alt, + title: attachment.title + }); + + // update elements + this.$('[data-name="title"]').text(attachment.title); + this.$('[data-name="filename"]').text(attachment.filename).attr('href', attachment.url); + this.$('[data-name="filesize"]').text(attachment.filesizeHumanReadable); + + // vars + var val = attachment.id || ''; + + // update val + acf.val(this.$input(), val); + + // update class + if (val) { + this.$control().addClass('has-value'); + } else { + this.$control().removeClass('has-value'); + } + }, + selectAttachment: function () { + // vars + var parent = this.parent(); + var multiple = parent && parent.get('type') === 'repeater'; + + // new frame + var frame = acf.newMediaPopup({ + mode: 'select', + title: acf.__('Select File'), + field: this.get('key'), + multiple: multiple, + library: this.get('library'), + allowedTypes: this.get('mime_types'), + select: $.proxy(function (attachment, i) { + if (i > 0) { + this.append(attachment, parent); + } else { + this.render(attachment); + } + }, this) + }); + }, + editAttachment: function () { + // vars + var val = this.val(); + + // bail early if no val + if (!val) { + return false; + } + + // popup + var frame = acf.newMediaPopup({ + mode: 'edit', + title: acf.__('Edit File'), + button: acf.__('Update File'), + attachment: val, + field: this.get('key'), + select: $.proxy(function (attachment, i) { + this.render(attachment); + }, this) + }); + } + }); + acf.registerFieldType(Field); +})(jQuery); + +/***/ }), + +/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-google-map.js": +/*!*******************************************************************************!*\ + !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-field-google-map.js ***! + \*******************************************************************************/ +/***/ (function() { + +(function ($, undefined) { + var Field = acf.Field.extend({ + type: 'google_map', + map: false, + wait: 'load', + events: { + 'click a[data-name="clear"]': 'onClickClear', + 'click a[data-name="locate"]': 'onClickLocate', + 'click a[data-name="search"]': 'onClickSearch', + 'keydown .search': 'onKeydownSearch', + 'keyup .search': 'onKeyupSearch', + 'focus .search': 'onFocusSearch', + 'blur .search': 'onBlurSearch', + showField: 'onShow' + }, + $control: function () { + return this.$('.acf-google-map'); + }, + $search: function () { + return this.$('.search'); + }, + $canvas: function () { + return this.$('.canvas'); + }, + setState: function (state) { + // Remove previous state classes. + this.$control().removeClass('-value -loading -searching'); + + // Determine auto state based of current value. + if (state === 'default') { + state = this.val() ? 'value' : ''; + } + + // Update state class. + if (state) { + this.$control().addClass('-' + state); + } + }, + getValue: function () { + var val = this.$input().val(); + if (val) { + return JSON.parse(val); + } else { + return false; + } + }, + setValue: function (val, silent) { + // Convert input value. + var valAttr = ''; + if (val) { + valAttr = JSON.stringify(val); + } + + // Update input (with change). + acf.val(this.$input(), valAttr); + + // Bail early if silent update. + if (silent) { + return; + } + + // Render. + this.renderVal(val); + + /** + * Fires immediately after the value has changed. + * + * @date 12/02/2014 + * @since 5.0.0 + * + * @param object|string val The new value. + * @param object map The Google Map isntance. + * @param object field The field instance. + */ + acf.doAction('google_map_change', val, this.map, this); + }, + renderVal: function (val) { + // Value. + if (val) { + this.setState('value'); + this.$search().val(val.address); + this.setPosition(val.lat, val.lng); + + // No value. + } else { + this.setState(''); + this.$search().val(''); + this.map.marker.setVisible(false); + } + }, + newLatLng: function (lat, lng) { + return new google.maps.LatLng(parseFloat(lat), parseFloat(lng)); + }, + setPosition: function (lat, lng) { + // Update marker position. + this.map.marker.setPosition({ + lat: parseFloat(lat), + lng: parseFloat(lng) + }); + + // Show marker. + this.map.marker.setVisible(true); + + // Center map. + this.center(); + }, + center: function () { + // Find marker position. + var position = this.map.marker.getPosition(); + if (position) { + var lat = position.lat(); + var lng = position.lng(); + + // Or find default settings. + } else { + var lat = this.get('lat'); + var lng = this.get('lng'); + } + + // Center map. + this.map.setCenter({ + lat: parseFloat(lat), + lng: parseFloat(lng) + }); + }, + initialize: function () { + // Ensure Google API is loaded and then initialize map. + withAPI(this.initializeMap.bind(this)); + }, + initializeMap: function () { + // Get value ignoring conditional logic status. + var val = this.getValue(); + + // Construct default args. + var args = acf.parseArgs(val, { + zoom: this.get('zoom'), + lat: this.get('lat'), + lng: this.get('lng') + }); + + // Create Map. + var mapArgs = { + scrollwheel: false, + zoom: parseInt(args.zoom), + center: { + lat: parseFloat(args.lat), + lng: parseFloat(args.lng) + }, + mapTypeId: google.maps.MapTypeId.ROADMAP, + marker: { + draggable: true, + raiseOnDrag: true + }, + autocomplete: {} + }; + mapArgs = acf.applyFilters('google_map_args', mapArgs, this); + var map = new google.maps.Map(this.$canvas()[0], mapArgs); + + // Create Marker. + var markerArgs = acf.parseArgs(mapArgs.marker, { + draggable: true, + raiseOnDrag: true, + map: map + }); + markerArgs = acf.applyFilters('google_map_marker_args', markerArgs, this); + var marker = new google.maps.Marker(markerArgs); + + // Maybe Create Autocomplete. + var autocomplete = false; + if (acf.isset(google, 'maps', 'places', 'Autocomplete')) { + var autocompleteArgs = mapArgs.autocomplete || {}; + autocompleteArgs = acf.applyFilters('google_map_autocomplete_args', autocompleteArgs, this); + autocomplete = new google.maps.places.Autocomplete(this.$search()[0], autocompleteArgs); + autocomplete.bindTo('bounds', map); + } + + // Add map events. + this.addMapEvents(this, map, marker, autocomplete); + + // Append references. + map.acf = this; + map.marker = marker; + map.autocomplete = autocomplete; + this.map = map; + + // Set position. + if (val) { + this.setPosition(val.lat, val.lng); + } + + /** + * Fires immediately after the Google Map has been initialized. + * + * @date 12/02/2014 + * @since 5.0.0 + * + * @param object map The Google Map isntance. + * @param object marker The Google Map marker isntance. + * @param object field The field instance. + */ + acf.doAction('google_map_init', map, marker, this); + }, + addMapEvents: function (field, map, marker, autocomplete) { + // Click map. + google.maps.event.addListener(map, 'click', function (e) { + var lat = e.latLng.lat(); + var lng = e.latLng.lng(); + field.searchPosition(lat, lng); + }); + + // Drag marker. + google.maps.event.addListener(marker, 'dragend', function () { + var lat = this.getPosition().lat(); + var lng = this.getPosition().lng(); + field.searchPosition(lat, lng); + }); + + // Autocomplete search. + if (autocomplete) { + google.maps.event.addListener(autocomplete, 'place_changed', function () { + var place = this.getPlace(); + field.searchPlace(place); + }); + } + + // Detect zoom change. + google.maps.event.addListener(map, 'zoom_changed', function () { + var val = field.val(); + if (val) { + val.zoom = map.getZoom(); + field.setValue(val, true); + } + }); + }, + searchPosition: function (lat, lng) { + //console.log('searchPosition', lat, lng ); + + // Start Loading. + this.setState('loading'); + + // Query Geocoder. + var latLng = { + lat: lat, + lng: lng + }; + geocoder.geocode({ + location: latLng + }, function (results, status) { + //console.log('searchPosition', arguments ); + + // End Loading. + this.setState(''); + + // Status failure. + if (status !== 'OK') { + this.showNotice({ + text: acf.__('Location not found: %s').replace('%s', status), + type: 'warning' + }); + + // Success. + } else { + var val = this.parseResult(results[0]); + + // Override lat/lng to match user defined marker location. + // Avoids issue where marker "snaps" to nearest result. + val.lat = lat; + val.lng = lng; + this.val(val); + } + }.bind(this)); + }, + searchPlace: function (place) { + //console.log('searchPlace', place ); + + // Bail early if no place. + if (!place) { + return; + } + + // Selecting from the autocomplete dropdown will return a rich PlaceResult object. + // Be sure to over-write the "formatted_address" value with the one displayed to the user for best UX. + if (place.geometry) { + place.formatted_address = this.$search().val(); + var val = this.parseResult(place); + this.val(val); + + // Searching a custom address will return an empty PlaceResult object. + } else if (place.name) { + this.searchAddress(place.name); + } + }, + searchAddress: function (address) { + //console.log('searchAddress', address ); + + // Bail early if no address. + if (!address) { + return; + } + + // Allow "lat,lng" search. + var latLng = address.split(','); + if (latLng.length == 2) { + var lat = parseFloat(latLng[0]); + var lng = parseFloat(latLng[1]); + if (lat && lng) { + return this.searchPosition(lat, lng); + } + } + + // Start Loading. + this.setState('loading'); + + // Query Geocoder. + geocoder.geocode({ + address: address + }, function (results, status) { + //console.log('searchPosition', arguments ); + + // End Loading. + this.setState(''); + + // Status failure. + if (status !== 'OK') { + this.showNotice({ + text: acf.__('Location not found: %s').replace('%s', status), + type: 'warning' + }); + + // Success. + } else { + var val = this.parseResult(results[0]); + + // Override address data with parameter allowing custom address to be defined in search. + val.address = address; + + // Update value. + this.val(val); + } + }.bind(this)); + }, + searchLocation: function () { + //console.log('searchLocation' ); + + // Check HTML5 geolocation. + if (!navigator.geolocation) { + return alert(acf.__('Sorry, this browser does not support geolocation')); + } + + // Start Loading. + this.setState('loading'); + + // Query Geolocation. + navigator.geolocation.getCurrentPosition( + // Success. + function (results) { + // End Loading. + this.setState(''); + + // Search position. + var lat = results.coords.latitude; + var lng = results.coords.longitude; + this.searchPosition(lat, lng); + }.bind(this), + // Failure. + function (error) { + this.setState(''); + }.bind(this)); + }, + /** + * parseResult + * + * Returns location data for the given GeocoderResult object. + * + * @date 15/10/19 + * @since 5.8.6 + * + * @param object obj A GeocoderResult object. + * @return object + */ + parseResult: function (obj) { + // Construct basic data. + var result = { + address: obj.formatted_address, + lat: obj.geometry.location.lat(), + lng: obj.geometry.location.lng() + }; + + // Add zoom level. + result.zoom = this.map.getZoom(); + + // Add place ID. + if (obj.place_id) { + result.place_id = obj.place_id; + } + + // Add place name. + if (obj.name) { + result.name = obj.name; + } + + // Create search map for address component data. + var map = { + street_number: ['street_number'], + street_name: ['street_address', 'route'], + city: ['locality', 'postal_town'], + state: ['administrative_area_level_1', 'administrative_area_level_2', 'administrative_area_level_3', 'administrative_area_level_4', 'administrative_area_level_5'], + post_code: ['postal_code'], + country: ['country'] + }; + + // Loop over map. + for (var k in map) { + var keywords = map[k]; + + // Loop over address components. + for (var i = 0; i < obj.address_components.length; i++) { + var component = obj.address_components[i]; + var component_type = component.types[0]; + + // Look for matching component type. + if (keywords.indexOf(component_type) !== -1) { + // Append to result. + result[k] = component.long_name; + + // Append short version. + if (component.long_name !== component.short_name) { + result[k + '_short'] = component.short_name; + } + } + } + } + + /** + * Filters the parsed result. + * + * @date 18/10/19 + * @since 5.8.6 + * + * @param object result The parsed result value. + * @param object obj The GeocoderResult object. + */ + return acf.applyFilters('google_map_result', result, obj, this.map, this); + }, + onClickClear: function () { + this.val(false); + }, + onClickLocate: function () { + this.searchLocation(); + }, + onClickSearch: function () { + this.searchAddress(this.$search().val()); + }, + onFocusSearch: function (e, $el) { + this.setState('searching'); + }, + onBlurSearch: function (e, $el) { + // Get saved address value. + var val = this.val(); + var address = val ? val.address : ''; + + // Remove 'is-searching' if value has not changed. + if ($el.val() === address) { + this.setState('default'); + } + }, + onKeyupSearch: function (e, $el) { + // Clear empty value. + if (!$el.val()) { + this.val(false); + } + }, + // Prevent form from submitting. + onKeydownSearch: function (e, $el) { + if (e.which == 13) { + e.preventDefault(); + $el.blur(); + } + }, + // Center map once made visible. + onShow: function () { + if (this.map) { + this.setTimeout(this.center); + } + } + }); + acf.registerFieldType(Field); + + // Vars. + var loading = false; + var geocoder = false; + + /** + * withAPI + * + * Loads the Google Maps API library and troggers callback. + * + * @date 28/3/19 + * @since 5.7.14 + * + * @param function callback The callback to excecute. + * @return void + */ + + function withAPI(callback) { + // Check if geocoder exists. + if (geocoder) { + return callback(); + } + + // Check if geocoder API exists. + if (acf.isset(window, 'google', 'maps', 'Geocoder')) { + geocoder = new google.maps.Geocoder(); + return callback(); + } + + // Geocoder will need to be loaded. Hook callback to action. + acf.addAction('google_map_api_loaded', callback); + + // Bail early if already loading API. + if (loading) { + return; + } + + // load api + var url = acf.get('google_map_api'); + if (url) { + // Set loading status. + loading = true; + + // Load API + $.ajax({ + url: url, + dataType: 'script', + cache: true, + success: function () { + geocoder = new google.maps.Geocoder(); + acf.doAction('google_map_api_loaded'); + } + }); + } + } +})(jQuery); + +/***/ }), + +/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-image.js": +/*!**************************************************************************!*\ + !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-field-image.js ***! + \**************************************************************************/ +/***/ (function() { + +(function ($, undefined) { + var Field = acf.Field.extend({ + type: 'image', + $control: function () { + return this.$('.acf-image-uploader'); + }, + $input: function () { + return this.$('input[type="hidden"]:first'); + }, + events: { + 'click a[data-name="add"]': 'onClickAdd', + 'click a[data-name="edit"]': 'onClickEdit', + 'click a[data-name="remove"]': 'onClickRemove', + 'change input[type="file"]': 'onChange' + }, + initialize: function () { + // add attribute to form + if (this.get('uploader') === 'basic') { + this.$el.closest('form').attr('enctype', 'multipart/form-data'); + } + }, + validateAttachment: function (attachment) { + // Use WP attachment attributes when available. + if (attachment && attachment.attributes) { + attachment = attachment.attributes; + } + + // Apply defaults. + attachment = acf.parseArgs(attachment, { + id: 0, + url: '', + alt: '', + title: '', + caption: '', + description: '', + width: 0, + height: 0 + }); + + // Override with "preview size". + var size = acf.isget(attachment, 'sizes', this.get('preview_size')); + if (size) { + attachment.url = size.url; + attachment.width = size.width; + attachment.height = size.height; + } + + // Return. + return attachment; + }, + render: function (attachment) { + attachment = this.validateAttachment(attachment); + + // Update DOM. + this.$('img').attr({ + src: attachment.url, + alt: attachment.alt + }); + if (attachment.id) { + this.val(attachment.id); + this.$control().addClass('has-value'); + } else { + this.val(''); + this.$control().removeClass('has-value'); + } + }, + // create a new repeater row and render value + append: function (attachment, parent) { + // create function to find next available field within parent + var getNext = function (field, parent) { + // find existing file fields within parent + var fields = acf.getFields({ + key: field.get('key'), + parent: parent.$el + }); + + // find the first field with no value + for (var i = 0; i < fields.length; i++) { + if (!fields[i].val()) { + return fields[i]; + } + } + + // return + return false; + }; + + // find existing file fields within parent + var field = getNext(this, parent); + + // add new row if no available field + if (!field) { + parent.$('.acf-button:last').trigger('click'); + field = getNext(this, parent); + } + + // render + if (field) { + field.render(attachment); + } + }, + selectAttachment: function () { + // vars + var parent = this.parent(); + var multiple = parent && parent.get('type') === 'repeater'; + + // new frame + var frame = acf.newMediaPopup({ + mode: 'select', + type: 'image', + title: acf.__('Select Image'), + field: this.get('key'), + multiple: multiple, + library: this.get('library'), + allowedTypes: this.get('mime_types'), + select: $.proxy(function (attachment, i) { + if (i > 0) { + this.append(attachment, parent); + } else { + this.render(attachment); + } + }, this) + }); + }, + editAttachment: function () { + // vars + var val = this.val(); + + // bail early if no val + if (!val) return; + + // popup + var frame = acf.newMediaPopup({ + mode: 'edit', + title: acf.__('Edit Image'), + button: acf.__('Update Image'), + attachment: val, + field: this.get('key'), + select: $.proxy(function (attachment, i) { + this.render(attachment); + }, this) + }); + }, + removeAttachment: function () { + this.render(false); + }, + onClickAdd: function (e, $el) { + this.selectAttachment(); + }, + onClickEdit: function (e, $el) { + this.editAttachment(); + }, + onClickRemove: function (e, $el) { + this.removeAttachment(); + }, + onChange: function (e, $el) { + var $hiddenInput = this.$input(); + if (!$el.val()) { + $hiddenInput.val(''); + } + acf.getFileInputData($el, function (data) { + $hiddenInput.val($.param(data)); + }); + } + }); + acf.registerFieldType(Field); +})(jQuery); + +/***/ }), + +/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-link.js": +/*!*************************************************************************!*\ + !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-field-link.js ***! + \*************************************************************************/ +/***/ (function() { + +(function ($, undefined) { + var Field = acf.Field.extend({ + type: 'link', + events: { + 'click a[data-name="add"]': 'onClickEdit', + 'click a[data-name="edit"]': 'onClickEdit', + 'click a[data-name="remove"]': 'onClickRemove', + 'change .link-node': 'onChange' + }, + $control: function () { + return this.$('.acf-link'); + }, + $node: function () { + return this.$('.link-node'); + }, + getValue: function () { + // vars + var $node = this.$node(); + + // return false if empty + if (!$node.attr('href')) { + return false; + } + + // return + return { + title: $node.html(), + url: $node.attr('href'), + target: $node.attr('target') + }; + }, + setValue: function (val) { + // default + val = acf.parseArgs(val, { + title: '', + url: '', + target: '' + }); + + // vars + var $div = this.$control(); + var $node = this.$node(); + + // remove class + $div.removeClass('-value -external'); + + // add class + if (val.url) $div.addClass('-value'); + if (val.target === '_blank') $div.addClass('-external'); + + // update text + this.$('.link-title').html(val.title); + this.$('.link-url').attr('href', val.url).html(val.url); + + // update node + $node.html(val.title); + $node.attr('href', val.url); + $node.attr('target', val.target); + + // update inputs + this.$('.input-title').val(val.title); + this.$('.input-target').val(val.target); + this.$('.input-url').val(val.url).trigger('change'); + }, + onClickEdit: function (e, $el) { + acf.wpLink.open(this.$node()); + }, + onClickRemove: function (e, $el) { + this.setValue(false); + }, + onChange: function (e, $el) { + // get the changed value + var val = this.getValue(); + + // update inputs + this.setValue(val); + } + }); + acf.registerFieldType(Field); + + // manager + acf.wpLink = new acf.Model({ + getNodeValue: function () { + var $node = this.get('node'); + return { + title: acf.decode($node.html()), + url: $node.attr('href'), + target: $node.attr('target') + }; + }, + setNodeValue: function (val) { + var $node = this.get('node'); + $node.text(val.title); + $node.attr('href', val.url); + $node.attr('target', val.target); + $node.trigger('change'); + }, + getInputValue: function () { + return { + title: $('#wp-link-text').val(), + url: $('#wp-link-url').val(), + target: $('#wp-link-target').prop('checked') ? '_blank' : '' + }; + }, + setInputValue: function (val) { + $('#wp-link-text').val(val.title); + $('#wp-link-url').val(val.url); + $('#wp-link-target').prop('checked', val.target === '_blank'); + }, + open: function ($node) { + // add events + this.on('wplink-open', 'onOpen'); + this.on('wplink-close', 'onClose'); + + // set node + this.set('node', $node); + + // create textarea + var $textarea = $(''); + $('body').append($textarea); + + // vars + var val = this.getNodeValue(); + + // open popup + wpLink.open('acf-link-textarea', val.url, val.title, null); + }, + onOpen: function () { + // always show title (WP will hide title if empty) + $('#wp-link-wrap').addClass('has-text-field'); + + // set inputs + var val = this.getNodeValue(); + this.setInputValue(val); + + // Update button text. + if (val.url && wpLinkL10n) { + $('#wp-link-submit').val(wpLinkL10n.update); + } + }, + close: function () { + wpLink.close(); + }, + onClose: function () { + // Bail early if no node. + // Needed due to WP triggering this event twice. + if (!this.has('node')) { + return false; + } + + // Determine context. + var $submit = $('#wp-link-submit'); + var isSubmit = $submit.is(':hover') || $submit.is(':focus'); + + // Set value + if (isSubmit) { + var val = this.getInputValue(); + this.setNodeValue(val); + } + + // Cleanup. + this.off('wplink-open'); + this.off('wplink-close'); + $('#acf-link-textarea').remove(); + this.set('node', null); + } + }); +})(jQuery); + +/***/ }), + +/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-oembed.js": +/*!***************************************************************************!*\ + !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-field-oembed.js ***! + \***************************************************************************/ +/***/ (function() { + +(function ($, undefined) { + var Field = acf.Field.extend({ + type: 'oembed', + events: { + 'click [data-name="clear-button"]': 'onClickClear', + 'keypress .input-search': 'onKeypressSearch', + 'keyup .input-search': 'onKeyupSearch', + 'change .input-search': 'onChangeSearch' + }, + $control: function () { + return this.$('.acf-oembed'); + }, + $input: function () { + return this.$('.input-value'); + }, + $search: function () { + return this.$('.input-search'); + }, + getValue: function () { + return this.$input().val(); + }, + getSearchVal: function () { + return this.$search().val(); + }, + setValue: function (val) { + // class + if (val) { + this.$control().addClass('has-value'); + } else { + this.$control().removeClass('has-value'); + } + acf.val(this.$input(), val); + }, + showLoading: function (show) { + acf.showLoading(this.$('.canvas')); + }, + hideLoading: function () { + acf.hideLoading(this.$('.canvas')); + }, + maybeSearch: function () { + // vars + var prevUrl = this.val(); + var url = this.getSearchVal(); + + // no value + if (!url) { + return this.clear(); + } + + // fix missing 'http://' - causes the oembed code to error and fail + if (url.substr(0, 4) != 'http') { + url = 'http://' + url; + } + + // bail early if no change + if (url === prevUrl) return; + + // clear existing timeout + var timeout = this.get('timeout'); + if (timeout) { + clearTimeout(timeout); + } + + // set new timeout + var callback = $.proxy(this.search, this, url); + this.set('timeout', setTimeout(callback, 300)); + }, + search: function (url) { + // ajax + var ajaxData = { + action: 'acf/fields/oembed/search', + s: url, + field_key: this.get('key') + }; + + // clear existing timeout + var xhr = this.get('xhr'); + if (xhr) { + xhr.abort(); + } + + // loading + this.showLoading(); + + // query + var xhr = $.ajax({ + url: acf.get('ajaxurl'), + data: acf.prepareForAjax(ajaxData), + type: 'post', + dataType: 'json', + context: this, + success: function (json) { + // error + if (!json || !json.html) { + json = { + url: false, + html: '' + }; + } + + // update vars + this.val(json.url); + this.$('.canvas-media').html(json.html); + }, + complete: function () { + this.hideLoading(); + } + }); + this.set('xhr', xhr); + }, + clear: function () { + this.val(''); + this.$search().val(''); + this.$('.canvas-media').html(''); + }, + onClickClear: function (e, $el) { + this.clear(); + }, + onKeypressSearch: function (e, $el) { + if (e.which == 13) { + e.preventDefault(); + this.maybeSearch(); + } + }, + onKeyupSearch: function (e, $el) { + if ($el.val()) { + this.maybeSearch(); + } + }, + onChangeSearch: function (e, $el) { + this.maybeSearch(); + } + }); + acf.registerFieldType(Field); +})(jQuery); + +/***/ }), + +/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-page-link.js": +/*!******************************************************************************!*\ + !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-field-page-link.js ***! + \******************************************************************************/ +/***/ (function() { + +(function ($, undefined) { + var Field = acf.models.SelectField.extend({ + type: 'page_link' + }); + acf.registerFieldType(Field); +})(jQuery); + +/***/ }), + +/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-post-object.js": +/*!********************************************************************************!*\ + !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-field-post-object.js ***! + \********************************************************************************/ +/***/ (function() { + +(function ($, undefined) { + var Field = acf.models.SelectField.extend({ + type: 'post_object' + }); + acf.registerFieldType(Field); +})(jQuery); + +/***/ }), + +/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-radio.js": +/*!**************************************************************************!*\ + !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-field-radio.js ***! + \**************************************************************************/ +/***/ (function() { + +(function ($, undefined) { + var Field = acf.Field.extend({ + type: 'radio', + events: { + 'click input[type="radio"]': 'onClick' + }, + $control: function () { + return this.$('.acf-radio-list'); + }, + $input: function () { + return this.$('input:checked'); + }, + $inputText: function () { + return this.$('input[type="text"]'); + }, + getValue: function () { + var val = this.$input().val(); + if (val === 'other' && this.get('other_choice')) { + val = this.$inputText().val(); + } + return val; + }, + onClick: function (e, $el) { + // vars + var $label = $el.parent('label'); + var selected = $label.hasClass('selected'); + var val = $el.val(); + + // remove previous selected + this.$('.selected').removeClass('selected'); + + // add active class + $label.addClass('selected'); + + // allow null + if (this.get('allow_null') && selected) { + $label.removeClass('selected'); + $el.prop('checked', false).trigger('change'); + val = false; + } + + // other + if (this.get('other_choice')) { + // enable + if (val === 'other') { + this.$inputText().prop('disabled', false); + + // disable + } else { + this.$inputText().prop('disabled', true); + } + } + } + }); + acf.registerFieldType(Field); +})(jQuery); + +/***/ }), + +/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-range.js": +/*!**************************************************************************!*\ + !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-field-range.js ***! + \**************************************************************************/ +/***/ (function() { + +(function ($, undefined) { + var Field = acf.Field.extend({ + type: 'range', + events: { + 'input input[type="range"]': 'onChange', + 'change input': 'onChange' + }, + $input: function () { + return this.$('input[type="range"]'); + }, + $inputAlt: function () { + return this.$('input[type="number"]'); + }, + setValue: function (val) { + this.busy = true; + + // Update range input (with change). + acf.val(this.$input(), val); + + // Update alt input (without change). + // Read in input value to inherit min/max validation. + acf.val(this.$inputAlt(), this.$input().val(), true); + this.busy = false; + }, + onChange: function (e, $el) { + if (!this.busy) { + this.setValue($el.val()); + } + } + }); + acf.registerFieldType(Field); +})(jQuery); + +/***/ }), + +/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-relationship.js": +/*!*********************************************************************************!*\ + !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-field-relationship.js ***! + \*********************************************************************************/ +/***/ (function() { + +(function ($, undefined) { + var Field = acf.Field.extend({ + type: 'relationship', + events: { + 'keypress [data-filter]': 'onKeypressFilter', + 'change [data-filter]': 'onChangeFilter', + 'keyup [data-filter]': 'onChangeFilter', + 'click .choices-list .acf-rel-item': 'onClickAdd', + 'keypress .choices-list .acf-rel-item': 'onKeypressFilter', + 'keypress .values-list .acf-rel-item': 'onKeypressFilter', + 'click [data-name="remove_item"]': 'onClickRemove' + }, + $control: function () { + return this.$('.acf-relationship'); + }, + $list: function (list) { + return this.$('.' + list + '-list'); + }, + $listItems: function (list) { + return this.$list(list).find('.acf-rel-item'); + }, + $listItem: function (list, id) { + return this.$list(list).find('.acf-rel-item[data-id="' + id + '"]'); + }, + getValue: function () { + var val = []; + this.$listItems('values').each(function () { + val.push($(this).data('id')); + }); + return val.length ? val : false; + }, + newChoice: function (props) { + return ['
  • ', '' + props.text + '', '
  • '].join(''); + }, + newValue: function (props) { + return ['
  • ', '', '' + props.text, '', '', '
  • '].join(''); + }, + initialize: function () { + // Delay initialization until "interacted with" or "in view". + var delayed = this.proxy(acf.once(function () { + // Add sortable. + this.$list('values').sortable({ + items: 'li', + forceHelperSize: true, + forcePlaceholderSize: true, + scroll: true, + update: this.proxy(function () { + this.$input().trigger('change'); + }) + }); + + // Avoid browser remembering old scroll position and add event. + this.$list('choices').scrollTop(0).on('scroll', this.proxy(this.onScrollChoices)); + + // Fetch choices. + this.fetch(); + })); + + // Bind "interacted with". + this.$el.one('mouseover', delayed); + this.$el.one('focus', 'input', delayed); + + // Bind "in view". + acf.onceInView(this.$el, delayed); + }, + onScrollChoices: function (e) { + // bail early if no more results + if (this.get('loading') || !this.get('more')) { + return; + } + + // Scrolled to bottom + var $list = this.$list('choices'); + var scrollTop = Math.ceil($list.scrollTop()); + var scrollHeight = Math.ceil($list[0].scrollHeight); + var innerHeight = Math.ceil($list.innerHeight()); + var paged = this.get('paged') || 1; + if (scrollTop + innerHeight >= scrollHeight) { + // update paged + this.set('paged', paged + 1); + + // fetch + this.fetch(); + } + }, + onKeypressFilter: function (e, $el) { + // Receive enter key when selecting relationship items. + if ($el.hasClass('acf-rel-item-add') && e.which == 13) { + this.onClickAdd(e, $el); + } + // Receive enter key when removing relationship items. + if ($el.hasClass('acf-rel-item-remove') && e.which == 13) { + this.onClickRemove(e, $el); + } + // don't submit form + if (e.which == 13) { + e.preventDefault(); + } + }, + onChangeFilter: function (e, $el) { + // vars + var val = $el.val(); + var filter = $el.data('filter'); + + // Bail early if filter has not changed + if (this.get(filter) === val) { + return; + } + + // update attr + this.set(filter, val); + + // reset paged + this.set('paged', 1); + + // fetch + if ($el.is('select')) { + this.fetch(); + + // search must go through timeout + } else { + this.maybeFetch(); + } + }, + onClickAdd: function (e, $el) { + // vars + var val = this.val(); + var max = parseInt(this.get('max')); + + // can be added? + if ($el.hasClass('disabled')) { + return false; + } + + // validate + if (max > 0 && val && val.length >= max) { + // add notice + this.showNotice({ + text: acf.__('Maximum values reached ( {max} values )').replace('{max}', max), + type: 'warning' + }); + return false; + } + + // disable + $el.addClass('disabled'); + + // add + var html = this.newValue({ + id: $el.data('id'), + text: $el.html() + }); + this.$list('values').append(html); + + // trigger change + this.$input().trigger('change'); + }, + onClickRemove: function (e, $el) { + // Prevent default here because generic handler wont be triggered. + e.preventDefault(); + let $span; + // Behavior if triggered from tabbed event. + if ($el.hasClass('acf-rel-item-remove')) { + $span = $el; + } else { + // Behavior if triggered through click event. + $span = $el.parent(); + } + + // vars + const $li = $span.parent(); + const id = $span.data('id'); + + // remove value + $li.remove(); + + // show choice + this.$listItem('choices', id).removeClass('disabled'); + + // trigger change + this.$input().trigger('change'); + }, + maybeFetch: function () { + // vars + var timeout = this.get('timeout'); + + // abort timeout + if (timeout) { + clearTimeout(timeout); + } + + // fetch + timeout = this.setTimeout(this.fetch, 300); + this.set('timeout', timeout); + }, + getAjaxData: function () { + // load data based on element attributes + var ajaxData = this.$control().data(); + for (var name in ajaxData) { + ajaxData[name] = this.get(name); + } + + // extra + ajaxData.action = 'acf/fields/relationship/query'; + ajaxData.field_key = this.get('key'); + + // Filter. + ajaxData = acf.applyFilters('relationship_ajax_data', ajaxData, this); + + // return + return ajaxData; + }, + fetch: function () { + // abort XHR if this field is already loading AJAX data + var xhr = this.get('xhr'); + if (xhr) { + xhr.abort(); + } + + // add to this.o + var ajaxData = this.getAjaxData(); + + // clear html if is new query + var $choiceslist = this.$list('choices'); + if (ajaxData.paged == 1) { + $choiceslist.html(''); + } + + // loading + var $loading = $('
  • ' + acf.__('Loading') + '
  • '); + $choiceslist.append($loading); + this.set('loading', true); + + // callback + var onComplete = function () { + this.set('loading', false); + $loading.remove(); + }; + var onSuccess = function (json) { + // no results + if (!json || !json.results || !json.results.length) { + // prevent pagination + this.set('more', false); + + // add message + if (this.get('paged') == 1) { + this.$list('choices').append('
  • ' + acf.__('No matches found') + '
  • '); + } + + // return + return; + } + + // set more (allows pagination scroll) + this.set('more', json.more); + + // get new results + var html = this.walkChoices(json.results); + var $html = $(html); + + // apply .disabled to left li's + var val = this.val(); + if (val && val.length) { + val.map(function (id) { + $html.find('.acf-rel-item[data-id="' + id + '"]').addClass('disabled'); + }); + } + + // append + $choiceslist.append($html); + + // merge together groups + var $prevLabel = false; + var $prevList = false; + $choiceslist.find('.acf-rel-label').each(function () { + var $label = $(this); + var $list = $label.siblings('ul'); + if ($prevLabel && $prevLabel.text() == $label.text()) { + $prevList.append($list.children()); + $(this).parent().remove(); + return; + } + + // update vars + $prevLabel = $label; + $prevList = $list; + }); + }; + + // get results + var xhr = $.ajax({ + url: acf.get('ajaxurl'), + dataType: 'json', + type: 'post', + data: acf.prepareForAjax(ajaxData), + context: this, + success: onSuccess, + complete: onComplete + }); + + // set + this.set('xhr', xhr); + }, + walkChoices: function (data) { + // walker + var walk = function (data) { + // vars + var html = ''; + + // is array + if ($.isArray(data)) { + data.map(function (item) { + html += walk(item); + }); + + // is item + } else if ($.isPlainObject(data)) { + // group + if (data.children !== undefined) { + html += '
  • ' + acf.escHtml(data.text) + '
      '; + html += walk(data.children); + html += '
  • '; + + // single + } else { + html += '
  • ' + acf.escHtml(data.text) + '
  • '; + } + } + + // return + return html; + }; + return walk(data); + } + }); + acf.registerFieldType(Field); +})(jQuery); + +/***/ }), + +/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-select.js": +/*!***************************************************************************!*\ + !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-field-select.js ***! + \***************************************************************************/ +/***/ (function() { + +(function ($, undefined) { + var Field = acf.Field.extend({ + type: 'select', + select2: false, + wait: 'load', + events: { + removeField: 'onRemove', + duplicateField: 'onDuplicate' + }, + $input: function () { + return this.$('select'); + }, + initialize: function () { + // vars + var $select = this.$input(); + + // inherit data + this.inherit($select); + + // select2 + if (this.get('ui')) { + // populate ajax_data (allowing custom attribute to already exist) + var ajaxAction = this.get('ajax_action'); + if (!ajaxAction) { + ajaxAction = 'acf/fields/' + this.get('type') + '/query'; + } + + // select2 + this.select2 = acf.newSelect2($select, { + field: this, + ajax: this.get('ajax'), + multiple: this.get('multiple'), + placeholder: this.get('placeholder'), + allowNull: this.get('allow_null'), + ajaxAction: ajaxAction + }); + } + }, + onRemove: function () { + if (this.select2) { + this.select2.destroy(); + } + }, + onDuplicate: function (e, $el, $duplicate) { + if (this.select2) { + $duplicate.find('.select2-container').remove(); + $duplicate.find('select').removeClass('select2-hidden-accessible'); + } + } + }); + acf.registerFieldType(Field); +})(jQuery); + +/***/ }), + +/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-tab.js": +/*!************************************************************************!*\ + !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-field-tab.js ***! + \************************************************************************/ +/***/ (function() { + +(function ($, undefined) { + // vars + var CONTEXT = 'tab'; + var Field = acf.Field.extend({ + type: 'tab', + wait: '', + tabs: false, + tab: false, + events: { + duplicateField: 'onDuplicate' + }, + findFields: function () { + let filter = '.acf-field'; + if (this.get('key') === 'acf_field_settings_tabs') { + filter = '.acf-field-settings-main'; + } + if (this.get('key') === 'acf_field_group_settings_tabs') { + filter = '.field-group-settings-tab'; + } + if (this.get('key') === 'acf_browse_fields_tabs') { + filter = '.acf-field-types-tab'; + } + return this.$el.nextUntil('.acf-field-tab', filter); + }, + getFields: function () { + return acf.getFields(this.findFields()); + }, + findTabs: function () { + return this.$el.prevAll('.acf-tab-wrap:first'); + }, + findTab: function () { + return this.$('.acf-tab-button'); + }, + initialize: function () { + // bail early if is td + if (this.$el.is('td')) { + this.events = {}; + return false; + } + + // vars + var $tabs = this.findTabs(); + var $tab = this.findTab(); + var settings = acf.parseArgs($tab.data(), { + endpoint: false, + placement: '', + before: this.$el + }); + + // create wrap + if (!$tabs.length || settings.endpoint) { + this.tabs = new Tabs(settings); + } else { + this.tabs = $tabs.data('acf'); + } + + // add tab + this.tab = this.tabs.addTab($tab, this); + }, + isActive: function () { + return this.tab.isActive(); + }, + showFields: function () { + // show fields + this.getFields().map(function (field) { + field.show(this.cid, CONTEXT); + field.hiddenByTab = false; + }, this); + }, + hideFields: function () { + // hide fields + this.getFields().map(function (field) { + field.hide(this.cid, CONTEXT); + field.hiddenByTab = this.tab; + }, this); + }, + show: function (lockKey) { + // show field and store result + var visible = acf.Field.prototype.show.apply(this, arguments); + + // check if now visible + if (visible) { + // show tab + this.tab.show(); + + // check active tabs + this.tabs.refresh(); + } + + // return + return visible; + }, + hide: function (lockKey) { + // hide field and store result + var hidden = acf.Field.prototype.hide.apply(this, arguments); + + // check if now hidden + if (hidden) { + // hide tab + this.tab.hide(); + + // reset tabs if this was active + if (this.isActive()) { + this.tabs.reset(); + } + } + + // return + return hidden; + }, + enable: function (lockKey) { + // enable fields + this.getFields().map(function (field) { + field.enable(CONTEXT); + }); + }, + disable: function (lockKey) { + // disable fields + this.getFields().map(function (field) { + field.disable(CONTEXT); + }); + }, + onDuplicate: function (e, $el, $duplicate) { + if (this.isActive()) { + $duplicate.prevAll('.acf-tab-wrap:first').remove(); + } + } + }); + acf.registerFieldType(Field); + + /** + * tabs + * + * description + * + * @date 8/2/18 + * @since 5.6.5 + * + * @param type $var Description. Default. + * @return type Description. + */ + + var i = 0; + var Tabs = acf.Model.extend({ + tabs: [], + active: false, + actions: { + refresh: 'onRefresh', + close_field_object: 'onCloseFieldObject' + }, + data: { + before: false, + placement: 'top', + index: 0, + initialized: false + }, + setup: function (settings) { + // data + $.extend(this.data, settings); + + // define this prop to avoid scope issues + this.tabs = []; + this.active = false; + + // vars + var placement = this.get('placement'); + var $before = this.get('before'); + var $parent = $before.parent(); + + // add sidebar for left placement + if (placement == 'left' && $parent.hasClass('acf-fields')) { + $parent.addClass('-sidebar'); + } + + // create wrap + if ($before.is('tr')) { + this.$el = $('
    '); + } else { + let ulClass = 'acf-hl acf-tab-group'; + if (this.get('key') === 'acf_field_settings_tabs') { + ulClass = 'acf-field-settings-tab-bar'; + } + this.$el = $('
      '); + } + + // append + $before.before(this.$el); + + // set index + this.set('index', i, true); + i++; + }, + initializeTabs: function () { + // Bail if tabs are disabled. + if ('acf_field_settings_tabs' === this.get('key') && $('#acf-field-group-fields').hasClass('hide-tabs')) { + return; + } + + // find first visible tab + var tab = this.getVisible().shift(); + + // remember previous tab state + var order = acf.getPreference('this.tabs') || []; + var groupIndex = this.get('index'); + var tabIndex = order[groupIndex]; + if (this.tabs[tabIndex] && this.tabs[tabIndex].isVisible()) { + tab = this.tabs[tabIndex]; + } + + // select + if (tab) { + this.selectTab(tab); + } else { + this.closeTabs(); + } + + // set local variable used by tabsManager + this.set('initialized', true); + }, + getVisible: function () { + return this.tabs.filter(function (tab) { + return tab.isVisible(); + }); + }, + getActive: function () { + return this.active; + }, + setActive: function (tab) { + return this.active = tab; + }, + hasActive: function () { + return this.active !== false; + }, + isActive: function (tab) { + var active = this.getActive(); + return active && active.cid === tab.cid; + }, + closeActive: function () { + if (this.hasActive()) { + this.closeTab(this.getActive()); + } + }, + openTab: function (tab) { + // close existing tab + this.closeActive(); + + // open + tab.open(); + + // set active + this.setActive(tab); + }, + closeTab: function (tab) { + // close + tab.close(); + + // set active + this.setActive(false); + }, + closeTabs: function () { + this.tabs.map(this.closeTab, this); + }, + selectTab: function (tab) { + // close other tabs + this.tabs.map(function (t) { + if (tab.cid !== t.cid) { + this.closeTab(t); + } + }, this); + + // open + this.openTab(tab); + }, + addTab: function ($a, field) { + // create
    • + var $li = $('
    • ' + $a.outerHTML() + '
    • '); + + // add settings type class. + var classes = $a.attr('class').replace('acf-tab-button', ''); + $li.addClass(classes); + + // append + this.$('ul').append($li); + + // initialize + var tab = new Tab({ + $el: $li, + field: field, + group: this + }); + + // store + this.tabs.push(tab); + + // return + return tab; + }, + reset: function () { + // close existing tab + this.closeActive(); + + // find and active a tab + return this.refresh(); + }, + refresh: function () { + // bail early if active already exists + if (this.hasActive()) { + return false; + } + // find next active tab + var tab = this.getVisible().shift(); + // open tab + if (tab) { + this.openTab(tab); + } + + // return + return tab; + }, + onRefresh: function () { + // only for left placements + if (this.get('placement') !== 'left') { + return; + } + + // vars + var $parent = this.$el.parent(); + var $list = this.$el.children('ul'); + var attribute = $parent.is('td') ? 'height' : 'min-height'; + + // find height (minus 1 for border-bottom) + var height = $list.position().top + $list.outerHeight(true) - 1; + + // add css + $parent.css(attribute, height); + }, + onCloseFieldObject: function (fieldObject) { + const tab = this.getVisible().find(item => { + const id = item.$el.closest('div[data-id]').data('id'); + if (fieldObject.data.id === id) { + return item; + } + }); + if (tab) { + // Wait for field group drawer to close + setTimeout(() => { + this.openTab(tab); + }, 300); + } + } + }); + var Tab = acf.Model.extend({ + group: false, + field: false, + events: { + 'click a': 'onClick' + }, + index: function () { + return this.$el.index(); + }, + isVisible: function () { + return acf.isVisible(this.$el); + }, + isActive: function () { + return this.$el.hasClass('active'); + }, + open: function () { + // add class + this.$el.addClass('active'); + + // show field + this.field.showFields(); + }, + close: function () { + // remove class + this.$el.removeClass('active'); + + // hide field + this.field.hideFields(); + }, + onClick: function (e, $el) { + // prevent default + e.preventDefault(); + + // toggle + this.toggle(); + }, + toggle: function () { + // bail early if already active + if (this.isActive()) { + return; + } + + // toggle this tab + this.group.openTab(this); + } + }); + var tabsManager = new acf.Model({ + priority: 50, + actions: { + prepare: 'render', + append: 'render', + unload: 'onUnload', + show: 'render', + invalid_field: 'onInvalidField' + }, + findTabs: function () { + return $('.acf-tab-wrap'); + }, + getTabs: function () { + return acf.getInstances(this.findTabs()); + }, + render: function ($el) { + this.getTabs().map(function (tabs) { + if (!tabs.get('initialized')) { + tabs.initializeTabs(); + } + }); + }, + onInvalidField: function (field) { + // bail early if busy + if (this.busy) { + return; + } + + // ignore if not hidden by tab + if (!field.hiddenByTab) { + return; + } + + // toggle tab + field.hiddenByTab.toggle(); + + // ignore other invalid fields + this.busy = true; + this.setTimeout(function () { + this.busy = false; + }, 100); + }, + onUnload: function () { + // vars + var order = []; + + // loop + this.getTabs().map(function (group) { + // Do not save selected tab on field settings, or an acf-advanced-settings when unloading + if (group.$el.children('.acf-field-settings-tab-bar').length || group.$el.parents('#acf-advanced-settings.postbox').length) { + return true; + } + var active = group.hasActive() ? group.getActive().index() : 0; + order.push(active); + }); + + // bail if no tabs + if (!order.length) { + return; + } + + // update + acf.setPreference('this.tabs', order); + } + }); +})(jQuery); + +/***/ }), + +/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-taxonomy.js": +/*!*****************************************************************************!*\ + !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-field-taxonomy.js ***! + \*****************************************************************************/ +/***/ (function() { + +(function ($, undefined) { + var Field = acf.Field.extend({ + type: 'taxonomy', + data: { + ftype: 'select' + }, + select2: false, + wait: 'load', + events: { + 'click a[data-name="add"]': 'onClickAdd', + 'click input[type="radio"]': 'onClickRadio', + removeField: 'onRemove' + }, + $control: function () { + return this.$('.acf-taxonomy-field'); + }, + $input: function () { + return this.getRelatedPrototype().$input.apply(this, arguments); + }, + getRelatedType: function () { + // vars + var fieldType = this.get('ftype'); + + // normalize + if (fieldType == 'multi_select') { + fieldType = 'select'; + } + + // return + return fieldType; + }, + getRelatedPrototype: function () { + return acf.getFieldType(this.getRelatedType()).prototype; + }, + getValue: function () { + return this.getRelatedPrototype().getValue.apply(this, arguments); + }, + setValue: function () { + return this.getRelatedPrototype().setValue.apply(this, arguments); + }, + initialize: function () { + this.getRelatedPrototype().initialize.apply(this, arguments); + }, + onRemove: function () { + var proto = this.getRelatedPrototype(); + if (proto.onRemove) { + proto.onRemove.apply(this, arguments); + } + }, + onClickAdd: function (e, $el) { + // vars + var field = this; + var popup = false; + var $form = false; + var $name = false; + var $parent = false; + var $button = false; + var $message = false; + var notice = false; + + // step 1. + var step1 = function () { + // popup + popup = acf.newPopup({ + title: $el.attr('title'), + loading: true, + width: '300px' + }); + + // ajax + var ajaxData = { + action: 'acf/fields/taxonomy/add_term', + field_key: field.get('key') + }; + + // get HTML + $.ajax({ + url: acf.get('ajaxurl'), + data: acf.prepareForAjax(ajaxData), + type: 'post', + dataType: 'html', + success: step2 + }); + }; + + // step 2. + var step2 = function (html) { + // update popup + popup.loading(false); + popup.content(html); + + // vars + $form = popup.$('form'); + $name = popup.$('input[name="term_name"]'); + $parent = popup.$('select[name="term_parent"]'); + $button = popup.$('.acf-submit-button'); + + // focus + $name.trigger('focus'); + + // submit form + popup.on('submit', 'form', step3); + }; + + // step 3. + var step3 = function (e, $el) { + // prevent + e.preventDefault(); + e.stopImmediatePropagation(); + + // basic validation + if ($name.val() === '') { + $name.trigger('focus'); + return false; + } + + // disable + acf.startButtonLoading($button); + + // ajax + var ajaxData = { + action: 'acf/fields/taxonomy/add_term', + field_key: field.get('key'), + term_name: $name.val(), + term_parent: $parent.length ? $parent.val() : 0 + }; + $.ajax({ + url: acf.get('ajaxurl'), + data: acf.prepareForAjax(ajaxData), + type: 'post', + dataType: 'json', + success: step4 + }); + }; + + // step 4. + var step4 = function (json) { + // enable + acf.stopButtonLoading($button); + + // remove prev notice + if (notice) { + notice.remove(); + } + + // success + if (acf.isAjaxSuccess(json)) { + // clear name + $name.val(''); + + // update term lists + step5(json.data); + + // notice + notice = acf.newNotice({ + type: 'success', + text: acf.getAjaxMessage(json), + target: $form, + timeout: 2000, + dismiss: false + }); + } else { + // notice + notice = acf.newNotice({ + type: 'error', + text: acf.getAjaxError(json), + target: $form, + timeout: 2000, + dismiss: false + }); + } + + // focus + $name.trigger('focus'); + }; + + // step 5. + var step5 = function (term) { + // update parent dropdown + var $option = $(''); + if (term.term_parent) { + $parent.children('option[value="' + term.term_parent + '"]').after($option); + } else { + $parent.append($option); + } + + // add this new term to all taxonomy field + var fields = acf.getFields({ + type: 'taxonomy' + }); + fields.map(function (otherField) { + if (otherField.get('taxonomy') == field.get('taxonomy')) { + otherField.appendTerm(term); + } + }); + + // select + field.selectTerm(term.term_id); + }; + + // run + step1(); + }, + appendTerm: function (term) { + if (this.getRelatedType() == 'select') { + this.appendTermSelect(term); + } else { + this.appendTermCheckbox(term); + } + }, + appendTermSelect: function (term) { + this.select2.addOption({ + id: term.term_id, + text: term.term_label + }); + }, + appendTermCheckbox: function (term) { + // vars + var name = this.$('[name]:first').attr('name'); + var $ul = this.$('ul:first'); + + // allow multiple selection + if (this.getRelatedType() == 'checkbox') { + name += '[]'; + } + + // create new li + var $li = $(['
    • ', '', '
    • '].join('')); + + // find parent + if (term.term_parent) { + // vars + var $parent = $ul.find('li[data-id="' + term.term_parent + '"]'); + + // update vars + $ul = $parent.children('ul'); + + // create ul + if (!$ul.exists()) { + $ul = $('
        '); + $parent.append($ul); + } + } + + // append + $ul.append($li); + }, + selectTerm: function (id) { + if (this.getRelatedType() == 'select') { + this.select2.selectOption(id); + } else { + var $input = this.$('input[value="' + id + '"]'); + $input.prop('checked', true).trigger('change'); + } + }, + onClickRadio: function (e, $el) { + // vars + var $label = $el.parent('label'); + var selected = $label.hasClass('selected'); + + // remove previous selected + this.$('.selected').removeClass('selected'); + + // add active class + $label.addClass('selected'); + + // allow null + if (this.get('allow_null') && selected) { + $label.removeClass('selected'); + $el.prop('checked', false).trigger('change'); + } + } + }); + acf.registerFieldType(Field); +})(jQuery); + +/***/ }), + +/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-time-picker.js": +/*!********************************************************************************!*\ + !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-field-time-picker.js ***! + \********************************************************************************/ +/***/ (function() { + +(function ($, undefined) { + var Field = acf.models.DatePickerField.extend({ + type: 'time_picker', + $control: function () { + return this.$('.acf-time-picker'); + }, + initialize: function () { + // vars + var $input = this.$input(); + var $inputText = this.$inputText(); + + // args + var args = { + timeFormat: this.get('time_format'), + altField: $input, + altFieldTimeOnly: false, + altTimeFormat: 'HH:mm:ss', + showButtonPanel: true, + controlType: 'select', + oneLine: true, + closeText: acf.get('dateTimePickerL10n').selectText, + timeOnly: true + }; + + // add custom 'Close = Select' functionality + args.onClose = function (value, dp_instance, t_instance) { + // vars + var $close = dp_instance.dpDiv.find('.ui-datepicker-close'); + + // if clicking close button + if (!value && $close.is(':hover')) { + t_instance._updateDateTime(); + } + }; + + // filter + args = acf.applyFilters('time_picker_args', args, this); + + // add date time picker + acf.newTimePicker($inputText, args); + + // action + acf.doAction('time_picker_init', $inputText, args, this); + } + }); + acf.registerFieldType(Field); + + // add + acf.newTimePicker = function ($input, args) { + // bail early if no datepicker library + if (typeof $.timepicker === 'undefined') { + return false; + } + + // defaults + args = args || {}; + + // initialize + $input.timepicker(args); + + // wrap the datepicker (only if it hasn't already been wrapped) + if ($('body > #ui-datepicker-div').exists()) { + $('body > #ui-datepicker-div').wrap('
        '); + } + }; +})(jQuery); + +/***/ }), + +/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-true-false.js": +/*!*******************************************************************************!*\ + !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-field-true-false.js ***! + \*******************************************************************************/ +/***/ (function() { + +(function ($, undefined) { + var Field = acf.Field.extend({ + type: 'true_false', + events: { + 'change .acf-switch-input': 'onChange', + 'focus .acf-switch-input': 'onFocus', + 'blur .acf-switch-input': 'onBlur', + 'keypress .acf-switch-input': 'onKeypress' + }, + $input: function () { + return this.$('input[type="checkbox"]'); + }, + $switch: function () { + return this.$('.acf-switch'); + }, + getValue: function () { + return this.$input().prop('checked') ? 1 : 0; + }, + initialize: function () { + this.render(); + }, + render: function () { + // vars + var $switch = this.$switch(); + + // bail early if no $switch + if (!$switch.length) return; + + // vars + var $on = $switch.children('.acf-switch-on'); + var $off = $switch.children('.acf-switch-off'); + var width = Math.max($on.width(), $off.width()); + + // bail early if no width + if (!width) return; + + // set widths + $on.css('min-width', width); + $off.css('min-width', width); + }, + switchOn: function () { + this.$input().prop('checked', true); + this.$switch().addClass('-on'); + }, + switchOff: function () { + this.$input().prop('checked', false); + this.$switch().removeClass('-on'); + }, + onChange: function (e, $el) { + if ($el.prop('checked')) { + this.switchOn(); + } else { + this.switchOff(); + } + }, + onFocus: function (e, $el) { + this.$switch().addClass('-focus'); + }, + onBlur: function (e, $el) { + this.$switch().removeClass('-focus'); + }, + onKeypress: function (e, $el) { + // left + if (e.keyCode === 37) { + return this.switchOff(); + } + + // right + if (e.keyCode === 39) { + return this.switchOn(); + } + } + }); + acf.registerFieldType(Field); +})(jQuery); + +/***/ }), + +/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-url.js": +/*!************************************************************************!*\ + !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-field-url.js ***! + \************************************************************************/ +/***/ (function() { + +(function ($, undefined) { + var Field = acf.Field.extend({ + type: 'url', + events: { + 'keyup input[type="url"]': 'onkeyup' + }, + $control: function () { + return this.$('.acf-input-wrap'); + }, + $input: function () { + return this.$('input[type="url"]'); + }, + initialize: function () { + this.render(); + }, + isValid: function () { + // vars + var val = this.val(); + + // bail early if no val + if (!val) { + return false; + } + + // url + if (val.indexOf('://') !== -1) { + return true; + } + + // protocol relative url + if (val.indexOf('//') === 0) { + return true; + } + + // return + return false; + }, + render: function () { + // add class + if (this.isValid()) { + this.$control().addClass('-valid'); + } else { + this.$control().removeClass('-valid'); + } + }, + onkeyup: function (e, $el) { + this.render(); + } + }); + acf.registerFieldType(Field); +})(jQuery); + +/***/ }), + +/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-user.js": +/*!*************************************************************************!*\ + !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-field-user.js ***! + \*************************************************************************/ +/***/ (function() { + +(function ($, undefined) { + var Field = acf.models.SelectField.extend({ + type: 'user' + }); + acf.registerFieldType(Field); + acf.addFilter('select2_ajax_data', function (data, args, $input, field, select2) { + if (!field) { + return data; + } + const query_nonce = field.get('queryNonce'); + if (query_nonce && query_nonce.length) { + data.user_query_nonce = query_nonce; + } + return data; + }); +})(jQuery); + +/***/ }), + +/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-wysiwyg.js": +/*!****************************************************************************!*\ + !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-field-wysiwyg.js ***! + \****************************************************************************/ +/***/ (function() { + +(function ($, undefined) { + var Field = acf.Field.extend({ + type: 'wysiwyg', + wait: 'load', + events: { + 'mousedown .acf-editor-wrap.delay': 'onMousedown', + unmountField: 'disableEditor', + remountField: 'enableEditor', + removeField: 'disableEditor' + }, + $control: function () { + return this.$('.acf-editor-wrap'); + }, + $input: function () { + return this.$('textarea'); + }, + getMode: function () { + return this.$control().hasClass('tmce-active') ? 'visual' : 'text'; + }, + initialize: function () { + // initializeEditor if no delay + if (!this.$control().hasClass('delay')) { + this.initializeEditor(); + } + }, + initializeEditor: function () { + // vars + var $wrap = this.$control(); + var $textarea = this.$input(); + var args = { + tinymce: true, + quicktags: true, + toolbar: this.get('toolbar'), + mode: this.getMode(), + field: this + }; + + // generate new id + var oldId = $textarea.attr('id'); + var newId = acf.uniqueId('acf-editor-'); + + // Backup textarea data. + var inputData = $textarea.data(); + var inputVal = $textarea.val(); + + // rename + acf.rename({ + target: $wrap, + search: oldId, + replace: newId, + destructive: true + }); + + // update id + this.set('id', newId, true); + + // apply data to new textarea (acf.rename creates a new textarea element due to destructive mode) + // fixes bug where conditional logic "disabled" is lost during "screen_check" + this.$input().data(inputData).val(inputVal); + + // initialize + acf.tinymce.initialize(newId, args); + }, + onMousedown: function (e) { + // prevent default + e.preventDefault(); + + // remove delay class + var $wrap = this.$control(); + $wrap.removeClass('delay'); + $wrap.find('.acf-editor-toolbar').remove(); + + // initialize + this.initializeEditor(); + }, + enableEditor: function () { + if (this.getMode() == 'visual') { + acf.tinymce.enable(this.get('id')); + } + }, + disableEditor: function () { + acf.tinymce.destroy(this.get('id')); + } + }); + acf.registerFieldType(Field); +})(jQuery); + +/***/ }), + +/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field.js": +/*!********************************************************************!*\ + !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-field.js ***! + \********************************************************************/ +/***/ (function() { + +(function ($, undefined) { + // vars + var storage = []; + + /** + * acf.Field + * + * description + * + * @date 23/3/18 + * @since 5.6.9 + * + * @param type $var Description. Default. + * @return type Description. + */ + + acf.Field = acf.Model.extend({ + // field type + type: '', + // class used to avoid nested event triggers + eventScope: '.acf-field', + // initialize events on 'ready' + wait: 'ready', + /** + * setup + * + * Called during the constructor function to setup this field ready for initialization + * + * @date 8/5/18 + * @since 5.6.9 + * + * @param jQuery $field The field element. + * @return void + */ + + setup: function ($field) { + // set $el + this.$el = $field; + + // inherit $field data + this.inherit($field); + + // inherit controll data + this.inherit(this.$control()); + }, + /** + * val + * + * Sets or returns the field's value + * + * @date 8/5/18 + * @since 5.6.9 + * + * @param mixed val Optional. The value to set + * @return mixed + */ + + val: function (val) { + // Set. + if (val !== undefined) { + return this.setValue(val); + + // Get. + } else { + return this.prop('disabled') ? null : this.getValue(); + } + }, + /** + * getValue + * + * returns the field's value + * + * @date 8/5/18 + * @since 5.6.9 + * + * @param void + * @return mixed + */ + + getValue: function () { + return this.$input().val(); + }, + /** + * setValue + * + * sets the field's value and returns true if changed + * + * @date 8/5/18 + * @since 5.6.9 + * + * @param mixed val + * @return boolean. True if changed. + */ + + setValue: function (val) { + return acf.val(this.$input(), val); + }, + /** + * __ + * + * i18n helper to be removed + * + * @date 8/5/18 + * @since 5.6.9 + * + * @param type $var Description. Default. + * @return type Description. + */ + + __: function (string) { + return acf._e(this.type, string); + }, + /** + * $control + * + * returns the control jQuery element used for inheriting data. Uses this.control setting. + * + * @date 8/5/18 + * @since 5.6.9 + * + * @param void + * @return jQuery + */ + + $control: function () { + return false; + }, + /** + * $input + * + * returns the input jQuery element used for saving values. Uses this.input setting. + * + * @date 8/5/18 + * @since 5.6.9 + * + * @param void + * @return jQuery + */ + + $input: function () { + return this.$('[name]:first'); + }, + /** + * $inputWrap + * + * description + * + * @date 12/5/18 + * @since 5.6.9 + * + * @param type $var Description. Default. + * @return type Description. + */ + + $inputWrap: function () { + return this.$('.acf-input:first'); + }, + /** + * $inputWrap + * + * description + * + * @date 12/5/18 + * @since 5.6.9 + * + * @param type $var Description. Default. + * @return type Description. + */ + + $labelWrap: function () { + return this.$('.acf-label:first'); + }, + /** + * getInputName + * + * Returns the field's input name + * + * @date 8/5/18 + * @since 5.6.9 + * + * @param void + * @return string + */ + + getInputName: function () { + return this.$input().attr('name') || ''; + }, + /** + * parent + * + * returns the field's parent field or false on failure. + * + * @date 8/5/18 + * @since 5.6.9 + * + * @param void + * @return object|false + */ + + parent: function () { + // vars + var parents = this.parents(); + + // return + return parents.length ? parents[0] : false; + }, + /** + * parents + * + * description + * + * @date 9/7/18 + * @since 5.6.9 + * + * @param type $var Description. Default. + * @return type Description. + */ + + parents: function () { + // vars + var $parents = this.$el.parents('.acf-field'); + + // convert + var parents = acf.getFields($parents); + + // return + return parents; + }, + show: function (lockKey, context) { + // show field and store result + var changed = acf.show(this.$el, lockKey); + + // do action if visibility has changed + if (changed) { + this.prop('hidden', false); + acf.doAction('show_field', this, context); + } + + // return + return changed; + }, + hide: function (lockKey, context) { + // hide field and store result + var changed = acf.hide(this.$el, lockKey); + + // do action if visibility has changed + if (changed) { + this.prop('hidden', true); + acf.doAction('hide_field', this, context); + } + + // return + return changed; + }, + enable: function (lockKey, context) { + // enable field and store result + var changed = acf.enable(this.$el, lockKey); + + // do action if disabled has changed + if (changed) { + this.prop('disabled', false); + acf.doAction('enable_field', this, context); + } + + // return + return changed; + }, + disable: function (lockKey, context) { + // disabled field and store result + var changed = acf.disable(this.$el, lockKey); + + // do action if disabled has changed + if (changed) { + this.prop('disabled', true); + acf.doAction('disable_field', this, context); + } + + // return + return changed; + }, + showEnable: function (lockKey, context) { + // enable + this.enable.apply(this, arguments); + + // show and return true if changed + return this.show.apply(this, arguments); + }, + hideDisable: function (lockKey, context) { + // disable + this.disable.apply(this, arguments); + + // hide and return true if changed + return this.hide.apply(this, arguments); + }, + showNotice: function (props) { + // ensure object + if (typeof props !== 'object') { + props = { + text: props + }; + } + + // remove old notice + if (this.notice) { + this.notice.remove(); + } + + // create new notice + props.target = this.$inputWrap(); + this.notice = acf.newNotice(props); + }, + removeNotice: function (timeout) { + if (this.notice) { + this.notice.away(timeout || 0); + this.notice = false; + } + }, + showError: function (message) { + // add class + this.$el.addClass('acf-error'); + + // add message + if (message !== undefined) { + this.showNotice({ + text: message, + type: 'error', + dismiss: false + }); + } + + // action + acf.doAction('invalid_field', this); + + // add event + this.$el.one('focus change', 'input, select, textarea', $.proxy(this.removeError, this)); + }, + removeError: function () { + // remove class + this.$el.removeClass('acf-error'); + + // remove notice + this.removeNotice(250); + + // action + acf.doAction('valid_field', this); + }, + trigger: function (name, args, bubbles) { + // allow some events to bubble + if (name == 'invalidField') { + bubbles = true; + } + + // return + return acf.Model.prototype.trigger.apply(this, [name, args, bubbles]); + } + }); + + /** + * newField + * + * description + * + * @date 14/12/17 + * @since 5.6.5 + * + * @param type $var Description. Default. + * @return type Description. + */ + + acf.newField = function ($field) { + // vars + var type = $field.data('type'); + var mid = modelId(type); + var model = acf.models[mid] || acf.Field; + + // instantiate + var field = new model($field); + + // actions + acf.doAction('new_field', field); + + // return + return field; + }; + + /** + * mid + * + * Calculates the model ID for a field type + * + * @date 15/12/17 + * @since 5.6.5 + * + * @param string type + * @return string + */ + + var modelId = function (type) { + return acf.strPascalCase(type || '') + 'Field'; + }; + + /** + * registerFieldType + * + * description + * + * @date 14/12/17 + * @since 5.6.5 + * + * @param type $var Description. Default. + * @return type Description. + */ + + acf.registerFieldType = function (model) { + // vars + var proto = model.prototype; + var type = proto.type; + var mid = modelId(type); + + // store model + acf.models[mid] = model; + + // store reference + storage.push(type); + }; + + /** + * acf.getFieldType + * + * description + * + * @date 1/2/18 + * @since 5.6.5 + * + * @param type $var Description. Default. + * @return type Description. + */ + + acf.getFieldType = function (type) { + var mid = modelId(type); + return acf.models[mid] || false; + }; + + /** + * acf.getFieldTypes + * + * description + * + * @date 1/2/18 + * @since 5.6.5 + * + * @param type $var Description. Default. + * @return type Description. + */ + + acf.getFieldTypes = function (args) { + // defaults + args = acf.parseArgs(args, { + category: '' + // hasValue: true + }); + + // clonse available types + var types = []; + + // loop + storage.map(function (type) { + // vars + var model = acf.getFieldType(type); + var proto = model.prototype; + + // check operator + if (args.category && proto.category !== args.category) { + return; + } + + // append + types.push(model); + }); + + // return + return types; + }; +})(jQuery); + +/***/ }), + +/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-fields.js": +/*!*********************************************************************!*\ + !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-fields.js ***! + \*********************************************************************/ +/***/ (function() { + +(function ($, undefined) { + /** + * findFields + * + * Returns a jQuery selection object of acf fields. + * + * @date 14/12/17 + * @since 5.6.5 + * + * @param object $args { + * Optional. Arguments to find fields. + * + * @type string key The field's key (data-attribute). + * @type string name The field's name (data-attribute). + * @type string type The field's type (data-attribute). + * @type string is jQuery selector to compare against. + * @type jQuery parent jQuery element to search within. + * @type jQuery sibling jQuery element to search alongside. + * @type limit int The number of fields to find. + * @type suppressFilters bool Whether to allow filters to add/remove results. Default behaviour will ignore clone fields. + * } + * @return jQuery + */ + + acf.findFields = function (args) { + // vars + var selector = '.acf-field'; + var $fields = false; + + // args + args = acf.parseArgs(args, { + key: '', + name: '', + type: '', + is: '', + parent: false, + sibling: false, + limit: false, + visible: false, + suppressFilters: false, + excludeSubFields: false + }); + + // filter args + if (!args.suppressFilters) { + args = acf.applyFilters('find_fields_args', args); + } + + // key + if (args.key) { + selector += '[data-key="' + args.key + '"]'; + } + + // type + if (args.type) { + selector += '[data-type="' + args.type + '"]'; + } + + // name + if (args.name) { + selector += '[data-name="' + args.name + '"]'; + } + + // is + if (args.is) { + selector += args.is; + } + + // visibility + if (args.visible) { + selector += ':visible'; + } + if (!args.suppressFilters) { + selector = acf.applyFilters('find_fields_selector', selector, args); + } + + // query + if (args.parent) { + $fields = args.parent.find(selector); + // exclude sub fields if required (only if a parent is provided) + if (args.excludeSubFields) { + $fields = $fields.not(args.parent.find('.acf-is-subfields .acf-field')); + } + } else if (args.sibling) { + $fields = args.sibling.siblings(selector); + } else { + $fields = $(selector); + } + + // filter + if (!args.suppressFilters) { + $fields = $fields.not('.acf-clone .acf-field'); + $fields = acf.applyFilters('find_fields', $fields); + } + + // limit + if (args.limit) { + $fields = $fields.slice(0, args.limit); + } + + // return + return $fields; + }; + + /** + * findField + * + * Finds a specific field with jQuery + * + * @date 14/12/17 + * @since 5.6.5 + * + * @param string key The field's key. + * @param jQuery $parent jQuery element to search within. + * @return jQuery + */ + + acf.findField = function (key, $parent) { + return acf.findFields({ + key: key, + limit: 1, + parent: $parent, + suppressFilters: true + }); + }; + + /** + * getField + * + * Returns a field instance + * + * @date 14/12/17 + * @since 5.6.5 + * + * @param jQuery|string $field jQuery element or field key. + * @return object + */ + + acf.getField = function ($field) { + // allow jQuery + if ($field instanceof jQuery) { + // find fields + } else { + $field = acf.findField($field); + } + + // instantiate + var field = $field.data('acf'); + if (!field) { + field = acf.newField($field); + } + + // return + return field; + }; + + /** + * getFields + * + * Returns multiple field instances + * + * @date 14/12/17 + * @since 5.6.5 + * + * @param jQuery|object $fields jQuery elements or query args. + * @return array + */ + + acf.getFields = function ($fields) { + // allow jQuery + if ($fields instanceof jQuery) { + // find fields + } else { + $fields = acf.findFields($fields); + } + + // loop + var fields = []; + $fields.each(function () { + var field = acf.getField($(this)); + fields.push(field); + }); + + // return + return fields; + }; + + /** + * findClosestField + * + * Returns the closest jQuery field element + * + * @date 9/4/18 + * @since 5.6.9 + * + * @param jQuery $el + * @return jQuery + */ + + acf.findClosestField = function ($el) { + return $el.closest('.acf-field'); + }; + + /** + * getClosestField + * + * Returns the closest field instance + * + * @date 22/1/18 + * @since 5.6.5 + * + * @param jQuery $el + * @return object + */ + + acf.getClosestField = function ($el) { + var $field = acf.findClosestField($el); + return this.getField($field); + }; + + /** + * addGlobalFieldAction + * + * Sets up callback logic for global field actions + * + * @date 15/6/18 + * @since 5.6.9 + * + * @param string action + * @return void + */ + + var addGlobalFieldAction = function (action) { + // vars + var globalAction = action; + var pluralAction = action + '_fields'; // ready_fields + var singleAction = action + '_field'; // ready_field + + // global action + var globalCallback = function ($el /*, arg1, arg2, etc*/) { + //console.log( action, arguments ); + + // get args [$el, ...] + var args = acf.arrayArgs(arguments); + var extraArgs = args.slice(1); + + // find fields + var fields = acf.getFields({ + parent: $el + }); + + // check + if (fields.length) { + // pluralAction + var pluralArgs = [pluralAction, fields].concat(extraArgs); + acf.doAction.apply(null, pluralArgs); + } + }; + + // plural action + var pluralCallback = function (fields /*, arg1, arg2, etc*/) { + //console.log( pluralAction, arguments ); + + // get args [fields, ...] + var args = acf.arrayArgs(arguments); + var extraArgs = args.slice(1); + + // loop + fields.map(function (field, i) { + //setTimeout(function(){ + // singleAction + var singleArgs = [singleAction, field].concat(extraArgs); + acf.doAction.apply(null, singleArgs); + //}, i * 100); + }); + }; + + // add actions + acf.addAction(globalAction, globalCallback); + acf.addAction(pluralAction, pluralCallback); + + // also add single action + addSingleFieldAction(action); + }; + + /** + * addSingleFieldAction + * + * Sets up callback logic for single field actions + * + * @date 15/6/18 + * @since 5.6.9 + * + * @param string action + * @return void + */ + + var addSingleFieldAction = function (action) { + // vars + var singleAction = action + '_field'; // ready_field + var singleEvent = action + 'Field'; // readyField + + // single action + var singleCallback = function (field /*, arg1, arg2, etc*/) { + //console.log( singleAction, arguments ); + + // get args [field, ...] + var args = acf.arrayArgs(arguments); + var extraArgs = args.slice(1); + + // action variations (ready_field/type=image) + var variations = ['type', 'name', 'key']; + variations.map(function (variation) { + // vars + var prefix = '/' + variation + '=' + field.get(variation); + + // singleAction + args = [singleAction + prefix, field].concat(extraArgs); + acf.doAction.apply(null, args); + }); + + // event + if (singleFieldEvents.indexOf(action) > -1) { + field.trigger(singleEvent, extraArgs); + } + }; + + // add actions + acf.addAction(singleAction, singleCallback); + }; + + // vars + var globalFieldActions = ['prepare', 'ready', 'load', 'append', 'remove', 'unmount', 'remount', 'sortstart', 'sortstop', 'show', 'hide', 'unload']; + var singleFieldActions = ['valid', 'invalid', 'enable', 'disable', 'new', 'duplicate']; + var singleFieldEvents = ['remove', 'unmount', 'remount', 'sortstart', 'sortstop', 'show', 'hide', 'unload', 'valid', 'invalid', 'enable', 'disable', 'duplicate']; + + // add + globalFieldActions.map(addGlobalFieldAction); + singleFieldActions.map(addSingleFieldAction); + + /** + * fieldsEventManager + * + * Manages field actions and events + * + * @date 15/12/17 + * @since 5.6.5 + * + * @param void + * @param void + */ + + var fieldsEventManager = new acf.Model({ + id: 'fieldsEventManager', + events: { + 'click .acf-field a[href="#"]': 'onClick', + 'change .acf-field': 'onChange' + }, + onClick: function (e) { + // prevent default of any link with an href of # + e.preventDefault(); + }, + onChange: function () { + // preview hack allows post to save with no title or content + $('#_acf_changed').val(1); + } + }); + var duplicateFieldsManager = new acf.Model({ + id: 'duplicateFieldsManager', + actions: { + duplicate: 'onDuplicate', + duplicate_fields: 'onDuplicateFields' + }, + onDuplicate: function ($el, $el2) { + var fields = acf.getFields({ + parent: $el + }); + if (fields.length) { + var $fields = acf.findFields({ + parent: $el2 + }); + acf.doAction('duplicate_fields', fields, $fields); + } + }, + onDuplicateFields: function (fields, duplicates) { + fields.map(function (field, i) { + acf.doAction('duplicate_field', field, $(duplicates[i])); + }); + } + }); +})(jQuery); + +/***/ }), + +/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-helpers.js": +/*!**********************************************************************!*\ + !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-helpers.js ***! + \**********************************************************************/ +/***/ (function() { + +(function ($, undefined) { + /** + * refreshHelper + * + * description + * + * @date 1/7/18 + * @since 5.6.9 + * + * @param type $var Description. Default. + * @return type Description. + */ + + var refreshHelper = new acf.Model({ + priority: 90, + actions: { + new_field: 'refresh', + show_field: 'refresh', + hide_field: 'refresh', + remove_field: 'refresh', + unmount_field: 'refresh', + remount_field: 'refresh' + }, + refresh: function () { + acf.refresh(); + } + }); + + /** + * mountHelper + * + * Adds compatiblity for the 'unmount' and 'remount' actions added in 5.8.0 + * + * @date 7/3/19 + * @since 5.7.14 + * + * @param void + * @return void + */ + var mountHelper = new acf.Model({ + priority: 1, + actions: { + sortstart: 'onSortstart', + sortstop: 'onSortstop' + }, + onSortstart: function ($item) { + acf.doAction('unmount', $item); + }, + onSortstop: function ($item) { + acf.doAction('remount', $item); + } + }); + + /** + * sortableHelper + * + * Adds compatibility for sorting a
        element + * + * @date 6/3/18 + * @since 5.6.9 + * + * @param void + * @return void + */ + + var sortableHelper = new acf.Model({ + actions: { + sortstart: 'onSortstart' + }, + onSortstart: function ($item, $placeholder) { + // if $item is a tr, apply some css to the elements + if ($item.is('tr')) { + // replace $placeholder children with a single td + // fixes "width calculation issues" due to conditional logic hiding some children + $placeholder.html(''); + + // add helper class to remove absolute positioning + $item.addClass('acf-sortable-tr-helper'); + + // set fixed widths for children + $item.children().each(function () { + $(this).width($(this).width()); + }); + + // mimic height + $placeholder.height($item.height() + 'px'); + + // remove class + $item.removeClass('acf-sortable-tr-helper'); + } + } + }); + + /** + * duplicateHelper + * + * Fixes browser bugs when duplicating an element + * + * @date 6/3/18 + * @since 5.6.9 + * + * @param void + * @return void + */ + + var duplicateHelper = new acf.Model({ + actions: { + after_duplicate: 'onAfterDuplicate' + }, + onAfterDuplicate: function ($el, $el2) { + // get original values + var vals = []; + $el.find('select').each(function (i) { + vals.push($(this).val()); + }); + + // set duplicate values + $el2.find('select').each(function (i) { + $(this).val(vals[i]); + }); + } + }); + + /** + * tableHelper + * + * description + * + * @date 6/3/18 + * @since 5.6.9 + * + * @param type $var Description. Default. + * @return type Description. + */ + + var tableHelper = new acf.Model({ + id: 'tableHelper', + priority: 20, + actions: { + refresh: 'renderTables' + }, + renderTables: function ($el) { + // loop + var self = this; + $('.acf-table:visible').each(function () { + self.renderTable($(this)); + }); + }, + renderTable: function ($table) { + // vars + var $ths = $table.find('> thead > tr:visible > th[data-key]'); + var $tds = $table.find('> tbody > tr:visible > td[data-key]'); + + // bail early if no thead + if (!$ths.length || !$tds.length) { + return false; + } + + // visiblity + $ths.each(function (i) { + // vars + var $th = $(this); + var key = $th.data('key'); + var $cells = $tds.filter('[data-key="' + key + '"]'); + var $hidden = $cells.filter('.acf-hidden'); + + // always remove empty and allow cells to be hidden + $cells.removeClass('acf-empty'); + + // hide $th if all cells are hidden + if ($cells.length === $hidden.length) { + acf.hide($th); + + // force all hidden cells to appear empty + } else { + acf.show($th); + $hidden.addClass('acf-empty'); + } + }); + + // clear width + $ths.css('width', 'auto'); + + // get visible + $ths = $ths.not('.acf-hidden'); + + // vars + var availableWidth = 100; + var colspan = $ths.length; + + // set custom widths first + var $fixedWidths = $ths.filter('[data-width]'); + $fixedWidths.each(function () { + var width = $(this).data('width'); + $(this).css('width', width + '%'); + availableWidth -= width; + }); + + // set auto widths + var $auoWidths = $ths.not('[data-width]'); + if ($auoWidths.length) { + var width = availableWidth / $auoWidths.length; + $auoWidths.css('width', width + '%'); + availableWidth = 0; + } + + // avoid stretching issue + if (availableWidth > 0) { + $ths.last().css('width', 'auto'); + } + + // update colspan on collapsed + $tds.filter('.-collapsed-target').each(function () { + // vars + var $td = $(this); + + // check if collapsed + if ($td.parent().hasClass('-collapsed')) { + $td.attr('colspan', $ths.length); + } else { + $td.removeAttr('colspan'); + } + }); + } + }); + + /** + * fieldsHelper + * + * description + * + * @date 6/3/18 + * @since 5.6.9 + * + * @param type $var Description. Default. + * @return type Description. + */ + + var fieldsHelper = new acf.Model({ + id: 'fieldsHelper', + priority: 30, + actions: { + refresh: 'renderGroups' + }, + renderGroups: function () { + // loop + var self = this; + $('.acf-fields:visible').each(function () { + self.renderGroup($(this)); + }); + }, + renderGroup: function ($el) { + // vars + var top = 0; + var height = 0; + var $row = $(); + + // get fields + var $fields = $el.children('.acf-field[data-width]:visible'); + + // bail early if no fields + if (!$fields.length) { + return false; + } + + // bail early if is .-left + if ($el.hasClass('-left')) { + $fields.removeAttr('data-width'); + $fields.css('width', 'auto'); + return false; + } + + // reset fields + $fields.removeClass('-r0 -c0').css({ + 'min-height': 0 + }); + + // loop + $fields.each(function (i) { + // vars + var $field = $(this); + var position = $field.position(); + var thisTop = Math.ceil(position.top); + var thisLeft = Math.ceil(position.left); + + // detect change in row + if ($row.length && thisTop > top) { + // set previous heights + $row.css({ + 'min-height': height + 'px' + }); + + // update position due to change in row above + position = $field.position(); + thisTop = Math.ceil(position.top); + thisLeft = Math.ceil(position.left); + + // reset vars + top = 0; + height = 0; + $row = $(); + } + + // rtl + if (acf.get('rtl')) { + thisLeft = Math.ceil($field.parent().width() - (position.left + $field.outerWidth())); + } + + // add classes + if (thisTop == 0) { + $field.addClass('-r0'); + } else if (thisLeft == 0) { + $field.addClass('-c0'); + } + + // get height after class change + // - add 1 for subpixel rendering + var thisHeight = Math.ceil($field.outerHeight()) + 1; + + // set height + height = Math.max(height, thisHeight); + + // set y + top = Math.max(top, thisTop); + + // append + $row = $row.add($field); + }); + + // clean up + if ($row.length) { + $row.css({ + 'min-height': height + 'px' + }); + } + } + }); + + /** + * Adds a body class when holding down the "shift" key. + * + * @date 06/05/2020 + * @since 5.9.0 + */ + var bodyClassShiftHelper = new acf.Model({ + id: 'bodyClassShiftHelper', + events: { + keydown: 'onKeyDown', + keyup: 'onKeyUp' + }, + isShiftKey: function (e) { + return e.keyCode === 16; + }, + onKeyDown: function (e) { + if (this.isShiftKey(e)) { + $('body').addClass('acf-keydown-shift'); + } + }, + onKeyUp: function (e) { + if (this.isShiftKey(e)) { + $('body').removeClass('acf-keydown-shift'); + } + } + }); +})(jQuery); + +/***/ }), + +/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-media.js": +/*!********************************************************************!*\ + !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-media.js ***! + \********************************************************************/ +/***/ (function() { + +(function ($, undefined) { + /** + * acf.newMediaPopup + * + * description + * + * @date 10/1/18 + * @since 5.6.5 + * + * @param type $var Description. Default. + * @return type Description. + */ + + acf.newMediaPopup = function (args) { + // args + var popup = null; + var args = acf.parseArgs(args, { + mode: 'select', + // 'select', 'edit' + title: '', + // 'Upload Image' + button: '', + // 'Select Image' + type: '', + // 'image', '' + field: false, + // field instance + allowedTypes: '', + // '.jpg, .png, etc' + library: 'all', + // 'all', 'uploadedTo' + multiple: false, + // false, true, 'add' + attachment: 0, + // the attachment to edit + autoOpen: true, + // open the popup automatically + open: function () {}, + // callback after close + select: function () {}, + // callback after select + close: function () {} // callback after close + }); + + // initialize + if (args.mode == 'edit') { + popup = new acf.models.EditMediaPopup(args); + } else { + popup = new acf.models.SelectMediaPopup(args); + } + + // open popup (allow frame customization before opening) + if (args.autoOpen) { + setTimeout(function () { + popup.open(); + }, 1); + } + + // action + acf.doAction('new_media_popup', popup); + + // return + return popup; + }; + + /** + * getPostID + * + * description + * + * @date 10/1/18 + * @since 5.6.5 + * + * @param type $var Description. Default. + * @return type Description. + */ + + var getPostID = function () { + var postID = acf.get('post_id'); + return acf.isNumeric(postID) ? postID : 0; + }; + + /** + * acf.getMimeTypes + * + * description + * + * @date 11/1/18 + * @since 5.6.5 + * + * @param type $var Description. Default. + * @return type Description. + */ + + acf.getMimeTypes = function () { + return this.get('mimeTypes'); + }; + acf.getMimeType = function (name) { + // vars + var allTypes = acf.getMimeTypes(); + + // search + if (allTypes[name] !== undefined) { + return allTypes[name]; + } + + // some types contain a mixed key such as "jpg|jpeg|jpe" + for (var key in allTypes) { + if (key.indexOf(name) !== -1) { + return allTypes[key]; + } + } + + // return + return false; + }; + + /** + * MediaPopup + * + * description + * + * @date 10/1/18 + * @since 5.6.5 + * + * @param type $var Description. Default. + * @return type Description. + */ + + var MediaPopup = acf.Model.extend({ + id: 'MediaPopup', + data: {}, + defaults: {}, + frame: false, + setup: function (props) { + $.extend(this.data, props); + }, + initialize: function () { + // vars + var options = this.getFrameOptions(); + + // add states + this.addFrameStates(options); + + // create frame + var frame = wp.media(options); + + // add args reference + frame.acf = this; + + // add events + this.addFrameEvents(frame, options); + + // strore frame + this.frame = frame; + }, + open: function () { + this.frame.open(); + }, + close: function () { + this.frame.close(); + }, + remove: function () { + this.frame.detach(); + this.frame.remove(); + }, + getFrameOptions: function () { + // vars + var options = { + title: this.get('title'), + multiple: this.get('multiple'), + library: {}, + states: [] + }; + + // type + if (this.get('type')) { + options.library.type = this.get('type'); + } + + // type + if (this.get('library') === 'uploadedTo') { + options.library.uploadedTo = getPostID(); + } + + // attachment + if (this.get('attachment')) { + options.library.post__in = [this.get('attachment')]; + } + + // button + if (this.get('button')) { + options.button = { + text: this.get('button') + }; + } + + // return + return options; + }, + addFrameStates: function (options) { + // create query + var Query = wp.media.query(options.library); + + // add _acfuploader + // this is super wack! + // if you add _acfuploader to the options.library args, new uploads will not be added to the library view. + // this has been traced back to the wp.media.model.Query initialize function (which can't be overriden) + // Adding any custom args will cause the Attahcments to not observe the uploader queue + // To bypass this security issue, we add in the args AFTER the Query has been initialized + // options.library._acfuploader = settings.field; + if (this.get('field') && acf.isset(Query, 'mirroring', 'args')) { + Query.mirroring.args._acfuploader = this.get('field'); + } + + // add states + options.states.push( + // main state + new wp.media.controller.Library({ + library: Query, + multiple: this.get('multiple'), + title: this.get('title'), + priority: 20, + filterable: 'all', + editable: true, + allowLocalEdits: true + })); + + // edit image functionality (added in WP 3.9) + if (acf.isset(wp, 'media', 'controller', 'EditImage')) { + options.states.push(new wp.media.controller.EditImage()); + } + }, + addFrameEvents: function (frame, options) { + // log all events + //frame.on('all', function( e ) { + // console.log( 'frame all: %o', e ); + //}); + + // add class + frame.on('open', function () { + this.$el.closest('.media-modal').addClass('acf-media-modal -' + this.acf.get('mode')); + }, frame); + + // edit image view + // source: media-views.js:2410 editImageContent() + frame.on('content:render:edit-image', function () { + var image = this.state().get('image'); + var view = new wp.media.view.EditImage({ + model: image, + controller: this + }).render(); + this.content.set(view); + + // after creating the wrapper view, load the actual editor via an ajax call + view.loadEditor(); + }, frame); + + // update toolbar button + //frame.on( 'toolbar:create:select', function( toolbar ) { + // toolbar.view = new wp.media.view.Toolbar.Select({ + // text: frame.options._button, + // controller: this + // }); + //}, frame ); + + // on select + frame.on('select', function () { + // vars + var selection = frame.state().get('selection'); + + // if selecting images + if (selection) { + // loop + selection.each(function (attachment, i) { + frame.acf.get('select').apply(frame.acf, [attachment, i]); + }); + } + }); + + // on close + frame.on('close', function () { + // callback and remove + setTimeout(function () { + frame.acf.get('close').apply(frame.acf); + frame.acf.remove(); + }, 1); + }); + } + }); + + /** + * acf.models.SelectMediaPopup + * + * description + * + * @date 10/1/18 + * @since 5.6.5 + * + * @param type $var Description. Default. + * @return type Description. + */ + + acf.models.SelectMediaPopup = MediaPopup.extend({ + id: 'SelectMediaPopup', + setup: function (props) { + // default button + if (!props.button) { + props.button = acf._x('Select', 'verb'); + } + + // parent + MediaPopup.prototype.setup.apply(this, arguments); + }, + addFrameEvents: function (frame, options) { + // plupload + // adds _acfuploader param to validate uploads + if (acf.isset(_wpPluploadSettings, 'defaults', 'multipart_params')) { + // add _acfuploader so that Uploader will inherit + _wpPluploadSettings.defaults.multipart_params._acfuploader = this.get('field'); + + // remove acf_field so future Uploaders won't inherit + frame.on('open', function () { + delete _wpPluploadSettings.defaults.multipart_params._acfuploader; + }); + } + + // browse + frame.on('content:activate:browse', function () { + // vars + var toolbar = false; + + // populate above vars making sure to allow for failure + // perhaps toolbar does not exist because the frame open is Upload Files + try { + toolbar = frame.content.get().toolbar; + } catch (e) { + console.log(e); + return; + } + + // callback + frame.acf.customizeFilters.apply(frame.acf, [toolbar]); + }); + + // parent + MediaPopup.prototype.addFrameEvents.apply(this, arguments); + }, + customizeFilters: function (toolbar) { + // vars + var filters = toolbar.get('filters'); + + // image + if (this.get('type') == 'image') { + // update all + filters.filters.all.text = acf.__('All images'); + + // remove some filters + delete filters.filters.audio; + delete filters.filters.video; + delete filters.filters.image; + + // update all filters to show images + $.each(filters.filters, function (i, filter) { + filter.props.type = filter.props.type || 'image'; + }); + } + + // specific types + if (this.get('allowedTypes')) { + // convert ".jpg, .png" into ["jpg", "png"] + var allowedTypes = this.get('allowedTypes').split(' ').join('').split('.').join('').split(','); + + // loop + allowedTypes.map(function (name) { + // get type + var mimeType = acf.getMimeType(name); + + // bail early if no type + if (!mimeType) return; + + // create new filter + var newFilter = { + text: mimeType, + props: { + status: null, + type: mimeType, + uploadedTo: null, + orderby: 'date', + order: 'DESC' + }, + priority: 20 + }; + + // append + filters.filters[mimeType] = newFilter; + }); + } + + // uploaded to post + if (this.get('library') === 'uploadedTo') { + // vars + var uploadedTo = this.frame.options.library.uploadedTo; + + // remove some filters + delete filters.filters.unattached; + delete filters.filters.uploaded; + + // add uploadedTo to filters + $.each(filters.filters, function (i, filter) { + filter.text += ' (' + acf.__('Uploaded to this post') + ')'; + filter.props.uploadedTo = uploadedTo; + }); + } + + // add _acfuploader to filters + var field = this.get('field'); + $.each(filters.filters, function (k, filter) { + filter.props._acfuploader = field; + }); + + // add _acfuplaoder to search + var search = toolbar.get('search'); + search.model.attributes._acfuploader = field; + + // render (custom function added to prototype) + if (filters.renderFilters) { + filters.renderFilters(); + } + } + }); + + /** + * acf.models.EditMediaPopup + * + * description + * + * @date 10/1/18 + * @since 5.6.5 + * + * @param type $var Description. Default. + * @return type Description. + */ + + acf.models.EditMediaPopup = MediaPopup.extend({ + id: 'SelectMediaPopup', + setup: function (props) { + // default button + if (!props.button) { + props.button = acf._x('Update', 'verb'); + } + + // parent + MediaPopup.prototype.setup.apply(this, arguments); + }, + addFrameEvents: function (frame, options) { + // add class + frame.on('open', function () { + // add class + this.$el.closest('.media-modal').addClass('acf-expanded'); + + // set to browse + if (this.content.mode() != 'browse') { + this.content.mode('browse'); + } + + // set selection + var state = this.state(); + var selection = state.get('selection'); + var attachment = wp.media.attachment(frame.acf.get('attachment')); + selection.add(attachment); + }, frame); + + // parent + MediaPopup.prototype.addFrameEvents.apply(this, arguments); + } + }); + + /** + * customizePrototypes + * + * description + * + * @date 11/1/18 + * @since 5.6.5 + * + * @param type $var Description. Default. + * @return type Description. + */ + + var customizePrototypes = new acf.Model({ + id: 'customizePrototypes', + wait: 'ready', + initialize: function () { + // bail early if no media views + if (!acf.isset(window, 'wp', 'media', 'view')) { + return; + } + + // fix bug where CPT without "editor" does not set post.id setting which then prevents uploadedTo from working + var postID = getPostID(); + if (postID && acf.isset(wp, 'media', 'view', 'settings', 'post')) { + wp.media.view.settings.post.id = postID; + } + + // customize + this.customizeAttachmentsButton(); + this.customizeAttachmentsRouter(); + this.customizeAttachmentFilters(); + this.customizeAttachmentCompat(); + this.customizeAttachmentLibrary(); + }, + customizeAttachmentsButton: function () { + // validate + if (!acf.isset(wp, 'media', 'view', 'Button')) { + return; + } + + // Extend + var Button = wp.media.view.Button; + wp.media.view.Button = Button.extend({ + // Fix bug where "Select" button appears blank after editing an image. + // Do this by simplifying Button initialize function and avoid deleting this.options. + initialize: function () { + var options = _.defaults(this.options, this.defaults); + this.model = new Backbone.Model(options); + this.listenTo(this.model, 'change', this.render); + } + }); + }, + customizeAttachmentsRouter: function () { + // validate + if (!acf.isset(wp, 'media', 'view', 'Router')) { + return; + } + + // vars + var Parent = wp.media.view.Router; + + // extend + wp.media.view.Router = Parent.extend({ + addExpand: function () { + // vars + var $a = $(['', '' + acf.__('Expand Details') + '', '' + acf.__('Collapse Details') + '', ''].join('')); + + // add events + $a.on('click', function (e) { + e.preventDefault(); + var $div = $(this).closest('.media-modal'); + if ($div.hasClass('acf-expanded')) { + $div.removeClass('acf-expanded'); + } else { + $div.addClass('acf-expanded'); + } + }); + + // append + this.$el.append($a); + }, + initialize: function () { + // initialize + Parent.prototype.initialize.apply(this, arguments); + + // add buttons + this.addExpand(); + + // return + return this; + } + }); + }, + customizeAttachmentFilters: function () { + // validate + if (!acf.isset(wp, 'media', 'view', 'AttachmentFilters', 'All')) { + return; + } + + // vars + var Parent = wp.media.view.AttachmentFilters.All; + + // renderFilters + // copied from media-views.js:6939 + Parent.prototype.renderFilters = function () { + // Build `').val(value).html(filter.text)[0], + priority: filter.priority || 50 + }; + }, this).sortBy('priority').pluck('el').value()); + }; + }, + customizeAttachmentCompat: function () { + // validate + if (!acf.isset(wp, 'media', 'view', 'AttachmentCompat')) { + return; + } + + // vars + var AttachmentCompat = wp.media.view.AttachmentCompat; + var timeout = false; + + // extend + wp.media.view.AttachmentCompat = AttachmentCompat.extend({ + render: function () { + // WP bug + // When multiple media frames exist on the same page (WP content, WYSIWYG, image, file ), + // WP creates multiple instances of this AttachmentCompat view. + // Each instance will attempt to render when a new modal is created. + // Use a property to avoid this and only render once per instance. + if (this.rendered) { + return this; + } + + // render HTML + AttachmentCompat.prototype.render.apply(this, arguments); + + // when uploading, render is called twice. + // ignore first render by checking for #acf-form-data element + if (!this.$('#acf-form-data').length) { + return this; + } + + // clear timeout + clearTimeout(timeout); + + // setTimeout + timeout = setTimeout($.proxy(function () { + this.rendered = true; + acf.doAction('append', this.$el); + }, this), 50); + + // return + return this; + }, + save: function (event) { + var data = {}; + if (event) { + event.preventDefault(); + } + + //_.each( this.$el.serializeArray(), function( pair ) { + // data[ pair.name ] = pair.value; + //}); + + // Serialize data more thoroughly to allow chckbox inputs to save. + data = acf.serializeForAjax(this.$el); + this.controller.trigger('attachment:compat:waiting', ['waiting']); + this.model.saveCompat(data).always(_.bind(this.postSave, this)); + } + }); + }, + customizeAttachmentLibrary: function () { + // validate + if (!acf.isset(wp, 'media', 'view', 'Attachment', 'Library')) { + return; + } + + // vars + var AttachmentLibrary = wp.media.view.Attachment.Library; + + // extend + wp.media.view.Attachment.Library = AttachmentLibrary.extend({ + render: function () { + // vars + var popup = acf.isget(this, 'controller', 'acf'); + var attributes = acf.isget(this, 'model', 'attributes'); + + // check vars exist to avoid errors + if (popup && attributes) { + // show errors + if (attributes.acf_errors) { + this.$el.addClass('acf-disabled'); + } + + // disable selected + var selected = popup.get('selected'); + if (selected && selected.indexOf(attributes.id) > -1) { + this.$el.addClass('acf-selected'); + } + } + + // render + return AttachmentLibrary.prototype.render.apply(this, arguments); + }, + /* + * toggleSelection + * + * This function is called before an attachment is selected + * A good place to check for errors and prevent the 'select' function from being fired + * + * @type function + * @date 29/09/2016 + * @since 5.4.0 + * + * @param options (object) + * @return n/a + */ + + toggleSelection: function (options) { + // vars + // source: wp-includes/js/media-views.js:2880 + var collection = this.collection, + selection = this.options.selection, + model = this.model, + single = selection.single(); + + // vars + var frame = this.controller; + var errors = acf.isget(this, 'model', 'attributes', 'acf_errors'); + var $sidebar = frame.$el.find('.media-frame-content .media-sidebar'); + + // remove previous error + $sidebar.children('.acf-selection-error').remove(); + + // show attachment details + $sidebar.children().removeClass('acf-hidden'); + + // add message + if (frame && errors) { + // vars + var filename = acf.isget(this, 'model', 'attributes', 'filename'); + + // hide attachment details + // Gallery field continues to show previously selected attachment... + $sidebar.children().addClass('acf-hidden'); + + // append message + $sidebar.prepend(['
        ', '' + acf.__('Restricted') + '', '' + filename + '', '' + errors + '', '
        '].join('')); + + // reset selection (unselects all attachments) + selection.reset(); + + // set single (attachment displayed in sidebar) + selection.single(model); + + // return and prevent 'select' form being fired + return; + } + + // return + return AttachmentLibrary.prototype.toggleSelection.apply(this, arguments); + } + }); + } + }); +})(jQuery); + +/***/ }), + +/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-postbox.js": +/*!**********************************************************************!*\ + !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-postbox.js ***! + \**********************************************************************/ +/***/ (function() { + +(function ($, undefined) { + /** + * postboxManager + * + * Manages postboxes on the screen. + * + * @date 25/5/19 + * @since 5.8.1 + * + * @param void + * @return void + */ + var postboxManager = new acf.Model({ + wait: 'prepare', + priority: 1, + initialize: function () { + (acf.get('postboxes') || []).map(acf.newPostbox); + } + }); + + /** + * acf.getPostbox + * + * Returns a postbox instance. + * + * @date 23/9/18 + * @since 5.7.7 + * + * @param mixed $el Either a jQuery element or the postbox id. + * @return object + */ + acf.getPostbox = function ($el) { + // allow string parameter + if (typeof arguments[0] == 'string') { + $el = $('#' + arguments[0]); + } + + // return instance + return acf.getInstance($el); + }; + + /** + * acf.getPostboxes + * + * Returns an array of postbox instances. + * + * @date 23/9/18 + * @since 5.7.7 + * + * @param void + * @return array + */ + acf.getPostboxes = function () { + return acf.getInstances($('.acf-postbox')); + }; + + /** + * acf.newPostbox + * + * Returns a new postbox instance for the given props. + * + * @date 20/9/18 + * @since 5.7.6 + * + * @param object props The postbox properties. + * @return object + */ + acf.newPostbox = function (props) { + return new acf.models.Postbox(props); + }; + + /** + * acf.models.Postbox + * + * The postbox model. + * + * @date 20/9/18 + * @since 5.7.6 + * + * @param void + * @return void + */ + acf.models.Postbox = acf.Model.extend({ + data: { + id: '', + key: '', + style: 'default', + label: 'top', + edit: '' + }, + setup: function (props) { + // compatibilty + if (props.editLink) { + props.edit = props.editLink; + } + + // extend data + $.extend(this.data, props); + + // set $el + this.$el = this.$postbox(); + }, + $postbox: function () { + return $('#' + this.get('id')); + }, + $hide: function () { + return $('#' + this.get('id') + '-hide'); + }, + $hideLabel: function () { + return this.$hide().parent(); + }, + $hndle: function () { + return this.$('> .hndle'); + }, + $handleActions: function () { + return this.$('> .postbox-header .handle-actions'); + }, + $inside: function () { + return this.$('> .inside'); + }, + isVisible: function () { + return this.$el.hasClass('acf-hidden'); + }, + isHiddenByScreenOptions: function () { + return this.$el.hasClass('hide-if-js') || this.$el.css('display') == 'none'; + }, + initialize: function () { + // Add default class. + this.$el.addClass('acf-postbox'); + + // Add field group style class (ignore in block editor). + if (acf.get('editor') !== 'block') { + var style = this.get('style'); + if (style !== 'default') { + this.$el.addClass(style); + } + } + + // Add .inside class. + this.$inside().addClass('acf-fields').addClass('-' + this.get('label')); + + // Append edit link. + var edit = this.get('edit'); + if (edit) { + var html = ''; + var $handleActions = this.$handleActions(); + if ($handleActions.length) { + $handleActions.prepend(html); + } else { + this.$hndle().append(html); + } + } + + // Show postbox. + this.show(); + }, + show: function () { + // If disabled by screen options, set checked to false and return. + if (this.$el.hasClass('hide-if-js')) { + this.$hide().prop('checked', false); + return; + } + + // Show label. + this.$hideLabel().show(); + + // toggle on checkbox + this.$hide().prop('checked', true); + + // Show postbox + this.$el.show().removeClass('acf-hidden'); + + // Do action. + acf.doAction('show_postbox', this); + }, + enable: function () { + acf.enable(this.$el, 'postbox'); + }, + showEnable: function () { + this.enable(); + this.show(); + }, + hide: function () { + // Hide label. + this.$hideLabel().hide(); + + // Hide postbox + this.$el.hide().addClass('acf-hidden'); + + // Do action. + acf.doAction('hide_postbox', this); + }, + disable: function () { + acf.disable(this.$el, 'postbox'); + }, + hideDisable: function () { + this.disable(); + this.hide(); + }, + html: function (html) { + // Update HTML. + this.$inside().html(html); + + // Do action. + acf.doAction('append', this.$el); + } + }); +})(jQuery); + +/***/ }), + +/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-screen.js": +/*!*********************************************************************!*\ + !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-screen.js ***! + \*********************************************************************/ +/***/ (function() { + +(function ($, undefined) { + acf.screen = new acf.Model({ + active: true, + xhr: false, + timeout: false, + wait: 'load', + events: { + 'change #page_template': 'onChange', + 'change #parent_id': 'onChange', + 'change #post-formats-select': 'onChange', + 'change .categorychecklist': 'onChange', + 'change .tagsdiv': 'onChange', + 'change .acf-taxonomy-field[data-save="1"]': 'onChange', + 'change #product-type': 'onChange' + }, + isPost: function () { + return acf.get('screen') === 'post'; + }, + isUser: function () { + return acf.get('screen') === 'user'; + }, + isTaxonomy: function () { + return acf.get('screen') === 'taxonomy'; + }, + isAttachment: function () { + return acf.get('screen') === 'attachment'; + }, + isNavMenu: function () { + return acf.get('screen') === 'nav_menu'; + }, + isWidget: function () { + return acf.get('screen') === 'widget'; + }, + isComment: function () { + return acf.get('screen') === 'comment'; + }, + getPageTemplate: function () { + var $el = $('#page_template'); + return $el.length ? $el.val() : null; + }, + getPageParent: function (e, $el) { + var $el = $('#parent_id'); + return $el.length ? $el.val() : null; + }, + getPageType: function (e, $el) { + return this.getPageParent() ? 'child' : 'parent'; + }, + getPostType: function () { + return $('#post_type').val(); + }, + getPostFormat: function (e, $el) { + var $el = $('#post-formats-select input:checked'); + if ($el.length) { + var val = $el.val(); + return val == '0' ? 'standard' : val; + } + return null; + }, + getPostCoreTerms: function () { + // vars + var terms = {}; + + // serialize WP taxonomy postboxes + var data = acf.serialize($('.categorydiv, .tagsdiv')); + + // use tax_input (tag, custom-taxonomy) when possible. + // this data is already formatted in taxonomy => [terms]. + if (data.tax_input) { + terms = data.tax_input; + } + + // append "category" which uses a different name + if (data.post_category) { + terms.category = data.post_category; + } + + // convert any string values (tags) into array format + for (var tax in terms) { + if (!acf.isArray(terms[tax])) { + terms[tax] = terms[tax].split(/,[\s]?/); + } + } + + // return + return terms; + }, + getPostTerms: function () { + // Get core terms. + var terms = this.getPostCoreTerms(); + + // loop over taxonomy fields and add their values + acf.getFields({ + type: 'taxonomy' + }).map(function (field) { + // ignore fields that don't save + if (!field.get('save')) { + return; + } + + // vars + var val = field.val(); + var tax = field.get('taxonomy'); + + // check val + if (val) { + // ensure terms exists + terms[tax] = terms[tax] || []; + + // ensure val is an array + val = acf.isArray(val) ? val : [val]; + + // append + terms[tax] = terms[tax].concat(val); + } + }); + + // add WC product type + if ((productType = this.getProductType()) !== null) { + terms.product_type = [productType]; + } + + // remove duplicate values + for (var tax in terms) { + terms[tax] = acf.uniqueArray(terms[tax]); + } + + // return + return terms; + }, + getProductType: function () { + var $el = $('#product-type'); + return $el.length ? $el.val() : null; + }, + check: function () { + // bail early if not for post + if (acf.get('screen') !== 'post') { + return; + } + + // abort XHR if is already loading AJAX data + if (this.xhr) { + this.xhr.abort(); + } + + // vars + var ajaxData = acf.parseArgs(this.data, { + action: 'acf/ajax/check_screen', + screen: acf.get('screen'), + exists: [] + }); + + // post id + if (this.isPost()) { + ajaxData.post_id = acf.get('post_id'); + } + + // post type + if ((postType = this.getPostType()) !== null) { + ajaxData.post_type = postType; + } + + // page template + if ((pageTemplate = this.getPageTemplate()) !== null) { + ajaxData.page_template = pageTemplate; + } + + // page parent + if ((pageParent = this.getPageParent()) !== null) { + ajaxData.page_parent = pageParent; + } + + // page type + if ((pageType = this.getPageType()) !== null) { + ajaxData.page_type = pageType; + } + + // post format + if ((postFormat = this.getPostFormat()) !== null) { + ajaxData.post_format = postFormat; + } + + // post terms + if ((postTerms = this.getPostTerms()) !== null) { + ajaxData.post_terms = postTerms; + } + + // add array of existing postboxes to increase performance and reduce JSON HTML + acf.getPostboxes().map(function (postbox) { + ajaxData.exists.push(postbox.get('key')); + }); + + // filter + ajaxData = acf.applyFilters('check_screen_args', ajaxData); + + // success + var onSuccess = function (json) { + // Render post screen. + if (acf.get('screen') == 'post') { + this.renderPostScreen(json); + + // Render user screen. + } else if (acf.get('screen') == 'user') { + this.renderUserScreen(json); + } + + // action + acf.doAction('check_screen_complete', json, ajaxData); + }; + + // ajax + this.xhr = $.ajax({ + url: acf.get('ajaxurl'), + data: acf.prepareForAjax(ajaxData), + type: 'post', + dataType: 'json', + context: this, + success: onSuccess + }); + }, + onChange: function (e, $el) { + this.setTimeout(this.check, 1); + }, + renderPostScreen: function (data) { + // Helper function to copy events + var copyEvents = function ($from, $to) { + var events = $._data($from[0]).events; + for (var type in events) { + for (var i = 0; i < events[type].length; i++) { + $to.on(type, events[type][i].handler); + } + } + }; + + // Helper function to sort metabox. + var sortMetabox = function (id, ids) { + // Find position of id within ids. + var index = ids.indexOf(id); + + // Bail early if index not found. + if (index == -1) { + return false; + } + + // Loop over metaboxes behind (in reverse order). + for (var i = index - 1; i >= 0; i--) { + if ($('#' + ids[i]).length) { + return $('#' + ids[i]).after($('#' + id)); + } + } + + // Loop over metaboxes infront. + for (var i = index + 1; i < ids.length; i++) { + if ($('#' + ids[i]).length) { + return $('#' + ids[i]).before($('#' + id)); + } + } + + // Return false if not sorted. + return false; + }; + + // Keep track of visible and hidden postboxes. + data.visible = []; + data.hidden = []; + + // Show these postboxes. + data.results = data.results.map(function (result, i) { + // vars + var postbox = acf.getPostbox(result.id); + + // Prevent "acf_after_title" position in Block Editor. + if (acf.isGutenberg() && result.position == 'acf_after_title') { + result.position = 'normal'; + } + + // Create postbox if doesn't exist. + if (!postbox) { + var wpMinorVersion = parseFloat(acf.get('wp_version')); + if (wpMinorVersion >= 5.5) { + var postboxHeader = ['
        ', '

        ', '' + acf.escHtml(result.title) + '', '

        ', '
        ', '', '
        ', '
        '].join(''); + } else { + var postboxHeader = ['', '

        ', '' + acf.escHtml(result.title) + '', '

        '].join(''); + } + + // Ensure result.classes is set. + if (!result.classes) result.classes = ''; + + // Create it. + var $postbox = $(['
        ', postboxHeader, '
        ', result.html, '
        ', '
        '].join('')); + + // Create new hide toggle. + if ($('#adv-settings').length) { + var $prefs = $('#adv-settings .metabox-prefs'); + var $label = $([''].join('')); + + // Copy default WP events onto checkbox. + copyEvents($prefs.find('input').first(), $label.find('input')); + + // Append hide label + $prefs.append($label); + } + + // Copy default WP events onto metabox. + if ($('.postbox').length) { + copyEvents($('.postbox .handlediv').first(), $postbox.children('.handlediv')); + copyEvents($('.postbox .hndle').first(), $postbox.children('.hndle')); + } + + // Append metabox to the bottom of "side-sortables". + if (result.position === 'side') { + $('#' + result.position + '-sortables').append($postbox); + + // Prepend metabox to the top of "normal-sortbables". + } else { + $('#' + result.position + '-sortables').prepend($postbox); + } + + // Position metabox amongst existing ACF metaboxes within the same location. + var order = []; + data.results.map(function (_result) { + if (result.position === _result.position && $('#' + result.position + '-sortables #' + _result.id).length) { + order.push(_result.id); + } + }); + sortMetabox(result.id, order); + + // Check 'sorted' for user preference. + if (data.sorted) { + // Loop over each position (acf_after_title, side, normal). + for (var position in data.sorted) { + let order = data.sorted[position]; + if (typeof order !== 'string') { + continue; + } + + // Explode string into array of ids. + order = order.split(','); + + // Position metabox relative to order. + if (sortMetabox(result.id, order)) { + break; + } + } + } + + // Initalize it (modifies HTML). + postbox = acf.newPostbox(result); + + // Trigger action. + acf.doAction('append', $postbox); + acf.doAction('append_postbox', postbox); + } + + // show postbox + postbox.showEnable(); + + // append + data.visible.push(result.id); + + // Return result (may have changed). + return result; + }); + + // Hide these postboxes. + acf.getPostboxes().map(function (postbox) { + if (data.visible.indexOf(postbox.get('id')) === -1) { + // Hide postbox. + postbox.hideDisable(); + + // Append to data. + data.hidden.push(postbox.get('id')); + } + }); + + // Update style. + $('#acf-style').html(data.style); + + // Do action. + acf.doAction('refresh_post_screen', data); + }, + renderUserScreen: function (json) {} + }); + + /** + * gutenScreen + * + * Adds compatibility with the Gutenberg edit screen. + * + * @date 11/12/18 + * @since 5.8.0 + * + * @param void + * @return void + */ + var gutenScreen = new acf.Model({ + // Keep a reference to the most recent post attributes. + postEdits: {}, + // Wait until assets have been loaded. + wait: 'prepare', + initialize: function () { + // Bail early if not Gutenberg. + if (!acf.isGutenberg()) { + return; + } + + // Listen for changes (use debounced version as this can fires often). + wp.data.subscribe(acf.debounce(this.onChange).bind(this)); + + // Customize "acf.screen.get" functions. + acf.screen.getPageTemplate = this.getPageTemplate; + acf.screen.getPageParent = this.getPageParent; + acf.screen.getPostType = this.getPostType; + acf.screen.getPostFormat = this.getPostFormat; + acf.screen.getPostCoreTerms = this.getPostCoreTerms; + + // Disable unload + acf.unload.disable(); + + // Refresh metaboxes since WP 5.3. + var wpMinorVersion = parseFloat(acf.get('wp_version')); + if (wpMinorVersion >= 5.3) { + this.addAction('refresh_post_screen', this.onRefreshPostScreen); + } + + // Trigger "refresh" after WP has moved metaboxes into place. + wp.domReady(acf.refresh); + }, + onChange: function () { + // Determine attributes that can trigger a refresh. + var attributes = ['template', 'parent', 'format']; + + // Append taxonomy attribute names to this list. + (wp.data.select('core').getTaxonomies() || []).map(function (taxonomy) { + attributes.push(taxonomy.rest_base); + }); + + // Get relevant current post edits. + var _postEdits = wp.data.select('core/editor').getPostEdits(); + var postEdits = {}; + attributes.map(function (k) { + if (_postEdits[k] !== undefined) { + postEdits[k] = _postEdits[k]; + } + }); + + // Detect change. + if (JSON.stringify(postEdits) !== JSON.stringify(this.postEdits)) { + this.postEdits = postEdits; + + // Check screen. + acf.screen.check(); + } + }, + getPageTemplate: function () { + return wp.data.select('core/editor').getEditedPostAttribute('template'); + }, + getPageParent: function (e, $el) { + return wp.data.select('core/editor').getEditedPostAttribute('parent'); + }, + getPostType: function () { + return wp.data.select('core/editor').getEditedPostAttribute('type'); + }, + getPostFormat: function (e, $el) { + return wp.data.select('core/editor').getEditedPostAttribute('format'); + }, + getPostCoreTerms: function () { + // vars + var terms = {}; + + // Loop over taxonomies. + var taxonomies = wp.data.select('core').getTaxonomies() || []; + taxonomies.map(function (taxonomy) { + // Append selected taxonomies to terms object. + var postTerms = wp.data.select('core/editor').getEditedPostAttribute(taxonomy.rest_base); + if (postTerms) { + terms[taxonomy.slug] = postTerms; + } + }); + + // return + return terms; + }, + /** + * onRefreshPostScreen + * + * Fires after the Post edit screen metaboxs are refreshed to update the Block Editor API state. + * + * @date 11/11/19 + * @since 5.8.7 + * + * @param object data The "check_screen" JSON response data. + * @return void + */ + onRefreshPostScreen: function (data) { + // Extract vars. + var select = wp.data.select('core/edit-post'); + var dispatch = wp.data.dispatch('core/edit-post'); + + // Load current metabox locations and data. + var locations = {}; + select.getActiveMetaBoxLocations().map(function (location) { + locations[location] = select.getMetaBoxesPerLocation(location); + }); + + // Generate flat array of existing ids. + var ids = []; + for (var k in locations) { + locations[k].map(function (m) { + ids.push(m.id); + }); + } + + // Append new ACF metaboxes (ignore those which already exist). + data.results.filter(function (r) { + return ids.indexOf(r.id) === -1; + }).map(function (result, i) { + // Ensure location exists. + var location = result.position; + locations[location] = locations[location] || []; + + // Append. + locations[location].push({ + id: result.id, + title: result.title + }); + }); + + // Remove hidden ACF metaboxes. + for (var k in locations) { + locations[k] = locations[k].filter(function (m) { + return data.hidden.indexOf(m.id) === -1; + }); + } + + // Update state. + dispatch.setAvailableMetaBoxesPerLocation(locations); + } + }); +})(jQuery); + +/***/ }), + +/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-select2.js": +/*!**********************************************************************!*\ + !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-select2.js ***! + \**********************************************************************/ +/***/ (function() { + +(function ($, undefined) { + /** + * acf.newSelect2 + * + * description + * + * @date 13/1/18 + * @since 5.6.5 + * + * @param type $var Description. Default. + * @return type Description. + */ + + acf.newSelect2 = function ($select, props) { + // defaults + props = acf.parseArgs(props, { + allowNull: false, + placeholder: '', + multiple: false, + field: false, + ajax: false, + ajaxAction: '', + ajaxData: function (data) { + return data; + }, + ajaxResults: function (json) { + return json; + }, + templateSelection: false, + templateResult: false, + dropdownCssClass: '', + suppressFilters: false + }); + + // initialize + if (getVersion() == 4) { + var select2 = new Select2_4($select, props); + } else { + var select2 = new Select2_3($select, props); + } + + // actions + acf.doAction('new_select2', select2); + + // return + return select2; + }; + + /** + * getVersion + * + * description + * + * @date 13/1/18 + * @since 5.6.5 + * + * @param type $var Description. Default. + * @return type Description. + */ + + function getVersion() { + // v4 + if (acf.isset(window, 'jQuery', 'fn', 'select2', 'amd')) { + return 4; + } + + // v3 + if (acf.isset(window, 'Select2')) { + return 3; + } + + // return + return false; + } + + /** + * Select2 + * + * description + * + * @date 13/1/18 + * @since 5.6.5 + * + * @param type $var Description. Default. + * @return type Description. + */ + + var Select2 = acf.Model.extend({ + setup: function ($select, props) { + $.extend(this.data, props); + this.$el = $select; + }, + initialize: function () {}, + selectOption: function (value) { + var $option = this.getOption(value); + if (!$option.prop('selected')) { + $option.prop('selected', true).trigger('change'); + } + }, + unselectOption: function (value) { + var $option = this.getOption(value); + if ($option.prop('selected')) { + $option.prop('selected', false).trigger('change'); + } + }, + getOption: function (value) { + return this.$('option[value="' + value + '"]'); + }, + addOption: function (option) { + // defaults + option = acf.parseArgs(option, { + id: '', + text: '', + selected: false + }); + + // vars + var $option = this.getOption(option.id); + + // append + if (!$option.length) { + $option = $(''); + $option.html(option.text); + $option.attr('value', option.id); + $option.prop('selected', option.selected); + this.$el.append($option); + } + + // chain + return $option; + }, + getValue: function () { + // vars + var val = []; + var $options = this.$el.find('option:selected'); + + // bail early if no selected + if (!$options.exists()) { + return val; + } + + // sort by attribute + $options = $options.sort(function (a, b) { + return +a.getAttribute('data-i') - +b.getAttribute('data-i'); + }); + + // loop + $options.each(function () { + var $el = $(this); + val.push({ + $el: $el, + id: $el.attr('value'), + text: $el.text() + }); + }); + + // return + return val; + }, + mergeOptions: function () {}, + getChoices: function () { + // callback + var crawl = function ($parent) { + // vars + var choices = []; + + // loop + $parent.children().each(function () { + // vars + var $child = $(this); + + // optgroup + if ($child.is('optgroup')) { + choices.push({ + text: $child.attr('label'), + children: crawl($child) + }); + + // option + } else { + choices.push({ + id: $child.attr('value'), + text: $child.text() + }); + } + }); + + // return + return choices; + }; + + // crawl + return crawl(this.$el); + }, + getAjaxData: function (params) { + // vars + var ajaxData = { + action: this.get('ajaxAction'), + s: params.term || '', + paged: params.page || 1 + }; + + // field helper + var field = this.get('field'); + if (field) { + ajaxData.field_key = field.get('key'); + } + + // callback + var callback = this.get('ajaxData'); + if (callback) { + ajaxData = callback.apply(this, [ajaxData, params]); + } + + // filter + ajaxData = acf.applyFilters('select2_ajax_data', ajaxData, this.data, this.$el, field || false, this); + + // return + return acf.prepareForAjax(ajaxData); + }, + getAjaxResults: function (json, params) { + // defaults + json = acf.parseArgs(json, { + results: false, + more: false + }); + + // callback + var callback = this.get('ajaxResults'); + if (callback) { + json = callback.apply(this, [json, params]); + } + + // filter + json = acf.applyFilters('select2_ajax_results', json, params, this); + + // return + return json; + }, + processAjaxResults: function (json, params) { + // vars + var json = this.getAjaxResults(json, params); + + // change more to pagination + if (json.more) { + json.pagination = { + more: true + }; + } + + // merge together groups + setTimeout($.proxy(this.mergeOptions, this), 1); + + // return + return json; + }, + destroy: function () { + // destroy via api + if (this.$el.data('select2')) { + this.$el.select2('destroy'); + } + + // destory via HTML (duplicating HTML does not contain data) + this.$el.siblings('.select2-container').remove(); + } + }); + + /** + * Select2_4 + * + * description + * + * @date 13/1/18 + * @since 5.6.5 + * + * @param type $var Description. Default. + * @return type Description. + */ + + var Select2_4 = Select2.extend({ + initialize: function () { + // vars + var $select = this.$el; + var options = { + width: '100%', + allowClear: this.get('allowNull'), + placeholder: this.get('placeholder'), + multiple: this.get('multiple'), + templateSelection: this.get('templateSelection'), + templateResult: this.get('templateResult'), + dropdownCssClass: this.get('dropdownCssClass'), + suppressFilters: this.get('suppressFilters'), + data: [], + escapeMarkup: function (markup) { + if (typeof markup !== 'string') { + return markup; + } + return acf.escHtml(markup); + } + }; + + // Clear empty templateSelections, templateResults, or dropdownCssClass. + if (!options.templateSelection) { + delete options.templateSelection; + } + if (!options.templateResult) { + delete options.templateResult; + } + if (!options.dropdownCssClass) { + delete options.dropdownCssClass; + } + + // Only use the template if SelectWoo is not loaded to work around https://github.com/woocommerce/woocommerce/pull/30473 + if (!acf.isset(window, 'jQuery', 'fn', 'selectWoo')) { + if (!options.templateSelection) { + options.templateSelection = function (selection) { + var $selection = $(''); + $selection.html(acf.escHtml(selection.text)); + $selection.data('element', selection.element); + return $selection; + }; + } + } else { + delete options.templateSelection; + delete options.templateResult; + } + + // multiple + if (options.multiple) { + // reorder options + this.getValue().map(function (item) { + item.$el.detach().appendTo($select); + }); + } + + // Temporarily remove conflicting attribute. + var attrAjax = $select.attr('data-ajax'); + if (attrAjax !== undefined) { + $select.removeData('ajax'); + $select.removeAttr('data-ajax'); + } + + // ajax + if (this.get('ajax')) { + options.ajax = { + url: acf.get('ajaxurl'), + delay: 250, + dataType: 'json', + type: 'post', + cache: false, + data: $.proxy(this.getAjaxData, this), + processResults: $.proxy(this.processAjaxResults, this) + }; + } + + // filter for 3rd party customization + //options = acf.applyFilters( 'select2_args', options, $select, this ); + if (!options.suppressFilters) { + var field = this.get('field'); + options = acf.applyFilters('select2_args', options, $select, this.data, field || false, this); + } + + // add select2 + $select.select2(options); + + // get container (Select2 v4 does not return this from constructor) + var $container = $select.next('.select2-container'); + + // multiple + if (options.multiple) { + // vars + var $ul = $container.find('ul'); + + // sortable + $ul.sortable({ + stop: function (e) { + // loop + $ul.find('.select2-selection__choice').each(function () { + // Attempt to use .data if it exists (select2 version < 4.0.6) or use our template data instead. + if ($(this).data('data')) { + var $option = $($(this).data('data').element); + } else { + var $option = $($(this).find('span.acf-selection').data('element')); + } + + // detach and re-append to end + $option.detach().appendTo($select); + }); + + // trigger change on input (JS error if trigger on select) + $select.trigger('change'); + } + }); + + // on select, move to end + $select.on('select2:select', this.proxy(function (e) { + this.getOption(e.params.data.id).detach().appendTo(this.$el); + })); + } + + // add handler to auto-focus searchbox (for jQuery 3.6) + $select.on('select2:open', () => { + $('.select2-container--open .select2-search__field').get(-1).focus(); + }); + + // add class + $container.addClass('-acf'); + + // Add back temporarily removed attr. + if (attrAjax !== undefined) { + $select.attr('data-ajax', attrAjax); + } + + // action for 3rd party customization + if (!options.suppressFilters) { + acf.doAction('select2_init', $select, options, this.data, field || false, this); + } + }, + mergeOptions: function () { + // vars + var $prevOptions = false; + var $prevGroup = false; + + // loop + $('.select2-results__option[role="group"]').each(function () { + // vars + var $options = $(this).children('ul'); + var $group = $(this).children('strong'); + + // compare to previous + if ($prevGroup && $prevGroup.text() === $group.text()) { + $prevOptions.append($options.children()); + $(this).remove(); + return; + } + + // update vars + $prevOptions = $options; + $prevGroup = $group; + }); + } + }); + + /** + * Select2_3 + * + * description + * + * @date 13/1/18 + * @since 5.6.5 + * + * @param type $var Description. Default. + * @return type Description. + */ + + var Select2_3 = Select2.extend({ + initialize: function () { + // vars + var $select = this.$el; + var value = this.getValue(); + var multiple = this.get('multiple'); + var options = { + width: '100%', + allowClear: this.get('allowNull'), + placeholder: this.get('placeholder'), + separator: '||', + multiple: this.get('multiple'), + data: this.getChoices(), + escapeMarkup: function (string) { + return acf.escHtml(string); + }, + dropdownCss: { + 'z-index': '999999999' + }, + initSelection: function (element, callback) { + if (multiple) { + callback(value); + } else { + callback(value.shift()); + } + } + }; + + // get hidden input + var $input = $select.siblings('input'); + if (!$input.length) { + $input = $(''); + $select.before($input); + } + + // set input value + inputValue = value.map(function (item) { + return item.id; + }).join('||'); + $input.val(inputValue); + + // multiple + if (options.multiple) { + // reorder options + value.map(function (item) { + item.$el.detach().appendTo($select); + }); + } + + // remove blank option as we have a clear all button + if (options.allowClear) { + options.data = options.data.filter(function (item) { + return item.id !== ''; + }); + } + + // remove conflicting atts + $select.removeData('ajax'); + $select.removeAttr('data-ajax'); + + // ajax + if (this.get('ajax')) { + options.ajax = { + url: acf.get('ajaxurl'), + quietMillis: 250, + dataType: 'json', + type: 'post', + cache: false, + data: $.proxy(this.getAjaxData, this), + results: $.proxy(this.processAjaxResults, this) + }; + } + + // filter for 3rd party customization + var field = this.get('field'); + options = acf.applyFilters('select2_args', options, $select, this.data, field || false, this); + + // add select2 + $input.select2(options); + + // get container + var $container = $input.select2('container'); + + // helper to find this select's option + var getOption = $.proxy(this.getOption, this); + + // multiple + if (options.multiple) { + // vars + var $ul = $container.find('ul'); + + // sortable + $ul.sortable({ + stop: function () { + // loop + $ul.find('.select2-search-choice').each(function () { + // vars + var data = $(this).data('select2Data'); + var $option = getOption(data.id); + + // detach and re-append to end + $option.detach().appendTo($select); + }); + + // trigger change on input (JS error if trigger on select) + $select.trigger('change'); + } + }); + } + + // on select, create option and move to end + $input.on('select2-selecting', function (e) { + // vars + var item = e.choice; + var $option = getOption(item.id); + + // create if doesn't exist + if (!$option.length) { + $option = $(''); + } + + // detach and re-append to end + $option.detach().appendTo($select); + }); + + // add class + $container.addClass('-acf'); + + // action for 3rd party customization + acf.doAction('select2_init', $select, options, this.data, field || false, this); + + // change + $input.on('change', function () { + var val = $input.val(); + if (val.indexOf('||')) { + val = val.split('||'); + } + $select.val(val).trigger('change'); + }); + + // hide select + $select.hide(); + }, + mergeOptions: function () { + // vars + var $prevOptions = false; + var $prevGroup = false; + + // loop + $('#select2-drop .select2-result-with-children').each(function () { + // vars + var $options = $(this).children('ul'); + var $group = $(this).children('.select2-result-label'); + + // compare to previous + if ($prevGroup && $prevGroup.text() === $group.text()) { + $prevGroup.append($options.children()); + $(this).remove(); + return; + } + + // update vars + $prevOptions = $options; + $prevGroup = $group; + }); + }, + getAjaxData: function (term, page) { + // create Select2 v4 params + var params = { + term: term, + page: page + }; + + // filter + var field = this.get('field'); + params = acf.applyFilters('select2_ajax_data', params, this.data, this.$el, field || false, this); + + // return + return Select2.prototype.getAjaxData.apply(this, [params]); + } + }); + + // manager + var select2Manager = new acf.Model({ + priority: 5, + wait: 'prepare', + actions: { + duplicate: 'onDuplicate' + }, + initialize: function () { + // vars + var locale = acf.get('locale'); + var rtl = acf.get('rtl'); + var l10n = acf.get('select2L10n'); + var version = getVersion(); + + // bail early if no l10n + if (!l10n) { + return false; + } + + // bail early if 'en' + if (locale.indexOf('en') === 0) { + return false; + } + + // initialize + if (version == 4) { + this.addTranslations4(); + } else if (version == 3) { + this.addTranslations3(); + } + }, + addTranslations4: function () { + // vars + var l10n = acf.get('select2L10n'); + var locale = acf.get('locale'); + + // modify local to match html[lang] attribute (used by Select2) + locale = locale.replace('_', '-'); + + // select2L10n + var select2L10n = { + errorLoading: function () { + return l10n.load_fail; + }, + inputTooLong: function (args) { + var overChars = args.input.length - args.maximum; + if (overChars > 1) { + return l10n.input_too_long_n.replace('%d', overChars); + } + return l10n.input_too_long_1; + }, + inputTooShort: function (args) { + var remainingChars = args.minimum - args.input.length; + if (remainingChars > 1) { + return l10n.input_too_short_n.replace('%d', remainingChars); + } + return l10n.input_too_short_1; + }, + loadingMore: function () { + return l10n.load_more; + }, + maximumSelected: function (args) { + var maximum = args.maximum; + if (maximum > 1) { + return l10n.selection_too_long_n.replace('%d', maximum); + } + return l10n.selection_too_long_1; + }, + noResults: function () { + return l10n.matches_0; + }, + searching: function () { + return l10n.searching; + } + }; + + // append + jQuery.fn.select2.amd.define('select2/i18n/' + locale, [], function () { + return select2L10n; + }); + }, + addTranslations3: function () { + // vars + var l10n = acf.get('select2L10n'); + var locale = acf.get('locale'); + + // modify local to match html[lang] attribute (used by Select2) + locale = locale.replace('_', '-'); + + // select2L10n + var select2L10n = { + formatMatches: function (matches) { + if (matches > 1) { + return l10n.matches_n.replace('%d', matches); + } + return l10n.matches_1; + }, + formatNoMatches: function () { + return l10n.matches_0; + }, + formatAjaxError: function () { + return l10n.load_fail; + }, + formatInputTooShort: function (input, min) { + var remainingChars = min - input.length; + if (remainingChars > 1) { + return l10n.input_too_short_n.replace('%d', remainingChars); + } + return l10n.input_too_short_1; + }, + formatInputTooLong: function (input, max) { + var overChars = input.length - max; + if (overChars > 1) { + return l10n.input_too_long_n.replace('%d', overChars); + } + return l10n.input_too_long_1; + }, + formatSelectionTooBig: function (maximum) { + if (maximum > 1) { + return l10n.selection_too_long_n.replace('%d', maximum); + } + return l10n.selection_too_long_1; + }, + formatLoadMore: function () { + return l10n.load_more; + }, + formatSearching: function () { + return l10n.searching; + } + }; + + // ensure locales exists + $.fn.select2.locales = $.fn.select2.locales || {}; + + // append + $.fn.select2.locales[locale] = select2L10n; + $.extend($.fn.select2.defaults, select2L10n); + }, + onDuplicate: function ($el, $el2) { + $el2.find('.select2-container').remove(); + } + }); +})(jQuery); + +/***/ }), + +/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-tinymce.js": +/*!**********************************************************************!*\ + !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-tinymce.js ***! + \**********************************************************************/ +/***/ (function() { + +(function ($, undefined) { + acf.tinymce = { + /* + * defaults + * + * This function will return default mce and qt settings + * + * @type function + * @date 18/8/17 + * @since 5.6.0 + * + * @param $post_id (int) + * @return $post_id (int) + */ + + defaults: function () { + // bail early if no tinyMCEPreInit + if (typeof tinyMCEPreInit === 'undefined') return false; + + // vars + var defaults = { + tinymce: tinyMCEPreInit.mceInit.acf_content, + quicktags: tinyMCEPreInit.qtInit.acf_content + }; + + // return + return defaults; + }, + /* + * initialize + * + * This function will initialize the tinymce and quicktags instances + * + * @type function + * @date 18/8/17 + * @since 5.6.0 + * + * @param $post_id (int) + * @return $post_id (int) + */ + + initialize: function (id, args) { + // defaults + args = acf.parseArgs(args, { + tinymce: true, + quicktags: true, + toolbar: 'full', + mode: 'visual', + // visual,text + field: false + }); + + // tinymce + if (args.tinymce) { + this.initializeTinymce(id, args); + } + + // quicktags + if (args.quicktags) { + this.initializeQuicktags(id, args); + } + }, + /* + * initializeTinymce + * + * This function will initialize the tinymce instance + * + * @type function + * @date 18/8/17 + * @since 5.6.0 + * + * @param $post_id (int) + * @return $post_id (int) + */ + + initializeTinymce: function (id, args) { + // vars + var $textarea = $('#' + id); + var defaults = this.defaults(); + var toolbars = acf.get('toolbars'); + var field = args.field || false; + var $field = field.$el || false; + + // bail early + if (typeof tinymce === 'undefined') return false; + if (!defaults) return false; + + // check if exists + if (tinymce.get(id)) { + return this.enable(id); + } + + // settings + var init = $.extend({}, defaults.tinymce, args.tinymce); + init.id = id; + init.selector = '#' + id; + + // toolbar + var toolbar = args.toolbar; + if (toolbar && toolbars && toolbars[toolbar]) { + for (var i = 1; i <= 4; i++) { + init['toolbar' + i] = toolbars[toolbar][i] || ''; + } + } + + // event + init.setup = function (ed) { + ed.on('change', function (e) { + ed.save(); // save to textarea + $textarea.trigger('change'); + }); + + // Fix bug where Gutenberg does not hear "mouseup" event and tries to select multiple blocks. + ed.on('mouseup', function (e) { + var event = new MouseEvent('mouseup'); + window.dispatchEvent(event); + }); + + // Temporarily comment out. May not be necessary due to wysiwyg field actions. + //ed.on('unload', function(e) { + // acf.tinymce.remove( id ); + //}); + }; + + // disable wp_autoresize_on (no solution yet for fixed toolbar) + init.wp_autoresize_on = false; + + // Enable wpautop allowing value to save without

        tags. + // Only if the "TinyMCE Advanced" plugin hasn't already set this functionality. + if (!init.tadv_noautop) { + init.wpautop = true; + } + + // hook for 3rd party customization + init = acf.applyFilters('wysiwyg_tinymce_settings', init, id, field); + + // z-index fix (caused too many conflicts) + //if( acf.isset(tinymce,'ui','FloatPanel') ) { + // tinymce.ui.FloatPanel.zIndex = 900000; + //} + + // store settings + tinyMCEPreInit.mceInit[id] = init; + + // visual tab is active + if (args.mode == 'visual') { + // init + var result = tinymce.init(init); + + // get editor + var ed = tinymce.get(id); + + // validate + if (!ed) { + return false; + } + + // add reference + ed.acf = args.field; + + // action + acf.doAction('wysiwyg_tinymce_init', ed, ed.id, init, field); + } + }, + /* + * initializeQuicktags + * + * This function will initialize the quicktags instance + * + * @type function + * @date 18/8/17 + * @since 5.6.0 + * + * @param $post_id (int) + * @return $post_id (int) + */ + + initializeQuicktags: function (id, args) { + // vars + var defaults = this.defaults(); + + // bail early + if (typeof quicktags === 'undefined') return false; + if (!defaults) return false; + + // settings + var init = $.extend({}, defaults.quicktags, args.quicktags); + init.id = id; + + // filter + var field = args.field || false; + var $field = field.$el || false; + init = acf.applyFilters('wysiwyg_quicktags_settings', init, init.id, field); + + // store settings + tinyMCEPreInit.qtInit[id] = init; + + // init + var ed = quicktags(init); + + // validate + if (!ed) { + return false; + } + + // generate HTML + this.buildQuicktags(ed); + + // action for 3rd party customization + acf.doAction('wysiwyg_quicktags_init', ed, ed.id, init, field); + }, + /* + * buildQuicktags + * + * This function will build the quicktags HTML + * + * @type function + * @date 18/8/17 + * @since 5.6.0 + * + * @param $post_id (int) + * @return $post_id (int) + */ + + buildQuicktags: function (ed) { + var canvas, + name, + settings, + theButtons, + html, + ed, + id, + i, + use, + instanceId, + defaults = ',strong,em,link,block,del,ins,img,ul,ol,li,code,more,close,'; + canvas = ed.canvas; + name = ed.name; + settings = ed.settings; + html = ''; + theButtons = {}; + use = ''; + instanceId = ed.id; + + // set buttons + if (settings.buttons) { + use = ',' + settings.buttons + ','; + } + for (i in edButtons) { + if (!edButtons[i]) { + continue; + } + id = edButtons[i].id; + if (use && defaults.indexOf(',' + id + ',') !== -1 && use.indexOf(',' + id + ',') === -1) { + continue; + } + if (!edButtons[i].instance || edButtons[i].instance === instanceId) { + theButtons[id] = edButtons[i]; + if (edButtons[i].html) { + html += edButtons[i].html(name + '_'); + } + } + } + if (use && use.indexOf(',dfw,') !== -1) { + theButtons.dfw = new QTags.DFWButton(); + html += theButtons.dfw.html(name + '_'); + } + if ('rtl' === document.getElementsByTagName('html')[0].dir) { + theButtons.textdirection = new QTags.TextDirectionButton(); + html += theButtons.textdirection.html(name + '_'); + } + ed.toolbar.innerHTML = html; + ed.theButtons = theButtons; + if (typeof jQuery !== 'undefined') { + jQuery(document).triggerHandler('quicktags-init', [ed]); + } + }, + disable: function (id) { + this.destroyTinymce(id); + }, + remove: function (id) { + this.destroyTinymce(id); + }, + destroy: function (id) { + this.destroyTinymce(id); + }, + destroyTinymce: function (id) { + // bail early + if (typeof tinymce === 'undefined') return false; + + // get editor + var ed = tinymce.get(id); + + // bail early if no editor + if (!ed) return false; + + // save + ed.save(); + + // destroy editor + ed.destroy(); + + // return + return true; + }, + enable: function (id) { + this.enableTinymce(id); + }, + enableTinymce: function (id) { + // bail early + if (typeof switchEditors === 'undefined') return false; + + // bail early if not initialized + if (typeof tinyMCEPreInit.mceInit[id] === 'undefined') return false; + + // Ensure textarea element is visible + // - Fixes bug in block editor when switching between "Block" and "Document" tabs. + $('#' + id).show(); + + // toggle + switchEditors.go(id, 'tmce'); + + // return + return true; + } + }; + var editorManager = new acf.Model({ + // hook in before fieldsEventManager, conditions, etc + priority: 5, + actions: { + prepare: 'onPrepare', + ready: 'onReady' + }, + onPrepare: function () { + // find hidden editor which may exist within a field + var $div = $('#acf-hidden-wp-editor'); + + // move to footer + if ($div.exists()) { + $div.appendTo('body'); + } + }, + onReady: function () { + // Restore wp.editor functions used by tinymce removed in WP5. + if (acf.isset(window, 'wp', 'oldEditor')) { + wp.editor.autop = wp.oldEditor.autop; + wp.editor.removep = wp.oldEditor.removep; + } + + // bail early if no tinymce + if (!acf.isset(window, 'tinymce', 'on')) return; + + // restore default activeEditor + tinymce.on('AddEditor', function (data) { + // vars + var editor = data.editor; + + // bail early if not 'acf' + if (editor.id.substr(0, 3) !== 'acf') return; + + // override if 'content' exists + editor = tinymce.editors.content || editor; + + // update vars + tinymce.activeEditor = editor; + wpActiveEditor = editor.id; + }); + } + }); +})(jQuery); + +/***/ }), + +/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-unload.js": +/*!*********************************************************************!*\ + !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-unload.js ***! + \*********************************************************************/ +/***/ (function() { + +(function ($, undefined) { + acf.unload = new acf.Model({ + wait: 'load', + active: true, + changed: false, + actions: { + validation_failure: 'startListening', + validation_success: 'stopListening' + }, + events: { + 'change form .acf-field': 'startListening', + 'submit form': 'stopListening' + }, + enable: function () { + this.active = true; + }, + disable: function () { + this.active = false; + }, + reset: function () { + this.stopListening(); + }, + startListening: function () { + // bail early if already changed, not active + if (this.changed || !this.active) { + return; + } + + // update + this.changed = true; + + // add event + $(window).on('beforeunload', this.onUnload); + }, + stopListening: function () { + // update + this.changed = false; + + // remove event + $(window).off('beforeunload', this.onUnload); + }, + onUnload: function () { + return acf.__('The changes you made will be lost if you navigate away from this page'); + } + }); +})(jQuery); + +/***/ }), + +/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-validation.js": +/*!*************************************************************************!*\ + !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-validation.js ***! + \*************************************************************************/ +/***/ (function() { + +(function ($, undefined) { + /** + * Validator + * + * The model for validating forms + * + * @date 4/9/18 + * @since 5.7.5 + * + * @param void + * @return void + */ + var Validator = acf.Model.extend({ + /** @var string The model identifier. */ + id: 'Validator', + /** @var object The model data. */ + data: { + /** @var array The form errors. */ + errors: [], + /** @var object The form notice. */ + notice: null, + /** @var string The form status. loading, invalid, valid */ + status: '' + }, + /** @var object The model events. */ + events: { + 'changed:status': 'onChangeStatus' + }, + /** + * addErrors + * + * Adds errors to the form. + * + * @date 4/9/18 + * @since 5.7.5 + * + * @param array errors An array of errors. + * @return void + */ + addErrors: function (errors) { + errors.map(this.addError, this); + }, + /** + * addError + * + * Adds and error to the form. + * + * @date 4/9/18 + * @since 5.7.5 + * + * @param object error An error object containing input and message. + * @return void + */ + addError: function (error) { + this.data.errors.push(error); + }, + /** + * hasErrors + * + * Returns true if the form has errors. + * + * @date 4/9/18 + * @since 5.7.5 + * + * @param void + * @return bool + */ + hasErrors: function () { + return this.data.errors.length; + }, + /** + * clearErrors + * + * Removes any errors. + * + * @date 4/9/18 + * @since 5.7.5 + * + * @param void + * @return void + */ + clearErrors: function () { + return this.data.errors = []; + }, + /** + * getErrors + * + * Returns the forms errors. + * + * @date 4/9/18 + * @since 5.7.5 + * + * @param void + * @return array + */ + getErrors: function () { + return this.data.errors; + }, + /** + * getFieldErrors + * + * Returns the forms field errors. + * + * @date 4/9/18 + * @since 5.7.5 + * + * @param void + * @return array + */ + getFieldErrors: function () { + // vars + var errors = []; + var inputs = []; + + // loop + this.getErrors().map(function (error) { + // bail early if global + if (!error.input) return; + + // update if exists + var i = inputs.indexOf(error.input); + if (i > -1) { + errors[i] = error; + + // update + } else { + errors.push(error); + inputs.push(error.input); + } + }); + + // return + return errors; + }, + /** + * getGlobalErrors + * + * Returns the forms global errors (errors without a specific input). + * + * @date 4/9/18 + * @since 5.7.5 + * + * @param void + * @return array + */ + getGlobalErrors: function () { + // return array of errors that contain no input + return this.getErrors().filter(function (error) { + return !error.input; + }); + }, + /** + * showErrors + * + * Displays all errors for this form. + * + * @date 4/9/18 + * @since 5.7.5 + * + * @param void + * @return void + */ + showErrors: function () { + // bail early if no errors + if (!this.hasErrors()) { + return; + } + + // vars + var fieldErrors = this.getFieldErrors(); + var globalErrors = this.getGlobalErrors(); + + // vars + var errorCount = 0; + var $scrollTo = false; + + // loop + fieldErrors.map(function (error) { + // get input + var $input = this.$('[name="' + error.input + '"]').first(); + + // if $_POST value was an array, this $input may not exist + if (!$input.length) { + $input = this.$('[name^="' + error.input + '"]').first(); + } + + // bail early if input doesn't exist + if (!$input.length) { + return; + } + + // increase + errorCount++; + + // get field + var field = acf.getClosestField($input); + + // make sure the postbox containing this field is not hidden by screen options + ensureFieldPostBoxIsVisible(field.$el); + + // show error + field.showError(error.message); + + // set $scrollTo + if (!$scrollTo) { + $scrollTo = field.$el; + } + }, this); + + // errorMessage + var errorMessage = acf.__('Validation failed'); + globalErrors.map(function (error) { + errorMessage += '. ' + error.message; + }); + if (errorCount == 1) { + errorMessage += '. ' + acf.__('1 field requires attention'); + } else if (errorCount > 1) { + errorMessage += '. ' + acf.__('%d fields require attention').replace('%d', errorCount); + } + + // notice + if (this.has('notice')) { + this.get('notice').update({ + type: 'error', + text: errorMessage + }); + } else { + var notice = acf.newNotice({ + type: 'error', + text: errorMessage, + target: this.$el + }); + this.set('notice', notice); + } + + // if no $scrollTo, set to message + if (!$scrollTo) { + $scrollTo = this.get('notice').$el; + } + + // timeout + setTimeout(function () { + $('html, body').animate({ + scrollTop: $scrollTo.offset().top - $(window).height() / 2 + }, 500); + }, 10); + }, + /** + * onChangeStatus + * + * Update the form class when changing the 'status' data + * + * @date 4/9/18 + * @since 5.7.5 + * + * @param object e The event object. + * @param jQuery $el The form element. + * @param string value The new status. + * @param string prevValue The old status. + * @return void + */ + onChangeStatus: function (e, $el, value, prevValue) { + this.$el.removeClass('is-' + prevValue).addClass('is-' + value); + }, + /** + * validate + * + * Vaildates the form via AJAX. + * + * @date 4/9/18 + * @since 5.7.5 + * + * @param object args A list of settings to customize the validation process. + * @return bool True if the form is valid. + */ + validate: function (args) { + // default args + args = acf.parseArgs(args, { + // trigger event + event: false, + // reset the form after submit + reset: false, + // loading callback + loading: function () {}, + // complete callback + complete: function () {}, + // failure callback + failure: function () {}, + // success callback + success: function ($form) { + $form.submit(); + } + }); + + // return true if is valid - allows form submit + if (this.get('status') == 'valid') { + return true; + } + + // return false if is currently validating - prevents form submit + if (this.get('status') == 'validating') { + return false; + } + + // return true if no ACF fields exist (no need to validate) + if (!this.$('.acf-field').length) { + return true; + } + + // if event is provided, create a new success callback. + if (args.event) { + var event = $.Event(null, args.event); + args.success = function () { + acf.enableSubmit($(event.target)).trigger(event); + }; + } + + // action for 3rd party + acf.doAction('validation_begin', this.$el); + + // lock form + acf.lockForm(this.$el); + + // loading callback + args.loading(this.$el, this); + + // update status + this.set('status', 'validating'); + + // success callback + var onSuccess = function (json) { + // validate + if (!acf.isAjaxSuccess(json)) { + return; + } + + // filter + var data = acf.applyFilters('validation_complete', json.data, this.$el, this); + + // add errors + if (!data.valid) { + this.addErrors(data.errors); + } + }; + + // complete + var onComplete = function () { + // unlock form + acf.unlockForm(this.$el); + + // failure + if (this.hasErrors()) { + // update status + this.set('status', 'invalid'); + + // action + acf.doAction('validation_failure', this.$el, this); + + // display errors + this.showErrors(); + + // failure callback + args.failure(this.$el, this); + + // success + } else { + // update status + this.set('status', 'valid'); + + // remove previous error message + if (this.has('notice')) { + this.get('notice').update({ + type: 'success', + text: acf.__('Validation successful'), + timeout: 1000 + }); + } + + // action + acf.doAction('validation_success', this.$el, this); + acf.doAction('submit', this.$el); + + // success callback (submit form) + args.success(this.$el, this); + + // lock form + acf.lockForm(this.$el); + + // reset + if (args.reset) { + this.reset(); + } + } + + // complete callback + args.complete(this.$el, this); + + // clear errors + this.clearErrors(); + }; + + // serialize form data + var data = acf.serialize(this.$el); + data.action = 'acf/validate_save_post'; + + // ajax + $.ajax({ + url: acf.get('ajaxurl'), + data: acf.prepareForAjax(data), + type: 'post', + dataType: 'json', + context: this, + success: onSuccess, + complete: onComplete + }); + + // return false to fail validation and allow AJAX + return false; + }, + /** + * setup + * + * Called during the constructor function to setup this instance + * + * @date 4/9/18 + * @since 5.7.5 + * + * @param jQuery $form The form element. + * @return void + */ + setup: function ($form) { + // set $el + this.$el = $form; + }, + /** + * reset + * + * Rests the validation to be used again. + * + * @date 6/9/18 + * @since 5.7.5 + * + * @param void + * @return void + */ + reset: function () { + // reset data + this.set('errors', []); + this.set('notice', null); + this.set('status', ''); + + // unlock form + acf.unlockForm(this.$el); + } + }); + + /** + * getValidator + * + * Returns the instance for a given form element. + * + * @date 4/9/18 + * @since 5.7.5 + * + * @param jQuery $el The form element. + * @return object + */ + var getValidator = function ($el) { + // instantiate + var validator = $el.data('acf'); + if (!validator) { + validator = new Validator($el); + } + + // return + return validator; + }; + + /** + * acf.validateForm + * + * A helper function for the Validator.validate() function. + * Returns true if form is valid, or fetches a validation request and returns false. + * + * @date 4/4/18 + * @since 5.6.9 + * + * @param object args A list of settings to customize the validation process. + * @return bool + */ + + acf.validateForm = function (args) { + return getValidator(args.form).validate(args); + }; + + /** + * acf.enableSubmit + * + * Enables a submit button and returns the element. + * + * @date 30/8/18 + * @since 5.7.4 + * + * @param jQuery $submit The submit button. + * @return jQuery + */ + acf.enableSubmit = function ($submit) { + return $submit.removeClass('disabled').removeAttr('disabled'); + }; + + /** + * acf.disableSubmit + * + * Disables a submit button and returns the element. + * + * @date 30/8/18 + * @since 5.7.4 + * + * @param jQuery $submit The submit button. + * @return jQuery + */ + acf.disableSubmit = function ($submit) { + return $submit.addClass('disabled').attr('disabled', true); + }; + + /** + * acf.showSpinner + * + * Shows the spinner element. + * + * @date 4/9/18 + * @since 5.7.5 + * + * @param jQuery $spinner The spinner element. + * @return jQuery + */ + acf.showSpinner = function ($spinner) { + $spinner.addClass('is-active'); // add class (WP > 4.2) + $spinner.css('display', 'inline-block'); // css (WP < 4.2) + return $spinner; + }; + + /** + * acf.hideSpinner + * + * Hides the spinner element. + * + * @date 4/9/18 + * @since 5.7.5 + * + * @param jQuery $spinner The spinner element. + * @return jQuery + */ + acf.hideSpinner = function ($spinner) { + $spinner.removeClass('is-active'); // add class (WP > 4.2) + $spinner.css('display', 'none'); // css (WP < 4.2) + return $spinner; + }; + + /** + * acf.lockForm + * + * Locks a form by disabeling its primary inputs and showing a spinner. + * + * @date 4/9/18 + * @since 5.7.5 + * + * @param jQuery $form The form element. + * @return jQuery + */ + acf.lockForm = function ($form) { + // vars + var $wrap = findSubmitWrap($form); + var $submit = $wrap.find('.button, [type="submit"]').not('.acf-nav, .acf-repeater-add-row'); + var $spinner = $wrap.find('.spinner, .acf-spinner'); + + // hide all spinners (hides the preview spinner) + acf.hideSpinner($spinner); + + // lock + acf.disableSubmit($submit); + acf.showSpinner($spinner.last()); + return $form; + }; + + /** + * acf.unlockForm + * + * Unlocks a form by enabeling its primary inputs and hiding all spinners. + * + * @date 4/9/18 + * @since 5.7.5 + * + * @param jQuery $form The form element. + * @return jQuery + */ + acf.unlockForm = function ($form) { + // vars + var $wrap = findSubmitWrap($form); + var $submit = $wrap.find('.button, [type="submit"]').not('.acf-nav, .acf-repeater-add-row'); + var $spinner = $wrap.find('.spinner, .acf-spinner'); + + // unlock + acf.enableSubmit($submit); + acf.hideSpinner($spinner); + return $form; + }; + + /** + * findSubmitWrap + * + * An internal function to find the 'primary' form submit wrapping element. + * + * @date 4/9/18 + * @since 5.7.5 + * + * @param jQuery $form The form element. + * @return jQuery + */ + var findSubmitWrap = function ($form) { + // default post submit div + var $wrap = $form.find('#submitdiv'); + if ($wrap.length) { + return $wrap; + } + + // 3rd party publish box + var $wrap = $form.find('#submitpost'); + if ($wrap.length) { + return $wrap; + } + + // term, user + var $wrap = $form.find('p.submit').last(); + if ($wrap.length) { + return $wrap; + } + + // front end form + var $wrap = $form.find('.acf-form-submit'); + if ($wrap.length) { + return $wrap; + } + + // ACF 6.0+ headerbar submit + var $wrap = $('.acf-headerbar-actions'); + if ($wrap.length) { + return $wrap; + } + + // default + return $form; + }; + + /** + * A debounced function to trigger a form submission. + * + * @date 15/07/2020 + * @since 5.9.0 + * + * @param type Var Description. + * @return type Description. + */ + var submitFormDebounced = acf.debounce(function ($form) { + $form.submit(); + }); + + /** + * Ensure field is visible for validation errors + * + * @date 20/10/2021 + * @since 5.11.0 + */ + var ensureFieldPostBoxIsVisible = function ($el) { + // Find the postbox element containing this field. + var $postbox = $el.parents('.acf-postbox'); + if ($postbox.length) { + var acf_postbox = acf.getPostbox($postbox); + if (acf_postbox && acf_postbox.isHiddenByScreenOptions()) { + // Rather than using .show() here, we don't want the field to appear next reload. + // So just temporarily show the field group so validation can complete. + acf_postbox.$el.removeClass('hide-if-js'); + acf_postbox.$el.css('display', ''); + } + } + }; + + /** + * Ensure metaboxes which contain browser validation failures are visible. + * + * @date 20/10/2021 + * @since 5.11.0 + */ + var ensureInvalidFieldVisibility = function () { + // Load each ACF input field and check it's browser validation state. + var $inputs = $('.acf-field input'); + $inputs.each(function () { + if (!this.checkValidity()) { + // Field is invalid, so we need to make sure it's metabox is visible. + ensureFieldPostBoxIsVisible($(this)); + } + }); + }; + + /** + * acf.validation + * + * Global validation logic + * + * @date 4/4/18 + * @since 5.6.9 + * + * @param void + * @return void + */ + + acf.validation = new acf.Model({ + /** @var string The model identifier. */ + id: 'validation', + /** @var bool The active state. Set to false before 'prepare' to prevent validation. */ + active: true, + /** @var string The model initialize time. */ + wait: 'prepare', + /** @var object The model actions. */ + actions: { + ready: 'addInputEvents', + append: 'addInputEvents' + }, + /** @var object The model events. */ + events: { + 'click input[type="submit"]': 'onClickSubmit', + 'click button[type="submit"]': 'onClickSubmit', + //'click #editor .editor-post-publish-button': 'onClickSubmitGutenberg', + 'click #save-post': 'onClickSave', + 'submit form#post': 'onSubmitPost', + 'submit form': 'onSubmit' + }, + /** + * initialize + * + * Called when initializing the model. + * + * @date 4/9/18 + * @since 5.7.5 + * + * @param void + * @return void + */ + initialize: function () { + // check 'validation' setting + if (!acf.get('validation')) { + this.active = false; + this.actions = {}; + this.events = {}; + } + }, + /** + * enable + * + * Enables validation. + * + * @date 4/9/18 + * @since 5.7.5 + * + * @param void + * @return void + */ + enable: function () { + this.active = true; + }, + /** + * disable + * + * Disables validation. + * + * @date 4/9/18 + * @since 5.7.5 + * + * @param void + * @return void + */ + disable: function () { + this.active = false; + }, + /** + * reset + * + * Rests the form validation to be used again + * + * @date 6/9/18 + * @since 5.7.5 + * + * @param jQuery $form The form element. + * @return void + */ + reset: function ($form) { + getValidator($form).reset(); + }, + /** + * addInputEvents + * + * Adds 'invalid' event listeners to HTML inputs. + * + * @date 4/9/18 + * @since 5.7.5 + * + * @param jQuery $el The element being added / readied. + * @return void + */ + addInputEvents: function ($el) { + // Bug exists in Safari where custom "invalid" handling prevents draft from saving. + if (acf.get('browser') === 'safari') return; + + // vars + var $inputs = $('.acf-field [name]', $el); + + // check + if ($inputs.length) { + this.on($inputs, 'invalid', 'onInvalid'); + } + }, + /** + * onInvalid + * + * Callback for the 'invalid' event. + * + * @date 4/9/18 + * @since 5.7.5 + * + * @param object e The event object. + * @param jQuery $el The input element. + * @return void + */ + onInvalid: function (e, $el) { + // prevent default + // - prevents browser error message + // - also fixes chrome bug where 'hidden-by-tab' field throws focus error + e.preventDefault(); + + // vars + var $form = $el.closest('form'); + + // check form exists + if ($form.length) { + // add error to validator + getValidator($form).addError({ + input: $el.attr('name'), + message: acf.strEscape(e.target.validationMessage) + }); + + // trigger submit on $form + // - allows for "save", "preview" and "publish" to work + submitFormDebounced($form); + } + }, + /** + * onClickSubmit + * + * Callback when clicking submit. + * + * @date 4/9/18 + * @since 5.7.5 + * + * @param object e The event object. + * @param jQuery $el The input element. + * @return void + */ + onClickSubmit: function (e, $el) { + // Some browsers (safari) force their browser validation before our AJAX validation, + // so we need to make sure fields are visible earlier than showErrors() + ensureInvalidFieldVisibility(); + + // store the "click event" for later use in this.onSubmit() + this.set('originalEvent', e); + }, + /** + * onClickSave + * + * Set ignore to true when saving a draft. + * + * @date 4/9/18 + * @since 5.7.5 + * + * @param object e The event object. + * @param jQuery $el The input element. + * @return void + */ + onClickSave: function (e, $el) { + this.set('ignore', true); + }, + /** + * onClickSubmitGutenberg + * + * Custom validation event for the gutenberg editor. + * + * @date 29/10/18 + * @since 5.8.0 + * + * @param object e The event object. + * @param jQuery $el The input element. + * @return void + */ + onClickSubmitGutenberg: function (e, $el) { + // validate + var valid = acf.validateForm({ + form: $('#editor'), + event: e, + reset: true, + failure: function ($form, validator) { + var $notice = validator.get('notice').$el; + $notice.appendTo('.components-notice-list'); + $notice.find('.acf-notice-dismiss').removeClass('small'); + } + }); + + // if not valid, stop event and allow validation to continue + if (!valid) { + e.preventDefault(); + e.stopImmediatePropagation(); + } + }, + /** + * onSubmitPost + * + * Callback when the 'post' form is submit. + * + * @date 5/3/19 + * @since 5.7.13 + * + * @param object e The event object. + * @param jQuery $el The input element. + * @return void + */ + onSubmitPost: function (e, $el) { + // Check if is preview. + if ($('input#wp-preview').val() === 'dopreview') { + // Ignore validation. + this.set('ignore', true); + + // Unlock form to fix conflict with core "submit.edit-post" event causing all submit buttons to be disabled. + acf.unlockForm($el); + } + }, + /** + * onSubmit + * + * Callback when the form is submit. + * + * @date 4/9/18 + * @since 5.7.5 + * + * @param object e The event object. + * @param jQuery $el The input element. + * @return void + */ + onSubmit: function (e, $el) { + // Allow form to submit if... + if ( + // Validation has been disabled. + !this.active || + // Or this event is to be ignored. + this.get('ignore') || + // Or this event has already been prevented. + e.isDefaultPrevented()) { + // Return early and call reset function. + return this.allowSubmit(); + } + + // Validate form. + var valid = acf.validateForm({ + form: $el, + event: this.get('originalEvent') + }); + + // If not valid, stop event to prevent form submit. + if (!valid) { + e.preventDefault(); + } + }, + /** + * allowSubmit + * + * Resets data during onSubmit when the form is allowed to submit. + * + * @date 5/3/19 + * @since 5.7.13 + * + * @param void + * @return void + */ + allowSubmit: function () { + // Reset "ignore" state. + this.set('ignore', false); + + // Reset "originalEvent" object. + this.set('originalEvent', false); + + // Return true + return true; + } + }); + var gutenbergValidation = new acf.Model({ + wait: 'prepare', + initialize: function () { + // Bail early if not Gutenberg. + if (!acf.isGutenberg()) { + return; + } + + // Custommize the editor. + this.customizeEditor(); + }, + customizeEditor: function () { + // Extract vars. + var editor = wp.data.dispatch('core/editor'); + var editorSelect = wp.data.select('core/editor'); + var notices = wp.data.dispatch('core/notices'); + + // Backup original method. + var savePost = editor.savePost; + + // Listen for changes to post status and perform actions: + // a) Enable validation for "publish" action. + // b) Remember last non "publish" status used for restoring after validation fail. + var useValidation = false; + var lastPostStatus = ''; + wp.data.subscribe(function () { + var postStatus = editorSelect.getEditedPostAttribute('status'); + useValidation = postStatus === 'publish' || postStatus === 'future'; + lastPostStatus = postStatus !== 'publish' ? postStatus : lastPostStatus; + }); + + // Create validation version. + editor.savePost = function (options) { + options = options || {}; + + // Backup vars. + var _this = this; + var _args = arguments; + + // Perform validation within a Promise. + return new Promise(function (resolve, reject) { + // Bail early if is autosave or preview. + if (options.isAutosave || options.isPreview) { + return resolve('Validation ignored (autosave).'); + } + + // Bail early if validation is not needed. + if (!useValidation) { + return resolve('Validation ignored (draft).'); + } + + // Validate the editor form. + var valid = acf.validateForm({ + form: $('#editor'), + reset: true, + complete: function ($form, validator) { + // Always unlock the form after AJAX. + editor.unlockPostSaving('acf'); + }, + failure: function ($form, validator) { + // Get validation error and append to Gutenberg notices. + var notice = validator.get('notice'); + notices.createErrorNotice(notice.get('text'), { + id: 'acf-validation', + isDismissible: true + }); + notice.remove(); + + // Restore last non "publish" status. + if (lastPostStatus) { + editor.editPost({ + status: lastPostStatus + }); + } + + // Rejext promise and prevent savePost(). + reject('Validation failed.'); + }, + success: function () { + notices.removeNotice('acf-validation'); + + // Resolve promise and allow savePost(). + resolve('Validation success.'); + } + }); + + // Resolve promise and allow savePost() if no validation is needed. + if (valid) { + resolve('Validation bypassed.'); + + // Otherwise, lock the form and wait for AJAX response. + } else { + editor.lockPostSaving('acf'); + } + }).then(function () { + return savePost.apply(_this, _args); + }).catch(function (err) { + // Nothing to do here, user is alerted of validation issues. + }); + }; + } + }); +})(jQuery); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat get default export */ +/******/ !function() { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function() { return module['default']; } : +/******/ function() { return module; }; +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ }(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ !function() { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = function(exports, definition) { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ }(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ !function() { +/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); } +/******/ }(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ !function() { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ }(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be in strict mode. +!function() { +"use strict"; +/*!*******************************************************************!*\ + !*** ./src/advanced-custom-fields-pro/assets/src/js/acf-input.js ***! + \*******************************************************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _acf_field_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_acf-field.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field.js"); +/* harmony import */ var _acf_field_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_acf_field_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _acf_fields_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_acf-fields.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-fields.js"); +/* harmony import */ var _acf_fields_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_acf_fields_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _acf_field_accordion_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_acf-field-accordion.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-accordion.js"); +/* harmony import */ var _acf_field_accordion_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_acf_field_accordion_js__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _acf_field_button_group_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_acf-field-button-group.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-button-group.js"); +/* harmony import */ var _acf_field_button_group_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_acf_field_button_group_js__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _acf_field_checkbox_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_acf-field-checkbox.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-checkbox.js"); +/* harmony import */ var _acf_field_checkbox_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_acf_field_checkbox_js__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _acf_field_color_picker_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./_acf-field-color-picker.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-color-picker.js"); +/* harmony import */ var _acf_field_color_picker_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_acf_field_color_picker_js__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var _acf_field_date_picker_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./_acf-field-date-picker.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-date-picker.js"); +/* harmony import */ var _acf_field_date_picker_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_acf_field_date_picker_js__WEBPACK_IMPORTED_MODULE_6__); +/* harmony import */ var _acf_field_date_time_picker_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./_acf-field-date-time-picker.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-date-time-picker.js"); +/* harmony import */ var _acf_field_date_time_picker_js__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_acf_field_date_time_picker_js__WEBPACK_IMPORTED_MODULE_7__); +/* harmony import */ var _acf_field_google_map_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./_acf-field-google-map.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-google-map.js"); +/* harmony import */ var _acf_field_google_map_js__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_acf_field_google_map_js__WEBPACK_IMPORTED_MODULE_8__); +/* harmony import */ var _acf_field_image_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./_acf-field-image.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-image.js"); +/* harmony import */ var _acf_field_image_js__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_acf_field_image_js__WEBPACK_IMPORTED_MODULE_9__); +/* harmony import */ var _acf_field_file_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./_acf-field-file.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-file.js"); +/* harmony import */ var _acf_field_file_js__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(_acf_field_file_js__WEBPACK_IMPORTED_MODULE_10__); +/* harmony import */ var _acf_field_link_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./_acf-field-link.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-link.js"); +/* harmony import */ var _acf_field_link_js__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(_acf_field_link_js__WEBPACK_IMPORTED_MODULE_11__); +/* harmony import */ var _acf_field_oembed_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./_acf-field-oembed.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-oembed.js"); +/* harmony import */ var _acf_field_oembed_js__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(_acf_field_oembed_js__WEBPACK_IMPORTED_MODULE_12__); +/* harmony import */ var _acf_field_radio_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./_acf-field-radio.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-radio.js"); +/* harmony import */ var _acf_field_radio_js__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(_acf_field_radio_js__WEBPACK_IMPORTED_MODULE_13__); +/* harmony import */ var _acf_field_range_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./_acf-field-range.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-range.js"); +/* harmony import */ var _acf_field_range_js__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(_acf_field_range_js__WEBPACK_IMPORTED_MODULE_14__); +/* harmony import */ var _acf_field_relationship_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./_acf-field-relationship.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-relationship.js"); +/* harmony import */ var _acf_field_relationship_js__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(_acf_field_relationship_js__WEBPACK_IMPORTED_MODULE_15__); +/* harmony import */ var _acf_field_select_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./_acf-field-select.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-select.js"); +/* harmony import */ var _acf_field_select_js__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(_acf_field_select_js__WEBPACK_IMPORTED_MODULE_16__); +/* harmony import */ var _acf_field_tab_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./_acf-field-tab.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-tab.js"); +/* harmony import */ var _acf_field_tab_js__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(_acf_field_tab_js__WEBPACK_IMPORTED_MODULE_17__); +/* harmony import */ var _acf_field_post_object_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./_acf-field-post-object.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-post-object.js"); +/* harmony import */ var _acf_field_post_object_js__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(_acf_field_post_object_js__WEBPACK_IMPORTED_MODULE_18__); +/* harmony import */ var _acf_field_page_link_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./_acf-field-page-link.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-page-link.js"); +/* harmony import */ var _acf_field_page_link_js__WEBPACK_IMPORTED_MODULE_19___default = /*#__PURE__*/__webpack_require__.n(_acf_field_page_link_js__WEBPACK_IMPORTED_MODULE_19__); +/* harmony import */ var _acf_field_user_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./_acf-field-user.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-user.js"); +/* harmony import */ var _acf_field_user_js__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(_acf_field_user_js__WEBPACK_IMPORTED_MODULE_20__); +/* harmony import */ var _acf_field_taxonomy_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./_acf-field-taxonomy.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-taxonomy.js"); +/* harmony import */ var _acf_field_taxonomy_js__WEBPACK_IMPORTED_MODULE_21___default = /*#__PURE__*/__webpack_require__.n(_acf_field_taxonomy_js__WEBPACK_IMPORTED_MODULE_21__); +/* harmony import */ var _acf_field_time_picker_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./_acf-field-time-picker.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-time-picker.js"); +/* harmony import */ var _acf_field_time_picker_js__WEBPACK_IMPORTED_MODULE_22___default = /*#__PURE__*/__webpack_require__.n(_acf_field_time_picker_js__WEBPACK_IMPORTED_MODULE_22__); +/* harmony import */ var _acf_field_true_false_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./_acf-field-true-false.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-true-false.js"); +/* harmony import */ var _acf_field_true_false_js__WEBPACK_IMPORTED_MODULE_23___default = /*#__PURE__*/__webpack_require__.n(_acf_field_true_false_js__WEBPACK_IMPORTED_MODULE_23__); +/* harmony import */ var _acf_field_url_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./_acf-field-url.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-url.js"); +/* harmony import */ var _acf_field_url_js__WEBPACK_IMPORTED_MODULE_24___default = /*#__PURE__*/__webpack_require__.n(_acf_field_url_js__WEBPACK_IMPORTED_MODULE_24__); +/* harmony import */ var _acf_field_wysiwyg_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./_acf-field-wysiwyg.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-wysiwyg.js"); +/* harmony import */ var _acf_field_wysiwyg_js__WEBPACK_IMPORTED_MODULE_25___default = /*#__PURE__*/__webpack_require__.n(_acf_field_wysiwyg_js__WEBPACK_IMPORTED_MODULE_25__); +/* harmony import */ var _acf_condition_js__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./_acf-condition.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-condition.js"); +/* harmony import */ var _acf_condition_js__WEBPACK_IMPORTED_MODULE_26___default = /*#__PURE__*/__webpack_require__.n(_acf_condition_js__WEBPACK_IMPORTED_MODULE_26__); +/* harmony import */ var _acf_conditions_js__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./_acf-conditions.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-conditions.js"); +/* harmony import */ var _acf_conditions_js__WEBPACK_IMPORTED_MODULE_27___default = /*#__PURE__*/__webpack_require__.n(_acf_conditions_js__WEBPACK_IMPORTED_MODULE_27__); +/* harmony import */ var _acf_condition_types_js__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./_acf-condition-types.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-condition-types.js"); +/* harmony import */ var _acf_condition_types_js__WEBPACK_IMPORTED_MODULE_28___default = /*#__PURE__*/__webpack_require__.n(_acf_condition_types_js__WEBPACK_IMPORTED_MODULE_28__); +/* harmony import */ var _acf_unload_js__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./_acf-unload.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-unload.js"); +/* harmony import */ var _acf_unload_js__WEBPACK_IMPORTED_MODULE_29___default = /*#__PURE__*/__webpack_require__.n(_acf_unload_js__WEBPACK_IMPORTED_MODULE_29__); +/* harmony import */ var _acf_postbox_js__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./_acf-postbox.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-postbox.js"); +/* harmony import */ var _acf_postbox_js__WEBPACK_IMPORTED_MODULE_30___default = /*#__PURE__*/__webpack_require__.n(_acf_postbox_js__WEBPACK_IMPORTED_MODULE_30__); +/* harmony import */ var _acf_media_js__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./_acf-media.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-media.js"); +/* harmony import */ var _acf_media_js__WEBPACK_IMPORTED_MODULE_31___default = /*#__PURE__*/__webpack_require__.n(_acf_media_js__WEBPACK_IMPORTED_MODULE_31__); +/* harmony import */ var _acf_screen_js__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./_acf-screen.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-screen.js"); +/* harmony import */ var _acf_screen_js__WEBPACK_IMPORTED_MODULE_32___default = /*#__PURE__*/__webpack_require__.n(_acf_screen_js__WEBPACK_IMPORTED_MODULE_32__); +/* harmony import */ var _acf_select2_js__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./_acf-select2.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-select2.js"); +/* harmony import */ var _acf_select2_js__WEBPACK_IMPORTED_MODULE_33___default = /*#__PURE__*/__webpack_require__.n(_acf_select2_js__WEBPACK_IMPORTED_MODULE_33__); +/* harmony import */ var _acf_tinymce_js__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./_acf-tinymce.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-tinymce.js"); +/* harmony import */ var _acf_tinymce_js__WEBPACK_IMPORTED_MODULE_34___default = /*#__PURE__*/__webpack_require__.n(_acf_tinymce_js__WEBPACK_IMPORTED_MODULE_34__); +/* harmony import */ var _acf_validation_js__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./_acf-validation.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-validation.js"); +/* harmony import */ var _acf_validation_js__WEBPACK_IMPORTED_MODULE_35___default = /*#__PURE__*/__webpack_require__.n(_acf_validation_js__WEBPACK_IMPORTED_MODULE_35__); +/* harmony import */ var _acf_helpers_js__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./_acf-helpers.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-helpers.js"); +/* harmony import */ var _acf_helpers_js__WEBPACK_IMPORTED_MODULE_36___default = /*#__PURE__*/__webpack_require__.n(_acf_helpers_js__WEBPACK_IMPORTED_MODULE_36__); +/* harmony import */ var _acf_compatibility_js__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./_acf-compatibility.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-compatibility.js"); +/* harmony import */ var _acf_compatibility_js__WEBPACK_IMPORTED_MODULE_37___default = /*#__PURE__*/__webpack_require__.n(_acf_compatibility_js__WEBPACK_IMPORTED_MODULE_37__); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +}(); +/******/ })() +; +//# sourceMappingURL=acf-input.js.map \ No newline at end of file diff --git a/assets/build/js/acf-input.js.map b/assets/build/js/acf-input.js.map new file mode 100644 index 0000000..8ac75ee --- /dev/null +++ b/assets/build/js/acf-input.js.map @@ -0,0 +1 @@ +{"version":3,"file":"acf-input.js","mappings":"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","sources":["webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_acf-compatibility.js","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_acf-condition-types.js","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_acf-condition.js","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_acf-conditions.js","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_acf-field-accordion.js","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_acf-field-button-group.js","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_acf-field-checkbox.js","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_acf-field-color-picker.js","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_acf-field-date-picker.js","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_acf-field-date-time-picker.js","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_acf-field-file.js","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_acf-field-google-map.js","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_acf-field-image.js","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_acf-field-link.js","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_acf-field-oembed.js","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_acf-field-page-link.js","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_acf-field-post-object.js","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_acf-field-radio.js","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_acf-field-range.js","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_acf-field-relationship.js","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_acf-field-select.js","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_acf-field-tab.js","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_acf-field-taxonomy.js","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_acf-field-time-picker.js","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_acf-field-true-false.js","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_acf-field-url.js","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_acf-field-user.js","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_acf-field-wysiwyg.js","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_acf-field.js","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_acf-fields.js","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_acf-helpers.js","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_acf-media.js","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_acf-postbox.js","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_acf-screen.js","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_acf-select2.js","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_acf-tinymce.js","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_acf-unload.js","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_acf-validation.js","webpack://advanced-custom-fields-pro/webpack/bootstrap","webpack://advanced-custom-fields-pro/webpack/runtime/compat get default export","webpack://advanced-custom-fields-pro/webpack/runtime/define property getters","webpack://advanced-custom-fields-pro/webpack/runtime/hasOwnProperty shorthand","webpack://advanced-custom-fields-pro/webpack/runtime/make namespace object","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/acf-input.js"],"sourcesContent":["( function ( $, undefined ) {\n\t/**\n\t * acf.newCompatibility\n\t *\n\t * Inserts a new __proto__ object compatibility layer\n\t *\n\t * @date\t15/2/18\n\t * @since\t5.6.9\n\t *\n\t * @param\tobject instance The object to modify.\n\t * @param\tobject compatibilty Optional. The compatibilty layer.\n\t * @return\tobject compatibilty\n\t */\n\n\tacf.newCompatibility = function ( instance, compatibilty ) {\n\t\t// defaults\n\t\tcompatibilty = compatibilty || {};\n\n\t\t// inherit __proto_-\n\t\tcompatibilty.__proto__ = instance.__proto__;\n\n\t\t// inject\n\t\tinstance.__proto__ = compatibilty;\n\n\t\t// reference\n\t\tinstance.compatibility = compatibilty;\n\n\t\t// return\n\t\treturn compatibilty;\n\t};\n\n\t/**\n\t * acf.getCompatibility\n\t *\n\t * Returns the compatibility layer for a given instance\n\t *\n\t * @date\t13/3/18\n\t * @since\t5.6.9\n\t *\n\t * @param\tobject\t\tinstance\t\tThe object to look in.\n\t * @return\tobject|null\tcompatibility\tThe compatibility object or null on failure.\n\t */\n\n\tacf.getCompatibility = function ( instance ) {\n\t\treturn instance.compatibility || null;\n\t};\n\n\t/**\n\t * acf (compatibility)\n\t *\n\t * Compatibility layer for the acf object\n\t *\n\t * @date\t15/2/18\n\t * @since\t5.6.9\n\t *\n\t * @param\tvoid\n\t * @return\tvoid\n\t */\n\n\tvar _acf = acf.newCompatibility( acf, {\n\t\t// storage\n\t\tl10n: {},\n\t\to: {},\n\t\tfields: {},\n\n\t\t// changed function names\n\t\tupdate: acf.set,\n\t\tadd_action: acf.addAction,\n\t\tremove_action: acf.removeAction,\n\t\tdo_action: acf.doAction,\n\t\tadd_filter: acf.addFilter,\n\t\tremove_filter: acf.removeFilter,\n\t\tapply_filters: acf.applyFilters,\n\t\tparse_args: acf.parseArgs,\n\t\tdisable_el: acf.disable,\n\t\tdisable_form: acf.disable,\n\t\tenable_el: acf.enable,\n\t\tenable_form: acf.enable,\n\t\tupdate_user_setting: acf.updateUserSetting,\n\t\tprepare_for_ajax: acf.prepareForAjax,\n\t\tis_ajax_success: acf.isAjaxSuccess,\n\t\tremove_el: acf.remove,\n\t\tremove_tr: acf.remove,\n\t\tstr_replace: acf.strReplace,\n\t\trender_select: acf.renderSelect,\n\t\tget_uniqid: acf.uniqid,\n\t\tserialize_form: acf.serialize,\n\t\tesc_html: acf.strEscape,\n\t\tstr_sanitize: acf.strSanitize,\n\t} );\n\n\t_acf._e = function ( k1, k2 ) {\n\t\t// defaults\n\t\tk1 = k1 || '';\n\t\tk2 = k2 || '';\n\n\t\t// compability\n\t\tvar compatKey = k2 ? k1 + '.' + k2 : k1;\n\t\tvar compats = {\n\t\t\t'image.select': 'Select Image',\n\t\t\t'image.edit': 'Edit Image',\n\t\t\t'image.update': 'Update Image',\n\t\t};\n\t\tif ( compats[ compatKey ] ) {\n\t\t\treturn acf.__( compats[ compatKey ] );\n\t\t}\n\n\t\t// try k1\n\t\tvar string = this.l10n[ k1 ] || '';\n\n\t\t// try k2\n\t\tif ( k2 ) {\n\t\t\tstring = string[ k2 ] || '';\n\t\t}\n\n\t\t// return\n\t\treturn string;\n\t};\n\n\t_acf.get_selector = function ( s ) {\n\t\t// vars\n\t\tvar selector = '.acf-field';\n\n\t\t// bail early if no search\n\t\tif ( ! s ) {\n\t\t\treturn selector;\n\t\t}\n\n\t\t// compatibility with object\n\t\tif ( $.isPlainObject( s ) ) {\n\t\t\tif ( $.isEmptyObject( s ) ) {\n\t\t\t\treturn selector;\n\t\t\t} else {\n\t\t\t\tfor ( var k in s ) {\n\t\t\t\t\ts = s[ k ];\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// append\n\t\tselector += '-' + s;\n\n\t\t// replace underscores (split/join replaces all and is faster than regex!)\n\t\tselector = acf.strReplace( '_', '-', selector );\n\n\t\t// remove potential double up\n\t\tselector = acf.strReplace( 'field-field-', 'field-', selector );\n\n\t\t// return\n\t\treturn selector;\n\t};\n\n\t_acf.get_fields = function ( s, $el, all ) {\n\t\t// args\n\t\tvar args = {\n\t\t\tis: s || '',\n\t\t\tparent: $el || false,\n\t\t\tsuppressFilters: all || false,\n\t\t};\n\n\t\t// change 'field_123' to '.acf-field-123'\n\t\tif ( args.is ) {\n\t\t\targs.is = this.get_selector( args.is );\n\t\t}\n\n\t\t// return\n\t\treturn acf.findFields( args );\n\t};\n\n\t_acf.get_field = function ( s, $el ) {\n\t\t// get fields\n\t\tvar $fields = this.get_fields.apply( this, arguments );\n\n\t\t// return\n\t\tif ( $fields.length ) {\n\t\t\treturn $fields.first();\n\t\t} else {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\t_acf.get_closest_field = function ( $el, s ) {\n\t\treturn $el.closest( this.get_selector( s ) );\n\t};\n\n\t_acf.get_field_wrap = function ( $el ) {\n\t\treturn $el.closest( this.get_selector() );\n\t};\n\n\t_acf.get_field_key = function ( $field ) {\n\t\treturn $field.data( 'key' );\n\t};\n\n\t_acf.get_field_type = function ( $field ) {\n\t\treturn $field.data( 'type' );\n\t};\n\n\t_acf.get_data = function ( $el, defaults ) {\n\t\treturn acf.parseArgs( $el.data(), defaults );\n\t};\n\n\t_acf.maybe_get = function ( obj, key, value ) {\n\t\t// default\n\t\tif ( value === undefined ) {\n\t\t\tvalue = null;\n\t\t}\n\n\t\t// get keys\n\t\tkeys = String( key ).split( '.' );\n\n\t\t// acf.isget\n\t\tfor ( var i = 0; i < keys.length; i++ ) {\n\t\t\tif ( ! obj.hasOwnProperty( keys[ i ] ) ) {\n\t\t\t\treturn value;\n\t\t\t}\n\t\t\tobj = obj[ keys[ i ] ];\n\t\t}\n\t\treturn obj;\n\t};\n\n\t/**\n\t * hooks\n\t *\n\t * Modify add_action and add_filter functions to add compatibility with changed $field parameter\n\t * Using the acf.add_action() or acf.add_filter() functions will interpret new field parameters as jQuery $field\n\t *\n\t * @date\t12/5/18\n\t * @since\t5.6.9\n\t *\n\t * @param\tvoid\n\t * @return\tvoid\n\t */\n\n\tvar compatibleArgument = function ( arg ) {\n\t\treturn arg instanceof acf.Field ? arg.$el : arg;\n\t};\n\n\tvar compatibleArguments = function ( args ) {\n\t\treturn acf.arrayArgs( args ).map( compatibleArgument );\n\t};\n\n\tvar compatibleCallback = function ( origCallback ) {\n\t\treturn function () {\n\t\t\t// convert to compatible arguments\n\t\t\tif ( arguments.length ) {\n\t\t\t\tvar args = compatibleArguments( arguments );\n\n\t\t\t\t// add default argument for 'ready', 'append' and 'load' events\n\t\t\t} else {\n\t\t\t\tvar args = [ $( document ) ];\n\t\t\t}\n\n\t\t\t// return\n\t\t\treturn origCallback.apply( this, args );\n\t\t};\n\t};\n\n\t_acf.add_action = function ( action, callback, priority, context ) {\n\t\t// handle multiple actions\n\t\tvar actions = action.split( ' ' );\n\t\tvar length = actions.length;\n\t\tif ( length > 1 ) {\n\t\t\tfor ( var i = 0; i < length; i++ ) {\n\t\t\t\taction = actions[ i ];\n\t\t\t\t_acf.add_action.apply( this, arguments );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\n\t\t// single\n\t\tvar callback = compatibleCallback( callback );\n\t\treturn acf.addAction.apply( this, arguments );\n\t};\n\n\t_acf.add_filter = function ( action, callback, priority, context ) {\n\t\tvar callback = compatibleCallback( callback );\n\t\treturn acf.addFilter.apply( this, arguments );\n\t};\n\n\t/*\n\t * acf.model\n\t *\n\t * This model acts as a scafold for action.event driven modules\n\t *\n\t * @type\tobject\n\t * @date\t8/09/2014\n\t * @since\t5.0.0\n\t *\n\t * @param\t(object)\n\t * @return\t(object)\n\t */\n\n\t_acf.model = {\n\t\tactions: {},\n\t\tfilters: {},\n\t\tevents: {},\n\t\textend: function ( args ) {\n\t\t\t// extend\n\t\t\tvar model = $.extend( {}, this, args );\n\n\t\t\t// setup actions\n\t\t\t$.each( model.actions, function ( name, callback ) {\n\t\t\t\tmodel._add_action( name, callback );\n\t\t\t} );\n\n\t\t\t// setup filters\n\t\t\t$.each( model.filters, function ( name, callback ) {\n\t\t\t\tmodel._add_filter( name, callback );\n\t\t\t} );\n\n\t\t\t// setup events\n\t\t\t$.each( model.events, function ( name, callback ) {\n\t\t\t\tmodel._add_event( name, callback );\n\t\t\t} );\n\n\t\t\t// return\n\t\t\treturn model;\n\t\t},\n\n\t\t_add_action: function ( name, callback ) {\n\t\t\t// split\n\t\t\tvar model = this,\n\t\t\t\tdata = name.split( ' ' );\n\n\t\t\t// add missing priority\n\t\t\tvar name = data[ 0 ] || '',\n\t\t\t\tpriority = data[ 1 ] || 10;\n\n\t\t\t// add action\n\t\t\tacf.add_action( name, model[ callback ], priority, model );\n\t\t},\n\n\t\t_add_filter: function ( name, callback ) {\n\t\t\t// split\n\t\t\tvar model = this,\n\t\t\t\tdata = name.split( ' ' );\n\n\t\t\t// add missing priority\n\t\t\tvar name = data[ 0 ] || '',\n\t\t\t\tpriority = data[ 1 ] || 10;\n\n\t\t\t// add action\n\t\t\tacf.add_filter( name, model[ callback ], priority, model );\n\t\t},\n\n\t\t_add_event: function ( name, callback ) {\n\t\t\t// vars\n\t\t\tvar model = this,\n\t\t\t\ti = name.indexOf( ' ' ),\n\t\t\t\tevent = i > 0 ? name.substr( 0, i ) : name,\n\t\t\t\tselector = i > 0 ? name.substr( i + 1 ) : '';\n\n\t\t\t// event\n\t\t\tvar fn = function ( e ) {\n\t\t\t\t// append $el to event object\n\t\t\t\te.$el = $( this );\n\n\t\t\t\t// append $field to event object (used in field group)\n\t\t\t\tif ( acf.field_group ) {\n\t\t\t\t\te.$field = e.$el.closest( '.acf-field-object' );\n\t\t\t\t}\n\n\t\t\t\t// event\n\t\t\t\tif ( typeof model.event === 'function' ) {\n\t\t\t\t\te = model.event( e );\n\t\t\t\t}\n\n\t\t\t\t// callback\n\t\t\t\tmodel[ callback ].apply( model, arguments );\n\t\t\t};\n\n\t\t\t// add event\n\t\t\tif ( selector ) {\n\t\t\t\t$( document ).on( event, selector, fn );\n\t\t\t} else {\n\t\t\t\t$( document ).on( event, fn );\n\t\t\t}\n\t\t},\n\n\t\tget: function ( name, value ) {\n\t\t\t// defaults\n\t\t\tvalue = value || null;\n\n\t\t\t// get\n\t\t\tif ( typeof this[ name ] !== 'undefined' ) {\n\t\t\t\tvalue = this[ name ];\n\t\t\t}\n\n\t\t\t// return\n\t\t\treturn value;\n\t\t},\n\n\t\tset: function ( name, value ) {\n\t\t\t// set\n\t\t\tthis[ name ] = value;\n\n\t\t\t// function for 3rd party\n\t\t\tif ( typeof this[ '_set_' + name ] === 'function' ) {\n\t\t\t\tthis[ '_set_' + name ].apply( this );\n\t\t\t}\n\n\t\t\t// return for chaining\n\t\t\treturn this;\n\t\t},\n\t};\n\n\t/*\n\t * field\n\t *\n\t * This model sets up many of the field's interactions\n\t *\n\t * @type\tfunction\n\t * @date\t21/02/2014\n\t * @since\t3.5.1\n\t *\n\t * @param\tn/a\n\t * @return\tn/a\n\t */\n\n\t_acf.field = acf.model.extend( {\n\t\ttype: '',\n\t\to: {},\n\t\t$field: null,\n\t\t_add_action: function ( name, callback ) {\n\t\t\t// vars\n\t\t\tvar model = this;\n\n\t\t\t// update name\n\t\t\tname = name + '_field/type=' + model.type;\n\n\t\t\t// add action\n\t\t\tacf.add_action( name, function ( $field ) {\n\t\t\t\t// focus\n\t\t\t\tmodel.set( '$field', $field );\n\n\t\t\t\t// callback\n\t\t\t\tmodel[ callback ].apply( model, arguments );\n\t\t\t} );\n\t\t},\n\n\t\t_add_filter: function ( name, callback ) {\n\t\t\t// vars\n\t\t\tvar model = this;\n\n\t\t\t// update name\n\t\t\tname = name + '_field/type=' + model.type;\n\n\t\t\t// add action\n\t\t\tacf.add_filter( name, function ( $field ) {\n\t\t\t\t// focus\n\t\t\t\tmodel.set( '$field', $field );\n\n\t\t\t\t// callback\n\t\t\t\tmodel[ callback ].apply( model, arguments );\n\t\t\t} );\n\t\t},\n\n\t\t_add_event: function ( name, callback ) {\n\t\t\t// vars\n\t\t\tvar model = this,\n\t\t\t\tevent = name.substr( 0, name.indexOf( ' ' ) ),\n\t\t\t\tselector = name.substr( name.indexOf( ' ' ) + 1 ),\n\t\t\t\tcontext = acf.get_selector( model.type );\n\n\t\t\t// add event\n\t\t\t$( document ).on( event, context + ' ' + selector, function ( e ) {\n\t\t\t\t// vars\n\t\t\t\tvar $el = $( this );\n\t\t\t\tvar $field = acf.get_closest_field( $el, model.type );\n\n\t\t\t\t// bail early if no field\n\t\t\t\tif ( ! $field.length ) return;\n\n\t\t\t\t// focus\n\t\t\t\tif ( ! $field.is( model.$field ) ) {\n\t\t\t\t\tmodel.set( '$field', $field );\n\t\t\t\t}\n\n\t\t\t\t// append to event\n\t\t\t\te.$el = $el;\n\t\t\t\te.$field = $field;\n\n\t\t\t\t// callback\n\t\t\t\tmodel[ callback ].apply( model, [ e ] );\n\t\t\t} );\n\t\t},\n\n\t\t_set_$field: function () {\n\t\t\t// callback\n\t\t\tif ( typeof this.focus === 'function' ) {\n\t\t\t\tthis.focus();\n\t\t\t}\n\t\t},\n\n\t\t// depreciated\n\t\tdoFocus: function ( $field ) {\n\t\t\treturn this.set( '$field', $field );\n\t\t},\n\t} );\n\n\t/**\n\t * validation\n\t *\n\t * description\n\t *\n\t * @date\t15/2/18\n\t * @since\t5.6.9\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tvar _validation = acf.newCompatibility( acf.validation, {\n\t\tremove_error: function ( $field ) {\n\t\t\tacf.getField( $field ).removeError();\n\t\t},\n\t\tadd_warning: function ( $field, message ) {\n\t\t\tacf.getField( $field ).showNotice( {\n\t\t\t\ttext: message,\n\t\t\t\ttype: 'warning',\n\t\t\t\ttimeout: 1000,\n\t\t\t} );\n\t\t},\n\t\tfetch: acf.validateForm,\n\t\tenableSubmit: acf.enableSubmit,\n\t\tdisableSubmit: acf.disableSubmit,\n\t\tshowSpinner: acf.showSpinner,\n\t\thideSpinner: acf.hideSpinner,\n\t\tunlockForm: acf.unlockForm,\n\t\tlockForm: acf.lockForm,\n\t} );\n\n\t/**\n\t * tooltip\n\t *\n\t * description\n\t *\n\t * @date\t15/2/18\n\t * @since\t5.6.9\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\t_acf.tooltip = {\n\t\ttooltip: function ( text, $el ) {\n\t\t\tvar tooltip = acf.newTooltip( {\n\t\t\t\ttext: text,\n\t\t\t\ttarget: $el,\n\t\t\t} );\n\n\t\t\t// return\n\t\t\treturn tooltip.$el;\n\t\t},\n\n\t\ttemp: function ( text, $el ) {\n\t\t\tvar tooltip = acf.newTooltip( {\n\t\t\t\ttext: text,\n\t\t\t\ttarget: $el,\n\t\t\t\ttimeout: 250,\n\t\t\t} );\n\t\t},\n\n\t\tconfirm: function ( $el, callback, text, button_y, button_n ) {\n\t\t\tvar tooltip = acf.newTooltip( {\n\t\t\t\tconfirm: true,\n\t\t\t\ttext: text,\n\t\t\t\ttarget: $el,\n\t\t\t\tconfirm: function () {\n\t\t\t\t\tcallback( true );\n\t\t\t\t},\n\t\t\t\tcancel: function () {\n\t\t\t\t\tcallback( false );\n\t\t\t\t},\n\t\t\t} );\n\t\t},\n\n\t\tconfirm_remove: function ( $el, callback ) {\n\t\t\tvar tooltip = acf.newTooltip( {\n\t\t\t\tconfirmRemove: true,\n\t\t\t\ttarget: $el,\n\t\t\t\tconfirm: function () {\n\t\t\t\t\tcallback( true );\n\t\t\t\t},\n\t\t\t\tcancel: function () {\n\t\t\t\t\tcallback( false );\n\t\t\t\t},\n\t\t\t} );\n\t\t},\n\t};\n\n\t/**\n\t * tooltip\n\t *\n\t * description\n\t *\n\t * @date\t15/2/18\n\t * @since\t5.6.9\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\t_acf.media = new acf.Model( {\n\t\tactiveFrame: false,\n\t\tactions: {\n\t\t\tnew_media_popup: 'onNewMediaPopup',\n\t\t},\n\n\t\tframe: function () {\n\t\t\treturn this.activeFrame;\n\t\t},\n\n\t\tonNewMediaPopup: function ( popup ) {\n\t\t\tthis.activeFrame = popup.frame;\n\t\t},\n\n\t\tpopup: function ( props ) {\n\t\t\t// update props\n\t\t\tif ( props.mime_types ) {\n\t\t\t\tprops.allowedTypes = props.mime_types;\n\t\t\t}\n\t\t\tif ( props.id ) {\n\t\t\t\tprops.attachment = props.id;\n\t\t\t}\n\n\t\t\t// new\n\t\t\tvar popup = acf.newMediaPopup( props );\n\n\t\t\t// append\n\t\t\t/*\n\t\t\tif( props.selected ) {\n\t\t\t\tpopup.selected = props.selected;\n\t\t\t}\n*/\n\n\t\t\t// return\n\t\t\treturn popup.frame;\n\t\t},\n\t} );\n\n\t/**\n\t * Select2\n\t *\n\t * description\n\t *\n\t * @date\t11/6/18\n\t * @since\t5.6.9\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\t_acf.select2 = {\n\t\tinit: function ( $select, args, $field ) {\n\t\t\t// compatible args\n\t\t\tif ( args.allow_null ) {\n\t\t\t\targs.allowNull = args.allow_null;\n\t\t\t}\n\t\t\tif ( args.ajax_action ) {\n\t\t\t\targs.ajaxAction = args.ajax_action;\n\t\t\t}\n\t\t\tif ( $field ) {\n\t\t\t\targs.field = acf.getField( $field );\n\t\t\t}\n\n\t\t\t// return\n\t\t\treturn acf.newSelect2( $select, args );\n\t\t},\n\n\t\tdestroy: function ( $select ) {\n\t\t\treturn acf.getInstance( $select ).destroy();\n\t\t},\n\t};\n\n\t/**\n\t * postbox\n\t *\n\t * description\n\t *\n\t * @date\t11/6/18\n\t * @since\t5.6.9\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\t_acf.postbox = {\n\t\trender: function ( args ) {\n\t\t\t// compatible args\n\t\t\tif ( args.edit_url ) {\n\t\t\t\targs.editLink = args.edit_url;\n\t\t\t}\n\t\t\tif ( args.edit_title ) {\n\t\t\t\targs.editTitle = args.edit_title;\n\t\t\t}\n\n\t\t\t// return\n\t\t\treturn acf.newPostbox( args );\n\t\t},\n\t};\n\n\t/**\n\t * acf.screen\n\t *\n\t * description\n\t *\n\t * @date\t11/6/18\n\t * @since\t5.6.9\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tacf.newCompatibility( acf.screen, {\n\t\tupdate: function () {\n\t\t\treturn this.set.apply( this, arguments );\n\t\t},\n\t\tfetch: acf.screen.check,\n\t} );\n\t_acf.ajax = acf.screen;\n} )( jQuery );\n","( function ( $, undefined ) {\n\tvar __ = acf.__;\n\n\tvar parseString = function ( val ) {\n\t\treturn val ? '' + val : '';\n\t};\n\n\tvar isEqualTo = function ( v1, v2 ) {\n\t\treturn (\n\t\t\tparseString( v1 ).toLowerCase() === parseString( v2 ).toLowerCase()\n\t\t);\n\t};\n\n\tvar isEqualToNumber = function ( v1, v2 ) {\n\t\treturn parseFloat( v1 ) === parseFloat( v2 );\n\t};\n\n\tvar isGreaterThan = function ( v1, v2 ) {\n\t\treturn parseFloat( v1 ) > parseFloat( v2 );\n\t};\n\n\tvar isLessThan = function ( v1, v2 ) {\n\t\treturn parseFloat( v1 ) < parseFloat( v2 );\n\t};\n\n\tvar inArray = function ( v1, array ) {\n\t\t// cast all values as string\n\t\tarray = array.map( function ( v2 ) {\n\t\t\treturn parseString( v2 );\n\t\t} );\n\n\t\treturn array.indexOf( v1 ) > -1;\n\t};\n\n\tvar containsString = function ( haystack, needle ) {\n\t\treturn parseString( haystack ).indexOf( parseString( needle ) ) > -1;\n\t};\n\n\tvar matchesPattern = function ( v1, pattern ) {\n\t\tvar regexp = new RegExp( parseString( pattern ), 'gi' );\n\t\treturn parseString( v1 ).match( regexp );\n\t};\n\n\t/**\n\t * hasValue\n\t *\n\t * description\n\t *\n\t * @date\t1/2/18\n\t * @since\t5.6.5\n\t *\n\t * @param\tvoid\n\t * @return\tvoid\n\t */\n\n\tvar HasValue = acf.Condition.extend( {\n\t\ttype: 'hasValue',\n\t\toperator: '!=empty',\n\t\tlabel: __( 'Has any value' ),\n\t\tfieldTypes: [\n\t\t\t'text',\n\t\t\t'textarea',\n\t\t\t'number',\n\t\t\t'range',\n\t\t\t'email',\n\t\t\t'url',\n\t\t\t'password',\n\t\t\t'image',\n\t\t\t'file',\n\t\t\t'wysiwyg',\n\t\t\t'oembed',\n\t\t\t'select',\n\t\t\t'checkbox',\n\t\t\t'radio',\n\t\t\t'button_group',\n\t\t\t'link',\n\t\t\t'post_object',\n\t\t\t'page_link',\n\t\t\t'relationship',\n\t\t\t'taxonomy',\n\t\t\t'user',\n\t\t\t'google_map',\n\t\t\t'date_picker',\n\t\t\t'date_time_picker',\n\t\t\t'time_picker',\n\t\t\t'color_picker',\n\t\t],\n\t\tmatch: function ( rule, field ) {\n\t\t\tlet val = field.val();\n\t\t\tif ( val instanceof Array ) {\n\t\t\t\tval = val.length;\n\t\t\t}\n\t\t\treturn val ? true : false;\n\t\t},\n\t\tchoices: function ( fieldObject ) {\n\t\t\treturn '';\n\t\t},\n\t} );\n\n\tacf.registerConditionType( HasValue );\n\n\t/**\n\t * hasValue\n\t *\n\t * description\n\t *\n\t * @date\t1/2/18\n\t * @since\t5.6.5\n\t *\n\t * @param\tvoid\n\t * @return\tvoid\n\t */\n\n\tvar HasNoValue = HasValue.extend( {\n\t\ttype: 'hasNoValue',\n\t\toperator: '==empty',\n\t\tlabel: __( 'Has no value' ),\n\t\tmatch: function ( rule, field ) {\n\t\t\treturn ! HasValue.prototype.match.apply( this, arguments );\n\t\t},\n\t} );\n\n\tacf.registerConditionType( HasNoValue );\n\n\t/**\n\t * EqualTo\n\t *\n\t * description\n\t *\n\t * @date\t1/2/18\n\t * @since\t5.6.5\n\t *\n\t * @param\tvoid\n\t * @return\tvoid\n\t */\n\n\tvar EqualTo = acf.Condition.extend( {\n\t\ttype: 'equalTo',\n\t\toperator: '==',\n\t\tlabel: __( 'Value is equal to' ),\n\t\tfieldTypes: [\n\t\t\t'text',\n\t\t\t'textarea',\n\t\t\t'number',\n\t\t\t'range',\n\t\t\t'email',\n\t\t\t'url',\n\t\t\t'password',\n\t\t],\n\t\tmatch: function ( rule, field ) {\n\t\t\tif ( acf.isNumeric( rule.value ) ) {\n\t\t\t\treturn isEqualToNumber( rule.value, field.val() );\n\t\t\t} else {\n\t\t\t\treturn isEqualTo( rule.value, field.val() );\n\t\t\t}\n\t\t},\n\t\tchoices: function ( fieldObject ) {\n\t\t\treturn '';\n\t\t},\n\t} );\n\n\tacf.registerConditionType( EqualTo );\n\n\t/**\n\t * NotEqualTo\n\t *\n\t * description\n\t *\n\t * @date\t1/2/18\n\t * @since\t5.6.5\n\t *\n\t * @param\tvoid\n\t * @return\tvoid\n\t */\n\n\tvar NotEqualTo = EqualTo.extend( {\n\t\ttype: 'notEqualTo',\n\t\toperator: '!=',\n\t\tlabel: __( 'Value is not equal to' ),\n\t\tmatch: function ( rule, field ) {\n\t\t\treturn ! EqualTo.prototype.match.apply( this, arguments );\n\t\t},\n\t} );\n\n\tacf.registerConditionType( NotEqualTo );\n\n\t/**\n\t * PatternMatch\n\t *\n\t * description\n\t *\n\t * @date\t1/2/18\n\t * @since\t5.6.5\n\t *\n\t * @param\tvoid\n\t * @return\tvoid\n\t */\n\n\tvar PatternMatch = acf.Condition.extend( {\n\t\ttype: 'patternMatch',\n\t\toperator: '==pattern',\n\t\tlabel: __( 'Value matches pattern' ),\n\t\tfieldTypes: [\n\t\t\t'text',\n\t\t\t'textarea',\n\t\t\t'email',\n\t\t\t'url',\n\t\t\t'password',\n\t\t\t'wysiwyg',\n\t\t],\n\t\tmatch: function ( rule, field ) {\n\t\t\treturn matchesPattern( field.val(), rule.value );\n\t\t},\n\t\tchoices: function ( fieldObject ) {\n\t\t\treturn '';\n\t\t},\n\t} );\n\n\tacf.registerConditionType( PatternMatch );\n\n\t/**\n\t * Contains\n\t *\n\t * description\n\t *\n\t * @date\t1/2/18\n\t * @since\t5.6.5\n\t *\n\t * @param\tvoid\n\t * @return\tvoid\n\t */\n\n\tvar Contains = acf.Condition.extend( {\n\t\ttype: 'contains',\n\t\toperator: '==contains',\n\t\tlabel: __( 'Value contains' ),\n\t\tfieldTypes: [\n\t\t\t'text',\n\t\t\t'textarea',\n\t\t\t'number',\n\t\t\t'email',\n\t\t\t'url',\n\t\t\t'password',\n\t\t\t'wysiwyg',\n\t\t\t'oembed',\n\t\t\t'select',\n\t\t],\n\t\tmatch: function ( rule, field ) {\n\t\t\treturn containsString( field.val(), rule.value );\n\t\t},\n\t\tchoices: function ( fieldObject ) {\n\t\t\treturn '';\n\t\t},\n\t} );\n\n\tacf.registerConditionType( Contains );\n\n\t/**\n\t * TrueFalseEqualTo\n\t *\n\t * description\n\t *\n\t * @date\t1/2/18\n\t * @since\t5.6.5\n\t *\n\t * @param\tvoid\n\t * @return\tvoid\n\t */\n\n\tvar TrueFalseEqualTo = EqualTo.extend( {\n\t\ttype: 'trueFalseEqualTo',\n\t\tchoiceType: 'select',\n\t\tfieldTypes: [ 'true_false' ],\n\t\tchoices: function ( field ) {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tid: 1,\n\t\t\t\t\ttext: __( 'Checked' ),\n\t\t\t\t},\n\t\t\t];\n\t\t},\n\t} );\n\n\tacf.registerConditionType( TrueFalseEqualTo );\n\n\t/**\n\t * TrueFalseNotEqualTo\n\t *\n\t * description\n\t *\n\t * @date\t1/2/18\n\t * @since\t5.6.5\n\t *\n\t * @param\tvoid\n\t * @return\tvoid\n\t */\n\n\tvar TrueFalseNotEqualTo = NotEqualTo.extend( {\n\t\ttype: 'trueFalseNotEqualTo',\n\t\tchoiceType: 'select',\n\t\tfieldTypes: [ 'true_false' ],\n\t\tchoices: function ( field ) {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tid: 1,\n\t\t\t\t\ttext: __( 'Checked' ),\n\t\t\t\t},\n\t\t\t];\n\t\t},\n\t} );\n\n\tacf.registerConditionType( TrueFalseNotEqualTo );\n\n\t/**\n\t * SelectEqualTo\n\t *\n\t * description\n\t *\n\t * @date\t1/2/18\n\t * @since\t5.6.5\n\t *\n\t * @param\tvoid\n\t * @return\tvoid\n\t */\n\n\tvar SelectEqualTo = acf.Condition.extend( {\n\t\ttype: 'selectEqualTo',\n\t\toperator: '==',\n\t\tlabel: __( 'Value is equal to' ),\n\t\tfieldTypes: [ 'select', 'checkbox', 'radio', 'button_group' ],\n\t\tmatch: function ( rule, field ) {\n\t\t\tvar val = field.val();\n\t\t\tif ( val instanceof Array ) {\n\t\t\t\treturn inArray( rule.value, val );\n\t\t\t} else {\n\t\t\t\treturn isEqualTo( rule.value, val );\n\t\t\t}\n\t\t},\n\t\tchoices: function ( fieldObject ) {\n\t\t\t// vars\n\t\t\tvar choices = [];\n\t\t\tvar lines = fieldObject\n\t\t\t\t.$setting( 'choices textarea' )\n\t\t\t\t.val()\n\t\t\t\t.split( '\\n' );\n\n\t\t\t// allow null\n\t\t\tif ( fieldObject.$input( 'allow_null' ).prop( 'checked' ) ) {\n\t\t\t\tchoices.push( {\n\t\t\t\t\tid: '',\n\t\t\t\t\ttext: __( 'Null' ),\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t// loop\n\t\t\tlines.map( function ( line ) {\n\t\t\t\t// split\n\t\t\t\tline = line.split( ':' );\n\n\t\t\t\t// default label to value\n\t\t\t\tline[ 1 ] = line[ 1 ] || line[ 0 ];\n\n\t\t\t\t// append\n\t\t\t\tchoices.push( {\n\t\t\t\t\tid: line[ 0 ].trim(),\n\t\t\t\t\ttext: line[ 1 ].trim(),\n\t\t\t\t} );\n\t\t\t} );\n\n\t\t\t// return\n\t\t\treturn choices;\n\t\t},\n\t} );\n\n\tacf.registerConditionType( SelectEqualTo );\n\n\t/**\n\t * SelectNotEqualTo\n\t *\n\t * description\n\t *\n\t * @date\t1/2/18\n\t * @since\t5.6.5\n\t *\n\t * @param\tvoid\n\t * @return\tvoid\n\t */\n\n\tvar SelectNotEqualTo = SelectEqualTo.extend( {\n\t\ttype: 'selectNotEqualTo',\n\t\toperator: '!=',\n\t\tlabel: __( 'Value is not equal to' ),\n\t\tmatch: function ( rule, field ) {\n\t\t\treturn ! SelectEqualTo.prototype.match.apply( this, arguments );\n\t\t},\n\t} );\n\n\tacf.registerConditionType( SelectNotEqualTo );\n\n\t/**\n\t * GreaterThan\n\t *\n\t * description\n\t *\n\t * @date\t1/2/18\n\t * @since\t5.6.5\n\t *\n\t * @param\tvoid\n\t * @return\tvoid\n\t */\n\n\tvar GreaterThan = acf.Condition.extend( {\n\t\ttype: 'greaterThan',\n\t\toperator: '>',\n\t\tlabel: __( 'Value is greater than' ),\n\t\tfieldTypes: [ 'number', 'range' ],\n\t\tmatch: function ( rule, field ) {\n\t\t\tvar val = field.val();\n\t\t\tif ( val instanceof Array ) {\n\t\t\t\tval = val.length;\n\t\t\t}\n\t\t\treturn isGreaterThan( val, rule.value );\n\t\t},\n\t\tchoices: function ( fieldObject ) {\n\t\t\treturn '';\n\t\t},\n\t} );\n\n\tacf.registerConditionType( GreaterThan );\n\n\t/**\n\t * LessThan\n\t *\n\t * description\n\t *\n\t * @date\t1/2/18\n\t * @since\t5.6.5\n\t *\n\t * @param\tvoid\n\t * @return\tvoid\n\t */\n\n\tvar LessThan = GreaterThan.extend( {\n\t\ttype: 'lessThan',\n\t\toperator: '<',\n\t\tlabel: __( 'Value is less than' ),\n\t\tmatch: function ( rule, field ) {\n\t\t\tvar val = field.val();\n\t\t\tif ( val instanceof Array ) {\n\t\t\t\tval = val.length;\n\t\t\t}\n\t\t\tif ( val === undefined || val === null || val === false ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn isLessThan( val, rule.value );\n\t\t},\n\t\tchoices: function ( fieldObject ) {\n\t\t\treturn '';\n\t\t},\n\t} );\n\n\tacf.registerConditionType( LessThan );\n\n\t/**\n\t * SelectedGreaterThan\n\t *\n\t * description\n\t *\n\t * @date\t1/2/18\n\t * @since\t5.6.5\n\t *\n\t * @param\tvoid\n\t * @return\tvoid\n\t */\n\n\tvar SelectionGreaterThan = GreaterThan.extend( {\n\t\ttype: 'selectionGreaterThan',\n\t\tlabel: __( 'Selection is greater than' ),\n\t\tfieldTypes: [\n\t\t\t'checkbox',\n\t\t\t'select',\n\t\t\t'post_object',\n\t\t\t'page_link',\n\t\t\t'relationship',\n\t\t\t'taxonomy',\n\t\t\t'user',\n\t\t],\n\t} );\n\n\tacf.registerConditionType( SelectionGreaterThan );\n\n\t/**\n\t * SelectedGreaterThan\n\t *\n\t * description\n\t *\n\t * @date\t1/2/18\n\t * @since\t5.6.5\n\t *\n\t * @param\tvoid\n\t * @return\tvoid\n\t */\n\n\tvar SelectionLessThan = LessThan.extend( {\n\t\ttype: 'selectionLessThan',\n\t\tlabel: __( 'Selection is less than' ),\n\t\tfieldTypes: [\n\t\t\t'checkbox',\n\t\t\t'select',\n\t\t\t'post_object',\n\t\t\t'page_link',\n\t\t\t'relationship',\n\t\t\t'taxonomy',\n\t\t\t'user',\n\t\t],\n\t} );\n\n\tacf.registerConditionType( SelectionLessThan );\n} )( jQuery );\n","( function ( $, undefined ) {\n\t// vars\n\tvar storage = [];\n\n\t/**\n\t * acf.Condition\n\t *\n\t * description\n\t *\n\t * @date\t23/3/18\n\t * @since\t5.6.9\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tacf.Condition = acf.Model.extend( {\n\t\ttype: '', // used for model name\n\t\toperator: '==', // rule operator\n\t\tlabel: '', // label shown when editing fields\n\t\tchoiceType: 'input', // input, select\n\t\tfieldTypes: [], // auto connect this conditions with these field types\n\n\t\tdata: {\n\t\t\tconditions: false, // the parent instance\n\t\t\tfield: false, // the field which we query against\n\t\t\trule: {}, // the rule [field, operator, value]\n\t\t},\n\n\t\tevents: {\n\t\t\tchange: 'change',\n\t\t\tkeyup: 'change',\n\t\t\tenableField: 'change',\n\t\t\tdisableField: 'change',\n\t\t},\n\n\t\tsetup: function ( props ) {\n\t\t\t$.extend( this.data, props );\n\t\t},\n\n\t\tgetEventTarget: function ( $el, event ) {\n\t\t\treturn $el || this.get( 'field' ).$el;\n\t\t},\n\n\t\tchange: function ( e, $el ) {\n\t\t\tthis.get( 'conditions' ).change( e );\n\t\t},\n\n\t\tmatch: function ( rule, field ) {\n\t\t\treturn false;\n\t\t},\n\n\t\tcalculate: function () {\n\t\t\treturn this.match( this.get( 'rule' ), this.get( 'field' ) );\n\t\t},\n\n\t\tchoices: function ( field ) {\n\t\t\treturn '';\n\t\t},\n\t} );\n\n\t/**\n\t * acf.newCondition\n\t *\n\t * description\n\t *\n\t * @date\t1/2/18\n\t * @since\t5.6.5\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tacf.newCondition = function ( rule, conditions ) {\n\t\t// currently setting up conditions for fieldX, this field is the 'target'\n\t\tvar target = conditions.get( 'field' );\n\n\t\t// use the 'target' to find the 'trigger' field.\n\t\t// - this field is used to setup the conditional logic events\n\t\tvar field = target.getField( rule.field );\n\n\t\t// bail early if no target or no field (possible if field doesn't exist due to HTML error)\n\t\tif ( ! target || ! field ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// vars\n\t\tvar args = {\n\t\t\trule: rule,\n\t\t\ttarget: target,\n\t\t\tconditions: conditions,\n\t\t\tfield: field,\n\t\t};\n\n\t\t// vars\n\t\tvar fieldType = field.get( 'type' );\n\t\tvar operator = rule.operator;\n\n\t\t// get avaibale conditions\n\t\tvar conditionTypes = acf.getConditionTypes( {\n\t\t\tfieldType: fieldType,\n\t\t\toperator: operator,\n\t\t} );\n\n\t\t// instantiate\n\t\tvar model = conditionTypes[ 0 ] || acf.Condition;\n\n\t\t// instantiate\n\t\tvar condition = new model( args );\n\n\t\t// return\n\t\treturn condition;\n\t};\n\n\t/**\n\t * mid\n\t *\n\t * Calculates the model ID for a field type\n\t *\n\t * @date\t15/12/17\n\t * @since\t5.6.5\n\t *\n\t * @param\tstring type\n\t * @return\tstring\n\t */\n\n\tvar modelId = function ( type ) {\n\t\treturn acf.strPascalCase( type || '' ) + 'Condition';\n\t};\n\n\t/**\n\t * acf.registerConditionType\n\t *\n\t * description\n\t *\n\t * @date\t1/2/18\n\t * @since\t5.6.5\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tacf.registerConditionType = function ( model ) {\n\t\t// vars\n\t\tvar proto = model.prototype;\n\t\tvar type = proto.type;\n\t\tvar mid = modelId( type );\n\n\t\t// store model\n\t\tacf.models[ mid ] = model;\n\n\t\t// store reference\n\t\tstorage.push( type );\n\t};\n\n\t/**\n\t * acf.getConditionType\n\t *\n\t * description\n\t *\n\t * @date\t1/2/18\n\t * @since\t5.6.5\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tacf.getConditionType = function ( type ) {\n\t\tvar mid = modelId( type );\n\t\treturn acf.models[ mid ] || false;\n\t};\n\n\t/**\n\t * acf.registerConditionForFieldType\n\t *\n\t * description\n\t *\n\t * @date\t1/2/18\n\t * @since\t5.6.5\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tacf.registerConditionForFieldType = function ( conditionType, fieldType ) {\n\t\t// get model\n\t\tvar model = acf.getConditionType( conditionType );\n\n\t\t// append\n\t\tif ( model ) {\n\t\t\tmodel.prototype.fieldTypes.push( fieldType );\n\t\t}\n\t};\n\n\t/**\n\t * acf.getConditionTypes\n\t *\n\t * description\n\t *\n\t * @date\t1/2/18\n\t * @since\t5.6.5\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tacf.getConditionTypes = function ( args ) {\n\t\t// defaults\n\t\targs = acf.parseArgs( args, {\n\t\t\tfieldType: '',\n\t\t\toperator: '',\n\t\t} );\n\n\t\t// clonse available types\n\t\tvar types = [];\n\n\t\t// loop\n\t\tstorage.map( function ( type ) {\n\t\t\t// vars\n\t\t\tvar model = acf.getConditionType( type );\n\t\t\tvar ProtoFieldTypes = model.prototype.fieldTypes;\n\t\t\tvar ProtoOperator = model.prototype.operator;\n\n\t\t\t// check fieldType\n\t\t\tif (\n\t\t\t\targs.fieldType &&\n\t\t\t\tProtoFieldTypes.indexOf( args.fieldType ) === -1\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// check operator\n\t\t\tif ( args.operator && ProtoOperator !== args.operator ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// append\n\t\t\ttypes.push( model );\n\t\t} );\n\n\t\t// return\n\t\treturn types;\n\t};\n} )( jQuery );\n","( function ( $, undefined ) {\n\t// vars\n\tvar CONTEXT = 'conditional_logic';\n\n\t/**\n\t * conditionsManager\n\t *\n\t * description\n\t *\n\t * @date\t1/2/18\n\t * @since\t5.6.5\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tvar conditionsManager = new acf.Model( {\n\t\tid: 'conditionsManager',\n\n\t\tpriority: 20, // run actions later\n\n\t\tactions: {\n\t\t\tnew_field: 'onNewField',\n\t\t},\n\n\t\tonNewField: function ( field ) {\n\t\t\tif ( field.has( 'conditions' ) ) {\n\t\t\t\tfield.getConditions().render();\n\t\t\t}\n\t\t},\n\t} );\n\n\t/**\n\t * acf.Field.prototype.getField\n\t *\n\t * Finds a field that is related to another field\n\t *\n\t * @date\t1/2/18\n\t * @since\t5.6.5\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tvar getSiblingField = function ( field, key ) {\n\t\t// find sibling (very fast)\n\t\tvar fields = acf.getFields( {\n\t\t\tkey: key,\n\t\t\tsibling: field.$el,\n\t\t\tsuppressFilters: true,\n\t\t} );\n\n\t\t// find sibling-children (fast)\n\t\t// needed for group fields, accordions, etc\n\t\tif ( ! fields.length ) {\n\t\t\tfields = acf.getFields( {\n\t\t\t\tkey: key,\n\t\t\t\tparent: field.$el.parent(),\n\t\t\t\tsuppressFilters: true,\n\t\t\t} );\n\t\t}\n\n\t\t// Check for fields on other settings tabs (probably less fast).\n\t\tif ( ! fields.length && $( '.acf-field-settings' ).length ) {\n\t\t\tfields = acf.getFields( {\n\t\t\t\tkey: key,\n\t\t\t\tparent: field.$el.parents( '.acf-field-settings:first' ),\n\t\t\t\tsuppressFilters: true,\n\t\t\t} );\n\t\t}\n\n\t\tif ( ! fields.length && $( '#acf-basic-settings' ).length ) {\n\t\t\tfields = acf.getFields( {\n\t\t\t\tkey: key,\n\t\t\t\tparent: $( '#acf-basic-settings'),\n\t\t\t\tsuppressFilters: true,\n\t\t\t} );\n\t\t}\n\n\t\t// return\n\t\tif ( fields.length ) {\n\t\t\treturn fields[ 0 ];\n\t\t}\n\t\treturn false;\n\t};\n\n\tacf.Field.prototype.getField = function ( key ) {\n\t\t// get sibling field\n\t\tvar field = getSiblingField( this, key );\n\n\t\t// return early\n\t\tif ( field ) {\n\t\t\treturn field;\n\t\t}\n\n\t\t// move up through each parent and try again\n\t\tvar parents = this.parents();\n\t\tfor ( var i = 0; i < parents.length; i++ ) {\n\t\t\t// get sibling field\n\t\t\tfield = getSiblingField( parents[ i ], key );\n\n\t\t\t// return early\n\t\t\tif ( field ) {\n\t\t\t\treturn field;\n\t\t\t}\n\t\t}\n\n\t\t// return\n\t\treturn false;\n\t};\n\n\t/**\n\t * acf.Field.prototype.getConditions\n\t *\n\t * Returns the field's conditions instance\n\t *\n\t * @date\t1/2/18\n\t * @since\t5.6.5\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tacf.Field.prototype.getConditions = function () {\n\t\t// instantiate\n\t\tif ( ! this.conditions ) {\n\t\t\tthis.conditions = new Conditions( this );\n\t\t}\n\n\t\t// return\n\t\treturn this.conditions;\n\t};\n\n\t/**\n\t * Conditions\n\t *\n\t * description\n\t *\n\t * @date\t1/2/18\n\t * @since\t5.6.5\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\tvar timeout = false;\n\tvar Conditions = acf.Model.extend( {\n\t\tid: 'Conditions',\n\n\t\tdata: {\n\t\t\tfield: false, // The field with \"data-conditions\" (target).\n\t\t\ttimeStamp: false, // Reference used during \"change\" event.\n\t\t\tgroups: [], // The groups of condition instances.\n\t\t},\n\n\t\tsetup: function ( field ) {\n\t\t\t// data\n\t\t\tthis.data.field = field;\n\n\t\t\t// vars\n\t\t\tvar conditions = field.get( 'conditions' );\n\n\t\t\t// detect groups\n\t\t\tif ( conditions instanceof Array ) {\n\t\t\t\t// detect groups\n\t\t\t\tif ( conditions[ 0 ] instanceof Array ) {\n\t\t\t\t\t// loop\n\t\t\t\t\tconditions.map( function ( rules, i ) {\n\t\t\t\t\t\tthis.addRules( rules, i );\n\t\t\t\t\t}, this );\n\n\t\t\t\t\t// detect rules\n\t\t\t\t} else {\n\t\t\t\t\tthis.addRules( conditions );\n\t\t\t\t}\n\n\t\t\t\t// detect rule\n\t\t\t} else {\n\t\t\t\tthis.addRule( conditions );\n\t\t\t}\n\t\t},\n\n\t\tchange: function ( e ) {\n\t\t\t// this function may be triggered multiple times per event due to multiple condition classes\n\t\t\t// compare timestamp to allow only 1 trigger per event\n\t\t\tif ( this.get( 'timeStamp' ) === e.timeStamp ) {\n\t\t\t\treturn false;\n\t\t\t} else {\n\t\t\t\tthis.set( 'timeStamp', e.timeStamp, true );\n\t\t\t}\n\n\t\t\t// render condition and store result\n\t\t\tvar changed = this.render();\n\t\t},\n\n\t\trender: function () {\n\t\t\treturn this.calculate() ? this.show() : this.hide();\n\t\t},\n\n\t\tshow: function () {\n\t\t\treturn this.get( 'field' ).showEnable( this.cid, CONTEXT );\n\t\t},\n\n\t\thide: function () {\n\t\t\treturn this.get( 'field' ).hideDisable( this.cid, CONTEXT );\n\t\t},\n\n\t\tcalculate: function () {\n\t\t\t// vars\n\t\t\tvar pass = false;\n\n\t\t\t// loop\n\t\t\tthis.getGroups().map( function ( group ) {\n\t\t\t\t// igrnore this group if another group passed\n\t\t\t\tif ( pass ) return;\n\n\t\t\t\t// find passed\n\t\t\t\tvar passed = group.filter( function ( condition ) {\n\t\t\t\t\treturn condition.calculate();\n\t\t\t\t} );\n\n\t\t\t\t// if all conditions passed, update the global var\n\t\t\t\tif ( passed.length == group.length ) {\n\t\t\t\t\tpass = true;\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\treturn pass;\n\t\t},\n\n\t\thasGroups: function () {\n\t\t\treturn this.data.groups != null;\n\t\t},\n\n\t\tgetGroups: function () {\n\t\t\treturn this.data.groups;\n\t\t},\n\n\t\taddGroup: function () {\n\t\t\tvar group = [];\n\t\t\tthis.data.groups.push( group );\n\t\t\treturn group;\n\t\t},\n\n\t\thasGroup: function ( i ) {\n\t\t\treturn this.data.groups[ i ] != null;\n\t\t},\n\n\t\tgetGroup: function ( i ) {\n\t\t\treturn this.data.groups[ i ];\n\t\t},\n\n\t\tremoveGroup: function ( i ) {\n\t\t\tthis.data.groups[ i ].delete;\n\t\t\treturn this;\n\t\t},\n\n\t\taddRules: function ( rules, group ) {\n\t\t\trules.map( function ( rule ) {\n\t\t\t\tthis.addRule( rule, group );\n\t\t\t}, this );\n\t\t},\n\n\t\taddRule: function ( rule, group ) {\n\t\t\t// defaults\n\t\t\tgroup = group || 0;\n\n\t\t\t// vars\n\t\t\tvar groupArray;\n\n\t\t\t// get group\n\t\t\tif ( this.hasGroup( group ) ) {\n\t\t\t\tgroupArray = this.getGroup( group );\n\t\t\t} else {\n\t\t\t\tgroupArray = this.addGroup();\n\t\t\t}\n\n\t\t\t// instantiate\n\t\t\tvar condition = acf.newCondition( rule, this );\n\n\t\t\t// bail early if condition failed (field did not exist)\n\t\t\tif ( ! condition ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// add rule\n\t\t\tgroupArray.push( condition );\n\t\t},\n\n\t\thasRule: function () {},\n\n\t\tgetRule: function ( rule, group ) {\n\t\t\t// defaults\n\t\t\trule = rule || 0;\n\t\t\tgroup = group || 0;\n\n\t\t\treturn this.data.groups[ group ][ rule ];\n\t\t},\n\n\t\tremoveRule: function () {},\n\t} );\n} )( jQuery );\n","( function ( $, undefined ) {\n\tvar i = 0;\n\n\tvar Field = acf.Field.extend( {\n\t\ttype: 'accordion',\n\n\t\twait: '',\n\n\t\t$control: function () {\n\t\t\treturn this.$( '.acf-fields:first' );\n\t\t},\n\n\t\tinitialize: function () {\n\t\t\t// Bail early if this is a duplicate of an existing initialized accordion.\n\t\t\tif ( this.$el.hasClass( 'acf-accordion' ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// bail early if is cell\n\t\t\tif ( this.$el.is( 'td' ) ) return;\n\n\t\t\t// enpoint\n\t\t\tif ( this.get( 'endpoint' ) ) {\n\t\t\t\treturn this.remove();\n\t\t\t}\n\n\t\t\t// vars\n\t\t\tvar $field = this.$el;\n\t\t\tvar $label = this.$labelWrap();\n\t\t\tvar $input = this.$inputWrap();\n\t\t\tvar $wrap = this.$control();\n\t\t\tvar $instructions = $input.children( '.description' );\n\n\t\t\t// force description into label\n\t\t\tif ( $instructions.length ) {\n\t\t\t\t$label.append( $instructions );\n\t\t\t}\n\n\t\t\t// table\n\t\t\tif ( this.$el.is( 'tr' ) ) {\n\t\t\t\t// vars\n\t\t\t\tvar $table = this.$el.closest( 'table' );\n\t\t\t\tvar $newLabel = $( '

        ' );\n\t\t\t\tvar $newInput = $( '
        ' );\n\t\t\t\tvar $newTable = $(\n\t\t\t\t\t'
          '\n\t\t\t\t);\n\t\t\t\tvar $newWrap = $( '' );\n\n\t\t\t\t// dom\n\t\t\t\t$newLabel.append( $label.html() );\n\t\t\t\t$newTable.append( $newWrap );\n\t\t\t\t$newInput.append( $newTable );\n\t\t\t\t$input.append( $newLabel );\n\t\t\t\t$input.append( $newInput );\n\n\t\t\t\t// modify\n\t\t\t\t$label.remove();\n\t\t\t\t$wrap.remove();\n\t\t\t\t$input.attr( 'colspan', 2 );\n\n\t\t\t\t// update vars\n\t\t\t\t$label = $newLabel;\n\t\t\t\t$input = $newInput;\n\t\t\t\t$wrap = $newWrap;\n\t\t\t}\n\n\t\t\t// add classes\n\t\t\t$field.addClass( 'acf-accordion' );\n\t\t\t$label.addClass( 'acf-accordion-title' );\n\t\t\t$input.addClass( 'acf-accordion-content' );\n\n\t\t\t// index\n\t\t\ti++;\n\n\t\t\t// multi-expand\n\t\t\tif ( this.get( 'multi_expand' ) ) {\n\t\t\t\t$field.attr( 'multi-expand', 1 );\n\t\t\t}\n\n\t\t\t// open\n\t\t\tvar order = acf.getPreference( 'this.accordions' ) || [];\n\t\t\tif ( order[ i - 1 ] !== undefined ) {\n\t\t\t\tthis.set( 'open', order[ i - 1 ] );\n\t\t\t}\n\n\t\t\tif ( this.get( 'open' ) ) {\n\t\t\t\t$field.addClass( '-open' );\n\t\t\t\t$input.css( 'display', 'block' ); // needed for accordion to close smoothly\n\t\t\t}\n\n\t\t\t// add icon\n\t\t\t$label.prepend(\n\t\t\t\taccordionManager.iconHtml( { open: this.get( 'open' ) } )\n\t\t\t);\n\n\t\t\t// classes\n\t\t\t// - remove 'inside' which is a #poststuff WP class\n\t\t\tvar $parent = $field.parent();\n\t\t\t$wrap.addClass( $parent.hasClass( '-left' ) ? '-left' : '' );\n\t\t\t$wrap.addClass( $parent.hasClass( '-clear' ) ? '-clear' : '' );\n\n\t\t\t// append\n\t\t\t$wrap.append(\n\t\t\t\t$field.nextUntil( '.acf-field-accordion', '.acf-field' )\n\t\t\t);\n\n\t\t\t// clean up\n\t\t\t$wrap.removeAttr( 'data-open data-multi_expand data-endpoint' );\n\t\t},\n\t} );\n\n\tacf.registerFieldType( Field );\n\n\t/**\n\t * accordionManager\n\t *\n\t * Events manager for the acf accordion\n\t *\n\t * @date\t14/2/18\n\t * @since\t5.6.9\n\t *\n\t * @param\tvoid\n\t * @return\tvoid\n\t */\n\n\tvar accordionManager = new acf.Model( {\n\t\tactions: {\n\t\t\tunload: 'onUnload',\n\t\t},\n\n\t\tevents: {\n\t\t\t'click .acf-accordion-title': 'onClick',\n\t\t\t'invalidField .acf-accordion': 'onInvalidField',\n\t\t},\n\n\t\tisOpen: function ( $el ) {\n\t\t\treturn $el.hasClass( '-open' );\n\t\t},\n\n\t\ttoggle: function ( $el ) {\n\t\t\tif ( this.isOpen( $el ) ) {\n\t\t\t\tthis.close( $el );\n\t\t\t} else {\n\t\t\t\tthis.open( $el );\n\t\t\t}\n\t\t},\n\n\t\ticonHtml: function ( props ) {\n\t\t\t// Use SVG inside Gutenberg editor.\n\t\t\tif ( acf.isGutenberg() ) {\n\t\t\t\tif ( props.open ) {\n\t\t\t\t\treturn '';\n\t\t\t\t} else {\n\t\t\t\t\treturn '';\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ( props.open ) {\n\t\t\t\t\treturn '';\n\t\t\t\t} else {\n\t\t\t\t\treturn '';\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\topen: function ( $el ) {\n\t\t\tvar duration = acf.isGutenberg() ? 0 : 300;\n\n\t\t\t// open\n\t\t\t$el.find( '.acf-accordion-content:first' )\n\t\t\t\t.slideDown( duration )\n\t\t\t\t.css( 'display', 'block' );\n\t\t\t$el.find( '.acf-accordion-icon:first' ).replaceWith(\n\t\t\t\tthis.iconHtml( { open: true } )\n\t\t\t);\n\t\t\t$el.addClass( '-open' );\n\n\t\t\t// action\n\t\t\tacf.doAction( 'show', $el );\n\n\t\t\t// close siblings\n\t\t\tif ( ! $el.attr( 'multi-expand' ) ) {\n\t\t\t\t$el.siblings( '.acf-accordion.-open' ).each( function () {\n\t\t\t\t\taccordionManager.close( $( this ) );\n\t\t\t\t} );\n\t\t\t}\n\t\t},\n\n\t\tclose: function ( $el ) {\n\t\t\tvar duration = acf.isGutenberg() ? 0 : 300;\n\n\t\t\t// close\n\t\t\t$el.find( '.acf-accordion-content:first' ).slideUp( duration );\n\t\t\t$el.find( '.acf-accordion-icon:first' ).replaceWith(\n\t\t\t\tthis.iconHtml( { open: false } )\n\t\t\t);\n\t\t\t$el.removeClass( '-open' );\n\n\t\t\t// action\n\t\t\tacf.doAction( 'hide', $el );\n\t\t},\n\n\t\tonClick: function ( e, $el ) {\n\t\t\t// prevent Defailt\n\t\t\te.preventDefault();\n\n\t\t\t// open close\n\t\t\tthis.toggle( $el.parent() );\n\t\t},\n\n\t\tonInvalidField: function ( e, $el ) {\n\t\t\t// bail early if already focused\n\t\t\tif ( this.busy ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// disable functionality for 1sec (allow next validation to work)\n\t\t\tthis.busy = true;\n\t\t\tthis.setTimeout( function () {\n\t\t\t\tthis.busy = false;\n\t\t\t}, 1000 );\n\n\t\t\t// open accordion\n\t\t\tthis.open( $el );\n\t\t},\n\n\t\tonUnload: function ( e ) {\n\t\t\t// vars\n\t\t\tvar order = [];\n\n\t\t\t// loop\n\t\t\t$( '.acf-accordion' ).each( function () {\n\t\t\t\tvar open = $( this ).hasClass( '-open' ) ? 1 : 0;\n\t\t\t\torder.push( open );\n\t\t\t} );\n\n\t\t\t// set\n\t\t\tif ( order.length ) {\n\t\t\t\tacf.setPreference( 'this.accordions', order );\n\t\t\t}\n\t\t},\n\t} );\n} )( jQuery );\n","( function ( $, undefined ) {\n\tvar Field = acf.Field.extend( {\n\t\ttype: 'button_group',\n\n\t\tevents: {\n\t\t\t'click input[type=\"radio\"]': 'onClick',\n\t\t},\n\n\t\t$control: function () {\n\t\t\treturn this.$( '.acf-button-group' );\n\t\t},\n\n\t\t$input: function () {\n\t\t\treturn this.$( 'input:checked' );\n\t\t},\n\n\t\tsetValue: function ( val ) {\n\t\t\tthis.$( 'input[value=\"' + val + '\"]' )\n\t\t\t\t.prop( 'checked', true )\n\t\t\t\t.trigger( 'change' );\n\t\t},\n\n\t\tonClick: function ( e, $el ) {\n\t\t\t// vars\n\t\t\tvar $label = $el.parent( 'label' );\n\t\t\tvar selected = $label.hasClass( 'selected' );\n\n\t\t\t// remove previous selected\n\t\t\tthis.$( '.selected' ).removeClass( 'selected' );\n\n\t\t\t// add active class\n\t\t\t$label.addClass( 'selected' );\n\n\t\t\t// allow null\n\t\t\tif ( this.get( 'allow_null' ) && selected ) {\n\t\t\t\t$label.removeClass( 'selected' );\n\t\t\t\t$el.prop( 'checked', false ).trigger( 'change' );\n\t\t\t}\n\t\t},\n\t} );\n\n\tacf.registerFieldType( Field );\n} )( jQuery );\n","( function ( $, undefined ) {\n\tvar Field = acf.Field.extend( {\n\t\ttype: 'checkbox',\n\n\t\tevents: {\n\t\t\t'change input': 'onChange',\n\t\t\t'click .acf-add-checkbox': 'onClickAdd',\n\t\t\t'click .acf-checkbox-toggle': 'onClickToggle',\n\t\t\t'click .acf-checkbox-custom': 'onClickCustom',\n\t\t},\n\n\t\t$control: function () {\n\t\t\treturn this.$( '.acf-checkbox-list' );\n\t\t},\n\n\t\t$toggle: function () {\n\t\t\treturn this.$( '.acf-checkbox-toggle' );\n\t\t},\n\n\t\t$input: function () {\n\t\t\treturn this.$( 'input[type=\"hidden\"]' );\n\t\t},\n\n\t\t$inputs: function () {\n\t\t\treturn this.$( 'input[type=\"checkbox\"]' ).not(\n\t\t\t\t'.acf-checkbox-toggle'\n\t\t\t);\n\t\t},\n\n\t\tgetValue: function () {\n\t\t\tvar val = [];\n\t\t\tthis.$( ':checked' ).each( function () {\n\t\t\t\tval.push( $( this ).val() );\n\t\t\t} );\n\t\t\treturn val.length ? val : false;\n\t\t},\n\n\t\tonChange: function ( e, $el ) {\n\t\t\t// Vars.\n\t\t\tvar checked = $el.prop( 'checked' );\n\t\t\tvar $label = $el.parent( 'label' );\n\t\t\tvar $toggle = this.$toggle();\n\n\t\t\t// Add or remove \"selected\" class.\n\t\t\tif ( checked ) {\n\t\t\t\t$label.addClass( 'selected' );\n\t\t\t} else {\n\t\t\t\t$label.removeClass( 'selected' );\n\t\t\t}\n\n\t\t\t// Update toggle state if all inputs are checked.\n\t\t\tif ( $toggle.length ) {\n\t\t\t\tvar $inputs = this.$inputs();\n\n\t\t\t\t// all checked\n\t\t\t\tif ( $inputs.not( ':checked' ).length == 0 ) {\n\t\t\t\t\t$toggle.prop( 'checked', true );\n\t\t\t\t} else {\n\t\t\t\t\t$toggle.prop( 'checked', false );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tonClickAdd: function ( e, $el ) {\n\t\t\tvar html =\n\t\t\t\t'
        • ';\n\t\t\t$el.parent( 'li' ).before( html );\n\t\t\t$el.parent( 'li' )\n\t\t\t\t.parent()\n\t\t\t\t.find( 'input[type=\"text\"]' )\n\t\t\t\t.last()\n\t\t\t\t.focus();\n\t\t},\n\n\t\tonClickToggle: function ( e, $el ) {\n\t\t\t// Vars.\n\t\t\tvar checked = $el.prop( 'checked' );\n\t\t\tvar $inputs = this.$( 'input[type=\"checkbox\"]' );\n\t\t\tvar $labels = this.$( 'label' );\n\n\t\t\t// Update \"checked\" state.\n\t\t\t$inputs.prop( 'checked', checked );\n\n\t\t\t// Add or remove \"selected\" class.\n\t\t\tif ( checked ) {\n\t\t\t\t$labels.addClass( 'selected' );\n\t\t\t} else {\n\t\t\t\t$labels.removeClass( 'selected' );\n\t\t\t}\n\t\t},\n\n\t\tonClickCustom: function ( e, $el ) {\n\t\t\tvar checked = $el.prop( 'checked' );\n\t\t\tvar $text = $el.next( 'input[type=\"text\"]' );\n\n\t\t\t// checked\n\t\t\tif ( checked ) {\n\t\t\t\t$text.prop( 'disabled', false );\n\n\t\t\t\t// not checked\n\t\t\t} else {\n\t\t\t\t$text.prop( 'disabled', true );\n\n\t\t\t\t// remove\n\t\t\t\tif ( $text.val() == '' ) {\n\t\t\t\t\t$el.parent( 'li' ).remove();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t} );\n\n\tacf.registerFieldType( Field );\n} )( jQuery );\n","( function ( $, undefined ) {\n\tvar Field = acf.Field.extend( {\n\t\ttype: 'color_picker',\n\n\t\twait: 'load',\n\n\t\tevents: {\n\t\t\tduplicateField: 'onDuplicate',\n\t\t},\n\n\t\t$control: function () {\n\t\t\treturn this.$( '.acf-color-picker' );\n\t\t},\n\n\t\t$input: function () {\n\t\t\treturn this.$( 'input[type=\"hidden\"]' );\n\t\t},\n\n\t\t$inputText: function () {\n\t\t\treturn this.$( 'input[type=\"text\"]' );\n\t\t},\n\n\t\tsetValue: function ( val ) {\n\t\t\t// update input (with change)\n\t\t\tacf.val( this.$input(), val );\n\n\t\t\t// update iris\n\t\t\tthis.$inputText().iris( 'color', val );\n\t\t},\n\n\t\tinitialize: function () {\n\t\t\t// vars\n\t\t\tvar $input = this.$input();\n\t\t\tvar $inputText = this.$inputText();\n\n\t\t\t// event\n\t\t\tvar onChange = function ( e ) {\n\t\t\t\t// timeout is required to ensure the $input val is correct\n\t\t\t\tsetTimeout( function () {\n\t\t\t\t\tacf.val( $input, $inputText.val() );\n\t\t\t\t}, 1 );\n\t\t\t};\n\n\t\t\t// args\n\t\t\tvar args = {\n\t\t\t\tdefaultColor: false,\n\t\t\t\tpalettes: true,\n\t\t\t\thide: true,\n\t\t\t\tchange: onChange,\n\t\t\t\tclear: onChange,\n\t\t\t};\n\n\t\t\t// filter\n\t\t\tvar args = acf.applyFilters( 'color_picker_args', args, this );\n\n\t\t\t// initialize\n\t\t\t$inputText.wpColorPicker( args );\n\t\t},\n\n\t\tonDuplicate: function ( e, $el, $duplicate ) {\n\t\t\t// The wpColorPicker library does not provide a destroy method.\n\t\t\t// Manually reset DOM by replacing elements back to their original state.\n\t\t\t$colorPicker = $duplicate.find( '.wp-picker-container' );\n\t\t\t$inputText = $duplicate.find( 'input[type=\"text\"]' );\n\t\t\t$colorPicker.replaceWith( $inputText );\n\t\t},\n\t} );\n\n\tacf.registerFieldType( Field );\n} )( jQuery );\n","( function ( $, undefined ) {\n\tvar Field = acf.Field.extend( {\n\t\ttype: 'date_picker',\n\n\t\tevents: {\n\t\t\t'blur input[type=\"text\"]': 'onBlur',\n\t\t\tduplicateField: 'onDuplicate',\n\t\t},\n\n\t\t$control: function () {\n\t\t\treturn this.$( '.acf-date-picker' );\n\t\t},\n\n\t\t$input: function () {\n\t\t\treturn this.$( 'input[type=\"hidden\"]' );\n\t\t},\n\n\t\t$inputText: function () {\n\t\t\treturn this.$( 'input[type=\"text\"]' );\n\t\t},\n\n\t\tinitialize: function () {\n\t\t\t// save_format: compatibility with ACF < 5.0.0\n\t\t\tif ( this.has( 'save_format' ) ) {\n\t\t\t\treturn this.initializeCompatibility();\n\t\t\t}\n\n\t\t\t// vars\n\t\t\tvar $input = this.$input();\n\t\t\tvar $inputText = this.$inputText();\n\n\t\t\t// args\n\t\t\tvar args = {\n\t\t\t\tdateFormat: this.get( 'date_format' ),\n\t\t\t\taltField: $input,\n\t\t\t\taltFormat: 'yymmdd',\n\t\t\t\tchangeYear: true,\n\t\t\t\tyearRange: '-100:+100',\n\t\t\t\tchangeMonth: true,\n\t\t\t\tshowButtonPanel: true,\n\t\t\t\tfirstDay: this.get( 'first_day' ),\n\t\t\t};\n\n\t\t\t// filter\n\t\t\targs = acf.applyFilters( 'date_picker_args', args, this );\n\n\t\t\t// add date picker\n\t\t\tacf.newDatePicker( $inputText, args );\n\n\t\t\t// action\n\t\t\tacf.doAction( 'date_picker_init', $inputText, args, this );\n\t\t},\n\n\t\tinitializeCompatibility: function () {\n\t\t\t// vars\n\t\t\tvar $input = this.$input();\n\t\t\tvar $inputText = this.$inputText();\n\n\t\t\t// get and set value from alt field\n\t\t\t$inputText.val( $input.val() );\n\n\t\t\t// args\n\t\t\tvar args = {\n\t\t\t\tdateFormat: this.get( 'date_format' ),\n\t\t\t\taltField: $input,\n\t\t\t\taltFormat: this.get( 'save_format' ),\n\t\t\t\tchangeYear: true,\n\t\t\t\tyearRange: '-100:+100',\n\t\t\t\tchangeMonth: true,\n\t\t\t\tshowButtonPanel: true,\n\t\t\t\tfirstDay: this.get( 'first_day' ),\n\t\t\t};\n\n\t\t\t// filter for 3rd party customization\n\t\t\targs = acf.applyFilters( 'date_picker_args', args, this );\n\n\t\t\t// backup\n\t\t\tvar dateFormat = args.dateFormat;\n\n\t\t\t// change args.dateFormat\n\t\t\targs.dateFormat = this.get( 'save_format' );\n\n\t\t\t// add date picker\n\t\t\tacf.newDatePicker( $inputText, args );\n\n\t\t\t// now change the format back to how it should be.\n\t\t\t$inputText.datepicker( 'option', 'dateFormat', dateFormat );\n\n\t\t\t// action for 3rd party customization\n\t\t\tacf.doAction( 'date_picker_init', $inputText, args, this );\n\t\t},\n\n\t\tonBlur: function () {\n\t\t\tif ( ! this.$inputText().val() ) {\n\t\t\t\tacf.val( this.$input(), '' );\n\t\t\t}\n\t\t},\n\n\t\tonDuplicate: function ( e, $el, $duplicate ) {\n\t\t\t$duplicate\n\t\t\t\t.find( 'input[type=\"text\"]' )\n\t\t\t\t.removeClass( 'hasDatepicker' )\n\t\t\t\t.removeAttr( 'id' );\n\t\t},\n\t} );\n\n\tacf.registerFieldType( Field );\n\n\t// manager\n\tvar datePickerManager = new acf.Model( {\n\t\tpriority: 5,\n\t\twait: 'ready',\n\t\tinitialize: function () {\n\t\t\t// vars\n\t\t\tvar locale = acf.get( 'locale' );\n\t\t\tvar rtl = acf.get( 'rtl' );\n\t\t\tvar l10n = acf.get( 'datePickerL10n' );\n\n\t\t\t// bail early if no l10n\n\t\t\tif ( ! l10n ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// bail early if no datepicker library\n\t\t\tif ( typeof $.datepicker === 'undefined' ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// rtl\n\t\t\tl10n.isRTL = rtl;\n\n\t\t\t// append\n\t\t\t$.datepicker.regional[ locale ] = l10n;\n\t\t\t$.datepicker.setDefaults( l10n );\n\t\t},\n\t} );\n\n\t// add\n\tacf.newDatePicker = function ( $input, args ) {\n\t\t// bail early if no datepicker library\n\t\tif ( typeof $.datepicker === 'undefined' ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// defaults\n\t\targs = args || {};\n\n\t\t// initialize\n\t\t$input.datepicker( args );\n\n\t\t// wrap the datepicker (only if it hasn't already been wrapped)\n\t\tif ( $( 'body > #ui-datepicker-div' ).exists() ) {\n\t\t\t$( 'body > #ui-datepicker-div' ).wrap(\n\t\t\t\t'
          '\n\t\t\t);\n\t\t}\n\t};\n} )( jQuery );\n","( function ( $, undefined ) {\n\tvar Field = acf.models.DatePickerField.extend( {\n\t\ttype: 'date_time_picker',\n\n\t\t$control: function () {\n\t\t\treturn this.$( '.acf-date-time-picker' );\n\t\t},\n\n\t\tinitialize: function () {\n\t\t\t// vars\n\t\t\tvar $input = this.$input();\n\t\t\tvar $inputText = this.$inputText();\n\n\t\t\t// args\n\t\t\tvar args = {\n\t\t\t\tdateFormat: this.get( 'date_format' ),\n\t\t\t\ttimeFormat: this.get( 'time_format' ),\n\t\t\t\taltField: $input,\n\t\t\t\taltFieldTimeOnly: false,\n\t\t\t\taltFormat: 'yy-mm-dd',\n\t\t\t\taltTimeFormat: 'HH:mm:ss',\n\t\t\t\tchangeYear: true,\n\t\t\t\tyearRange: '-100:+100',\n\t\t\t\tchangeMonth: true,\n\t\t\t\tshowButtonPanel: true,\n\t\t\t\tfirstDay: this.get( 'first_day' ),\n\t\t\t\tcontrolType: 'select',\n\t\t\t\toneLine: true,\n\t\t\t};\n\n\t\t\t// filter\n\t\t\targs = acf.applyFilters( 'date_time_picker_args', args, this );\n\n\t\t\t// add date time picker\n\t\t\tacf.newDateTimePicker( $inputText, args );\n\n\t\t\t// action\n\t\t\tacf.doAction( 'date_time_picker_init', $inputText, args, this );\n\t\t},\n\t} );\n\n\tacf.registerFieldType( Field );\n\n\t// manager\n\tvar dateTimePickerManager = new acf.Model( {\n\t\tpriority: 5,\n\t\twait: 'ready',\n\t\tinitialize: function () {\n\t\t\t// vars\n\t\t\tvar locale = acf.get( 'locale' );\n\t\t\tvar rtl = acf.get( 'rtl' );\n\t\t\tvar l10n = acf.get( 'dateTimePickerL10n' );\n\n\t\t\t// bail early if no l10n\n\t\t\tif ( ! l10n ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// bail early if no datepicker library\n\t\t\tif ( typeof $.timepicker === 'undefined' ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// rtl\n\t\t\tl10n.isRTL = rtl;\n\n\t\t\t// append\n\t\t\t$.timepicker.regional[ locale ] = l10n;\n\t\t\t$.timepicker.setDefaults( l10n );\n\t\t},\n\t} );\n\n\t// add\n\tacf.newDateTimePicker = function ( $input, args ) {\n\t\t// bail early if no datepicker library\n\t\tif ( typeof $.timepicker === 'undefined' ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// defaults\n\t\targs = args || {};\n\n\t\t// initialize\n\t\t$input.datetimepicker( args );\n\n\t\t// wrap the datepicker (only if it hasn't already been wrapped)\n\t\tif ( $( 'body > #ui-datepicker-div' ).exists() ) {\n\t\t\t$( 'body > #ui-datepicker-div' ).wrap(\n\t\t\t\t'
          '\n\t\t\t);\n\t\t}\n\t};\n} )( jQuery );\n","( function ( $, undefined ) {\n\tvar Field = acf.models.ImageField.extend( {\n\t\ttype: 'file',\n\n\t\t$control: function () {\n\t\t\treturn this.$( '.acf-file-uploader' );\n\t\t},\n\n\t\t$input: function () {\n\t\t\treturn this.$( 'input[type=\"hidden\"]:first' );\n\t\t},\n\n\t\tvalidateAttachment: function ( attachment ) {\n\t\t\t// defaults\n\t\t\tattachment = attachment || {};\n\n\t\t\t// WP attachment\n\t\t\tif ( attachment.id !== undefined ) {\n\t\t\t\tattachment = attachment.attributes;\n\t\t\t}\n\n\t\t\t// args\n\t\t\tattachment = acf.parseArgs( attachment, {\n\t\t\t\turl: '',\n\t\t\t\talt: '',\n\t\t\t\ttitle: '',\n\t\t\t\tfilename: '',\n\t\t\t\tfilesizeHumanReadable: '',\n\t\t\t\ticon: '/wp-includes/images/media/default.png',\n\t\t\t} );\n\n\t\t\t// return\n\t\t\treturn attachment;\n\t\t},\n\n\t\trender: function ( attachment ) {\n\t\t\t// vars\n\t\t\tattachment = this.validateAttachment( attachment );\n\n\t\t\t// update image\n\t\t\tthis.$( 'img' ).attr( {\n\t\t\t\tsrc: attachment.icon,\n\t\t\t\talt: attachment.alt,\n\t\t\t\ttitle: attachment.title,\n\t\t\t} );\n\n\t\t\t// update elements\n\t\t\tthis.$( '[data-name=\"title\"]' ).text( attachment.title );\n\t\t\tthis.$( '[data-name=\"filename\"]' )\n\t\t\t\t.text( attachment.filename )\n\t\t\t\t.attr( 'href', attachment.url );\n\t\t\tthis.$( '[data-name=\"filesize\"]' ).text(\n\t\t\t\tattachment.filesizeHumanReadable\n\t\t\t);\n\n\t\t\t// vars\n\t\t\tvar val = attachment.id || '';\n\n\t\t\t// update val\n\t\t\tacf.val( this.$input(), val );\n\n\t\t\t// update class\n\t\t\tif ( val ) {\n\t\t\t\tthis.$control().addClass( 'has-value' );\n\t\t\t} else {\n\t\t\t\tthis.$control().removeClass( 'has-value' );\n\t\t\t}\n\t\t},\n\n\t\tselectAttachment: function () {\n\t\t\t// vars\n\t\t\tvar parent = this.parent();\n\t\t\tvar multiple = parent && parent.get( 'type' ) === 'repeater';\n\n\t\t\t// new frame\n\t\t\tvar frame = acf.newMediaPopup( {\n\t\t\t\tmode: 'select',\n\t\t\t\ttitle: acf.__( 'Select File' ),\n\t\t\t\tfield: this.get( 'key' ),\n\t\t\t\tmultiple: multiple,\n\t\t\t\tlibrary: this.get( 'library' ),\n\t\t\t\tallowedTypes: this.get( 'mime_types' ),\n\t\t\t\tselect: $.proxy( function ( attachment, i ) {\n\t\t\t\t\tif ( i > 0 ) {\n\t\t\t\t\t\tthis.append( attachment, parent );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.render( attachment );\n\t\t\t\t\t}\n\t\t\t\t}, this ),\n\t\t\t} );\n\t\t},\n\n\t\teditAttachment: function () {\n\t\t\t// vars\n\t\t\tvar val = this.val();\n\n\t\t\t// bail early if no val\n\t\t\tif ( ! val ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// popup\n\t\t\tvar frame = acf.newMediaPopup( {\n\t\t\t\tmode: 'edit',\n\t\t\t\ttitle: acf.__( 'Edit File' ),\n\t\t\t\tbutton: acf.__( 'Update File' ),\n\t\t\t\tattachment: val,\n\t\t\t\tfield: this.get( 'key' ),\n\t\t\t\tselect: $.proxy( function ( attachment, i ) {\n\t\t\t\t\tthis.render( attachment );\n\t\t\t\t}, this ),\n\t\t\t} );\n\t\t},\n\t} );\n\n\tacf.registerFieldType( Field );\n} )( jQuery );\n","( function ( $, undefined ) {\n\tvar Field = acf.Field.extend( {\n\t\ttype: 'google_map',\n\n\t\tmap: false,\n\n\t\twait: 'load',\n\n\t\tevents: {\n\t\t\t'click a[data-name=\"clear\"]': 'onClickClear',\n\t\t\t'click a[data-name=\"locate\"]': 'onClickLocate',\n\t\t\t'click a[data-name=\"search\"]': 'onClickSearch',\n\t\t\t'keydown .search': 'onKeydownSearch',\n\t\t\t'keyup .search': 'onKeyupSearch',\n\t\t\t'focus .search': 'onFocusSearch',\n\t\t\t'blur .search': 'onBlurSearch',\n\t\t\tshowField: 'onShow',\n\t\t},\n\n\t\t$control: function () {\n\t\t\treturn this.$( '.acf-google-map' );\n\t\t},\n\n\t\t$search: function () {\n\t\t\treturn this.$( '.search' );\n\t\t},\n\n\t\t$canvas: function () {\n\t\t\treturn this.$( '.canvas' );\n\t\t},\n\n\t\tsetState: function ( state ) {\n\t\t\t// Remove previous state classes.\n\t\t\tthis.$control().removeClass( '-value -loading -searching' );\n\n\t\t\t// Determine auto state based of current value.\n\t\t\tif ( state === 'default' ) {\n\t\t\t\tstate = this.val() ? 'value' : '';\n\t\t\t}\n\n\t\t\t// Update state class.\n\t\t\tif ( state ) {\n\t\t\t\tthis.$control().addClass( '-' + state );\n\t\t\t}\n\t\t},\n\n\t\tgetValue: function () {\n\t\t\tvar val = this.$input().val();\n\t\t\tif ( val ) {\n\t\t\t\treturn JSON.parse( val );\n\t\t\t} else {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\n\t\tsetValue: function ( val, silent ) {\n\t\t\t// Convert input value.\n\t\t\tvar valAttr = '';\n\t\t\tif ( val ) {\n\t\t\t\tvalAttr = JSON.stringify( val );\n\t\t\t}\n\n\t\t\t// Update input (with change).\n\t\t\tacf.val( this.$input(), valAttr );\n\n\t\t\t// Bail early if silent update.\n\t\t\tif ( silent ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Render.\n\t\t\tthis.renderVal( val );\n\n\t\t\t/**\n\t\t\t * Fires immediately after the value has changed.\n\t\t\t *\n\t\t\t * @date\t12/02/2014\n\t\t\t * @since\t5.0.0\n\t\t\t *\n\t\t\t * @param\tobject|string val The new value.\n\t\t\t * @param\tobject map The Google Map isntance.\n\t\t\t * @param\tobject field The field instance.\n\t\t\t */\n\t\t\tacf.doAction( 'google_map_change', val, this.map, this );\n\t\t},\n\n\t\trenderVal: function ( val ) {\n\t\t\t// Value.\n\t\t\tif ( val ) {\n\t\t\t\tthis.setState( 'value' );\n\t\t\t\tthis.$search().val( val.address );\n\t\t\t\tthis.setPosition( val.lat, val.lng );\n\n\t\t\t\t// No value.\n\t\t\t} else {\n\t\t\t\tthis.setState( '' );\n\t\t\t\tthis.$search().val( '' );\n\t\t\t\tthis.map.marker.setVisible( false );\n\t\t\t}\n\t\t},\n\n\t\tnewLatLng: function ( lat, lng ) {\n\t\t\treturn new google.maps.LatLng(\n\t\t\t\tparseFloat( lat ),\n\t\t\t\tparseFloat( lng )\n\t\t\t);\n\t\t},\n\n\t\tsetPosition: function ( lat, lng ) {\n\t\t\t// Update marker position.\n\t\t\tthis.map.marker.setPosition( {\n\t\t\t\tlat: parseFloat( lat ),\n\t\t\t\tlng: parseFloat( lng ),\n\t\t\t} );\n\n\t\t\t// Show marker.\n\t\t\tthis.map.marker.setVisible( true );\n\n\t\t\t// Center map.\n\t\t\tthis.center();\n\t\t},\n\n\t\tcenter: function () {\n\t\t\t// Find marker position.\n\t\t\tvar position = this.map.marker.getPosition();\n\t\t\tif ( position ) {\n\t\t\t\tvar lat = position.lat();\n\t\t\t\tvar lng = position.lng();\n\n\t\t\t\t// Or find default settings.\n\t\t\t} else {\n\t\t\t\tvar lat = this.get( 'lat' );\n\t\t\t\tvar lng = this.get( 'lng' );\n\t\t\t}\n\n\t\t\t// Center map.\n\t\t\tthis.map.setCenter( {\n\t\t\t\tlat: parseFloat( lat ),\n\t\t\t\tlng: parseFloat( lng ),\n\t\t\t} );\n\t\t},\n\n\t\tinitialize: function () {\n\t\t\t// Ensure Google API is loaded and then initialize map.\n\t\t\twithAPI( this.initializeMap.bind( this ) );\n\t\t},\n\n\t\tinitializeMap: function () {\n\t\t\t// Get value ignoring conditional logic status.\n\t\t\tvar val = this.getValue();\n\n\t\t\t// Construct default args.\n\t\t\tvar args = acf.parseArgs( val, {\n\t\t\t\tzoom: this.get( 'zoom' ),\n\t\t\t\tlat: this.get( 'lat' ),\n\t\t\t\tlng: this.get( 'lng' ),\n\t\t\t} );\n\n\t\t\t// Create Map.\n\t\t\tvar mapArgs = {\n\t\t\t\tscrollwheel: false,\n\t\t\t\tzoom: parseInt( args.zoom ),\n\t\t\t\tcenter: {\n\t\t\t\t\tlat: parseFloat( args.lat ),\n\t\t\t\t\tlng: parseFloat( args.lng ),\n\t\t\t\t},\n\t\t\t\tmapTypeId: google.maps.MapTypeId.ROADMAP,\n\t\t\t\tmarker: {\n\t\t\t\t\tdraggable: true,\n\t\t\t\t\traiseOnDrag: true,\n\t\t\t\t},\n\t\t\t\tautocomplete: {},\n\t\t\t};\n\t\t\tmapArgs = acf.applyFilters( 'google_map_args', mapArgs, this );\n\t\t\tvar map = new google.maps.Map( this.$canvas()[ 0 ], mapArgs );\n\n\t\t\t// Create Marker.\n\t\t\tvar markerArgs = acf.parseArgs( mapArgs.marker, {\n\t\t\t\tdraggable: true,\n\t\t\t\traiseOnDrag: true,\n\t\t\t\tmap: map,\n\t\t\t} );\n\t\t\tmarkerArgs = acf.applyFilters(\n\t\t\t\t'google_map_marker_args',\n\t\t\t\tmarkerArgs,\n\t\t\t\tthis\n\t\t\t);\n\t\t\tvar marker = new google.maps.Marker( markerArgs );\n\n\t\t\t// Maybe Create Autocomplete.\n\t\t\tvar autocomplete = false;\n\t\t\tif ( acf.isset( google, 'maps', 'places', 'Autocomplete' ) ) {\n\t\t\t\tvar autocompleteArgs = mapArgs.autocomplete || {};\n\t\t\t\tautocompleteArgs = acf.applyFilters(\n\t\t\t\t\t'google_map_autocomplete_args',\n\t\t\t\t\tautocompleteArgs,\n\t\t\t\t\tthis\n\t\t\t\t);\n\t\t\t\tautocomplete = new google.maps.places.Autocomplete(\n\t\t\t\t\tthis.$search()[ 0 ],\n\t\t\t\t\tautocompleteArgs\n\t\t\t\t);\n\t\t\t\tautocomplete.bindTo( 'bounds', map );\n\t\t\t}\n\n\t\t\t// Add map events.\n\t\t\tthis.addMapEvents( this, map, marker, autocomplete );\n\n\t\t\t// Append references.\n\t\t\tmap.acf = this;\n\t\t\tmap.marker = marker;\n\t\t\tmap.autocomplete = autocomplete;\n\t\t\tthis.map = map;\n\n\t\t\t// Set position.\n\t\t\tif ( val ) {\n\t\t\t\tthis.setPosition( val.lat, val.lng );\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Fires immediately after the Google Map has been initialized.\n\t\t\t *\n\t\t\t * @date\t12/02/2014\n\t\t\t * @since\t5.0.0\n\t\t\t *\n\t\t\t * @param\tobject map The Google Map isntance.\n\t\t\t * @param\tobject marker The Google Map marker isntance.\n\t\t\t * @param\tobject field The field instance.\n\t\t\t */\n\t\t\tacf.doAction( 'google_map_init', map, marker, this );\n\t\t},\n\n\t\taddMapEvents: function ( field, map, marker, autocomplete ) {\n\t\t\t// Click map.\n\t\t\tgoogle.maps.event.addListener( map, 'click', function ( e ) {\n\t\t\t\tvar lat = e.latLng.lat();\n\t\t\t\tvar lng = e.latLng.lng();\n\t\t\t\tfield.searchPosition( lat, lng );\n\t\t\t} );\n\n\t\t\t// Drag marker.\n\t\t\tgoogle.maps.event.addListener( marker, 'dragend', function () {\n\t\t\t\tvar lat = this.getPosition().lat();\n\t\t\t\tvar lng = this.getPosition().lng();\n\t\t\t\tfield.searchPosition( lat, lng );\n\t\t\t} );\n\n\t\t\t// Autocomplete search.\n\t\t\tif ( autocomplete ) {\n\t\t\t\tgoogle.maps.event.addListener(\n\t\t\t\t\tautocomplete,\n\t\t\t\t\t'place_changed',\n\t\t\t\t\tfunction () {\n\t\t\t\t\t\tvar place = this.getPlace();\n\t\t\t\t\t\tfield.searchPlace( place );\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Detect zoom change.\n\t\t\tgoogle.maps.event.addListener( map, 'zoom_changed', function () {\n\t\t\t\tvar val = field.val();\n\t\t\t\tif ( val ) {\n\t\t\t\t\tval.zoom = map.getZoom();\n\t\t\t\t\tfield.setValue( val, true );\n\t\t\t\t}\n\t\t\t} );\n\t\t},\n\n\t\tsearchPosition: function ( lat, lng ) {\n\t\t\t//console.log('searchPosition', lat, lng );\n\n\t\t\t// Start Loading.\n\t\t\tthis.setState( 'loading' );\n\n\t\t\t// Query Geocoder.\n\t\t\tvar latLng = { lat: lat, lng: lng };\n\t\t\tgeocoder.geocode(\n\t\t\t\t{ location: latLng },\n\t\t\t\tfunction ( results, status ) {\n\t\t\t\t\t//console.log('searchPosition', arguments );\n\n\t\t\t\t\t// End Loading.\n\t\t\t\t\tthis.setState( '' );\n\n\t\t\t\t\t// Status failure.\n\t\t\t\t\tif ( status !== 'OK' ) {\n\t\t\t\t\t\tthis.showNotice( {\n\t\t\t\t\t\t\ttext: acf\n\t\t\t\t\t\t\t\t.__( 'Location not found: %s' )\n\t\t\t\t\t\t\t\t.replace( '%s', status ),\n\t\t\t\t\t\t\ttype: 'warning',\n\t\t\t\t\t\t} );\n\n\t\t\t\t\t\t// Success.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar val = this.parseResult( results[ 0 ] );\n\n\t\t\t\t\t\t// Override lat/lng to match user defined marker location.\n\t\t\t\t\t\t// Avoids issue where marker \"snaps\" to nearest result.\n\t\t\t\t\t\tval.lat = lat;\n\t\t\t\t\t\tval.lng = lng;\n\t\t\t\t\t\tthis.val( val );\n\t\t\t\t\t}\n\t\t\t\t}.bind( this )\n\t\t\t);\n\t\t},\n\n\t\tsearchPlace: function ( place ) {\n\t\t\t//console.log('searchPlace', place );\n\n\t\t\t// Bail early if no place.\n\t\t\tif ( ! place ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Selecting from the autocomplete dropdown will return a rich PlaceResult object.\n\t\t\t// Be sure to over-write the \"formatted_address\" value with the one displayed to the user for best UX.\n\t\t\tif ( place.geometry ) {\n\t\t\t\tplace.formatted_address = this.$search().val();\n\t\t\t\tvar val = this.parseResult( place );\n\t\t\t\tthis.val( val );\n\n\t\t\t\t// Searching a custom address will return an empty PlaceResult object.\n\t\t\t} else if ( place.name ) {\n\t\t\t\tthis.searchAddress( place.name );\n\t\t\t}\n\t\t},\n\n\t\tsearchAddress: function ( address ) {\n\t\t\t//console.log('searchAddress', address );\n\n\t\t\t// Bail early if no address.\n\t\t\tif ( ! address ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Allow \"lat,lng\" search.\n\t\t\tvar latLng = address.split( ',' );\n\t\t\tif ( latLng.length == 2 ) {\n\t\t\t\tvar lat = parseFloat( latLng[ 0 ] );\n\t\t\t\tvar lng = parseFloat( latLng[ 1 ] );\n\t\t\t\tif ( lat && lng ) {\n\t\t\t\t\treturn this.searchPosition( lat, lng );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Start Loading.\n\t\t\tthis.setState( 'loading' );\n\n\t\t\t// Query Geocoder.\n\t\t\tgeocoder.geocode(\n\t\t\t\t{ address: address },\n\t\t\t\tfunction ( results, status ) {\n\t\t\t\t\t//console.log('searchPosition', arguments );\n\n\t\t\t\t\t// End Loading.\n\t\t\t\t\tthis.setState( '' );\n\n\t\t\t\t\t// Status failure.\n\t\t\t\t\tif ( status !== 'OK' ) {\n\t\t\t\t\t\tthis.showNotice( {\n\t\t\t\t\t\t\ttext: acf\n\t\t\t\t\t\t\t\t.__( 'Location not found: %s' )\n\t\t\t\t\t\t\t\t.replace( '%s', status ),\n\t\t\t\t\t\t\ttype: 'warning',\n\t\t\t\t\t\t} );\n\n\t\t\t\t\t\t// Success.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar val = this.parseResult( results[ 0 ] );\n\n\t\t\t\t\t\t// Override address data with parameter allowing custom address to be defined in search.\n\t\t\t\t\t\tval.address = address;\n\n\t\t\t\t\t\t// Update value.\n\t\t\t\t\t\tthis.val( val );\n\t\t\t\t\t}\n\t\t\t\t}.bind( this )\n\t\t\t);\n\t\t},\n\n\t\tsearchLocation: function () {\n\t\t\t//console.log('searchLocation' );\n\n\t\t\t// Check HTML5 geolocation.\n\t\t\tif ( ! navigator.geolocation ) {\n\t\t\t\treturn alert(\n\t\t\t\t\tacf.__( 'Sorry, this browser does not support geolocation' )\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Start Loading.\n\t\t\tthis.setState( 'loading' );\n\n\t\t\t// Query Geolocation.\n\t\t\tnavigator.geolocation.getCurrentPosition(\n\t\t\t\t// Success.\n\t\t\t\tfunction ( results ) {\n\t\t\t\t\t// End Loading.\n\t\t\t\t\tthis.setState( '' );\n\n\t\t\t\t\t// Search position.\n\t\t\t\t\tvar lat = results.coords.latitude;\n\t\t\t\t\tvar lng = results.coords.longitude;\n\t\t\t\t\tthis.searchPosition( lat, lng );\n\t\t\t\t}.bind( this ),\n\n\t\t\t\t// Failure.\n\t\t\t\tfunction ( error ) {\n\t\t\t\t\tthis.setState( '' );\n\t\t\t\t}.bind( this )\n\t\t\t);\n\t\t},\n\n\t\t/**\n\t\t * parseResult\n\t\t *\n\t\t * Returns location data for the given GeocoderResult object.\n\t\t *\n\t\t * @date\t15/10/19\n\t\t * @since\t5.8.6\n\t\t *\n\t\t * @param\tobject obj A GeocoderResult object.\n\t\t * @return\tobject\n\t\t */\n\t\tparseResult: function ( obj ) {\n\t\t\t// Construct basic data.\n\t\t\tvar result = {\n\t\t\t\taddress: obj.formatted_address,\n\t\t\t\tlat: obj.geometry.location.lat(),\n\t\t\t\tlng: obj.geometry.location.lng(),\n\t\t\t};\n\n\t\t\t// Add zoom level.\n\t\t\tresult.zoom = this.map.getZoom();\n\n\t\t\t// Add place ID.\n\t\t\tif ( obj.place_id ) {\n\t\t\t\tresult.place_id = obj.place_id;\n\t\t\t}\n\n\t\t\t// Add place name.\n\t\t\tif ( obj.name ) {\n\t\t\t\tresult.name = obj.name;\n\t\t\t}\n\n\t\t\t// Create search map for address component data.\n\t\t\tvar map = {\n\t\t\t\tstreet_number: [ 'street_number' ],\n\t\t\t\tstreet_name: [ 'street_address', 'route' ],\n\t\t\t\tcity: [ 'locality', 'postal_town' ],\n\t\t\t\tstate: [\n\t\t\t\t\t'administrative_area_level_1',\n\t\t\t\t\t'administrative_area_level_2',\n\t\t\t\t\t'administrative_area_level_3',\n\t\t\t\t\t'administrative_area_level_4',\n\t\t\t\t\t'administrative_area_level_5',\n\t\t\t\t],\n\t\t\t\tpost_code: [ 'postal_code' ],\n\t\t\t\tcountry: [ 'country' ],\n\t\t\t};\n\n\t\t\t// Loop over map.\n\t\t\tfor ( var k in map ) {\n\t\t\t\tvar keywords = map[ k ];\n\n\t\t\t\t// Loop over address components.\n\t\t\t\tfor ( var i = 0; i < obj.address_components.length; i++ ) {\n\t\t\t\t\tvar component = obj.address_components[ i ];\n\t\t\t\t\tvar component_type = component.types[ 0 ];\n\n\t\t\t\t\t// Look for matching component type.\n\t\t\t\t\tif ( keywords.indexOf( component_type ) !== -1 ) {\n\t\t\t\t\t\t// Append to result.\n\t\t\t\t\t\tresult[ k ] = component.long_name;\n\n\t\t\t\t\t\t// Append short version.\n\t\t\t\t\t\tif ( component.long_name !== component.short_name ) {\n\t\t\t\t\t\t\tresult[ k + '_short' ] = component.short_name;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Filters the parsed result.\n\t\t\t *\n\t\t\t * @date\t18/10/19\n\t\t\t * @since\t5.8.6\n\t\t\t *\n\t\t\t * @param\tobject result The parsed result value.\n\t\t\t * @param\tobject obj The GeocoderResult object.\n\t\t\t */\n\t\t\treturn acf.applyFilters(\n\t\t\t\t'google_map_result',\n\t\t\t\tresult,\n\t\t\t\tobj,\n\t\t\t\tthis.map,\n\t\t\t\tthis\n\t\t\t);\n\t\t},\n\n\t\tonClickClear: function () {\n\t\t\tthis.val( false );\n\t\t},\n\n\t\tonClickLocate: function () {\n\t\t\tthis.searchLocation();\n\t\t},\n\n\t\tonClickSearch: function () {\n\t\t\tthis.searchAddress( this.$search().val() );\n\t\t},\n\n\t\tonFocusSearch: function ( e, $el ) {\n\t\t\tthis.setState( 'searching' );\n\t\t},\n\n\t\tonBlurSearch: function ( e, $el ) {\n\t\t\t// Get saved address value.\n\t\t\tvar val = this.val();\n\t\t\tvar address = val ? val.address : '';\n\n\t\t\t// Remove 'is-searching' if value has not changed.\n\t\t\tif ( $el.val() === address ) {\n\t\t\t\tthis.setState( 'default' );\n\t\t\t}\n\t\t},\n\n\t\tonKeyupSearch: function ( e, $el ) {\n\t\t\t// Clear empty value.\n\t\t\tif ( ! $el.val() ) {\n\t\t\t\tthis.val( false );\n\t\t\t}\n\t\t},\n\n\t\t// Prevent form from submitting.\n\t\tonKeydownSearch: function ( e, $el ) {\n\t\t\tif ( e.which == 13 ) {\n\t\t\t\te.preventDefault();\n\t\t\t\t$el.blur();\n\t\t\t}\n\t\t},\n\n\t\t// Center map once made visible.\n\t\tonShow: function () {\n\t\t\tif ( this.map ) {\n\t\t\t\tthis.setTimeout( this.center );\n\t\t\t}\n\t\t},\n\t} );\n\n\tacf.registerFieldType( Field );\n\n\t// Vars.\n\tvar loading = false;\n\tvar geocoder = false;\n\n\t/**\n\t * withAPI\n\t *\n\t * Loads the Google Maps API library and troggers callback.\n\t *\n\t * @date\t28/3/19\n\t * @since\t5.7.14\n\t *\n\t * @param\tfunction callback The callback to excecute.\n\t * @return\tvoid\n\t */\n\n\tfunction withAPI( callback ) {\n\t\t// Check if geocoder exists.\n\t\tif ( geocoder ) {\n\t\t\treturn callback();\n\t\t}\n\n\t\t// Check if geocoder API exists.\n\t\tif ( acf.isset( window, 'google', 'maps', 'Geocoder' ) ) {\n\t\t\tgeocoder = new google.maps.Geocoder();\n\t\t\treturn callback();\n\t\t}\n\n\t\t// Geocoder will need to be loaded. Hook callback to action.\n\t\tacf.addAction( 'google_map_api_loaded', callback );\n\n\t\t// Bail early if already loading API.\n\t\tif ( loading ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// load api\n\t\tvar url = acf.get( 'google_map_api' );\n\t\tif ( url ) {\n\t\t\t// Set loading status.\n\t\t\tloading = true;\n\n\t\t\t// Load API\n\t\t\t$.ajax( {\n\t\t\t\turl: url,\n\t\t\t\tdataType: 'script',\n\t\t\t\tcache: true,\n\t\t\t\tsuccess: function () {\n\t\t\t\t\tgeocoder = new google.maps.Geocoder();\n\t\t\t\t\tacf.doAction( 'google_map_api_loaded' );\n\t\t\t\t},\n\t\t\t} );\n\t\t}\n\t}\n} )( jQuery );\n","( function ( $, undefined ) {\n\tvar Field = acf.Field.extend( {\n\t\ttype: 'image',\n\n\t\t$control: function () {\n\t\t\treturn this.$( '.acf-image-uploader' );\n\t\t},\n\n\t\t$input: function () {\n\t\t\treturn this.$( 'input[type=\"hidden\"]:first' );\n\t\t},\n\n\t\tevents: {\n\t\t\t'click a[data-name=\"add\"]': 'onClickAdd',\n\t\t\t'click a[data-name=\"edit\"]': 'onClickEdit',\n\t\t\t'click a[data-name=\"remove\"]': 'onClickRemove',\n\t\t\t'change input[type=\"file\"]': 'onChange',\n\t\t},\n\n\t\tinitialize: function () {\n\t\t\t// add attribute to form\n\t\t\tif ( this.get( 'uploader' ) === 'basic' ) {\n\t\t\t\tthis.$el\n\t\t\t\t\t.closest( 'form' )\n\t\t\t\t\t.attr( 'enctype', 'multipart/form-data' );\n\t\t\t}\n\t\t},\n\n\t\tvalidateAttachment: function ( attachment ) {\n\t\t\t// Use WP attachment attributes when available.\n\t\t\tif ( attachment && attachment.attributes ) {\n\t\t\t\tattachment = attachment.attributes;\n\t\t\t}\n\n\t\t\t// Apply defaults.\n\t\t\tattachment = acf.parseArgs( attachment, {\n\t\t\t\tid: 0,\n\t\t\t\turl: '',\n\t\t\t\talt: '',\n\t\t\t\ttitle: '',\n\t\t\t\tcaption: '',\n\t\t\t\tdescription: '',\n\t\t\t\twidth: 0,\n\t\t\t\theight: 0,\n\t\t\t} );\n\n\t\t\t// Override with \"preview size\".\n\t\t\tvar size = acf.isget(\n\t\t\t\tattachment,\n\t\t\t\t'sizes',\n\t\t\t\tthis.get( 'preview_size' )\n\t\t\t);\n\t\t\tif ( size ) {\n\t\t\t\tattachment.url = size.url;\n\t\t\t\tattachment.width = size.width;\n\t\t\t\tattachment.height = size.height;\n\t\t\t}\n\n\t\t\t// Return.\n\t\t\treturn attachment;\n\t\t},\n\n\t\trender: function ( attachment ) {\n\t\t\tattachment = this.validateAttachment( attachment );\n\n\t\t\t// Update DOM.\n\t\t\tthis.$( 'img' ).attr( {\n\t\t\t\tsrc: attachment.url,\n\t\t\t\talt: attachment.alt,\n\t\t\t} );\n\t\t\tif ( attachment.id ) {\n\t\t\t\tthis.val( attachment.id );\n\t\t\t\tthis.$control().addClass( 'has-value' );\n\t\t\t} else {\n\t\t\t\tthis.val( '' );\n\t\t\t\tthis.$control().removeClass( 'has-value' );\n\t\t\t}\n\t\t},\n\n\t\t// create a new repeater row and render value\n\t\tappend: function ( attachment, parent ) {\n\t\t\t// create function to find next available field within parent\n\t\t\tvar getNext = function ( field, parent ) {\n\t\t\t\t// find existing file fields within parent\n\t\t\t\tvar fields = acf.getFields( {\n\t\t\t\t\tkey: field.get( 'key' ),\n\t\t\t\t\tparent: parent.$el,\n\t\t\t\t} );\n\n\t\t\t\t// find the first field with no value\n\t\t\t\tfor ( var i = 0; i < fields.length; i++ ) {\n\t\t\t\t\tif ( ! fields[ i ].val() ) {\n\t\t\t\t\t\treturn fields[ i ];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// return\n\t\t\t\treturn false;\n\t\t\t};\n\n\t\t\t// find existing file fields within parent\n\t\t\tvar field = getNext( this, parent );\n\n\t\t\t// add new row if no available field\n\t\t\tif ( ! field ) {\n\t\t\t\tparent.$( '.acf-button:last' ).trigger( 'click' );\n\t\t\t\tfield = getNext( this, parent );\n\t\t\t}\n\n\t\t\t// render\n\t\t\tif ( field ) {\n\t\t\t\tfield.render( attachment );\n\t\t\t}\n\t\t},\n\n\t\tselectAttachment: function () {\n\t\t\t// vars\n\t\t\tvar parent = this.parent();\n\t\t\tvar multiple = parent && parent.get( 'type' ) === 'repeater';\n\n\t\t\t// new frame\n\t\t\tvar frame = acf.newMediaPopup( {\n\t\t\t\tmode: 'select',\n\t\t\t\ttype: 'image',\n\t\t\t\ttitle: acf.__( 'Select Image' ),\n\t\t\t\tfield: this.get( 'key' ),\n\t\t\t\tmultiple: multiple,\n\t\t\t\tlibrary: this.get( 'library' ),\n\t\t\t\tallowedTypes: this.get( 'mime_types' ),\n\t\t\t\tselect: $.proxy( function ( attachment, i ) {\n\t\t\t\t\tif ( i > 0 ) {\n\t\t\t\t\t\tthis.append( attachment, parent );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.render( attachment );\n\t\t\t\t\t}\n\t\t\t\t}, this ),\n\t\t\t} );\n\t\t},\n\n\t\teditAttachment: function () {\n\t\t\t// vars\n\t\t\tvar val = this.val();\n\n\t\t\t// bail early if no val\n\t\t\tif ( ! val ) return;\n\n\t\t\t// popup\n\t\t\tvar frame = acf.newMediaPopup( {\n\t\t\t\tmode: 'edit',\n\t\t\t\ttitle: acf.__( 'Edit Image' ),\n\t\t\t\tbutton: acf.__( 'Update Image' ),\n\t\t\t\tattachment: val,\n\t\t\t\tfield: this.get( 'key' ),\n\t\t\t\tselect: $.proxy( function ( attachment, i ) {\n\t\t\t\t\tthis.render( attachment );\n\t\t\t\t}, this ),\n\t\t\t} );\n\t\t},\n\n\t\tremoveAttachment: function () {\n\t\t\tthis.render( false );\n\t\t},\n\n\t\tonClickAdd: function ( e, $el ) {\n\t\t\tthis.selectAttachment();\n\t\t},\n\n\t\tonClickEdit: function ( e, $el ) {\n\t\t\tthis.editAttachment();\n\t\t},\n\n\t\tonClickRemove: function ( e, $el ) {\n\t\t\tthis.removeAttachment();\n\t\t},\n\n\t\tonChange: function ( e, $el ) {\n\t\t\tvar $hiddenInput = this.$input();\n\n\t\t\tif ( ! $el.val() ) {\n\t\t\t\t$hiddenInput.val( '' );\n\t\t\t}\n\n\t\t\tacf.getFileInputData( $el, function ( data ) {\n\t\t\t\t$hiddenInput.val( $.param( data ) );\n\t\t\t} );\n\t\t},\n\t} );\n\n\tacf.registerFieldType( Field );\n} )( jQuery );\n","( function ( $, undefined ) {\n\tvar Field = acf.Field.extend( {\n\t\ttype: 'link',\n\n\t\tevents: {\n\t\t\t'click a[data-name=\"add\"]': 'onClickEdit',\n\t\t\t'click a[data-name=\"edit\"]': 'onClickEdit',\n\t\t\t'click a[data-name=\"remove\"]': 'onClickRemove',\n\t\t\t'change .link-node': 'onChange',\n\t\t},\n\n\t\t$control: function () {\n\t\t\treturn this.$( '.acf-link' );\n\t\t},\n\n\t\t$node: function () {\n\t\t\treturn this.$( '.link-node' );\n\t\t},\n\n\t\tgetValue: function () {\n\t\t\t// vars\n\t\t\tvar $node = this.$node();\n\n\t\t\t// return false if empty\n\t\t\tif ( ! $node.attr( 'href' ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// return\n\t\t\treturn {\n\t\t\t\ttitle: $node.html(),\n\t\t\t\turl: $node.attr( 'href' ),\n\t\t\t\ttarget: $node.attr( 'target' ),\n\t\t\t};\n\t\t},\n\n\t\tsetValue: function ( val ) {\n\t\t\t// default\n\t\t\tval = acf.parseArgs( val, {\n\t\t\t\ttitle: '',\n\t\t\t\turl: '',\n\t\t\t\ttarget: '',\n\t\t\t} );\n\n\t\t\t// vars\n\t\t\tvar $div = this.$control();\n\t\t\tvar $node = this.$node();\n\n\t\t\t// remove class\n\t\t\t$div.removeClass( '-value -external' );\n\n\t\t\t// add class\n\t\t\tif ( val.url ) $div.addClass( '-value' );\n\t\t\tif ( val.target === '_blank' ) $div.addClass( '-external' );\n\n\t\t\t// update text\n\t\t\tthis.$( '.link-title' ).html( val.title );\n\t\t\tthis.$( '.link-url' ).attr( 'href', val.url ).html( val.url );\n\n\t\t\t// update node\n\t\t\t$node.html( val.title );\n\t\t\t$node.attr( 'href', val.url );\n\t\t\t$node.attr( 'target', val.target );\n\n\t\t\t// update inputs\n\t\t\tthis.$( '.input-title' ).val( val.title );\n\t\t\tthis.$( '.input-target' ).val( val.target );\n\t\t\tthis.$( '.input-url' ).val( val.url ).trigger( 'change' );\n\t\t},\n\n\t\tonClickEdit: function ( e, $el ) {\n\t\t\tacf.wpLink.open( this.$node() );\n\t\t},\n\n\t\tonClickRemove: function ( e, $el ) {\n\t\t\tthis.setValue( false );\n\t\t},\n\n\t\tonChange: function ( e, $el ) {\n\t\t\t// get the changed value\n\t\t\tvar val = this.getValue();\n\n\t\t\t// update inputs\n\t\t\tthis.setValue( val );\n\t\t},\n\t} );\n\n\tacf.registerFieldType( Field );\n\n\t// manager\n\tacf.wpLink = new acf.Model( {\n\t\tgetNodeValue: function () {\n\t\t\tvar $node = this.get( 'node' );\n\t\t\treturn {\n\t\t\t\ttitle: acf.decode( $node.html() ),\n\t\t\t\turl: $node.attr( 'href' ),\n\t\t\t\ttarget: $node.attr( 'target' ),\n\t\t\t};\n\t\t},\n\n\t\tsetNodeValue: function ( val ) {\n\t\t\tvar $node = this.get( 'node' );\n\t\t\t$node.text( val.title );\n\t\t\t$node.attr( 'href', val.url );\n\t\t\t$node.attr( 'target', val.target );\n\t\t\t$node.trigger( 'change' );\n\t\t},\n\n\t\tgetInputValue: function () {\n\t\t\treturn {\n\t\t\t\ttitle: $( '#wp-link-text' ).val(),\n\t\t\t\turl: $( '#wp-link-url' ).val(),\n\t\t\t\ttarget: $( '#wp-link-target' ).prop( 'checked' )\n\t\t\t\t\t? '_blank'\n\t\t\t\t\t: '',\n\t\t\t};\n\t\t},\n\n\t\tsetInputValue: function ( val ) {\n\t\t\t$( '#wp-link-text' ).val( val.title );\n\t\t\t$( '#wp-link-url' ).val( val.url );\n\t\t\t$( '#wp-link-target' ).prop( 'checked', val.target === '_blank' );\n\t\t},\n\n\t\topen: function ( $node ) {\n\t\t\t// add events\n\t\t\tthis.on( 'wplink-open', 'onOpen' );\n\t\t\tthis.on( 'wplink-close', 'onClose' );\n\n\t\t\t// set node\n\t\t\tthis.set( 'node', $node );\n\n\t\t\t// create textarea\n\t\t\tvar $textarea = $(\n\t\t\t\t''\n\t\t\t);\n\t\t\t$( 'body' ).append( $textarea );\n\n\t\t\t// vars\n\t\t\tvar val = this.getNodeValue();\n\n\t\t\t// open popup\n\t\t\twpLink.open( 'acf-link-textarea', val.url, val.title, null );\n\t\t},\n\n\t\tonOpen: function () {\n\t\t\t// always show title (WP will hide title if empty)\n\t\t\t$( '#wp-link-wrap' ).addClass( 'has-text-field' );\n\n\t\t\t// set inputs\n\t\t\tvar val = this.getNodeValue();\n\t\t\tthis.setInputValue( val );\n\n\t\t\t// Update button text.\n\t\t\tif ( val.url && wpLinkL10n ) {\n\t\t\t\t$( '#wp-link-submit' ).val( wpLinkL10n.update );\n\t\t\t}\n\t\t},\n\n\t\tclose: function () {\n\t\t\twpLink.close();\n\t\t},\n\n\t\tonClose: function () {\n\t\t\t// Bail early if no node.\n\t\t\t// Needed due to WP triggering this event twice.\n\t\t\tif ( ! this.has( 'node' ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Determine context.\n\t\t\tvar $submit = $( '#wp-link-submit' );\n\t\t\tvar isSubmit = $submit.is( ':hover' ) || $submit.is( ':focus' );\n\n\t\t\t// Set value\n\t\t\tif ( isSubmit ) {\n\t\t\t\tvar val = this.getInputValue();\n\t\t\t\tthis.setNodeValue( val );\n\t\t\t}\n\n\t\t\t// Cleanup.\n\t\t\tthis.off( 'wplink-open' );\n\t\t\tthis.off( 'wplink-close' );\n\t\t\t$( '#acf-link-textarea' ).remove();\n\t\t\tthis.set( 'node', null );\n\t\t},\n\t} );\n} )( jQuery );\n","( function ( $, undefined ) {\n\tvar Field = acf.Field.extend( {\n\t\ttype: 'oembed',\n\n\t\tevents: {\n\t\t\t'click [data-name=\"clear-button\"]': 'onClickClear',\n\t\t\t'keypress .input-search': 'onKeypressSearch',\n\t\t\t'keyup .input-search': 'onKeyupSearch',\n\t\t\t'change .input-search': 'onChangeSearch',\n\t\t},\n\n\t\t$control: function () {\n\t\t\treturn this.$( '.acf-oembed' );\n\t\t},\n\n\t\t$input: function () {\n\t\t\treturn this.$( '.input-value' );\n\t\t},\n\n\t\t$search: function () {\n\t\t\treturn this.$( '.input-search' );\n\t\t},\n\n\t\tgetValue: function () {\n\t\t\treturn this.$input().val();\n\t\t},\n\n\t\tgetSearchVal: function () {\n\t\t\treturn this.$search().val();\n\t\t},\n\n\t\tsetValue: function ( val ) {\n\t\t\t// class\n\t\t\tif ( val ) {\n\t\t\t\tthis.$control().addClass( 'has-value' );\n\t\t\t} else {\n\t\t\t\tthis.$control().removeClass( 'has-value' );\n\t\t\t}\n\n\t\t\tacf.val( this.$input(), val );\n\t\t},\n\n\t\tshowLoading: function ( show ) {\n\t\t\tacf.showLoading( this.$( '.canvas' ) );\n\t\t},\n\n\t\thideLoading: function () {\n\t\t\tacf.hideLoading( this.$( '.canvas' ) );\n\t\t},\n\n\t\tmaybeSearch: function () {\n\t\t\t// vars\n\t\t\tvar prevUrl = this.val();\n\t\t\tvar url = this.getSearchVal();\n\n\t\t\t// no value\n\t\t\tif ( ! url ) {\n\t\t\t\treturn this.clear();\n\t\t\t}\n\n\t\t\t// fix missing 'http://' - causes the oembed code to error and fail\n\t\t\tif ( url.substr( 0, 4 ) != 'http' ) {\n\t\t\t\turl = 'http://' + url;\n\t\t\t}\n\n\t\t\t// bail early if no change\n\t\t\tif ( url === prevUrl ) return;\n\n\t\t\t// clear existing timeout\n\t\t\tvar timeout = this.get( 'timeout' );\n\t\t\tif ( timeout ) {\n\t\t\t\tclearTimeout( timeout );\n\t\t\t}\n\n\t\t\t// set new timeout\n\t\t\tvar callback = $.proxy( this.search, this, url );\n\t\t\tthis.set( 'timeout', setTimeout( callback, 300 ) );\n\t\t},\n\n\t\tsearch: function ( url ) {\n\t\t\t// ajax\n\t\t\tvar ajaxData = {\n\t\t\t\taction: 'acf/fields/oembed/search',\n\t\t\t\ts: url,\n\t\t\t\tfield_key: this.get( 'key' ),\n\t\t\t};\n\n\t\t\t// clear existing timeout\n\t\t\tvar xhr = this.get( 'xhr' );\n\t\t\tif ( xhr ) {\n\t\t\t\txhr.abort();\n\t\t\t}\n\n\t\t\t// loading\n\t\t\tthis.showLoading();\n\n\t\t\t// query\n\t\t\tvar xhr = $.ajax( {\n\t\t\t\turl: acf.get( 'ajaxurl' ),\n\t\t\t\tdata: acf.prepareForAjax( ajaxData ),\n\t\t\t\ttype: 'post',\n\t\t\t\tdataType: 'json',\n\t\t\t\tcontext: this,\n\t\t\t\tsuccess: function ( json ) {\n\t\t\t\t\t// error\n\t\t\t\t\tif ( ! json || ! json.html ) {\n\t\t\t\t\t\tjson = {\n\t\t\t\t\t\t\turl: false,\n\t\t\t\t\t\t\thtml: '',\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\t// update vars\n\t\t\t\t\tthis.val( json.url );\n\t\t\t\t\tthis.$( '.canvas-media' ).html( json.html );\n\t\t\t\t},\n\t\t\t\tcomplete: function () {\n\t\t\t\t\tthis.hideLoading();\n\t\t\t\t},\n\t\t\t} );\n\n\t\t\tthis.set( 'xhr', xhr );\n\t\t},\n\n\t\tclear: function () {\n\t\t\tthis.val( '' );\n\t\t\tthis.$search().val( '' );\n\t\t\tthis.$( '.canvas-media' ).html( '' );\n\t\t},\n\n\t\tonClickClear: function ( e, $el ) {\n\t\t\tthis.clear();\n\t\t},\n\n\t\tonKeypressSearch: function ( e, $el ) {\n\t\t\tif ( e.which == 13 ) {\n\t\t\t\te.preventDefault();\n\t\t\t\tthis.maybeSearch();\n\t\t\t}\n\t\t},\n\n\t\tonKeyupSearch: function ( e, $el ) {\n\t\t\tif ( $el.val() ) {\n\t\t\t\tthis.maybeSearch();\n\t\t\t}\n\t\t},\n\n\t\tonChangeSearch: function ( e, $el ) {\n\t\t\tthis.maybeSearch();\n\t\t},\n\t} );\n\n\tacf.registerFieldType( Field );\n} )( jQuery );\n","( function ( $, undefined ) {\n\tvar Field = acf.models.SelectField.extend( {\n\t\ttype: 'page_link',\n\t} );\n\n\tacf.registerFieldType( Field );\n} )( jQuery );\n","( function ( $, undefined ) {\n\tvar Field = acf.models.SelectField.extend( {\n\t\ttype: 'post_object',\n\t} );\n\n\tacf.registerFieldType( Field );\n} )( jQuery );\n","( function ( $, undefined ) {\n\tvar Field = acf.Field.extend( {\n\t\ttype: 'radio',\n\n\t\tevents: {\n\t\t\t'click input[type=\"radio\"]': 'onClick',\n\t\t},\n\n\t\t$control: function () {\n\t\t\treturn this.$( '.acf-radio-list' );\n\t\t},\n\n\t\t$input: function () {\n\t\t\treturn this.$( 'input:checked' );\n\t\t},\n\n\t\t$inputText: function () {\n\t\t\treturn this.$( 'input[type=\"text\"]' );\n\t\t},\n\n\t\tgetValue: function () {\n\t\t\tvar val = this.$input().val();\n\t\t\tif ( val === 'other' && this.get( 'other_choice' ) ) {\n\t\t\t\tval = this.$inputText().val();\n\t\t\t}\n\t\t\treturn val;\n\t\t},\n\n\t\tonClick: function ( e, $el ) {\n\t\t\t// vars\n\t\t\tvar $label = $el.parent( 'label' );\n\t\t\tvar selected = $label.hasClass( 'selected' );\n\t\t\tvar val = $el.val();\n\n\t\t\t// remove previous selected\n\t\t\tthis.$( '.selected' ).removeClass( 'selected' );\n\n\t\t\t// add active class\n\t\t\t$label.addClass( 'selected' );\n\n\t\t\t// allow null\n\t\t\tif ( this.get( 'allow_null' ) && selected ) {\n\t\t\t\t$label.removeClass( 'selected' );\n\t\t\t\t$el.prop( 'checked', false ).trigger( 'change' );\n\t\t\t\tval = false;\n\t\t\t}\n\n\t\t\t// other\n\t\t\tif ( this.get( 'other_choice' ) ) {\n\t\t\t\t// enable\n\t\t\t\tif ( val === 'other' ) {\n\t\t\t\t\tthis.$inputText().prop( 'disabled', false );\n\n\t\t\t\t\t// disable\n\t\t\t\t} else {\n\t\t\t\t\tthis.$inputText().prop( 'disabled', true );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t} );\n\n\tacf.registerFieldType( Field );\n} )( jQuery );\n","( function ( $, undefined ) {\n\tvar Field = acf.Field.extend( {\n\t\ttype: 'range',\n\n\t\tevents: {\n\t\t\t'input input[type=\"range\"]': 'onChange',\n\t\t\t'change input': 'onChange',\n\t\t},\n\n\t\t$input: function () {\n\t\t\treturn this.$( 'input[type=\"range\"]' );\n\t\t},\n\n\t\t$inputAlt: function () {\n\t\t\treturn this.$( 'input[type=\"number\"]' );\n\t\t},\n\n\t\tsetValue: function ( val ) {\n\t\t\tthis.busy = true;\n\n\t\t\t// Update range input (with change).\n\t\t\tacf.val( this.$input(), val );\n\n\t\t\t// Update alt input (without change).\n\t\t\t// Read in input value to inherit min/max validation.\n\t\t\tacf.val( this.$inputAlt(), this.$input().val(), true );\n\n\t\t\tthis.busy = false;\n\t\t},\n\n\t\tonChange: function ( e, $el ) {\n\t\t\tif ( ! this.busy ) {\n\t\t\t\tthis.setValue( $el.val() );\n\t\t\t}\n\t\t},\n\t} );\n\n\tacf.registerFieldType( Field );\n} )( jQuery );\n","( function ( $, undefined ) {\n\tvar Field = acf.Field.extend( {\n\t\ttype: 'relationship',\n\n\t\tevents: {\n\t\t\t'keypress [data-filter]': 'onKeypressFilter',\n\t\t\t'change [data-filter]': 'onChangeFilter',\n\t\t\t'keyup [data-filter]': 'onChangeFilter',\n\t\t\t'click .choices-list .acf-rel-item': 'onClickAdd',\n\t\t\t'keypress .choices-list .acf-rel-item': 'onKeypressFilter',\n\t\t\t'keypress .values-list .acf-rel-item': 'onKeypressFilter',\n\t\t\t'click [data-name=\"remove_item\"]': 'onClickRemove',\n\t\t},\n\n\t\t$control: function () {\n\t\t\treturn this.$( '.acf-relationship' );\n\t\t},\n\n\t\t$list: function ( list ) {\n\t\t\treturn this.$( '.' + list + '-list' );\n\t\t},\n\n\t\t$listItems: function ( list ) {\n\t\t\treturn this.$list( list ).find( '.acf-rel-item' );\n\t\t},\n\n\t\t$listItem: function ( list, id ) {\n\t\t\treturn this.$list( list ).find(\n\t\t\t\t'.acf-rel-item[data-id=\"' + id + '\"]'\n\t\t\t);\n\t\t},\n\n\t\tgetValue: function () {\n\t\t\tvar val = [];\n\t\t\tthis.$listItems( 'values' ).each( function () {\n\t\t\t\tval.push( $( this ).data( 'id' ) );\n\t\t\t} );\n\t\t\treturn val.length ? val : false;\n\t\t},\n\n\t\tnewChoice: function ( props ) {\n\t\t\treturn [\n\t\t\t\t'
        • ',\n\t\t\t\t'' +\n\t\t\t\t\tprops.text +\n\t\t\t\t\t'',\n\t\t\t\t'
        • ',\n\t\t\t].join( '' );\n\t\t},\n\n\t\tnewValue: function ( props ) {\n\t\t\treturn [\n\t\t\t\t'
        • ',\n\t\t\t\t'',\n\t\t\t\t'' +\n\t\t\t\t\tprops.text,\n\t\t\t\t'',\n\t\t\t\t'',\n\t\t\t\t'
        • ',\n\t\t\t].join( '' );\n\t\t},\n\n\t\tinitialize: function () {\n\t\t\t// Delay initialization until \"interacted with\" or \"in view\".\n\t\t\tvar delayed = this.proxy(\n\t\t\t\tacf.once( function () {\n\t\t\t\t\t// Add sortable.\n\t\t\t\t\tthis.$list( 'values' ).sortable( {\n\t\t\t\t\t\titems: 'li',\n\t\t\t\t\t\tforceHelperSize: true,\n\t\t\t\t\t\tforcePlaceholderSize: true,\n\t\t\t\t\t\tscroll: true,\n\t\t\t\t\t\tupdate: this.proxy( function () {\n\t\t\t\t\t\t\tthis.$input().trigger( 'change' );\n\t\t\t\t\t\t} ),\n\t\t\t\t\t} );\n\n\t\t\t\t\t// Avoid browser remembering old scroll position and add event.\n\t\t\t\t\tthis.$list( 'choices' )\n\t\t\t\t\t\t.scrollTop( 0 )\n\t\t\t\t\t\t.on( 'scroll', this.proxy( this.onScrollChoices ) );\n\n\t\t\t\t\t// Fetch choices.\n\t\t\t\t\tthis.fetch();\n\t\t\t\t} )\n\t\t\t);\n\n\t\t\t// Bind \"interacted with\".\n\t\t\tthis.$el.one( 'mouseover', delayed );\n\t\t\tthis.$el.one( 'focus', 'input', delayed );\n\n\t\t\t// Bind \"in view\".\n\t\t\tacf.onceInView( this.$el, delayed );\n\t\t},\n\n\t\tonScrollChoices: function ( e ) {\n\t\t\t// bail early if no more results\n\t\t\tif ( this.get( 'loading' ) || ! this.get( 'more' ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Scrolled to bottom\n\t\t\tvar $list = this.$list( 'choices' );\n\t\t\tvar scrollTop = Math.ceil( $list.scrollTop() );\n\t\t\tvar scrollHeight = Math.ceil( $list[ 0 ].scrollHeight );\n\t\t\tvar innerHeight = Math.ceil( $list.innerHeight() );\n\t\t\tvar paged = this.get( 'paged' ) || 1;\n\t\t\tif ( scrollTop + innerHeight >= scrollHeight ) {\n\t\t\t\t// update paged\n\t\t\t\tthis.set( 'paged', paged + 1 );\n\n\t\t\t\t// fetch\n\t\t\t\tthis.fetch();\n\t\t\t}\n\t\t},\n\n\t\tonKeypressFilter: function ( e, $el ) {\n\t\t\t// Receive enter key when selecting relationship items.\n\t\t\tif ( $el.hasClass( 'acf-rel-item-add' ) && e.which == 13 ) {\n\t\t\t\tthis.onClickAdd(e, $el);\n\t\t\t}\n\t\t\t// Receive enter key when removing relationship items.\n\t\t\tif ( $el.hasClass( 'acf-rel-item-remove' ) && e.which == 13 ) {\n\t\t\t\tthis.onClickRemove(e, $el);\n\t\t\t}\n\t\t\t// don't submit form\n\t\t\tif ( e.which == 13 ) {\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t},\n\n\t\tonChangeFilter: function ( e, $el ) {\n\t\t\t// vars\n\t\t\tvar val = $el.val();\n\t\t\tvar filter = $el.data( 'filter' );\n\n\t\t\t// Bail early if filter has not changed\n\t\t\tif ( this.get( filter ) === val ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// update attr\n\t\t\tthis.set( filter, val );\n\n\t\t\t// reset paged\n\t\t\tthis.set( 'paged', 1 );\n\n\t\t\t// fetch\n\t\t\tif ( $el.is( 'select' ) ) {\n\t\t\t\tthis.fetch();\n\n\t\t\t\t// search must go through timeout\n\t\t\t} else {\n\t\t\t\tthis.maybeFetch();\n\t\t\t}\n\t\t},\n\n\t\tonClickAdd: function ( e, $el ) {\n\t\t\t// vars\n\t\t\tvar val = this.val();\n\t\t\tvar max = parseInt( this.get( 'max' ) );\n\n\t\t\t// can be added?\n\t\t\tif ( $el.hasClass( 'disabled' ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// validate\n\t\t\tif ( max > 0 && val && val.length >= max ) {\n\t\t\t\t// add notice\n\t\t\t\tthis.showNotice( {\n\t\t\t\t\ttext: acf\n\t\t\t\t\t\t.__( 'Maximum values reached ( {max} values )' )\n\t\t\t\t\t\t.replace( '{max}', max ),\n\t\t\t\t\ttype: 'warning',\n\t\t\t\t} );\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// disable\n\t\t\t$el.addClass( 'disabled' );\n\n\t\t\t// add\n\t\t\tvar html = this.newValue( {\n\t\t\t\tid: $el.data( 'id' ),\n\t\t\t\ttext: $el.html(),\n\t\t\t} );\n\t\t\tthis.$list( 'values' ).append( html );\n\n\t\t\t// trigger change\n\t\t\tthis.$input().trigger( 'change' );\n\t\t},\n\n\t\tonClickRemove: function ( e, $el ) {\n\t\t\t// Prevent default here because generic handler wont be triggered.\n\t\t\te.preventDefault();\n\n\t\t\tlet $span;\n\t\t\t// Behavior if triggered from tabbed event.\n\t\t\tif ( $el.hasClass( 'acf-rel-item-remove' )) {\n\t\t\t\t$span = $el;\n\t\t\t} else {\n\t\t\t\t// Behavior if triggered through click event.\n\t\t\t\t$span = $el.parent();\n\t\t\t}\n\n\t\t\t// vars\n\t\t\tconst $li = $span.parent();\n\t\t\tconst id = $span.data( 'id' );\n\n\t\t\t// remove value\n\t\t\t$li.remove();\n\n\t\t\t// show choice\n\t\t\tthis.$listItem( 'choices', id ).removeClass( 'disabled' );\n\n\t\t\t// trigger change\n\t\t\tthis.$input().trigger( 'change' );\n\t\t},\n\n\t\tmaybeFetch: function () {\n\t\t\t// vars\n\t\t\tvar timeout = this.get( 'timeout' );\n\n\t\t\t// abort timeout\n\t\t\tif ( timeout ) {\n\t\t\t\tclearTimeout( timeout );\n\t\t\t}\n\n\t\t\t// fetch\n\t\t\ttimeout = this.setTimeout( this.fetch, 300 );\n\t\t\tthis.set( 'timeout', timeout );\n\t\t},\n\n\t\tgetAjaxData: function () {\n\t\t\t// load data based on element attributes\n\t\t\tvar ajaxData = this.$control().data();\n\t\t\tfor ( var name in ajaxData ) {\n\t\t\t\tajaxData[ name ] = this.get( name );\n\t\t\t}\n\n\t\t\t// extra\n\t\t\tajaxData.action = 'acf/fields/relationship/query';\n\t\t\tajaxData.field_key = this.get( 'key' );\n\n\t\t\t// Filter.\n\t\t\tajaxData = acf.applyFilters(\n\t\t\t\t'relationship_ajax_data',\n\t\t\t\tajaxData,\n\t\t\t\tthis\n\t\t\t);\n\n\t\t\t// return\n\t\t\treturn ajaxData;\n\t\t},\n\n\t\tfetch: function () {\n\t\t\t// abort XHR if this field is already loading AJAX data\n\t\t\tvar xhr = this.get( 'xhr' );\n\t\t\tif ( xhr ) {\n\t\t\t\txhr.abort();\n\t\t\t}\n\n\t\t\t// add to this.o\n\t\t\tvar ajaxData = this.getAjaxData();\n\n\t\t\t// clear html if is new query\n\t\t\tvar $choiceslist = this.$list( 'choices' );\n\t\t\tif ( ajaxData.paged == 1 ) {\n\t\t\t\t$choiceslist.html( '' );\n\t\t\t}\n\n\t\t\t// loading\n\t\t\tvar $loading = $(\n\t\t\t\t'
        • ' +\n\t\t\t\t\tacf.__( 'Loading' ) +\n\t\t\t\t\t'
        • '\n\t\t\t);\n\t\t\t$choiceslist.append( $loading );\n\t\t\tthis.set( 'loading', true );\n\n\t\t\t// callback\n\t\t\tvar onComplete = function () {\n\t\t\t\tthis.set( 'loading', false );\n\t\t\t\t$loading.remove();\n\t\t\t};\n\n\t\t\tvar onSuccess = function ( json ) {\n\t\t\t\t// no results\n\t\t\t\tif ( ! json || ! json.results || ! json.results.length ) {\n\t\t\t\t\t// prevent pagination\n\t\t\t\t\tthis.set( 'more', false );\n\n\t\t\t\t\t// add message\n\t\t\t\t\tif ( this.get( 'paged' ) == 1 ) {\n\t\t\t\t\t\tthis.$list( 'choices' ).append(\n\t\t\t\t\t\t\t'
        • ' + acf.__( 'No matches found' ) + '
        • '\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\t// return\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// set more (allows pagination scroll)\n\t\t\t\tthis.set( 'more', json.more );\n\n\t\t\t\t// get new results\n\t\t\t\tvar html = this.walkChoices( json.results );\n\t\t\t\tvar $html = $( html );\n\n\t\t\t\t// apply .disabled to left li's\n\t\t\t\tvar val = this.val();\n\t\t\t\tif ( val && val.length ) {\n\t\t\t\t\tval.map( function ( id ) {\n\t\t\t\t\t\t$html\n\t\t\t\t\t\t\t.find( '.acf-rel-item[data-id=\"' + id + '\"]' )\n\t\t\t\t\t\t\t.addClass( 'disabled' );\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\t// append\n\t\t\t\t$choiceslist.append( $html );\n\n\t\t\t\t// merge together groups\n\t\t\t\tvar $prevLabel = false;\n\t\t\t\tvar $prevList = false;\n\n\t\t\t\t$choiceslist.find( '.acf-rel-label' ).each( function () {\n\t\t\t\t\tvar $label = $( this );\n\t\t\t\t\tvar $list = $label.siblings( 'ul' );\n\n\t\t\t\t\tif ( $prevLabel && $prevLabel.text() == $label.text() ) {\n\t\t\t\t\t\t$prevList.append( $list.children() );\n\t\t\t\t\t\t$( this ).parent().remove();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t// update vars\n\t\t\t\t\t$prevLabel = $label;\n\t\t\t\t\t$prevList = $list;\n\t\t\t\t} );\n\t\t\t};\n\n\t\t\t// get results\n\t\t\tvar xhr = $.ajax( {\n\t\t\t\turl: acf.get( 'ajaxurl' ),\n\t\t\t\tdataType: 'json',\n\t\t\t\ttype: 'post',\n\t\t\t\tdata: acf.prepareForAjax( ajaxData ),\n\t\t\t\tcontext: this,\n\t\t\t\tsuccess: onSuccess,\n\t\t\t\tcomplete: onComplete,\n\t\t\t} );\n\n\t\t\t// set\n\t\t\tthis.set( 'xhr', xhr );\n\t\t},\n\n\t\twalkChoices: function ( data ) {\n\t\t\t// walker\n\t\t\tvar walk = function ( data ) {\n\t\t\t\t// vars\n\t\t\t\tvar html = '';\n\n\t\t\t\t// is array\n\t\t\t\tif ( $.isArray( data ) ) {\n\t\t\t\t\tdata.map( function ( item ) {\n\t\t\t\t\t\thtml += walk( item );\n\t\t\t\t\t} );\n\n\t\t\t\t\t// is item\n\t\t\t\t} else if ( $.isPlainObject( data ) ) {\n\t\t\t\t\t// group\n\t\t\t\t\tif ( data.children !== undefined ) {\n\t\t\t\t\t\thtml +=\n\t\t\t\t\t\t\t'
        • ' +\n\t\t\t\t\t\t\tacf.escHtml( data.text ) +\n\t\t\t\t\t\t\t'
            ';\n\t\t\t\t\t\thtml += walk( data.children );\n\t\t\t\t\t\thtml += '
        • ';\n\n\t\t\t\t\t\t// single\n\t\t\t\t\t} else {\n\t\t\t\t\t\thtml +=\n\t\t\t\t\t\t\t'
        • ' +\n\t\t\t\t\t\t\tacf.escHtml( data.text ) +\n\t\t\t\t\t\t\t'
        • ';\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// return\n\t\t\t\treturn html;\n\t\t\t};\n\n\t\t\treturn walk( data );\n\t\t},\n\t} );\n\n\tacf.registerFieldType( Field );\n} )( jQuery );\n","( function ( $, undefined ) {\n\tvar Field = acf.Field.extend( {\n\t\ttype: 'select',\n\n\t\tselect2: false,\n\n\t\twait: 'load',\n\n\t\tevents: {\n\t\t\tremoveField: 'onRemove',\n\t\t\tduplicateField: 'onDuplicate',\n\t\t},\n\n\t\t$input: function () {\n\t\t\treturn this.$( 'select' );\n\t\t},\n\n\t\tinitialize: function () {\n\t\t\t// vars\n\t\t\tvar $select = this.$input();\n\n\t\t\t// inherit data\n\t\t\tthis.inherit( $select );\n\n\t\t\t// select2\n\t\t\tif ( this.get( 'ui' ) ) {\n\t\t\t\t// populate ajax_data (allowing custom attribute to already exist)\n\t\t\t\tvar ajaxAction = this.get( 'ajax_action' );\n\t\t\t\tif ( ! ajaxAction ) {\n\t\t\t\t\tajaxAction = 'acf/fields/' + this.get( 'type' ) + '/query';\n\t\t\t\t}\n\n\t\t\t\t// select2\n\t\t\t\tthis.select2 = acf.newSelect2( $select, {\n\t\t\t\t\tfield: this,\n\t\t\t\t\tajax: this.get( 'ajax' ),\n\t\t\t\t\tmultiple: this.get( 'multiple' ),\n\t\t\t\t\tplaceholder: this.get( 'placeholder' ),\n\t\t\t\t\tallowNull: this.get( 'allow_null' ),\n\t\t\t\t\tajaxAction: ajaxAction,\n\t\t\t\t} );\n\t\t\t}\n\t\t},\n\n\t\tonRemove: function () {\n\t\t\tif ( this.select2 ) {\n\t\t\t\tthis.select2.destroy();\n\t\t\t}\n\t\t},\n\n\t\tonDuplicate: function ( e, $el, $duplicate ) {\n\t\t\tif ( this.select2 ) {\n\t\t\t\t$duplicate.find( '.select2-container' ).remove();\n\t\t\t\t$duplicate\n\t\t\t\t\t.find( 'select' )\n\t\t\t\t\t.removeClass( 'select2-hidden-accessible' );\n\t\t\t}\n\t\t},\n\t} );\n\n\tacf.registerFieldType( Field );\n} )( jQuery );\n","( function ( $, undefined ) {\n\t// vars\n\tvar CONTEXT = 'tab';\n\n\tvar Field = acf.Field.extend( {\n\t\ttype: 'tab',\n\n\t\twait: '',\n\n\t\ttabs: false,\n\n\t\ttab: false,\n\n\t\tevents: {\n\t\t\tduplicateField: 'onDuplicate',\n\t\t},\n\n\t\tfindFields: function () {\n\t\t\tlet filter = '.acf-field';\n\n\t\t\tif ( this.get( 'key' ) === 'acf_field_settings_tabs' ) {\n\t\t\t\tfilter = '.acf-field-settings-main';\n\t\t\t}\n\n\t\t\tif ( this.get( 'key' ) === 'acf_field_group_settings_tabs' ) {\n\t\t\t\tfilter = '.field-group-settings-tab';\n\t\t\t}\n\n\t\t\tif ( this.get( 'key' ) === 'acf_browse_fields_tabs' ) {\n\t\t\t\tfilter = '.acf-field-types-tab';\n\t\t\t}\n\n\t\t\treturn this.$el.nextUntil( '.acf-field-tab', filter );\n\t\t},\n\n\t\tgetFields: function () {\n\t\t\treturn acf.getFields( this.findFields() );\n\t\t},\n\n\t\tfindTabs: function () {\n\t\t\treturn this.$el.prevAll( '.acf-tab-wrap:first' );\n\t\t},\n\n\t\tfindTab: function () {\n\t\t\treturn this.$( '.acf-tab-button' );\n\t\t},\n\n\t\tinitialize: function () {\n\t\t\t// bail early if is td\n\t\t\tif ( this.$el.is( 'td' ) ) {\n\t\t\t\tthis.events = {};\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// vars\n\t\t\tvar $tabs = this.findTabs();\n\t\t\tvar $tab = this.findTab();\n\t\t\tvar settings = acf.parseArgs( $tab.data(), {\n\t\t\t\tendpoint: false,\n\t\t\t\tplacement: '',\n\t\t\t\tbefore: this.$el,\n\t\t\t} );\n\n\t\t\t// create wrap\n\t\t\tif ( ! $tabs.length || settings.endpoint ) {\n\t\t\t\tthis.tabs = new Tabs( settings );\n\t\t\t} else {\n\t\t\t\tthis.tabs = $tabs.data( 'acf' );\n\t\t\t}\n\n\t\t\t// add tab\n\t\t\tthis.tab = this.tabs.addTab( $tab, this );\n\t\t},\n\n\t\tisActive: function () {\n\t\t\treturn this.tab.isActive();\n\t\t},\n\n\t\tshowFields: function () {\n\t\t\t// show fields\n\t\t\tthis.getFields().map( function ( field ) {\n\t\t\t\tfield.show( this.cid, CONTEXT );\n\t\t\t\tfield.hiddenByTab = false;\n\t\t\t}, this );\n\t\t},\n\n\t\thideFields: function () {\n\t\t\t// hide fields\n\t\t\tthis.getFields().map( function ( field ) {\n\t\t\t\tfield.hide( this.cid, CONTEXT );\n\t\t\t\tfield.hiddenByTab = this.tab;\n\t\t\t}, this );\n\t\t},\n\n\t\tshow: function ( lockKey ) {\n\t\t\t// show field and store result\n\t\t\tvar visible = acf.Field.prototype.show.apply( this, arguments );\n\n\t\t\t// check if now visible\n\t\t\tif ( visible ) {\n\t\t\t\t// show tab\n\t\t\t\tthis.tab.show();\n\n\t\t\t\t// check active tabs\n\t\t\t\tthis.tabs.refresh();\n\t\t\t}\n\n\t\t\t// return\n\t\t\treturn visible;\n\t\t},\n\n\t\thide: function ( lockKey ) {\n\t\t\t// hide field and store result\n\t\t\tvar hidden = acf.Field.prototype.hide.apply( this, arguments );\n\n\t\t\t// check if now hidden\n\t\t\tif ( hidden ) {\n\t\t\t\t// hide tab\n\t\t\t\tthis.tab.hide();\n\n\t\t\t\t// reset tabs if this was active\n\t\t\t\tif ( this.isActive() ) {\n\t\t\t\t\tthis.tabs.reset();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// return\n\t\t\treturn hidden;\n\t\t},\n\n\t\tenable: function ( lockKey ) {\n\t\t\t// enable fields\n\t\t\tthis.getFields().map( function ( field ) {\n\t\t\t\tfield.enable( CONTEXT );\n\t\t\t} );\n\t\t},\n\n\t\tdisable: function ( lockKey ) {\n\t\t\t// disable fields\n\t\t\tthis.getFields().map( function ( field ) {\n\t\t\t\tfield.disable( CONTEXT );\n\t\t\t} );\n\t\t},\n\n\t\tonDuplicate: function ( e, $el, $duplicate ) {\n\t\t\tif ( this.isActive() ) {\n\t\t\t\t$duplicate.prevAll( '.acf-tab-wrap:first' ).remove();\n\t\t\t}\n\t\t},\n\t} );\n\n\tacf.registerFieldType( Field );\n\n\t/**\n\t * tabs\n\t *\n\t * description\n\t *\n\t * @date\t8/2/18\n\t * @since\t5.6.5\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tvar i = 0;\n\tvar Tabs = acf.Model.extend( {\n\t\ttabs: [],\n\n\t\tactive: false,\n\n\t\tactions: {\n\t\t\trefresh: 'onRefresh',\n\t\t\tclose_field_object: 'onCloseFieldObject',\n\t\t},\n\n\t\tdata: {\n\t\t\tbefore: false,\n\t\t\tplacement: 'top',\n\t\t\tindex: 0,\n\t\t\tinitialized: false,\n\t\t},\n\n\t\tsetup: function ( settings ) {\n\t\t\t// data\n\t\t\t$.extend( this.data, settings );\n\n\t\t\t// define this prop to avoid scope issues\n\t\t\tthis.tabs = [];\n\t\t\tthis.active = false;\n\n\t\t\t// vars\n\t\t\tvar placement = this.get( 'placement' );\n\t\t\tvar $before = this.get( 'before' );\n\t\t\tvar $parent = $before.parent();\n\n\t\t\t// add sidebar for left placement\n\t\t\tif ( placement == 'left' && $parent.hasClass( 'acf-fields' ) ) {\n\t\t\t\t$parent.addClass( '-sidebar' );\n\t\t\t}\n\n\t\t\t// create wrap\n\t\t\tif ( $before.is( 'tr' ) ) {\n\t\t\t\tthis.$el = $(\n\t\t\t\t\t'
          '\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tlet ulClass = 'acf-hl acf-tab-group';\n\n\t\t\t\tif ( this.get( 'key' ) === 'acf_field_settings_tabs' ) {\n\t\t\t\t\tulClass = 'acf-field-settings-tab-bar';\n\t\t\t\t}\n\n\t\t\t\tthis.$el = $(\n\t\t\t\t\t'
            '\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// append\n\t\t\t$before.before( this.$el );\n\n\t\t\t// set index\n\t\t\tthis.set( 'index', i, true );\n\t\t\ti++;\n\t\t},\n\n\t\tinitializeTabs: function () {\n\t\t\t// Bail if tabs are disabled.\n\t\t\tif (\n\t\t\t\t'acf_field_settings_tabs' === this.get( 'key' ) &&\n\t\t\t\t$( '#acf-field-group-fields' ).hasClass( 'hide-tabs' )\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// find first visible tab\n\t\t\tvar tab = this.getVisible().shift();\n\n\t\t\t// remember previous tab state\n\t\t\tvar order = acf.getPreference( 'this.tabs' ) || [];\n\t\t\tvar groupIndex = this.get( 'index' );\n\t\t\tvar tabIndex = order[ groupIndex ];\n\n\t\t\tif ( this.tabs[ tabIndex ] && this.tabs[ tabIndex ].isVisible() ) {\n\t\t\t\ttab = this.tabs[ tabIndex ];\n\t\t\t}\n\n\t\t\t// select\n\t\t\tif ( tab ) {\n\t\t\t\tthis.selectTab( tab );\n\t\t\t} else {\n\t\t\t\tthis.closeTabs();\n\t\t\t}\n\n\t\t\t// set local variable used by tabsManager\n\t\t\tthis.set( 'initialized', true );\n\t\t},\n\n\t\tgetVisible: function () {\n\t\t\treturn this.tabs.filter( function ( tab ) {\n\t\t\t\treturn tab.isVisible();\n\t\t\t} );\n\t\t},\n\n\t\tgetActive: function () {\n\t\t\treturn this.active;\n\t\t},\n\n\t\tsetActive: function ( tab ) {\n\t\t\treturn ( this.active = tab );\n\t\t},\n\n\t\thasActive: function () {\n\t\t\treturn this.active !== false;\n\t\t},\n\n\t\tisActive: function ( tab ) {\n\t\t\tvar active = this.getActive();\n\t\t\treturn active && active.cid === tab.cid;\n\t\t},\n\n\t\tcloseActive: function () {\n\t\t\tif ( this.hasActive() ) {\n\t\t\t\tthis.closeTab( this.getActive() );\n\t\t\t}\n\t\t},\n\n\t\topenTab: function ( tab ) {\n\t\t\t// close existing tab\n\t\t\tthis.closeActive();\n\n\t\t\t// open\n\t\t\ttab.open();\n\n\t\t\t// set active\n\t\t\tthis.setActive( tab );\n\t\t},\n\n\t\tcloseTab: function ( tab ) {\n\t\t\t// close\n\t\t\ttab.close();\n\n\t\t\t// set active\n\t\t\tthis.setActive( false );\n\t\t},\n\n\t\tcloseTabs: function () {\n\t\t\tthis.tabs.map( this.closeTab, this );\n\t\t},\n\n\t\tselectTab: function ( tab ) {\n\t\t\t// close other tabs\n\t\t\tthis.tabs.map( function ( t ) {\n\t\t\t\tif ( tab.cid !== t.cid ) {\n\t\t\t\t\tthis.closeTab( t );\n\t\t\t\t}\n\t\t\t}, this );\n\n\t\t\t// open\n\t\t\tthis.openTab( tab );\n\t\t},\n\n\t\taddTab: function ( $a, field ) {\n\t\t\t// create
          • \n\t\t\tvar $li = $( '
          • ' + $a.outerHTML() + '
          • ' );\n\n\t\t\t// add settings type class.\n\t\t\tvar classes = $a.attr( 'class' ).replace( 'acf-tab-button', '' );\n\t\t\t$li.addClass( classes );\n\n\t\t\t// append\n\t\t\tthis.$( 'ul' ).append( $li );\n\n\t\t\t// initialize\n\t\t\tvar tab = new Tab( {\n\t\t\t\t$el: $li,\n\t\t\t\tfield: field,\n\t\t\t\tgroup: this,\n\t\t\t} );\n\n\t\t\t// store\n\t\t\tthis.tabs.push( tab );\n\n\t\t\t// return\n\t\t\treturn tab;\n\t\t},\n\n\t\treset: function () {\n\t\t\t// close existing tab\n\t\t\tthis.closeActive();\n\n\t\t\t// find and active a tab\n\t\t\treturn this.refresh();\n\t\t},\n\n\t\trefresh: function () {\n\t\t\t// bail early if active already exists\n\t\t\tif ( this.hasActive() ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\t// find next active tab\n\t\t\tvar tab = this.getVisible().shift();\n\t\t\t// open tab\n\t\t\tif ( tab ) {\n\t\t\t\tthis.openTab( tab );\n\t\t\t}\n\n\t\t\t// return\n\t\t\treturn tab;\n\t\t},\n\n\t\tonRefresh: function () {\n\t\t\t// only for left placements\n\t\t\tif ( this.get( 'placement' ) !== 'left' ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// vars\n\t\t\tvar $parent = this.$el.parent();\n\t\t\tvar $list = this.$el.children( 'ul' );\n\t\t\tvar attribute = $parent.is( 'td' ) ? 'height' : 'min-height';\n\n\t\t\t// find height (minus 1 for border-bottom)\n\t\t\tvar height = $list.position().top + $list.outerHeight( true ) - 1;\n\n\t\t\t// add css\n\t\t\t$parent.css( attribute, height );\n\t\t},\n\n\t\tonCloseFieldObject: function ( fieldObject ) {\n\t\t\tconst tab = this.getVisible().find( ( item ) => {\n\t\t\t\tconst id = item.$el.closest( 'div[data-id]' ).data( 'id' );\n\t\t\t\tif ( fieldObject.data.id === id ) {\n\t\t\t\t\treturn item;\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tif ( tab ) {\n\t\t\t\t// Wait for field group drawer to close\n\t\t\t\tsetTimeout( () => {\n\t\t\t\t\tthis.openTab( tab );\n\t\t\t\t}, 300 );\n\t\t\t}\n\t\t},\n\t} );\n\n\tvar Tab = acf.Model.extend( {\n\t\tgroup: false,\n\n\t\tfield: false,\n\n\t\tevents: {\n\t\t\t'click a': 'onClick',\n\t\t},\n\n\t\tindex: function () {\n\t\t\treturn this.$el.index();\n\t\t},\n\n\t\tisVisible: function () {\n\t\t\treturn acf.isVisible( this.$el );\n\t\t},\n\n\t\tisActive: function () {\n\t\t\treturn this.$el.hasClass( 'active' );\n\t\t},\n\n\t\topen: function () {\n\t\t\t// add class\n\t\t\tthis.$el.addClass( 'active' );\n\n\t\t\t// show field\n\t\t\tthis.field.showFields();\n\t\t},\n\n\t\tclose: function () {\n\t\t\t// remove class\n\t\t\tthis.$el.removeClass( 'active' );\n\n\t\t\t// hide field\n\t\t\tthis.field.hideFields();\n\t\t},\n\n\t\tonClick: function ( e, $el ) {\n\t\t\t// prevent default\n\t\t\te.preventDefault();\n\n\t\t\t// toggle\n\t\t\tthis.toggle();\n\t\t},\n\n\t\ttoggle: function () {\n\t\t\t// bail early if already active\n\t\t\tif ( this.isActive() ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// toggle this tab\n\t\t\tthis.group.openTab( this );\n\t\t},\n\t} );\n\n\tvar tabsManager = new acf.Model( {\n\t\tpriority: 50,\n\n\t\tactions: {\n\t\t\tprepare: 'render',\n\t\t\tappend: 'render',\n\t\t\tunload: 'onUnload',\n\t\t\tshow: 'render',\n\t\t\tinvalid_field: 'onInvalidField',\n\t\t},\n\n\t\tfindTabs: function () {\n\t\t\treturn $( '.acf-tab-wrap' );\n\t\t},\n\n\t\tgetTabs: function () {\n\t\t\treturn acf.getInstances( this.findTabs() );\n\t\t},\n\n\t\trender: function ( $el ) {\n\t\t\tthis.getTabs().map( function ( tabs ) {\n\t\t\t\tif ( ! tabs.get( 'initialized' ) ) {\n\t\t\t\t\ttabs.initializeTabs();\n\t\t\t\t}\n\t\t\t} );\n\t\t},\n\n\t\tonInvalidField: function ( field ) {\n\t\t\t// bail early if busy\n\t\t\tif ( this.busy ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// ignore if not hidden by tab\n\t\t\tif ( ! field.hiddenByTab ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// toggle tab\n\t\t\tfield.hiddenByTab.toggle();\n\n\t\t\t// ignore other invalid fields\n\t\t\tthis.busy = true;\n\t\t\tthis.setTimeout( function () {\n\t\t\t\tthis.busy = false;\n\t\t\t}, 100 );\n\t\t},\n\n\t\tonUnload: function () {\n\t\t\t// vars\n\t\t\tvar order = [];\n\n\t\t\t// loop\n\t\t\tthis.getTabs().map( function ( group ) {\n\t\t\t\t// Do not save selected tab on field settings, or an acf-advanced-settings when unloading\n\t\t\t\tif (\n\t\t\t\t\tgroup.$el.children( '.acf-field-settings-tab-bar' )\n\t\t\t\t\t\t.length ||\n\t\t\t\t\tgroup.$el.parents( '#acf-advanced-settings.postbox' ).length\n\t\t\t\t) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tvar active = group.hasActive() ? group.getActive().index() : 0;\n\t\t\t\torder.push( active );\n\t\t\t} );\n\n\t\t\t// bail if no tabs\n\t\t\tif ( ! order.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// update\n\t\t\tacf.setPreference( 'this.tabs', order );\n\t\t},\n\t} );\n} )( jQuery );\n","( function ( $, undefined ) {\n\tvar Field = acf.Field.extend( {\n\t\ttype: 'taxonomy',\n\n\t\tdata: {\n\t\t\tftype: 'select',\n\t\t},\n\n\t\tselect2: false,\n\n\t\twait: 'load',\n\n\t\tevents: {\n\t\t\t'click a[data-name=\"add\"]': 'onClickAdd',\n\t\t\t'click input[type=\"radio\"]': 'onClickRadio',\n\t\t\tremoveField: 'onRemove',\n\t\t},\n\n\t\t$control: function () {\n\t\t\treturn this.$( '.acf-taxonomy-field' );\n\t\t},\n\n\t\t$input: function () {\n\t\t\treturn this.getRelatedPrototype().$input.apply( this, arguments );\n\t\t},\n\n\t\tgetRelatedType: function () {\n\t\t\t// vars\n\t\t\tvar fieldType = this.get( 'ftype' );\n\n\t\t\t// normalize\n\t\t\tif ( fieldType == 'multi_select' ) {\n\t\t\t\tfieldType = 'select';\n\t\t\t}\n\n\t\t\t// return\n\t\t\treturn fieldType;\n\t\t},\n\n\t\tgetRelatedPrototype: function () {\n\t\t\treturn acf.getFieldType( this.getRelatedType() ).prototype;\n\t\t},\n\n\t\tgetValue: function () {\n\t\t\treturn this.getRelatedPrototype().getValue.apply( this, arguments );\n\t\t},\n\n\t\tsetValue: function () {\n\t\t\treturn this.getRelatedPrototype().setValue.apply( this, arguments );\n\t\t},\n\n\t\tinitialize: function () {\n\t\t\tthis.getRelatedPrototype().initialize.apply( this, arguments );\n\t\t},\n\n\t\tonRemove: function () {\n\t\t\tvar proto = this.getRelatedPrototype();\n\t\t\tif ( proto.onRemove ) {\n\t\t\t\tproto.onRemove.apply( this, arguments );\n\t\t\t}\n\t\t},\n\n\t\tonClickAdd: function ( e, $el ) {\n\t\t\t// vars\n\t\t\tvar field = this;\n\t\t\tvar popup = false;\n\t\t\tvar $form = false;\n\t\t\tvar $name = false;\n\t\t\tvar $parent = false;\n\t\t\tvar $button = false;\n\t\t\tvar $message = false;\n\t\t\tvar notice = false;\n\n\t\t\t// step 1.\n\t\t\tvar step1 = function () {\n\t\t\t\t// popup\n\t\t\t\tpopup = acf.newPopup( {\n\t\t\t\t\ttitle: $el.attr( 'title' ),\n\t\t\t\t\tloading: true,\n\t\t\t\t\twidth: '300px',\n\t\t\t\t} );\n\n\t\t\t\t// ajax\n\t\t\t\tvar ajaxData = {\n\t\t\t\t\taction: 'acf/fields/taxonomy/add_term',\n\t\t\t\t\tfield_key: field.get( 'key' ),\n\t\t\t\t};\n\n\t\t\t\t// get HTML\n\t\t\t\t$.ajax( {\n\t\t\t\t\turl: acf.get( 'ajaxurl' ),\n\t\t\t\t\tdata: acf.prepareForAjax( ajaxData ),\n\t\t\t\t\ttype: 'post',\n\t\t\t\t\tdataType: 'html',\n\t\t\t\t\tsuccess: step2,\n\t\t\t\t} );\n\t\t\t};\n\n\t\t\t// step 2.\n\t\t\tvar step2 = function ( html ) {\n\t\t\t\t// update popup\n\t\t\t\tpopup.loading( false );\n\t\t\t\tpopup.content( html );\n\n\t\t\t\t// vars\n\t\t\t\t$form = popup.$( 'form' );\n\t\t\t\t$name = popup.$( 'input[name=\"term_name\"]' );\n\t\t\t\t$parent = popup.$( 'select[name=\"term_parent\"]' );\n\t\t\t\t$button = popup.$( '.acf-submit-button' );\n\n\t\t\t\t// focus\n\t\t\t\t$name.trigger( 'focus' );\n\n\t\t\t\t// submit form\n\t\t\t\tpopup.on( 'submit', 'form', step3 );\n\t\t\t};\n\n\t\t\t// step 3.\n\t\t\tvar step3 = function ( e, $el ) {\n\t\t\t\t// prevent\n\t\t\t\te.preventDefault();\n\t\t\t\te.stopImmediatePropagation();\n\n\t\t\t\t// basic validation\n\t\t\t\tif ( $name.val() === '' ) {\n\t\t\t\t\t$name.trigger( 'focus' );\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\t// disable\n\t\t\t\tacf.startButtonLoading( $button );\n\n\t\t\t\t// ajax\n\t\t\t\tvar ajaxData = {\n\t\t\t\t\taction: 'acf/fields/taxonomy/add_term',\n\t\t\t\t\tfield_key: field.get( 'key' ),\n\t\t\t\t\tterm_name: $name.val(),\n\t\t\t\t\tterm_parent: $parent.length ? $parent.val() : 0,\n\t\t\t\t};\n\n\t\t\t\t$.ajax( {\n\t\t\t\t\turl: acf.get( 'ajaxurl' ),\n\t\t\t\t\tdata: acf.prepareForAjax( ajaxData ),\n\t\t\t\t\ttype: 'post',\n\t\t\t\t\tdataType: 'json',\n\t\t\t\t\tsuccess: step4,\n\t\t\t\t} );\n\t\t\t};\n\n\t\t\t// step 4.\n\t\t\tvar step4 = function ( json ) {\n\t\t\t\t// enable\n\t\t\t\tacf.stopButtonLoading( $button );\n\n\t\t\t\t// remove prev notice\n\t\t\t\tif ( notice ) {\n\t\t\t\t\tnotice.remove();\n\t\t\t\t}\n\n\t\t\t\t// success\n\t\t\t\tif ( acf.isAjaxSuccess( json ) ) {\n\t\t\t\t\t// clear name\n\t\t\t\t\t$name.val( '' );\n\n\t\t\t\t\t// update term lists\n\t\t\t\t\tstep5( json.data );\n\n\t\t\t\t\t// notice\n\t\t\t\t\tnotice = acf.newNotice( {\n\t\t\t\t\t\ttype: 'success',\n\t\t\t\t\t\ttext: acf.getAjaxMessage( json ),\n\t\t\t\t\t\ttarget: $form,\n\t\t\t\t\t\ttimeout: 2000,\n\t\t\t\t\t\tdismiss: false,\n\t\t\t\t\t} );\n\t\t\t\t} else {\n\t\t\t\t\t// notice\n\t\t\t\t\tnotice = acf.newNotice( {\n\t\t\t\t\t\ttype: 'error',\n\t\t\t\t\t\ttext: acf.getAjaxError( json ),\n\t\t\t\t\t\ttarget: $form,\n\t\t\t\t\t\ttimeout: 2000,\n\t\t\t\t\t\tdismiss: false,\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\t// focus\n\t\t\t\t$name.trigger( 'focus' );\n\t\t\t};\n\n\t\t\t// step 5.\n\t\t\tvar step5 = function ( term ) {\n\t\t\t\t// update parent dropdown\n\t\t\t\tvar $option = $(\n\t\t\t\t\t''\n\t\t\t\t);\n\t\t\t\tif ( term.term_parent ) {\n\t\t\t\t\t$parent\n\t\t\t\t\t\t.children( 'option[value=\"' + term.term_parent + '\"]' )\n\t\t\t\t\t\t.after( $option );\n\t\t\t\t} else {\n\t\t\t\t\t$parent.append( $option );\n\t\t\t\t}\n\n\t\t\t\t// add this new term to all taxonomy field\n\t\t\t\tvar fields = acf.getFields( {\n\t\t\t\t\ttype: 'taxonomy',\n\t\t\t\t} );\n\n\t\t\t\tfields.map( function ( otherField ) {\n\t\t\t\t\tif (\n\t\t\t\t\t\totherField.get( 'taxonomy' ) == field.get( 'taxonomy' )\n\t\t\t\t\t) {\n\t\t\t\t\t\totherField.appendTerm( term );\n\t\t\t\t\t}\n\t\t\t\t} );\n\n\t\t\t\t// select\n\t\t\t\tfield.selectTerm( term.term_id );\n\t\t\t};\n\n\t\t\t// run\n\t\t\tstep1();\n\t\t},\n\n\t\tappendTerm: function ( term ) {\n\t\t\tif ( this.getRelatedType() == 'select' ) {\n\t\t\t\tthis.appendTermSelect( term );\n\t\t\t} else {\n\t\t\t\tthis.appendTermCheckbox( term );\n\t\t\t}\n\t\t},\n\n\t\tappendTermSelect: function ( term ) {\n\t\t\tthis.select2.addOption( {\n\t\t\t\tid: term.term_id,\n\t\t\t\ttext: term.term_label,\n\t\t\t} );\n\t\t},\n\n\t\tappendTermCheckbox: function ( term ) {\n\t\t\t// vars\n\t\t\tvar name = this.$( '[name]:first' ).attr( 'name' );\n\t\t\tvar $ul = this.$( 'ul:first' );\n\n\t\t\t// allow multiple selection\n\t\t\tif ( this.getRelatedType() == 'checkbox' ) {\n\t\t\t\tname += '[]';\n\t\t\t}\n\n\t\t\t// create new li\n\t\t\tvar $li = $(\n\t\t\t\t[\n\t\t\t\t\t'
          • ',\n\t\t\t\t\t'',\n\t\t\t\t\t'
          • ',\n\t\t\t\t].join( '' )\n\t\t\t);\n\n\t\t\t// find parent\n\t\t\tif ( term.term_parent ) {\n\t\t\t\t// vars\n\t\t\t\tvar $parent = $ul.find(\n\t\t\t\t\t'li[data-id=\"' + term.term_parent + '\"]'\n\t\t\t\t);\n\n\t\t\t\t// update vars\n\t\t\t\t$ul = $parent.children( 'ul' );\n\n\t\t\t\t// create ul\n\t\t\t\tif ( ! $ul.exists() ) {\n\t\t\t\t\t$ul = $( '
              ' );\n\t\t\t\t\t$parent.append( $ul );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// append\n\t\t\t$ul.append( $li );\n\t\t},\n\n\t\tselectTerm: function ( id ) {\n\t\t\tif ( this.getRelatedType() == 'select' ) {\n\t\t\t\tthis.select2.selectOption( id );\n\t\t\t} else {\n\t\t\t\tvar $input = this.$( 'input[value=\"' + id + '\"]' );\n\t\t\t\t$input.prop( 'checked', true ).trigger( 'change' );\n\t\t\t}\n\t\t},\n\n\t\tonClickRadio: function ( e, $el ) {\n\t\t\t// vars\n\t\t\tvar $label = $el.parent( 'label' );\n\t\t\tvar selected = $label.hasClass( 'selected' );\n\n\t\t\t// remove previous selected\n\t\t\tthis.$( '.selected' ).removeClass( 'selected' );\n\n\t\t\t// add active class\n\t\t\t$label.addClass( 'selected' );\n\n\t\t\t// allow null\n\t\t\tif ( this.get( 'allow_null' ) && selected ) {\n\t\t\t\t$label.removeClass( 'selected' );\n\t\t\t\t$el.prop( 'checked', false ).trigger( 'change' );\n\t\t\t}\n\t\t},\n\t} );\n\n\tacf.registerFieldType( Field );\n} )( jQuery );\n","( function ( $, undefined ) {\n\tvar Field = acf.models.DatePickerField.extend( {\n\t\ttype: 'time_picker',\n\n\t\t$control: function () {\n\t\t\treturn this.$( '.acf-time-picker' );\n\t\t},\n\n\t\tinitialize: function () {\n\t\t\t// vars\n\t\t\tvar $input = this.$input();\n\t\t\tvar $inputText = this.$inputText();\n\n\t\t\t// args\n\t\t\tvar args = {\n\t\t\t\ttimeFormat: this.get( 'time_format' ),\n\t\t\t\taltField: $input,\n\t\t\t\taltFieldTimeOnly: false,\n\t\t\t\taltTimeFormat: 'HH:mm:ss',\n\t\t\t\tshowButtonPanel: true,\n\t\t\t\tcontrolType: 'select',\n\t\t\t\toneLine: true,\n\t\t\t\tcloseText: acf.get( 'dateTimePickerL10n' ).selectText,\n\t\t\t\ttimeOnly: true,\n\t\t\t};\n\n\t\t\t// add custom 'Close = Select' functionality\n\t\t\targs.onClose = function ( value, dp_instance, t_instance ) {\n\t\t\t\t// vars\n\t\t\t\tvar $close = dp_instance.dpDiv.find( '.ui-datepicker-close' );\n\n\t\t\t\t// if clicking close button\n\t\t\t\tif ( ! value && $close.is( ':hover' ) ) {\n\t\t\t\t\tt_instance._updateDateTime();\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t// filter\n\t\t\targs = acf.applyFilters( 'time_picker_args', args, this );\n\n\t\t\t// add date time picker\n\t\t\tacf.newTimePicker( $inputText, args );\n\n\t\t\t// action\n\t\t\tacf.doAction( 'time_picker_init', $inputText, args, this );\n\t\t},\n\t} );\n\n\tacf.registerFieldType( Field );\n\n\t// add\n\tacf.newTimePicker = function ( $input, args ) {\n\t\t// bail early if no datepicker library\n\t\tif ( typeof $.timepicker === 'undefined' ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// defaults\n\t\targs = args || {};\n\n\t\t// initialize\n\t\t$input.timepicker( args );\n\n\t\t// wrap the datepicker (only if it hasn't already been wrapped)\n\t\tif ( $( 'body > #ui-datepicker-div' ).exists() ) {\n\t\t\t$( 'body > #ui-datepicker-div' ).wrap(\n\t\t\t\t'
              '\n\t\t\t);\n\t\t}\n\t};\n} )( jQuery );\n","( function ( $, undefined ) {\n\tvar Field = acf.Field.extend( {\n\t\ttype: 'true_false',\n\n\t\tevents: {\n\t\t\t'change .acf-switch-input': 'onChange',\n\t\t\t'focus .acf-switch-input': 'onFocus',\n\t\t\t'blur .acf-switch-input': 'onBlur',\n\t\t\t'keypress .acf-switch-input': 'onKeypress',\n\t\t},\n\n\t\t$input: function () {\n\t\t\treturn this.$( 'input[type=\"checkbox\"]' );\n\t\t},\n\n\t\t$switch: function () {\n\t\t\treturn this.$( '.acf-switch' );\n\t\t},\n\n\t\tgetValue: function () {\n\t\t\treturn this.$input().prop( 'checked' ) ? 1 : 0;\n\t\t},\n\n\t\tinitialize: function () {\n\t\t\tthis.render();\n\t\t},\n\n\t\trender: function () {\n\t\t\t// vars\n\t\t\tvar $switch = this.$switch();\n\n\t\t\t// bail early if no $switch\n\t\t\tif ( ! $switch.length ) return;\n\n\t\t\t// vars\n\t\t\tvar $on = $switch.children( '.acf-switch-on' );\n\t\t\tvar $off = $switch.children( '.acf-switch-off' );\n\t\t\tvar width = Math.max( $on.width(), $off.width() );\n\n\t\t\t// bail early if no width\n\t\t\tif ( ! width ) return;\n\n\t\t\t// set widths\n\t\t\t$on.css( 'min-width', width );\n\t\t\t$off.css( 'min-width', width );\n\t\t},\n\n\t\tswitchOn: function () {\n\t\t\tthis.$input().prop( 'checked', true );\n\t\t\tthis.$switch().addClass( '-on' );\n\t\t},\n\n\t\tswitchOff: function () {\n\t\t\tthis.$input().prop( 'checked', false );\n\t\t\tthis.$switch().removeClass( '-on' );\n\t\t},\n\n\t\tonChange: function ( e, $el ) {\n\t\t\tif ( $el.prop( 'checked' ) ) {\n\t\t\t\tthis.switchOn();\n\t\t\t} else {\n\t\t\t\tthis.switchOff();\n\t\t\t}\n\t\t},\n\n\t\tonFocus: function ( e, $el ) {\n\t\t\tthis.$switch().addClass( '-focus' );\n\t\t},\n\n\t\tonBlur: function ( e, $el ) {\n\t\t\tthis.$switch().removeClass( '-focus' );\n\t\t},\n\n\t\tonKeypress: function ( e, $el ) {\n\t\t\t// left\n\t\t\tif ( e.keyCode === 37 ) {\n\t\t\t\treturn this.switchOff();\n\t\t\t}\n\n\t\t\t// right\n\t\t\tif ( e.keyCode === 39 ) {\n\t\t\t\treturn this.switchOn();\n\t\t\t}\n\t\t},\n\t} );\n\n\tacf.registerFieldType( Field );\n} )( jQuery );\n","( function ( $, undefined ) {\n\tvar Field = acf.Field.extend( {\n\t\ttype: 'url',\n\n\t\tevents: {\n\t\t\t'keyup input[type=\"url\"]': 'onkeyup',\n\t\t},\n\n\t\t$control: function () {\n\t\t\treturn this.$( '.acf-input-wrap' );\n\t\t},\n\n\t\t$input: function () {\n\t\t\treturn this.$( 'input[type=\"url\"]' );\n\t\t},\n\n\t\tinitialize: function () {\n\t\t\tthis.render();\n\t\t},\n\n\t\tisValid: function () {\n\t\t\t// vars\n\t\t\tvar val = this.val();\n\n\t\t\t// bail early if no val\n\t\t\tif ( ! val ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// url\n\t\t\tif ( val.indexOf( '://' ) !== -1 ) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\t// protocol relative url\n\t\t\tif ( val.indexOf( '//' ) === 0 ) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\t// return\n\t\t\treturn false;\n\t\t},\n\n\t\trender: function () {\n\t\t\t// add class\n\t\t\tif ( this.isValid() ) {\n\t\t\t\tthis.$control().addClass( '-valid' );\n\t\t\t} else {\n\t\t\t\tthis.$control().removeClass( '-valid' );\n\t\t\t}\n\t\t},\n\n\t\tonkeyup: function ( e, $el ) {\n\t\t\tthis.render();\n\t\t},\n\t} );\n\n\tacf.registerFieldType( Field );\n} )( jQuery );\n","( function ( $, undefined ) {\n\tvar Field = acf.models.SelectField.extend( {\n\t\ttype: 'user',\n\t} );\n\n\tacf.registerFieldType( Field );\n\n\tacf.addFilter(\n\t\t'select2_ajax_data',\n\t\tfunction ( data, args, $input, field, select2 ) {\n\t\t\tif ( ! field ) {\n\t\t\t\treturn data;\n\t\t\t}\n\n\t\t\tconst query_nonce = field.get( 'queryNonce' );\n\t\t\tif ( query_nonce && query_nonce.length ) {\n\t\t\t\tdata.user_query_nonce = query_nonce;\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\t);\n} )( jQuery );\n","( function ( $, undefined ) {\n\tvar Field = acf.Field.extend( {\n\t\ttype: 'wysiwyg',\n\n\t\twait: 'load',\n\n\t\tevents: {\n\t\t\t'mousedown .acf-editor-wrap.delay': 'onMousedown',\n\t\t\tunmountField: 'disableEditor',\n\t\t\tremountField: 'enableEditor',\n\t\t\tremoveField: 'disableEditor',\n\t\t},\n\n\t\t$control: function () {\n\t\t\treturn this.$( '.acf-editor-wrap' );\n\t\t},\n\n\t\t$input: function () {\n\t\t\treturn this.$( 'textarea' );\n\t\t},\n\n\t\tgetMode: function () {\n\t\t\treturn this.$control().hasClass( 'tmce-active' )\n\t\t\t\t? 'visual'\n\t\t\t\t: 'text';\n\t\t},\n\n\t\tinitialize: function () {\n\t\t\t// initializeEditor if no delay\n\t\t\tif ( ! this.$control().hasClass( 'delay' ) ) {\n\t\t\t\tthis.initializeEditor();\n\t\t\t}\n\t\t},\n\n\t\tinitializeEditor: function () {\n\t\t\t// vars\n\t\t\tvar $wrap = this.$control();\n\t\t\tvar $textarea = this.$input();\n\t\t\tvar args = {\n\t\t\t\ttinymce: true,\n\t\t\t\tquicktags: true,\n\t\t\t\ttoolbar: this.get( 'toolbar' ),\n\t\t\t\tmode: this.getMode(),\n\t\t\t\tfield: this,\n\t\t\t};\n\n\t\t\t// generate new id\n\t\t\tvar oldId = $textarea.attr( 'id' );\n\t\t\tvar newId = acf.uniqueId( 'acf-editor-' );\n\n\t\t\t// Backup textarea data.\n\t\t\tvar inputData = $textarea.data();\n\t\t\tvar inputVal = $textarea.val();\n\n\t\t\t// rename\n\t\t\tacf.rename( {\n\t\t\t\ttarget: $wrap,\n\t\t\t\tsearch: oldId,\n\t\t\t\treplace: newId,\n\t\t\t\tdestructive: true,\n\t\t\t} );\n\n\t\t\t// update id\n\t\t\tthis.set( 'id', newId, true );\n\n\t\t\t// apply data to new textarea (acf.rename creates a new textarea element due to destructive mode)\n\t\t\t// fixes bug where conditional logic \"disabled\" is lost during \"screen_check\"\n\t\t\tthis.$input().data( inputData ).val( inputVal );\n\n\t\t\t// initialize\n\t\t\tacf.tinymce.initialize( newId, args );\n\t\t},\n\n\t\tonMousedown: function ( e ) {\n\t\t\t// prevent default\n\t\t\te.preventDefault();\n\n\t\t\t// remove delay class\n\t\t\tvar $wrap = this.$control();\n\t\t\t$wrap.removeClass( 'delay' );\n\t\t\t$wrap.find( '.acf-editor-toolbar' ).remove();\n\n\t\t\t// initialize\n\t\t\tthis.initializeEditor();\n\t\t},\n\n\t\tenableEditor: function () {\n\t\t\tif ( this.getMode() == 'visual' ) {\n\t\t\t\tacf.tinymce.enable( this.get( 'id' ) );\n\t\t\t}\n\t\t},\n\n\t\tdisableEditor: function () {\n\t\t\tacf.tinymce.destroy( this.get( 'id' ) );\n\t\t},\n\t} );\n\n\tacf.registerFieldType( Field );\n} )( jQuery );\n","( function ( $, undefined ) {\n\t// vars\n\tvar storage = [];\n\n\t/**\n\t * acf.Field\n\t *\n\t * description\n\t *\n\t * @date\t23/3/18\n\t * @since\t5.6.9\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tacf.Field = acf.Model.extend( {\n\t\t// field type\n\t\ttype: '',\n\n\t\t// class used to avoid nested event triggers\n\t\teventScope: '.acf-field',\n\n\t\t// initialize events on 'ready'\n\t\twait: 'ready',\n\n\t\t/**\n\t\t * setup\n\t\t *\n\t\t * Called during the constructor function to setup this field ready for initialization\n\t\t *\n\t\t * @date\t8/5/18\n\t\t * @since\t5.6.9\n\t\t *\n\t\t * @param\tjQuery $field The field element.\n\t\t * @return\tvoid\n\t\t */\n\n\t\tsetup: function ( $field ) {\n\t\t\t// set $el\n\t\t\tthis.$el = $field;\n\n\t\t\t// inherit $field data\n\t\t\tthis.inherit( $field );\n\n\t\t\t// inherit controll data\n\t\t\tthis.inherit( this.$control() );\n\t\t},\n\n\t\t/**\n\t\t * val\n\t\t *\n\t\t * Sets or returns the field's value\n\t\t *\n\t\t * @date\t8/5/18\n\t\t * @since\t5.6.9\n\t\t *\n\t\t * @param\tmixed val Optional. The value to set\n\t\t * @return\tmixed\n\t\t */\n\n\t\tval: function ( val ) {\n\t\t\t// Set.\n\t\t\tif ( val !== undefined ) {\n\t\t\t\treturn this.setValue( val );\n\n\t\t\t\t// Get.\n\t\t\t} else {\n\t\t\t\treturn this.prop( 'disabled' ) ? null : this.getValue();\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * getValue\n\t\t *\n\t\t * returns the field's value\n\t\t *\n\t\t * @date\t8/5/18\n\t\t * @since\t5.6.9\n\t\t *\n\t\t * @param\tvoid\n\t\t * @return\tmixed\n\t\t */\n\n\t\tgetValue: function () {\n\t\t\treturn this.$input().val();\n\t\t},\n\n\t\t/**\n\t\t * setValue\n\t\t *\n\t\t * sets the field's value and returns true if changed\n\t\t *\n\t\t * @date\t8/5/18\n\t\t * @since\t5.6.9\n\t\t *\n\t\t * @param\tmixed val\n\t\t * @return\tboolean. True if changed.\n\t\t */\n\n\t\tsetValue: function ( val ) {\n\t\t\treturn acf.val( this.$input(), val );\n\t\t},\n\n\t\t/**\n\t\t * __\n\t\t *\n\t\t * i18n helper to be removed\n\t\t *\n\t\t * @date\t8/5/18\n\t\t * @since\t5.6.9\n\t\t *\n\t\t * @param\ttype $var Description. Default.\n\t\t * @return\ttype Description.\n\t\t */\n\n\t\t__: function ( string ) {\n\t\t\treturn acf._e( this.type, string );\n\t\t},\n\n\t\t/**\n\t\t * $control\n\t\t *\n\t\t * returns the control jQuery element used for inheriting data. Uses this.control setting.\n\t\t *\n\t\t * @date\t8/5/18\n\t\t * @since\t5.6.9\n\t\t *\n\t\t * @param\tvoid\n\t\t * @return\tjQuery\n\t\t */\n\n\t\t$control: function () {\n\t\t\treturn false;\n\t\t},\n\n\t\t/**\n\t\t * $input\n\t\t *\n\t\t * returns the input jQuery element used for saving values. Uses this.input setting.\n\t\t *\n\t\t * @date\t8/5/18\n\t\t * @since\t5.6.9\n\t\t *\n\t\t * @param\tvoid\n\t\t * @return\tjQuery\n\t\t */\n\n\t\t$input: function () {\n\t\t\treturn this.$( '[name]:first' );\n\t\t},\n\n\t\t/**\n\t\t * $inputWrap\n\t\t *\n\t\t * description\n\t\t *\n\t\t * @date\t12/5/18\n\t\t * @since\t5.6.9\n\t\t *\n\t\t * @param\ttype $var Description. Default.\n\t\t * @return\ttype Description.\n\t\t */\n\n\t\t$inputWrap: function () {\n\t\t\treturn this.$( '.acf-input:first' );\n\t\t},\n\n\t\t/**\n\t\t * $inputWrap\n\t\t *\n\t\t * description\n\t\t *\n\t\t * @date\t12/5/18\n\t\t * @since\t5.6.9\n\t\t *\n\t\t * @param\ttype $var Description. Default.\n\t\t * @return\ttype Description.\n\t\t */\n\n\t\t$labelWrap: function () {\n\t\t\treturn this.$( '.acf-label:first' );\n\t\t},\n\n\t\t/**\n\t\t * getInputName\n\t\t *\n\t\t * Returns the field's input name\n\t\t *\n\t\t * @date\t8/5/18\n\t\t * @since\t5.6.9\n\t\t *\n\t\t * @param\tvoid\n\t\t * @return\tstring\n\t\t */\n\n\t\tgetInputName: function () {\n\t\t\treturn this.$input().attr( 'name' ) || '';\n\t\t},\n\n\t\t/**\n\t\t * parent\n\t\t *\n\t\t * returns the field's parent field or false on failure.\n\t\t *\n\t\t * @date\t8/5/18\n\t\t * @since\t5.6.9\n\t\t *\n\t\t * @param\tvoid\n\t\t * @return\tobject|false\n\t\t */\n\n\t\tparent: function () {\n\t\t\t// vars\n\t\t\tvar parents = this.parents();\n\n\t\t\t// return\n\t\t\treturn parents.length ? parents[ 0 ] : false;\n\t\t},\n\n\t\t/**\n\t\t * parents\n\t\t *\n\t\t * description\n\t\t *\n\t\t * @date\t9/7/18\n\t\t * @since\t5.6.9\n\t\t *\n\t\t * @param\ttype $var Description. Default.\n\t\t * @return\ttype Description.\n\t\t */\n\n\t\tparents: function () {\n\t\t\t// vars\n\t\t\tvar $parents = this.$el.parents( '.acf-field' );\n\n\t\t\t// convert\n\t\t\tvar parents = acf.getFields( $parents );\n\n\t\t\t// return\n\t\t\treturn parents;\n\t\t},\n\n\t\tshow: function ( lockKey, context ) {\n\t\t\t// show field and store result\n\t\t\tvar changed = acf.show( this.$el, lockKey );\n\n\t\t\t// do action if visibility has changed\n\t\t\tif ( changed ) {\n\t\t\t\tthis.prop( 'hidden', false );\n\t\t\t\tacf.doAction( 'show_field', this, context );\n\t\t\t}\n\n\t\t\t// return\n\t\t\treturn changed;\n\t\t},\n\n\t\thide: function ( lockKey, context ) {\n\t\t\t// hide field and store result\n\t\t\tvar changed = acf.hide( this.$el, lockKey );\n\n\t\t\t// do action if visibility has changed\n\t\t\tif ( changed ) {\n\t\t\t\tthis.prop( 'hidden', true );\n\t\t\t\tacf.doAction( 'hide_field', this, context );\n\t\t\t}\n\n\t\t\t// return\n\t\t\treturn changed;\n\t\t},\n\n\t\tenable: function ( lockKey, context ) {\n\t\t\t// enable field and store result\n\t\t\tvar changed = acf.enable( this.$el, lockKey );\n\n\t\t\t// do action if disabled has changed\n\t\t\tif ( changed ) {\n\t\t\t\tthis.prop( 'disabled', false );\n\t\t\t\tacf.doAction( 'enable_field', this, context );\n\t\t\t}\n\n\t\t\t// return\n\t\t\treturn changed;\n\t\t},\n\n\t\tdisable: function ( lockKey, context ) {\n\t\t\t// disabled field and store result\n\t\t\tvar changed = acf.disable( this.$el, lockKey );\n\n\t\t\t// do action if disabled has changed\n\t\t\tif ( changed ) {\n\t\t\t\tthis.prop( 'disabled', true );\n\t\t\t\tacf.doAction( 'disable_field', this, context );\n\t\t\t}\n\n\t\t\t// return\n\t\t\treturn changed;\n\t\t},\n\n\t\tshowEnable: function ( lockKey, context ) {\n\t\t\t// enable\n\t\t\tthis.enable.apply( this, arguments );\n\n\t\t\t// show and return true if changed\n\t\t\treturn this.show.apply( this, arguments );\n\t\t},\n\n\t\thideDisable: function ( lockKey, context ) {\n\t\t\t// disable\n\t\t\tthis.disable.apply( this, arguments );\n\n\t\t\t// hide and return true if changed\n\t\t\treturn this.hide.apply( this, arguments );\n\t\t},\n\n\t\tshowNotice: function ( props ) {\n\t\t\t// ensure object\n\t\t\tif ( typeof props !== 'object' ) {\n\t\t\t\tprops = { text: props };\n\t\t\t}\n\n\t\t\t// remove old notice\n\t\t\tif ( this.notice ) {\n\t\t\t\tthis.notice.remove();\n\t\t\t}\n\n\t\t\t// create new notice\n\t\t\tprops.target = this.$inputWrap();\n\t\t\tthis.notice = acf.newNotice( props );\n\t\t},\n\n\t\tremoveNotice: function ( timeout ) {\n\t\t\tif ( this.notice ) {\n\t\t\t\tthis.notice.away( timeout || 0 );\n\t\t\t\tthis.notice = false;\n\t\t\t}\n\t\t},\n\n\t\tshowError: function ( message ) {\n\t\t\t// add class\n\t\t\tthis.$el.addClass( 'acf-error' );\n\n\t\t\t// add message\n\t\t\tif ( message !== undefined ) {\n\t\t\t\tthis.showNotice( {\n\t\t\t\t\ttext: message,\n\t\t\t\t\ttype: 'error',\n\t\t\t\t\tdismiss: false,\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t// action\n\t\t\tacf.doAction( 'invalid_field', this );\n\n\t\t\t// add event\n\t\t\tthis.$el.one(\n\t\t\t\t'focus change',\n\t\t\t\t'input, select, textarea',\n\t\t\t\t$.proxy( this.removeError, this )\n\t\t\t);\n\t\t},\n\n\t\tremoveError: function () {\n\t\t\t// remove class\n\t\t\tthis.$el.removeClass( 'acf-error' );\n\n\t\t\t// remove notice\n\t\t\tthis.removeNotice( 250 );\n\n\t\t\t// action\n\t\t\tacf.doAction( 'valid_field', this );\n\t\t},\n\n\t\ttrigger: function ( name, args, bubbles ) {\n\t\t\t// allow some events to bubble\n\t\t\tif ( name == 'invalidField' ) {\n\t\t\t\tbubbles = true;\n\t\t\t}\n\n\t\t\t// return\n\t\t\treturn acf.Model.prototype.trigger.apply( this, [\n\t\t\t\tname,\n\t\t\t\targs,\n\t\t\t\tbubbles,\n\t\t\t] );\n\t\t},\n\t} );\n\n\t/**\n\t * newField\n\t *\n\t * description\n\t *\n\t * @date\t14/12/17\n\t * @since\t5.6.5\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tacf.newField = function ( $field ) {\n\t\t// vars\n\t\tvar type = $field.data( 'type' );\n\t\tvar mid = modelId( type );\n\t\tvar model = acf.models[ mid ] || acf.Field;\n\n\t\t// instantiate\n\t\tvar field = new model( $field );\n\n\t\t// actions\n\t\tacf.doAction( 'new_field', field );\n\n\t\t// return\n\t\treturn field;\n\t};\n\n\t/**\n\t * mid\n\t *\n\t * Calculates the model ID for a field type\n\t *\n\t * @date\t15/12/17\n\t * @since\t5.6.5\n\t *\n\t * @param\tstring type\n\t * @return\tstring\n\t */\n\n\tvar modelId = function ( type ) {\n\t\treturn acf.strPascalCase( type || '' ) + 'Field';\n\t};\n\n\t/**\n\t * registerFieldType\n\t *\n\t * description\n\t *\n\t * @date\t14/12/17\n\t * @since\t5.6.5\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tacf.registerFieldType = function ( model ) {\n\t\t// vars\n\t\tvar proto = model.prototype;\n\t\tvar type = proto.type;\n\t\tvar mid = modelId( type );\n\n\t\t// store model\n\t\tacf.models[ mid ] = model;\n\n\t\t// store reference\n\t\tstorage.push( type );\n\t};\n\n\t/**\n\t * acf.getFieldType\n\t *\n\t * description\n\t *\n\t * @date\t1/2/18\n\t * @since\t5.6.5\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tacf.getFieldType = function ( type ) {\n\t\tvar mid = modelId( type );\n\t\treturn acf.models[ mid ] || false;\n\t};\n\n\t/**\n\t * acf.getFieldTypes\n\t *\n\t * description\n\t *\n\t * @date\t1/2/18\n\t * @since\t5.6.5\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tacf.getFieldTypes = function ( args ) {\n\t\t// defaults\n\t\targs = acf.parseArgs( args, {\n\t\t\tcategory: '',\n\t\t\t// hasValue: true\n\t\t} );\n\n\t\t// clonse available types\n\t\tvar types = [];\n\n\t\t// loop\n\t\tstorage.map( function ( type ) {\n\t\t\t// vars\n\t\t\tvar model = acf.getFieldType( type );\n\t\t\tvar proto = model.prototype;\n\n\t\t\t// check operator\n\t\t\tif ( args.category && proto.category !== args.category ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// append\n\t\t\ttypes.push( model );\n\t\t} );\n\n\t\t// return\n\t\treturn types;\n\t};\n} )( jQuery );\n","( function ( $, undefined ) {\n\t/**\n\t * findFields\n\t *\n\t * Returns a jQuery selection object of acf fields.\n\t *\n\t * @date\t14/12/17\n\t * @since\t5.6.5\n\t *\n\t * @param\tobject $args {\n\t *\t\tOptional. Arguments to find fields.\n\t *\n\t *\t\t@type string\t\t\tkey\t\t\tThe field's key (data-attribute).\n\t *\t\t@type string\t\t\tname\t\tThe field's name (data-attribute).\n\t *\t\t@type string\t\t\ttype\t\tThe field's type (data-attribute).\n\t *\t\t@type string\t\t\tis\t\t\tjQuery selector to compare against.\n\t *\t\t@type jQuery\t\t\tparent\t\tjQuery element to search within.\n\t *\t\t@type jQuery\t\t\tsibling\t\tjQuery element to search alongside.\n\t *\t\t@type limit\t\t\t\tint\t\t\tThe number of fields to find.\n\t *\t\t@type suppressFilters\tbool\t\tWhether to allow filters to add/remove results. Default behaviour will ignore clone fields.\n\t * }\n\t * @return\tjQuery\n\t */\n\n\tacf.findFields = function ( args ) {\n\t\t// vars\n\t\tvar selector = '.acf-field';\n\t\tvar $fields = false;\n\n\t\t// args\n\t\targs = acf.parseArgs( args, {\n\t\t\tkey: '',\n\t\t\tname: '',\n\t\t\ttype: '',\n\t\t\tis: '',\n\t\t\tparent: false,\n\t\t\tsibling: false,\n\t\t\tlimit: false,\n\t\t\tvisible: false,\n\t\t\tsuppressFilters: false,\n\t\t\texcludeSubFields: false,\n\t\t} );\n\n\t\t// filter args\n\t\tif ( ! args.suppressFilters ) {\n\t\t\targs = acf.applyFilters( 'find_fields_args', args );\n\t\t}\n\n\t\t// key\n\t\tif ( args.key ) {\n\t\t\tselector += '[data-key=\"' + args.key + '\"]';\n\t\t}\n\n\t\t// type\n\t\tif ( args.type ) {\n\t\t\tselector += '[data-type=\"' + args.type + '\"]';\n\t\t}\n\n\t\t// name\n\t\tif ( args.name ) {\n\t\t\tselector += '[data-name=\"' + args.name + '\"]';\n\t\t}\n\n\t\t// is\n\t\tif ( args.is ) {\n\t\t\tselector += args.is;\n\t\t}\n\n\t\t// visibility\n\t\tif ( args.visible ) {\n\t\t\tselector += ':visible';\n\t\t}\n\n\t\tif ( ! args.suppressFilters ) {\n\t\t\tselector = acf.applyFilters(\n\t\t\t\t'find_fields_selector',\n\t\t\t\tselector,\n\t\t\t\targs\n\t\t\t);\n\t\t}\n\n\t\t// query\n\t\tif ( args.parent ) {\n\t\t\t$fields = args.parent.find( selector );\n\t\t\t// exclude sub fields if required (only if a parent is provided)\n\t\t\tif ( args.excludeSubFields ) {\n\t\t\t\t$fields = $fields.not( args.parent.find( '.acf-is-subfields .acf-field' ) );\n\t\t\t}\n\t\t} else if ( args.sibling ) {\n\t\t\t$fields = args.sibling.siblings( selector );\n\t\t} else {\n\t\t\t$fields = $( selector );\n\t\t}\n\n\t\t// filter\n\t\tif ( ! args.suppressFilters ) {\n\t\t\t$fields = $fields.not( '.acf-clone .acf-field' );\n\t\t\t$fields = acf.applyFilters( 'find_fields', $fields );\n\t\t}\n\n\t\t// limit\n\t\tif ( args.limit ) {\n\t\t\t$fields = $fields.slice( 0, args.limit );\n\t\t}\n\n\t\t// return\n\t\treturn $fields;\n\t};\n\n\t/**\n\t * findField\n\t *\n\t * Finds a specific field with jQuery\n\t *\n\t * @date\t14/12/17\n\t * @since\t5.6.5\n\t *\n\t * @param\tstring key \t\tThe field's key.\n\t * @param\tjQuery $parent\tjQuery element to search within.\n\t * @return\tjQuery\n\t */\n\n\tacf.findField = function ( key, $parent ) {\n\t\treturn acf.findFields( {\n\t\t\tkey: key,\n\t\t\tlimit: 1,\n\t\t\tparent: $parent,\n\t\t\tsuppressFilters: true,\n\t\t} );\n\t};\n\n\t/**\n\t * getField\n\t *\n\t * Returns a field instance\n\t *\n\t * @date\t14/12/17\n\t * @since\t5.6.5\n\t *\n\t * @param\tjQuery|string $field\tjQuery element or field key.\n\t * @return\tobject\n\t */\n\n\tacf.getField = function ( $field ) {\n\t\t// allow jQuery\n\t\tif ( $field instanceof jQuery ) {\n\t\t\t// find fields\n\t\t} else {\n\t\t\t$field = acf.findField( $field );\n\t\t}\n\n\t\t// instantiate\n\t\tvar field = $field.data( 'acf' );\n\t\tif ( ! field ) {\n\t\t\tfield = acf.newField( $field );\n\t\t}\n\n\t\t// return\n\t\treturn field;\n\t};\n\n\t/**\n\t * getFields\n\t *\n\t * Returns multiple field instances\n\t *\n\t * @date\t14/12/17\n\t * @since\t5.6.5\n\t *\n\t * @param\tjQuery|object $fields\tjQuery elements or query args.\n\t * @return\tarray\n\t */\n\n\tacf.getFields = function ( $fields ) {\n\t\t// allow jQuery\n\t\tif ( $fields instanceof jQuery ) {\n\t\t\t// find fields\n\t\t} else {\n\t\t\t$fields = acf.findFields( $fields );\n\t\t}\n\n\t\t// loop\n\t\tvar fields = [];\n\t\t$fields.each( function () {\n\t\t\tvar field = acf.getField( $( this ) );\n\t\t\tfields.push( field );\n\t\t} );\n\n\t\t// return\n\t\treturn fields;\n\t};\n\n\t/**\n\t * findClosestField\n\t *\n\t * Returns the closest jQuery field element\n\t *\n\t * @date\t9/4/18\n\t * @since\t5.6.9\n\t *\n\t * @param\tjQuery $el\n\t * @return\tjQuery\n\t */\n\n\tacf.findClosestField = function ( $el ) {\n\t\treturn $el.closest( '.acf-field' );\n\t};\n\n\t/**\n\t * getClosestField\n\t *\n\t * Returns the closest field instance\n\t *\n\t * @date\t22/1/18\n\t * @since\t5.6.5\n\t *\n\t * @param\tjQuery $el\n\t * @return\tobject\n\t */\n\n\tacf.getClosestField = function ( $el ) {\n\t\tvar $field = acf.findClosestField( $el );\n\t\treturn this.getField( $field );\n\t};\n\n\t/**\n\t * addGlobalFieldAction\n\t *\n\t * Sets up callback logic for global field actions\n\t *\n\t * @date\t15/6/18\n\t * @since\t5.6.9\n\t *\n\t * @param\tstring action\n\t * @return\tvoid\n\t */\n\n\tvar addGlobalFieldAction = function ( action ) {\n\t\t// vars\n\t\tvar globalAction = action;\n\t\tvar pluralAction = action + '_fields'; // ready_fields\n\t\tvar singleAction = action + '_field'; // ready_field\n\n\t\t// global action\n\t\tvar globalCallback = function ( $el /*, arg1, arg2, etc*/ ) {\n\t\t\t//console.log( action, arguments );\n\n\t\t\t// get args [$el, ...]\n\t\t\tvar args = acf.arrayArgs( arguments );\n\t\t\tvar extraArgs = args.slice( 1 );\n\n\t\t\t// find fields\n\t\t\tvar fields = acf.getFields( { parent: $el } );\n\n\t\t\t// check\n\t\t\tif ( fields.length ) {\n\t\t\t\t// pluralAction\n\t\t\t\tvar pluralArgs = [ pluralAction, fields ].concat( extraArgs );\n\t\t\t\tacf.doAction.apply( null, pluralArgs );\n\t\t\t}\n\t\t};\n\n\t\t// plural action\n\t\tvar pluralCallback = function ( fields /*, arg1, arg2, etc*/ ) {\n\t\t\t//console.log( pluralAction, arguments );\n\n\t\t\t// get args [fields, ...]\n\t\t\tvar args = acf.arrayArgs( arguments );\n\t\t\tvar extraArgs = args.slice( 1 );\n\n\t\t\t// loop\n\t\t\tfields.map( function ( field, i ) {\n\t\t\t\t//setTimeout(function(){\n\t\t\t\t// singleAction\n\t\t\t\tvar singleArgs = [ singleAction, field ].concat( extraArgs );\n\t\t\t\tacf.doAction.apply( null, singleArgs );\n\t\t\t\t//}, i * 100);\n\t\t\t} );\n\t\t};\n\n\t\t// add actions\n\t\tacf.addAction( globalAction, globalCallback );\n\t\tacf.addAction( pluralAction, pluralCallback );\n\n\t\t// also add single action\n\t\taddSingleFieldAction( action );\n\t};\n\n\t/**\n\t * addSingleFieldAction\n\t *\n\t * Sets up callback logic for single field actions\n\t *\n\t * @date\t15/6/18\n\t * @since\t5.6.9\n\t *\n\t * @param\tstring action\n\t * @return\tvoid\n\t */\n\n\tvar addSingleFieldAction = function ( action ) {\n\t\t// vars\n\t\tvar singleAction = action + '_field'; // ready_field\n\t\tvar singleEvent = action + 'Field'; // readyField\n\n\t\t// single action\n\t\tvar singleCallback = function ( field /*, arg1, arg2, etc*/ ) {\n\t\t\t//console.log( singleAction, arguments );\n\n\t\t\t// get args [field, ...]\n\t\t\tvar args = acf.arrayArgs( arguments );\n\t\t\tvar extraArgs = args.slice( 1 );\n\n\t\t\t// action variations (ready_field/type=image)\n\t\t\tvar variations = [ 'type', 'name', 'key' ];\n\t\t\tvariations.map( function ( variation ) {\n\t\t\t\t// vars\n\t\t\t\tvar prefix = '/' + variation + '=' + field.get( variation );\n\n\t\t\t\t// singleAction\n\t\t\t\targs = [ singleAction + prefix, field ].concat( extraArgs );\n\t\t\t\tacf.doAction.apply( null, args );\n\t\t\t} );\n\n\t\t\t// event\n\t\t\tif ( singleFieldEvents.indexOf( action ) > -1 ) {\n\t\t\t\tfield.trigger( singleEvent, extraArgs );\n\t\t\t}\n\t\t};\n\n\t\t// add actions\n\t\tacf.addAction( singleAction, singleCallback );\n\t};\n\n\t// vars\n\tvar globalFieldActions = [\n\t\t'prepare',\n\t\t'ready',\n\t\t'load',\n\t\t'append',\n\t\t'remove',\n\t\t'unmount',\n\t\t'remount',\n\t\t'sortstart',\n\t\t'sortstop',\n\t\t'show',\n\t\t'hide',\n\t\t'unload',\n\t];\n\tvar singleFieldActions = [\n\t\t'valid',\n\t\t'invalid',\n\t\t'enable',\n\t\t'disable',\n\t\t'new',\n\t\t'duplicate',\n\t];\n\tvar singleFieldEvents = [\n\t\t'remove',\n\t\t'unmount',\n\t\t'remount',\n\t\t'sortstart',\n\t\t'sortstop',\n\t\t'show',\n\t\t'hide',\n\t\t'unload',\n\t\t'valid',\n\t\t'invalid',\n\t\t'enable',\n\t\t'disable',\n\t\t'duplicate',\n\t];\n\n\t// add\n\tglobalFieldActions.map( addGlobalFieldAction );\n\tsingleFieldActions.map( addSingleFieldAction );\n\n\t/**\n\t * fieldsEventManager\n\t *\n\t * Manages field actions and events\n\t *\n\t * @date\t15/12/17\n\t * @since\t5.6.5\n\t *\n\t * @param\tvoid\n\t * @param\tvoid\n\t */\n\n\tvar fieldsEventManager = new acf.Model( {\n\t\tid: 'fieldsEventManager',\n\t\tevents: {\n\t\t\t'click .acf-field a[href=\"#\"]': 'onClick',\n\t\t\t'change .acf-field': 'onChange',\n\t\t},\n\t\tonClick: function ( e ) {\n\t\t\t// prevent default of any link with an href of #\n\t\t\te.preventDefault();\n\t\t},\n\t\tonChange: function () {\n\t\t\t// preview hack allows post to save with no title or content\n\t\t\t$( '#_acf_changed' ).val( 1 );\n\t\t},\n\t} );\n\n\tvar duplicateFieldsManager = new acf.Model( {\n\t\tid: 'duplicateFieldsManager',\n\t\tactions: {\n\t\t\tduplicate: 'onDuplicate',\n\t\t\tduplicate_fields: 'onDuplicateFields',\n\t\t},\n\t\tonDuplicate: function ( $el, $el2 ) {\n\t\t\tvar fields = acf.getFields( { parent: $el } );\n\t\t\tif ( fields.length ) {\n\t\t\t\tvar $fields = acf.findFields( { parent: $el2 } );\n\t\t\t\tacf.doAction( 'duplicate_fields', fields, $fields );\n\t\t\t}\n\t\t},\n\t\tonDuplicateFields: function ( fields, duplicates ) {\n\t\t\tfields.map( function ( field, i ) {\n\t\t\t\tacf.doAction( 'duplicate_field', field, $( duplicates[ i ] ) );\n\t\t\t} );\n\t\t},\n\t} );\n} )( jQuery );\n","( function ( $, undefined ) {\n\t/**\n\t * refreshHelper\n\t *\n\t * description\n\t *\n\t * @date\t1/7/18\n\t * @since\t5.6.9\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tvar refreshHelper = new acf.Model( {\n\t\tpriority: 90,\n\t\tactions: {\n\t\t\tnew_field: 'refresh',\n\t\t\tshow_field: 'refresh',\n\t\t\thide_field: 'refresh',\n\t\t\tremove_field: 'refresh',\n\t\t\tunmount_field: 'refresh',\n\t\t\tremount_field: 'refresh',\n\t\t},\n\t\trefresh: function () {\n\t\t\tacf.refresh();\n\t\t},\n\t} );\n\n\t/**\n\t * mountHelper\n\t *\n\t * Adds compatiblity for the 'unmount' and 'remount' actions added in 5.8.0\n\t *\n\t * @date\t7/3/19\n\t * @since\t5.7.14\n\t *\n\t * @param\tvoid\n\t * @return\tvoid\n\t */\n\tvar mountHelper = new acf.Model( {\n\t\tpriority: 1,\n\t\tactions: {\n\t\t\tsortstart: 'onSortstart',\n\t\t\tsortstop: 'onSortstop',\n\t\t},\n\t\tonSortstart: function ( $item ) {\n\t\t\tacf.doAction( 'unmount', $item );\n\t\t},\n\t\tonSortstop: function ( $item ) {\n\t\t\tacf.doAction( 'remount', $item );\n\t\t},\n\t} );\n\n\t/**\n\t * sortableHelper\n\t *\n\t * Adds compatibility for sorting a
              element\n\t *\n\t * @date\t6/3/18\n\t * @since\t5.6.9\n\t *\n\t * @param\tvoid\n\t * @return\tvoid\n\t */\n\n\tvar sortableHelper = new acf.Model( {\n\t\tactions: {\n\t\t\tsortstart: 'onSortstart',\n\t\t},\n\t\tonSortstart: function ( $item, $placeholder ) {\n\t\t\t// if $item is a tr, apply some css to the elements\n\t\t\tif ( $item.is( 'tr' ) ) {\n\t\t\t\t// replace $placeholder children with a single td\n\t\t\t\t// fixes \"width calculation issues\" due to conditional logic hiding some children\n\t\t\t\t$placeholder.html(\n\t\t\t\t\t''\n\t\t\t\t);\n\n\t\t\t\t// add helper class to remove absolute positioning\n\t\t\t\t$item.addClass( 'acf-sortable-tr-helper' );\n\n\t\t\t\t// set fixed widths for children\n\t\t\t\t$item.children().each( function () {\n\t\t\t\t\t$( this ).width( $( this ).width() );\n\t\t\t\t} );\n\n\t\t\t\t// mimic height\n\t\t\t\t$placeholder.height( $item.height() + 'px' );\n\n\t\t\t\t// remove class\n\t\t\t\t$item.removeClass( 'acf-sortable-tr-helper' );\n\t\t\t}\n\t\t},\n\t} );\n\n\t/**\n\t * duplicateHelper\n\t *\n\t * Fixes browser bugs when duplicating an element\n\t *\n\t * @date\t6/3/18\n\t * @since\t5.6.9\n\t *\n\t * @param\tvoid\n\t * @return\tvoid\n\t */\n\n\tvar duplicateHelper = new acf.Model( {\n\t\tactions: {\n\t\t\tafter_duplicate: 'onAfterDuplicate',\n\t\t},\n\t\tonAfterDuplicate: function ( $el, $el2 ) {\n\t\t\t// get original values\n\t\t\tvar vals = [];\n\t\t\t$el.find( 'select' ).each( function ( i ) {\n\t\t\t\tvals.push( $( this ).val() );\n\t\t\t} );\n\n\t\t\t// set duplicate values\n\t\t\t$el2.find( 'select' ).each( function ( i ) {\n\t\t\t\t$( this ).val( vals[ i ] );\n\t\t\t} );\n\t\t},\n\t} );\n\n\t/**\n\t * tableHelper\n\t *\n\t * description\n\t *\n\t * @date\t6/3/18\n\t * @since\t5.6.9\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tvar tableHelper = new acf.Model( {\n\t\tid: 'tableHelper',\n\n\t\tpriority: 20,\n\n\t\tactions: {\n\t\t\trefresh: 'renderTables',\n\t\t},\n\n\t\trenderTables: function ( $el ) {\n\t\t\t// loop\n\t\t\tvar self = this;\n\t\t\t$( '.acf-table:visible' ).each( function () {\n\t\t\t\tself.renderTable( $( this ) );\n\t\t\t} );\n\t\t},\n\n\t\trenderTable: function ( $table ) {\n\t\t\t// vars\n\t\t\tvar $ths = $table.find( '> thead > tr:visible > th[data-key]' );\n\t\t\tvar $tds = $table.find( '> tbody > tr:visible > td[data-key]' );\n\n\t\t\t// bail early if no thead\n\t\t\tif ( ! $ths.length || ! $tds.length ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// visiblity\n\t\t\t$ths.each( function ( i ) {\n\t\t\t\t// vars\n\t\t\t\tvar $th = $( this );\n\t\t\t\tvar key = $th.data( 'key' );\n\t\t\t\tvar $cells = $tds.filter( '[data-key=\"' + key + '\"]' );\n\t\t\t\tvar $hidden = $cells.filter( '.acf-hidden' );\n\n\t\t\t\t// always remove empty and allow cells to be hidden\n\t\t\t\t$cells.removeClass( 'acf-empty' );\n\n\t\t\t\t// hide $th if all cells are hidden\n\t\t\t\tif ( $cells.length === $hidden.length ) {\n\t\t\t\t\tacf.hide( $th );\n\n\t\t\t\t\t// force all hidden cells to appear empty\n\t\t\t\t} else {\n\t\t\t\t\tacf.show( $th );\n\t\t\t\t\t$hidden.addClass( 'acf-empty' );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t// clear width\n\t\t\t$ths.css( 'width', 'auto' );\n\n\t\t\t// get visible\n\t\t\t$ths = $ths.not( '.acf-hidden' );\n\n\t\t\t// vars\n\t\t\tvar availableWidth = 100;\n\t\t\tvar colspan = $ths.length;\n\n\t\t\t// set custom widths first\n\t\t\tvar $fixedWidths = $ths.filter( '[data-width]' );\n\t\t\t$fixedWidths.each( function () {\n\t\t\t\tvar width = $( this ).data( 'width' );\n\t\t\t\t$( this ).css( 'width', width + '%' );\n\t\t\t\tavailableWidth -= width;\n\t\t\t} );\n\n\t\t\t// set auto widths\n\t\t\tvar $auoWidths = $ths.not( '[data-width]' );\n\t\t\tif ( $auoWidths.length ) {\n\t\t\t\tvar width = availableWidth / $auoWidths.length;\n\t\t\t\t$auoWidths.css( 'width', width + '%' );\n\t\t\t\tavailableWidth = 0;\n\t\t\t}\n\n\t\t\t// avoid stretching issue\n\t\t\tif ( availableWidth > 0 ) {\n\t\t\t\t$ths.last().css( 'width', 'auto' );\n\t\t\t}\n\n\t\t\t// update colspan on collapsed\n\t\t\t$tds.filter( '.-collapsed-target' ).each( function () {\n\t\t\t\t// vars\n\t\t\t\tvar $td = $( this );\n\n\t\t\t\t// check if collapsed\n\t\t\t\tif ( $td.parent().hasClass( '-collapsed' ) ) {\n\t\t\t\t\t$td.attr( 'colspan', $ths.length );\n\t\t\t\t} else {\n\t\t\t\t\t$td.removeAttr( 'colspan' );\n\t\t\t\t}\n\t\t\t} );\n\t\t},\n\t} );\n\n\t/**\n\t * fieldsHelper\n\t *\n\t * description\n\t *\n\t * @date\t6/3/18\n\t * @since\t5.6.9\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tvar fieldsHelper = new acf.Model( {\n\t\tid: 'fieldsHelper',\n\n\t\tpriority: 30,\n\n\t\tactions: {\n\t\t\trefresh: 'renderGroups',\n\t\t},\n\n\t\trenderGroups: function () {\n\t\t\t// loop\n\t\t\tvar self = this;\n\t\t\t$( '.acf-fields:visible' ).each( function () {\n\t\t\t\tself.renderGroup( $( this ) );\n\t\t\t} );\n\t\t},\n\n\t\trenderGroup: function ( $el ) {\n\t\t\t// vars\n\t\t\tvar top = 0;\n\t\t\tvar height = 0;\n\t\t\tvar $row = $();\n\n\t\t\t// get fields\n\t\t\tvar $fields = $el.children( '.acf-field[data-width]:visible' );\n\n\t\t\t// bail early if no fields\n\t\t\tif ( ! $fields.length ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// bail early if is .-left\n\t\t\tif ( $el.hasClass( '-left' ) ) {\n\t\t\t\t$fields.removeAttr( 'data-width' );\n\t\t\t\t$fields.css( 'width', 'auto' );\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// reset fields\n\t\t\t$fields.removeClass( '-r0 -c0' ).css( { 'min-height': 0 } );\n\n\t\t\t// loop\n\t\t\t$fields.each( function ( i ) {\n\t\t\t\t// vars\n\t\t\t\tvar $field = $( this );\n\t\t\t\tvar position = $field.position();\n\t\t\t\tvar thisTop = Math.ceil( position.top );\n\t\t\t\tvar thisLeft = Math.ceil( position.left );\n\n\t\t\t\t// detect change in row\n\t\t\t\tif ( $row.length && thisTop > top ) {\n\t\t\t\t\t// set previous heights\n\t\t\t\t\t$row.css( { 'min-height': height + 'px' } );\n\n\t\t\t\t\t// update position due to change in row above\n\t\t\t\t\tposition = $field.position();\n\t\t\t\t\tthisTop = Math.ceil( position.top );\n\t\t\t\t\tthisLeft = Math.ceil( position.left );\n\n\t\t\t\t\t// reset vars\n\t\t\t\t\ttop = 0;\n\t\t\t\t\theight = 0;\n\t\t\t\t\t$row = $();\n\t\t\t\t}\n\n\t\t\t\t// rtl\n\t\t\t\tif ( acf.get( 'rtl' ) ) {\n\t\t\t\t\tthisLeft = Math.ceil(\n\t\t\t\t\t\t$field.parent().width() -\n\t\t\t\t\t\t\t( position.left + $field.outerWidth() )\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// add classes\n\t\t\t\tif ( thisTop == 0 ) {\n\t\t\t\t\t$field.addClass( '-r0' );\n\t\t\t\t} else if ( thisLeft == 0 ) {\n\t\t\t\t\t$field.addClass( '-c0' );\n\t\t\t\t}\n\n\t\t\t\t// get height after class change\n\t\t\t\t// - add 1 for subpixel rendering\n\t\t\t\tvar thisHeight = Math.ceil( $field.outerHeight() ) + 1;\n\n\t\t\t\t// set height\n\t\t\t\theight = Math.max( height, thisHeight );\n\n\t\t\t\t// set y\n\t\t\t\ttop = Math.max( top, thisTop );\n\n\t\t\t\t// append\n\t\t\t\t$row = $row.add( $field );\n\t\t\t} );\n\n\t\t\t// clean up\n\t\t\tif ( $row.length ) {\n\t\t\t\t$row.css( { 'min-height': height + 'px' } );\n\t\t\t}\n\t\t},\n\t} );\n\n\t/**\n\t * Adds a body class when holding down the \"shift\" key.\n\t *\n\t * @date\t06/05/2020\n\t * @since\t5.9.0\n\t */\n\tvar bodyClassShiftHelper = new acf.Model( {\n\t\tid: 'bodyClassShiftHelper',\n\t\tevents: {\n\t\t\tkeydown: 'onKeyDown',\n\t\t\tkeyup: 'onKeyUp',\n\t\t},\n\t\tisShiftKey: function ( e ) {\n\t\t\treturn e.keyCode === 16;\n\t\t},\n\t\tonKeyDown: function ( e ) {\n\t\t\tif ( this.isShiftKey( e ) ) {\n\t\t\t\t$( 'body' ).addClass( 'acf-keydown-shift' );\n\t\t\t}\n\t\t},\n\t\tonKeyUp: function ( e ) {\n\t\t\tif ( this.isShiftKey( e ) ) {\n\t\t\t\t$( 'body' ).removeClass( 'acf-keydown-shift' );\n\t\t\t}\n\t\t},\n\t} );\n} )( jQuery );\n","( function ( $, undefined ) {\n\t/**\n\t * acf.newMediaPopup\n\t *\n\t * description\n\t *\n\t * @date\t10/1/18\n\t * @since\t5.6.5\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tacf.newMediaPopup = function ( args ) {\n\t\t// args\n\t\tvar popup = null;\n\t\tvar args = acf.parseArgs( args, {\n\t\t\tmode: 'select', // 'select', 'edit'\n\t\t\ttitle: '', // 'Upload Image'\n\t\t\tbutton: '', // 'Select Image'\n\t\t\ttype: '', // 'image', ''\n\t\t\tfield: false, // field instance\n\t\t\tallowedTypes: '', // '.jpg, .png, etc'\n\t\t\tlibrary: 'all', // 'all', 'uploadedTo'\n\t\t\tmultiple: false, // false, true, 'add'\n\t\t\tattachment: 0, // the attachment to edit\n\t\t\tautoOpen: true, // open the popup automatically\n\t\t\topen: function () {}, // callback after close\n\t\t\tselect: function () {}, // callback after select\n\t\t\tclose: function () {}, // callback after close\n\t\t} );\n\n\t\t// initialize\n\t\tif ( args.mode == 'edit' ) {\n\t\t\tpopup = new acf.models.EditMediaPopup( args );\n\t\t} else {\n\t\t\tpopup = new acf.models.SelectMediaPopup( args );\n\t\t}\n\n\t\t// open popup (allow frame customization before opening)\n\t\tif ( args.autoOpen ) {\n\t\t\tsetTimeout( function () {\n\t\t\t\tpopup.open();\n\t\t\t}, 1 );\n\t\t}\n\n\t\t// action\n\t\tacf.doAction( 'new_media_popup', popup );\n\n\t\t// return\n\t\treturn popup;\n\t};\n\n\t/**\n\t * getPostID\n\t *\n\t * description\n\t *\n\t * @date\t10/1/18\n\t * @since\t5.6.5\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tvar getPostID = function () {\n\t\tvar postID = acf.get( 'post_id' );\n\t\treturn acf.isNumeric( postID ) ? postID : 0;\n\t};\n\n\t/**\n\t * acf.getMimeTypes\n\t *\n\t * description\n\t *\n\t * @date\t11/1/18\n\t * @since\t5.6.5\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tacf.getMimeTypes = function () {\n\t\treturn this.get( 'mimeTypes' );\n\t};\n\n\tacf.getMimeType = function ( name ) {\n\t\t// vars\n\t\tvar allTypes = acf.getMimeTypes();\n\n\t\t// search\n\t\tif ( allTypes[ name ] !== undefined ) {\n\t\t\treturn allTypes[ name ];\n\t\t}\n\n\t\t// some types contain a mixed key such as \"jpg|jpeg|jpe\"\n\t\tfor ( var key in allTypes ) {\n\t\t\tif ( key.indexOf( name ) !== -1 ) {\n\t\t\t\treturn allTypes[ key ];\n\t\t\t}\n\t\t}\n\n\t\t// return\n\t\treturn false;\n\t};\n\n\t/**\n\t * MediaPopup\n\t *\n\t * description\n\t *\n\t * @date\t10/1/18\n\t * @since\t5.6.5\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tvar MediaPopup = acf.Model.extend( {\n\t\tid: 'MediaPopup',\n\t\tdata: {},\n\t\tdefaults: {},\n\t\tframe: false,\n\n\t\tsetup: function ( props ) {\n\t\t\t$.extend( this.data, props );\n\t\t},\n\n\t\tinitialize: function () {\n\t\t\t// vars\n\t\t\tvar options = this.getFrameOptions();\n\n\t\t\t// add states\n\t\t\tthis.addFrameStates( options );\n\n\t\t\t// create frame\n\t\t\tvar frame = wp.media( options );\n\n\t\t\t// add args reference\n\t\t\tframe.acf = this;\n\n\t\t\t// add events\n\t\t\tthis.addFrameEvents( frame, options );\n\n\t\t\t// strore frame\n\t\t\tthis.frame = frame;\n\t\t},\n\n\t\topen: function () {\n\t\t\tthis.frame.open();\n\t\t},\n\n\t\tclose: function () {\n\t\t\tthis.frame.close();\n\t\t},\n\n\t\tremove: function () {\n\t\t\tthis.frame.detach();\n\t\t\tthis.frame.remove();\n\t\t},\n\n\t\tgetFrameOptions: function () {\n\t\t\t// vars\n\t\t\tvar options = {\n\t\t\t\ttitle: this.get( 'title' ),\n\t\t\t\tmultiple: this.get( 'multiple' ),\n\t\t\t\tlibrary: {},\n\t\t\t\tstates: [],\n\t\t\t};\n\n\t\t\t// type\n\t\t\tif ( this.get( 'type' ) ) {\n\t\t\t\toptions.library.type = this.get( 'type' );\n\t\t\t}\n\n\t\t\t// type\n\t\t\tif ( this.get( 'library' ) === 'uploadedTo' ) {\n\t\t\t\toptions.library.uploadedTo = getPostID();\n\t\t\t}\n\n\t\t\t// attachment\n\t\t\tif ( this.get( 'attachment' ) ) {\n\t\t\t\toptions.library.post__in = [ this.get( 'attachment' ) ];\n\t\t\t}\n\n\t\t\t// button\n\t\t\tif ( this.get( 'button' ) ) {\n\t\t\t\toptions.button = {\n\t\t\t\t\ttext: this.get( 'button' ),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// return\n\t\t\treturn options;\n\t\t},\n\n\t\taddFrameStates: function ( options ) {\n\t\t\t// create query\n\t\t\tvar Query = wp.media.query( options.library );\n\n\t\t\t// add _acfuploader\n\t\t\t// this is super wack!\n\t\t\t// if you add _acfuploader to the options.library args, new uploads will not be added to the library view.\n\t\t\t// this has been traced back to the wp.media.model.Query initialize function (which can't be overriden)\n\t\t\t// Adding any custom args will cause the Attahcments to not observe the uploader queue\n\t\t\t// To bypass this security issue, we add in the args AFTER the Query has been initialized\n\t\t\t// options.library._acfuploader = settings.field;\n\t\t\tif (\n\t\t\t\tthis.get( 'field' ) &&\n\t\t\t\tacf.isset( Query, 'mirroring', 'args' )\n\t\t\t) {\n\t\t\t\tQuery.mirroring.args._acfuploader = this.get( 'field' );\n\t\t\t}\n\n\t\t\t// add states\n\t\t\toptions.states.push(\n\t\t\t\t// main state\n\t\t\t\tnew wp.media.controller.Library( {\n\t\t\t\t\tlibrary: Query,\n\t\t\t\t\tmultiple: this.get( 'multiple' ),\n\t\t\t\t\ttitle: this.get( 'title' ),\n\t\t\t\t\tpriority: 20,\n\t\t\t\t\tfilterable: 'all',\n\t\t\t\t\teditable: true,\n\t\t\t\t\tallowLocalEdits: true,\n\t\t\t\t} )\n\t\t\t);\n\n\t\t\t// edit image functionality (added in WP 3.9)\n\t\t\tif ( acf.isset( wp, 'media', 'controller', 'EditImage' ) ) {\n\t\t\t\toptions.states.push( new wp.media.controller.EditImage() );\n\t\t\t}\n\t\t},\n\n\t\taddFrameEvents: function ( frame, options ) {\n\t\t\t// log all events\n\t\t\t//frame.on('all', function( e ) {\n\t\t\t//\tconsole.log( 'frame all: %o', e );\n\t\t\t//});\n\n\t\t\t// add class\n\t\t\tframe.on(\n\t\t\t\t'open',\n\t\t\t\tfunction () {\n\t\t\t\t\tthis.$el\n\t\t\t\t\t\t.closest( '.media-modal' )\n\t\t\t\t\t\t.addClass(\n\t\t\t\t\t\t\t'acf-media-modal -' + this.acf.get( 'mode' )\n\t\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\tframe\n\t\t\t);\n\n\t\t\t// edit image view\n\t\t\t// source: media-views.js:2410 editImageContent()\n\t\t\tframe.on(\n\t\t\t\t'content:render:edit-image',\n\t\t\t\tfunction () {\n\t\t\t\t\tvar image = this.state().get( 'image' );\n\t\t\t\t\tvar view = new wp.media.view.EditImage( {\n\t\t\t\t\t\tmodel: image,\n\t\t\t\t\t\tcontroller: this,\n\t\t\t\t\t} ).render();\n\t\t\t\t\tthis.content.set( view );\n\n\t\t\t\t\t// after creating the wrapper view, load the actual editor via an ajax call\n\t\t\t\t\tview.loadEditor();\n\t\t\t\t},\n\t\t\t\tframe\n\t\t\t);\n\n\t\t\t// update toolbar button\n\t\t\t//frame.on( 'toolbar:create:select', function( toolbar ) {\n\t\t\t//\ttoolbar.view = new wp.media.view.Toolbar.Select({\n\t\t\t//\t\ttext: frame.options._button,\n\t\t\t//\t\tcontroller: this\n\t\t\t//\t});\n\t\t\t//}, frame );\n\n\t\t\t// on select\n\t\t\tframe.on( 'select', function () {\n\t\t\t\t// vars\n\t\t\t\tvar selection = frame.state().get( 'selection' );\n\n\t\t\t\t// if selecting images\n\t\t\t\tif ( selection ) {\n\t\t\t\t\t// loop\n\t\t\t\t\tselection.each( function ( attachment, i ) {\n\t\t\t\t\t\tframe.acf\n\t\t\t\t\t\t\t.get( 'select' )\n\t\t\t\t\t\t\t.apply( frame.acf, [ attachment, i ] );\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t// on close\n\t\t\tframe.on( 'close', function () {\n\t\t\t\t// callback and remove\n\t\t\t\tsetTimeout( function () {\n\t\t\t\t\tframe.acf.get( 'close' ).apply( frame.acf );\n\t\t\t\t\tframe.acf.remove();\n\t\t\t\t}, 1 );\n\t\t\t} );\n\t\t},\n\t} );\n\n\t/**\n\t * acf.models.SelectMediaPopup\n\t *\n\t * description\n\t *\n\t * @date\t10/1/18\n\t * @since\t5.6.5\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tacf.models.SelectMediaPopup = MediaPopup.extend( {\n\t\tid: 'SelectMediaPopup',\n\t\tsetup: function ( props ) {\n\t\t\t// default button\n\t\t\tif ( ! props.button ) {\n\t\t\t\tprops.button = acf._x( 'Select', 'verb' );\n\t\t\t}\n\n\t\t\t// parent\n\t\t\tMediaPopup.prototype.setup.apply( this, arguments );\n\t\t},\n\n\t\taddFrameEvents: function ( frame, options ) {\n\t\t\t// plupload\n\t\t\t// adds _acfuploader param to validate uploads\n\t\t\tif (\n\t\t\t\tacf.isset( _wpPluploadSettings, 'defaults', 'multipart_params' )\n\t\t\t) {\n\t\t\t\t// add _acfuploader so that Uploader will inherit\n\t\t\t\t_wpPluploadSettings.defaults.multipart_params._acfuploader = this.get(\n\t\t\t\t\t'field'\n\t\t\t\t);\n\n\t\t\t\t// remove acf_field so future Uploaders won't inherit\n\t\t\t\tframe.on( 'open', function () {\n\t\t\t\t\tdelete _wpPluploadSettings\n\t\t\t\t\t\t.defaults.multipart_params._acfuploader;\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t// browse\n\t\t\tframe.on( 'content:activate:browse', function () {\n\t\t\t\t// vars\n\t\t\t\tvar toolbar = false;\n\n\t\t\t\t// populate above vars making sure to allow for failure\n\t\t\t\t// perhaps toolbar does not exist because the frame open is Upload Files\n\t\t\t\ttry {\n\t\t\t\t\ttoolbar = frame.content.get().toolbar;\n\t\t\t\t} catch ( e ) {\n\t\t\t\t\tconsole.log( e );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// callback\n\t\t\t\tframe.acf.customizeFilters.apply( frame.acf, [ toolbar ] );\n\t\t\t} );\n\n\t\t\t// parent\n\t\t\tMediaPopup.prototype.addFrameEvents.apply( this, arguments );\n\t\t},\n\n\t\tcustomizeFilters: function ( toolbar ) {\n\t\t\t// vars\n\t\t\tvar filters = toolbar.get( 'filters' );\n\n\t\t\t// image\n\t\t\tif ( this.get( 'type' ) == 'image' ) {\n\t\t\t\t// update all\n\t\t\t\tfilters.filters.all.text = acf.__( 'All images' );\n\n\t\t\t\t// remove some filters\n\t\t\t\tdelete filters.filters.audio;\n\t\t\t\tdelete filters.filters.video;\n\t\t\t\tdelete filters.filters.image;\n\n\t\t\t\t// update all filters to show images\n\t\t\t\t$.each( filters.filters, function ( i, filter ) {\n\t\t\t\t\tfilter.props.type = filter.props.type || 'image';\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t// specific types\n\t\t\tif ( this.get( 'allowedTypes' ) ) {\n\t\t\t\t// convert \".jpg, .png\" into [\"jpg\", \"png\"]\n\t\t\t\tvar allowedTypes = this.get( 'allowedTypes' )\n\t\t\t\t\t.split( ' ' )\n\t\t\t\t\t.join( '' )\n\t\t\t\t\t.split( '.' )\n\t\t\t\t\t.join( '' )\n\t\t\t\t\t.split( ',' );\n\n\t\t\t\t// loop\n\t\t\t\tallowedTypes.map( function ( name ) {\n\t\t\t\t\t// get type\n\t\t\t\t\tvar mimeType = acf.getMimeType( name );\n\n\t\t\t\t\t// bail early if no type\n\t\t\t\t\tif ( ! mimeType ) return;\n\n\t\t\t\t\t// create new filter\n\t\t\t\t\tvar newFilter = {\n\t\t\t\t\t\ttext: mimeType,\n\t\t\t\t\t\tprops: {\n\t\t\t\t\t\t\tstatus: null,\n\t\t\t\t\t\t\ttype: mimeType,\n\t\t\t\t\t\t\tuploadedTo: null,\n\t\t\t\t\t\t\torderby: 'date',\n\t\t\t\t\t\t\torder: 'DESC',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tpriority: 20,\n\t\t\t\t\t};\n\n\t\t\t\t\t// append\n\t\t\t\t\tfilters.filters[ mimeType ] = newFilter;\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t// uploaded to post\n\t\t\tif ( this.get( 'library' ) === 'uploadedTo' ) {\n\t\t\t\t// vars\n\t\t\t\tvar uploadedTo = this.frame.options.library.uploadedTo;\n\n\t\t\t\t// remove some filters\n\t\t\t\tdelete filters.filters.unattached;\n\t\t\t\tdelete filters.filters.uploaded;\n\n\t\t\t\t// add uploadedTo to filters\n\t\t\t\t$.each( filters.filters, function ( i, filter ) {\n\t\t\t\t\tfilter.text +=\n\t\t\t\t\t\t' (' + acf.__( 'Uploaded to this post' ) + ')';\n\t\t\t\t\tfilter.props.uploadedTo = uploadedTo;\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t// add _acfuploader to filters\n\t\t\tvar field = this.get( 'field' );\n\t\t\t$.each( filters.filters, function ( k, filter ) {\n\t\t\t\tfilter.props._acfuploader = field;\n\t\t\t} );\n\n\t\t\t// add _acfuplaoder to search\n\t\t\tvar search = toolbar.get( 'search' );\n\t\t\tsearch.model.attributes._acfuploader = field;\n\n\t\t\t// render (custom function added to prototype)\n\t\t\tif ( filters.renderFilters ) {\n\t\t\t\tfilters.renderFilters();\n\t\t\t}\n\t\t},\n\t} );\n\n\t/**\n\t * acf.models.EditMediaPopup\n\t *\n\t * description\n\t *\n\t * @date\t10/1/18\n\t * @since\t5.6.5\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tacf.models.EditMediaPopup = MediaPopup.extend( {\n\t\tid: 'SelectMediaPopup',\n\t\tsetup: function ( props ) {\n\t\t\t// default button\n\t\t\tif ( ! props.button ) {\n\t\t\t\tprops.button = acf._x( 'Update', 'verb' );\n\t\t\t}\n\n\t\t\t// parent\n\t\t\tMediaPopup.prototype.setup.apply( this, arguments );\n\t\t},\n\n\t\taddFrameEvents: function ( frame, options ) {\n\t\t\t// add class\n\t\t\tframe.on(\n\t\t\t\t'open',\n\t\t\t\tfunction () {\n\t\t\t\t\t// add class\n\t\t\t\t\tthis.$el\n\t\t\t\t\t\t.closest( '.media-modal' )\n\t\t\t\t\t\t.addClass( 'acf-expanded' );\n\n\t\t\t\t\t// set to browse\n\t\t\t\t\tif ( this.content.mode() != 'browse' ) {\n\t\t\t\t\t\tthis.content.mode( 'browse' );\n\t\t\t\t\t}\n\n\t\t\t\t\t// set selection\n\t\t\t\t\tvar state = this.state();\n\t\t\t\t\tvar selection = state.get( 'selection' );\n\t\t\t\t\tvar attachment = wp.media.attachment(\n\t\t\t\t\t\tframe.acf.get( 'attachment' )\n\t\t\t\t\t);\n\t\t\t\t\tselection.add( attachment );\n\t\t\t\t},\n\t\t\t\tframe\n\t\t\t);\n\n\t\t\t// parent\n\t\t\tMediaPopup.prototype.addFrameEvents.apply( this, arguments );\n\t\t},\n\t} );\n\n\t/**\n\t * customizePrototypes\n\t *\n\t * description\n\t *\n\t * @date\t11/1/18\n\t * @since\t5.6.5\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tvar customizePrototypes = new acf.Model( {\n\t\tid: 'customizePrototypes',\n\t\twait: 'ready',\n\n\t\tinitialize: function () {\n\t\t\t// bail early if no media views\n\t\t\tif ( ! acf.isset( window, 'wp', 'media', 'view' ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// fix bug where CPT without \"editor\" does not set post.id setting which then prevents uploadedTo from working\n\t\t\tvar postID = getPostID();\n\t\t\tif (\n\t\t\t\tpostID &&\n\t\t\t\tacf.isset( wp, 'media', 'view', 'settings', 'post' )\n\t\t\t) {\n\t\t\t\twp.media.view.settings.post.id = postID;\n\t\t\t}\n\n\t\t\t// customize\n\t\t\tthis.customizeAttachmentsButton();\n\t\t\tthis.customizeAttachmentsRouter();\n\t\t\tthis.customizeAttachmentFilters();\n\t\t\tthis.customizeAttachmentCompat();\n\t\t\tthis.customizeAttachmentLibrary();\n\t\t},\n\n\t\tcustomizeAttachmentsButton: function () {\n\t\t\t// validate\n\t\t\tif ( ! acf.isset( wp, 'media', 'view', 'Button' ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Extend\n\t\t\tvar Button = wp.media.view.Button;\n\t\t\twp.media.view.Button = Button.extend( {\n\t\t\t\t// Fix bug where \"Select\" button appears blank after editing an image.\n\t\t\t\t// Do this by simplifying Button initialize function and avoid deleting this.options.\n\t\t\t\tinitialize: function () {\n\t\t\t\t\tvar options = _.defaults( this.options, this.defaults );\n\t\t\t\t\tthis.model = new Backbone.Model( options );\n\t\t\t\t\tthis.listenTo( this.model, 'change', this.render );\n\t\t\t\t},\n\t\t\t} );\n\t\t},\n\n\t\tcustomizeAttachmentsRouter: function () {\n\t\t\t// validate\n\t\t\tif ( ! acf.isset( wp, 'media', 'view', 'Router' ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// vars\n\t\t\tvar Parent = wp.media.view.Router;\n\n\t\t\t// extend\n\t\t\twp.media.view.Router = Parent.extend( {\n\t\t\t\taddExpand: function () {\n\t\t\t\t\t// vars\n\t\t\t\t\tvar $a = $(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t'',\n\t\t\t\t\t\t\t'' +\n\t\t\t\t\t\t\t\tacf.__( 'Expand Details' ) +\n\t\t\t\t\t\t\t\t'',\n\t\t\t\t\t\t\t'' +\n\t\t\t\t\t\t\t\tacf.__( 'Collapse Details' ) +\n\t\t\t\t\t\t\t\t'',\n\t\t\t\t\t\t\t'',\n\t\t\t\t\t\t].join( '' )\n\t\t\t\t\t);\n\n\t\t\t\t\t// add events\n\t\t\t\t\t$a.on( 'click', function ( e ) {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\tvar $div = $( this ).closest( '.media-modal' );\n\t\t\t\t\t\tif ( $div.hasClass( 'acf-expanded' ) ) {\n\t\t\t\t\t\t\t$div.removeClass( 'acf-expanded' );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$div.addClass( 'acf-expanded' );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\n\t\t\t\t\t// append\n\t\t\t\t\tthis.$el.append( $a );\n\t\t\t\t},\n\n\t\t\t\tinitialize: function () {\n\t\t\t\t\t// initialize\n\t\t\t\t\tParent.prototype.initialize.apply( this, arguments );\n\n\t\t\t\t\t// add buttons\n\t\t\t\t\tthis.addExpand();\n\n\t\t\t\t\t// return\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t} );\n\t\t},\n\n\t\tcustomizeAttachmentFilters: function () {\n\t\t\t// validate\n\t\t\tif (\n\t\t\t\t! acf.isset( wp, 'media', 'view', 'AttachmentFilters', 'All' )\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// vars\n\t\t\tvar Parent = wp.media.view.AttachmentFilters.All;\n\n\t\t\t// renderFilters\n\t\t\t// copied from media-views.js:6939\n\t\t\tParent.prototype.renderFilters = function () {\n\t\t\t\t// Build `' )\n\t\t\t\t\t\t\t\t\t.val( value )\n\t\t\t\t\t\t\t\t\t.html( filter.text )[ 0 ],\n\t\t\t\t\t\t\t\tpriority: filter.priority || 50,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}, this )\n\t\t\t\t\t\t.sortBy( 'priority' )\n\t\t\t\t\t\t.pluck( 'el' )\n\t\t\t\t\t\t.value()\n\t\t\t\t);\n\t\t\t};\n\t\t},\n\n\t\tcustomizeAttachmentCompat: function () {\n\t\t\t// validate\n\t\t\tif ( ! acf.isset( wp, 'media', 'view', 'AttachmentCompat' ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// vars\n\t\t\tvar AttachmentCompat = wp.media.view.AttachmentCompat;\n\t\t\tvar timeout = false;\n\n\t\t\t// extend\n\t\t\twp.media.view.AttachmentCompat = AttachmentCompat.extend( {\n\t\t\t\trender: function () {\n\t\t\t\t\t// WP bug\n\t\t\t\t\t// When multiple media frames exist on the same page (WP content, WYSIWYG, image, file ),\n\t\t\t\t\t// WP creates multiple instances of this AttachmentCompat view.\n\t\t\t\t\t// Each instance will attempt to render when a new modal is created.\n\t\t\t\t\t// Use a property to avoid this and only render once per instance.\n\t\t\t\t\tif ( this.rendered ) {\n\t\t\t\t\t\treturn this;\n\t\t\t\t\t}\n\n\t\t\t\t\t// render HTML\n\t\t\t\t\tAttachmentCompat.prototype.render.apply( this, arguments );\n\n\t\t\t\t\t// when uploading, render is called twice.\n\t\t\t\t\t// ignore first render by checking for #acf-form-data element\n\t\t\t\t\tif ( ! this.$( '#acf-form-data' ).length ) {\n\t\t\t\t\t\treturn this;\n\t\t\t\t\t}\n\n\t\t\t\t\t// clear timeout\n\t\t\t\t\tclearTimeout( timeout );\n\n\t\t\t\t\t// setTimeout\n\t\t\t\t\ttimeout = setTimeout(\n\t\t\t\t\t\t$.proxy( function () {\n\t\t\t\t\t\t\tthis.rendered = true;\n\t\t\t\t\t\t\tacf.doAction( 'append', this.$el );\n\t\t\t\t\t\t}, this ),\n\t\t\t\t\t\t50\n\t\t\t\t\t);\n\n\t\t\t\t\t// return\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\tsave: function ( event ) {\n\t\t\t\t\tvar data = {};\n\n\t\t\t\t\tif ( event ) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t}\n\n\t\t\t\t\t//_.each( this.$el.serializeArray(), function( pair ) {\n\t\t\t\t\t//\tdata[ pair.name ] = pair.value;\n\t\t\t\t\t//});\n\n\t\t\t\t\t// Serialize data more thoroughly to allow chckbox inputs to save.\n\t\t\t\t\tdata = acf.serializeForAjax( this.$el );\n\n\t\t\t\t\tthis.controller.trigger( 'attachment:compat:waiting', [\n\t\t\t\t\t\t'waiting',\n\t\t\t\t\t] );\n\t\t\t\t\tthis.model\n\t\t\t\t\t\t.saveCompat( data )\n\t\t\t\t\t\t.always( _.bind( this.postSave, this ) );\n\t\t\t\t},\n\t\t\t} );\n\t\t},\n\n\t\tcustomizeAttachmentLibrary: function () {\n\t\t\t// validate\n\t\t\tif ( ! acf.isset( wp, 'media', 'view', 'Attachment', 'Library' ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// vars\n\t\t\tvar AttachmentLibrary = wp.media.view.Attachment.Library;\n\n\t\t\t// extend\n\t\t\twp.media.view.Attachment.Library = AttachmentLibrary.extend( {\n\t\t\t\trender: function () {\n\t\t\t\t\t// vars\n\t\t\t\t\tvar popup = acf.isget( this, 'controller', 'acf' );\n\t\t\t\t\tvar attributes = acf.isget( this, 'model', 'attributes' );\n\n\t\t\t\t\t// check vars exist to avoid errors\n\t\t\t\t\tif ( popup && attributes ) {\n\t\t\t\t\t\t// show errors\n\t\t\t\t\t\tif ( attributes.acf_errors ) {\n\t\t\t\t\t\t\tthis.$el.addClass( 'acf-disabled' );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// disable selected\n\t\t\t\t\t\tvar selected = popup.get( 'selected' );\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tselected &&\n\t\t\t\t\t\t\tselected.indexOf( attributes.id ) > -1\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tthis.$el.addClass( 'acf-selected' );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// render\n\t\t\t\t\treturn AttachmentLibrary.prototype.render.apply(\n\t\t\t\t\t\tthis,\n\t\t\t\t\t\targuments\n\t\t\t\t\t);\n\t\t\t\t},\n\n\t\t\t\t/*\n\t\t\t\t * toggleSelection\n\t\t\t\t *\n\t\t\t\t * This function is called before an attachment is selected\n\t\t\t\t * A good place to check for errors and prevent the 'select' function from being fired\n\t\t\t\t *\n\t\t\t\t * @type\tfunction\n\t\t\t\t * @date\t29/09/2016\n\t\t\t\t * @since\t5.4.0\n\t\t\t\t *\n\t\t\t\t * @param\toptions (object)\n\t\t\t\t * @return\tn/a\n\t\t\t\t */\n\n\t\t\t\ttoggleSelection: function ( options ) {\n\t\t\t\t\t// vars\n\t\t\t\t\t// source: wp-includes/js/media-views.js:2880\n\t\t\t\t\tvar collection = this.collection,\n\t\t\t\t\t\tselection = this.options.selection,\n\t\t\t\t\t\tmodel = this.model,\n\t\t\t\t\t\tsingle = selection.single();\n\n\t\t\t\t\t// vars\n\t\t\t\t\tvar frame = this.controller;\n\t\t\t\t\tvar errors = acf.isget(\n\t\t\t\t\t\tthis,\n\t\t\t\t\t\t'model',\n\t\t\t\t\t\t'attributes',\n\t\t\t\t\t\t'acf_errors'\n\t\t\t\t\t);\n\t\t\t\t\tvar $sidebar = frame.$el.find(\n\t\t\t\t\t\t'.media-frame-content .media-sidebar'\n\t\t\t\t\t);\n\n\t\t\t\t\t// remove previous error\n\t\t\t\t\t$sidebar.children( '.acf-selection-error' ).remove();\n\n\t\t\t\t\t// show attachment details\n\t\t\t\t\t$sidebar.children().removeClass( 'acf-hidden' );\n\n\t\t\t\t\t// add message\n\t\t\t\t\tif ( frame && errors ) {\n\t\t\t\t\t\t// vars\n\t\t\t\t\t\tvar filename = acf.isget(\n\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t'model',\n\t\t\t\t\t\t\t'attributes',\n\t\t\t\t\t\t\t'filename'\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// hide attachment details\n\t\t\t\t\t\t// Gallery field continues to show previously selected attachment...\n\t\t\t\t\t\t$sidebar.children().addClass( 'acf-hidden' );\n\n\t\t\t\t\t\t// append message\n\t\t\t\t\t\t$sidebar.prepend(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t'
              ',\n\t\t\t\t\t\t\t\t'' +\n\t\t\t\t\t\t\t\t\tacf.__( 'Restricted' ) +\n\t\t\t\t\t\t\t\t\t'',\n\t\t\t\t\t\t\t\t'' +\n\t\t\t\t\t\t\t\t\tfilename +\n\t\t\t\t\t\t\t\t\t'',\n\t\t\t\t\t\t\t\t'' +\n\t\t\t\t\t\t\t\t\terrors +\n\t\t\t\t\t\t\t\t\t'',\n\t\t\t\t\t\t\t\t'
              ',\n\t\t\t\t\t\t\t].join( '' )\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// reset selection (unselects all attachments)\n\t\t\t\t\t\tselection.reset();\n\n\t\t\t\t\t\t// set single (attachment displayed in sidebar)\n\t\t\t\t\t\tselection.single( model );\n\n\t\t\t\t\t\t// return and prevent 'select' form being fired\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t// return\n\t\t\t\t\treturn AttachmentLibrary.prototype.toggleSelection.apply(\n\t\t\t\t\t\tthis,\n\t\t\t\t\t\targuments\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t} );\n\t\t},\n\t} );\n} )( jQuery );\n","( function ( $, undefined ) {\n\t/**\n\t * postboxManager\n\t *\n\t * Manages postboxes on the screen.\n\t *\n\t * @date\t25/5/19\n\t * @since\t5.8.1\n\t *\n\t * @param\tvoid\n\t * @return\tvoid\n\t */\n\tvar postboxManager = new acf.Model( {\n\t\twait: 'prepare',\n\t\tpriority: 1,\n\t\tinitialize: function () {\n\t\t\t( acf.get( 'postboxes' ) || [] ).map( acf.newPostbox );\n\t\t},\n\t} );\n\n\t/**\n\t * acf.getPostbox\n\t *\n\t * Returns a postbox instance.\n\t *\n\t * @date\t23/9/18\n\t * @since\t5.7.7\n\t *\n\t * @param\tmixed $el Either a jQuery element or the postbox id.\n\t * @return\tobject\n\t */\n\tacf.getPostbox = function ( $el ) {\n\t\t// allow string parameter\n\t\tif ( typeof arguments[ 0 ] == 'string' ) {\n\t\t\t$el = $( '#' + arguments[ 0 ] );\n\t\t}\n\n\t\t// return instance\n\t\treturn acf.getInstance( $el );\n\t};\n\n\t/**\n\t * acf.getPostboxes\n\t *\n\t * Returns an array of postbox instances.\n\t *\n\t * @date\t23/9/18\n\t * @since\t5.7.7\n\t *\n\t * @param\tvoid\n\t * @return\tarray\n\t */\n\tacf.getPostboxes = function () {\n\t\treturn acf.getInstances( $( '.acf-postbox' ) );\n\t};\n\n\t/**\n\t * acf.newPostbox\n\t *\n\t * Returns a new postbox instance for the given props.\n\t *\n\t * @date\t20/9/18\n\t * @since\t5.7.6\n\t *\n\t * @param\tobject props The postbox properties.\n\t * @return\tobject\n\t */\n\tacf.newPostbox = function ( props ) {\n\t\treturn new acf.models.Postbox( props );\n\t};\n\n\t/**\n\t * acf.models.Postbox\n\t *\n\t * The postbox model.\n\t *\n\t * @date\t20/9/18\n\t * @since\t5.7.6\n\t *\n\t * @param\tvoid\n\t * @return\tvoid\n\t */\n\tacf.models.Postbox = acf.Model.extend( {\n\t\tdata: {\n\t\t\tid: '',\n\t\t\tkey: '',\n\t\t\tstyle: 'default',\n\t\t\tlabel: 'top',\n\t\t\tedit: '',\n\t\t},\n\n\t\tsetup: function ( props ) {\n\t\t\t// compatibilty\n\t\t\tif ( props.editLink ) {\n\t\t\t\tprops.edit = props.editLink;\n\t\t\t}\n\n\t\t\t// extend data\n\t\t\t$.extend( this.data, props );\n\n\t\t\t// set $el\n\t\t\tthis.$el = this.$postbox();\n\t\t},\n\n\t\t$postbox: function () {\n\t\t\treturn $( '#' + this.get( 'id' ) );\n\t\t},\n\n\t\t$hide: function () {\n\t\t\treturn $( '#' + this.get( 'id' ) + '-hide' );\n\t\t},\n\n\t\t$hideLabel: function () {\n\t\t\treturn this.$hide().parent();\n\t\t},\n\n\t\t$hndle: function () {\n\t\t\treturn this.$( '> .hndle' );\n\t\t},\n\n\t\t$handleActions: function () {\n\t\t\treturn this.$( '> .postbox-header .handle-actions' );\n\t\t},\n\n\t\t$inside: function () {\n\t\t\treturn this.$( '> .inside' );\n\t\t},\n\n\t\tisVisible: function () {\n\t\t\treturn this.$el.hasClass( 'acf-hidden' );\n\t\t},\n\n\t\tisHiddenByScreenOptions: function () {\n\t\t\treturn (\n\t\t\t\tthis.$el.hasClass( 'hide-if-js' ) ||\n\t\t\t\tthis.$el.css( 'display' ) == 'none'\n\t\t\t);\n\t\t},\n\n\t\tinitialize: function () {\n\t\t\t// Add default class.\n\t\t\tthis.$el.addClass( 'acf-postbox' );\n\n\t\t\t// Add field group style class (ignore in block editor).\n\t\t\tif ( acf.get( 'editor' ) !== 'block' ) {\n\t\t\t\tvar style = this.get( 'style' );\n\t\t\t\tif ( style !== 'default' ) {\n\t\t\t\t\tthis.$el.addClass( style );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add .inside class.\n\t\t\tthis.$inside()\n\t\t\t\t.addClass( 'acf-fields' )\n\t\t\t\t.addClass( '-' + this.get( 'label' ) );\n\n\t\t\t// Append edit link.\n\t\t\tvar edit = this.get( 'edit' );\n\t\t\tif ( edit ) {\n\t\t\t\tvar html =\n\t\t\t\t\t'';\n\t\t\t\tvar $handleActions = this.$handleActions();\n\t\t\t\tif ( $handleActions.length ) {\n\t\t\t\t\t$handleActions.prepend( html );\n\t\t\t\t} else {\n\t\t\t\t\tthis.$hndle().append( html );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Show postbox.\n\t\t\tthis.show();\n\t\t},\n\n\t\tshow: function () {\n\t\t\t// If disabled by screen options, set checked to false and return.\n\t\t\tif ( this.$el.hasClass( 'hide-if-js' ) ) {\n\t\t\t\tthis.$hide().prop( 'checked', false );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Show label.\n\t\t\tthis.$hideLabel().show();\n\n\t\t\t// toggle on checkbox\n\t\t\tthis.$hide().prop( 'checked', true );\n\n\t\t\t// Show postbox\n\t\t\tthis.$el.show().removeClass( 'acf-hidden' );\n\n\t\t\t// Do action.\n\t\t\tacf.doAction( 'show_postbox', this );\n\t\t},\n\n\t\tenable: function () {\n\t\t\tacf.enable( this.$el, 'postbox' );\n\t\t},\n\n\t\tshowEnable: function () {\n\t\t\tthis.enable();\n\t\t\tthis.show();\n\t\t},\n\n\t\thide: function () {\n\t\t\t// Hide label.\n\t\t\tthis.$hideLabel().hide();\n\n\t\t\t// Hide postbox\n\t\t\tthis.$el.hide().addClass( 'acf-hidden' );\n\n\t\t\t// Do action.\n\t\t\tacf.doAction( 'hide_postbox', this );\n\t\t},\n\n\t\tdisable: function () {\n\t\t\tacf.disable( this.$el, 'postbox' );\n\t\t},\n\n\t\thideDisable: function () {\n\t\t\tthis.disable();\n\t\t\tthis.hide();\n\t\t},\n\n\t\thtml: function ( html ) {\n\t\t\t// Update HTML.\n\t\t\tthis.$inside().html( html );\n\n\t\t\t// Do action.\n\t\t\tacf.doAction( 'append', this.$el );\n\t\t},\n\t} );\n} )( jQuery );\n","( function ( $, undefined ) {\n\tacf.screen = new acf.Model( {\n\t\tactive: true,\n\n\t\txhr: false,\n\n\t\ttimeout: false,\n\n\t\twait: 'load',\n\n\t\tevents: {\n\t\t\t'change #page_template': 'onChange',\n\t\t\t'change #parent_id': 'onChange',\n\t\t\t'change #post-formats-select': 'onChange',\n\t\t\t'change .categorychecklist': 'onChange',\n\t\t\t'change .tagsdiv': 'onChange',\n\t\t\t'change .acf-taxonomy-field[data-save=\"1\"]': 'onChange',\n\t\t\t'change #product-type': 'onChange',\n\t\t},\n\n\t\tisPost: function () {\n\t\t\treturn acf.get( 'screen' ) === 'post';\n\t\t},\n\n\t\tisUser: function () {\n\t\t\treturn acf.get( 'screen' ) === 'user';\n\t\t},\n\n\t\tisTaxonomy: function () {\n\t\t\treturn acf.get( 'screen' ) === 'taxonomy';\n\t\t},\n\n\t\tisAttachment: function () {\n\t\t\treturn acf.get( 'screen' ) === 'attachment';\n\t\t},\n\n\t\tisNavMenu: function () {\n\t\t\treturn acf.get( 'screen' ) === 'nav_menu';\n\t\t},\n\n\t\tisWidget: function () {\n\t\t\treturn acf.get( 'screen' ) === 'widget';\n\t\t},\n\n\t\tisComment: function () {\n\t\t\treturn acf.get( 'screen' ) === 'comment';\n\t\t},\n\n\t\tgetPageTemplate: function () {\n\t\t\tvar $el = $( '#page_template' );\n\t\t\treturn $el.length ? $el.val() : null;\n\t\t},\n\n\t\tgetPageParent: function ( e, $el ) {\n\t\t\tvar $el = $( '#parent_id' );\n\t\t\treturn $el.length ? $el.val() : null;\n\t\t},\n\n\t\tgetPageType: function ( e, $el ) {\n\t\t\treturn this.getPageParent() ? 'child' : 'parent';\n\t\t},\n\n\t\tgetPostType: function () {\n\t\t\treturn $( '#post_type' ).val();\n\t\t},\n\n\t\tgetPostFormat: function ( e, $el ) {\n\t\t\tvar $el = $( '#post-formats-select input:checked' );\n\t\t\tif ( $el.length ) {\n\t\t\t\tvar val = $el.val();\n\t\t\t\treturn val == '0' ? 'standard' : val;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\n\t\tgetPostCoreTerms: function () {\n\t\t\t// vars\n\t\t\tvar terms = {};\n\n\t\t\t// serialize WP taxonomy postboxes\n\t\t\tvar data = acf.serialize( $( '.categorydiv, .tagsdiv' ) );\n\n\t\t\t// use tax_input (tag, custom-taxonomy) when possible.\n\t\t\t// this data is already formatted in taxonomy => [terms].\n\t\t\tif ( data.tax_input ) {\n\t\t\t\tterms = data.tax_input;\n\t\t\t}\n\n\t\t\t// append \"category\" which uses a different name\n\t\t\tif ( data.post_category ) {\n\t\t\t\tterms.category = data.post_category;\n\t\t\t}\n\n\t\t\t// convert any string values (tags) into array format\n\t\t\tfor ( var tax in terms ) {\n\t\t\t\tif ( ! acf.isArray( terms[ tax ] ) ) {\n\t\t\t\t\tterms[ tax ] = terms[ tax ].split( /,[\\s]?/ );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// return\n\t\t\treturn terms;\n\t\t},\n\n\t\tgetPostTerms: function () {\n\t\t\t// Get core terms.\n\t\t\tvar terms = this.getPostCoreTerms();\n\n\t\t\t// loop over taxonomy fields and add their values\n\t\t\tacf.getFields( { type: 'taxonomy' } ).map( function ( field ) {\n\t\t\t\t// ignore fields that don't save\n\t\t\t\tif ( ! field.get( 'save' ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// vars\n\t\t\t\tvar val = field.val();\n\t\t\t\tvar tax = field.get( 'taxonomy' );\n\n\t\t\t\t// check val\n\t\t\t\tif ( val ) {\n\t\t\t\t\t// ensure terms exists\n\t\t\t\t\tterms[ tax ] = terms[ tax ] || [];\n\n\t\t\t\t\t// ensure val is an array\n\t\t\t\t\tval = acf.isArray( val ) ? val : [ val ];\n\n\t\t\t\t\t// append\n\t\t\t\t\tterms[ tax ] = terms[ tax ].concat( val );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t// add WC product type\n\t\t\tif ( ( productType = this.getProductType() ) !== null ) {\n\t\t\t\tterms.product_type = [ productType ];\n\t\t\t}\n\n\t\t\t// remove duplicate values\n\t\t\tfor ( var tax in terms ) {\n\t\t\t\tterms[ tax ] = acf.uniqueArray( terms[ tax ] );\n\t\t\t}\n\n\t\t\t// return\n\t\t\treturn terms;\n\t\t},\n\n\t\tgetProductType: function () {\n\t\t\tvar $el = $( '#product-type' );\n\t\t\treturn $el.length ? $el.val() : null;\n\t\t},\n\n\t\tcheck: function () {\n\t\t\t// bail early if not for post\n\t\t\tif ( acf.get( 'screen' ) !== 'post' ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// abort XHR if is already loading AJAX data\n\t\t\tif ( this.xhr ) {\n\t\t\t\tthis.xhr.abort();\n\t\t\t}\n\n\t\t\t// vars\n\t\t\tvar ajaxData = acf.parseArgs( this.data, {\n\t\t\t\taction: 'acf/ajax/check_screen',\n\t\t\t\tscreen: acf.get( 'screen' ),\n\t\t\t\texists: [],\n\t\t\t} );\n\n\t\t\t// post id\n\t\t\tif ( this.isPost() ) {\n\t\t\t\tajaxData.post_id = acf.get( 'post_id' );\n\t\t\t}\n\n\t\t\t// post type\n\t\t\tif ( ( postType = this.getPostType() ) !== null ) {\n\t\t\t\tajaxData.post_type = postType;\n\t\t\t}\n\n\t\t\t// page template\n\t\t\tif ( ( pageTemplate = this.getPageTemplate() ) !== null ) {\n\t\t\t\tajaxData.page_template = pageTemplate;\n\t\t\t}\n\n\t\t\t// page parent\n\t\t\tif ( ( pageParent = this.getPageParent() ) !== null ) {\n\t\t\t\tajaxData.page_parent = pageParent;\n\t\t\t}\n\n\t\t\t// page type\n\t\t\tif ( ( pageType = this.getPageType() ) !== null ) {\n\t\t\t\tajaxData.page_type = pageType;\n\t\t\t}\n\n\t\t\t// post format\n\t\t\tif ( ( postFormat = this.getPostFormat() ) !== null ) {\n\t\t\t\tajaxData.post_format = postFormat;\n\t\t\t}\n\n\t\t\t// post terms\n\t\t\tif ( ( postTerms = this.getPostTerms() ) !== null ) {\n\t\t\t\tajaxData.post_terms = postTerms;\n\t\t\t}\n\n\t\t\t// add array of existing postboxes to increase performance and reduce JSON HTML\n\t\t\tacf.getPostboxes().map( function ( postbox ) {\n\t\t\t\tajaxData.exists.push( postbox.get( 'key' ) );\n\t\t\t} );\n\n\t\t\t// filter\n\t\t\tajaxData = acf.applyFilters( 'check_screen_args', ajaxData );\n\n\t\t\t// success\n\t\t\tvar onSuccess = function ( json ) {\n\t\t\t\t// Render post screen.\n\t\t\t\tif ( acf.get( 'screen' ) == 'post' ) {\n\t\t\t\t\tthis.renderPostScreen( json );\n\n\t\t\t\t\t// Render user screen.\n\t\t\t\t} else if ( acf.get( 'screen' ) == 'user' ) {\n\t\t\t\t\tthis.renderUserScreen( json );\n\t\t\t\t}\n\n\t\t\t\t// action\n\t\t\t\tacf.doAction( 'check_screen_complete', json, ajaxData );\n\t\t\t};\n\n\t\t\t// ajax\n\t\t\tthis.xhr = $.ajax( {\n\t\t\t\turl: acf.get( 'ajaxurl' ),\n\t\t\t\tdata: acf.prepareForAjax( ajaxData ),\n\t\t\t\ttype: 'post',\n\t\t\t\tdataType: 'json',\n\t\t\t\tcontext: this,\n\t\t\t\tsuccess: onSuccess,\n\t\t\t} );\n\t\t},\n\n\t\tonChange: function ( e, $el ) {\n\t\t\tthis.setTimeout( this.check, 1 );\n\t\t},\n\n\t\trenderPostScreen: function ( data ) {\n\t\t\t// Helper function to copy events\n\t\t\tvar copyEvents = function ( $from, $to ) {\n\t\t\t\tvar events = $._data( $from[ 0 ] ).events;\n\t\t\t\tfor ( var type in events ) {\n\t\t\t\t\tfor ( var i = 0; i < events[ type ].length; i++ ) {\n\t\t\t\t\t\t$to.on( type, events[ type ][ i ].handler );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t// Helper function to sort metabox.\n\t\t\tvar sortMetabox = function ( id, ids ) {\n\t\t\t\t// Find position of id within ids.\n\t\t\t\tvar index = ids.indexOf( id );\n\n\t\t\t\t// Bail early if index not found.\n\t\t\t\tif ( index == -1 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\t// Loop over metaboxes behind (in reverse order).\n\t\t\t\tfor ( var i = index - 1; i >= 0; i-- ) {\n\t\t\t\t\tif ( $( '#' + ids[ i ] ).length ) {\n\t\t\t\t\t\treturn $( '#' + ids[ i ] ).after( $( '#' + id ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Loop over metaboxes infront.\n\t\t\t\tfor ( var i = index + 1; i < ids.length; i++ ) {\n\t\t\t\t\tif ( $( '#' + ids[ i ] ).length ) {\n\t\t\t\t\t\treturn $( '#' + ids[ i ] ).before( $( '#' + id ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Return false if not sorted.\n\t\t\t\treturn false;\n\t\t\t};\n\n\t\t\t// Keep track of visible and hidden postboxes.\n\t\t\tdata.visible = [];\n\t\t\tdata.hidden = [];\n\n\t\t\t// Show these postboxes.\n\t\t\tdata.results = data.results.map( function ( result, i ) {\n\t\t\t\t// vars\n\t\t\t\tvar postbox = acf.getPostbox( result.id );\n\n\t\t\t\t// Prevent \"acf_after_title\" position in Block Editor.\n\t\t\t\tif (\n\t\t\t\t\tacf.isGutenberg() &&\n\t\t\t\t\tresult.position == 'acf_after_title'\n\t\t\t\t) {\n\t\t\t\t\tresult.position = 'normal';\n\t\t\t\t}\n\n\t\t\t\t// Create postbox if doesn't exist.\n\t\t\t\tif ( ! postbox ) {\n\t\t\t\t\tvar wpMinorVersion = parseFloat( acf.get( 'wp_version' ) );\n\t\t\t\t\tif ( wpMinorVersion >= 5.5 ) {\n\t\t\t\t\t\tvar postboxHeader = [\n\t\t\t\t\t\t\t'
              ',\n\t\t\t\t\t\t\t'

              ',\n\t\t\t\t\t\t\t'' + acf.escHtml( result.title ) + '',\n\t\t\t\t\t\t\t'

              ',\n\t\t\t\t\t\t\t'
              ',\n\t\t\t\t\t\t\t'',\n\t\t\t\t\t\t\t'
              ',\n\t\t\t\t\t\t\t'
              ',\n\t\t\t\t\t\t].join( '' );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar postboxHeader = [\n\t\t\t\t\t\t\t'',\n\t\t\t\t\t\t\t'

              ',\n\t\t\t\t\t\t\t'' + acf.escHtml( result.title ) + '',\n\t\t\t\t\t\t\t'

              ',\n\t\t\t\t\t\t].join( '' );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Ensure result.classes is set.\n\t\t\t\t\tif ( ! result.classes ) result.classes = '';\n\n\t\t\t\t\t// Create it.\n\t\t\t\t\tvar $postbox = $(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t'
              ',\n\t\t\t\t\t\t\tpostboxHeader,\n\t\t\t\t\t\t\t'
              ',\n\t\t\t\t\t\t\tresult.html,\n\t\t\t\t\t\t\t'
              ',\n\t\t\t\t\t\t\t'
              ',\n\t\t\t\t\t\t].join( '' )\n\t\t\t\t\t);\n\n\t\t\t\t\t// Create new hide toggle.\n\t\t\t\t\tif ( $( '#adv-settings' ).length ) {\n\t\t\t\t\t\tvar $prefs = $( '#adv-settings .metabox-prefs' );\n\t\t\t\t\t\tvar $label = $(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t'',\n\t\t\t\t\t\t\t].join( '' )\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// Copy default WP events onto checkbox.\n\t\t\t\t\t\tcopyEvents(\n\t\t\t\t\t\t\t$prefs.find( 'input' ).first(),\n\t\t\t\t\t\t\t$label.find( 'input' )\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// Append hide label\n\t\t\t\t\t\t$prefs.append( $label );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Copy default WP events onto metabox.\n\t\t\t\t\tif ( $( '.postbox' ).length ) {\n\t\t\t\t\t\tcopyEvents(\n\t\t\t\t\t\t\t$( '.postbox .handlediv' ).first(),\n\t\t\t\t\t\t\t$postbox.children( '.handlediv' )\n\t\t\t\t\t\t);\n\t\t\t\t\t\tcopyEvents(\n\t\t\t\t\t\t\t$( '.postbox .hndle' ).first(),\n\t\t\t\t\t\t\t$postbox.children( '.hndle' )\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\t// Append metabox to the bottom of \"side-sortables\".\n\t\t\t\t\tif ( result.position === 'side' ) {\n\t\t\t\t\t\t$( '#' + result.position + '-sortables' ).append(\n\t\t\t\t\t\t\t$postbox\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// Prepend metabox to the top of \"normal-sortbables\".\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$( '#' + result.position + '-sortables' ).prepend(\n\t\t\t\t\t\t\t$postbox\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\t// Position metabox amongst existing ACF metaboxes within the same location.\n\t\t\t\t\tvar order = [];\n\t\t\t\t\tdata.results.map( function ( _result ) {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tresult.position === _result.position &&\n\t\t\t\t\t\t\t$(\n\t\t\t\t\t\t\t\t'#' +\n\t\t\t\t\t\t\t\t\tresult.position +\n\t\t\t\t\t\t\t\t\t'-sortables #' +\n\t\t\t\t\t\t\t\t\t_result.id\n\t\t\t\t\t\t\t).length\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\torder.push( _result.id );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t\tsortMetabox( result.id, order );\n\n\t\t\t\t\t// Check 'sorted' for user preference.\n\t\t\t\t\tif ( data.sorted ) {\n\t\t\t\t\t\t// Loop over each position (acf_after_title, side, normal).\n\t\t\t\t\t\tfor ( var position in data.sorted ) {\n\t\t\t\t\t\t\tlet order = data.sorted[ position ];\n\n\t\t\t\t\t\t\tif ( typeof order !== 'string' ) {\n\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// Explode string into array of ids.\n\t\t\t\t\t\t\torder = order.split( ',' );\n\n\t\t\t\t\t\t\t// Position metabox relative to order.\n\t\t\t\t\t\t\tif ( sortMetabox( result.id, order ) ) {\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Initalize it (modifies HTML).\n\t\t\t\t\tpostbox = acf.newPostbox( result );\n\n\t\t\t\t\t// Trigger action.\n\t\t\t\t\tacf.doAction( 'append', $postbox );\n\t\t\t\t\tacf.doAction( 'append_postbox', postbox );\n\t\t\t\t}\n\n\t\t\t\t// show postbox\n\t\t\t\tpostbox.showEnable();\n\n\t\t\t\t// append\n\t\t\t\tdata.visible.push( result.id );\n\n\t\t\t\t// Return result (may have changed).\n\t\t\t\treturn result;\n\t\t\t} );\n\n\t\t\t// Hide these postboxes.\n\t\t\tacf.getPostboxes().map( function ( postbox ) {\n\t\t\t\tif ( data.visible.indexOf( postbox.get( 'id' ) ) === -1 ) {\n\t\t\t\t\t// Hide postbox.\n\t\t\t\t\tpostbox.hideDisable();\n\n\t\t\t\t\t// Append to data.\n\t\t\t\t\tdata.hidden.push( postbox.get( 'id' ) );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t// Update style.\n\t\t\t$( '#acf-style' ).html( data.style );\n\n\t\t\t// Do action.\n\t\t\tacf.doAction( 'refresh_post_screen', data );\n\t\t},\n\n\t\trenderUserScreen: function ( json ) {},\n\t} );\n\n\t/**\n\t * gutenScreen\n\t *\n\t * Adds compatibility with the Gutenberg edit screen.\n\t *\n\t * @date\t11/12/18\n\t * @since\t5.8.0\n\t *\n\t * @param\tvoid\n\t * @return\tvoid\n\t */\n\tvar gutenScreen = new acf.Model( {\n\t\t// Keep a reference to the most recent post attributes.\n\t\tpostEdits: {},\n\n\t\t// Wait until assets have been loaded.\n\t\twait: 'prepare',\n\n\t\tinitialize: function () {\n\t\t\t// Bail early if not Gutenberg.\n\t\t\tif ( ! acf.isGutenberg() ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Listen for changes (use debounced version as this can fires often).\n\t\t\twp.data.subscribe( acf.debounce( this.onChange ).bind( this ) );\n\n\t\t\t// Customize \"acf.screen.get\" functions.\n\t\t\tacf.screen.getPageTemplate = this.getPageTemplate;\n\t\t\tacf.screen.getPageParent = this.getPageParent;\n\t\t\tacf.screen.getPostType = this.getPostType;\n\t\t\tacf.screen.getPostFormat = this.getPostFormat;\n\t\t\tacf.screen.getPostCoreTerms = this.getPostCoreTerms;\n\n\t\t\t// Disable unload\n\t\t\tacf.unload.disable();\n\n\t\t\t// Refresh metaboxes since WP 5.3.\n\t\t\tvar wpMinorVersion = parseFloat( acf.get( 'wp_version' ) );\n\t\t\tif ( wpMinorVersion >= 5.3 ) {\n\t\t\t\tthis.addAction(\n\t\t\t\t\t'refresh_post_screen',\n\t\t\t\t\tthis.onRefreshPostScreen\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Trigger \"refresh\" after WP has moved metaboxes into place.\n\t\t\twp.domReady( acf.refresh );\n\t\t},\n\n\t\tonChange: function () {\n\t\t\t// Determine attributes that can trigger a refresh.\n\t\t\tvar attributes = [ 'template', 'parent', 'format' ];\n\n\t\t\t// Append taxonomy attribute names to this list.\n\t\t\t( wp.data.select( 'core' ).getTaxonomies() || [] ).map( function (\n\t\t\t\ttaxonomy\n\t\t\t) {\n\t\t\t\tattributes.push( taxonomy.rest_base );\n\t\t\t} );\n\n\t\t\t// Get relevant current post edits.\n\t\t\tvar _postEdits = wp.data.select( 'core/editor' ).getPostEdits();\n\t\t\tvar postEdits = {};\n\t\t\tattributes.map( function ( k ) {\n\t\t\t\tif ( _postEdits[ k ] !== undefined ) {\n\t\t\t\t\tpostEdits[ k ] = _postEdits[ k ];\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t// Detect change.\n\t\t\tif (\n\t\t\t\tJSON.stringify( postEdits ) !== JSON.stringify( this.postEdits )\n\t\t\t) {\n\t\t\t\tthis.postEdits = postEdits;\n\n\t\t\t\t// Check screen.\n\t\t\t\tacf.screen.check();\n\t\t\t}\n\t\t},\n\n\t\tgetPageTemplate: function () {\n\t\t\treturn wp.data\n\t\t\t\t.select( 'core/editor' )\n\t\t\t\t.getEditedPostAttribute( 'template' );\n\t\t},\n\n\t\tgetPageParent: function ( e, $el ) {\n\t\t\treturn wp.data\n\t\t\t\t.select( 'core/editor' )\n\t\t\t\t.getEditedPostAttribute( 'parent' );\n\t\t},\n\n\t\tgetPostType: function () {\n\t\t\treturn wp.data\n\t\t\t\t.select( 'core/editor' )\n\t\t\t\t.getEditedPostAttribute( 'type' );\n\t\t},\n\n\t\tgetPostFormat: function ( e, $el ) {\n\t\t\treturn wp.data\n\t\t\t\t.select( 'core/editor' )\n\t\t\t\t.getEditedPostAttribute( 'format' );\n\t\t},\n\n\t\tgetPostCoreTerms: function () {\n\t\t\t// vars\n\t\t\tvar terms = {};\n\n\t\t\t// Loop over taxonomies.\n\t\t\tvar taxonomies = wp.data.select( 'core' ).getTaxonomies() || [];\n\t\t\ttaxonomies.map( function ( taxonomy ) {\n\t\t\t\t// Append selected taxonomies to terms object.\n\t\t\t\tvar postTerms = wp.data\n\t\t\t\t\t.select( 'core/editor' )\n\t\t\t\t\t.getEditedPostAttribute( taxonomy.rest_base );\n\t\t\t\tif ( postTerms ) {\n\t\t\t\t\tterms[ taxonomy.slug ] = postTerms;\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t// return\n\t\t\treturn terms;\n\t\t},\n\n\t\t/**\n\t\t * onRefreshPostScreen\n\t\t *\n\t\t * Fires after the Post edit screen metaboxs are refreshed to update the Block Editor API state.\n\t\t *\n\t\t * @date\t11/11/19\n\t\t * @since\t5.8.7\n\t\t *\n\t\t * @param\tobject data The \"check_screen\" JSON response data.\n\t\t * @return\tvoid\n\t\t */\n\t\tonRefreshPostScreen: function ( data ) {\n\t\t\t// Extract vars.\n\t\t\tvar select = wp.data.select( 'core/edit-post' );\n\t\t\tvar dispatch = wp.data.dispatch( 'core/edit-post' );\n\n\t\t\t// Load current metabox locations and data.\n\t\t\tvar locations = {};\n\t\t\tselect.getActiveMetaBoxLocations().map( function ( location ) {\n\t\t\t\tlocations[ location ] = select.getMetaBoxesPerLocation(\n\t\t\t\t\tlocation\n\t\t\t\t);\n\t\t\t} );\n\n\t\t\t// Generate flat array of existing ids.\n\t\t\tvar ids = [];\n\t\t\tfor ( var k in locations ) {\n\t\t\t\tlocations[ k ].map( function ( m ) {\n\t\t\t\t\tids.push( m.id );\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t// Append new ACF metaboxes (ignore those which already exist).\n\t\t\tdata.results\n\t\t\t\t.filter( function ( r ) {\n\t\t\t\t\treturn ids.indexOf( r.id ) === -1;\n\t\t\t\t} )\n\t\t\t\t.map( function ( result, i ) {\n\t\t\t\t\t// Ensure location exists.\n\t\t\t\t\tvar location = result.position;\n\t\t\t\t\tlocations[ location ] = locations[ location ] || [];\n\n\t\t\t\t\t// Append.\n\t\t\t\t\tlocations[ location ].push( {\n\t\t\t\t\t\tid: result.id,\n\t\t\t\t\t\ttitle: result.title,\n\t\t\t\t\t} );\n\t\t\t\t} );\n\n\t\t\t// Remove hidden ACF metaboxes.\n\t\t\tfor ( var k in locations ) {\n\t\t\t\tlocations[ k ] = locations[ k ].filter( function ( m ) {\n\t\t\t\t\treturn data.hidden.indexOf( m.id ) === -1;\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t// Update state.\n\t\t\tdispatch.setAvailableMetaBoxesPerLocation( locations );\n\t\t},\n\t} );\n} )( jQuery );\n","( function ( $, undefined ) {\n\t/**\n\t * acf.newSelect2\n\t *\n\t * description\n\t *\n\t * @date\t13/1/18\n\t * @since\t5.6.5\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tacf.newSelect2 = function ( $select, props ) {\n\t\t// defaults\n\t\tprops = acf.parseArgs( props, {\n\t\t\tallowNull: false,\n\t\t\tplaceholder: '',\n\t\t\tmultiple: false,\n\t\t\tfield: false,\n\t\t\tajax: false,\n\t\t\tajaxAction: '',\n\t\t\tajaxData: function ( data ) {\n\t\t\t\treturn data;\n\t\t\t},\n\t\t\tajaxResults: function ( json ) {\n\t\t\t\treturn json;\n\t\t\t},\n\t\t\ttemplateSelection: false,\n\t\t\ttemplateResult: false,\n\t\t\tdropdownCssClass: '',\n\t\t\tsuppressFilters: false,\n\t\t} );\n\n\t\t// initialize\n\t\tif ( getVersion() == 4 ) {\n\t\t\tvar select2 = new Select2_4( $select, props );\n\t\t} else {\n\t\t\tvar select2 = new Select2_3( $select, props );\n\t\t}\n\n\t\t// actions\n\t\tacf.doAction( 'new_select2', select2 );\n\n\t\t// return\n\t\treturn select2;\n\t};\n\n\t/**\n\t * getVersion\n\t *\n\t * description\n\t *\n\t * @date\t13/1/18\n\t * @since\t5.6.5\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tfunction getVersion() {\n\t\t// v4\n\t\tif ( acf.isset( window, 'jQuery', 'fn', 'select2', 'amd' ) ) {\n\t\t\treturn 4;\n\t\t}\n\n\t\t// v3\n\t\tif ( acf.isset( window, 'Select2' ) ) {\n\t\t\treturn 3;\n\t\t}\n\n\t\t// return\n\t\treturn false;\n\t}\n\n\t/**\n\t * Select2\n\t *\n\t * description\n\t *\n\t * @date\t13/1/18\n\t * @since\t5.6.5\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tvar Select2 = acf.Model.extend( {\n\t\tsetup: function ( $select, props ) {\n\t\t\t$.extend( this.data, props );\n\t\t\tthis.$el = $select;\n\t\t},\n\n\t\tinitialize: function () {},\n\n\t\tselectOption: function ( value ) {\n\t\t\tvar $option = this.getOption( value );\n\t\t\tif ( ! $option.prop( 'selected' ) ) {\n\t\t\t\t$option.prop( 'selected', true ).trigger( 'change' );\n\t\t\t}\n\t\t},\n\n\t\tunselectOption: function ( value ) {\n\t\t\tvar $option = this.getOption( value );\n\t\t\tif ( $option.prop( 'selected' ) ) {\n\t\t\t\t$option.prop( 'selected', false ).trigger( 'change' );\n\t\t\t}\n\t\t},\n\n\t\tgetOption: function ( value ) {\n\t\t\treturn this.$( 'option[value=\"' + value + '\"]' );\n\t\t},\n\n\t\taddOption: function ( option ) {\n\t\t\t// defaults\n\t\t\toption = acf.parseArgs( option, {\n\t\t\t\tid: '',\n\t\t\t\ttext: '',\n\t\t\t\tselected: false,\n\t\t\t} );\n\n\t\t\t// vars\n\t\t\tvar $option = this.getOption( option.id );\n\n\t\t\t// append\n\t\t\tif ( ! $option.length ) {\n\t\t\t\t$option = $( '' );\n\t\t\t\t$option.html( option.text );\n\t\t\t\t$option.attr( 'value', option.id );\n\t\t\t\t$option.prop( 'selected', option.selected );\n\t\t\t\tthis.$el.append( $option );\n\t\t\t}\n\n\t\t\t// chain\n\t\t\treturn $option;\n\t\t},\n\n\t\tgetValue: function () {\n\t\t\t// vars\n\t\t\tvar val = [];\n\t\t\tvar $options = this.$el.find( 'option:selected' );\n\n\t\t\t// bail early if no selected\n\t\t\tif ( ! $options.exists() ) {\n\t\t\t\treturn val;\n\t\t\t}\n\n\t\t\t// sort by attribute\n\t\t\t$options = $options.sort( function ( a, b ) {\n\t\t\t\treturn (\n\t\t\t\t\t+a.getAttribute( 'data-i' ) - +b.getAttribute( 'data-i' )\n\t\t\t\t);\n\t\t\t} );\n\n\t\t\t// loop\n\t\t\t$options.each( function () {\n\t\t\t\tvar $el = $( this );\n\t\t\t\tval.push( {\n\t\t\t\t\t$el: $el,\n\t\t\t\t\tid: $el.attr( 'value' ),\n\t\t\t\t\ttext: $el.text(),\n\t\t\t\t} );\n\t\t\t} );\n\n\t\t\t// return\n\t\t\treturn val;\n\t\t},\n\n\t\tmergeOptions: function () {},\n\n\t\tgetChoices: function () {\n\t\t\t// callback\n\t\t\tvar crawl = function ( $parent ) {\n\t\t\t\t// vars\n\t\t\t\tvar choices = [];\n\n\t\t\t\t// loop\n\t\t\t\t$parent.children().each( function () {\n\t\t\t\t\t// vars\n\t\t\t\t\tvar $child = $( this );\n\n\t\t\t\t\t// optgroup\n\t\t\t\t\tif ( $child.is( 'optgroup' ) ) {\n\t\t\t\t\t\tchoices.push( {\n\t\t\t\t\t\t\ttext: $child.attr( 'label' ),\n\t\t\t\t\t\t\tchildren: crawl( $child ),\n\t\t\t\t\t\t} );\n\n\t\t\t\t\t\t// option\n\t\t\t\t\t} else {\n\t\t\t\t\t\tchoices.push( {\n\t\t\t\t\t\t\tid: $child.attr( 'value' ),\n\t\t\t\t\t\t\ttext: $child.text(),\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t} );\n\n\t\t\t\t// return\n\t\t\t\treturn choices;\n\t\t\t};\n\n\t\t\t// crawl\n\t\t\treturn crawl( this.$el );\n\t\t},\n\n\t\tgetAjaxData: function ( params ) {\n\t\t\t// vars\n\t\t\tvar ajaxData = {\n\t\t\t\taction: this.get( 'ajaxAction' ),\n\t\t\t\ts: params.term || '',\n\t\t\t\tpaged: params.page || 1,\n\t\t\t};\n\n\t\t\t// field helper\n\t\t\tvar field = this.get( 'field' );\n\t\t\tif ( field ) {\n\t\t\t\tajaxData.field_key = field.get( 'key' );\n\t\t\t}\n\n\t\t\t// callback\n\t\t\tvar callback = this.get( 'ajaxData' );\n\t\t\tif ( callback ) {\n\t\t\t\tajaxData = callback.apply( this, [ ajaxData, params ] );\n\t\t\t}\n\n\t\t\t// filter\n\t\t\tajaxData = acf.applyFilters(\n\t\t\t\t'select2_ajax_data',\n\t\t\t\tajaxData,\n\t\t\t\tthis.data,\n\t\t\t\tthis.$el,\n\t\t\t\tfield || false,\n\t\t\t\tthis\n\t\t\t);\n\n\t\t\t// return\n\t\t\treturn acf.prepareForAjax( ajaxData );\n\t\t},\n\n\t\tgetAjaxResults: function ( json, params ) {\n\t\t\t// defaults\n\t\t\tjson = acf.parseArgs( json, {\n\t\t\t\tresults: false,\n\t\t\t\tmore: false,\n\t\t\t} );\n\n\t\t\t// callback\n\t\t\tvar callback = this.get( 'ajaxResults' );\n\t\t\tif ( callback ) {\n\t\t\t\tjson = callback.apply( this, [ json, params ] );\n\t\t\t}\n\n\t\t\t// filter\n\t\t\tjson = acf.applyFilters(\n\t\t\t\t'select2_ajax_results',\n\t\t\t\tjson,\n\t\t\t\tparams,\n\t\t\t\tthis\n\t\t\t);\n\n\t\t\t// return\n\t\t\treturn json;\n\t\t},\n\n\t\tprocessAjaxResults: function ( json, params ) {\n\t\t\t// vars\n\t\t\tvar json = this.getAjaxResults( json, params );\n\n\t\t\t// change more to pagination\n\t\t\tif ( json.more ) {\n\t\t\t\tjson.pagination = { more: true };\n\t\t\t}\n\n\t\t\t// merge together groups\n\t\t\tsetTimeout( $.proxy( this.mergeOptions, this ), 1 );\n\n\t\t\t// return\n\t\t\treturn json;\n\t\t},\n\n\t\tdestroy: function () {\n\t\t\t// destroy via api\n\t\t\tif ( this.$el.data( 'select2' ) ) {\n\t\t\t\tthis.$el.select2( 'destroy' );\n\t\t\t}\n\n\t\t\t// destory via HTML (duplicating HTML does not contain data)\n\t\t\tthis.$el.siblings( '.select2-container' ).remove();\n\t\t},\n\t} );\n\n\t/**\n\t * Select2_4\n\t *\n\t * description\n\t *\n\t * @date\t13/1/18\n\t * @since\t5.6.5\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tvar Select2_4 = Select2.extend( {\n\t\tinitialize: function () {\n\t\t\t// vars\n\t\t\tvar $select = this.$el;\n\t\t\tvar options = {\n\t\t\t\twidth: '100%',\n\t\t\t\tallowClear: this.get( 'allowNull' ),\n\t\t\t\tplaceholder: this.get( 'placeholder' ),\n\t\t\t\tmultiple: this.get( 'multiple' ),\n\t\t\t\ttemplateSelection: this.get( 'templateSelection' ),\n\t\t\t\ttemplateResult: this.get( 'templateResult' ),\n\t\t\t\tdropdownCssClass: this.get( 'dropdownCssClass' ),\n\t\t\t\tsuppressFilters: this.get( 'suppressFilters' ),\n\t\t\t\tdata: [],\n\t\t\t\tescapeMarkup: function ( markup ) {\n\t\t\t\t\tif ( typeof markup !== 'string' ) {\n\t\t\t\t\t\treturn markup;\n\t\t\t\t\t}\n\t\t\t\t\treturn acf.escHtml( markup );\n\t\t\t\t},\n\t\t\t};\n\n\t\t\t// Clear empty templateSelections, templateResults, or dropdownCssClass.\n\t\t\tif ( ! options.templateSelection ) {\n\t\t\t\tdelete options.templateSelection;\n\t\t\t}\n\t\t\tif ( ! options.templateResult ) {\n\t\t\t\tdelete options.templateResult;\n\t\t\t}\n\t\t\tif ( ! options.dropdownCssClass ) {\n\t\t\t\tdelete options.dropdownCssClass;\n\t\t\t}\n\n\t\t\t// Only use the template if SelectWoo is not loaded to work around https://github.com/woocommerce/woocommerce/pull/30473\n\t\t\tif ( ! acf.isset( window, 'jQuery', 'fn', 'selectWoo' ) ) {\n\t\t\t\tif ( ! options.templateSelection ) {\n\t\t\t\t\toptions.templateSelection = function ( selection ) {\n\t\t\t\t\t\tvar $selection = $(\n\t\t\t\t\t\t\t''\n\t\t\t\t\t\t);\n\t\t\t\t\t\t$selection.html( acf.escHtml( selection.text ) );\n\t\t\t\t\t\t$selection.data( 'element', selection.element );\n\t\t\t\t\t\treturn $selection;\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdelete options.templateSelection;\n\t\t\t\tdelete options.templateResult;\n\t\t\t}\n\n\t\t\t// multiple\n\t\t\tif ( options.multiple ) {\n\t\t\t\t// reorder options\n\t\t\t\tthis.getValue().map( function ( item ) {\n\t\t\t\t\titem.$el.detach().appendTo( $select );\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t// Temporarily remove conflicting attribute.\n\t\t\tvar attrAjax = $select.attr( 'data-ajax' );\n\t\t\tif ( attrAjax !== undefined ) {\n\t\t\t\t$select.removeData( 'ajax' );\n\t\t\t\t$select.removeAttr( 'data-ajax' );\n\t\t\t}\n\n\t\t\t// ajax\n\t\t\tif ( this.get( 'ajax' ) ) {\n\t\t\t\toptions.ajax = {\n\t\t\t\t\turl: acf.get( 'ajaxurl' ),\n\t\t\t\t\tdelay: 250,\n\t\t\t\t\tdataType: 'json',\n\t\t\t\t\ttype: 'post',\n\t\t\t\t\tcache: false,\n\t\t\t\t\tdata: $.proxy( this.getAjaxData, this ),\n\t\t\t\t\tprocessResults: $.proxy( this.processAjaxResults, this ),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// filter for 3rd party customization\n\t\t\t//options = acf.applyFilters( 'select2_args', options, $select, this );\n\t\t\tif ( ! options.suppressFilters ) {\n\t\t\t\tvar field = this.get( 'field' );\n\t\t\t\toptions = acf.applyFilters(\n\t\t\t\t\t'select2_args',\n\t\t\t\t\toptions,\n\t\t\t\t\t$select,\n\t\t\t\t\tthis.data,\n\t\t\t\t\tfield || false,\n\t\t\t\t\tthis\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// add select2\n\t\t\t$select.select2( options );\n\n\t\t\t// get container (Select2 v4 does not return this from constructor)\n\t\t\tvar $container = $select.next( '.select2-container' );\n\n\t\t\t// multiple\n\t\t\tif ( options.multiple ) {\n\t\t\t\t// vars\n\t\t\t\tvar $ul = $container.find( 'ul' );\n\n\t\t\t\t// sortable\n\t\t\t\t$ul.sortable( {\n\t\t\t\t\tstop: function ( e ) {\n\t\t\t\t\t\t// loop\n\t\t\t\t\t\t$ul.find( '.select2-selection__choice' ).each(\n\t\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\t\t// Attempt to use .data if it exists (select2 version < 4.0.6) or use our template data instead.\n\t\t\t\t\t\t\t\tif ( $( this ).data( 'data' ) ) {\n\t\t\t\t\t\t\t\t\tvar $option = $(\n\t\t\t\t\t\t\t\t\t\t$( this ).data( 'data' ).element\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tvar $option = $(\n\t\t\t\t\t\t\t\t\t\t$( this )\n\t\t\t\t\t\t\t\t\t\t\t.find( 'span.acf-selection' )\n\t\t\t\t\t\t\t\t\t\t\t.data( 'element' )\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// detach and re-append to end\n\t\t\t\t\t\t\t\t$option.detach().appendTo( $select );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// trigger change on input (JS error if trigger on select)\n\t\t\t\t\t\t$select.trigger( 'change' );\n\t\t\t\t\t},\n\t\t\t\t} );\n\n\t\t\t\t// on select, move to end\n\t\t\t\t$select.on(\n\t\t\t\t\t'select2:select',\n\t\t\t\t\tthis.proxy( function ( e ) {\n\t\t\t\t\t\tthis.getOption( e.params.data.id )\n\t\t\t\t\t\t\t.detach()\n\t\t\t\t\t\t\t.appendTo( this.$el );\n\t\t\t\t\t} )\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// add handler to auto-focus searchbox (for jQuery 3.6)\n\t\t\t$select.on( 'select2:open', () => {\n\t\t\t\t$( '.select2-container--open .select2-search__field' )\n\t\t\t\t\t.get( -1 )\n\t\t\t\t\t.focus();\n\t\t\t} );\n\n\t\t\t// add class\n\t\t\t$container.addClass( '-acf' );\n\n\t\t\t// Add back temporarily removed attr.\n\t\t\tif ( attrAjax !== undefined ) {\n\t\t\t\t$select.attr( 'data-ajax', attrAjax );\n\t\t\t}\n\n\t\t\t// action for 3rd party customization\n\t\t\tif ( ! options.suppressFilters ) {\n\t\t\t\tacf.doAction(\n\t\t\t\t\t'select2_init',\n\t\t\t\t\t$select,\n\t\t\t\t\toptions,\n\t\t\t\t\tthis.data,\n\t\t\t\t\tfield || false,\n\t\t\t\t\tthis\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\n\t\tmergeOptions: function () {\n\t\t\t// vars\n\t\t\tvar $prevOptions = false;\n\t\t\tvar $prevGroup = false;\n\n\t\t\t// loop\n\t\t\t$( '.select2-results__option[role=\"group\"]' ).each( function () {\n\t\t\t\t// vars\n\t\t\t\tvar $options = $( this ).children( 'ul' );\n\t\t\t\tvar $group = $( this ).children( 'strong' );\n\n\t\t\t\t// compare to previous\n\t\t\t\tif ( $prevGroup && $prevGroup.text() === $group.text() ) {\n\t\t\t\t\t$prevOptions.append( $options.children() );\n\t\t\t\t\t$( this ).remove();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// update vars\n\t\t\t\t$prevOptions = $options;\n\t\t\t\t$prevGroup = $group;\n\t\t\t} );\n\t\t},\n\t} );\n\n\t/**\n\t * Select2_3\n\t *\n\t * description\n\t *\n\t * @date\t13/1/18\n\t * @since\t5.6.5\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tvar Select2_3 = Select2.extend( {\n\t\tinitialize: function () {\n\t\t\t// vars\n\t\t\tvar $select = this.$el;\n\t\t\tvar value = this.getValue();\n\t\t\tvar multiple = this.get( 'multiple' );\n\t\t\tvar options = {\n\t\t\t\twidth: '100%',\n\t\t\t\tallowClear: this.get( 'allowNull' ),\n\t\t\t\tplaceholder: this.get( 'placeholder' ),\n\t\t\t\tseparator: '||',\n\t\t\t\tmultiple: this.get( 'multiple' ),\n\t\t\t\tdata: this.getChoices(),\n\t\t\t\tescapeMarkup: function ( string ) {\n\t\t\t\t\treturn acf.escHtml( string );\n\t\t\t\t},\n\t\t\t\tdropdownCss: {\n\t\t\t\t\t'z-index': '999999999',\n\t\t\t\t},\n\t\t\t\tinitSelection: function ( element, callback ) {\n\t\t\t\t\tif ( multiple ) {\n\t\t\t\t\t\tcallback( value );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcallback( value.shift() );\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t};\n\n\t\t\t// get hidden input\n\t\t\tvar $input = $select.siblings( 'input' );\n\t\t\tif ( ! $input.length ) {\n\t\t\t\t$input = $( '' );\n\t\t\t\t$select.before( $input );\n\t\t\t}\n\n\t\t\t// set input value\n\t\t\tinputValue = value\n\t\t\t\t.map( function ( item ) {\n\t\t\t\t\treturn item.id;\n\t\t\t\t} )\n\t\t\t\t.join( '||' );\n\t\t\t$input.val( inputValue );\n\n\t\t\t// multiple\n\t\t\tif ( options.multiple ) {\n\t\t\t\t// reorder options\n\t\t\t\tvalue.map( function ( item ) {\n\t\t\t\t\titem.$el.detach().appendTo( $select );\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t// remove blank option as we have a clear all button\n\t\t\tif ( options.allowClear ) {\n\t\t\t\toptions.data = options.data.filter( function ( item ) {\n\t\t\t\t\treturn item.id !== '';\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t// remove conflicting atts\n\t\t\t$select.removeData( 'ajax' );\n\t\t\t$select.removeAttr( 'data-ajax' );\n\n\t\t\t// ajax\n\t\t\tif ( this.get( 'ajax' ) ) {\n\t\t\t\toptions.ajax = {\n\t\t\t\t\turl: acf.get( 'ajaxurl' ),\n\t\t\t\t\tquietMillis: 250,\n\t\t\t\t\tdataType: 'json',\n\t\t\t\t\ttype: 'post',\n\t\t\t\t\tcache: false,\n\t\t\t\t\tdata: $.proxy( this.getAjaxData, this ),\n\t\t\t\t\tresults: $.proxy( this.processAjaxResults, this ),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// filter for 3rd party customization\n\t\t\tvar field = this.get( 'field' );\n\t\t\toptions = acf.applyFilters(\n\t\t\t\t'select2_args',\n\t\t\t\toptions,\n\t\t\t\t$select,\n\t\t\t\tthis.data,\n\t\t\t\tfield || false,\n\t\t\t\tthis\n\t\t\t);\n\n\t\t\t// add select2\n\t\t\t$input.select2( options );\n\n\t\t\t// get container\n\t\t\tvar $container = $input.select2( 'container' );\n\n\t\t\t// helper to find this select's option\n\t\t\tvar getOption = $.proxy( this.getOption, this );\n\n\t\t\t// multiple\n\t\t\tif ( options.multiple ) {\n\t\t\t\t// vars\n\t\t\t\tvar $ul = $container.find( 'ul' );\n\n\t\t\t\t// sortable\n\t\t\t\t$ul.sortable( {\n\t\t\t\t\tstop: function () {\n\t\t\t\t\t\t// loop\n\t\t\t\t\t\t$ul.find( '.select2-search-choice' ).each( function () {\n\t\t\t\t\t\t\t// vars\n\t\t\t\t\t\t\tvar data = $( this ).data( 'select2Data' );\n\t\t\t\t\t\t\tvar $option = getOption( data.id );\n\n\t\t\t\t\t\t\t// detach and re-append to end\n\t\t\t\t\t\t\t$option.detach().appendTo( $select );\n\t\t\t\t\t\t} );\n\n\t\t\t\t\t\t// trigger change on input (JS error if trigger on select)\n\t\t\t\t\t\t$select.trigger( 'change' );\n\t\t\t\t\t},\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t// on select, create option and move to end\n\t\t\t$input.on( 'select2-selecting', function ( e ) {\n\t\t\t\t// vars\n\t\t\t\tvar item = e.choice;\n\t\t\t\tvar $option = getOption( item.id );\n\n\t\t\t\t// create if doesn't exist\n\t\t\t\tif ( ! $option.length ) {\n\t\t\t\t\t$option = $(\n\t\t\t\t\t\t''\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// detach and re-append to end\n\t\t\t\t$option.detach().appendTo( $select );\n\t\t\t} );\n\n\t\t\t// add class\n\t\t\t$container.addClass( '-acf' );\n\n\t\t\t// action for 3rd party customization\n\t\t\tacf.doAction(\n\t\t\t\t'select2_init',\n\t\t\t\t$select,\n\t\t\t\toptions,\n\t\t\t\tthis.data,\n\t\t\t\tfield || false,\n\t\t\t\tthis\n\t\t\t);\n\n\t\t\t// change\n\t\t\t$input.on( 'change', function () {\n\t\t\t\tvar val = $input.val();\n\t\t\t\tif ( val.indexOf( '||' ) ) {\n\t\t\t\t\tval = val.split( '||' );\n\t\t\t\t}\n\t\t\t\t$select.val( val ).trigger( 'change' );\n\t\t\t} );\n\n\t\t\t// hide select\n\t\t\t$select.hide();\n\t\t},\n\n\t\tmergeOptions: function () {\n\t\t\t// vars\n\t\t\tvar $prevOptions = false;\n\t\t\tvar $prevGroup = false;\n\n\t\t\t// loop\n\t\t\t$( '#select2-drop .select2-result-with-children' ).each(\n\t\t\t\tfunction () {\n\t\t\t\t\t// vars\n\t\t\t\t\tvar $options = $( this ).children( 'ul' );\n\t\t\t\t\tvar $group = $( this ).children( '.select2-result-label' );\n\n\t\t\t\t\t// compare to previous\n\t\t\t\t\tif ( $prevGroup && $prevGroup.text() === $group.text() ) {\n\t\t\t\t\t\t$prevGroup.append( $options.children() );\n\t\t\t\t\t\t$( this ).remove();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t// update vars\n\t\t\t\t\t$prevOptions = $options;\n\t\t\t\t\t$prevGroup = $group;\n\t\t\t\t}\n\t\t\t);\n\t\t},\n\n\t\tgetAjaxData: function ( term, page ) {\n\t\t\t// create Select2 v4 params\n\t\t\tvar params = {\n\t\t\t\tterm: term,\n\t\t\t\tpage: page,\n\t\t\t};\n\n\t\t\t// filter\n\t\t\tvar field = this.get( 'field' );\n\t\t\tparams = acf.applyFilters(\n\t\t\t\t'select2_ajax_data',\n\t\t\t\tparams,\n\t\t\t\tthis.data,\n\t\t\t\tthis.$el,\n\t\t\t\tfield || false,\n\t\t\t\tthis\n\t\t\t);\n\n\t\t\t// return\n\t\t\treturn Select2.prototype.getAjaxData.apply( this, [ params ] );\n\t\t},\n\t} );\n\n\t// manager\n\tvar select2Manager = new acf.Model( {\n\t\tpriority: 5,\n\t\twait: 'prepare',\n\t\tactions: {\n\t\t\tduplicate: 'onDuplicate',\n\t\t},\n\t\tinitialize: function () {\n\t\t\t// vars\n\t\t\tvar locale = acf.get( 'locale' );\n\t\t\tvar rtl = acf.get( 'rtl' );\n\t\t\tvar l10n = acf.get( 'select2L10n' );\n\t\t\tvar version = getVersion();\n\n\t\t\t// bail early if no l10n\n\t\t\tif ( ! l10n ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// bail early if 'en'\n\t\t\tif ( locale.indexOf( 'en' ) === 0 ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// initialize\n\t\t\tif ( version == 4 ) {\n\t\t\t\tthis.addTranslations4();\n\t\t\t} else if ( version == 3 ) {\n\t\t\t\tthis.addTranslations3();\n\t\t\t}\n\t\t},\n\n\t\taddTranslations4: function () {\n\t\t\t// vars\n\t\t\tvar l10n = acf.get( 'select2L10n' );\n\t\t\tvar locale = acf.get( 'locale' );\n\n\t\t\t// modify local to match html[lang] attribute (used by Select2)\n\t\t\tlocale = locale.replace( '_', '-' );\n\n\t\t\t// select2L10n\n\t\t\tvar select2L10n = {\n\t\t\t\terrorLoading: function () {\n\t\t\t\t\treturn l10n.load_fail;\n\t\t\t\t},\n\t\t\t\tinputTooLong: function ( args ) {\n\t\t\t\t\tvar overChars = args.input.length - args.maximum;\n\t\t\t\t\tif ( overChars > 1 ) {\n\t\t\t\t\t\treturn l10n.input_too_long_n.replace( '%d', overChars );\n\t\t\t\t\t}\n\t\t\t\t\treturn l10n.input_too_long_1;\n\t\t\t\t},\n\t\t\t\tinputTooShort: function ( args ) {\n\t\t\t\t\tvar remainingChars = args.minimum - args.input.length;\n\t\t\t\t\tif ( remainingChars > 1 ) {\n\t\t\t\t\t\treturn l10n.input_too_short_n.replace(\n\t\t\t\t\t\t\t'%d',\n\t\t\t\t\t\t\tremainingChars\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\treturn l10n.input_too_short_1;\n\t\t\t\t},\n\t\t\t\tloadingMore: function () {\n\t\t\t\t\treturn l10n.load_more;\n\t\t\t\t},\n\t\t\t\tmaximumSelected: function ( args ) {\n\t\t\t\t\tvar maximum = args.maximum;\n\t\t\t\t\tif ( maximum > 1 ) {\n\t\t\t\t\t\treturn l10n.selection_too_long_n.replace(\n\t\t\t\t\t\t\t'%d',\n\t\t\t\t\t\t\tmaximum\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\treturn l10n.selection_too_long_1;\n\t\t\t\t},\n\t\t\t\tnoResults: function () {\n\t\t\t\t\treturn l10n.matches_0;\n\t\t\t\t},\n\t\t\t\tsearching: function () {\n\t\t\t\t\treturn l10n.searching;\n\t\t\t\t},\n\t\t\t};\n\n\t\t\t// append\n\t\t\tjQuery.fn.select2.amd.define(\n\t\t\t\t'select2/i18n/' + locale,\n\t\t\t\t[],\n\t\t\t\tfunction () {\n\t\t\t\t\treturn select2L10n;\n\t\t\t\t}\n\t\t\t);\n\t\t},\n\n\t\taddTranslations3: function () {\n\t\t\t// vars\n\t\t\tvar l10n = acf.get( 'select2L10n' );\n\t\t\tvar locale = acf.get( 'locale' );\n\n\t\t\t// modify local to match html[lang] attribute (used by Select2)\n\t\t\tlocale = locale.replace( '_', '-' );\n\n\t\t\t// select2L10n\n\t\t\tvar select2L10n = {\n\t\t\t\tformatMatches: function ( matches ) {\n\t\t\t\t\tif ( matches > 1 ) {\n\t\t\t\t\t\treturn l10n.matches_n.replace( '%d', matches );\n\t\t\t\t\t}\n\t\t\t\t\treturn l10n.matches_1;\n\t\t\t\t},\n\t\t\t\tformatNoMatches: function () {\n\t\t\t\t\treturn l10n.matches_0;\n\t\t\t\t},\n\t\t\t\tformatAjaxError: function () {\n\t\t\t\t\treturn l10n.load_fail;\n\t\t\t\t},\n\t\t\t\tformatInputTooShort: function ( input, min ) {\n\t\t\t\t\tvar remainingChars = min - input.length;\n\t\t\t\t\tif ( remainingChars > 1 ) {\n\t\t\t\t\t\treturn l10n.input_too_short_n.replace(\n\t\t\t\t\t\t\t'%d',\n\t\t\t\t\t\t\tremainingChars\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\treturn l10n.input_too_short_1;\n\t\t\t\t},\n\t\t\t\tformatInputTooLong: function ( input, max ) {\n\t\t\t\t\tvar overChars = input.length - max;\n\t\t\t\t\tif ( overChars > 1 ) {\n\t\t\t\t\t\treturn l10n.input_too_long_n.replace( '%d', overChars );\n\t\t\t\t\t}\n\t\t\t\t\treturn l10n.input_too_long_1;\n\t\t\t\t},\n\t\t\t\tformatSelectionTooBig: function ( maximum ) {\n\t\t\t\t\tif ( maximum > 1 ) {\n\t\t\t\t\t\treturn l10n.selection_too_long_n.replace(\n\t\t\t\t\t\t\t'%d',\n\t\t\t\t\t\t\tmaximum\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\treturn l10n.selection_too_long_1;\n\t\t\t\t},\n\t\t\t\tformatLoadMore: function () {\n\t\t\t\t\treturn l10n.load_more;\n\t\t\t\t},\n\t\t\t\tformatSearching: function () {\n\t\t\t\t\treturn l10n.searching;\n\t\t\t\t},\n\t\t\t};\n\n\t\t\t// ensure locales exists\n\t\t\t$.fn.select2.locales = $.fn.select2.locales || {};\n\n\t\t\t// append\n\t\t\t$.fn.select2.locales[ locale ] = select2L10n;\n\t\t\t$.extend( $.fn.select2.defaults, select2L10n );\n\t\t},\n\n\t\tonDuplicate: function ( $el, $el2 ) {\n\t\t\t$el2.find( '.select2-container' ).remove();\n\t\t},\n\t} );\n} )( jQuery );\n","( function ( $, undefined ) {\n\tacf.tinymce = {\n\t\t/*\n\t\t * defaults\n\t\t *\n\t\t * This function will return default mce and qt settings\n\t\t *\n\t\t * @type\tfunction\n\t\t * @date\t18/8/17\n\t\t * @since\t5.6.0\n\t\t *\n\t\t * @param\t$post_id (int)\n\t\t * @return\t$post_id (int)\n\t\t */\n\n\t\tdefaults: function () {\n\t\t\t// bail early if no tinyMCEPreInit\n\t\t\tif ( typeof tinyMCEPreInit === 'undefined' ) return false;\n\n\t\t\t// vars\n\t\t\tvar defaults = {\n\t\t\t\ttinymce: tinyMCEPreInit.mceInit.acf_content,\n\t\t\t\tquicktags: tinyMCEPreInit.qtInit.acf_content,\n\t\t\t};\n\n\t\t\t// return\n\t\t\treturn defaults;\n\t\t},\n\n\t\t/*\n\t\t * initialize\n\t\t *\n\t\t * This function will initialize the tinymce and quicktags instances\n\t\t *\n\t\t * @type\tfunction\n\t\t * @date\t18/8/17\n\t\t * @since\t5.6.0\n\t\t *\n\t\t * @param\t$post_id (int)\n\t\t * @return\t$post_id (int)\n\t\t */\n\n\t\tinitialize: function ( id, args ) {\n\t\t\t// defaults\n\t\t\targs = acf.parseArgs( args, {\n\t\t\t\ttinymce: true,\n\t\t\t\tquicktags: true,\n\t\t\t\ttoolbar: 'full',\n\t\t\t\tmode: 'visual', // visual,text\n\t\t\t\tfield: false,\n\t\t\t} );\n\n\t\t\t// tinymce\n\t\t\tif ( args.tinymce ) {\n\t\t\t\tthis.initializeTinymce( id, args );\n\t\t\t}\n\n\t\t\t// quicktags\n\t\t\tif ( args.quicktags ) {\n\t\t\t\tthis.initializeQuicktags( id, args );\n\t\t\t}\n\t\t},\n\n\t\t/*\n\t\t * initializeTinymce\n\t\t *\n\t\t * This function will initialize the tinymce instance\n\t\t *\n\t\t * @type\tfunction\n\t\t * @date\t18/8/17\n\t\t * @since\t5.6.0\n\t\t *\n\t\t * @param\t$post_id (int)\n\t\t * @return\t$post_id (int)\n\t\t */\n\n\t\tinitializeTinymce: function ( id, args ) {\n\t\t\t// vars\n\t\t\tvar $textarea = $( '#' + id );\n\t\t\tvar defaults = this.defaults();\n\t\t\tvar toolbars = acf.get( 'toolbars' );\n\t\t\tvar field = args.field || false;\n\t\t\tvar $field = field.$el || false;\n\n\t\t\t// bail early\n\t\t\tif ( typeof tinymce === 'undefined' ) return false;\n\t\t\tif ( ! defaults ) return false;\n\n\t\t\t// check if exists\n\t\t\tif ( tinymce.get( id ) ) {\n\t\t\t\treturn this.enable( id );\n\t\t\t}\n\n\t\t\t// settings\n\t\t\tvar init = $.extend( {}, defaults.tinymce, args.tinymce );\n\t\t\tinit.id = id;\n\t\t\tinit.selector = '#' + id;\n\n\t\t\t// toolbar\n\t\t\tvar toolbar = args.toolbar;\n\t\t\tif ( toolbar && toolbars && toolbars[ toolbar ] ) {\n\t\t\t\tfor ( var i = 1; i <= 4; i++ ) {\n\t\t\t\t\tinit[ 'toolbar' + i ] = toolbars[ toolbar ][ i ] || '';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// event\n\t\t\tinit.setup = function ( ed ) {\n\t\t\t\ted.on( 'change', function ( e ) {\n\t\t\t\t\ted.save(); // save to textarea\n\t\t\t\t\t$textarea.trigger( 'change' );\n\t\t\t\t} );\n\n\t\t\t\t// Fix bug where Gutenberg does not hear \"mouseup\" event and tries to select multiple blocks.\n\t\t\t\ted.on( 'mouseup', function ( e ) {\n\t\t\t\t\tvar event = new MouseEvent( 'mouseup' );\n\t\t\t\t\twindow.dispatchEvent( event );\n\t\t\t\t} );\n\n\t\t\t\t// Temporarily comment out. May not be necessary due to wysiwyg field actions.\n\t\t\t\t//ed.on('unload', function(e) {\n\t\t\t\t//\tacf.tinymce.remove( id );\n\t\t\t\t//});\n\t\t\t};\n\n\t\t\t// disable wp_autoresize_on (no solution yet for fixed toolbar)\n\t\t\tinit.wp_autoresize_on = false;\n\n\t\t\t// Enable wpautop allowing value to save without

              tags.\n\t\t\t// Only if the \"TinyMCE Advanced\" plugin hasn't already set this functionality.\n\t\t\tif ( ! init.tadv_noautop ) {\n\t\t\t\tinit.wpautop = true;\n\t\t\t}\n\n\t\t\t// hook for 3rd party customization\n\t\t\tinit = acf.applyFilters(\n\t\t\t\t'wysiwyg_tinymce_settings',\n\t\t\t\tinit,\n\t\t\t\tid,\n\t\t\t\tfield\n\t\t\t);\n\n\t\t\t// z-index fix (caused too many conflicts)\n\t\t\t//if( acf.isset(tinymce,'ui','FloatPanel') ) {\n\t\t\t//\ttinymce.ui.FloatPanel.zIndex = 900000;\n\t\t\t//}\n\n\t\t\t// store settings\n\t\t\ttinyMCEPreInit.mceInit[ id ] = init;\n\n\t\t\t// visual tab is active\n\t\t\tif ( args.mode == 'visual' ) {\n\t\t\t\t// init\n\t\t\t\tvar result = tinymce.init( init );\n\n\t\t\t\t// get editor\n\t\t\t\tvar ed = tinymce.get( id );\n\n\t\t\t\t// validate\n\t\t\t\tif ( ! ed ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\t// add reference\n\t\t\t\ted.acf = args.field;\n\n\t\t\t\t// action\n\t\t\t\tacf.doAction( 'wysiwyg_tinymce_init', ed, ed.id, init, field );\n\t\t\t}\n\t\t},\n\n\t\t/*\n\t\t * initializeQuicktags\n\t\t *\n\t\t * This function will initialize the quicktags instance\n\t\t *\n\t\t * @type\tfunction\n\t\t * @date\t18/8/17\n\t\t * @since\t5.6.0\n\t\t *\n\t\t * @param\t$post_id (int)\n\t\t * @return\t$post_id (int)\n\t\t */\n\n\t\tinitializeQuicktags: function ( id, args ) {\n\t\t\t// vars\n\t\t\tvar defaults = this.defaults();\n\n\t\t\t// bail early\n\t\t\tif ( typeof quicktags === 'undefined' ) return false;\n\t\t\tif ( ! defaults ) return false;\n\n\t\t\t// settings\n\t\t\tvar init = $.extend( {}, defaults.quicktags, args.quicktags );\n\t\t\tinit.id = id;\n\n\t\t\t// filter\n\t\t\tvar field = args.field || false;\n\t\t\tvar $field = field.$el || false;\n\t\t\tinit = acf.applyFilters(\n\t\t\t\t'wysiwyg_quicktags_settings',\n\t\t\t\tinit,\n\t\t\t\tinit.id,\n\t\t\t\tfield\n\t\t\t);\n\n\t\t\t// store settings\n\t\t\ttinyMCEPreInit.qtInit[ id ] = init;\n\n\t\t\t// init\n\t\t\tvar ed = quicktags( init );\n\n\t\t\t// validate\n\t\t\tif ( ! ed ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// generate HTML\n\t\t\tthis.buildQuicktags( ed );\n\n\t\t\t// action for 3rd party customization\n\t\t\tacf.doAction( 'wysiwyg_quicktags_init', ed, ed.id, init, field );\n\t\t},\n\n\t\t/*\n\t\t * buildQuicktags\n\t\t *\n\t\t * This function will build the quicktags HTML\n\t\t *\n\t\t * @type\tfunction\n\t\t * @date\t18/8/17\n\t\t * @since\t5.6.0\n\t\t *\n\t\t * @param\t$post_id (int)\n\t\t * @return\t$post_id (int)\n\t\t */\n\n\t\tbuildQuicktags: function ( ed ) {\n\t\t\tvar canvas,\n\t\t\t\tname,\n\t\t\t\tsettings,\n\t\t\t\ttheButtons,\n\t\t\t\thtml,\n\t\t\t\ted,\n\t\t\t\tid,\n\t\t\t\ti,\n\t\t\t\tuse,\n\t\t\t\tinstanceId,\n\t\t\t\tdefaults =\n\t\t\t\t\t',strong,em,link,block,del,ins,img,ul,ol,li,code,more,close,';\n\n\t\t\tcanvas = ed.canvas;\n\t\t\tname = ed.name;\n\t\t\tsettings = ed.settings;\n\t\t\thtml = '';\n\t\t\ttheButtons = {};\n\t\t\tuse = '';\n\t\t\tinstanceId = ed.id;\n\n\t\t\t// set buttons\n\t\t\tif ( settings.buttons ) {\n\t\t\t\tuse = ',' + settings.buttons + ',';\n\t\t\t}\n\n\t\t\tfor ( i in edButtons ) {\n\t\t\t\tif ( ! edButtons[ i ] ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tid = edButtons[ i ].id;\n\t\t\t\tif (\n\t\t\t\t\tuse &&\n\t\t\t\t\tdefaults.indexOf( ',' + id + ',' ) !== -1 &&\n\t\t\t\t\tuse.indexOf( ',' + id + ',' ) === -1\n\t\t\t\t) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t! edButtons[ i ].instance ||\n\t\t\t\t\tedButtons[ i ].instance === instanceId\n\t\t\t\t) {\n\t\t\t\t\ttheButtons[ id ] = edButtons[ i ];\n\n\t\t\t\t\tif ( edButtons[ i ].html ) {\n\t\t\t\t\t\thtml += edButtons[ i ].html( name + '_' );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( use && use.indexOf( ',dfw,' ) !== -1 ) {\n\t\t\t\ttheButtons.dfw = new QTags.DFWButton();\n\t\t\t\thtml += theButtons.dfw.html( name + '_' );\n\t\t\t}\n\n\t\t\tif ( 'rtl' === document.getElementsByTagName( 'html' )[ 0 ].dir ) {\n\t\t\t\ttheButtons.textdirection = new QTags.TextDirectionButton();\n\t\t\t\thtml += theButtons.textdirection.html( name + '_' );\n\t\t\t}\n\n\t\t\ted.toolbar.innerHTML = html;\n\t\t\ted.theButtons = theButtons;\n\n\t\t\tif ( typeof jQuery !== 'undefined' ) {\n\t\t\t\tjQuery( document ).triggerHandler( 'quicktags-init', [ ed ] );\n\t\t\t}\n\t\t},\n\n\t\tdisable: function ( id ) {\n\t\t\tthis.destroyTinymce( id );\n\t\t},\n\n\t\tremove: function ( id ) {\n\t\t\tthis.destroyTinymce( id );\n\t\t},\n\n\t\tdestroy: function ( id ) {\n\t\t\tthis.destroyTinymce( id );\n\t\t},\n\n\t\tdestroyTinymce: function ( id ) {\n\t\t\t// bail early\n\t\t\tif ( typeof tinymce === 'undefined' ) return false;\n\n\t\t\t// get editor\n\t\t\tvar ed = tinymce.get( id );\n\n\t\t\t// bail early if no editor\n\t\t\tif ( ! ed ) return false;\n\n\t\t\t// save\n\t\t\ted.save();\n\n\t\t\t// destroy editor\n\t\t\ted.destroy();\n\n\t\t\t// return\n\t\t\treturn true;\n\t\t},\n\n\t\tenable: function ( id ) {\n\t\t\tthis.enableTinymce( id );\n\t\t},\n\n\t\tenableTinymce: function ( id ) {\n\t\t\t// bail early\n\t\t\tif ( typeof switchEditors === 'undefined' ) return false;\n\n\t\t\t// bail early if not initialized\n\t\t\tif ( typeof tinyMCEPreInit.mceInit[ id ] === 'undefined' )\n\t\t\t\treturn false;\n\n\t\t\t// Ensure textarea element is visible\n\t\t\t// - Fixes bug in block editor when switching between \"Block\" and \"Document\" tabs.\n\t\t\t$( '#' + id ).show();\n\n\t\t\t// toggle\n\t\t\tswitchEditors.go( id, 'tmce' );\n\n\t\t\t// return\n\t\t\treturn true;\n\t\t},\n\t};\n\n\tvar editorManager = new acf.Model( {\n\t\t// hook in before fieldsEventManager, conditions, etc\n\t\tpriority: 5,\n\n\t\tactions: {\n\t\t\tprepare: 'onPrepare',\n\t\t\tready: 'onReady',\n\t\t},\n\t\tonPrepare: function () {\n\t\t\t// find hidden editor which may exist within a field\n\t\t\tvar $div = $( '#acf-hidden-wp-editor' );\n\n\t\t\t// move to footer\n\t\t\tif ( $div.exists() ) {\n\t\t\t\t$div.appendTo( 'body' );\n\t\t\t}\n\t\t},\n\t\tonReady: function () {\n\t\t\t// Restore wp.editor functions used by tinymce removed in WP5.\n\t\t\tif ( acf.isset( window, 'wp', 'oldEditor' ) ) {\n\t\t\t\twp.editor.autop = wp.oldEditor.autop;\n\t\t\t\twp.editor.removep = wp.oldEditor.removep;\n\t\t\t}\n\n\t\t\t// bail early if no tinymce\n\t\t\tif ( ! acf.isset( window, 'tinymce', 'on' ) ) return;\n\n\t\t\t// restore default activeEditor\n\t\t\ttinymce.on( 'AddEditor', function ( data ) {\n\t\t\t\t// vars\n\t\t\t\tvar editor = data.editor;\n\n\t\t\t\t// bail early if not 'acf'\n\t\t\t\tif ( editor.id.substr( 0, 3 ) !== 'acf' ) return;\n\n\t\t\t\t// override if 'content' exists\n\t\t\t\teditor = tinymce.editors.content || editor;\n\n\t\t\t\t// update vars\n\t\t\t\ttinymce.activeEditor = editor;\n\t\t\t\twpActiveEditor = editor.id;\n\t\t\t} );\n\t\t},\n\t} );\n} )( jQuery );\n","( function ( $, undefined ) {\n\tacf.unload = new acf.Model( {\n\t\twait: 'load',\n\t\tactive: true,\n\t\tchanged: false,\n\n\t\tactions: {\n\t\t\tvalidation_failure: 'startListening',\n\t\t\tvalidation_success: 'stopListening',\n\t\t},\n\n\t\tevents: {\n\t\t\t'change form .acf-field': 'startListening',\n\t\t\t'submit form': 'stopListening',\n\t\t},\n\n\t\tenable: function () {\n\t\t\tthis.active = true;\n\t\t},\n\n\t\tdisable: function () {\n\t\t\tthis.active = false;\n\t\t},\n\n\t\treset: function () {\n\t\t\tthis.stopListening();\n\t\t},\n\n\t\tstartListening: function () {\n\t\t\t// bail early if already changed, not active\n\t\t\tif ( this.changed || ! this.active ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// update\n\t\t\tthis.changed = true;\n\n\t\t\t// add event\n\t\t\t$( window ).on( 'beforeunload', this.onUnload );\n\t\t},\n\n\t\tstopListening: function () {\n\t\t\t// update\n\t\t\tthis.changed = false;\n\n\t\t\t// remove event\n\t\t\t$( window ).off( 'beforeunload', this.onUnload );\n\t\t},\n\n\t\tonUnload: function () {\n\t\t\treturn acf.__(\n\t\t\t\t'The changes you made will be lost if you navigate away from this page'\n\t\t\t);\n\t\t},\n\t} );\n} )( jQuery );\n","( function ( $, undefined ) {\n\t/**\n\t * Validator\n\t *\n\t * The model for validating forms\n\t *\n\t * @date\t4/9/18\n\t * @since\t5.7.5\n\t *\n\t * @param\tvoid\n\t * @return\tvoid\n\t */\n\tvar Validator = acf.Model.extend( {\n\t\t/** @var string The model identifier. */\n\t\tid: 'Validator',\n\n\t\t/** @var object The model data. */\n\t\tdata: {\n\t\t\t/** @var array The form errors. */\n\t\t\terrors: [],\n\n\t\t\t/** @var object The form notice. */\n\t\t\tnotice: null,\n\n\t\t\t/** @var string The form status. loading, invalid, valid */\n\t\t\tstatus: '',\n\t\t},\n\n\t\t/** @var object The model events. */\n\t\tevents: {\n\t\t\t'changed:status': 'onChangeStatus',\n\t\t},\n\n\t\t/**\n\t\t * addErrors\n\t\t *\n\t\t * Adds errors to the form.\n\t\t *\n\t\t * @date\t4/9/18\n\t\t * @since\t5.7.5\n\t\t *\n\t\t * @param\tarray errors An array of errors.\n\t\t * @return\tvoid\n\t\t */\n\t\taddErrors: function ( errors ) {\n\t\t\terrors.map( this.addError, this );\n\t\t},\n\n\t\t/**\n\t\t * addError\n\t\t *\n\t\t * Adds and error to the form.\n\t\t *\n\t\t * @date\t4/9/18\n\t\t * @since\t5.7.5\n\t\t *\n\t\t * @param\tobject error An error object containing input and message.\n\t\t * @return\tvoid\n\t\t */\n\t\taddError: function ( error ) {\n\t\t\tthis.data.errors.push( error );\n\t\t},\n\n\t\t/**\n\t\t * hasErrors\n\t\t *\n\t\t * Returns true if the form has errors.\n\t\t *\n\t\t * @date\t4/9/18\n\t\t * @since\t5.7.5\n\t\t *\n\t\t * @param\tvoid\n\t\t * @return\tbool\n\t\t */\n\t\thasErrors: function () {\n\t\t\treturn this.data.errors.length;\n\t\t},\n\n\t\t/**\n\t\t * clearErrors\n\t\t *\n\t\t * Removes any errors.\n\t\t *\n\t\t * @date\t4/9/18\n\t\t * @since\t5.7.5\n\t\t *\n\t\t * @param\tvoid\n\t\t * @return\tvoid\n\t\t */\n\t\tclearErrors: function () {\n\t\t\treturn ( this.data.errors = [] );\n\t\t},\n\n\t\t/**\n\t\t * getErrors\n\t\t *\n\t\t * Returns the forms errors.\n\t\t *\n\t\t * @date\t4/9/18\n\t\t * @since\t5.7.5\n\t\t *\n\t\t * @param\tvoid\n\t\t * @return\tarray\n\t\t */\n\t\tgetErrors: function () {\n\t\t\treturn this.data.errors;\n\t\t},\n\n\t\t/**\n\t\t * getFieldErrors\n\t\t *\n\t\t * Returns the forms field errors.\n\t\t *\n\t\t * @date\t4/9/18\n\t\t * @since\t5.7.5\n\t\t *\n\t\t * @param\tvoid\n\t\t * @return\tarray\n\t\t */\n\t\tgetFieldErrors: function () {\n\t\t\t// vars\n\t\t\tvar errors = [];\n\t\t\tvar inputs = [];\n\n\t\t\t// loop\n\t\t\tthis.getErrors().map( function ( error ) {\n\t\t\t\t// bail early if global\n\t\t\t\tif ( ! error.input ) return;\n\n\t\t\t\t// update if exists\n\t\t\t\tvar i = inputs.indexOf( error.input );\n\t\t\t\tif ( i > -1 ) {\n\t\t\t\t\terrors[ i ] = error;\n\n\t\t\t\t\t// update\n\t\t\t\t} else {\n\t\t\t\t\terrors.push( error );\n\t\t\t\t\tinputs.push( error.input );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t// return\n\t\t\treturn errors;\n\t\t},\n\n\t\t/**\n\t\t * getGlobalErrors\n\t\t *\n\t\t * Returns the forms global errors (errors without a specific input).\n\t\t *\n\t\t * @date\t4/9/18\n\t\t * @since\t5.7.5\n\t\t *\n\t\t * @param\tvoid\n\t\t * @return\tarray\n\t\t */\n\t\tgetGlobalErrors: function () {\n\t\t\t// return array of errors that contain no input\n\t\t\treturn this.getErrors().filter( function ( error ) {\n\t\t\t\treturn ! error.input;\n\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * showErrors\n\t\t *\n\t\t * Displays all errors for this form.\n\t\t *\n\t\t * @date\t4/9/18\n\t\t * @since\t5.7.5\n\t\t *\n\t\t * @param\tvoid\n\t\t * @return\tvoid\n\t\t */\n\t\tshowErrors: function () {\n\t\t\t// bail early if no errors\n\t\t\tif ( ! this.hasErrors() ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// vars\n\t\t\tvar fieldErrors = this.getFieldErrors();\n\t\t\tvar globalErrors = this.getGlobalErrors();\n\n\t\t\t// vars\n\t\t\tvar errorCount = 0;\n\t\t\tvar $scrollTo = false;\n\n\t\t\t// loop\n\t\t\tfieldErrors.map( function ( error ) {\n\t\t\t\t// get input\n\t\t\t\tvar $input = this.$( '[name=\"' + error.input + '\"]' ).first();\n\n\t\t\t\t// if $_POST value was an array, this $input may not exist\n\t\t\t\tif ( ! $input.length ) {\n\t\t\t\t\t$input = this.$( '[name^=\"' + error.input + '\"]' ).first();\n\t\t\t\t}\n\n\t\t\t\t// bail early if input doesn't exist\n\t\t\t\tif ( ! $input.length ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// increase\n\t\t\t\terrorCount++;\n\n\t\t\t\t// get field\n\t\t\t\tvar field = acf.getClosestField( $input );\n\n\t\t\t\t// make sure the postbox containing this field is not hidden by screen options\n\t\t\t\tensureFieldPostBoxIsVisible( field.$el );\n\n\t\t\t\t// show error\n\t\t\t\tfield.showError( error.message );\n\n\t\t\t\t// set $scrollTo\n\t\t\t\tif ( ! $scrollTo ) {\n\t\t\t\t\t$scrollTo = field.$el;\n\t\t\t\t}\n\t\t\t}, this );\n\n\t\t\t// errorMessage\n\t\t\tvar errorMessage = acf.__( 'Validation failed' );\n\t\t\tglobalErrors.map( function ( error ) {\n\t\t\t\terrorMessage += '. ' + error.message;\n\t\t\t} );\n\t\t\tif ( errorCount == 1 ) {\n\t\t\t\terrorMessage += '. ' + acf.__( '1 field requires attention' );\n\t\t\t} else if ( errorCount > 1 ) {\n\t\t\t\terrorMessage +=\n\t\t\t\t\t'. ' +\n\t\t\t\t\tacf\n\t\t\t\t\t\t.__( '%d fields require attention' )\n\t\t\t\t\t\t.replace( '%d', errorCount );\n\t\t\t}\n\n\t\t\t// notice\n\t\t\tif ( this.has( 'notice' ) ) {\n\t\t\t\tthis.get( 'notice' ).update( {\n\t\t\t\t\ttype: 'error',\n\t\t\t\t\ttext: errorMessage,\n\t\t\t\t} );\n\t\t\t} else {\n\t\t\t\tvar notice = acf.newNotice( {\n\t\t\t\t\ttype: 'error',\n\t\t\t\t\ttext: errorMessage,\n\t\t\t\t\ttarget: this.$el,\n\t\t\t\t} );\n\t\t\t\tthis.set( 'notice', notice );\n\t\t\t}\n\n\t\t\t// if no $scrollTo, set to message\n\t\t\tif ( ! $scrollTo ) {\n\t\t\t\t$scrollTo = this.get( 'notice' ).$el;\n\t\t\t}\n\n\t\t\t// timeout\n\t\t\tsetTimeout( function () {\n\t\t\t\t$( 'html, body' ).animate(\n\t\t\t\t\t{\n\t\t\t\t\t\tscrollTop:\n\t\t\t\t\t\t\t$scrollTo.offset().top - $( window ).height() / 2,\n\t\t\t\t\t},\n\t\t\t\t\t500\n\t\t\t\t);\n\t\t\t}, 10 );\n\t\t},\n\n\t\t/**\n\t\t * onChangeStatus\n\t\t *\n\t\t * Update the form class when changing the 'status' data\n\t\t *\n\t\t * @date\t4/9/18\n\t\t * @since\t5.7.5\n\t\t *\n\t\t * @param\tobject e The event object.\n\t\t * @param\tjQuery $el The form element.\n\t\t * @param\tstring value The new status.\n\t\t * @param\tstring prevValue The old status.\n\t\t * @return\tvoid\n\t\t */\n\t\tonChangeStatus: function ( e, $el, value, prevValue ) {\n\t\t\tthis.$el.removeClass( 'is-' + prevValue ).addClass( 'is-' + value );\n\t\t},\n\n\t\t/**\n\t\t * validate\n\t\t *\n\t\t * Vaildates the form via AJAX.\n\t\t *\n\t\t * @date\t4/9/18\n\t\t * @since\t5.7.5\n\t\t *\n\t\t * @param\tobject args A list of settings to customize the validation process.\n\t\t * @return\tbool True if the form is valid.\n\t\t */\n\t\tvalidate: function ( args ) {\n\t\t\t// default args\n\t\t\targs = acf.parseArgs( args, {\n\t\t\t\t// trigger event\n\t\t\t\tevent: false,\n\n\t\t\t\t// reset the form after submit\n\t\t\t\treset: false,\n\n\t\t\t\t// loading callback\n\t\t\t\tloading: function () {},\n\n\t\t\t\t// complete callback\n\t\t\t\tcomplete: function () {},\n\n\t\t\t\t// failure callback\n\t\t\t\tfailure: function () {},\n\n\t\t\t\t// success callback\n\t\t\t\tsuccess: function ( $form ) {\n\t\t\t\t\t$form.submit();\n\t\t\t\t},\n\t\t\t} );\n\n\t\t\t// return true if is valid - allows form submit\n\t\t\tif ( this.get( 'status' ) == 'valid' ) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\t// return false if is currently validating - prevents form submit\n\t\t\tif ( this.get( 'status' ) == 'validating' ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// return true if no ACF fields exist (no need to validate)\n\t\t\tif ( ! this.$( '.acf-field' ).length ) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\t// if event is provided, create a new success callback.\n\t\t\tif ( args.event ) {\n\t\t\t\tvar event = $.Event( null, args.event );\n\t\t\t\targs.success = function () {\n\t\t\t\t\tacf.enableSubmit( $( event.target ) ).trigger( event );\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// action for 3rd party\n\t\t\tacf.doAction( 'validation_begin', this.$el );\n\n\t\t\t// lock form\n\t\t\tacf.lockForm( this.$el );\n\n\t\t\t// loading callback\n\t\t\targs.loading( this.$el, this );\n\n\t\t\t// update status\n\t\t\tthis.set( 'status', 'validating' );\n\n\t\t\t// success callback\n\t\t\tvar onSuccess = function ( json ) {\n\t\t\t\t// validate\n\t\t\t\tif ( ! acf.isAjaxSuccess( json ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// filter\n\t\t\t\tvar data = acf.applyFilters(\n\t\t\t\t\t'validation_complete',\n\t\t\t\t\tjson.data,\n\t\t\t\t\tthis.$el,\n\t\t\t\t\tthis\n\t\t\t\t);\n\n\t\t\t\t// add errors\n\t\t\t\tif ( ! data.valid ) {\n\t\t\t\t\tthis.addErrors( data.errors );\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t// complete\n\t\t\tvar onComplete = function () {\n\t\t\t\t// unlock form\n\t\t\t\tacf.unlockForm( this.$el );\n\n\t\t\t\t// failure\n\t\t\t\tif ( this.hasErrors() ) {\n\t\t\t\t\t// update status\n\t\t\t\t\tthis.set( 'status', 'invalid' );\n\n\t\t\t\t\t// action\n\t\t\t\t\tacf.doAction( 'validation_failure', this.$el, this );\n\n\t\t\t\t\t// display errors\n\t\t\t\t\tthis.showErrors();\n\n\t\t\t\t\t// failure callback\n\t\t\t\t\targs.failure( this.$el, this );\n\n\t\t\t\t\t// success\n\t\t\t\t} else {\n\t\t\t\t\t// update status\n\t\t\t\t\tthis.set( 'status', 'valid' );\n\n\t\t\t\t\t// remove previous error message\n\t\t\t\t\tif ( this.has( 'notice' ) ) {\n\t\t\t\t\t\tthis.get( 'notice' ).update( {\n\t\t\t\t\t\t\ttype: 'success',\n\t\t\t\t\t\t\ttext: acf.__( 'Validation successful' ),\n\t\t\t\t\t\t\ttimeout: 1000,\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\n\t\t\t\t\t// action\n\t\t\t\t\tacf.doAction( 'validation_success', this.$el, this );\n\t\t\t\t\tacf.doAction( 'submit', this.$el );\n\n\t\t\t\t\t// success callback (submit form)\n\t\t\t\t\targs.success( this.$el, this );\n\n\t\t\t\t\t// lock form\n\t\t\t\t\tacf.lockForm( this.$el );\n\n\t\t\t\t\t// reset\n\t\t\t\t\tif ( args.reset ) {\n\t\t\t\t\t\tthis.reset();\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// complete callback\n\t\t\t\targs.complete( this.$el, this );\n\n\t\t\t\t// clear errors\n\t\t\t\tthis.clearErrors();\n\t\t\t};\n\n\t\t\t// serialize form data\n\t\t\tvar data = acf.serialize( this.$el );\n\t\t\tdata.action = 'acf/validate_save_post';\n\n\t\t\t// ajax\n\t\t\t$.ajax( {\n\t\t\t\turl: acf.get( 'ajaxurl' ),\n\t\t\t\tdata: acf.prepareForAjax( data ),\n\t\t\t\ttype: 'post',\n\t\t\t\tdataType: 'json',\n\t\t\t\tcontext: this,\n\t\t\t\tsuccess: onSuccess,\n\t\t\t\tcomplete: onComplete,\n\t\t\t} );\n\n\t\t\t// return false to fail validation and allow AJAX\n\t\t\treturn false;\n\t\t},\n\n\t\t/**\n\t\t * setup\n\t\t *\n\t\t * Called during the constructor function to setup this instance\n\t\t *\n\t\t * @date\t4/9/18\n\t\t * @since\t5.7.5\n\t\t *\n\t\t * @param\tjQuery $form The form element.\n\t\t * @return\tvoid\n\t\t */\n\t\tsetup: function ( $form ) {\n\t\t\t// set $el\n\t\t\tthis.$el = $form;\n\t\t},\n\n\t\t/**\n\t\t * reset\n\t\t *\n\t\t * Rests the validation to be used again.\n\t\t *\n\t\t * @date\t6/9/18\n\t\t * @since\t5.7.5\n\t\t *\n\t\t * @param\tvoid\n\t\t * @return\tvoid\n\t\t */\n\t\treset: function () {\n\t\t\t// reset data\n\t\t\tthis.set( 'errors', [] );\n\t\t\tthis.set( 'notice', null );\n\t\t\tthis.set( 'status', '' );\n\n\t\t\t// unlock form\n\t\t\tacf.unlockForm( this.$el );\n\t\t},\n\t} );\n\n\t/**\n\t * getValidator\n\t *\n\t * Returns the instance for a given form element.\n\t *\n\t * @date\t4/9/18\n\t * @since\t5.7.5\n\t *\n\t * @param\tjQuery $el The form element.\n\t * @return\tobject\n\t */\n\tvar getValidator = function ( $el ) {\n\t\t// instantiate\n\t\tvar validator = $el.data( 'acf' );\n\t\tif ( ! validator ) {\n\t\t\tvalidator = new Validator( $el );\n\t\t}\n\n\t\t// return\n\t\treturn validator;\n\t};\n\n\t/**\n\t * acf.validateForm\n\t *\n\t * A helper function for the Validator.validate() function.\n\t * Returns true if form is valid, or fetches a validation request and returns false.\n\t *\n\t * @date\t4/4/18\n\t * @since\t5.6.9\n\t *\n\t * @param\tobject args A list of settings to customize the validation process.\n\t * @return\tbool\n\t */\n\n\tacf.validateForm = function ( args ) {\n\t\treturn getValidator( args.form ).validate( args );\n\t};\n\n\t/**\n\t * acf.enableSubmit\n\t *\n\t * Enables a submit button and returns the element.\n\t *\n\t * @date\t30/8/18\n\t * @since\t5.7.4\n\t *\n\t * @param\tjQuery $submit The submit button.\n\t * @return\tjQuery\n\t */\n\tacf.enableSubmit = function ( $submit ) {\n\t\treturn $submit.removeClass( 'disabled' ).removeAttr( 'disabled' );\n\t};\n\n\t/**\n\t * acf.disableSubmit\n\t *\n\t * Disables a submit button and returns the element.\n\t *\n\t * @date\t30/8/18\n\t * @since\t5.7.4\n\t *\n\t * @param\tjQuery $submit The submit button.\n\t * @return\tjQuery\n\t */\n\tacf.disableSubmit = function ( $submit ) {\n\t\treturn $submit.addClass( 'disabled' ).attr( 'disabled', true );\n\t};\n\n\t/**\n\t * acf.showSpinner\n\t *\n\t * Shows the spinner element.\n\t *\n\t * @date\t4/9/18\n\t * @since\t5.7.5\n\t *\n\t * @param\tjQuery $spinner The spinner element.\n\t * @return\tjQuery\n\t */\n\tacf.showSpinner = function ( $spinner ) {\n\t\t$spinner.addClass( 'is-active' ); // add class (WP > 4.2)\n\t\t$spinner.css( 'display', 'inline-block' ); // css (WP < 4.2)\n\t\treturn $spinner;\n\t};\n\n\t/**\n\t * acf.hideSpinner\n\t *\n\t * Hides the spinner element.\n\t *\n\t * @date\t4/9/18\n\t * @since\t5.7.5\n\t *\n\t * @param\tjQuery $spinner The spinner element.\n\t * @return\tjQuery\n\t */\n\tacf.hideSpinner = function ( $spinner ) {\n\t\t$spinner.removeClass( 'is-active' ); // add class (WP > 4.2)\n\t\t$spinner.css( 'display', 'none' ); // css (WP < 4.2)\n\t\treturn $spinner;\n\t};\n\n\t/**\n\t * acf.lockForm\n\t *\n\t * Locks a form by disabeling its primary inputs and showing a spinner.\n\t *\n\t * @date\t4/9/18\n\t * @since\t5.7.5\n\t *\n\t * @param\tjQuery $form The form element.\n\t * @return\tjQuery\n\t */\n\tacf.lockForm = function ( $form ) {\n\t\t// vars\n\t\tvar $wrap = findSubmitWrap( $form );\n\t\tvar $submit = $wrap\n\t\t\t.find( '.button, [type=\"submit\"]' )\n\t\t\t.not( '.acf-nav, .acf-repeater-add-row' );\n\t\tvar $spinner = $wrap.find( '.spinner, .acf-spinner' );\n\n\t\t// hide all spinners (hides the preview spinner)\n\t\tacf.hideSpinner( $spinner );\n\n\t\t// lock\n\t\tacf.disableSubmit( $submit );\n\t\tacf.showSpinner( $spinner.last() );\n\t\treturn $form;\n\t};\n\n\t/**\n\t * acf.unlockForm\n\t *\n\t * Unlocks a form by enabeling its primary inputs and hiding all spinners.\n\t *\n\t * @date\t4/9/18\n\t * @since\t5.7.5\n\t *\n\t * @param\tjQuery $form The form element.\n\t * @return\tjQuery\n\t */\n\tacf.unlockForm = function ( $form ) {\n\t\t// vars\n\t\tvar $wrap = findSubmitWrap( $form );\n\t\tvar $submit = $wrap\n\t\t\t.find( '.button, [type=\"submit\"]' )\n\t\t\t.not( '.acf-nav, .acf-repeater-add-row' );\n\t\tvar $spinner = $wrap.find( '.spinner, .acf-spinner' );\n\n\t\t// unlock\n\t\tacf.enableSubmit( $submit );\n\t\tacf.hideSpinner( $spinner );\n\t\treturn $form;\n\t};\n\n\t/**\n\t * findSubmitWrap\n\t *\n\t * An internal function to find the 'primary' form submit wrapping element.\n\t *\n\t * @date\t4/9/18\n\t * @since\t5.7.5\n\t *\n\t * @param\tjQuery $form The form element.\n\t * @return\tjQuery\n\t */\n\tvar findSubmitWrap = function ( $form ) {\n\t\t// default post submit div\n\t\tvar $wrap = $form.find( '#submitdiv' );\n\t\tif ( $wrap.length ) {\n\t\t\treturn $wrap;\n\t\t}\n\n\t\t// 3rd party publish box\n\t\tvar $wrap = $form.find( '#submitpost' );\n\t\tif ( $wrap.length ) {\n\t\t\treturn $wrap;\n\t\t}\n\n\t\t// term, user\n\t\tvar $wrap = $form.find( 'p.submit' ).last();\n\t\tif ( $wrap.length ) {\n\t\t\treturn $wrap;\n\t\t}\n\n\t\t// front end form\n\t\tvar $wrap = $form.find( '.acf-form-submit' );\n\t\tif ( $wrap.length ) {\n\t\t\treturn $wrap;\n\t\t}\n\n\t\t// ACF 6.0+ headerbar submit\n\t\tvar $wrap = $( '.acf-headerbar-actions' );\n\t\tif ( $wrap.length ) {\n\t\t\treturn $wrap;\n\t\t}\n\n\t\t// default\n\t\treturn $form;\n\t};\n\n\t/**\n\t * A debounced function to trigger a form submission.\n\t *\n\t * @date\t15/07/2020\n\t * @since\t5.9.0\n\t *\n\t * @param\ttype Var Description.\n\t * @return\ttype Description.\n\t */\n\tvar submitFormDebounced = acf.debounce( function ( $form ) {\n\t\t$form.submit();\n\t} );\n\n\t/**\n\t * Ensure field is visible for validation errors\n\t *\n\t * @date\t20/10/2021\n\t * @since\t5.11.0\n\t */\n\tvar ensureFieldPostBoxIsVisible = function ( $el ) {\n\t\t// Find the postbox element containing this field.\n\t\tvar $postbox = $el.parents( '.acf-postbox' );\n\t\tif ( $postbox.length ) {\n\t\t\tvar acf_postbox = acf.getPostbox( $postbox );\n\t\t\tif ( acf_postbox && acf_postbox.isHiddenByScreenOptions() ) {\n\t\t\t\t// Rather than using .show() here, we don't want the field to appear next reload.\n\t\t\t\t// So just temporarily show the field group so validation can complete.\n\t\t\t\tacf_postbox.$el.removeClass( 'hide-if-js' );\n\t\t\t\tacf_postbox.$el.css( 'display', '' );\n\t\t\t}\n\t\t}\n\t};\n\n\t/**\n\t * Ensure metaboxes which contain browser validation failures are visible.\n\t *\n\t * @date\t20/10/2021\n\t * @since\t5.11.0\n\t */\n\tvar ensureInvalidFieldVisibility = function () {\n\t\t// Load each ACF input field and check it's browser validation state.\n\t\tvar $inputs = $( '.acf-field input' );\n\t\t$inputs.each( function () {\n\t\t\tif ( ! this.checkValidity() ) {\n\t\t\t\t// Field is invalid, so we need to make sure it's metabox is visible.\n\t\t\t\tensureFieldPostBoxIsVisible( $( this ) );\n\t\t\t}\n\t\t} );\n\t};\n\n\t/**\n\t * acf.validation\n\t *\n\t * Global validation logic\n\t *\n\t * @date\t4/4/18\n\t * @since\t5.6.9\n\t *\n\t * @param\tvoid\n\t * @return\tvoid\n\t */\n\n\tacf.validation = new acf.Model( {\n\t\t/** @var string The model identifier. */\n\t\tid: 'validation',\n\n\t\t/** @var bool The active state. Set to false before 'prepare' to prevent validation. */\n\t\tactive: true,\n\n\t\t/** @var string The model initialize time. */\n\t\twait: 'prepare',\n\n\t\t/** @var object The model actions. */\n\t\tactions: {\n\t\t\tready: 'addInputEvents',\n\t\t\tappend: 'addInputEvents',\n\t\t},\n\n\t\t/** @var object The model events. */\n\t\tevents: {\n\t\t\t'click input[type=\"submit\"]': 'onClickSubmit',\n\t\t\t'click button[type=\"submit\"]': 'onClickSubmit',\n\t\t\t//'click #editor .editor-post-publish-button': 'onClickSubmitGutenberg',\n\t\t\t'click #save-post': 'onClickSave',\n\t\t\t'submit form#post': 'onSubmitPost',\n\t\t\t'submit form': 'onSubmit',\n\t\t},\n\n\t\t/**\n\t\t * initialize\n\t\t *\n\t\t * Called when initializing the model.\n\t\t *\n\t\t * @date\t4/9/18\n\t\t * @since\t5.7.5\n\t\t *\n\t\t * @param\tvoid\n\t\t * @return\tvoid\n\t\t */\n\t\tinitialize: function () {\n\t\t\t// check 'validation' setting\n\t\t\tif ( ! acf.get( 'validation' ) ) {\n\t\t\t\tthis.active = false;\n\t\t\t\tthis.actions = {};\n\t\t\t\tthis.events = {};\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * enable\n\t\t *\n\t\t * Enables validation.\n\t\t *\n\t\t * @date\t4/9/18\n\t\t * @since\t5.7.5\n\t\t *\n\t\t * @param\tvoid\n\t\t * @return\tvoid\n\t\t */\n\t\tenable: function () {\n\t\t\tthis.active = true;\n\t\t},\n\n\t\t/**\n\t\t * disable\n\t\t *\n\t\t * Disables validation.\n\t\t *\n\t\t * @date\t4/9/18\n\t\t * @since\t5.7.5\n\t\t *\n\t\t * @param\tvoid\n\t\t * @return\tvoid\n\t\t */\n\t\tdisable: function () {\n\t\t\tthis.active = false;\n\t\t},\n\n\t\t/**\n\t\t * reset\n\t\t *\n\t\t * Rests the form validation to be used again\n\t\t *\n\t\t * @date\t6/9/18\n\t\t * @since\t5.7.5\n\t\t *\n\t\t * @param\tjQuery $form The form element.\n\t\t * @return\tvoid\n\t\t */\n\t\treset: function ( $form ) {\n\t\t\tgetValidator( $form ).reset();\n\t\t},\n\n\t\t/**\n\t\t * addInputEvents\n\t\t *\n\t\t * Adds 'invalid' event listeners to HTML inputs.\n\t\t *\n\t\t * @date\t4/9/18\n\t\t * @since\t5.7.5\n\t\t *\n\t\t * @param\tjQuery $el The element being added / readied.\n\t\t * @return\tvoid\n\t\t */\n\t\taddInputEvents: function ( $el ) {\n\t\t\t// Bug exists in Safari where custom \"invalid\" handling prevents draft from saving.\n\t\t\tif ( acf.get( 'browser' ) === 'safari' ) return;\n\n\t\t\t// vars\n\t\t\tvar $inputs = $( '.acf-field [name]', $el );\n\n\t\t\t// check\n\t\t\tif ( $inputs.length ) {\n\t\t\t\tthis.on( $inputs, 'invalid', 'onInvalid' );\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * onInvalid\n\t\t *\n\t\t * Callback for the 'invalid' event.\n\t\t *\n\t\t * @date\t4/9/18\n\t\t * @since\t5.7.5\n\t\t *\n\t\t * @param\tobject e The event object.\n\t\t * @param\tjQuery $el The input element.\n\t\t * @return\tvoid\n\t\t */\n\t\tonInvalid: function ( e, $el ) {\n\t\t\t// prevent default\n\t\t\t// - prevents browser error message\n\t\t\t// - also fixes chrome bug where 'hidden-by-tab' field throws focus error\n\t\t\te.preventDefault();\n\n\t\t\t// vars\n\t\t\tvar $form = $el.closest( 'form' );\n\n\t\t\t// check form exists\n\t\t\tif ( $form.length ) {\n\t\t\t\t// add error to validator\n\t\t\t\tgetValidator( $form ).addError( {\n\t\t\t\t\tinput: $el.attr( 'name' ),\n\t\t\t\t\tmessage: acf.strEscape( e.target.validationMessage ),\n\t\t\t\t} );\n\n\t\t\t\t// trigger submit on $form\n\t\t\t\t// - allows for \"save\", \"preview\" and \"publish\" to work\n\t\t\t\tsubmitFormDebounced( $form );\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * onClickSubmit\n\t\t *\n\t\t * Callback when clicking submit.\n\t\t *\n\t\t * @date\t4/9/18\n\t\t * @since\t5.7.5\n\t\t *\n\t\t * @param\tobject e The event object.\n\t\t * @param\tjQuery $el The input element.\n\t\t * @return\tvoid\n\t\t */\n\t\tonClickSubmit: function ( e, $el ) {\n\t\t\t// Some browsers (safari) force their browser validation before our AJAX validation,\n\t\t\t// so we need to make sure fields are visible earlier than showErrors()\n\t\t\tensureInvalidFieldVisibility();\n\n\t\t\t// store the \"click event\" for later use in this.onSubmit()\n\t\t\tthis.set( 'originalEvent', e );\n\t\t},\n\n\t\t/**\n\t\t * onClickSave\n\t\t *\n\t\t * Set ignore to true when saving a draft.\n\t\t *\n\t\t * @date\t4/9/18\n\t\t * @since\t5.7.5\n\t\t *\n\t\t * @param\tobject e The event object.\n\t\t * @param\tjQuery $el The input element.\n\t\t * @return\tvoid\n\t\t */\n\t\tonClickSave: function ( e, $el ) {\n\t\t\tthis.set( 'ignore', true );\n\t\t},\n\n\t\t/**\n\t\t * onClickSubmitGutenberg\n\t\t *\n\t\t * Custom validation event for the gutenberg editor.\n\t\t *\n\t\t * @date\t29/10/18\n\t\t * @since\t5.8.0\n\t\t *\n\t\t * @param\tobject e The event object.\n\t\t * @param\tjQuery $el The input element.\n\t\t * @return\tvoid\n\t\t */\n\t\tonClickSubmitGutenberg: function ( e, $el ) {\n\t\t\t// validate\n\t\t\tvar valid = acf.validateForm( {\n\t\t\t\tform: $( '#editor' ),\n\t\t\t\tevent: e,\n\t\t\t\treset: true,\n\t\t\t\tfailure: function ( $form, validator ) {\n\t\t\t\t\tvar $notice = validator.get( 'notice' ).$el;\n\t\t\t\t\t$notice.appendTo( '.components-notice-list' );\n\t\t\t\t\t$notice\n\t\t\t\t\t\t.find( '.acf-notice-dismiss' )\n\t\t\t\t\t\t.removeClass( 'small' );\n\t\t\t\t},\n\t\t\t} );\n\n\t\t\t// if not valid, stop event and allow validation to continue\n\t\t\tif ( ! valid ) {\n\t\t\t\te.preventDefault();\n\t\t\t\te.stopImmediatePropagation();\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * onSubmitPost\n\t\t *\n\t\t * Callback when the 'post' form is submit.\n\t\t *\n\t\t * @date\t5/3/19\n\t\t * @since\t5.7.13\n\t\t *\n\t\t * @param\tobject e The event object.\n\t\t * @param\tjQuery $el The input element.\n\t\t * @return\tvoid\n\t\t */\n\t\tonSubmitPost: function ( e, $el ) {\n\t\t\t// Check if is preview.\n\t\t\tif ( $( 'input#wp-preview' ).val() === 'dopreview' ) {\n\t\t\t\t// Ignore validation.\n\t\t\t\tthis.set( 'ignore', true );\n\n\t\t\t\t// Unlock form to fix conflict with core \"submit.edit-post\" event causing all submit buttons to be disabled.\n\t\t\t\tacf.unlockForm( $el );\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * onSubmit\n\t\t *\n\t\t * Callback when the form is submit.\n\t\t *\n\t\t * @date\t4/9/18\n\t\t * @since\t5.7.5\n\t\t *\n\t\t * @param\tobject e The event object.\n\t\t * @param\tjQuery $el The input element.\n\t\t * @return\tvoid\n\t\t */\n\t\tonSubmit: function ( e, $el ) {\n\t\t\t// Allow form to submit if...\n\t\t\tif (\n\t\t\t\t// Validation has been disabled.\n\t\t\t\t! this.active ||\n\t\t\t\t// Or this event is to be ignored.\n\t\t\t\tthis.get( 'ignore' ) ||\n\t\t\t\t// Or this event has already been prevented.\n\t\t\t\te.isDefaultPrevented()\n\t\t\t) {\n\t\t\t\t// Return early and call reset function.\n\t\t\t\treturn this.allowSubmit();\n\t\t\t}\n\n\t\t\t// Validate form.\n\t\t\tvar valid = acf.validateForm( {\n\t\t\t\tform: $el,\n\t\t\t\tevent: this.get( 'originalEvent' ),\n\t\t\t} );\n\n\t\t\t// If not valid, stop event to prevent form submit.\n\t\t\tif ( ! valid ) {\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * allowSubmit\n\t\t *\n\t\t * Resets data during onSubmit when the form is allowed to submit.\n\t\t *\n\t\t * @date\t5/3/19\n\t\t * @since\t5.7.13\n\t\t *\n\t\t * @param\tvoid\n\t\t * @return\tvoid\n\t\t */\n\t\tallowSubmit: function () {\n\t\t\t// Reset \"ignore\" state.\n\t\t\tthis.set( 'ignore', false );\n\n\t\t\t// Reset \"originalEvent\" object.\n\t\t\tthis.set( 'originalEvent', false );\n\n\t\t\t// Return true\n\t\t\treturn true;\n\t\t},\n\t} );\n\n\tvar gutenbergValidation = new acf.Model( {\n\t\twait: 'prepare',\n\t\tinitialize: function () {\n\t\t\t// Bail early if not Gutenberg.\n\t\t\tif ( ! acf.isGutenberg() ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Custommize the editor.\n\t\t\tthis.customizeEditor();\n\t\t},\n\t\tcustomizeEditor: function () {\n\t\t\t// Extract vars.\n\t\t\tvar editor = wp.data.dispatch( 'core/editor' );\n\t\t\tvar editorSelect = wp.data.select( 'core/editor' );\n\t\t\tvar notices = wp.data.dispatch( 'core/notices' );\n\n\t\t\t// Backup original method.\n\t\t\tvar savePost = editor.savePost;\n\n\t\t\t// Listen for changes to post status and perform actions:\n\t\t\t// a) Enable validation for \"publish\" action.\n\t\t\t// b) Remember last non \"publish\" status used for restoring after validation fail.\n\t\t\tvar useValidation = false;\n\t\t\tvar lastPostStatus = '';\n\t\t\twp.data.subscribe( function () {\n\t\t\t\tvar postStatus =\n\t\t\t\t\teditorSelect.getEditedPostAttribute( 'status' );\n\t\t\t\tuseValidation =\n\t\t\t\t\tpostStatus === 'publish' || postStatus === 'future';\n\t\t\t\tlastPostStatus =\n\t\t\t\t\tpostStatus !== 'publish' ? postStatus : lastPostStatus;\n\t\t\t} );\n\n\t\t\t// Create validation version.\n\t\t\teditor.savePost = function ( options ) {\n\t\t\t\toptions = options || {};\n\n\t\t\t\t// Backup vars.\n\t\t\t\tvar _this = this;\n\t\t\t\tvar _args = arguments;\n\n\t\t\t\t// Perform validation within a Promise.\n\t\t\t\treturn new Promise( function ( resolve, reject ) {\n\t\t\t\t\t// Bail early if is autosave or preview.\n\t\t\t\t\tif ( options.isAutosave || options.isPreview ) {\n\t\t\t\t\t\treturn resolve( 'Validation ignored (autosave).' );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Bail early if validation is not needed.\n\t\t\t\t\tif ( ! useValidation ) {\n\t\t\t\t\t\treturn resolve( 'Validation ignored (draft).' );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Validate the editor form.\n\t\t\t\t\tvar valid = acf.validateForm( {\n\t\t\t\t\t\tform: $( '#editor' ),\n\t\t\t\t\t\treset: true,\n\t\t\t\t\t\tcomplete: function ( $form, validator ) {\n\t\t\t\t\t\t\t// Always unlock the form after AJAX.\n\t\t\t\t\t\t\teditor.unlockPostSaving( 'acf' );\n\t\t\t\t\t\t},\n\t\t\t\t\t\tfailure: function ( $form, validator ) {\n\t\t\t\t\t\t\t// Get validation error and append to Gutenberg notices.\n\t\t\t\t\t\t\tvar notice = validator.get( 'notice' );\n\t\t\t\t\t\t\tnotices.createErrorNotice( notice.get( 'text' ), {\n\t\t\t\t\t\t\t\tid: 'acf-validation',\n\t\t\t\t\t\t\t\tisDismissible: true,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\tnotice.remove();\n\n\t\t\t\t\t\t\t// Restore last non \"publish\" status.\n\t\t\t\t\t\t\tif ( lastPostStatus ) {\n\t\t\t\t\t\t\t\teditor.editPost( {\n\t\t\t\t\t\t\t\t\tstatus: lastPostStatus,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// Rejext promise and prevent savePost().\n\t\t\t\t\t\t\treject( 'Validation failed.' );\n\t\t\t\t\t\t},\n\t\t\t\t\t\tsuccess: function () {\n\t\t\t\t\t\t\tnotices.removeNotice( 'acf-validation' );\n\n\t\t\t\t\t\t\t// Resolve promise and allow savePost().\n\t\t\t\t\t\t\tresolve( 'Validation success.' );\n\t\t\t\t\t\t},\n\t\t\t\t\t} );\n\n\t\t\t\t\t// Resolve promise and allow savePost() if no validation is needed.\n\t\t\t\t\tif ( valid ) {\n\t\t\t\t\t\tresolve( 'Validation bypassed.' );\n\n\t\t\t\t\t\t// Otherwise, lock the form and wait for AJAX response.\n\t\t\t\t\t} else {\n\t\t\t\t\t\teditor.lockPostSaving( 'acf' );\n\t\t\t\t\t}\n\t\t\t\t} )\n\t\t\t\t\t.then( function () {\n\t\t\t\t\t\treturn savePost.apply( _this, _args );\n\t\t\t\t\t} )\n\t\t\t\t\t.catch( function ( err ) {\n\t\t\t\t\t\t// Nothing to do here, user is alerted of validation issues.\n\t\t\t\t\t} );\n\t\t\t};\n\t\t},\n\t} );\n} )( jQuery );\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import './_acf-field.js';\nimport './_acf-fields.js';\nimport './_acf-field-accordion.js';\nimport './_acf-field-button-group.js';\nimport './_acf-field-checkbox.js';\nimport './_acf-field-color-picker.js';\nimport './_acf-field-date-picker.js';\nimport './_acf-field-date-time-picker.js';\nimport './_acf-field-google-map.js';\nimport './_acf-field-image.js';\nimport './_acf-field-file.js';\nimport './_acf-field-link.js';\nimport './_acf-field-oembed.js';\nimport './_acf-field-radio.js';\nimport './_acf-field-range.js';\nimport './_acf-field-relationship.js';\nimport './_acf-field-select.js';\nimport './_acf-field-tab.js';\nimport './_acf-field-post-object.js';\nimport './_acf-field-page-link.js';\nimport './_acf-field-user.js';\nimport './_acf-field-taxonomy.js';\nimport './_acf-field-time-picker.js';\nimport './_acf-field-true-false.js';\nimport './_acf-field-url.js';\nimport './_acf-field-wysiwyg.js';\nimport './_acf-condition.js';\nimport './_acf-conditions.js';\nimport './_acf-condition-types.js';\nimport './_acf-unload.js';\nimport './_acf-postbox.js';\nimport './_acf-media.js';\nimport './_acf-screen.js';\nimport './_acf-select2.js';\nimport './_acf-tinymce.js';\nimport './_acf-validation.js';\nimport './_acf-helpers.js';\nimport './_acf-compatibility.js';\n"],"names":["$","undefined","acf","newCompatibility","instance","compatibilty","__proto__","compatibility","getCompatibility","_acf","l10n","o","fields","update","set","add_action","addAction","remove_action","removeAction","do_action","doAction","add_filter","addFilter","remove_filter","removeFilter","apply_filters","applyFilters","parse_args","parseArgs","disable_el","disable","disable_form","enable_el","enable","enable_form","update_user_setting","updateUserSetting","prepare_for_ajax","prepareForAjax","is_ajax_success","isAjaxSuccess","remove_el","remove","remove_tr","str_replace","strReplace","render_select","renderSelect","get_uniqid","uniqid","serialize_form","serialize","esc_html","strEscape","str_sanitize","strSanitize","_e","k1","k2","compatKey","compats","__","string","get_selector","s","selector","isPlainObject","isEmptyObject","k","get_fields","$el","all","args","is","parent","suppressFilters","findFields","get_field","$fields","apply","arguments","length","first","get_closest_field","closest","get_field_wrap","get_field_key","$field","data","get_field_type","get_data","defaults","maybe_get","obj","key","value","keys","String","split","i","hasOwnProperty","compatibleArgument","arg","Field","compatibleArguments","arrayArgs","map","compatibleCallback","origCallback","document","action","callback","priority","context","actions","model","filters","events","extend","each","name","_add_action","_add_filter","_add_event","indexOf","event","substr","fn","e","field_group","on","get","field","type","_set_$field","focus","doFocus","_validation","validation","remove_error","getField","removeError","add_warning","message","showNotice","text","timeout","fetch","validateForm","enableSubmit","disableSubmit","showSpinner","hideSpinner","unlockForm","lockForm","tooltip","newTooltip","target","temp","confirm","button_y","button_n","cancel","confirm_remove","confirmRemove","media","Model","activeFrame","new_media_popup","frame","onNewMediaPopup","popup","props","mime_types","allowedTypes","id","attachment","newMediaPopup","select2","init","$select","allow_null","allowNull","ajax_action","ajaxAction","newSelect2","destroy","getInstance","postbox","render","edit_url","editLink","edit_title","editTitle","newPostbox","screen","check","ajax","jQuery","parseString","val","isEqualTo","v1","v2","toLowerCase","isEqualToNumber","parseFloat","isGreaterThan","isLessThan","inArray","array","containsString","haystack","needle","matchesPattern","pattern","regexp","RegExp","match","HasValue","Condition","operator","label","fieldTypes","rule","Array","choices","fieldObject","registerConditionType","HasNoValue","prototype","EqualTo","isNumeric","NotEqualTo","PatternMatch","Contains","TrueFalseEqualTo","choiceType","TrueFalseNotEqualTo","SelectEqualTo","lines","$setting","$input","prop","push","line","trim","SelectNotEqualTo","GreaterThan","LessThan","SelectionGreaterThan","SelectionLessThan","storage","conditions","change","keyup","enableField","disableField","setup","getEventTarget","calculate","newCondition","fieldType","conditionTypes","getConditionTypes","condition","modelId","strPascalCase","proto","mid","models","getConditionType","registerConditionForFieldType","conditionType","types","ProtoFieldTypes","ProtoOperator","CONTEXT","conditionsManager","new_field","onNewField","has","getConditions","getSiblingField","getFields","sibling","parents","Conditions","timeStamp","groups","rules","addRules","addRule","changed","show","hide","showEnable","cid","hideDisable","pass","getGroups","group","passed","filter","hasGroups","addGroup","hasGroup","getGroup","removeGroup","delete","groupArray","hasRule","getRule","removeRule","wait","$control","initialize","hasClass","$label","$labelWrap","$inputWrap","$wrap","$instructions","children","append","$table","$newLabel","$newInput","$newTable","attr","$newWrap","html","addClass","order","getPreference","css","prepend","accordionManager","iconHtml","open","$parent","nextUntil","removeAttr","registerFieldType","unload","isOpen","toggle","close","isGutenberg","duration","find","slideDown","replaceWith","siblings","slideUp","removeClass","onClick","preventDefault","onInvalidField","busy","setTimeout","onUnload","setPreference","setValue","trigger","selected","$toggle","$inputs","not","getValue","onChange","checked","onClickAdd","getInputName","before","last","onClickToggle","$labels","onClickCustom","$text","next","duplicateField","$inputText","iris","defaultColor","palettes","clear","wpColorPicker","onDuplicate","$duplicate","$colorPicker","initializeCompatibility","dateFormat","altField","altFormat","changeYear","yearRange","changeMonth","showButtonPanel","firstDay","newDatePicker","datepicker","onBlur","datePickerManager","locale","rtl","isRTL","regional","setDefaults","exists","wrap","DatePickerField","timeFormat","altFieldTimeOnly","altTimeFormat","controlType","oneLine","newDateTimePicker","dateTimePickerManager","timepicker","datetimepicker","ImageField","validateAttachment","attributes","url","alt","title","filename","filesizeHumanReadable","icon","src","selectAttachment","multiple","mode","library","select","proxy","editAttachment","button","showField","$search","$canvas","setState","state","JSON","parse","silent","valAttr","stringify","renderVal","address","setPosition","lat","lng","marker","setVisible","newLatLng","google","maps","LatLng","center","position","getPosition","setCenter","withAPI","initializeMap","bind","zoom","mapArgs","scrollwheel","parseInt","mapTypeId","MapTypeId","ROADMAP","draggable","raiseOnDrag","autocomplete","Map","markerArgs","Marker","isset","autocompleteArgs","places","Autocomplete","bindTo","addMapEvents","addListener","latLng","searchPosition","place","getPlace","searchPlace","getZoom","geocoder","geocode","location","results","status","replace","parseResult","geometry","formatted_address","searchAddress","searchLocation","navigator","geolocation","alert","getCurrentPosition","coords","latitude","longitude","error","result","place_id","street_number","street_name","city","post_code","country","keywords","address_components","component","component_type","long_name","short_name","onClickClear","onClickLocate","onClickSearch","onFocusSearch","onBlurSearch","onKeyupSearch","onKeydownSearch","which","blur","onShow","loading","window","Geocoder","dataType","cache","success","caption","description","width","height","size","isget","getNext","removeAttachment","onClickEdit","onClickRemove","$hiddenInput","getFileInputData","param","$node","$div","wpLink","getNodeValue","decode","setNodeValue","getInputValue","setInputValue","$textarea","onOpen","wpLinkL10n","onClose","$submit","isSubmit","off","getSearchVal","showLoading","hideLoading","maybeSearch","prevUrl","clearTimeout","search","ajaxData","field_key","xhr","abort","json","complete","onKeypressSearch","onChangeSearch","SelectField","$inputAlt","$list","list","$listItems","$listItem","newChoice","join","newValue","delayed","once","sortable","items","forceHelperSize","forcePlaceholderSize","scroll","scrollTop","onScrollChoices","one","onceInView","Math","ceil","scrollHeight","innerHeight","paged","onKeypressFilter","onChangeFilter","maybeFetch","max","$span","$li","getAjaxData","$choiceslist","$loading","onComplete","onSuccess","more","walkChoices","$html","$prevLabel","$prevList","walk","isArray","item","escHtml","escAttr","removeField","inherit","placeholder","onRemove","tabs","tab","findTabs","prevAll","findTab","$tabs","$tab","settings","endpoint","placement","Tabs","addTab","isActive","showFields","hiddenByTab","hideFields","lockKey","visible","refresh","hidden","reset","active","close_field_object","index","initialized","$before","ulClass","initializeTabs","getVisible","shift","groupIndex","tabIndex","isVisible","selectTab","closeTabs","getActive","setActive","hasActive","closeActive","closeTab","openTab","t","$a","outerHTML","classes","Tab","onRefresh","attribute","top","outerHeight","onCloseFieldObject","tabsManager","prepare","invalid_field","getTabs","getInstances","ftype","getRelatedPrototype","getRelatedType","getFieldType","$form","$name","$button","$message","notice","step1","newPopup","step2","content","step3","stopImmediatePropagation","startButtonLoading","term_name","term_parent","step4","stopButtonLoading","step5","newNotice","getAjaxMessage","dismiss","getAjaxError","term","$option","term_id","term_label","after","otherField","appendTerm","selectTerm","appendTermSelect","appendTermCheckbox","addOption","$ul","selectOption","onClickRadio","closeText","selectText","timeOnly","dp_instance","t_instance","$close","dpDiv","_updateDateTime","newTimePicker","$switch","$on","$off","switchOn","switchOff","onFocus","onKeypress","keyCode","isValid","onkeyup","query_nonce","user_query_nonce","unmountField","remountField","getMode","initializeEditor","tinymce","quicktags","toolbar","oldId","newId","uniqueId","inputData","inputVal","rename","destructive","onMousedown","enableEditor","disableEditor","eventScope","$parents","removeNotice","away","showError","bubbles","newField","getFieldTypes","category","limit","excludeSubFields","slice","findField","findClosestField","getClosestField","addGlobalFieldAction","globalAction","pluralAction","singleAction","globalCallback","extraArgs","pluralArgs","concat","pluralCallback","singleArgs","addSingleFieldAction","singleEvent","singleCallback","variations","variation","prefix","singleFieldEvents","globalFieldActions","singleFieldActions","fieldsEventManager","duplicateFieldsManager","duplicate","duplicate_fields","$el2","onDuplicateFields","duplicates","refreshHelper","show_field","hide_field","remove_field","unmount_field","remount_field","mountHelper","sortstart","sortstop","onSortstart","$item","onSortstop","sortableHelper","$placeholder","duplicateHelper","after_duplicate","onAfterDuplicate","vals","tableHelper","renderTables","self","renderTable","$ths","$tds","$th","$cells","$hidden","availableWidth","colspan","$fixedWidths","$auoWidths","$td","fieldsHelper","renderGroups","renderGroup","$row","thisTop","thisLeft","left","outerWidth","thisHeight","add","bodyClassShiftHelper","keydown","isShiftKey","onKeyDown","onKeyUp","autoOpen","EditMediaPopup","SelectMediaPopup","getPostID","postID","getMimeTypes","getMimeType","allTypes","MediaPopup","options","getFrameOptions","addFrameStates","wp","addFrameEvents","detach","states","uploadedTo","post__in","Query","query","mirroring","_acfuploader","controller","Library","filterable","editable","allowLocalEdits","EditImage","image","view","loadEditor","selection","_x","_wpPluploadSettings","multipart_params","console","log","customizeFilters","audio","video","mimeType","newFilter","orderby","unattached","uploaded","renderFilters","customizePrototypes","post","customizeAttachmentsButton","customizeAttachmentsRouter","customizeAttachmentFilters","customizeAttachmentCompat","customizeAttachmentLibrary","Button","_","Backbone","listenTo","Parent","Router","addExpand","AttachmentFilters","All","chain","el","sortBy","pluck","AttachmentCompat","rendered","save","serializeForAjax","saveCompat","always","postSave","AttachmentLibrary","Attachment","acf_errors","toggleSelection","collection","single","errors","$sidebar","postboxManager","getPostbox","getPostboxes","Postbox","style","edit","$postbox","$hide","$hideLabel","$hndle","$handleActions","$inside","isHiddenByScreenOptions","isPost","isUser","isTaxonomy","isAttachment","isNavMenu","isWidget","isComment","getPageTemplate","getPageParent","getPageType","getPostType","getPostFormat","getPostCoreTerms","terms","tax_input","post_category","tax","getPostTerms","productType","getProductType","product_type","uniqueArray","post_id","postType","post_type","pageTemplate","page_template","pageParent","page_parent","pageType","page_type","postFormat","post_format","postTerms","post_terms","renderPostScreen","renderUserScreen","copyEvents","$from","$to","_data","handler","sortMetabox","ids","wpMinorVersion","postboxHeader","$prefs","_result","sorted","gutenScreen","postEdits","subscribe","debounce","onRefreshPostScreen","domReady","getTaxonomies","taxonomy","rest_base","_postEdits","getPostEdits","getEditedPostAttribute","taxonomies","slug","dispatch","locations","getActiveMetaBoxLocations","getMetaBoxesPerLocation","m","r","setAvailableMetaBoxesPerLocation","ajaxResults","templateSelection","templateResult","dropdownCssClass","getVersion","Select2_4","Select2_3","Select2","getOption","unselectOption","option","$options","sort","a","b","getAttribute","mergeOptions","getChoices","crawl","$child","params","page","getAjaxResults","processAjaxResults","pagination","allowClear","escapeMarkup","markup","$selection","element","appendTo","attrAjax","removeData","delay","processResults","$container","stop","$prevOptions","$prevGroup","$group","separator","dropdownCss","initSelection","inputValue","quietMillis","choice","select2Manager","version","addTranslations4","addTranslations3","select2L10n","errorLoading","load_fail","inputTooLong","overChars","input","maximum","input_too_long_n","input_too_long_1","inputTooShort","remainingChars","minimum","input_too_short_n","input_too_short_1","loadingMore","load_more","maximumSelected","selection_too_long_n","selection_too_long_1","noResults","matches_0","searching","amd","define","formatMatches","matches","matches_n","matches_1","formatNoMatches","formatAjaxError","formatInputTooShort","min","formatInputTooLong","formatSelectionTooBig","formatLoadMore","formatSearching","locales","tinyMCEPreInit","mceInit","acf_content","qtInit","initializeTinymce","initializeQuicktags","toolbars","ed","MouseEvent","dispatchEvent","wp_autoresize_on","tadv_noautop","wpautop","buildQuicktags","canvas","theButtons","use","instanceId","buttons","edButtons","dfw","QTags","DFWButton","getElementsByTagName","dir","textdirection","TextDirectionButton","innerHTML","triggerHandler","destroyTinymce","enableTinymce","switchEditors","go","editorManager","ready","onPrepare","onReady","editor","autop","oldEditor","removep","editors","activeEditor","wpActiveEditor","validation_failure","validation_success","stopListening","startListening","Validator","addErrors","addError","hasErrors","clearErrors","getErrors","getFieldErrors","inputs","getGlobalErrors","showErrors","fieldErrors","globalErrors","errorCount","$scrollTo","ensureFieldPostBoxIsVisible","errorMessage","animate","offset","onChangeStatus","prevValue","validate","failure","submit","Event","valid","getValidator","validator","form","$spinner","findSubmitWrap","submitFormDebounced","acf_postbox","ensureInvalidFieldVisibility","checkValidity","addInputEvents","onInvalid","validationMessage","onClickSubmit","onClickSave","onClickSubmitGutenberg","$notice","onSubmitPost","onSubmit","isDefaultPrevented","allowSubmit","gutenbergValidation","customizeEditor","editorSelect","notices","savePost","useValidation","lastPostStatus","postStatus","_this","_args","Promise","resolve","reject","isAutosave","isPreview","unlockPostSaving","createErrorNotice","isDismissible","editPost","lockPostSaving","then","catch","err"],"sourceRoot":""} \ No newline at end of file diff --git a/assets/build/js/acf-input.min.js b/assets/build/js/acf-input.min.js new file mode 100644 index 0000000..39375a7 --- /dev/null +++ b/assets/build/js/acf-input.min.js @@ -0,0 +1 @@ +!function(){var t={7787:function(){!function(t,e){acf.newCompatibility=function(t,e){return(e=e||{}).__proto__=t.__proto__,t.__proto__=e,t.compatibility=e,e},acf.getCompatibility=function(t){return t.compatibility||null};var i=acf.newCompatibility(acf,{l10n:{},o:{},fields:{},update:acf.set,add_action:acf.addAction,remove_action:acf.removeAction,do_action:acf.doAction,add_filter:acf.addFilter,remove_filter:acf.removeFilter,apply_filters:acf.applyFilters,parse_args:acf.parseArgs,disable_el:acf.disable,disable_form:acf.disable,enable_el:acf.enable,enable_form:acf.enable,update_user_setting:acf.updateUserSetting,prepare_for_ajax:acf.prepareForAjax,is_ajax_success:acf.isAjaxSuccess,remove_el:acf.remove,remove_tr:acf.remove,str_replace:acf.strReplace,render_select:acf.renderSelect,get_uniqid:acf.uniqid,serialize_form:acf.serialize,esc_html:acf.strEscape,str_sanitize:acf.strSanitize});i._e=function(t,e){t=t||"";var i=(e=e||"")?t+"."+e:t,a={"image.select":"Select Image","image.edit":"Edit Image","image.update":"Update Image"};if(a[i])return acf.__(a[i]);var n=this.l10n[t]||"";return e&&(n=n[e]||""),n},i.get_selector=function(e){var i=".acf-field";if(!e)return i;if(t.isPlainObject(e)){if(t.isEmptyObject(e))return i;for(var a in e){e=e[a];break}}return i+="-"+e,i=acf.strReplace("_","-",i),acf.strReplace("field-field-","field-",i)},i.get_fields=function(t,e,i){var a={is:t||"",parent:e||!1,suppressFilters:i||!1};return a.is&&(a.is=this.get_selector(a.is)),acf.findFields(a)},i.get_field=function(t,e){var i=this.get_fields.apply(this,arguments);return!!i.length&&i.first()},i.get_closest_field=function(t,e){return t.closest(this.get_selector(e))},i.get_field_wrap=function(t){return t.closest(this.get_selector())},i.get_field_key=function(t){return t.data("key")},i.get_field_type=function(t){return t.data("type")},i.get_data=function(t,e){return acf.parseArgs(t.data(),e)},i.maybe_get=function(t,e,i){void 0===i&&(i=null),keys=String(e).split(".");for(var a=0;a1){for(var c=0;c0?e.substr(0,n):e,o=n>0?e.substr(n+1):"",r=function(e){e.$el=t(this),acf.field_group&&(e.$field=e.$el.closest(".acf-field-object")),"function"==typeof a.event&&(e=a.event(e)),a[i].apply(a,arguments)};o?t(document).on(s,o,r):t(document).on(s,r)},get:function(t,e){return e=e||null,void 0!==this[t]&&(e=this[t]),e},set:function(t,e){return this[t]=e,"function"==typeof this["_set_"+t]&&this["_set_"+t].apply(this),this}},i.field=acf.model.extend({type:"",o:{},$field:null,_add_action:function(t,e){var i=this;t=t+"_field/type="+i.type,acf.add_action(t,(function(t){i.set("$field",t),i[e].apply(i,arguments)}))},_add_filter:function(t,e){var i=this;t=t+"_field/type="+i.type,acf.add_filter(t,(function(t){i.set("$field",t),i[e].apply(i,arguments)}))},_add_event:function(e,i){var a=this,n=e.substr(0,e.indexOf(" ")),s=e.substr(e.indexOf(" ")+1),o=acf.get_selector(a.type);t(document).on(n,o+" "+s,(function(e){var n=t(this),s=acf.get_closest_field(n,a.type);s.length&&(s.is(a.$field)||a.set("$field",s),e.$el=n,e.$field=s,a[i].apply(a,[e]))}))},_set_$field:function(){"function"==typeof this.focus&&this.focus()},doFocus:function(t){return this.set("$field",t)}}),acf.newCompatibility(acf.validation,{remove_error:function(t){acf.getField(t).removeError()},add_warning:function(t,e){acf.getField(t).showNotice({text:e,type:"warning",timeout:1e3})},fetch:acf.validateForm,enableSubmit:acf.enableSubmit,disableSubmit:acf.disableSubmit,showSpinner:acf.showSpinner,hideSpinner:acf.hideSpinner,unlockForm:acf.unlockForm,lockForm:acf.lockForm}),i.tooltip={tooltip:function(t,e){return acf.newTooltip({text:t,target:e}).$el},temp:function(t,e){acf.newTooltip({text:t,target:e,timeout:250})},confirm:function(t,e,i,a,n){acf.newTooltip({confirm:!0,text:i,target:t,confirm:function(){e(!0)},cancel:function(){e(!1)}})},confirm_remove:function(t,e){acf.newTooltip({confirmRemove:!0,target:t,confirm:function(){e(!0)},cancel:function(){e(!1)}})}},i.media=new acf.Model({activeFrame:!1,actions:{new_media_popup:"onNewMediaPopup"},frame:function(){return this.activeFrame},onNewMediaPopup:function(t){this.activeFrame=t.frame},popup:function(t){return t.mime_types&&(t.allowedTypes=t.mime_types),t.id&&(t.attachment=t.id),acf.newMediaPopup(t).frame}}),i.select2={init:function(t,e,i){return e.allow_null&&(e.allowNull=e.allow_null),e.ajax_action&&(e.ajaxAction=e.ajax_action),i&&(e.field=acf.getField(i)),acf.newSelect2(t,e)},destroy:function(t){return acf.getInstance(t).destroy()}},i.postbox={render:function(t){return t.edit_url&&(t.editLink=t.edit_url),t.edit_title&&(t.editTitle=t.edit_title),acf.newPostbox(t)}},acf.newCompatibility(acf.screen,{update:function(){return this.set.apply(this,arguments)},fetch:acf.screen.check}),i.ajax=acf.screen}(jQuery)},682:function(){!function(t,e){var __=acf.__,i=function(t){return t?""+t:""},a=function(t,e){return i(t).toLowerCase()===i(e).toLowerCase()},n=acf.Condition.extend({type:"hasValue",operator:"!=empty",label:__("Has any value"),fieldTypes:["text","textarea","number","range","email","url","password","image","file","wysiwyg","oembed","select","checkbox","radio","button_group","link","post_object","page_link","relationship","taxonomy","user","google_map","date_picker","date_time_picker","time_picker","color_picker"],match:function(t,e){let i=e.val();return i instanceof Array&&(i=i.length),!!i},choices:function(t){return''}});acf.registerConditionType(n);var s=n.extend({type:"hasNoValue",operator:"==empty",label:__("Has no value"),match:function(t,e){return!n.prototype.match.apply(this,arguments)}});acf.registerConditionType(s);var o=acf.Condition.extend({type:"equalTo",operator:"==",label:__("Value is equal to"),fieldTypes:["text","textarea","number","range","email","url","password"],match:function(t,e){return acf.isNumeric(t.value)?(i=t.value,n=e.val(),parseFloat(i)===parseFloat(n)):a(t.value,e.val());var i,n},choices:function(t){return''}});acf.registerConditionType(o);var r=o.extend({type:"notEqualTo",operator:"!=",label:__("Value is not equal to"),match:function(t,e){return!o.prototype.match.apply(this,arguments)}});acf.registerConditionType(r);var c=acf.Condition.extend({type:"patternMatch",operator:"==pattern",label:__("Value matches pattern"),fieldTypes:["text","textarea","email","url","password","wysiwyg"],match:function(t,e){return a=e.val(),n=t.value,s=new RegExp(i(n),"gi"),i(a).match(s);var a,n,s},choices:function(t){return''}});acf.registerConditionType(c);var l=acf.Condition.extend({type:"contains",operator:"==contains",label:__("Value contains"),fieldTypes:["text","textarea","number","email","url","password","wysiwyg","oembed","select"],match:function(t,e){return a=e.val(),n=t.value,i(a).indexOf(i(n))>-1;var a,n},choices:function(t){return''}});acf.registerConditionType(l);var d=o.extend({type:"trueFalseEqualTo",choiceType:"select",fieldTypes:["true_false"],choices:function(t){return[{id:1,text:__("Checked")}]}});acf.registerConditionType(d);var u=r.extend({type:"trueFalseNotEqualTo",choiceType:"select",fieldTypes:["true_false"],choices:function(t){return[{id:1,text:__("Checked")}]}});acf.registerConditionType(u);var f=acf.Condition.extend({type:"selectEqualTo",operator:"==",label:__("Value is equal to"),fieldTypes:["select","checkbox","radio","button_group"],match:function(t,e){var n,s=e.val();return s instanceof Array?(n=t.value,s.map((function(t){return i(t)})).indexOf(n)>-1):a(t.value,s)},choices:function(t){var e=[],i=t.$setting("choices textarea").val().split("\n");return t.$input("allow_null").prop("checked")&&e.push({id:"",text:__("Null")}),i.map((function(t){(t=t.split(":"))[1]=t[1]||t[0],e.push({id:t[0].trim(),text:t[1].trim()})})),e}});acf.registerConditionType(f);var p=f.extend({type:"selectNotEqualTo",operator:"!=",label:__("Value is not equal to"),match:function(t,e){return!f.prototype.match.apply(this,arguments)}});acf.registerConditionType(p);var h=acf.Condition.extend({type:"greaterThan",operator:">",label:__("Value is greater than"),fieldTypes:["number","range"],match:function(t,e){var i,a,n=e.val();return n instanceof Array&&(n=n.length),i=n,a=t.value,parseFloat(i)>parseFloat(a)},choices:function(t){return''}});acf.registerConditionType(h);var g=h.extend({type:"lessThan",operator:"<",label:__("Value is less than"),match:function(t,e){var i,a,n=e.val();return n instanceof Array&&(n=n.length),null==n||!1===n||(i=n,a=t.value,parseFloat(i)'}});acf.registerConditionType(g);var m=h.extend({type:"selectionGreaterThan",label:__("Selection is greater than"),fieldTypes:["checkbox","select","post_object","page_link","relationship","taxonomy","user"]});acf.registerConditionType(m);var v=g.extend({type:"selectionLessThan",label:__("Selection is less than"),fieldTypes:["checkbox","select","post_object","page_link","relationship","taxonomy","user"]});acf.registerConditionType(v)}(jQuery)},2849:function(){!function(t,e){var i=[];acf.Condition=acf.Model.extend({type:"",operator:"==",label:"",choiceType:"input",fieldTypes:[],data:{conditions:!1,field:!1,rule:{}},events:{change:"change",keyup:"change",enableField:"change",disableField:"change"},setup:function(e){t.extend(this.data,e)},getEventTarget:function(t,e){return t||this.get("field").$el},change:function(t,e){this.get("conditions").change(t)},match:function(t,e){return!1},calculate:function(){return this.match(this.get("rule"),this.get("field"))},choices:function(t){return''}}),acf.newCondition=function(t,e){var i=e.get("field"),a=i.getField(t.field);if(!i||!a)return!1;var n={rule:t,target:i,conditions:e,field:a},s=a.get("type"),o=t.operator;return new(acf.getConditionTypes({fieldType:s,operator:o})[0]||acf.Condition)(n)};var a=function(t){return acf.strPascalCase(t||"")+"Condition"};acf.registerConditionType=function(t){var e=t.prototype.type,n=a(e);acf.models[n]=t,i.push(e)},acf.getConditionType=function(t){var e=a(t);return acf.models[e]||!1},acf.registerConditionForFieldType=function(t,e){var i=acf.getConditionType(t);i&&i.prototype.fieldTypes.push(e)},acf.getConditionTypes=function(t){t=acf.parseArgs(t,{fieldType:"",operator:""});var e=[];return i.map((function(i){var a=acf.getConditionType(i),n=a.prototype.fieldTypes,s=a.prototype.operator;t.fieldType&&-1===n.indexOf(t.fieldType)||t.operator&&s!==t.operator||e.push(a)})),e}}(jQuery)},3155:function(){!function(t,e){var i="conditional_logic",a=(new acf.Model({id:"conditionsManager",priority:20,actions:{new_field:"onNewField"},onNewField:function(t){t.has("conditions")&&t.getConditions().render()}}),function(e,i){var a=acf.getFields({key:i,sibling:e.$el,suppressFilters:!0});return a.length||(a=acf.getFields({key:i,parent:e.$el.parent(),suppressFilters:!0})),!a.length&&t(".acf-field-settings").length&&(a=acf.getFields({key:i,parent:e.$el.parents(".acf-field-settings:first"),suppressFilters:!0})),!a.length&&t("#acf-basic-settings").length&&(a=acf.getFields({key:i,parent:t("#acf-basic-settings"),suppressFilters:!0})),!!a.length&&a[0]});acf.Field.prototype.getField=function(t){var e=a(this,t);if(e)return e;for(var i=this.parents(),n=0;n'),d=t('

              '),u=t('
                '),f=t("");l.append(a.html()),u.append(f),d.append(u),s.append(l),s.append(d),a.remove(),o.remove(),s.attr("colspan",2),a=l,s=d,o=f}e.addClass("acf-accordion"),a.addClass("acf-accordion-title"),s.addClass("acf-accordion-content"),i++,this.get("multi_expand")&&e.attr("multi-expand",1);var p=acf.getPreference("this.accordions")||[];void 0!==p[i-1]&&this.set("open",p[i-1]),this.get("open")&&(e.addClass("-open"),s.css("display","block")),a.prepend(n.iconHtml({open:this.get("open")}));var h=e.parent();o.addClass(h.hasClass("-left")?"-left":""),o.addClass(h.hasClass("-clear")?"-clear":""),o.append(e.nextUntil(".acf-field-accordion",".acf-field")),o.removeAttr("data-open data-multi_expand data-endpoint")}}});acf.registerFieldType(a);var n=new acf.Model({actions:{unload:"onUnload"},events:{"click .acf-accordion-title":"onClick","invalidField .acf-accordion":"onInvalidField"},isOpen:function(t){return t.hasClass("-open")},toggle:function(t){this.isOpen(t)?this.close(t):this.open(t)},iconHtml:function(t){return acf.isGutenberg()?t.open?'':'':t.open?'':''},open:function(e){var i=acf.isGutenberg()?0:300;e.find(".acf-accordion-content:first").slideDown(i).css("display","block"),e.find(".acf-accordion-icon:first").replaceWith(this.iconHtml({open:!0})),e.addClass("-open"),acf.doAction("show",e),e.attr("multi-expand")||e.siblings(".acf-accordion.-open").each((function(){n.close(t(this))}))},close:function(t){var e=acf.isGutenberg()?0:300;t.find(".acf-accordion-content:first").slideUp(e),t.find(".acf-accordion-icon:first").replaceWith(this.iconHtml({open:!1})),t.removeClass("-open"),acf.doAction("hide",t)},onClick:function(t,e){t.preventDefault(),this.toggle(e.parent())},onInvalidField:function(t,e){this.busy||(this.busy=!0,this.setTimeout((function(){this.busy=!1}),1e3),this.open(e))},onUnload:function(e){var i=[];t(".acf-accordion").each((function(){var e=t(this).hasClass("-open")?1:0;i.push(e)})),i.length&&acf.setPreference("this.accordions",i)}})}(jQuery)},1357:function(){var t;jQuery,t=acf.Field.extend({type:"button_group",events:{'click input[type="radio"]':"onClick"},$control:function(){return this.$(".acf-button-group")},$input:function(){return this.$("input:checked")},setValue:function(t){this.$('input[value="'+t+'"]').prop("checked",!0).trigger("change")},onClick:function(t,e){var i=e.parent("label"),a=i.hasClass("selected");this.$(".selected").removeClass("selected"),i.addClass("selected"),this.get("allow_null")&&a&&(i.removeClass("selected"),e.prop("checked",!1).trigger("change"))}}),acf.registerFieldType(t)},8171:function(){var t,e;t=jQuery,e=acf.Field.extend({type:"checkbox",events:{"change input":"onChange","click .acf-add-checkbox":"onClickAdd","click .acf-checkbox-toggle":"onClickToggle","click .acf-checkbox-custom":"onClickCustom"},$control:function(){return this.$(".acf-checkbox-list")},$toggle:function(){return this.$(".acf-checkbox-toggle")},$input:function(){return this.$('input[type="hidden"]')},$inputs:function(){return this.$('input[type="checkbox"]').not(".acf-checkbox-toggle")},getValue:function(){var e=[];return this.$(":checked").each((function(){e.push(t(this).val())})),!!e.length&&e},onChange:function(t,e){var i=e.prop("checked"),a=e.parent("label"),n=this.$toggle();i?a.addClass("selected"):a.removeClass("selected"),n.length&&(0==this.$inputs().not(":checked").length?n.prop("checked",!0):n.prop("checked",!1))},onClickAdd:function(t,e){var i='
              • ';e.parent("li").before(i),e.parent("li").parent().find('input[type="text"]').last().focus()},onClickToggle:function(t,e){var i=e.prop("checked"),a=this.$('input[type="checkbox"]'),n=this.$("label");a.prop("checked",i),i?n.addClass("selected"):n.removeClass("selected")},onClickCustom:function(t,e){var i=e.prop("checked"),a=e.next('input[type="text"]');i?a.prop("disabled",!1):(a.prop("disabled",!0),""==a.val()&&e.parent("li").remove())}}),acf.registerFieldType(e)},9459:function(){var t;jQuery,t=acf.Field.extend({type:"color_picker",wait:"load",events:{duplicateField:"onDuplicate"},$control:function(){return this.$(".acf-color-picker")},$input:function(){return this.$('input[type="hidden"]')},$inputText:function(){return this.$('input[type="text"]')},setValue:function(t){acf.val(this.$input(),t),this.$inputText().iris("color",t)},initialize:function(){var t=this.$input(),e=this.$inputText(),i=function(i){setTimeout((function(){acf.val(t,e.val())}),1)},a={defaultColor:!1,palettes:!0,hide:!0,change:i,clear:i};a=acf.applyFilters("color_picker_args",a,this),e.wpColorPicker(a)},onDuplicate:function(t,e,i){$colorPicker=i.find(".wp-picker-container"),$inputText=i.find('input[type="text"]'),$colorPicker.replaceWith($inputText)}}),acf.registerFieldType(t)},7597:function(){var t,e;t=jQuery,e=acf.Field.extend({type:"date_picker",events:{'blur input[type="text"]':"onBlur",duplicateField:"onDuplicate"},$control:function(){return this.$(".acf-date-picker")},$input:function(){return this.$('input[type="hidden"]')},$inputText:function(){return this.$('input[type="text"]')},initialize:function(){if(this.has("save_format"))return this.initializeCompatibility();var t=this.$input(),e=this.$inputText(),i={dateFormat:this.get("date_format"),altField:t,altFormat:"yymmdd",changeYear:!0,yearRange:"-100:+100",changeMonth:!0,showButtonPanel:!0,firstDay:this.get("first_day")};i=acf.applyFilters("date_picker_args",i,this),acf.newDatePicker(e,i),acf.doAction("date_picker_init",e,i,this)},initializeCompatibility:function(){var t=this.$input(),e=this.$inputText();e.val(t.val());var i={dateFormat:this.get("date_format"),altField:t,altFormat:this.get("save_format"),changeYear:!0,yearRange:"-100:+100",changeMonth:!0,showButtonPanel:!0,firstDay:this.get("first_day")},a=(i=acf.applyFilters("date_picker_args",i,this)).dateFormat;i.dateFormat=this.get("save_format"),acf.newDatePicker(e,i),e.datepicker("option","dateFormat",a),acf.doAction("date_picker_init",e,i,this)},onBlur:function(){this.$inputText().val()||acf.val(this.$input(),"")},onDuplicate:function(t,e,i){i.find('input[type="text"]').removeClass("hasDatepicker").removeAttr("id")}}),acf.registerFieldType(e),new acf.Model({priority:5,wait:"ready",initialize:function(){var e=acf.get("locale"),i=acf.get("rtl"),a=acf.get("datePickerL10n");return!!a&&void 0!==t.datepicker&&(a.isRTL=i,t.datepicker.regional[e]=a,void t.datepicker.setDefaults(a))}}),acf.newDatePicker=function(e,i){if(void 0===t.datepicker)return!1;i=i||{},e.datepicker(i),t("body > #ui-datepicker-div").exists()&&t("body > #ui-datepicker-div").wrap('
                ')}},684:function(){var t,e;t=jQuery,e=acf.models.DatePickerField.extend({type:"date_time_picker",$control:function(){return this.$(".acf-date-time-picker")},initialize:function(){var t=this.$input(),e=this.$inputText(),i={dateFormat:this.get("date_format"),timeFormat:this.get("time_format"),altField:t,altFieldTimeOnly:!1,altFormat:"yy-mm-dd",altTimeFormat:"HH:mm:ss",changeYear:!0,yearRange:"-100:+100",changeMonth:!0,showButtonPanel:!0,firstDay:this.get("first_day"),controlType:"select",oneLine:!0};i=acf.applyFilters("date_time_picker_args",i,this),acf.newDateTimePicker(e,i),acf.doAction("date_time_picker_init",e,i,this)}}),acf.registerFieldType(e),new acf.Model({priority:5,wait:"ready",initialize:function(){var e=acf.get("locale"),i=acf.get("rtl"),a=acf.get("dateTimePickerL10n");return!!a&&void 0!==t.timepicker&&(a.isRTL=i,t.timepicker.regional[e]=a,void t.timepicker.setDefaults(a))}}),acf.newDateTimePicker=function(e,i){if(void 0===t.timepicker)return!1;i=i||{},e.datetimepicker(i),t("body > #ui-datepicker-div").exists()&&t("body > #ui-datepicker-div").wrap('
                ')}},5647:function(){var t,e;t=jQuery,e=acf.models.ImageField.extend({type:"file",$control:function(){return this.$(".acf-file-uploader")},$input:function(){return this.$('input[type="hidden"]:first')},validateAttachment:function(t){return void 0!==(t=t||{}).id&&(t=t.attributes),acf.parseArgs(t,{url:"",alt:"",title:"",filename:"",filesizeHumanReadable:"",icon:"/wp-includes/images/media/default.png"})},render:function(t){t=this.validateAttachment(t),this.$("img").attr({src:t.icon,alt:t.alt,title:t.title}),this.$('[data-name="title"]').text(t.title),this.$('[data-name="filename"]').text(t.filename).attr("href",t.url),this.$('[data-name="filesize"]').text(t.filesizeHumanReadable);var e=t.id||"";acf.val(this.$input(),e),e?this.$control().addClass("has-value"):this.$control().removeClass("has-value")},selectAttachment:function(){var e=this.parent(),i=e&&"repeater"===e.get("type");acf.newMediaPopup({mode:"select",title:acf.__("Select File"),field:this.get("key"),multiple:i,library:this.get("library"),allowedTypes:this.get("mime_types"),select:t.proxy((function(t,i){i>0?this.append(t,e):this.render(t)}),this)})},editAttachment:function(){var e=this.val();if(!e)return!1;acf.newMediaPopup({mode:"edit",title:acf.__("Edit File"),button:acf.__("Update File"),attachment:e,field:this.get("key"),select:t.proxy((function(t,e){this.render(t)}),this)})}}),acf.registerFieldType(e)},8489:function(){!function(t,e){var i=acf.Field.extend({type:"google_map",map:!1,wait:"load",events:{'click a[data-name="clear"]':"onClickClear",'click a[data-name="locate"]':"onClickLocate",'click a[data-name="search"]':"onClickSearch","keydown .search":"onKeydownSearch","keyup .search":"onKeyupSearch","focus .search":"onFocusSearch","blur .search":"onBlurSearch",showField:"onShow"},$control:function(){return this.$(".acf-google-map")},$search:function(){return this.$(".search")},$canvas:function(){return this.$(".canvas")},setState:function(t){this.$control().removeClass("-value -loading -searching"),"default"===t&&(t=this.val()?"value":""),t&&this.$control().addClass("-"+t)},getValue:function(){var t=this.$input().val();return!!t&&JSON.parse(t)},setValue:function(t,e){var i="";t&&(i=JSON.stringify(t)),acf.val(this.$input(),i),e||(this.renderVal(t),acf.doAction("google_map_change",t,this.map,this))},renderVal:function(t){t?(this.setState("value"),this.$search().val(t.address),this.setPosition(t.lat,t.lng)):(this.setState(""),this.$search().val(""),this.map.marker.setVisible(!1))},newLatLng:function(t,e){return new google.maps.LatLng(parseFloat(t),parseFloat(e))},setPosition:function(t,e){this.map.marker.setPosition({lat:parseFloat(t),lng:parseFloat(e)}),this.map.marker.setVisible(!0),this.center()},center:function(){var t=this.map.marker.getPosition();if(t)var e=t.lat(),i=t.lng();else e=this.get("lat"),i=this.get("lng");this.map.setCenter({lat:parseFloat(e),lng:parseFloat(i)})},initialize:function(){!function(e){if(n)return e();if(acf.isset(window,"google","maps","Geocoder"))return n=new google.maps.Geocoder,e();if(acf.addAction("google_map_api_loaded",e),!a){var i=acf.get("google_map_api");i&&(a=!0,t.ajax({url:i,dataType:"script",cache:!0,success:function(){n=new google.maps.Geocoder,acf.doAction("google_map_api_loaded")}}))}}(this.initializeMap.bind(this))},initializeMap:function(){var t=this.getValue(),e=acf.parseArgs(t,{zoom:this.get("zoom"),lat:this.get("lat"),lng:this.get("lng")}),i={scrollwheel:!1,zoom:parseInt(e.zoom),center:{lat:parseFloat(e.lat),lng:parseFloat(e.lng)},mapTypeId:google.maps.MapTypeId.ROADMAP,marker:{draggable:!0,raiseOnDrag:!0},autocomplete:{}};i=acf.applyFilters("google_map_args",i,this);var a=new google.maps.Map(this.$canvas()[0],i),n=acf.parseArgs(i.marker,{draggable:!0,raiseOnDrag:!0,map:a});n=acf.applyFilters("google_map_marker_args",n,this);var s=new google.maps.Marker(n),o=!1;if(acf.isset(google,"maps","places","Autocomplete")){var r=i.autocomplete||{};r=acf.applyFilters("google_map_autocomplete_args",r,this),(o=new google.maps.places.Autocomplete(this.$search()[0],r)).bindTo("bounds",a)}this.addMapEvents(this,a,s,o),a.acf=this,a.marker=s,a.autocomplete=o,this.map=a,t&&this.setPosition(t.lat,t.lng),acf.doAction("google_map_init",a,s,this)},addMapEvents:function(t,e,i,a){google.maps.event.addListener(e,"click",(function(e){var i=e.latLng.lat(),a=e.latLng.lng();t.searchPosition(i,a)})),google.maps.event.addListener(i,"dragend",(function(){var e=this.getPosition().lat(),i=this.getPosition().lng();t.searchPosition(e,i)})),a&&google.maps.event.addListener(a,"place_changed",(function(){var e=this.getPlace();t.searchPlace(e)})),google.maps.event.addListener(e,"zoom_changed",(function(){var i=t.val();i&&(i.zoom=e.getZoom(),t.setValue(i,!0))}))},searchPosition:function(t,e){this.setState("loading");var i={lat:t,lng:e};n.geocode({location:i},function(i,a){if(this.setState(""),"OK"!==a)this.showNotice({text:acf.__("Location not found: %s").replace("%s",a),type:"warning"});else{var n=this.parseResult(i[0]);n.lat=t,n.lng=e,this.val(n)}}.bind(this))},searchPlace:function(t){if(t)if(t.geometry){t.formatted_address=this.$search().val();var e=this.parseResult(t);this.val(e)}else t.name&&this.searchAddress(t.name)},searchAddress:function(t){if(t){var e=t.split(",");if(2==e.length){var i=parseFloat(e[0]),a=parseFloat(e[1]);if(i&&a)return this.searchPosition(i,a)}this.setState("loading"),n.geocode({address:t},function(e,i){if(this.setState(""),"OK"!==i)this.showNotice({text:acf.__("Location not found: %s").replace("%s",i),type:"warning"});else{var a=this.parseResult(e[0]);a.address=t,this.val(a)}}.bind(this))}},searchLocation:function(){if(!navigator.geolocation)return alert(acf.__("Sorry, this browser does not support geolocation"));this.setState("loading"),navigator.geolocation.getCurrentPosition(function(t){this.setState("");var e=t.coords.latitude,i=t.coords.longitude;this.searchPosition(e,i)}.bind(this),function(t){this.setState("")}.bind(this))},parseResult:function(t){var e={address:t.formatted_address,lat:t.geometry.location.lat(),lng:t.geometry.location.lng()};e.zoom=this.map.getZoom(),t.place_id&&(e.place_id=t.place_id),t.name&&(e.name=t.name);var i={street_number:["street_number"],street_name:["street_address","route"],city:["locality","postal_town"],state:["administrative_area_level_1","administrative_area_level_2","administrative_area_level_3","administrative_area_level_4","administrative_area_level_5"],post_code:["postal_code"],country:["country"]};for(var a in i)for(var n=i[a],s=0;s0?this.append(t,e):this.render(t)}),this)})},editAttachment:function(){var e=this.val();e&&acf.newMediaPopup({mode:"edit",title:acf.__("Edit Image"),button:acf.__("Update Image"),attachment:e,field:this.get("key"),select:t.proxy((function(t,e){this.render(t)}),this)})},removeAttachment:function(){this.render(!1)},onClickAdd:function(t,e){this.selectAttachment()},onClickEdit:function(t,e){this.editAttachment()},onClickRemove:function(t,e){this.removeAttachment()},onChange:function(e,i){var a=this.$input();i.val()||a.val(""),acf.getFileInputData(i,(function(e){a.val(t.param(e))}))}}),acf.registerFieldType(e)},4658:function(){var t,e;t=jQuery,e=acf.Field.extend({type:"link",events:{'click a[data-name="add"]':"onClickEdit",'click a[data-name="edit"]':"onClickEdit",'click a[data-name="remove"]':"onClickRemove","change .link-node":"onChange"},$control:function(){return this.$(".acf-link")},$node:function(){return this.$(".link-node")},getValue:function(){var t=this.$node();return!!t.attr("href")&&{title:t.html(),url:t.attr("href"),target:t.attr("target")}},setValue:function(t){t=acf.parseArgs(t,{title:"",url:"",target:""});var e=this.$control(),i=this.$node();e.removeClass("-value -external"),t.url&&e.addClass("-value"),"_blank"===t.target&&e.addClass("-external"),this.$(".link-title").html(t.title),this.$(".link-url").attr("href",t.url).html(t.url),i.html(t.title),i.attr("href",t.url),i.attr("target",t.target),this.$(".input-title").val(t.title),this.$(".input-target").val(t.target),this.$(".input-url").val(t.url).trigger("change")},onClickEdit:function(t,e){acf.wpLink.open(this.$node())},onClickRemove:function(t,e){this.setValue(!1)},onChange:function(t,e){var i=this.getValue();this.setValue(i)}}),acf.registerFieldType(e),acf.wpLink=new acf.Model({getNodeValue:function(){var t=this.get("node");return{title:acf.decode(t.html()),url:t.attr("href"),target:t.attr("target")}},setNodeValue:function(t){var e=this.get("node");e.text(t.title),e.attr("href",t.url),e.attr("target",t.target),e.trigger("change")},getInputValue:function(){return{title:t("#wp-link-text").val(),url:t("#wp-link-url").val(),target:t("#wp-link-target").prop("checked")?"_blank":""}},setInputValue:function(e){t("#wp-link-text").val(e.title),t("#wp-link-url").val(e.url),t("#wp-link-target").prop("checked","_blank"===e.target)},open:function(e){this.on("wplink-open","onOpen"),this.on("wplink-close","onClose"),this.set("node",e);var i=t('');t("body").append(i);var a=this.getNodeValue();wpLink.open("acf-link-textarea",a.url,a.title,null)},onOpen:function(){t("#wp-link-wrap").addClass("has-text-field");var e=this.getNodeValue();this.setInputValue(e),e.url&&wpLinkL10n&&t("#wp-link-submit").val(wpLinkL10n.update)},close:function(){wpLink.close()},onClose:function(){if(!this.has("node"))return!1;var e=t("#wp-link-submit");if(e.is(":hover")||e.is(":focus")){var i=this.getInputValue();this.setNodeValue(i)}this.off("wplink-open"),this.off("wplink-close"),t("#acf-link-textarea").remove(),this.set("node",null)}})},719:function(){var t,e;t=jQuery,e=acf.Field.extend({type:"oembed",events:{'click [data-name="clear-button"]':"onClickClear","keypress .input-search":"onKeypressSearch","keyup .input-search":"onKeyupSearch","change .input-search":"onChangeSearch"},$control:function(){return this.$(".acf-oembed")},$input:function(){return this.$(".input-value")},$search:function(){return this.$(".input-search")},getValue:function(){return this.$input().val()},getSearchVal:function(){return this.$search().val()},setValue:function(t){t?this.$control().addClass("has-value"):this.$control().removeClass("has-value"),acf.val(this.$input(),t)},showLoading:function(t){acf.showLoading(this.$(".canvas"))},hideLoading:function(){acf.hideLoading(this.$(".canvas"))},maybeSearch:function(){var e=this.val(),i=this.getSearchVal();if(!i)return this.clear();if("http"!=i.substr(0,4)&&(i="http://"+i),i!==e){var a=this.get("timeout");a&&clearTimeout(a);var n=t.proxy(this.search,this,i);this.set("timeout",setTimeout(n,300))}},search:function(e){var i={action:"acf/fields/oembed/search",s:e,field_key:this.get("key")};(a=this.get("xhr"))&&a.abort(),this.showLoading();var a=t.ajax({url:acf.get("ajaxurl"),data:acf.prepareForAjax(i),type:"post",dataType:"json",context:this,success:function(t){t&&t.html||(t={url:!1,html:""}),this.val(t.url),this.$(".canvas-media").html(t.html)},complete:function(){this.hideLoading()}});this.set("xhr",a)},clear:function(){this.val(""),this.$search().val(""),this.$(".canvas-media").html("")},onClickClear:function(t,e){this.clear()},onKeypressSearch:function(t,e){13==t.which&&(t.preventDefault(),this.maybeSearch())},onKeyupSearch:function(t,e){e.val()&&this.maybeSearch()},onChangeSearch:function(t,e){this.maybeSearch()}}),acf.registerFieldType(e)},1281:function(){var t;jQuery,t=acf.models.SelectField.extend({type:"page_link"}),acf.registerFieldType(t)},1987:function(){var t;jQuery,t=acf.models.SelectField.extend({type:"post_object"}),acf.registerFieldType(t)},2557:function(){var t;jQuery,t=acf.Field.extend({type:"radio",events:{'click input[type="radio"]':"onClick"},$control:function(){return this.$(".acf-radio-list")},$input:function(){return this.$("input:checked")},$inputText:function(){return this.$('input[type="text"]')},getValue:function(){var t=this.$input().val();return"other"===t&&this.get("other_choice")&&(t=this.$inputText().val()),t},onClick:function(t,e){var i=e.parent("label"),a=i.hasClass("selected"),n=e.val();this.$(".selected").removeClass("selected"),i.addClass("selected"),this.get("allow_null")&&a&&(i.removeClass("selected"),e.prop("checked",!1).trigger("change"),n=!1),this.get("other_choice")&&("other"===n?this.$inputText().prop("disabled",!1):this.$inputText().prop("disabled",!0))}}),acf.registerFieldType(t)},2489:function(){var t;jQuery,t=acf.Field.extend({type:"range",events:{'input input[type="range"]':"onChange","change input":"onChange"},$input:function(){return this.$('input[type="range"]')},$inputAlt:function(){return this.$('input[type="number"]')},setValue:function(t){this.busy=!0,acf.val(this.$input(),t),acf.val(this.$inputAlt(),this.$input().val(),!0),this.busy=!1},onChange:function(t,e){this.busy||this.setValue(e.val())}}),acf.registerFieldType(t)},714:function(){var t,e;t=jQuery,e=acf.Field.extend({type:"relationship",events:{"keypress [data-filter]":"onKeypressFilter","change [data-filter]":"onChangeFilter","keyup [data-filter]":"onChangeFilter","click .choices-list .acf-rel-item":"onClickAdd","keypress .choices-list .acf-rel-item":"onKeypressFilter","keypress .values-list .acf-rel-item":"onKeypressFilter",'click [data-name="remove_item"]':"onClickRemove"},$control:function(){return this.$(".acf-relationship")},$list:function(t){return this.$("."+t+"-list")},$listItems:function(t){return this.$list(t).find(".acf-rel-item")},$listItem:function(t,e){return this.$list(t).find('.acf-rel-item[data-id="'+e+'"]')},getValue:function(){var e=[];return this.$listItems("values").each((function(){e.push(t(this).data("id"))})),!!e.length&&e},newChoice:function(t){return["
              • ",''+t.text+"","
              • "].join("")},newValue:function(t){return["
              • ",'',''+t.text,'',"","
              • "].join("")},initialize:function(){var t=this.proxy(acf.once((function(){this.$list("values").sortable({items:"li",forceHelperSize:!0,forcePlaceholderSize:!0,scroll:!0,update:this.proxy((function(){this.$input().trigger("change")}))}),this.$list("choices").scrollTop(0).on("scroll",this.proxy(this.onScrollChoices)),this.fetch()})));this.$el.one("mouseover",t),this.$el.one("focus","input",t),acf.onceInView(this.$el,t)},onScrollChoices:function(t){if(!this.get("loading")&&this.get("more")){var e=this.$list("choices"),i=Math.ceil(e.scrollTop()),a=Math.ceil(e[0].scrollHeight),n=Math.ceil(e.innerHeight()),s=this.get("paged")||1;i+n>=a&&(this.set("paged",s+1),this.fetch())}},onKeypressFilter:function(t,e){e.hasClass("acf-rel-item-add")&&13==t.which&&this.onClickAdd(t,e),e.hasClass("acf-rel-item-remove")&&13==t.which&&this.onClickRemove(t,e),13==t.which&&t.preventDefault()},onChangeFilter:function(t,e){var i=e.val(),a=e.data("filter");this.get(a)!==i&&(this.set(a,i),this.set("paged",1),e.is("select")?this.fetch():this.maybeFetch())},onClickAdd:function(t,e){var i=this.val(),a=parseInt(this.get("max"));if(e.hasClass("disabled"))return!1;if(a>0&&i&&i.length>=a)return this.showNotice({text:acf.__("Maximum values reached ( {max} values )").replace("{max}",a),type:"warning"}),!1;e.addClass("disabled");var n=this.newValue({id:e.data("id"),text:e.html()});this.$list("values").append(n),this.$input().trigger("change")},onClickRemove:function(t,e){let i;t.preventDefault(),i=e.hasClass("acf-rel-item-remove")?e:e.parent();const a=i.parent(),n=i.data("id");a.remove(),this.$listItem("choices",n).removeClass("disabled"),this.$input().trigger("change")},maybeFetch:function(){var t=this.get("timeout");t&&clearTimeout(t),t=this.setTimeout(this.fetch,300),this.set("timeout",t)},getAjaxData:function(){var t=this.$control().data();for(var e in t)t[e]=this.get(e);return t.action="acf/fields/relationship/query",t.field_key=this.get("key"),acf.applyFilters("relationship_ajax_data",t,this)},fetch:function(){(n=this.get("xhr"))&&n.abort();var e=this.getAjaxData(),i=this.$list("choices");1==e.paged&&i.html("");var a=t('
              • '+acf.__("Loading")+"
              • ");i.append(a),this.set("loading",!0);var n=t.ajax({url:acf.get("ajaxurl"),dataType:"json",type:"post",data:acf.prepareForAjax(e),context:this,success:function(e){if(!e||!e.results||!e.results.length)return this.set("more",!1),void(1==this.get("paged")&&this.$list("choices").append("
              • "+acf.__("No matches found")+"
              • "));this.set("more",e.more);var a=this.walkChoices(e.results),n=t(a),s=this.val();s&&s.length&&s.map((function(t){n.find('.acf-rel-item[data-id="'+t+'"]').addClass("disabled")})),i.append(n);var o=!1,r=!1;i.find(".acf-rel-label").each((function(){var e=t(this),i=e.siblings("ul");if(o&&o.text()==e.text())return r.append(i.children()),void t(this).parent().remove();o=e,r=i}))},complete:function(){this.set("loading",!1),a.remove()}});this.set("xhr",n)},walkChoices:function(e){var i=function(e){var a="";return t.isArray(e)?e.map((function(t){a+=i(t)})):t.isPlainObject(e)&&(void 0!==e.children?(a+='
              • '+acf.escHtml(e.text)+'
                  ',a+=i(e.children),a+="
              • "):a+='
              • '+acf.escHtml(e.text)+"
              • "),a};return i(e)}}),acf.registerFieldType(e)},6965:function(){var t;jQuery,t=acf.Field.extend({type:"select",select2:!1,wait:"load",events:{removeField:"onRemove",duplicateField:"onDuplicate"},$input:function(){return this.$("select")},initialize:function(){var t=this.$input();if(this.inherit(t),this.get("ui")){var e=this.get("ajax_action");e||(e="acf/fields/"+this.get("type")+"/query"),this.select2=acf.newSelect2(t,{field:this,ajax:this.get("ajax"),multiple:this.get("multiple"),placeholder:this.get("placeholder"),allowNull:this.get("allow_null"),ajaxAction:e})}},onRemove:function(){this.select2&&this.select2.destroy()},onDuplicate:function(t,e,i){this.select2&&(i.find(".select2-container").remove(),i.find("select").removeClass("select2-hidden-accessible"))}}),acf.registerFieldType(t)},177:function(){!function(t,e){var i="tab",a=acf.Field.extend({type:"tab",wait:"",tabs:!1,tab:!1,events:{duplicateField:"onDuplicate"},findFields:function(){let t=".acf-field";return"acf_field_settings_tabs"===this.get("key")&&(t=".acf-field-settings-main"),"acf_field_group_settings_tabs"===this.get("key")&&(t=".field-group-settings-tab"),"acf_browse_fields_tabs"===this.get("key")&&(t=".acf-field-types-tab"),this.$el.nextUntil(".acf-field-tab",t)},getFields:function(){return acf.getFields(this.findFields())},findTabs:function(){return this.$el.prevAll(".acf-tab-wrap:first")},findTab:function(){return this.$(".acf-tab-button")},initialize:function(){if(this.$el.is("td"))return this.events={},!1;var t=this.findTabs(),e=this.findTab(),i=acf.parseArgs(e.data(),{endpoint:!1,placement:"",before:this.$el});!t.length||i.endpoint?this.tabs=new s(i):this.tabs=t.data("acf"),this.tab=this.tabs.addTab(e,this)},isActive:function(){return this.tab.isActive()},showFields:function(){this.getFields().map((function(t){t.show(this.cid,i),t.hiddenByTab=!1}),this)},hideFields:function(){this.getFields().map((function(t){t.hide(this.cid,i),t.hiddenByTab=this.tab}),this)},show:function(t){var e=acf.Field.prototype.show.apply(this,arguments);return e&&(this.tab.show(),this.tabs.refresh()),e},hide:function(t){var e=acf.Field.prototype.hide.apply(this,arguments);return e&&(this.tab.hide(),this.isActive()&&this.tabs.reset()),e},enable:function(t){this.getFields().map((function(t){t.enable(i)}))},disable:function(t){this.getFields().map((function(t){t.disable(i)}))},onDuplicate:function(t,e,i){this.isActive()&&i.prevAll(".acf-tab-wrap:first").remove()}});acf.registerFieldType(a);var n=0,s=acf.Model.extend({tabs:[],active:!1,actions:{refresh:"onRefresh",close_field_object:"onCloseFieldObject"},data:{before:!1,placement:"top",index:0,initialized:!1},setup:function(e){t.extend(this.data,e),this.tabs=[],this.active=!1;var i=this.get("placement"),a=this.get("before"),s=a.parent();if("left"==i&&s.hasClass("acf-fields")&&s.addClass("-sidebar"),a.is("tr"))this.$el=t('
                ');else{let e="acf-hl acf-tab-group";"acf_field_settings_tabs"===this.get("key")&&(e="acf-field-settings-tab-bar"),this.$el=t('
                  ')}a.before(this.$el),this.set("index",n,!0),n++},initializeTabs:function(){if("acf_field_settings_tabs"!==this.get("key")||!t("#acf-field-group-fields").hasClass("hide-tabs")){var e=this.getVisible().shift(),i=(acf.getPreference("this.tabs")||[])[this.get("index")];this.tabs[i]&&this.tabs[i].isVisible()&&(e=this.tabs[i]),e?this.selectTab(e):this.closeTabs(),this.set("initialized",!0)}},getVisible:function(){return this.tabs.filter((function(t){return t.isVisible()}))},getActive:function(){return this.active},setActive:function(t){return this.active=t},hasActive:function(){return!1!==this.active},isActive:function(t){var e=this.getActive();return e&&e.cid===t.cid},closeActive:function(){this.hasActive()&&this.closeTab(this.getActive())},openTab:function(t){this.closeActive(),t.open(),this.setActive(t)},closeTab:function(t){t.close(),this.setActive(!1)},closeTabs:function(){this.tabs.map(this.closeTab,this)},selectTab:function(t){this.tabs.map((function(e){t.cid!==e.cid&&this.closeTab(e)}),this),this.openTab(t)},addTab:function(e,i){var a=t("
                • "+e.outerHTML()+"
                • "),n=e.attr("class").replace("acf-tab-button","");a.addClass(n),this.$("ul").append(a);var s=new o({$el:a,field:i,group:this});return this.tabs.push(s),s},reset:function(){return this.closeActive(),this.refresh()},refresh:function(){if(this.hasActive())return!1;var t=this.getVisible().shift();return t&&this.openTab(t),t},onRefresh:function(){if("left"===this.get("placement")){var t=this.$el.parent(),e=this.$el.children("ul"),i=t.is("td")?"height":"min-height",a=e.position().top+e.outerHeight(!0)-1;t.css(i,a)}},onCloseFieldObject:function(t){const e=this.getVisible().find((e=>{const i=e.$el.closest("div[data-id]").data("id");if(t.data.id===i)return e}));e&&setTimeout((()=>{this.openTab(e)}),300)}}),o=acf.Model.extend({group:!1,field:!1,events:{"click a":"onClick"},index:function(){return this.$el.index()},isVisible:function(){return acf.isVisible(this.$el)},isActive:function(){return this.$el.hasClass("active")},open:function(){this.$el.addClass("active"),this.field.showFields()},close:function(){this.$el.removeClass("active"),this.field.hideFields()},onClick:function(t,e){t.preventDefault(),this.toggle()},toggle:function(){this.isActive()||this.group.openTab(this)}});new acf.Model({priority:50,actions:{prepare:"render",append:"render",unload:"onUnload",show:"render",invalid_field:"onInvalidField"},findTabs:function(){return t(".acf-tab-wrap")},getTabs:function(){return acf.getInstances(this.findTabs())},render:function(t){this.getTabs().map((function(t){t.get("initialized")||t.initializeTabs()}))},onInvalidField:function(t){this.busy||t.hiddenByTab&&(t.hiddenByTab.toggle(),this.busy=!0,this.setTimeout((function(){this.busy=!1}),100))},onUnload:function(){var t=[];this.getTabs().map((function(e){if(e.$el.children(".acf-field-settings-tab-bar").length||e.$el.parents("#acf-advanced-settings.postbox").length)return!0;var i=e.hasActive()?e.getActive().index():0;t.push(i)})),t.length&&acf.setPreference("this.tabs",t)}})}(jQuery)},2573:function(){var t,e;t=jQuery,e=acf.Field.extend({type:"taxonomy",data:{ftype:"select"},select2:!1,wait:"load",events:{'click a[data-name="add"]':"onClickAdd",'click input[type="radio"]':"onClickRadio",removeField:"onRemove"},$control:function(){return this.$(".acf-taxonomy-field")},$input:function(){return this.getRelatedPrototype().$input.apply(this,arguments)},getRelatedType:function(){var t=this.get("ftype");return"multi_select"==t&&(t="select"),t},getRelatedPrototype:function(){return acf.getFieldType(this.getRelatedType()).prototype},getValue:function(){return this.getRelatedPrototype().getValue.apply(this,arguments)},setValue:function(){return this.getRelatedPrototype().setValue.apply(this,arguments)},initialize:function(){this.getRelatedPrototype().initialize.apply(this,arguments)},onRemove:function(){var t=this.getRelatedPrototype();t.onRemove&&t.onRemove.apply(this,arguments)},onClickAdd:function(e,i){var a=this,n=!1,s=!1,o=!1,r=!1,c=!1,l=!1,d=function(t){n.loading(!1),n.content(t),s=n.$("form"),o=n.$('input[name="term_name"]'),r=n.$('select[name="term_parent"]'),c=n.$(".acf-submit-button"),o.trigger("focus"),n.on("submit","form",u)},u=function(e,i){if(e.preventDefault(),e.stopImmediatePropagation(),""===o.val())return o.trigger("focus"),!1;acf.startButtonLoading(c);var n={action:"acf/fields/taxonomy/add_term",field_key:a.get("key"),term_name:o.val(),term_parent:r.length?r.val():0};t.ajax({url:acf.get("ajaxurl"),data:acf.prepareForAjax(n),type:"post",dataType:"json",success:f})},f=function(t){acf.stopButtonLoading(c),l&&l.remove(),acf.isAjaxSuccess(t)?(o.val(""),p(t.data),l=acf.newNotice({type:"success",text:acf.getAjaxMessage(t),target:s,timeout:2e3,dismiss:!1})):l=acf.newNotice({type:"error",text:acf.getAjaxError(t),target:s,timeout:2e3,dismiss:!1}),o.trigger("focus")},p=function(e){var i=t('");e.term_parent?r.children('option[value="'+e.term_parent+'"]').after(i):r.append(i),acf.getFields({type:"taxonomy"}).map((function(t){t.get("taxonomy")==a.get("taxonomy")&&t.appendTerm(e)})),a.selectTerm(e.term_id)};!function(){n=acf.newPopup({title:i.attr("title"),loading:!0,width:"300px"});var e={action:"acf/fields/taxonomy/add_term",field_key:a.get("key")};t.ajax({url:acf.get("ajaxurl"),data:acf.prepareForAjax(e),type:"post",dataType:"html",success:d})}()},appendTerm:function(t){"select"==this.getRelatedType()?this.appendTermSelect(t):this.appendTermCheckbox(t)},appendTermSelect:function(t){this.select2.addOption({id:t.term_id,text:t.term_label})},appendTermCheckbox:function(e){var i=this.$("[name]:first").attr("name"),a=this.$("ul:first");"checkbox"==this.getRelatedType()&&(i+="[]");var n=t(['
                • ',"","
                • "].join(""));if(e.term_parent){var s=a.find('li[data-id="'+e.term_parent+'"]');(a=s.children("ul")).exists()||(a=t('
                    '),s.append(a))}a.append(n)},selectTerm:function(t){"select"==this.getRelatedType()?this.select2.selectOption(t):this.$('input[value="'+t+'"]').prop("checked",!0).trigger("change")},onClickRadio:function(t,e){var i=e.parent("label"),a=i.hasClass("selected");this.$(".selected").removeClass("selected"),i.addClass("selected"),this.get("allow_null")&&a&&(i.removeClass("selected"),e.prop("checked",!1).trigger("change"))}}),acf.registerFieldType(e)},9047:function(){var t,e;t=jQuery,e=acf.models.DatePickerField.extend({type:"time_picker",$control:function(){return this.$(".acf-time-picker")},initialize:function(){var t=this.$input(),e=this.$inputText(),i={timeFormat:this.get("time_format"),altField:t,altFieldTimeOnly:!1,altTimeFormat:"HH:mm:ss",showButtonPanel:!0,controlType:"select",oneLine:!0,closeText:acf.get("dateTimePickerL10n").selectText,timeOnly:!0,onClose:function(t,e,i){var a=e.dpDiv.find(".ui-datepicker-close");!t&&a.is(":hover")&&i._updateDateTime()}};i=acf.applyFilters("time_picker_args",i,this),acf.newTimePicker(e,i),acf.doAction("time_picker_init",e,i,this)}}),acf.registerFieldType(e),acf.newTimePicker=function(e,i){if(void 0===t.timepicker)return!1;i=i||{},e.timepicker(i),t("body > #ui-datepicker-div").exists()&&t("body > #ui-datepicker-div").wrap('
                    ')}},1788:function(){var t;jQuery,t=acf.Field.extend({type:"true_false",events:{"change .acf-switch-input":"onChange","focus .acf-switch-input":"onFocus","blur .acf-switch-input":"onBlur","keypress .acf-switch-input":"onKeypress"},$input:function(){return this.$('input[type="checkbox"]')},$switch:function(){return this.$(".acf-switch")},getValue:function(){return this.$input().prop("checked")?1:0},initialize:function(){this.render()},render:function(){var t=this.$switch();if(t.length){var e=t.children(".acf-switch-on"),i=t.children(".acf-switch-off"),a=Math.max(e.width(),i.width());a&&(e.css("min-width",a),i.css("min-width",a))}},switchOn:function(){this.$input().prop("checked",!0),this.$switch().addClass("-on")},switchOff:function(){this.$input().prop("checked",!1),this.$switch().removeClass("-on")},onChange:function(t,e){e.prop("checked")?this.switchOn():this.switchOff()},onFocus:function(t,e){this.$switch().addClass("-focus")},onBlur:function(t,e){this.$switch().removeClass("-focus")},onKeypress:function(t,e){return 37===t.keyCode?this.switchOff():39===t.keyCode?this.switchOn():void 0}}),acf.registerFieldType(t)},4429:function(){var t;jQuery,t=acf.Field.extend({type:"url",events:{'keyup input[type="url"]':"onkeyup"},$control:function(){return this.$(".acf-input-wrap")},$input:function(){return this.$('input[type="url"]')},initialize:function(){this.render()},isValid:function(){var t=this.val();return!!t&&(-1!==t.indexOf("://")||0===t.indexOf("//"))},render:function(){this.isValid()?this.$control().addClass("-valid"):this.$control().removeClass("-valid")},onkeyup:function(t,e){this.render()}}),acf.registerFieldType(t)},7790:function(){var t;jQuery,t=acf.models.SelectField.extend({type:"user"}),acf.registerFieldType(t),acf.addFilter("select2_ajax_data",(function(t,e,i,a,n){if(!a)return t;const s=a.get("queryNonce");return s&&s.length&&(t.user_query_nonce=s),t}))},4850:function(){var t;jQuery,t=acf.Field.extend({type:"wysiwyg",wait:"load",events:{"mousedown .acf-editor-wrap.delay":"onMousedown",unmountField:"disableEditor",remountField:"enableEditor",removeField:"disableEditor"},$control:function(){return this.$(".acf-editor-wrap")},$input:function(){return this.$("textarea")},getMode:function(){return this.$control().hasClass("tmce-active")?"visual":"text"},initialize:function(){this.$control().hasClass("delay")||this.initializeEditor()},initializeEditor:function(){var t=this.$control(),e=this.$input(),i={tinymce:!0,quicktags:!0,toolbar:this.get("toolbar"),mode:this.getMode(),field:this},a=e.attr("id"),n=acf.uniqueId("acf-editor-"),s=e.data(),o=e.val();acf.rename({target:t,search:a,replace:n,destructive:!0}),this.set("id",n,!0),this.$input().data(s).val(o),acf.tinymce.initialize(n,i)},onMousedown:function(t){t.preventDefault();var e=this.$control();e.removeClass("delay"),e.find(".acf-editor-toolbar").remove(),this.initializeEditor()},enableEditor:function(){"visual"==this.getMode()&&acf.tinymce.enable(this.get("id"))},disableEditor:function(){acf.tinymce.destroy(this.get("id"))}}),acf.registerFieldType(t)},6291:function(){!function(t,e){var i=[];acf.Field=acf.Model.extend({type:"",eventScope:".acf-field",wait:"ready",setup:function(t){this.$el=t,this.inherit(t),this.inherit(this.$control())},val:function(t){return t!==e?this.setValue(t):this.prop("disabled")?null:this.getValue()},getValue:function(){return this.$input().val()},setValue:function(t){return acf.val(this.$input(),t)},__:function(t){return acf._e(this.type,t)},$control:function(){return!1},$input:function(){return this.$("[name]:first")},$inputWrap:function(){return this.$(".acf-input:first")},$labelWrap:function(){return this.$(".acf-label:first")},getInputName:function(){return this.$input().attr("name")||""},parent:function(){var t=this.parents();return!!t.length&&t[0]},parents:function(){var t=this.$el.parents(".acf-field");return acf.getFields(t)},show:function(t,e){var i=acf.show(this.$el,t);return i&&(this.prop("hidden",!1),acf.doAction("show_field",this,e)),i},hide:function(t,e){var i=acf.hide(this.$el,t);return i&&(this.prop("hidden",!0),acf.doAction("hide_field",this,e)),i},enable:function(t,e){var i=acf.enable(this.$el,t);return i&&(this.prop("disabled",!1),acf.doAction("enable_field",this,e)),i},disable:function(t,e){var i=acf.disable(this.$el,t);return i&&(this.prop("disabled",!0),acf.doAction("disable_field",this,e)),i},showEnable:function(t,e){return this.enable.apply(this,arguments),this.show.apply(this,arguments)},hideDisable:function(t,e){return this.disable.apply(this,arguments),this.hide.apply(this,arguments)},showNotice:function(t){"object"!=typeof t&&(t={text:t}),this.notice&&this.notice.remove(),t.target=this.$inputWrap(),this.notice=acf.newNotice(t)},removeNotice:function(t){this.notice&&(this.notice.away(t||0),this.notice=!1)},showError:function(i){this.$el.addClass("acf-error"),i!==e&&this.showNotice({text:i,type:"error",dismiss:!1}),acf.doAction("invalid_field",this),this.$el.one("focus change","input, select, textarea",t.proxy(this.removeError,this))},removeError:function(){this.$el.removeClass("acf-error"),this.removeNotice(250),acf.doAction("valid_field",this)},trigger:function(t,e,i){return"invalidField"==t&&(i=!0),acf.Model.prototype.trigger.apply(this,[t,e,i])}}),acf.newField=function(t){var e=t.data("type"),i=a(e),n=new(acf.models[i]||acf.Field)(t);return acf.doAction("new_field",n),n};var a=function(t){return acf.strPascalCase(t||"")+"Field"};acf.registerFieldType=function(t){var e=t.prototype.type,n=a(e);acf.models[n]=t,i.push(e)},acf.getFieldType=function(t){var e=a(t);return acf.models[e]||!1},acf.getFieldTypes=function(t){t=acf.parseArgs(t,{category:""});var e=[];return i.map((function(i){var a=acf.getFieldType(i),n=a.prototype;t.category&&n.category!==t.category||e.push(a)})),e}}(jQuery)},1580:function(){!function(t,e){acf.findFields=function(e){var i=".acf-field",a=!1;return(e=acf.parseArgs(e,{key:"",name:"",type:"",is:"",parent:!1,sibling:!1,limit:!1,visible:!1,suppressFilters:!1,excludeSubFields:!1})).suppressFilters||(e=acf.applyFilters("find_fields_args",e)),e.key&&(i+='[data-key="'+e.key+'"]'),e.type&&(i+='[data-type="'+e.type+'"]'),e.name&&(i+='[data-name="'+e.name+'"]'),e.is&&(i+=e.is),e.visible&&(i+=":visible"),e.suppressFilters||(i=acf.applyFilters("find_fields_selector",i,e)),e.parent?(a=e.parent.find(i),e.excludeSubFields&&(a=a.not(e.parent.find(".acf-is-subfields .acf-field")))):a=e.sibling?e.sibling.siblings(i):t(i),e.suppressFilters||(a=a.not(".acf-clone .acf-field"),a=acf.applyFilters("find_fields",a)),e.limit&&(a=a.slice(0,e.limit)),a},acf.findField=function(t,e){return acf.findFields({key:t,limit:1,parent:e,suppressFilters:!0})},acf.getField=function(t){t instanceof jQuery||(t=acf.findField(t));var e=t.data("acf");return e||(e=acf.newField(t)),e},acf.getFields=function(e){e instanceof jQuery||(e=acf.findFields(e));var i=[];return e.each((function(){var e=acf.getField(t(this));i.push(e)})),i},acf.findClosestField=function(t){return t.closest(".acf-field")},acf.getClosestField=function(t){var e=acf.findClosestField(t);return this.getField(e)};var i=function(t){var e=t+"_field",i=t+"Field";acf.addAction(e,(function(n){var s=acf.arrayArgs(arguments),o=s.slice(1);["type","name","key"].map((function(t){var i="/"+t+"="+n.get(t);s=[e+i,n].concat(o),acf.doAction.apply(null,s)})),a.indexOf(t)>-1&&n.trigger(i,o)}))},a=["remove","unmount","remount","sortstart","sortstop","show","hide","unload","valid","invalid","enable","disable","duplicate"];["prepare","ready","load","append","remove","unmount","remount","sortstart","sortstop","show","hide","unload"].map((function(t){var e=t,a=t+"_fields",n=t+"_field";acf.addAction(e,(function(t){var e=acf.arrayArgs(arguments).slice(1),i=acf.getFields({parent:t});if(i.length){var n=[a,i].concat(e);acf.doAction.apply(null,n)}})),acf.addAction(a,(function(t){var e=acf.arrayArgs(arguments).slice(1);t.map((function(t,i){var a=[n,t].concat(e);acf.doAction.apply(null,a)}))})),i(t)})),["valid","invalid","enable","disable","new","duplicate"].map(i),new acf.Model({id:"fieldsEventManager",events:{'click .acf-field a[href="#"]':"onClick","change .acf-field":"onChange"},onClick:function(t){t.preventDefault()},onChange:function(){t("#_acf_changed").val(1)}}),new acf.Model({id:"duplicateFieldsManager",actions:{duplicate:"onDuplicate",duplicate_fields:"onDuplicateFields"},onDuplicate:function(t,e){var i=acf.getFields({parent:t});if(i.length){var a=acf.findFields({parent:e});acf.doAction("duplicate_fields",i,a)}},onDuplicateFields:function(e,i){e.map((function(e,a){acf.doAction("duplicate_field",e,t(i[a]))}))}})}(jQuery)},5938:function(){var t;t=jQuery,new acf.Model({priority:90,actions:{new_field:"refresh",show_field:"refresh",hide_field:"refresh",remove_field:"refresh",unmount_field:"refresh",remount_field:"refresh"},refresh:function(){acf.refresh()}}),new acf.Model({priority:1,actions:{sortstart:"onSortstart",sortstop:"onSortstop"},onSortstart:function(t){acf.doAction("unmount",t)},onSortstop:function(t){acf.doAction("remount",t)}}),new acf.Model({actions:{sortstart:"onSortstart"},onSortstart:function(e,i){e.is("tr")&&(i.html('
                    '),e.addClass("acf-sortable-tr-helper"),e.children().each((function(){t(this).width(t(this).width())})),i.height(e.height()+"px"),e.removeClass("acf-sortable-tr-helper"))}}),new acf.Model({actions:{after_duplicate:"onAfterDuplicate"},onAfterDuplicate:function(e,i){var a=[];e.find("select").each((function(e){a.push(t(this).val())})),i.find("select").each((function(e){t(this).val(a[e])}))}}),new acf.Model({id:"tableHelper",priority:20,actions:{refresh:"renderTables"},renderTables:function(e){var i=this;t(".acf-table:visible").each((function(){i.renderTable(t(this))}))},renderTable:function(e){var i=e.find("> thead > tr:visible > th[data-key]"),a=e.find("> tbody > tr:visible > td[data-key]");if(!i.length||!a.length)return!1;i.each((function(e){var i=t(this),n=i.data("key"),s=a.filter('[data-key="'+n+'"]'),o=s.filter(".acf-hidden");s.removeClass("acf-empty"),s.length===o.length?acf.hide(i):(acf.show(i),o.addClass("acf-empty"))})),i.css("width","auto"),i=i.not(".acf-hidden");var n=100;i.length,i.filter("[data-width]").each((function(){var e=t(this).data("width");t(this).css("width",e+"%"),n-=e}));var s=i.not("[data-width]");if(s.length){var o=n/s.length;s.css("width",o+"%"),n=0}n>0&&i.last().css("width","auto"),a.filter(".-collapsed-target").each((function(){var e=t(this);e.parent().hasClass("-collapsed")?e.attr("colspan",i.length):e.removeAttr("colspan")}))}}),new acf.Model({id:"fieldsHelper",priority:30,actions:{refresh:"renderGroups"},renderGroups:function(){var e=this;t(".acf-fields:visible").each((function(){e.renderGroup(t(this))}))},renderGroup:function(e){var i=0,a=0,n=t(),s=e.children(".acf-field[data-width]:visible");return!!s.length&&(e.hasClass("-left")?(s.removeAttr("data-width"),s.css("width","auto"),!1):(s.removeClass("-r0 -c0").css({"min-height":0}),s.each((function(e){var s=t(this),o=s.position(),r=Math.ceil(o.top),c=Math.ceil(o.left);n.length&&r>i&&(n.css({"min-height":a+"px"}),o=s.position(),r=Math.ceil(o.top),c=Math.ceil(o.left),i=0,a=0,n=t()),acf.get("rtl")&&(c=Math.ceil(s.parent().width()-(o.left+s.outerWidth()))),0==r?s.addClass("-r0"):0==c&&s.addClass("-c0");var l=Math.ceil(s.outerHeight())+1;a=Math.max(a,l),i=Math.max(i,r),n=n.add(s)})),void(n.length&&n.css({"min-height":a+"px"}))))}}),new acf.Model({id:"bodyClassShiftHelper",events:{keydown:"onKeyDown",keyup:"onKeyUp"},isShiftKey:function(t){return 16===t.keyCode},onKeyDown:function(e){this.isShiftKey(e)&&t("body").addClass("acf-keydown-shift")},onKeyUp:function(e){this.isShiftKey(e)&&t("body").removeClass("acf-keydown-shift")}})},3812:function(){!function(t,e){acf.newMediaPopup=function(t){var e=null;return t=acf.parseArgs(t,{mode:"select",title:"",button:"",type:"",field:!1,allowedTypes:"",library:"all",multiple:!1,attachment:0,autoOpen:!0,open:function(){},select:function(){},close:function(){}}),e="edit"==t.mode?new acf.models.EditMediaPopup(t):new acf.models.SelectMediaPopup(t),t.autoOpen&&setTimeout((function(){e.open()}),1),acf.doAction("new_media_popup",e),e};var i=function(){var t=acf.get("post_id");return acf.isNumeric(t)?t:0};acf.getMimeTypes=function(){return this.get("mimeTypes")},acf.getMimeType=function(t){var e=acf.getMimeTypes();if(void 0!==e[t])return e[t];for(var i in e)if(-1!==i.indexOf(t))return e[i];return!1};var a=acf.Model.extend({id:"MediaPopup",data:{},defaults:{},frame:!1,setup:function(e){t.extend(this.data,e)},initialize:function(){var t=this.getFrameOptions();this.addFrameStates(t);var e=wp.media(t);e.acf=this,this.addFrameEvents(e,t),this.frame=e},open:function(){this.frame.open()},close:function(){this.frame.close()},remove:function(){this.frame.detach(),this.frame.remove()},getFrameOptions:function(){var t={title:this.get("title"),multiple:this.get("multiple"),library:{},states:[]};return this.get("type")&&(t.library.type=this.get("type")),"uploadedTo"===this.get("library")&&(t.library.uploadedTo=i()),this.get("attachment")&&(t.library.post__in=[this.get("attachment")]),this.get("button")&&(t.button={text:this.get("button")}),t},addFrameStates:function(t){var e=wp.media.query(t.library);this.get("field")&&acf.isset(e,"mirroring","args")&&(e.mirroring.args._acfuploader=this.get("field")),t.states.push(new wp.media.controller.Library({library:e,multiple:this.get("multiple"),title:this.get("title"),priority:20,filterable:"all",editable:!0,allowLocalEdits:!0})),acf.isset(wp,"media","controller","EditImage")&&t.states.push(new wp.media.controller.EditImage)},addFrameEvents:function(t,e){t.on("open",(function(){this.$el.closest(".media-modal").addClass("acf-media-modal -"+this.acf.get("mode"))}),t),t.on("content:render:edit-image",(function(){var t=this.state().get("image"),e=new wp.media.view.EditImage({model:t,controller:this}).render();this.content.set(e),e.loadEditor()}),t),t.on("select",(function(){var e=t.state().get("selection");e&&e.each((function(e,i){t.acf.get("select").apply(t.acf,[e,i])}))})),t.on("close",(function(){setTimeout((function(){t.acf.get("close").apply(t.acf),t.acf.remove()}),1)}))}});acf.models.SelectMediaPopup=a.extend({id:"SelectMediaPopup",setup:function(t){t.button||(t.button=acf._x("Select","verb")),a.prototype.setup.apply(this,arguments)},addFrameEvents:function(t,e){acf.isset(_wpPluploadSettings,"defaults","multipart_params")&&(_wpPluploadSettings.defaults.multipart_params._acfuploader=this.get("field"),t.on("open",(function(){delete _wpPluploadSettings.defaults.multipart_params._acfuploader}))),t.on("content:activate:browse",(function(){var e=!1;try{e=t.content.get().toolbar}catch(t){return void console.log(t)}t.acf.customizeFilters.apply(t.acf,[e])})),a.prototype.addFrameEvents.apply(this,arguments)},customizeFilters:function(e){var i=e.get("filters");if("image"==this.get("type")&&(i.filters.all.text=acf.__("All images"),delete i.filters.audio,delete i.filters.video,delete i.filters.image,t.each(i.filters,(function(t,e){e.props.type=e.props.type||"image"}))),this.get("allowedTypes")&&this.get("allowedTypes").split(" ").join("").split(".").join("").split(",").map((function(t){var e=acf.getMimeType(t);if(e){var a={text:e,props:{status:null,type:e,uploadedTo:null,orderby:"date",order:"DESC"},priority:20};i.filters[e]=a}})),"uploadedTo"===this.get("library")){var a=this.frame.options.library.uploadedTo;delete i.filters.unattached,delete i.filters.uploaded,t.each(i.filters,(function(t,e){e.text+=" ("+acf.__("Uploaded to this post")+")",e.props.uploadedTo=a}))}var n=this.get("field");t.each(i.filters,(function(t,e){e.props._acfuploader=n})),e.get("search").model.attributes._acfuploader=n,i.renderFilters&&i.renderFilters()}}),acf.models.EditMediaPopup=a.extend({id:"SelectMediaPopup",setup:function(t){t.button||(t.button=acf._x("Update","verb")),a.prototype.setup.apply(this,arguments)},addFrameEvents:function(t,e){t.on("open",(function(){this.$el.closest(".media-modal").addClass("acf-expanded"),"browse"!=this.content.mode()&&this.content.mode("browse");var e=this.state().get("selection"),i=wp.media.attachment(t.acf.get("attachment"));e.add(i)}),t),a.prototype.addFrameEvents.apply(this,arguments)}}),new acf.Model({id:"customizePrototypes",wait:"ready",initialize:function(){if(acf.isset(window,"wp","media","view")){var t=i();t&&acf.isset(wp,"media","view","settings","post")&&(wp.media.view.settings.post.id=t),this.customizeAttachmentsButton(),this.customizeAttachmentsRouter(),this.customizeAttachmentFilters(),this.customizeAttachmentCompat(),this.customizeAttachmentLibrary()}},customizeAttachmentsButton:function(){if(acf.isset(wp,"media","view","Button")){var t=wp.media.view.Button;wp.media.view.Button=t.extend({initialize:function(){var t=_.defaults(this.options,this.defaults);this.model=new Backbone.Model(t),this.listenTo(this.model,"change",this.render)}})}},customizeAttachmentsRouter:function(){if(acf.isset(wp,"media","view","Router")){var e=wp.media.view.Router;wp.media.view.Router=e.extend({addExpand:function(){var e=t(['',''+acf.__("Expand Details")+"",''+acf.__("Collapse Details")+"",""].join(""));e.on("click",(function(e){e.preventDefault();var i=t(this).closest(".media-modal");i.hasClass("acf-expanded")?i.removeClass("acf-expanded"):i.addClass("acf-expanded")})),this.$el.append(e)},initialize:function(){return e.prototype.initialize.apply(this,arguments),this.addExpand(),this}})}},customizeAttachmentFilters:function(){acf.isset(wp,"media","view","AttachmentFilters","All")&&(wp.media.view.AttachmentFilters.All.prototype.renderFilters=function(){this.$el.html(_.chain(this.filters).map((function(e,i){return{el:t("").val(i).html(e.text)[0],priority:e.priority||50}}),this).sortBy("priority").pluck("el").value())})},customizeAttachmentCompat:function(){if(acf.isset(wp,"media","view","AttachmentCompat")){var e=wp.media.view.AttachmentCompat,i=!1;wp.media.view.AttachmentCompat=e.extend({render:function(){return this.rendered?this:(e.prototype.render.apply(this,arguments),this.$("#acf-form-data").length?(clearTimeout(i),i=setTimeout(t.proxy((function(){this.rendered=!0,acf.doAction("append",this.$el)}),this),50),this):this)},save:function(t){var e;t&&t.preventDefault(),e=acf.serializeForAjax(this.$el),this.controller.trigger("attachment:compat:waiting",["waiting"]),this.model.saveCompat(e).always(_.bind(this.postSave,this))}})}},customizeAttachmentLibrary:function(){if(acf.isset(wp,"media","view","Attachment","Library")){var t=wp.media.view.Attachment.Library;wp.media.view.Attachment.Library=t.extend({render:function(){var e=acf.isget(this,"controller","acf"),i=acf.isget(this,"model","attributes");if(e&&i){i.acf_errors&&this.$el.addClass("acf-disabled");var a=e.get("selected");a&&a.indexOf(i.id)>-1&&this.$el.addClass("acf-selected")}return t.prototype.render.apply(this,arguments)},toggleSelection:function(e){this.collection;var i=this.options.selection,a=this.model,n=(i.single(),this.controller),s=acf.isget(this,"model","attributes","acf_errors"),o=n.$el.find(".media-frame-content .media-sidebar");if(o.children(".acf-selection-error").remove(),o.children().removeClass("acf-hidden"),n&&s){var r=acf.isget(this,"model","attributes","filename");return o.children().addClass("acf-hidden"),o.prepend(['
                    ',''+acf.__("Restricted")+"",''+r+"",''+s+"","
                    "].join("")),i.reset(),void i.single(a)}return t.prototype.toggleSelection.apply(this,arguments)}})}}})}(jQuery)},1128:function(){var t;t=jQuery,new acf.Model({wait:"prepare",priority:1,initialize:function(){(acf.get("postboxes")||[]).map(acf.newPostbox)}}),acf.getPostbox=function(e){return"string"==typeof arguments[0]&&(e=t("#"+arguments[0])),acf.getInstance(e)},acf.getPostboxes=function(){return acf.getInstances(t(".acf-postbox"))},acf.newPostbox=function(t){return new acf.models.Postbox(t)},acf.models.Postbox=acf.Model.extend({data:{id:"",key:"",style:"default",label:"top",edit:""},setup:function(e){e.editLink&&(e.edit=e.editLink),t.extend(this.data,e),this.$el=this.$postbox()},$postbox:function(){return t("#"+this.get("id"))},$hide:function(){return t("#"+this.get("id")+"-hide")},$hideLabel:function(){return this.$hide().parent()},$hndle:function(){return this.$("> .hndle")},$handleActions:function(){return this.$("> .postbox-header .handle-actions")},$inside:function(){return this.$("> .inside")},isVisible:function(){return this.$el.hasClass("acf-hidden")},isHiddenByScreenOptions:function(){return this.$el.hasClass("hide-if-js")||"none"==this.$el.css("display")},initialize:function(){if(this.$el.addClass("acf-postbox"),"block"!==acf.get("editor")){var t=this.get("style");"default"!==t&&this.$el.addClass(t)}this.$inside().addClass("acf-fields").addClass("-"+this.get("label"));var e=this.get("edit");if(e){var i='',a=this.$handleActions();a.length?a.prepend(i):this.$hndle().append(i)}this.show()},show:function(){this.$el.hasClass("hide-if-js")?this.$hide().prop("checked",!1):(this.$hideLabel().show(),this.$hide().prop("checked",!0),this.$el.show().removeClass("acf-hidden"),acf.doAction("show_postbox",this))},enable:function(){acf.enable(this.$el,"postbox")},showEnable:function(){this.enable(),this.show()},hide:function(){this.$hideLabel().hide(),this.$el.hide().addClass("acf-hidden"),acf.doAction("hide_postbox",this)},disable:function(){acf.disable(this.$el,"postbox")},hideDisable:function(){this.disable(),this.hide()},html:function(t){this.$inside().html(t),acf.doAction("append",this.$el)}})},7240:function(){var t;t=jQuery,acf.screen=new acf.Model({active:!0,xhr:!1,timeout:!1,wait:"load",events:{"change #page_template":"onChange","change #parent_id":"onChange","change #post-formats-select":"onChange","change .categorychecklist":"onChange","change .tagsdiv":"onChange",'change .acf-taxonomy-field[data-save="1"]':"onChange","change #product-type":"onChange"},isPost:function(){return"post"===acf.get("screen")},isUser:function(){return"user"===acf.get("screen")},isTaxonomy:function(){return"taxonomy"===acf.get("screen")},isAttachment:function(){return"attachment"===acf.get("screen")},isNavMenu:function(){return"nav_menu"===acf.get("screen")},isWidget:function(){return"widget"===acf.get("screen")},isComment:function(){return"comment"===acf.get("screen")},getPageTemplate:function(){var e=t("#page_template");return e.length?e.val():null},getPageParent:function(e,i){return(i=t("#parent_id")).length?i.val():null},getPageType:function(t,e){return this.getPageParent()?"child":"parent"},getPostType:function(){return t("#post_type").val()},getPostFormat:function(e,i){if((i=t("#post-formats-select input:checked")).length){var a=i.val();return"0"==a?"standard":a}return null},getPostCoreTerms:function(){var e={},i=acf.serialize(t(".categorydiv, .tagsdiv"));for(var a in i.tax_input&&(e=i.tax_input),i.post_category&&(e.category=i.post_category),e)acf.isArray(e[a])||(e[a]=e[a].split(/,[\s]?/));return e},getPostTerms:function(){var t=this.getPostCoreTerms();for(var e in acf.getFields({type:"taxonomy"}).map((function(e){if(e.get("save")){var i=e.val(),a=e.get("taxonomy");i&&(t[a]=t[a]||[],i=acf.isArray(i)?i:[i],t[a]=t[a].concat(i))}})),null!==(productType=this.getProductType())&&(t.product_type=[productType]),t)t[e]=acf.uniqueArray(t[e]);return t},getProductType:function(){var e=t("#product-type");return e.length?e.val():null},check:function(){if("post"===acf.get("screen")){this.xhr&&this.xhr.abort();var e=acf.parseArgs(this.data,{action:"acf/ajax/check_screen",screen:acf.get("screen"),exists:[]});this.isPost()&&(e.post_id=acf.get("post_id")),null!==(postType=this.getPostType())&&(e.post_type=postType),null!==(pageTemplate=this.getPageTemplate())&&(e.page_template=pageTemplate),null!==(pageParent=this.getPageParent())&&(e.page_parent=pageParent),null!==(pageType=this.getPageType())&&(e.page_type=pageType),null!==(postFormat=this.getPostFormat())&&(e.post_format=postFormat),null!==(postTerms=this.getPostTerms())&&(e.post_terms=postTerms),acf.getPostboxes().map((function(t){e.exists.push(t.get("key"))})),e=acf.applyFilters("check_screen_args",e),this.xhr=t.ajax({url:acf.get("ajaxurl"),data:acf.prepareForAjax(e),type:"post",dataType:"json",context:this,success:function(t){"post"==acf.get("screen")?this.renderPostScreen(t):"user"==acf.get("screen")&&this.renderUserScreen(t),acf.doAction("check_screen_complete",t,e)}})}},onChange:function(t,e){this.setTimeout(this.check,1)},renderPostScreen:function(e){var i=function(e,i){var a=t._data(e[0]).events;for(var n in a)for(var s=0;s=0;n--)if(t("#"+i[n]).length)return t("#"+i[n]).after(t("#"+e));for(n=a+1;n=5.5)var r=['
                    ','

                    ',""+acf.escHtml(n.title)+"","

                    ",'
                    ','","
                    ","
                    "].join("");else r=['",'

                    ',""+acf.escHtml(n.title)+"","

                    "].join("");n.classes||(n.classes="");var c=t(['
                    ',r,'
                    ',n.html,"
                    ","
                    "].join(""));if(t("#adv-settings").length){var l=t("#adv-settings .metabox-prefs"),d=t(['"].join(""));i(l.find("input").first(),d.find("input")),l.append(d)}t(".postbox").length&&(i(t(".postbox .handlediv").first(),c.children(".handlediv")),i(t(".postbox .hndle").first(),c.children(".hndle"))),"side"===n.position?t("#"+n.position+"-sortables").append(c):t("#"+n.position+"-sortables").prepend(c);var u=[];if(e.results.map((function(e){n.position===e.position&&t("#"+n.position+"-sortables #"+e.id).length&&u.push(e.id)})),a(n.id,u),e.sorted)for(var f in e.sorted){let t=e.sorted[f];if("string"==typeof t&&(t=t.split(","),a(n.id,t)))break}o=acf.newPostbox(n),acf.doAction("append",c),acf.doAction("append_postbox",o)}return o.showEnable(),e.visible.push(n.id),n})),acf.getPostboxes().map((function(t){-1===e.visible.indexOf(t.get("id"))&&(t.hideDisable(),e.hidden.push(t.get("id")))})),t("#acf-style").html(e.style),acf.doAction("refresh_post_screen",e)},renderUserScreen:function(t){}}),new acf.Model({postEdits:{},wait:"prepare",initialize:function(){acf.isGutenberg()&&(wp.data.subscribe(acf.debounce(this.onChange).bind(this)),acf.screen.getPageTemplate=this.getPageTemplate,acf.screen.getPageParent=this.getPageParent,acf.screen.getPostType=this.getPostType,acf.screen.getPostFormat=this.getPostFormat,acf.screen.getPostCoreTerms=this.getPostCoreTerms,acf.unload.disable(),parseFloat(acf.get("wp_version"))>=5.3&&this.addAction("refresh_post_screen",this.onRefreshPostScreen),wp.domReady(acf.refresh))},onChange:function(){var t=["template","parent","format"];(wp.data.select("core").getTaxonomies()||[]).map((function(e){t.push(e.rest_base)}));var e=wp.data.select("core/editor").getPostEdits(),i={};t.map((function(t){void 0!==e[t]&&(i[t]=e[t])})),JSON.stringify(i)!==JSON.stringify(this.postEdits)&&(this.postEdits=i,acf.screen.check())},getPageTemplate:function(){return wp.data.select("core/editor").getEditedPostAttribute("template")},getPageParent:function(t,e){return wp.data.select("core/editor").getEditedPostAttribute("parent")},getPostType:function(){return wp.data.select("core/editor").getEditedPostAttribute("type")},getPostFormat:function(t,e){return wp.data.select("core/editor").getEditedPostAttribute("format")},getPostCoreTerms:function(){var t={};return(wp.data.select("core").getTaxonomies()||[]).map((function(e){var i=wp.data.select("core/editor").getEditedPostAttribute(e.rest_base);i&&(t[e.slug]=i)})),t},onRefreshPostScreen:function(t){var e=wp.data.select("core/edit-post"),i=wp.data.dispatch("core/edit-post"),a={};e.getActiveMetaBoxLocations().map((function(t){a[t]=e.getMetaBoxesPerLocation(t)}));var n=[];for(var s in a)a[s].map((function(t){n.push(t.id)}));for(var s in t.results.filter((function(t){return-1===n.indexOf(t.id)})).map((function(t,e){var i=t.position;a[i]=a[i]||[],a[i].push({id:t.id,title:t.title})})),a)a[s]=a[s].filter((function(e){return-1===t.hidden.indexOf(e.id)}));i.setAvailableMetaBoxesPerLocation(a)}})},5796:function(){!function(t,e){function i(){return acf.isset(window,"jQuery","fn","select2","amd")?4:!!acf.isset(window,"Select2")&&3}acf.newSelect2=function(t,e){if(e=acf.parseArgs(e,{allowNull:!1,placeholder:"",multiple:!1,field:!1,ajax:!1,ajaxAction:"",ajaxData:function(t){return t},ajaxResults:function(t){return t},templateSelection:!1,templateResult:!1,dropdownCssClass:"",suppressFilters:!1}),4==i())var a=new n(t,e);else a=new s(t,e);return acf.doAction("new_select2",a),a};var a=acf.Model.extend({setup:function(e,i){t.extend(this.data,i),this.$el=e},initialize:function(){},selectOption:function(t){var e=this.getOption(t);e.prop("selected")||e.prop("selected",!0).trigger("change")},unselectOption:function(t){var e=this.getOption(t);e.prop("selected")&&e.prop("selected",!1).trigger("change")},getOption:function(t){return this.$('option[value="'+t+'"]')},addOption:function(e){e=acf.parseArgs(e,{id:"",text:"",selected:!1});var i=this.getOption(e.id);return i.length||((i=t("")).html(e.text),i.attr("value",e.id),i.prop("selected",e.selected),this.$el.append(i)),i},getValue:function(){var e=[],i=this.$el.find("option:selected");return i.exists()?((i=i.sort((function(t,e){return+t.getAttribute("data-i")-+e.getAttribute("data-i")}))).each((function(){var i=t(this);e.push({$el:i,id:i.attr("value"),text:i.text()})})),e):e},mergeOptions:function(){},getChoices:function(){var e=function(i){var a=[];return i.children().each((function(){var i=t(this);i.is("optgroup")?a.push({text:i.attr("label"),children:e(i)}):a.push({id:i.attr("value"),text:i.text()})})),a};return e(this.$el)},getAjaxData:function(t){var e={action:this.get("ajaxAction"),s:t.term||"",paged:t.page||1},i=this.get("field");i&&(e.field_key=i.get("key"));var a=this.get("ajaxData");return a&&(e=a.apply(this,[e,t])),e=acf.applyFilters("select2_ajax_data",e,this.data,this.$el,i||!1,this),acf.prepareForAjax(e)},getAjaxResults:function(t,e){t=acf.parseArgs(t,{results:!1,more:!1});var i=this.get("ajaxResults");return i&&(t=i.apply(this,[t,e])),acf.applyFilters("select2_ajax_results",t,e,this)},processAjaxResults:function(e,i){return(e=this.getAjaxResults(e,i)).more&&(e.pagination={more:!0}),setTimeout(t.proxy(this.mergeOptions,this),1),e},destroy:function(){this.$el.data("select2")&&this.$el.select2("destroy"),this.$el.siblings(".select2-container").remove()}}),n=a.extend({initialize:function(){var i=this.$el,a={width:"100%",allowClear:this.get("allowNull"),placeholder:this.get("placeholder"),multiple:this.get("multiple"),templateSelection:this.get("templateSelection"),templateResult:this.get("templateResult"),dropdownCssClass:this.get("dropdownCssClass"),suppressFilters:this.get("suppressFilters"),data:[],escapeMarkup:function(t){return"string"!=typeof t?t:acf.escHtml(t)}};a.templateSelection||delete a.templateSelection,a.templateResult||delete a.templateResult,a.dropdownCssClass||delete a.dropdownCssClass,acf.isset(window,"jQuery","fn","selectWoo")?(delete a.templateSelection,delete a.templateResult):a.templateSelection||(a.templateSelection=function(e){var i=t('');return i.html(acf.escHtml(e.text)),i.data("element",e.element),i}),a.multiple&&this.getValue().map((function(t){t.$el.detach().appendTo(i)}));var n=i.attr("data-ajax");if(n!==e&&(i.removeData("ajax"),i.removeAttr("data-ajax")),this.get("ajax")&&(a.ajax={url:acf.get("ajaxurl"),delay:250,dataType:"json",type:"post",cache:!1,data:t.proxy(this.getAjaxData,this),processResults:t.proxy(this.processAjaxResults,this)}),!a.suppressFilters){var s=this.get("field");a=acf.applyFilters("select2_args",a,i,this.data,s||!1,this)}i.select2(a);var o=i.next(".select2-container");if(a.multiple){var r=o.find("ul");r.sortable({stop:function(e){r.find(".select2-selection__choice").each((function(){if(t(this).data("data"))var e=t(t(this).data("data").element);else e=t(t(this).find("span.acf-selection").data("element"));e.detach().appendTo(i)})),i.trigger("change")}}),i.on("select2:select",this.proxy((function(t){this.getOption(t.params.data.id).detach().appendTo(this.$el)})))}i.on("select2:open",(()=>{t(".select2-container--open .select2-search__field").get(-1).focus()})),o.addClass("-acf"),n!==e&&i.attr("data-ajax",n),a.suppressFilters||acf.doAction("select2_init",i,a,this.data,s||!1,this)},mergeOptions:function(){var e=!1,i=!1;t('.select2-results__option[role="group"]').each((function(){var a=t(this).children("ul"),n=t(this).children("strong");if(i&&i.text()===n.text())return e.append(a.children()),void t(this).remove();e=a,i=n}))}}),s=a.extend({initialize:function(){var e=this.$el,i=this.getValue(),a=this.get("multiple"),n={width:"100%",allowClear:this.get("allowNull"),placeholder:this.get("placeholder"),separator:"||",multiple:this.get("multiple"),data:this.getChoices(),escapeMarkup:function(t){return acf.escHtml(t)},dropdownCss:{"z-index":"999999999"},initSelection:function(t,e){e(a?i:i.shift())}},s=e.siblings("input");s.length||(s=t(''),e.before(s)),inputValue=i.map((function(t){return t.id})).join("||"),s.val(inputValue),n.multiple&&i.map((function(t){t.$el.detach().appendTo(e)})),n.allowClear&&(n.data=n.data.filter((function(t){return""!==t.id}))),e.removeData("ajax"),e.removeAttr("data-ajax"),this.get("ajax")&&(n.ajax={url:acf.get("ajaxurl"),quietMillis:250,dataType:"json",type:"post",cache:!1,data:t.proxy(this.getAjaxData,this),results:t.proxy(this.processAjaxResults,this)});var o=this.get("field");n=acf.applyFilters("select2_args",n,e,this.data,o||!1,this),s.select2(n);var r=s.select2("container"),c=t.proxy(this.getOption,this);if(n.multiple){var l=r.find("ul");l.sortable({stop:function(){l.find(".select2-search-choice").each((function(){var i=t(this).data("select2Data");c(i.id).detach().appendTo(e)})),e.trigger("change")}})}s.on("select2-selecting",(function(i){var a=i.choice,n=c(a.id);n.length||(n=t('")),n.detach().appendTo(e)})),r.addClass("-acf"),acf.doAction("select2_init",e,n,this.data,o||!1,this),s.on("change",(function(){var t=s.val();t.indexOf("||")&&(t=t.split("||")),e.val(t).trigger("change")})),e.hide()},mergeOptions:function(){var e=!1;t("#select2-drop .select2-result-with-children").each((function(){var i=t(this).children("ul"),a=t(this).children(".select2-result-label");if(e&&e.text()===a.text())return e.append(i.children()),void t(this).remove();e=a}))},getAjaxData:function(t,e){var i={term:t,page:e},n=this.get("field");return i=acf.applyFilters("select2_ajax_data",i,this.data,this.$el,n||!1,this),a.prototype.getAjaxData.apply(this,[i])}});new acf.Model({priority:5,wait:"prepare",actions:{duplicate:"onDuplicate"},initialize:function(){var t=acf.get("locale"),e=(acf.get("rtl"),acf.get("select2L10n")),a=i();return!!e&&0!==t.indexOf("en")&&void(4==a?this.addTranslations4():3==a&&this.addTranslations3())},addTranslations4:function(){var t=acf.get("select2L10n"),e=acf.get("locale");e=e.replace("_","-");var i={errorLoading:function(){return t.load_fail},inputTooLong:function(e){var i=e.input.length-e.maximum;return i>1?t.input_too_long_n.replace("%d",i):t.input_too_long_1},inputTooShort:function(e){var i=e.minimum-e.input.length;return i>1?t.input_too_short_n.replace("%d",i):t.input_too_short_1},loadingMore:function(){return t.load_more},maximumSelected:function(e){var i=e.maximum;return i>1?t.selection_too_long_n.replace("%d",i):t.selection_too_long_1},noResults:function(){return t.matches_0},searching:function(){return t.searching}};jQuery.fn.select2.amd.define("select2/i18n/"+e,[],(function(){return i}))},addTranslations3:function(){var e=acf.get("select2L10n"),i=acf.get("locale");i=i.replace("_","-");var a={formatMatches:function(t){return t>1?e.matches_n.replace("%d",t):e.matches_1},formatNoMatches:function(){return e.matches_0},formatAjaxError:function(){return e.load_fail},formatInputTooShort:function(t,i){var a=i-t.length;return a>1?e.input_too_short_n.replace("%d",a):e.input_too_short_1},formatInputTooLong:function(t,i){var a=t.length-i;return a>1?e.input_too_long_n.replace("%d",a):e.input_too_long_1},formatSelectionTooBig:function(t){return t>1?e.selection_too_long_n.replace("%d",t):e.selection_too_long_1},formatLoadMore:function(){return e.load_more},formatSearching:function(){return e.searching}};t.fn.select2.locales=t.fn.select2.locales||{},t.fn.select2.locales[i]=a,t.extend(t.fn.select2.defaults,a)},onDuplicate:function(t,e){e.find(".select2-container").remove()}})}(jQuery)},8061:function(){var t;t=jQuery,acf.tinymce={defaults:function(){return"undefined"!=typeof tinyMCEPreInit&&{tinymce:tinyMCEPreInit.mceInit.acf_content,quicktags:tinyMCEPreInit.qtInit.acf_content}},initialize:function(t,e){(e=acf.parseArgs(e,{tinymce:!0,quicktags:!0,toolbar:"full",mode:"visual",field:!1})).tinymce&&this.initializeTinymce(t,e),e.quicktags&&this.initializeQuicktags(t,e)},initializeTinymce:function(e,i){var a=t("#"+e),n=this.defaults(),s=acf.get("toolbars"),o=i.field||!1;if(o.$el,"undefined"==typeof tinymce)return!1;if(!n)return!1;if(tinymce.get(e))return this.enable(e);var r=t.extend({},n.tinymce,i.tinymce);r.id=e,r.selector="#"+e;var c=i.toolbar;if(c&&s&&s[c])for(var l=1;l<=4;l++)r["toolbar"+l]=s[c][l]||"";if(r.setup=function(t){t.on("change",(function(e){t.save(),a.trigger("change")})),t.on("mouseup",(function(t){var e=new MouseEvent("mouseup");window.dispatchEvent(e)}))},r.wp_autoresize_on=!1,r.tadv_noautop||(r.wpautop=!0),r=acf.applyFilters("wysiwyg_tinymce_settings",r,e,o),tinyMCEPreInit.mceInit[e]=r,"visual"==i.mode){tinymce.init(r);var d=tinymce.get(e);if(!d)return!1;d.acf=i.field,acf.doAction("wysiwyg_tinymce_init",d,d.id,r,o)}},initializeQuicktags:function(e,i){var a=this.defaults();if("undefined"==typeof quicktags)return!1;if(!a)return!1;var n=t.extend({},a.quicktags,i.quicktags);n.id=e;var s=i.field||!1;s.$el,n=acf.applyFilters("wysiwyg_quicktags_settings",n,n.id,s),tinyMCEPreInit.qtInit[e]=n;var o=quicktags(n);if(!o)return!1;this.buildQuicktags(o),acf.doAction("wysiwyg_quicktags_init",o,o.id,n,s)},buildQuicktags:function(t){var e,i,a,n,s,o,r,c;for(o in t.canvas,e=t.name,i=t.settings,n="",a={},r="",c=t.id,i.buttons&&(r=","+i.buttons+","),edButtons)edButtons[o]&&(s=edButtons[o].id,r&&-1!==",strong,em,link,block,del,ins,img,ul,ol,li,code,more,close,".indexOf(","+s+",")&&-1===r.indexOf(","+s+",")||edButtons[o].instance&&edButtons[o].instance!==c||(a[s]=edButtons[o],edButtons[o].html&&(n+=edButtons[o].html(e+"_"))));r&&-1!==r.indexOf(",dfw,")&&(a.dfw=new QTags.DFWButton,n+=a.dfw.html(e+"_")),"rtl"===document.getElementsByTagName("html")[0].dir&&(a.textdirection=new QTags.TextDirectionButton,n+=a.textdirection.html(e+"_")),t.toolbar.innerHTML=n,t.theButtons=a,"undefined"!=typeof jQuery&&jQuery(document).triggerHandler("quicktags-init",[t])},disable:function(t){this.destroyTinymce(t)},remove:function(t){this.destroyTinymce(t)},destroy:function(t){this.destroyTinymce(t)},destroyTinymce:function(t){if("undefined"==typeof tinymce)return!1;var e=tinymce.get(t);return!!e&&(e.save(),e.destroy(),!0)},enable:function(t){this.enableTinymce(t)},enableTinymce:function(e){return"undefined"!=typeof switchEditors&&void 0!==tinyMCEPreInit.mceInit[e]&&(t("#"+e).show(),switchEditors.go(e,"tmce"),!0)}},new acf.Model({priority:5,actions:{prepare:"onPrepare",ready:"onReady"},onPrepare:function(){var e=t("#acf-hidden-wp-editor");e.exists()&&e.appendTo("body")},onReady:function(){acf.isset(window,"wp","oldEditor")&&(wp.editor.autop=wp.oldEditor.autop,wp.editor.removep=wp.oldEditor.removep),acf.isset(window,"tinymce","on")&&tinymce.on("AddEditor",(function(t){var e=t.editor;"acf"===e.id.substr(0,3)&&(e=tinymce.editors.content||e,tinymce.activeEditor=e,wpActiveEditor=e.id)}))}})},1417:function(){var t;t=jQuery,acf.unload=new acf.Model({wait:"load",active:!0,changed:!1,actions:{validation_failure:"startListening",validation_success:"stopListening"},events:{"change form .acf-field":"startListening","submit form":"stopListening"},enable:function(){this.active=!0},disable:function(){this.active=!1},reset:function(){this.stopListening()},startListening:function(){!this.changed&&this.active&&(this.changed=!0,t(window).on("beforeunload",this.onUnload))},stopListening:function(){this.changed=!1,t(window).off("beforeunload",this.onUnload)},onUnload:function(){return acf.__("The changes you made will be lost if you navigate away from this page")}})},6148:function(){!function(t,e){var i=acf.Model.extend({id:"Validator",data:{errors:[],notice:null,status:""},events:{"changed:status":"onChangeStatus"},addErrors:function(t){t.map(this.addError,this)},addError:function(t){this.data.errors.push(t)},hasErrors:function(){return this.data.errors.length},clearErrors:function(){return this.data.errors=[]},getErrors:function(){return this.data.errors},getFieldErrors:function(){var t=[],e=[];return this.getErrors().map((function(i){if(i.input){var a=e.indexOf(i.input);a>-1?t[a]=i:(t.push(i),e.push(i.input))}})),t},getGlobalErrors:function(){return this.getErrors().filter((function(t){return!t.input}))},showErrors:function(){if(this.hasErrors()){var e=this.getFieldErrors(),i=this.getGlobalErrors(),a=0,n=!1;e.map((function(t){var e=this.$('[name="'+t.input+'"]').first();if(e.length||(e=this.$('[name^="'+t.input+'"]').first()),e.length){a++;var i=acf.getClosestField(e);o(i.$el),i.showError(t.message),n||(n=i.$el)}}),this);var s=acf.__("Validation failed");if(i.map((function(t){s+=". "+t.message})),1==a?s+=". "+acf.__("1 field requires attention"):a>1&&(s+=". "+acf.__("%d fields require attention").replace("%d",a)),this.has("notice"))this.get("notice").update({type:"error",text:s});else{var r=acf.newNotice({type:"error",text:s,target:this.$el});this.set("notice",r)}n||(n=this.get("notice").$el),setTimeout((function(){t("html, body").animate({scrollTop:n.offset().top-t(window).height()/2},500)}),10)}},onChangeStatus:function(t,e,i,a){this.$el.removeClass("is-"+a).addClass("is-"+i)},validate:function(e){if(e=acf.parseArgs(e,{event:!1,reset:!1,loading:function(){},complete:function(){},failure:function(){},success:function(t){t.submit()}}),"valid"==this.get("status"))return!0;if("validating"==this.get("status"))return!1;if(!this.$(".acf-field").length)return!0;if(e.event){var i=t.Event(null,e.event);e.success=function(){acf.enableSubmit(t(i.target)).trigger(i)}}acf.doAction("validation_begin",this.$el),acf.lockForm(this.$el),e.loading(this.$el,this),this.set("status","validating");var a=acf.serialize(this.$el);return a.action="acf/validate_save_post",t.ajax({url:acf.get("ajaxurl"),data:acf.prepareForAjax(a),type:"post",dataType:"json",context:this,success:function(t){if(acf.isAjaxSuccess(t)){var e=acf.applyFilters("validation_complete",t.data,this.$el,this);e.valid||this.addErrors(e.errors)}},complete:function(){acf.unlockForm(this.$el),this.hasErrors()?(this.set("status","invalid"),acf.doAction("validation_failure",this.$el,this),this.showErrors(),e.failure(this.$el,this)):(this.set("status","valid"),this.has("notice")&&this.get("notice").update({type:"success",text:acf.__("Validation successful"),timeout:1e3}),acf.doAction("validation_success",this.$el,this),acf.doAction("submit",this.$el),e.success(this.$el,this),acf.lockForm(this.$el),e.reset&&this.reset()),e.complete(this.$el,this),this.clearErrors()}}),!1},setup:function(t){this.$el=t},reset:function(){this.set("errors",[]),this.set("notice",null),this.set("status",""),acf.unlockForm(this.$el)}}),a=function(t){var e=t.data("acf");return e||(e=new i(t)),e};acf.validateForm=function(t){return a(t.form).validate(t)},acf.enableSubmit=function(t){return t.removeClass("disabled").removeAttr("disabled")},acf.disableSubmit=function(t){return t.addClass("disabled").attr("disabled",!0)},acf.showSpinner=function(t){return t.addClass("is-active"),t.css("display","inline-block"),t},acf.hideSpinner=function(t){return t.removeClass("is-active"),t.css("display","none"),t},acf.lockForm=function(t){var e=n(t),i=e.find('.button, [type="submit"]').not(".acf-nav, .acf-repeater-add-row"),a=e.find(".spinner, .acf-spinner");return acf.hideSpinner(a),acf.disableSubmit(i),acf.showSpinner(a.last()),t},acf.unlockForm=function(t){var e=n(t),i=e.find('.button, [type="submit"]').not(".acf-nav, .acf-repeater-add-row"),a=e.find(".spinner, .acf-spinner");return acf.enableSubmit(i),acf.hideSpinner(a),t};var n=function(e){var i;return(i=e.find("#submitdiv")).length||(i=e.find("#submitpost")).length||(i=e.find("p.submit").last()).length||(i=e.find(".acf-form-submit")).length||(i=t(".acf-headerbar-actions")).length?i:e},s=acf.debounce((function(t){t.submit()})),o=function(t){var e=t.parents(".acf-postbox");if(e.length){var i=acf.getPostbox(e);i&&i.isHiddenByScreenOptions()&&(i.$el.removeClass("hide-if-js"),i.$el.css("display",""))}};acf.validation=new acf.Model({id:"validation",active:!0,wait:"prepare",actions:{ready:"addInputEvents",append:"addInputEvents"},events:{'click input[type="submit"]':"onClickSubmit",'click button[type="submit"]':"onClickSubmit","click #save-post":"onClickSave","submit form#post":"onSubmitPost","submit form":"onSubmit"},initialize:function(){acf.get("validation")||(this.active=!1,this.actions={},this.events={})},enable:function(){this.active=!0},disable:function(){this.active=!1},reset:function(t){a(t).reset()},addInputEvents:function(e){if("safari"!==acf.get("browser")){var i=t(".acf-field [name]",e);i.length&&this.on(i,"invalid","onInvalid")}},onInvalid:function(t,e){t.preventDefault();var i=e.closest("form");i.length&&(a(i).addError({input:e.attr("name"),message:acf.strEscape(t.target.validationMessage)}),s(i))},onClickSubmit:function(e,i){t(".acf-field input").each((function(){this.checkValidity()||o(t(this))})),this.set("originalEvent",e)},onClickSave:function(t,e){this.set("ignore",!0)},onClickSubmitGutenberg:function(e,i){acf.validateForm({form:t("#editor"),event:e,reset:!0,failure:function(t,e){var i=e.get("notice").$el;i.appendTo(".components-notice-list"),i.find(".acf-notice-dismiss").removeClass("small")}})||(e.preventDefault(),e.stopImmediatePropagation())},onSubmitPost:function(e,i){"dopreview"===t("input#wp-preview").val()&&(this.set("ignore",!0),acf.unlockForm(i))},onSubmit:function(t,e){if(!this.active||this.get("ignore")||t.isDefaultPrevented())return this.allowSubmit();acf.validateForm({form:e,event:this.get("originalEvent")})||t.preventDefault()},allowSubmit:function(){return this.set("ignore",!1),this.set("originalEvent",!1),!0}}),new acf.Model({wait:"prepare",initialize:function(){acf.isGutenberg()&&this.customizeEditor()},customizeEditor:function(){var e=wp.data.dispatch("core/editor"),i=wp.data.select("core/editor"),a=wp.data.dispatch("core/notices"),n=e.savePost,s=!1,o="";wp.data.subscribe((function(){var t=i.getEditedPostAttribute("status");s="publish"===t||"future"===t,o="publish"!==t?t:o})),e.savePost=function(i){i=i||{};var r=this,c=arguments;return new Promise((function(n,r){return i.isAutosave||i.isPreview?n("Validation ignored (autosave)."):s?void(acf.validateForm({form:t("#editor"),reset:!0,complete:function(t,i){e.unlockPostSaving("acf")},failure:function(t,i){var n=i.get("notice");a.createErrorNotice(n.get("text"),{id:"acf-validation",isDismissible:!0}),n.remove(),o&&e.editPost({status:o}),r("Validation failed.")},success:function(){a.removeNotice("acf-validation"),n("Validation success.")}})?n("Validation bypassed."):e.lockPostSaving("acf")):n("Validation ignored (draft).")})).then((function(){return n.apply(r,c)})).catch((function(t){}))}}})}(jQuery)}},e={};function i(a){var n=e[a];if(void 0!==n)return n.exports;var s=e[a]={exports:{}};return t[a](s,s.exports,i),s.exports}i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,{a:e}),e},i.d=function(t,e){for(var a in e)i.o(e,a)&&!i.o(t,a)&&Object.defineProperty(t,a,{enumerable:!0,get:e[a]})},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},function(){"use strict";i(6291),i(1580),i(2213),i(1357),i(8171),i(9459),i(7597),i(684),i(8489),i(6691),i(5647),i(4658),i(719),i(2557),i(2489),i(714),i(6965),i(177),i(1987),i(1281),i(7790),i(2573),i(9047),i(1788),i(4429),i(4850),i(2849),i(3155),i(682),i(1417),i(1128),i(3812),i(7240),i(5796),i(8061),i(6148),i(5938),i(7787)}()}(); \ No newline at end of file diff --git a/assets/build/js/acf-internal-post-type.js b/assets/build/js/acf-internal-post-type.js new file mode 100644 index 0000000..542ee5d --- /dev/null +++ b/assets/build/js/acf-internal-post-type.js @@ -0,0 +1,396 @@ +/******/ (function() { // webpackBootstrap +/******/ var __webpack_modules__ = ({ + +/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-internal-post-type.js": +/*!*********************************************************************************!*\ + !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-internal-post-type.js ***! + \*********************************************************************************/ +/***/ (function() { + +(function ($, undefined) { + /** + * internalPostTypeSettingsManager + * + * Model for handling events in the settings metaboxes of internal post types + * + * @since 6.1 + */ + const internalPostTypeSettingsManager = new acf.Model({ + id: 'internalPostTypeSettingsManager', + wait: 'ready', + events: { + 'blur .acf_slugify_to_key': 'onChangeSlugify', + 'blur .acf_singular_label': 'onChangeSingularLabel', + 'blur .acf_plural_label': 'onChangePluralLabel', + 'change .acf_hierarchical_switch': 'onChangeHierarchical', + 'click .acf-regenerate-labels': 'onClickRegenerateLabels', + 'click .acf-clear-labels': 'onClickClearLabels', + 'change .rewrite_slug_field': 'onChangeURLSlug', + 'keyup .rewrite_slug_field': 'onChangeURLSlug' + }, + onChangeSlugify: function (e, $el) { + const name = $el.val(); + const $keyInput = $('.acf_slugified_key'); + + // generate field key. + if ($keyInput.val().trim() == '') { + let slug = acf.strSanitize(name.trim()).replaceAll('_', '-'); + slug = acf.applyFilters('generate_internal_post_type_name', slug, this); + if ('taxonomy' === acf.get('screen')) { + $keyInput.val(slug.substring(0, 32)); + return; + } + $keyInput.val(slug.substring(0, 20)); + } + }, + initialize: function () { + // check we should init. + if (!['taxonomy', 'post_type'].includes(acf.get('screen'))) return; + + // select2 + const template = function (selection) { + if ('undefined' === typeof selection.element) { + return selection; + } + const $parentSelect = $(selection.element.parentElement); + const $selection = $(''); + $selection.html(acf.escHtml(selection.element.innerHTML)); + let isDefault = false; + if ($parentSelect.filter('.acf-taxonomy-manage_terms, .acf-taxonomy-edit_terms, .acf-taxonomy-delete_terms').length && selection.id === 'manage_categories') { + isDefault = true; + } else if ($parentSelect.filter('.acf-taxonomy-assign_terms').length && selection.id === 'edit_posts') { + isDefault = true; + } else if (selection.id === 'taxonomy_key' || selection.id === 'post_type_key' || selection.id === 'default') { + isDefault = true; + } + if (isDefault) { + $selection.append('' + acf.__('Default') + ''); + } + $selection.data('element', selection.element); + return $selection; + }; + acf.newSelect2($('select.query_var'), { + field: false, + templateSelection: template, + templateResult: template + }); + acf.newSelect2($('select.acf-taxonomy-manage_terms'), { + field: false, + templateSelection: template, + templateResult: template + }); + acf.newSelect2($('select.acf-taxonomy-edit_terms'), { + field: false, + templateSelection: template, + templateResult: template + }); + acf.newSelect2($('select.acf-taxonomy-delete_terms'), { + field: false, + templateSelection: template, + templateResult: template + }); + acf.newSelect2($('select.acf-taxonomy-assign_terms'), { + field: false, + templateSelection: template, + templateResult: template + }); + acf.newSelect2($('select.meta_box'), { + field: false, + templateSelection: template, + templateResult: template + }); + const permalinkRewrite = acf.newSelect2($('select.permalink_rewrite'), { + field: false, + templateSelection: template, + templateResult: template + }); + $('.rewrite_slug_field').trigger('change'); + permalinkRewrite.on('change', function (e) { + $('.rewrite_slug_field').trigger('change'); + }); + }, + onChangeURLSlug: function (e, $el) { + const $field = $('div.acf-field.acf-field-permalink-rewrite'); + const rewriteType = $field.find('select').find('option:selected').val(); + const originalInstructions = $field.data(rewriteType + '_instructions'); + const siteURL = $field.data('site_url'); + const $permalinkDesc = $field.find('p.description').first(); + if (rewriteType === 'taxonomy_key' || rewriteType === 'post_type_key') { + var slugvalue = $('.acf_slugified_key').val().trim(); + } else { + var slugvalue = $el.val().trim(); + } + if (!slugvalue.length) slugvalue = '{slug}'; + $permalinkDesc.html($('' + originalInstructions + '').text().replace('{slug}', '' + $('' + siteURL + '/' + slugvalue + '').text() + '')); + }, + onChangeSingularLabel: function (e, $el) { + const label = $el.val(); + this.updateLabels(label, 'singular', false); + }, + onChangePluralLabel: function (e, $el) { + const label = $el.val(); + this.updateLabels(label, 'plural', false); + }, + onChangeHierarchical: function (e, $el) { + const hierarchical = $el.is(':checked'); + if ('taxonomy' === acf.get('screen')) { + let text = $('.acf-field-meta-box').data('tags_meta_box'); + if (hierarchical) { + text = $('.acf-field-meta-box').data('categories_meta_box'); + } + $('#acf_taxonomy-meta_box').find('option:first').text(text).trigger('change'); + } + this.updatePlaceholders(hierarchical); + }, + onClickRegenerateLabels: function (e, $el) { + this.updateLabels($('.acf_singular_label').val(), 'singular', true); + this.updateLabels($('.acf_plural_label').val(), 'plural', true); + }, + onClickClearLabels: function (e, $el) { + this.clearLabels(); + }, + updateLabels(label, type, force) { + $('[data-label][data-replace="' + type + '"').each((index, element) => { + var $input = $(element).find('input[type="text"]').first(); + if (!force && $input.val() != '') return; + if (label == '') return; + $input.val($(element).data('transform') === 'lower' ? $(element).data('label').replace('%s', label.toLowerCase()) : $(element).data('label').replace('%s', label)); + }); + }, + clearLabels() { + $('[data-label]').each((index, element) => { + $(element).find('input[type="text"]').first().val(''); + }); + }, + updatePlaceholders(heirarchical) { + if (acf.get('screen') == 'post_type') { + var singular = acf.__('Post'); + var plural = acf.__('Posts'); + if (heirarchical) { + singular = acf.__('Page'); + plural = acf.__('Pages'); + } + } else { + var singular = acf.__('Tag'); + var plural = acf.__('Tags'); + if (heirarchical) { + singular = acf.__('Category'); + plural = acf.__('Categories'); + } + } + $('[data-label]').each((index, element) => { + var useReplacement = $(element).data('replace') === 'plural' ? plural : singular; + if ($(element).data('transform') === 'lower') { + useReplacement = useReplacement.toLowerCase(); + } + $(element).find('input[type="text"]').first().attr('placeholder', $(element).data('label').replace('%s', useReplacement)); + }); + } + }); + + /** + * advancedSettingsMetaboxManager + * + * Screen options functionality for internal post types + * + * @since 6.1 + */ + const advancedSettingsMetaboxManager = new acf.Model({ + id: 'advancedSettingsMetaboxManager', + wait: 'load', + events: { + 'change .acf-advanced-settings-toggle': 'onToggleACFAdvancedSettings', + 'change #screen-options-wrap #acf-advanced-settings-hide': 'onToggleScreenOptionsAdvancedSettings' + }, + initialize: function () { + this.$screenOptionsToggle = $('#screen-options-wrap #acf-advanced-settings-hide:first'); + this.$ACFAdvancedToggle = $('.acf-advanced-settings-toggle:first'); + this.render(); + }, + isACFAdvancedSettingsChecked: function () { + // Screen option is hidden by filter. + if (!this.$ACFAdvancedToggle.length) { + return false; + } + return this.$ACFAdvancedToggle.prop('checked'); + }, + isScreenOptionsAdvancedSettingsChecked: function () { + // Screen option is hidden by filter. + if (!this.$screenOptionsToggle.length) { + return false; + } + return this.$screenOptionsToggle.prop('checked'); + }, + onToggleScreenOptionsAdvancedSettings: function () { + if (this.isScreenOptionsAdvancedSettingsChecked()) { + if (!this.isACFAdvancedSettingsChecked()) { + this.$ACFAdvancedToggle.trigger('click'); + } + } else { + if (this.isACFAdvancedSettingsChecked()) { + this.$ACFAdvancedToggle.trigger('click'); + } + } + }, + onToggleACFAdvancedSettings: function () { + if (this.isACFAdvancedSettingsChecked()) { + if (!this.isScreenOptionsAdvancedSettingsChecked()) { + this.$screenOptionsToggle.trigger('click'); + } + } else { + if (this.isScreenOptionsAdvancedSettingsChecked()) { + this.$screenOptionsToggle.trigger('click'); + } + } + }, + render: function () { + // On render, sync screen options to ACF's setting. + this.onToggleACFAdvancedSettings(); + } + }); + const linkFieldGroupsManger = new acf.Model({ + id: 'linkFieldGroupsManager', + events: { + 'click .acf-link-field-groups': 'linkFieldGroups' + }, + linkFieldGroups: function () { + let popup = false; + const step1 = function () { + $.ajax({ + url: acf.get('ajaxurl'), + data: acf.prepareForAjax({ + action: 'acf/link_field_groups' + }), + type: 'post', + dataType: 'json', + success: step2 + }); + }; + const step2 = function (response) { + popup = acf.newPopup({ + title: response.data.title, + content: response.data.content, + width: '600px' + }); + popup.$el.addClass('acf-link-field-groups-popup'); + popup.on('submit', 'form', step3); + }; + const step3 = function (e) { + e.preventDefault(); + const $select = popup.$('select'); + const val = $select.val(); + if (!val.length) { + $select.focus(); + return; + } + acf.startButtonLoading(popup.$('.button')); + + // get HTML + $.ajax({ + url: acf.get('ajaxurl'), + data: acf.prepareForAjax({ + action: 'acf/link_field_groups', + field_groups: val + }), + type: 'post', + dataType: 'json', + success: step4 + }); + }; + const step4 = function (response) { + popup.content(response.data.content); + if (wp.a11y && wp.a11y.speak && acf.__) { + wp.a11y.speak(acf.__('Field groups linked successfully.'), 'polite'); + } + popup.$('button.acf-close-popup').focus(); + }; + step1(); + } + }); +})(jQuery); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat get default export */ +/******/ !function() { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function() { return module['default']; } : +/******/ function() { return module; }; +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ }(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ !function() { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = function(exports, definition) { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ }(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ !function() { +/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); } +/******/ }(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ !function() { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ }(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be in strict mode. +!function() { +"use strict"; +/*!********************************************************************************!*\ + !*** ./src/advanced-custom-fields-pro/assets/src/js/acf-internal-post-type.js ***! + \********************************************************************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _acf_internal_post_type_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_acf-internal-post-type.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-internal-post-type.js"); +/* harmony import */ var _acf_internal_post_type_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_acf_internal_post_type_js__WEBPACK_IMPORTED_MODULE_0__); + +}(); +/******/ })() +; +//# sourceMappingURL=acf-internal-post-type.js.map \ No newline at end of file diff --git a/assets/build/js/acf-internal-post-type.js.map b/assets/build/js/acf-internal-post-type.js.map new file mode 100644 index 0000000..a17613d --- /dev/null +++ b/assets/build/js/acf-internal-post-type.js.map @@ -0,0 +1 @@ +{"version":3,"file":"acf-internal-post-type.js","mappings":"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","sources":["webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_acf-internal-post-type.js","webpack://advanced-custom-fields-pro/webpack/bootstrap","webpack://advanced-custom-fields-pro/webpack/runtime/compat get default export","webpack://advanced-custom-fields-pro/webpack/runtime/define property getters","webpack://advanced-custom-fields-pro/webpack/runtime/hasOwnProperty shorthand","webpack://advanced-custom-fields-pro/webpack/runtime/make namespace object","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/acf-internal-post-type.js"],"sourcesContent":["( function ( $, undefined ) {\n\t/**\n\t * internalPostTypeSettingsManager\n\t *\n\t * Model for handling events in the settings metaboxes of internal post types\n\t *\n\t * @since\t6.1\n\t */\n\tconst internalPostTypeSettingsManager = new acf.Model( {\n\t\tid: 'internalPostTypeSettingsManager',\n\t\twait: 'ready',\n\t\tevents: {\n\t\t\t'blur .acf_slugify_to_key': 'onChangeSlugify',\n\t\t\t'blur .acf_singular_label': 'onChangeSingularLabel',\n\t\t\t'blur .acf_plural_label': 'onChangePluralLabel',\n\t\t\t'change .acf_hierarchical_switch': 'onChangeHierarchical',\n\t\t\t'click .acf-regenerate-labels': 'onClickRegenerateLabels',\n\t\t\t'click .acf-clear-labels': 'onClickClearLabels',\n\t\t\t'change .rewrite_slug_field': 'onChangeURLSlug',\n\t\t\t'keyup .rewrite_slug_field': 'onChangeURLSlug',\n\t\t},\n\t\tonChangeSlugify: function ( e, $el ) {\n\t\t\tconst name = $el.val();\n\t\t\tconst $keyInput = $( '.acf_slugified_key' );\n\n\t\t\t// generate field key.\n\t\t\tif ( $keyInput.val().trim() == '' ) {\n\t\t\t\tlet slug = acf\n\t\t\t\t\t.strSanitize( name.trim() )\n\t\t\t\t\t.replaceAll( '_', '-' );\n\t\t\t\tslug = acf.applyFilters(\n\t\t\t\t\t'generate_internal_post_type_name',\n\t\t\t\t\tslug,\n\t\t\t\t\tthis\n\t\t\t\t);\n\t\t\t\tif( 'taxonomy' === acf.get( 'screen' ) ) {\n\t\t\t\t\t$keyInput.val( slug.substring( 0, 32 ) );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t$keyInput.val( slug.substring( 0, 20 ) );\n\t\t\t}\n\t\t},\n\t\tinitialize: function () {\n\t\t\t// check we should init.\n\t\t\tif ( ! [ 'taxonomy', 'post_type' ].includes( acf.get( 'screen' ) ) )\n\t\t\t\treturn;\n\n\t\t\t// select2\n\t\t\tconst template = function ( selection ) {\n\t\t\t\tif ( 'undefined' === typeof selection.element ) {\n\t\t\t\t\treturn selection;\n\t\t\t\t}\n\n\t\t\t\tconst $parentSelect = $( selection.element.parentElement );\n\t\t\t\tconst $selection = $( '' );\n\t\t\t\t$selection.html( acf.escHtml( selection.element.innerHTML ) );\n\n\t\t\t\tlet isDefault = false;\n\n\t\t\t\tif ( $parentSelect.filter( '.acf-taxonomy-manage_terms, .acf-taxonomy-edit_terms, .acf-taxonomy-delete_terms' ).length &&\n\t\t\t\t\tselection.id === 'manage_categories'\n\t\t\t\t) {\n\t\t\t\t\tisDefault = true;\n\t\t\t\t} else if ( $parentSelect.filter( '.acf-taxonomy-assign_terms' ).length && selection.id === 'edit_posts' ) {\n\t\t\t\t\tisDefault = true;\n\t\t\t\t} else if (\n\t\t\t\t\tselection.id === 'taxonomy_key' ||\n\t\t\t\t\tselection.id === 'post_type_key' ||\n\t\t\t\t\tselection.id === 'default'\n\t\t\t\t) {\n\t\t\t\t\tisDefault = true;\n\t\t\t\t}\n\n\t\t\t\tif ( isDefault ) {\n\t\t\t\t\t$selection.append(\n\t\t\t\t\t\t'' +\n\t\t\t\t\t\tacf.__( 'Default' ) +\n\t\t\t\t\t\t''\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t$selection.data( 'element', selection.element );\n\t\t\t\treturn $selection;\n\t\t\t};\n\n\t\t\tacf.newSelect2( $( 'select.query_var' ), {\n\t\t\t\tfield: false,\n\t\t\t\ttemplateSelection: template,\n\t\t\t\ttemplateResult: template,\n\t\t\t} );\n\n\t\t\tacf.newSelect2( $( 'select.acf-taxonomy-manage_terms' ), {\n\t\t\t\tfield: false,\n\t\t\t\ttemplateSelection: template,\n\t\t\t\ttemplateResult: template,\n\t\t\t} );\n\n\t\t\tacf.newSelect2( $( 'select.acf-taxonomy-edit_terms' ), {\n\t\t\t\tfield: false,\n\t\t\t\ttemplateSelection: template,\n\t\t\t\ttemplateResult: template,\n\t\t\t} );\n\n\t\t\tacf.newSelect2( $( 'select.acf-taxonomy-delete_terms' ), {\n\t\t\t\tfield: false,\n\t\t\t\ttemplateSelection: template,\n\t\t\t\ttemplateResult: template,\n\t\t\t} );\n\n\t\t\tacf.newSelect2( $( 'select.acf-taxonomy-assign_terms' ), {\n\t\t\t\tfield: false,\n\t\t\t\ttemplateSelection: template,\n\t\t\t\ttemplateResult: template,\n\t\t\t} );\n\n\t\t\tacf.newSelect2( $( 'select.meta_box' ), {\n\t\t\t\tfield: false,\n\t\t\t\ttemplateSelection: template,\n\t\t\t\ttemplateResult: template,\n\t\t\t} );\n\n\t\t\tconst permalinkRewrite = acf.newSelect2(\n\t\t\t\t$( 'select.permalink_rewrite' ),\n\t\t\t\t{\n\t\t\t\t\tfield: false,\n\t\t\t\t\ttemplateSelection: template,\n\t\t\t\t\ttemplateResult: template,\n\t\t\t\t}\n\t\t\t);\n\n\t\t\t$( '.rewrite_slug_field' ).trigger( 'change' );\n\t\t\tpermalinkRewrite.on( 'change', function ( e ) {\n\t\t\t\t$( '.rewrite_slug_field' ).trigger( 'change' );\n\t\t\t} );\n\t\t},\n\t\tonChangeURLSlug: function ( e, $el ) {\n\t\t\tconst $field = $( 'div.acf-field.acf-field-permalink-rewrite' );\n\t\t\tconst rewriteType = $field\n\t\t\t\t.find( 'select' )\n\t\t\t\t.find( 'option:selected' )\n\t\t\t\t.val();\n\t\t\tconst originalInstructions = $field.data(\n\t\t\t\trewriteType + '_instructions'\n\t\t\t);\n\t\t\tconst siteURL = $field.data( 'site_url' );\n\t\t\tconst $permalinkDesc = $field.find( 'p.description' ).first();\n\n\t\t\tif (\n\t\t\t\trewriteType === 'taxonomy_key' ||\n\t\t\t\trewriteType === 'post_type_key'\n\t\t\t) {\n\t\t\t\tvar slugvalue = $( '.acf_slugified_key' ).val().trim();\n\t\t\t} else {\n\t\t\t\tvar slugvalue = $el.val().trim();\n\t\t\t}\n\t\t\tif ( ! slugvalue.length ) slugvalue = '{slug}';\n\n\t\t\t$permalinkDesc.html(\n\t\t\t\t$( '' + originalInstructions + '' )\n\t\t\t\t\t.text()\n\t\t\t\t\t.replace(\n\t\t\t\t\t\t'{slug}',\n\t\t\t\t\t\t'' +\n\t\t\t\t\t\t\t$(\n\t\t\t\t\t\t\t\t'' + siteURL + '/' + slugvalue + ''\n\t\t\t\t\t\t\t).text() +\n\t\t\t\t\t\t\t''\n\t\t\t\t\t)\n\t\t\t);\n\t\t},\n\t\tonChangeSingularLabel: function ( e, $el ) {\n\t\t\tconst label = $el.val();\n\t\t\tthis.updateLabels( label, 'singular', false );\n\t\t},\n\t\tonChangePluralLabel: function ( e, $el ) {\n\t\t\tconst label = $el.val();\n\t\t\tthis.updateLabels( label, 'plural', false );\n\t\t},\n\t\tonChangeHierarchical: function ( e, $el ) {\n\t\t\tconst hierarchical = $el.is( ':checked' );\n\n\t\t\tif ( 'taxonomy' === acf.get( 'screen' ) ) {\n\t\t\t\tlet text = $( '.acf-field-meta-box' ).data( 'tags_meta_box' );\n\n\t\t\t\tif ( hierarchical ) {\n\t\t\t\t\ttext = $( '.acf-field-meta-box' ).data(\n\t\t\t\t\t\t'categories_meta_box'\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t$( '#acf_taxonomy-meta_box' )\n\t\t\t\t\t.find( 'option:first' )\n\t\t\t\t\t.text( text )\n\t\t\t\t\t.trigger( 'change' );\n\t\t\t}\n\n\t\t\tthis.updatePlaceholders( hierarchical );\n\t\t},\n\t\tonClickRegenerateLabels: function ( e, $el ) {\n\t\t\tthis.updateLabels(\n\t\t\t\t$( '.acf_singular_label' ).val(),\n\t\t\t\t'singular',\n\t\t\t\ttrue\n\t\t\t);\n\t\t\tthis.updateLabels( $( '.acf_plural_label' ).val(), 'plural', true );\n\t\t},\n\t\tonClickClearLabels: function ( e, $el ) {\n\t\t\tthis.clearLabels();\n\t\t},\n\t\tupdateLabels( label, type, force ) {\n\t\t\t$( '[data-label][data-replace=\"' + type + '\"' ).each(\n\t\t\t\t( index, element ) => {\n\t\t\t\t\tvar $input = $( element )\n\t\t\t\t\t\t.find( 'input[type=\"text\"]' )\n\t\t\t\t\t\t.first();\n\t\t\t\t\tif ( ! force && $input.val() != '' ) return;\n\t\t\t\t\tif ( label == '' ) return;\n\t\t\t\t\t$input.val(\n\t\t\t\t\t\t$( element ).data( 'transform' ) === 'lower'\n\t\t\t\t\t\t\t? $( element )\n\t\t\t\t\t\t\t\t\t.data( 'label' )\n\t\t\t\t\t\t\t\t\t.replace( '%s', label.toLowerCase() )\n\t\t\t\t\t\t\t: $( element )\n\t\t\t\t\t\t\t\t\t.data( 'label' )\n\t\t\t\t\t\t\t\t\t.replace( '%s', label )\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t);\n\t\t},\n\t\tclearLabels() {\n\t\t\t$( '[data-label]' ).each( ( index, element ) => {\n\t\t\t\t$( element ).find( 'input[type=\"text\"]' ).first().val( '' );\n\t\t\t} );\n\t\t},\n\t\tupdatePlaceholders( heirarchical ) {\n\t\t\tif ( acf.get( 'screen' ) == 'post_type' ) {\n\t\t\t\tvar singular = acf.__( 'Post' );\n\t\t\t\tvar plural = acf.__( 'Posts' );\n\t\t\t\tif ( heirarchical ) {\n\t\t\t\t\tsingular = acf.__( 'Page' );\n\t\t\t\t\tplural = acf.__( 'Pages' );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tvar singular = acf.__( 'Tag' );\n\t\t\t\tvar plural = acf.__( 'Tags' );\n\t\t\t\tif ( heirarchical ) {\n\t\t\t\t\tsingular = acf.__( 'Category' );\n\t\t\t\t\tplural = acf.__( 'Categories' );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t$( '[data-label]' ).each( ( index, element ) => {\n\t\t\t\tvar useReplacement =\n\t\t\t\t\t$( element ).data( 'replace' ) === 'plural'\n\t\t\t\t\t\t? plural\n\t\t\t\t\t\t: singular;\n\t\t\t\tif ( $( element ).data( 'transform' ) === 'lower' ) {\n\t\t\t\t\tuseReplacement = useReplacement.toLowerCase();\n\t\t\t\t}\n\t\t\t\t$( element )\n\t\t\t\t\t.find( 'input[type=\"text\"]' )\n\t\t\t\t\t.first()\n\t\t\t\t\t.attr(\n\t\t\t\t\t\t'placeholder',\n\t\t\t\t\t\t$( element )\n\t\t\t\t\t\t\t.data( 'label' )\n\t\t\t\t\t\t\t.replace( '%s', useReplacement )\n\t\t\t\t\t);\n\t\t\t} );\n\t\t},\n\t} );\n\n\t/**\n\t * advancedSettingsMetaboxManager\n\t *\n\t * Screen options functionality for internal post types\n\t *\n\t * @since\t6.1\n\t */\n\tconst advancedSettingsMetaboxManager = new acf.Model( {\n\t\tid: 'advancedSettingsMetaboxManager',\n\t\twait: 'load',\n\t\tevents: {\n\t\t\t'change .acf-advanced-settings-toggle':\n\t\t\t\t'onToggleACFAdvancedSettings',\n\t\t\t'change #screen-options-wrap #acf-advanced-settings-hide':\n\t\t\t\t'onToggleScreenOptionsAdvancedSettings',\n\t\t},\n\n\t\tinitialize: function () {\n\t\t\tthis.$screenOptionsToggle = $(\n\t\t\t\t'#screen-options-wrap #acf-advanced-settings-hide:first'\n\t\t\t);\n\t\t\tthis.$ACFAdvancedToggle = $(\n\t\t\t\t'.acf-advanced-settings-toggle:first'\n\t\t\t);\n\t\t\tthis.render();\n\t\t},\n\n\t\tisACFAdvancedSettingsChecked: function () {\n\t\t\t// Screen option is hidden by filter.\n\t\t\tif ( ! this.$ACFAdvancedToggle.length ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn this.$ACFAdvancedToggle.prop( 'checked' );\n\t\t},\n\n\t\tisScreenOptionsAdvancedSettingsChecked: function () {\n\t\t\t// Screen option is hidden by filter.\n\t\t\tif ( ! this.$screenOptionsToggle.length ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn this.$screenOptionsToggle.prop( 'checked' );\n\t\t},\n\n\t\tonToggleScreenOptionsAdvancedSettings: function () {\n\t\t\tif ( this.isScreenOptionsAdvancedSettingsChecked() ) {\n\t\t\t\tif ( ! this.isACFAdvancedSettingsChecked() ) {\n\t\t\t\t\tthis.$ACFAdvancedToggle.trigger( 'click' );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ( this.isACFAdvancedSettingsChecked() ) {\n\t\t\t\t\tthis.$ACFAdvancedToggle.trigger( 'click' );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tonToggleACFAdvancedSettings: function () {\n\t\t\tif ( this.isACFAdvancedSettingsChecked() ) {\n\t\t\t\tif ( ! this.isScreenOptionsAdvancedSettingsChecked() ) {\n\t\t\t\t\tthis.$screenOptionsToggle.trigger( 'click' );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ( this.isScreenOptionsAdvancedSettingsChecked() ) {\n\t\t\t\t\tthis.$screenOptionsToggle.trigger( 'click' );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\trender: function () {\n\t\t\t// On render, sync screen options to ACF's setting.\n\t\t\tthis.onToggleACFAdvancedSettings();\n\t\t},\n\t} );\n\n\tconst linkFieldGroupsManger = new acf.Model( {\n\t\tid: 'linkFieldGroupsManager',\n\t\tevents: {\n\t\t\t'click .acf-link-field-groups': 'linkFieldGroups',\n\t\t},\n\n\t\tlinkFieldGroups: function () {\n\t\t\tlet popup = false;\n\n\t\t\tconst step1 = function () {\n\t\t\t\t$.ajax( {\n\t\t\t\t\turl: acf.get( 'ajaxurl' ),\n\t\t\t\t\tdata: acf.prepareForAjax( {\n\t\t\t\t\t\taction: 'acf/link_field_groups',\n\t\t\t\t\t} ),\n\t\t\t\t\ttype: 'post',\n\t\t\t\t\tdataType: 'json',\n\t\t\t\t\tsuccess: step2,\n\t\t\t\t} );\n\t\t\t};\n\t\t\tconst step2 = function ( response ) {\n\t\t\t\tpopup = acf.newPopup( {\n\t\t\t\t\ttitle: response.data.title,\n\t\t\t\t\tcontent: response.data.content,\n\t\t\t\t\twidth: '600px',\n\t\t\t\t} );\n\n\t\t\t\tpopup.$el.addClass( 'acf-link-field-groups-popup' );\n\t\t\t\tpopup.on( 'submit', 'form', step3 );\n\t\t\t};\n\t\t\tconst step3 = function ( e ) {\n\t\t\t\te.preventDefault();\n\n\t\t\t\tconst $select = popup.$( 'select' );\n\t\t\t\tconst val = $select.val();\n\n\t\t\t\tif ( ! val.length ) {\n\t\t\t\t\t$select.focus();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tacf.startButtonLoading( popup.$( '.button' ) );\n\n\t\t\t\t// get HTML\n\t\t\t\t$.ajax( {\n\t\t\t\t\turl: acf.get( 'ajaxurl' ),\n\t\t\t\t\tdata: acf.prepareForAjax( {\n\t\t\t\t\t\taction: 'acf/link_field_groups',\n\t\t\t\t\t\tfield_groups: val,\n\t\t\t\t\t} ),\n\t\t\t\t\ttype: 'post',\n\t\t\t\t\tdataType: 'json',\n\t\t\t\t\tsuccess: step4,\n\t\t\t\t} );\n\t\t\t};\n\t\t\tconst step4 = function ( response ) {\n\t\t\t\tpopup.content( response.data.content );\n\n\t\t\t\tif ( wp.a11y && wp.a11y.speak && acf.__ ) {\n\t\t\t\t\twp.a11y.speak(\n\t\t\t\t\t\tacf.__( 'Field groups linked successfully.' ),\n\t\t\t\t\t\t'polite'\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tpopup.$( 'button.acf-close-popup' ).focus();\n\t\t\t};\n\n\t\t\tstep1();\n\t\t},\n\t} );\n} )( jQuery );\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import './_acf-internal-post-type.js';"],"names":["$","undefined","internalPostTypeSettingsManager","acf","Model","id","wait","events","onChangeSlugify","e","$el","name","val","$keyInput","trim","slug","strSanitize","replaceAll","applyFilters","get","substring","initialize","includes","template","selection","element","$parentSelect","parentElement","$selection","html","escHtml","innerHTML","isDefault","filter","length","append","__","data","newSelect2","field","templateSelection","templateResult","permalinkRewrite","trigger","on","onChangeURLSlug","$field","rewriteType","find","originalInstructions","siteURL","$permalinkDesc","first","slugvalue","text","replace","onChangeSingularLabel","label","updateLabels","onChangePluralLabel","onChangeHierarchical","hierarchical","is","updatePlaceholders","onClickRegenerateLabels","onClickClearLabels","clearLabels","type","force","each","index","$input","toLowerCase","heirarchical","singular","plural","useReplacement","attr","advancedSettingsMetaboxManager","$screenOptionsToggle","$ACFAdvancedToggle","render","isACFAdvancedSettingsChecked","prop","isScreenOptionsAdvancedSettingsChecked","onToggleScreenOptionsAdvancedSettings","onToggleACFAdvancedSettings","linkFieldGroupsManger","linkFieldGroups","popup","step1","ajax","url","prepareForAjax","action","dataType","success","step2","response","newPopup","title","content","width","addClass","step3","preventDefault","$select","focus","startButtonLoading","field_groups","step4","wp","a11y","speak","jQuery"],"sourceRoot":""} \ No newline at end of file diff --git a/assets/build/js/acf-internal-post-type.min.js b/assets/build/js/acf-internal-post-type.min.js new file mode 100644 index 0000000..2ad856c --- /dev/null +++ b/assets/build/js/acf-internal-post-type.min.js @@ -0,0 +1 @@ +!function(){var e={4110:function(){var e;e=jQuery,new acf.Model({id:"internalPostTypeSettingsManager",wait:"ready",events:{"blur .acf_slugify_to_key":"onChangeSlugify","blur .acf_singular_label":"onChangeSingularLabel","blur .acf_plural_label":"onChangePluralLabel","change .acf_hierarchical_switch":"onChangeHierarchical","click .acf-regenerate-labels":"onClickRegenerateLabels","click .acf-clear-labels":"onClickClearLabels","change .rewrite_slug_field":"onChangeURLSlug","keyup .rewrite_slug_field":"onChangeURLSlug"},onChangeSlugify:function(t,a){const n=a.val(),l=e(".acf_slugified_key");if(""==l.val().trim()){let e=acf.strSanitize(n.trim()).replaceAll("_","-");if(e=acf.applyFilters("generate_internal_post_type_name",e,this),"taxonomy"===acf.get("screen"))return void l.val(e.substring(0,32));l.val(e.substring(0,20))}},initialize:function(){if(!["taxonomy","post_type"].includes(acf.get("screen")))return;const t=function(t){if(void 0===t.element)return t;const a=e(t.element.parentElement),n=e('');n.html(acf.escHtml(t.element.innerHTML));let l=!1;return a.filter(".acf-taxonomy-manage_terms, .acf-taxonomy-edit_terms, .acf-taxonomy-delete_terms").length&&"manage_categories"===t.id||a.filter(".acf-taxonomy-assign_terms").length&&"edit_posts"===t.id?l=!0:"taxonomy_key"!==t.id&&"post_type_key"!==t.id&&"default"!==t.id||(l=!0),l&&n.append(''+acf.__("Default")+""),n.data("element",t.element),n};acf.newSelect2(e("select.query_var"),{field:!1,templateSelection:t,templateResult:t}),acf.newSelect2(e("select.acf-taxonomy-manage_terms"),{field:!1,templateSelection:t,templateResult:t}),acf.newSelect2(e("select.acf-taxonomy-edit_terms"),{field:!1,templateSelection:t,templateResult:t}),acf.newSelect2(e("select.acf-taxonomy-delete_terms"),{field:!1,templateSelection:t,templateResult:t}),acf.newSelect2(e("select.acf-taxonomy-assign_terms"),{field:!1,templateSelection:t,templateResult:t}),acf.newSelect2(e("select.meta_box"),{field:!1,templateSelection:t,templateResult:t});const a=acf.newSelect2(e("select.permalink_rewrite"),{field:!1,templateSelection:t,templateResult:t});e(".rewrite_slug_field").trigger("change"),a.on("change",(function(t){e(".rewrite_slug_field").trigger("change")}))},onChangeURLSlug:function(t,a){const n=e("div.acf-field.acf-field-permalink-rewrite"),l=n.find("select").find("option:selected").val(),i=n.data(l+"_instructions"),c=n.data("site_url"),s=n.find("p.description").first();if("taxonomy_key"===l||"post_type_key"===l)var o=e(".acf_slugified_key").val().trim();else o=a.val().trim();o.length||(o="{slug}"),s.html(e(""+i+"").text().replace("{slug}",""+e(""+c+"/"+o+"").text()+""))},onChangeSingularLabel:function(e,t){const a=t.val();this.updateLabels(a,"singular",!1)},onChangePluralLabel:function(e,t){const a=t.val();this.updateLabels(a,"plural",!1)},onChangeHierarchical:function(t,a){const n=a.is(":checked");if("taxonomy"===acf.get("screen")){let t=e(".acf-field-meta-box").data("tags_meta_box");n&&(t=e(".acf-field-meta-box").data("categories_meta_box")),e("#acf_taxonomy-meta_box").find("option:first").text(t).trigger("change")}this.updatePlaceholders(n)},onClickRegenerateLabels:function(t,a){this.updateLabels(e(".acf_singular_label").val(),"singular",!0),this.updateLabels(e(".acf_plural_label").val(),"plural",!0)},onClickClearLabels:function(e,t){this.clearLabels()},updateLabels(t,a,n){e('[data-label][data-replace="'+a+'"').each(((a,l)=>{var i=e(l).find('input[type="text"]').first();(n||""==i.val())&&""!=t&&i.val("lower"===e(l).data("transform")?e(l).data("label").replace("%s",t.toLowerCase()):e(l).data("label").replace("%s",t))}))},clearLabels(){e("[data-label]").each(((t,a)=>{e(a).find('input[type="text"]').first().val("")}))},updatePlaceholders(t){if("post_type"==acf.get("screen")){var a=acf.__("Post"),n=acf.__("Posts");t&&(a=acf.__("Page"),n=acf.__("Pages"))}else a=acf.__("Tag"),n=acf.__("Tags"),t&&(a=acf.__("Category"),n=acf.__("Categories"));e("[data-label]").each(((t,l)=>{var i="plural"===e(l).data("replace")?n:a;"lower"===e(l).data("transform")&&(i=i.toLowerCase()),e(l).find('input[type="text"]').first().attr("placeholder",e(l).data("label").replace("%s",i))}))}}),new acf.Model({id:"advancedSettingsMetaboxManager",wait:"load",events:{"change .acf-advanced-settings-toggle":"onToggleACFAdvancedSettings","change #screen-options-wrap #acf-advanced-settings-hide":"onToggleScreenOptionsAdvancedSettings"},initialize:function(){this.$screenOptionsToggle=e("#screen-options-wrap #acf-advanced-settings-hide:first"),this.$ACFAdvancedToggle=e(".acf-advanced-settings-toggle:first"),this.render()},isACFAdvancedSettingsChecked:function(){return!!this.$ACFAdvancedToggle.length&&this.$ACFAdvancedToggle.prop("checked")},isScreenOptionsAdvancedSettingsChecked:function(){return!!this.$screenOptionsToggle.length&&this.$screenOptionsToggle.prop("checked")},onToggleScreenOptionsAdvancedSettings:function(){this.isScreenOptionsAdvancedSettingsChecked()?this.isACFAdvancedSettingsChecked()||this.$ACFAdvancedToggle.trigger("click"):this.isACFAdvancedSettingsChecked()&&this.$ACFAdvancedToggle.trigger("click")},onToggleACFAdvancedSettings:function(){this.isACFAdvancedSettingsChecked()?this.isScreenOptionsAdvancedSettingsChecked()||this.$screenOptionsToggle.trigger("click"):this.isScreenOptionsAdvancedSettingsChecked()&&this.$screenOptionsToggle.trigger("click")},render:function(){this.onToggleACFAdvancedSettings()}}),new acf.Model({id:"linkFieldGroupsManager",events:{"click .acf-link-field-groups":"linkFieldGroups"},linkFieldGroups:function(){let t=!1;const a=function(a){a.preventDefault();const l=t.$("select"),i=l.val();i.length?(acf.startButtonLoading(t.$(".button")),e.ajax({url:acf.get("ajaxurl"),data:acf.prepareForAjax({action:"acf/link_field_groups",field_groups:i}),type:"post",dataType:"json",success:n})):l.focus()},n=function(e){t.content(e.data.content),wp.a11y&&wp.a11y.speak&&acf.__&&wp.a11y.speak(acf.__("Field groups linked successfully."),"polite"),t.$("button.acf-close-popup").focus()};e.ajax({url:acf.get("ajaxurl"),data:acf.prepareForAjax({action:"acf/link_field_groups"}),type:"post",dataType:"json",success:function(e){t=acf.newPopup({title:e.data.title,content:e.data.content,width:"600px"}),t.$el.addClass("acf-link-field-groups-popup"),t.on("submit","form",a)}})}})}},t={};function a(n){var l=t[n];if(void 0!==l)return l.exports;var i=t[n]={exports:{}};return e[n](i,i.exports,a),i.exports}a.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(t,{a:t}),t},a.d=function(e,t){for(var n in t)a.o(t,n)&&!a.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},a.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},function(){"use strict";a(4110)}()}(); \ No newline at end of file diff --git a/assets/build/js/acf.js b/assets/build/js/acf.js new file mode 100644 index 0000000..9f65465 --- /dev/null +++ b/assets/build/js/acf.js @@ -0,0 +1,4458 @@ +/******/ (function() { // webpackBootstrap +/******/ var __webpack_modules__ = ({ + +/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-hooks.js": +/*!********************************************************************!*\ + !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-hooks.js ***! + \********************************************************************/ +/***/ (function() { + +(function (window, undefined) { + 'use strict'; + + /** + * Handles managing all events for whatever you plug it into. Priorities for hooks are based on lowest to highest in + * that, lowest priority hooks are fired first. + */ + var EventManager = function () { + /** + * Maintain a reference to the object scope so our public methods never get confusing. + */ + var MethodsAvailable = { + removeFilter: removeFilter, + applyFilters: applyFilters, + addFilter: addFilter, + removeAction: removeAction, + doAction: doAction, + addAction: addAction, + storage: getStorage + }; + + /** + * Contains the hooks that get registered with this EventManager. The array for storage utilizes a "flat" + * object literal such that looking up the hook utilizes the native object literal hash. + */ + var STORAGE = { + actions: {}, + filters: {} + }; + function getStorage() { + return STORAGE; + } + + /** + * Adds an action to the event manager. + * + * @param action Must contain namespace.identifier + * @param callback Must be a valid callback function before this action is added + * @param [priority=10] Used to control when the function is executed in relation to other callbacks bound to the same hook + * @param [context] Supply a value to be used for this + */ + function addAction(action, callback, priority, context) { + if (typeof action === 'string' && typeof callback === 'function') { + priority = parseInt(priority || 10, 10); + _addHook('actions', action, callback, priority, context); + } + return MethodsAvailable; + } + + /** + * Performs an action if it exists. You can pass as many arguments as you want to this function; the only rule is + * that the first argument must always be the action. + */ + function doAction( /* action, arg1, arg2, ... */ + ) { + var args = Array.prototype.slice.call(arguments); + var action = args.shift(); + if (typeof action === 'string') { + _runHook('actions', action, args); + } + return MethodsAvailable; + } + + /** + * Removes the specified action if it contains a namespace.identifier & exists. + * + * @param action The action to remove + * @param [callback] Callback function to remove + */ + function removeAction(action, callback) { + if (typeof action === 'string') { + _removeHook('actions', action, callback); + } + return MethodsAvailable; + } + + /** + * Adds a filter to the event manager. + * + * @param filter Must contain namespace.identifier + * @param callback Must be a valid callback function before this action is added + * @param [priority=10] Used to control when the function is executed in relation to other callbacks bound to the same hook + * @param [context] Supply a value to be used for this + */ + function addFilter(filter, callback, priority, context) { + if (typeof filter === 'string' && typeof callback === 'function') { + priority = parseInt(priority || 10, 10); + _addHook('filters', filter, callback, priority, context); + } + return MethodsAvailable; + } + + /** + * Performs a filter if it exists. You should only ever pass 1 argument to be filtered. The only rule is that + * the first argument must always be the filter. + */ + function applyFilters( /* filter, filtered arg, arg2, ... */ + ) { + var args = Array.prototype.slice.call(arguments); + var filter = args.shift(); + if (typeof filter === 'string') { + return _runHook('filters', filter, args); + } + return MethodsAvailable; + } + + /** + * Removes the specified filter if it contains a namespace.identifier & exists. + * + * @param filter The action to remove + * @param [callback] Callback function to remove + */ + function removeFilter(filter, callback) { + if (typeof filter === 'string') { + _removeHook('filters', filter, callback); + } + return MethodsAvailable; + } + + /** + * Removes the specified hook by resetting the value of it. + * + * @param type Type of hook, either 'actions' or 'filters' + * @param hook The hook (namespace.identifier) to remove + * @private + */ + function _removeHook(type, hook, callback, context) { + if (!STORAGE[type][hook]) { + return; + } + if (!callback) { + STORAGE[type][hook] = []; + } else { + var handlers = STORAGE[type][hook]; + var i; + if (!context) { + for (i = handlers.length; i--;) { + if (handlers[i].callback === callback) { + handlers.splice(i, 1); + } + } + } else { + for (i = handlers.length; i--;) { + var handler = handlers[i]; + if (handler.callback === callback && handler.context === context) { + handlers.splice(i, 1); + } + } + } + } + } + + /** + * Adds the hook to the appropriate storage container + * + * @param type 'actions' or 'filters' + * @param hook The hook (namespace.identifier) to add to our event manager + * @param callback The function that will be called when the hook is executed. + * @param priority The priority of this hook. Must be an integer. + * @param [context] A value to be used for this + * @private + */ + function _addHook(type, hook, callback, priority, context) { + var hookObject = { + callback: callback, + priority: priority, + context: context + }; + + // Utilize 'prop itself' : http://jsperf.com/hasownproperty-vs-in-vs-undefined/19 + var hooks = STORAGE[type][hook]; + if (hooks) { + hooks.push(hookObject); + hooks = _hookInsertSort(hooks); + } else { + hooks = [hookObject]; + } + STORAGE[type][hook] = hooks; + } + + /** + * Use an insert sort for keeping our hooks organized based on priority. This function is ridiculously faster + * than bubble sort, etc: http://jsperf.com/javascript-sort + * + * @param hooks The custom array containing all of the appropriate hooks to perform an insert sort on. + * @private + */ + function _hookInsertSort(hooks) { + var tmpHook, j, prevHook; + for (var i = 1, len = hooks.length; i < len; i++) { + tmpHook = hooks[i]; + j = i; + while ((prevHook = hooks[j - 1]) && prevHook.priority > tmpHook.priority) { + hooks[j] = hooks[j - 1]; + --j; + } + hooks[j] = tmpHook; + } + return hooks; + } + + /** + * Runs the specified hook. If it is an action, the value is not modified but if it is a filter, it is. + * + * @param type 'actions' or 'filters' + * @param hook The hook ( namespace.identifier ) to be ran. + * @param args Arguments to pass to the action/filter. If it's a filter, args is actually a single parameter. + * @private + */ + function _runHook(type, hook, args) { + var handlers = STORAGE[type][hook]; + if (!handlers) { + return type === 'filters' ? args[0] : false; + } + var i = 0, + len = handlers.length; + if (type === 'filters') { + for (; i < len; i++) { + args[0] = handlers[i].callback.apply(handlers[i].context, args); + } + } else { + for (; i < len; i++) { + handlers[i].callback.apply(handlers[i].context, args); + } + } + return type === 'filters' ? args[0] : true; + } + + // return all of the publicly available methods + return MethodsAvailable; + }; + + // instantiate + acf.hooks = new EventManager(); +})(window); + +/***/ }), + +/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-modal.js": +/*!********************************************************************!*\ + !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-modal.js ***! + \********************************************************************/ +/***/ (function() { + +(function ($, undefined) { + acf.models.Modal = acf.Model.extend({ + data: { + title: '', + content: '', + toolbar: '' + }, + events: { + 'click .acf-modal-close': 'onClickClose' + }, + setup: function (props) { + $.extend(this.data, props); + this.$el = $(); + this.render(); + }, + initialize: function () { + this.open(); + }, + render: function () { + // Extract vars. + var title = this.get('title'); + var content = this.get('content'); + var toolbar = this.get('toolbar'); + + // Create element. + var $el = $(['
                    ', '
                    ', '
                    ', '

                    ' + title + '

                    ', '', '
                    ', '
                    ' + content + '
                    ', '
                    ' + toolbar + '
                    ', '
                    ', '
                    ', '
                    '].join('')); + + // Update DOM. + if (this.$el) { + this.$el.replaceWith($el); + } + this.$el = $el; + + // Trigger action. + acf.doAction('append', $el); + }, + update: function (props) { + this.data = acf.parseArgs(props, this.data); + this.render(); + }, + title: function (title) { + this.$('.acf-modal-title h2').html(title); + }, + content: function (content) { + this.$('.acf-modal-content').html(content); + }, + toolbar: function (toolbar) { + this.$('.acf-modal-toolbar').html(toolbar); + }, + open: function () { + $('body').append(this.$el); + }, + close: function () { + this.remove(); + }, + onClickClose: function (e, $el) { + e.preventDefault(); + this.close(); + }, + /** + * Places focus within the popup. + */ + focus: function () { + this.$el.find('.acf-icon').first().trigger('focus'); + }, + /** + * Locks focus within the modal. + * + * @param {boolean} locked True to lock focus, false to unlock. + */ + lockFocusToModal: function (locked) { + let inertElement = $('#wpwrap'); + if (!inertElement.length) { + return; + } + inertElement[0].inert = locked; + inertElement.attr('aria-hidden', locked); + }, + /** + * Returns focus to the element that opened the popup + * if it still exists in the DOM. + */ + returnFocusToOrigin: function () { + if (this.data.openedBy instanceof $ && this.data.openedBy.closest('body').length > 0) { + this.data.openedBy.trigger('focus'); + } + } + }); + + /** + * Returns a new modal. + * + * @date 21/4/20 + * @since 5.9.0 + * + * @param object props The modal props. + * @return object + */ + acf.newModal = function (props) { + return new acf.models.Modal(props); + }; +})(jQuery); + +/***/ }), + +/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-model.js": +/*!********************************************************************!*\ + !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-model.js ***! + \********************************************************************/ +/***/ (function() { + +(function ($, undefined) { + // Cached regex to split keys for `addEvent`. + var delegateEventSplitter = /^(\S+)\s*(.*)$/; + + /** + * extend + * + * Helper function to correctly set up the prototype chain for subclasses + * Heavily inspired by backbone.js + * + * @date 14/12/17 + * @since 5.6.5 + * + * @param object protoProps New properties for this object. + * @return function. + */ + + var extend = function (protoProps) { + // vars + var Parent = this; + var Child; + + // The constructor function for the new subclass is either defined by you + // (the "constructor" property in your `extend` definition), or defaulted + // by us to simply call the parent constructor. + if (protoProps && protoProps.hasOwnProperty('constructor')) { + Child = protoProps.constructor; + } else { + Child = function () { + return Parent.apply(this, arguments); + }; + } + + // Add static properties to the constructor function, if supplied. + $.extend(Child, Parent); + + // Set the prototype chain to inherit from `parent`, without calling + // `parent`'s constructor function and add the prototype properties. + Child.prototype = Object.create(Parent.prototype); + $.extend(Child.prototype, protoProps); + Child.prototype.constructor = Child; + + // Set a convenience property in case the parent's prototype is needed later. + //Child.prototype.__parent__ = Parent.prototype; + + // return + return Child; + }; + + /** + * Model + * + * Base class for all inheritence + * + * @date 14/12/17 + * @since 5.6.5 + * + * @param object props + * @return function. + */ + + var Model = acf.Model = function () { + // generate uique client id + this.cid = acf.uniqueId('acf'); + + // set vars to avoid modifying prototype + this.data = $.extend(true, {}, this.data); + + // pass props to setup function + this.setup.apply(this, arguments); + + // store on element (allow this.setup to create this.$el) + if (this.$el && !this.$el.data('acf')) { + this.$el.data('acf', this); + } + + // initialize + var initialize = function () { + this.initialize(); + this.addEvents(); + this.addActions(); + this.addFilters(); + }; + + // initialize on action + if (this.wait && !acf.didAction(this.wait)) { + this.addAction(this.wait, initialize); + + // initialize now + } else { + initialize.apply(this); + } + }; + + // Attach all inheritable methods to the Model prototype. + $.extend(Model.prototype, { + // Unique model id + id: '', + // Unique client id + cid: '', + // jQuery element + $el: null, + // Data specific to this instance + data: {}, + // toggle used when changing data + busy: false, + changed: false, + // Setup events hooks + events: {}, + actions: {}, + filters: {}, + // class used to avoid nested event triggers + eventScope: '', + // action to wait until initialize + wait: false, + // action priority default + priority: 10, + /** + * get + * + * Gets a specific data value + * + * @date 14/12/17 + * @since 5.6.5 + * + * @param string name + * @return mixed + */ + + get: function (name) { + return this.data[name]; + }, + /** + * has + * + * Returns `true` if the data exists and is not null + * + * @date 14/12/17 + * @since 5.6.5 + * + * @param string name + * @return boolean + */ + + has: function (name) { + return this.get(name) != null; + }, + /** + * set + * + * Sets a specific data value + * + * @date 14/12/17 + * @since 5.6.5 + * + * @param string name + * @param mixed value + * @return this + */ + + set: function (name, value, silent) { + // bail if unchanged + var prevValue = this.get(name); + if (prevValue == value) { + return this; + } + + // set data + this.data[name] = value; + + // trigger events + if (!silent) { + this.changed = true; + this.trigger('changed:' + name, [value, prevValue]); + this.trigger('changed', [name, value, prevValue]); + } + + // return + return this; + }, + /** + * inherit + * + * Inherits the data from a jQuery element + * + * @date 14/12/17 + * @since 5.6.5 + * + * @param jQuery $el + * @return this + */ + + inherit: function (data) { + // allow jQuery + if (data instanceof jQuery) { + data = data.data(); + } + + // extend + $.extend(this.data, data); + + // return + return this; + }, + /** + * prop + * + * mimics the jQuery prop function + * + * @date 4/6/18 + * @since 5.6.9 + * + * @param type $var Description. Default. + * @return type Description. + */ + + prop: function () { + return this.$el.prop.apply(this.$el, arguments); + }, + /** + * setup + * + * Run during constructor function + * + * @date 14/12/17 + * @since 5.6.5 + * + * @param n/a + * @return n/a + */ + + setup: function (props) { + $.extend(this, props); + }, + /** + * initialize + * + * Also run during constructor function + * + * @date 14/12/17 + * @since 5.6.5 + * + * @param n/a + * @return n/a + */ + + initialize: function () {}, + /** + * addElements + * + * Adds multiple jQuery elements to this object + * + * @date 9/5/18 + * @since 5.6.9 + * + * @param type $var Description. Default. + * @return type Description. + */ + + addElements: function (elements) { + elements = elements || this.elements || null; + if (!elements || !Object.keys(elements).length) return false; + for (var i in elements) { + this.addElement(i, elements[i]); + } + }, + /** + * addElement + * + * description + * + * @date 9/5/18 + * @since 5.6.9 + * + * @param type $var Description. Default. + * @return type Description. + */ + + addElement: function (name, selector) { + this['$' + name] = this.$(selector); + }, + /** + * addEvents + * + * Adds multiple event handlers + * + * @date 14/12/17 + * @since 5.6.5 + * + * @param object events {event1 : callback, event2 : callback, etc } + * @return n/a + */ + + addEvents: function (events) { + events = events || this.events || null; + if (!events) return false; + for (var key in events) { + var match = key.match(delegateEventSplitter); + this.on(match[1], match[2], events[key]); + } + }, + /** + * removeEvents + * + * Removes multiple event handlers + * + * @date 14/12/17 + * @since 5.6.5 + * + * @param object events {event1 : callback, event2 : callback, etc } + * @return n/a + */ + + removeEvents: function (events) { + events = events || this.events || null; + if (!events) return false; + for (var key in events) { + var match = key.match(delegateEventSplitter); + this.off(match[1], match[2], events[key]); + } + }, + /** + * getEventTarget + * + * Returns a jQuery element to trigger an event on. + * + * @date 5/6/18 + * @since 5.6.9 + * + * @param jQuery $el The default jQuery element. Optional. + * @param string event The event name. Optional. + * @return jQuery + */ + + getEventTarget: function ($el, event) { + return $el || this.$el || $(document); + }, + /** + * validateEvent + * + * Returns true if the event target's closest $el is the same as this.$el + * Requires both this.el and this.$el to be defined + * + * @date 5/6/18 + * @since 5.6.9 + * + * @param type $var Description. Default. + * @return type Description. + */ + + validateEvent: function (e) { + if (this.eventScope) { + return $(e.target).closest(this.eventScope).is(this.$el); + } else { + return true; + } + }, + /** + * proxyEvent + * + * Returns a new event callback function scoped to this model + * + * @date 29/3/18 + * @since 5.6.9 + * + * @param function callback + * @return function + */ + + proxyEvent: function (callback) { + return this.proxy(function (e) { + // validate + if (!this.validateEvent(e)) { + return; + } + + // construct args + var args = acf.arrayArgs(arguments); + var extraArgs = args.slice(1); + var eventArgs = [e, $(e.currentTarget)].concat(extraArgs); + + // callback + callback.apply(this, eventArgs); + }); + }, + /** + * on + * + * Adds an event handler similar to jQuery + * Uses the instance 'cid' to namespace event + * + * @date 14/12/17 + * @since 5.6.5 + * + * @param string name + * @param string callback + * @return n/a + */ + + on: function (a1, a2, a3, a4) { + // vars + var $el, event, selector, callback, args; + + // find args + if (a1 instanceof jQuery) { + // 1. args( $el, event, selector, callback ) + if (a4) { + $el = a1; + event = a2; + selector = a3; + callback = a4; + + // 2. args( $el, event, callback ) + } else { + $el = a1; + event = a2; + callback = a3; + } + } else { + // 3. args( event, selector, callback ) + if (a3) { + event = a1; + selector = a2; + callback = a3; + + // 4. args( event, callback ) + } else { + event = a1; + callback = a2; + } + } + + // element + $el = this.getEventTarget($el); + + // modify callback + if (typeof callback === 'string') { + callback = this.proxyEvent(this[callback]); + } + + // modify event + event = event + '.' + this.cid; + + // args + if (selector) { + args = [event, selector, callback]; + } else { + args = [event, callback]; + } + + // on() + $el.on.apply($el, args); + }, + /** + * off + * + * Removes an event handler similar to jQuery + * + * @date 14/12/17 + * @since 5.6.5 + * + * @param string name + * @param string callback + * @return n/a + */ + + off: function (a1, a2, a3) { + // vars + var $el, event, selector, args; + + // find args + if (a1 instanceof jQuery) { + // 1. args( $el, event, selector ) + if (a3) { + $el = a1; + event = a2; + selector = a3; + + // 2. args( $el, event ) + } else { + $el = a1; + event = a2; + } + } else { + // 3. args( event, selector ) + if (a2) { + event = a1; + selector = a2; + + // 4. args( event ) + } else { + event = a1; + } + } + + // element + $el = this.getEventTarget($el); + + // modify event + event = event + '.' + this.cid; + + // args + if (selector) { + args = [event, selector]; + } else { + args = [event]; + } + + // off() + $el.off.apply($el, args); + }, + /** + * trigger + * + * Triggers an event similar to jQuery + * + * @date 14/12/17 + * @since 5.6.5 + * + * @param string name + * @param string callback + * @return n/a + */ + + trigger: function (name, args, bubbles) { + var $el = this.getEventTarget(); + if (bubbles) { + $el.trigger.apply($el, arguments); + } else { + $el.triggerHandler.apply($el, arguments); + } + return this; + }, + /** + * addActions + * + * Adds multiple action handlers + * + * @date 14/12/17 + * @since 5.6.5 + * + * @param object actions {action1 : callback, action2 : callback, etc } + * @return n/a + */ + + addActions: function (actions) { + actions = actions || this.actions || null; + if (!actions) return false; + for (var i in actions) { + this.addAction(i, actions[i]); + } + }, + /** + * removeActions + * + * Removes multiple action handlers + * + * @date 14/12/17 + * @since 5.6.5 + * + * @param object actions {action1 : callback, action2 : callback, etc } + * @return n/a + */ + + removeActions: function (actions) { + actions = actions || this.actions || null; + if (!actions) return false; + for (var i in actions) { + this.removeAction(i, actions[i]); + } + }, + /** + * addAction + * + * Adds an action using the wp.hooks library + * + * @date 14/12/17 + * @since 5.6.5 + * + * @param string name + * @param string callback + * @return n/a + */ + + addAction: function (name, callback, priority) { + //console.log('addAction', name, priority); + // defaults + priority = priority || this.priority; + + // modify callback + if (typeof callback === 'string') { + callback = this[callback]; + } + + // add + acf.addAction(name, callback, priority, this); + }, + /** + * removeAction + * + * Remove an action using the wp.hooks library + * + * @date 14/12/17 + * @since 5.6.5 + * + * @param string name + * @param string callback + * @return n/a + */ + + removeAction: function (name, callback) { + acf.removeAction(name, this[callback]); + }, + /** + * addFilters + * + * Adds multiple filter handlers + * + * @date 14/12/17 + * @since 5.6.5 + * + * @param object filters {filter1 : callback, filter2 : callback, etc } + * @return n/a + */ + + addFilters: function (filters) { + filters = filters || this.filters || null; + if (!filters) return false; + for (var i in filters) { + this.addFilter(i, filters[i]); + } + }, + /** + * addFilter + * + * Adds a filter using the wp.hooks library + * + * @date 14/12/17 + * @since 5.6.5 + * + * @param string name + * @param string callback + * @return n/a + */ + + addFilter: function (name, callback, priority) { + // defaults + priority = priority || this.priority; + + // modify callback + if (typeof callback === 'string') { + callback = this[callback]; + } + + // add + acf.addFilter(name, callback, priority, this); + }, + /** + * removeFilters + * + * Removes multiple filter handlers + * + * @date 14/12/17 + * @since 5.6.5 + * + * @param object filters {filter1 : callback, filter2 : callback, etc } + * @return n/a + */ + + removeFilters: function (filters) { + filters = filters || this.filters || null; + if (!filters) return false; + for (var i in filters) { + this.removeFilter(i, filters[i]); + } + }, + /** + * removeFilter + * + * Remove a filter using the wp.hooks library + * + * @date 14/12/17 + * @since 5.6.5 + * + * @param string name + * @param string callback + * @return n/a + */ + + removeFilter: function (name, callback) { + acf.removeFilter(name, this[callback]); + }, + /** + * $ + * + * description + * + * @date 16/12/17 + * @since 5.6.5 + * + * @param type $var Description. Default. + * @return type Description. + */ + + $: function (selector) { + return this.$el.find(selector); + }, + /** + * remove + * + * Removes the element and listenters + * + * @date 19/12/17 + * @since 5.6.5 + * + * @param type $var Description. Default. + * @return type Description. + */ + + remove: function () { + this.removeEvents(); + this.removeActions(); + this.removeFilters(); + this.$el.remove(); + }, + /** + * setTimeout + * + * description + * + * @date 16/1/18 + * @since 5.6.5 + * + * @param type $var Description. Default. + * @return type Description. + */ + + setTimeout: function (callback, milliseconds) { + return setTimeout(this.proxy(callback), milliseconds); + }, + /** + * time + * + * used for debugging + * + * @date 7/3/18 + * @since 5.6.9 + * + * @param type $var Description. Default. + * @return type Description. + */ + + time: function () { + console.time(this.id || this.cid); + }, + /** + * timeEnd + * + * used for debugging + * + * @date 7/3/18 + * @since 5.6.9 + * + * @param type $var Description. Default. + * @return type Description. + */ + + timeEnd: function () { + console.timeEnd(this.id || this.cid); + }, + /** + * show + * + * description + * + * @date 15/3/18 + * @since 5.6.9 + * + * @param type $var Description. Default. + * @return type Description. + */ + + show: function () { + acf.show(this.$el); + }, + /** + * hide + * + * description + * + * @date 15/3/18 + * @since 5.6.9 + * + * @param type $var Description. Default. + * @return type Description. + */ + + hide: function () { + acf.hide(this.$el); + }, + /** + * proxy + * + * Returns a new function scoped to this model + * + * @date 29/3/18 + * @since 5.6.9 + * + * @param function callback + * @return function + */ + + proxy: function (callback) { + return $.proxy(callback, this); + } + }); + + // Set up inheritance for the model + Model.extend = extend; + + // Global model storage + acf.models = {}; + + /** + * acf.getInstance + * + * This function will get an instance from an element + * + * @date 5/3/18 + * @since 5.6.9 + * + * @param type $var Description. Default. + * @return type Description. + */ + + acf.getInstance = function ($el) { + return $el.data('acf'); + }; + + /** + * acf.getInstances + * + * This function will get an array of instances from multiple elements + * + * @date 5/3/18 + * @since 5.6.9 + * + * @param type $var Description. Default. + * @return type Description. + */ + + acf.getInstances = function ($el) { + var instances = []; + $el.each(function () { + instances.push(acf.getInstance($(this))); + }); + return instances; + }; +})(jQuery); + +/***/ }), + +/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-notice.js": +/*!*********************************************************************!*\ + !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-notice.js ***! + \*********************************************************************/ +/***/ (function() { + +(function ($, undefined) { + var Notice = acf.Model.extend({ + data: { + text: '', + type: '', + timeout: 0, + dismiss: true, + target: false, + close: function () {} + }, + events: { + 'click .acf-notice-dismiss': 'onClickClose' + }, + tmpl: function () { + return '
                    '; + }, + setup: function (props) { + $.extend(this.data, props); + this.$el = $(this.tmpl()); + }, + initialize: function () { + // render + this.render(); + + // show + this.show(); + }, + render: function () { + // class + this.type(this.get('type')); + + // text + this.html('

                    ' + this.get('text') + '

                    '); + + // close + if (this.get('dismiss')) { + this.$el.append(''); + this.$el.addClass('-dismiss'); + } + + // timeout + var timeout = this.get('timeout'); + if (timeout) { + this.away(timeout); + } + }, + update: function (props) { + // update + $.extend(this.data, props); + + // re-initialize + this.initialize(); + + // refresh events + this.removeEvents(); + this.addEvents(); + }, + show: function () { + var $target = this.get('target'); + if ($target) { + $target.prepend(this.$el); + } + }, + hide: function () { + this.$el.remove(); + }, + away: function (timeout) { + this.setTimeout(function () { + acf.remove(this.$el); + }, timeout); + }, + type: function (type) { + // remove prev type + var prevType = this.get('type'); + if (prevType) { + this.$el.removeClass('-' + prevType); + } + + // add new type + this.$el.addClass('-' + type); + + // backwards compatibility + if (type == 'error') { + this.$el.addClass('acf-error-message'); + } + }, + html: function (html) { + this.$el.html(acf.escHtml(html)); + }, + text: function (text) { + this.$('p').html(acf.escHtml(text)); + }, + onClickClose: function (e, $el) { + e.preventDefault(); + this.get('close').apply(this, arguments); + this.remove(); + } + }); + acf.newNotice = function (props) { + // ensure object + if (typeof props !== 'object') { + props = { + text: props + }; + } + + // instantiate + return new Notice(props); + }; + var noticeManager = new acf.Model({ + wait: 'prepare', + priority: 1, + initialize: function () { + const $notices = $('.acf-admin-notice'); + $notices.each(function () { + // Move to avoid WP flicker. + if ($(this).length) { + $('h1:first').after($(this)); + } + if ($(this).data('persisted')) { + let dismissed = acf.getPreference('dismissed-notices'); + if (dismissed && typeof dismissed == 'object' && dismissed.includes($(this).data('persist-id'))) { + $(this).remove(); + } else { + $(this).on('click', '.notice-dismiss', function (e) { + dismissed = acf.getPreference('dismissed-notices'); + if (!dismissed || typeof dismissed != 'object') { + dismissed = []; + } + dismissed.push($(this).closest('.acf-admin-notice').data('persist-id')); + acf.setPreference('dismissed-notices', dismissed); + }); + } + } + }); + } + }); +})(jQuery); + +/***/ }), + +/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-panel.js": +/*!********************************************************************!*\ + !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-panel.js ***! + \********************************************************************/ +/***/ (function() { + +(function ($, undefined) { + var panel = new acf.Model({ + events: { + 'click .acf-panel-title': 'onClick' + }, + onClick: function (e, $el) { + e.preventDefault(); + this.toggle($el.parent()); + }, + isOpen: function ($el) { + return $el.hasClass('-open'); + }, + toggle: function ($el) { + this.isOpen($el) ? this.close($el) : this.open($el); + }, + open: function ($el) { + $el.addClass('-open'); + $el.find('.acf-panel-title i').attr('class', 'dashicons dashicons-arrow-down'); + }, + close: function ($el) { + $el.removeClass('-open'); + $el.find('.acf-panel-title i').attr('class', 'dashicons dashicons-arrow-right'); + } + }); +})(jQuery); + +/***/ }), + +/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-popup.js": +/*!********************************************************************!*\ + !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-popup.js ***! + \********************************************************************/ +/***/ (function() { + +(function ($, undefined) { + acf.models.Popup = acf.Model.extend({ + data: { + title: '', + content: '', + width: 0, + height: 0, + loading: false, + openedBy: null + }, + events: { + 'click [data-event="close"]': 'onClickClose', + 'click .acf-close-popup': 'onClickClose', + 'keydown': 'onPressEscapeClose' + }, + setup: function (props) { + $.extend(this.data, props); + this.$el = $(this.tmpl()); + }, + initialize: function () { + this.render(); + this.open(); + this.focus(); + this.lockFocusToPopup(true); + }, + tmpl: function () { + return [''].join(''); + }, + render: function () { + // Extract Vars. + var title = this.get('title'); + var content = this.get('content'); + var loading = this.get('loading'); + var width = this.get('width'); + var height = this.get('height'); + + // Update. + this.title(title); + this.content(content); + if (width) { + this.$('.acf-popup-box').css('width', width); + } + if (height) { + this.$('.acf-popup-box').css('min-height', height); + } + this.loading(loading); + + // Trigger action. + acf.doAction('append', this.$el); + }, + /** + * Places focus within the popup. + */ + focus: function () { + this.$el.find('.acf-icon').first().trigger('focus'); + }, + /** + * Locks focus within the popup. + * + * @param {boolean} locked True to lock focus, false to unlock. + */ + lockFocusToPopup: function (locked) { + let inertElement = $('#wpwrap'); + if (!inertElement.length) { + return; + } + inertElement[0].inert = locked; + inertElement.attr('aria-hidden', locked); + }, + update: function (props) { + this.data = acf.parseArgs(props, this.data); + this.render(); + }, + title: function (title) { + this.$('.title:first h3').html(title); + }, + content: function (content) { + this.$('.inner:first').html(content); + }, + loading: function (show) { + var $loading = this.$('.loading:first'); + show ? $loading.show() : $loading.hide(); + }, + open: function () { + $('body').append(this.$el); + }, + close: function () { + this.lockFocusToPopup(false); + this.returnFocusToOrigin(); + this.remove(); + }, + onClickClose: function (e, $el) { + e.preventDefault(); + this.close(); + }, + /** + * Closes the popup when the escape key is pressed. + * + * @param {KeyboardEvent} e + */ + onPressEscapeClose: function (e) { + if (e.key === 'Escape') { + this.close(); + } + }, + /** + * Returns focus to the element that opened the popup + * if it still exists in the DOM. + */ + returnFocusToOrigin: function () { + if (this.data.openedBy instanceof $ && this.data.openedBy.closest('body').length > 0) { + this.data.openedBy.trigger('focus'); + } + } + }); + + /** + * newPopup + * + * Creates a new Popup with the supplied props + * + * @date 17/12/17 + * @since 5.6.5 + * + * @param object props + * @return object + */ + + acf.newPopup = function (props) { + return new acf.models.Popup(props); + }; +})(jQuery); + +/***/ }), + +/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-tooltip.js": +/*!**********************************************************************!*\ + !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-tooltip.js ***! + \**********************************************************************/ +/***/ (function() { + +(function ($, undefined) { + acf.newTooltip = function (props) { + // ensure object + if (typeof props !== 'object') { + props = { + text: props + }; + } + + // confirmRemove + if (props.confirmRemove !== undefined) { + props.textConfirm = acf.__('Remove'); + props.textCancel = acf.__('Cancel'); + return new TooltipConfirm(props); + + // confirm + } else if (props.confirm !== undefined) { + return new TooltipConfirm(props); + + // default + } else { + return new Tooltip(props); + } + }; + var Tooltip = acf.Model.extend({ + data: { + text: '', + timeout: 0, + target: null + }, + tmpl: function () { + return '
                    '; + }, + setup: function (props) { + $.extend(this.data, props); + this.$el = $(this.tmpl()); + }, + initialize: function () { + // render + this.render(); + + // append + this.show(); + + // position + this.position(); + + // timeout + var timeout = this.get('timeout'); + if (timeout) { + setTimeout($.proxy(this.fade, this), timeout); + } + }, + update: function (props) { + $.extend(this.data, props); + this.initialize(); + }, + render: function () { + this.html(this.get('text')); + }, + show: function () { + $('body').append(this.$el); + }, + hide: function () { + this.$el.remove(); + }, + fade: function () { + // add class + this.$el.addClass('acf-fade-up'); + + // remove + this.setTimeout(function () { + this.remove(); + }, 250); + }, + html: function (html) { + this.$el.html(html); + }, + position: function () { + // vars + var $tooltip = this.$el; + var $target = this.get('target'); + if (!$target) return; + + // Reset position. + $tooltip.removeClass('right left bottom top').css({ + top: 0, + left: 0 + }); + + // Declare tollerance to edge of screen. + var tolerance = 10; + + // Find target position. + var targetWidth = $target.outerWidth(); + var targetHeight = $target.outerHeight(); + var targetTop = $target.offset().top; + var targetLeft = $target.offset().left; + + // Find tooltip position. + var tooltipWidth = $tooltip.outerWidth(); + var tooltipHeight = $tooltip.outerHeight(); + var tooltipTop = $tooltip.offset().top; // Should be 0, but WP media grid causes this to be 32 (toolbar padding). + + // Assume default top alignment. + var top = targetTop - tooltipHeight - tooltipTop; + var left = targetLeft + targetWidth / 2 - tooltipWidth / 2; + + // Check if too far left. + if (left < tolerance) { + $tooltip.addClass('right'); + left = targetLeft + targetWidth; + top = targetTop + targetHeight / 2 - tooltipHeight / 2 - tooltipTop; + + // Check if too far right. + } else if (left + tooltipWidth + tolerance > $(window).width()) { + $tooltip.addClass('left'); + left = targetLeft - tooltipWidth; + top = targetTop + targetHeight / 2 - tooltipHeight / 2 - tooltipTop; + + // Check if too far up. + } else if (top - $(window).scrollTop() < tolerance) { + $tooltip.addClass('bottom'); + top = targetTop + targetHeight - tooltipTop; + + // No colision with edges. + } else { + $tooltip.addClass('top'); + } + + // update css + $tooltip.css({ + top: top, + left: left + }); + } + }); + var TooltipConfirm = Tooltip.extend({ + data: { + text: '', + textConfirm: '', + textCancel: '', + target: null, + targetConfirm: true, + confirm: function () {}, + cancel: function () {}, + context: false + }, + events: { + 'click [data-event="cancel"]': 'onCancel', + 'click [data-event="confirm"]': 'onConfirm' + }, + addEvents: function () { + // add events + acf.Model.prototype.addEvents.apply(this); + + // vars + var $document = $(document); + var $target = this.get('target'); + + // add global 'cancel' click event + // - use timeout to avoid the current 'click' event triggering the onCancel function + this.setTimeout(function () { + this.on($document, 'click', 'onCancel'); + }); + + // add target 'confirm' click event + // - allow setting to control this feature + if (this.get('targetConfirm')) { + this.on($target, 'click', 'onConfirm'); + } + }, + removeEvents: function () { + // remove events + acf.Model.prototype.removeEvents.apply(this); + + // vars + var $document = $(document); + var $target = this.get('target'); + + // remove custom events + this.off($document, 'click'); + this.off($target, 'click'); + }, + render: function () { + // defaults + var text = this.get('text') || acf.__('Are you sure?'); + var textConfirm = this.get('textConfirm') || acf.__('Yes'); + var textCancel = this.get('textCancel') || acf.__('No'); + + // html + var html = [text, '' + textConfirm + '', '' + textCancel + ''].join(' '); + + // html + this.html(html); + + // class + this.$el.addClass('-confirm'); + }, + onCancel: function (e, $el) { + // prevent default + e.preventDefault(); + e.stopImmediatePropagation(); + + // callback + var callback = this.get('cancel'); + var context = this.get('context') || this; + callback.apply(context, arguments); + + //remove + this.remove(); + }, + onConfirm: function (e, $el) { + // Prevent event from propagating completely to allow "targetConfirm" to be clicked. + e.preventDefault(); + e.stopImmediatePropagation(); + + // callback + var callback = this.get('confirm'); + var context = this.get('context') || this; + callback.apply(context, arguments); + + //remove + this.remove(); + } + }); + + // storage + acf.models.Tooltip = Tooltip; + acf.models.TooltipConfirm = TooltipConfirm; + + /** + * tooltipManager + * + * description + * + * @date 17/4/18 + * @since 5.6.9 + * + * @param type $var Description. Default. + * @return type Description. + */ + + var tooltipHoverHelper = new acf.Model({ + tooltip: false, + events: { + 'mouseenter .acf-js-tooltip': 'showTitle', + 'mouseup .acf-js-tooltip': 'hideTitle', + 'mouseleave .acf-js-tooltip': 'hideTitle', + 'focus .acf-js-tooltip': 'showTitle', + 'blur .acf-js-tooltip': 'hideTitle', + 'keyup .acf-js-tooltip': 'onKeyUp' + }, + showTitle: function (e, $el) { + // vars + var title = $el.attr('title'); + + // bail early if no title + if (!title) { + return; + } + + // clear title to avoid default browser tooltip + $el.attr('title', ''); + + // create + if (!this.tooltip) { + this.tooltip = acf.newTooltip({ + text: title, + target: $el + }); + + // update + } else { + this.tooltip.update({ + text: title, + target: $el + }); + } + }, + hideTitle: function (e, $el) { + // hide tooltip + this.tooltip.hide(); + + // restore title + $el.attr('title', this.tooltip.get('text')); + }, + onKeyUp: function (e, $el) { + if ('Escape' === e.key) { + this.hideTitle(e, $el); + } + } + }); +})(jQuery); + +/***/ }), + +/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf.js": +/*!**************************************************************!*\ + !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf.js ***! + \**************************************************************/ +/***/ (function() { + +(function ($, undefined) { + /** + * acf + * + * description + * + * @date 14/12/17 + * @since 5.6.5 + * + * @param type $var Description. Default. + * @return type Description. + */ + + // The global acf object + var acf = {}; + + // Set as a browser global + window.acf = acf; + + /** @var object Data sent from PHP */ + acf.data = {}; + + /** + * get + * + * Gets a specific data value + * + * @date 14/12/17 + * @since 5.6.5 + * + * @param string name + * @return mixed + */ + + acf.get = function (name) { + return this.data[name] || null; + }; + + /** + * has + * + * Returns `true` if the data exists and is not null + * + * @date 14/12/17 + * @since 5.6.5 + * + * @param string name + * @return boolean + */ + + acf.has = function (name) { + return this.get(name) !== null; + }; + + /** + * set + * + * Sets a specific data value + * + * @date 14/12/17 + * @since 5.6.5 + * + * @param string name + * @param mixed value + * @return this + */ + + acf.set = function (name, value) { + this.data[name] = value; + return this; + }; + + /** + * uniqueId + * + * Returns a unique ID + * + * @date 9/11/17 + * @since 5.6.3 + * + * @param string prefix Optional prefix. + * @return string + */ + + var idCounter = 0; + acf.uniqueId = function (prefix) { + var id = ++idCounter + ''; + return prefix ? prefix + id : id; + }; + + /** + * acf.uniqueArray + * + * Returns a new array with only unique values + * Credit: https://stackoverflow.com/questions/1960473/get-all-unique-values-in-an-array-remove-duplicates + * + * @date 23/3/18 + * @since 5.6.9 + * + * @param type $var Description. Default. + * @return type Description. + */ + + acf.uniqueArray = function (array) { + function onlyUnique(value, index, self) { + return self.indexOf(value) === index; + } + return array.filter(onlyUnique); + }; + + /** + * uniqid + * + * Returns a unique ID (PHP version) + * + * @date 9/11/17 + * @since 5.6.3 + * @source http://locutus.io/php/misc/uniqid/ + * + * @param string prefix Optional prefix. + * @return string + */ + + var uniqidSeed = ''; + acf.uniqid = function (prefix, moreEntropy) { + // discuss at: http://locutus.io/php/uniqid/ + // original by: Kevin van Zonneveld (http://kvz.io) + // revised by: Kankrelune (http://www.webfaktory.info/) + // note 1: Uses an internal counter (in locutus global) to avoid collision + // example 1: var $id = uniqid() + // example 1: var $result = $id.length === 13 + // returns 1: true + // example 2: var $id = uniqid('foo') + // example 2: var $result = $id.length === (13 + 'foo'.length) + // returns 2: true + // example 3: var $id = uniqid('bar', true) + // example 3: var $result = $id.length === (23 + 'bar'.length) + // returns 3: true + if (typeof prefix === 'undefined') { + prefix = ''; + } + var retId; + var formatSeed = function (seed, reqWidth) { + seed = parseInt(seed, 10).toString(16); // to hex str + if (reqWidth < seed.length) { + // so long we split + return seed.slice(seed.length - reqWidth); + } + if (reqWidth > seed.length) { + // so short we pad + return Array(1 + (reqWidth - seed.length)).join('0') + seed; + } + return seed; + }; + if (!uniqidSeed) { + // init seed with big random int + uniqidSeed = Math.floor(Math.random() * 0x75bcd15); + } + uniqidSeed++; + retId = prefix; // start with prefix, add current milliseconds hex string + retId += formatSeed(parseInt(new Date().getTime() / 1000, 10), 8); + retId += formatSeed(uniqidSeed, 5); // add seed hex string + if (moreEntropy) { + // for more entropy we add a float lower to 10 + retId += (Math.random() * 10).toFixed(8).toString(); + } + return retId; + }; + + /** + * strReplace + * + * Performs a string replace + * + * @date 14/12/17 + * @since 5.6.5 + * + * @param string search + * @param string replace + * @param string subject + * @return string + */ + + acf.strReplace = function (search, replace, subject) { + return subject.split(search).join(replace); + }; + + /** + * strCamelCase + * + * Converts a string into camelCase + * Thanks to https://stackoverflow.com/questions/2970525/converting-any-string-into-camel-case + * + * @date 14/12/17 + * @since 5.6.5 + * + * @param string str + * @return string + */ + + acf.strCamelCase = function (str) { + var matches = str.match(/([a-zA-Z0-9]+)/g); + return matches ? matches.map(function (s, i) { + var c = s.charAt(0); + return (i === 0 ? c.toLowerCase() : c.toUpperCase()) + s.slice(1); + }).join('') : ''; + }; + + /** + * strPascalCase + * + * Converts a string into PascalCase + * Thanks to https://stackoverflow.com/questions/1026069/how-do-i-make-the-first-letter-of-a-string-uppercase-in-javascript + * + * @date 14/12/17 + * @since 5.6.5 + * + * @param string str + * @return string + */ + + acf.strPascalCase = function (str) { + var camel = acf.strCamelCase(str); + return camel.charAt(0).toUpperCase() + camel.slice(1); + }; + + /** + * acf.strSlugify + * + * Converts a string into a HTML class friendly slug + * + * @date 21/3/18 + * @since 5.6.9 + * + * @param string str + * @return string + */ + + acf.strSlugify = function (str) { + return acf.strReplace('_', '-', str.toLowerCase()); + }; + acf.strSanitize = function (str) { + // chars (https://jsperf.com/replace-foreign-characters) + var map = { + À: 'A', + Á: 'A', + Â: 'A', + Ã: 'A', + Ä: 'A', + Å: 'A', + Æ: 'AE', + Ç: 'C', + È: 'E', + É: 'E', + Ê: 'E', + Ë: 'E', + Ì: 'I', + Í: 'I', + Î: 'I', + Ï: 'I', + Ð: 'D', + Ñ: 'N', + Ò: 'O', + Ó: 'O', + Ô: 'O', + Õ: 'O', + Ö: 'O', + Ø: 'O', + Ù: 'U', + Ú: 'U', + Û: 'U', + Ü: 'U', + Ý: 'Y', + ß: 's', + à: 'a', + á: 'a', + â: 'a', + ã: 'a', + ä: 'a', + å: 'a', + æ: 'ae', + ç: 'c', + è: 'e', + é: 'e', + ê: 'e', + ë: 'e', + ì: 'i', + í: 'i', + î: 'i', + ï: 'i', + ñ: 'n', + ò: 'o', + ó: 'o', + ô: 'o', + õ: 'o', + ö: 'o', + ø: 'o', + ù: 'u', + ú: 'u', + û: 'u', + ü: 'u', + ý: 'y', + ÿ: 'y', + Ā: 'A', + ā: 'a', + Ă: 'A', + ă: 'a', + Ą: 'A', + ą: 'a', + Ć: 'C', + ć: 'c', + Ĉ: 'C', + ĉ: 'c', + Ċ: 'C', + ċ: 'c', + Č: 'C', + č: 'c', + Ď: 'D', + ď: 'd', + Đ: 'D', + đ: 'd', + Ē: 'E', + ē: 'e', + Ĕ: 'E', + ĕ: 'e', + Ė: 'E', + ė: 'e', + Ę: 'E', + ę: 'e', + Ě: 'E', + ě: 'e', + Ĝ: 'G', + ĝ: 'g', + Ğ: 'G', + ğ: 'g', + Ġ: 'G', + ġ: 'g', + Ģ: 'G', + ģ: 'g', + Ĥ: 'H', + ĥ: 'h', + Ħ: 'H', + ħ: 'h', + Ĩ: 'I', + ĩ: 'i', + Ī: 'I', + ī: 'i', + Ĭ: 'I', + ĭ: 'i', + Į: 'I', + į: 'i', + İ: 'I', + ı: 'i', + IJ: 'IJ', + ij: 'ij', + Ĵ: 'J', + ĵ: 'j', + Ķ: 'K', + ķ: 'k', + Ĺ: 'L', + ĺ: 'l', + Ļ: 'L', + ļ: 'l', + Ľ: 'L', + ľ: 'l', + Ŀ: 'L', + ŀ: 'l', + Ł: 'l', + ł: 'l', + Ń: 'N', + ń: 'n', + Ņ: 'N', + ņ: 'n', + Ň: 'N', + ň: 'n', + ʼn: 'n', + Ō: 'O', + ō: 'o', + Ŏ: 'O', + ŏ: 'o', + Ő: 'O', + ő: 'o', + Œ: 'OE', + œ: 'oe', + Ŕ: 'R', + ŕ: 'r', + Ŗ: 'R', + ŗ: 'r', + Ř: 'R', + ř: 'r', + Ś: 'S', + ś: 's', + Ŝ: 'S', + ŝ: 's', + Ş: 'S', + ş: 's', + Š: 'S', + š: 's', + Ţ: 'T', + ţ: 't', + Ť: 'T', + ť: 't', + Ŧ: 'T', + ŧ: 't', + Ũ: 'U', + ũ: 'u', + Ū: 'U', + ū: 'u', + Ŭ: 'U', + ŭ: 'u', + Ů: 'U', + ů: 'u', + Ű: 'U', + ű: 'u', + Ų: 'U', + ų: 'u', + Ŵ: 'W', + ŵ: 'w', + Ŷ: 'Y', + ŷ: 'y', + Ÿ: 'Y', + Ź: 'Z', + ź: 'z', + Ż: 'Z', + ż: 'z', + Ž: 'Z', + ž: 'z', + ſ: 's', + ƒ: 'f', + Ơ: 'O', + ơ: 'o', + Ư: 'U', + ư: 'u', + Ǎ: 'A', + ǎ: 'a', + Ǐ: 'I', + ǐ: 'i', + Ǒ: 'O', + ǒ: 'o', + Ǔ: 'U', + ǔ: 'u', + Ǖ: 'U', + ǖ: 'u', + Ǘ: 'U', + ǘ: 'u', + Ǚ: 'U', + ǚ: 'u', + Ǜ: 'U', + ǜ: 'u', + Ǻ: 'A', + ǻ: 'a', + Ǽ: 'AE', + ǽ: 'ae', + Ǿ: 'O', + ǿ: 'o', + // extra + ' ': '_', + "'": '', + '?': '', + '/': '', + '\\': '', + '.': '', + ',': '', + '`': '', + '>': '', + '<': '', + '"': '', + '[': '', + ']': '', + '|': '', + '{': '', + '}': '', + '(': '', + ')': '' + }; + + // vars + var nonWord = /\W/g; + var mapping = function (c) { + return map[c] !== undefined ? map[c] : c; + }; + + // replace + str = str.replace(nonWord, mapping); + + // lowercase + str = str.toLowerCase(); + + // return + return str; + }; + + /** + * acf.strMatch + * + * Returns the number of characters that match between two strings + * + * @date 1/2/18 + * @since 5.6.5 + * + * @param type $var Description. Default. + * @return type Description. + */ + + acf.strMatch = function (s1, s2) { + // vars + var val = 0; + var min = Math.min(s1.length, s2.length); + + // loop + for (var i = 0; i < min; i++) { + if (s1[i] !== s2[i]) { + break; + } + val++; + } + + // return + return val; + }; + + /** + * Escapes HTML entities from a string. + * + * @date 08/06/2020 + * @since 5.9.0 + * + * @param string string The input string. + * @return string + */ + acf.strEscape = function (string) { + var htmlEscapes = { + '&': '&', + '<': '<', + '>': '>', + '"': '"', + "'": ''' + }; + return ('' + string).replace(/[&<>"']/g, function (chr) { + return htmlEscapes[chr]; + }); + }; + + // Tests. + //console.log( acf.strEscape('Test 1') ); + //console.log( acf.strEscape('Test & 1') ); + //console.log( acf.strEscape('Test\'s & 1') ); + //console.log( acf.strEscape('') ); + + /** + * Unescapes HTML entities from a string. + * + * @date 08/06/2020 + * @since 5.9.0 + * + * @param string string The input string. + * @return string + */ + acf.strUnescape = function (string) { + var htmlUnescapes = { + '&': '&', + '<': '<', + '>': '>', + '"': '"', + ''': "'" + }; + return ('' + string).replace(/&|<|>|"|'/g, function (entity) { + return htmlUnescapes[entity]; + }); + }; + + // Tests. + //console.log( acf.strUnescape( acf.strEscape('Test 1') ) ); + //console.log( acf.strUnescape( acf.strEscape('Test & 1') ) ); + //console.log( acf.strUnescape( acf.strEscape('Test\'s & 1') ) ); + //console.log( acf.strUnescape( acf.strEscape('') ) ); + + /** + * Escapes HTML entities from a string. + * + * @date 08/06/2020 + * @since 5.9.0 + * + * @param string string The input string. + * @return string + */ + acf.escAttr = acf.strEscape; + + /** + * Encodes ') ); + //console.log( acf.escHtml( acf.strEscape('') ) ); + //console.log( acf.escHtml( '' ) ); + + /** + * acf.decode + * + * description + * + * @date 13/1/18 + * @since 5.6.5 + * + * @param type $var Description. Default. + * @return type Description. + */ + + acf.decode = function (string) { + return $(''); - $('body').append( $textarea ); - - // vars - var val = this.getNodeValue(); - - // open popup - wpLink.open( 'acf-link-textarea', val.url, val.title, null ); - }, - - onOpen: function(){ - - // always show title (WP will hide title if empty) - $('#wp-link-wrap').addClass('has-text-field'); - - // set inputs - var val = this.getNodeValue(); - this.setInputValue( val ); - - // Update button text. - if( val.url && wpLinkL10n ) { - $('#wp-link-submit').val( wpLinkL10n.update ); - } - }, - - close: function(){ - wpLink.close(); - }, - - onClose: function(){ - - // Bail early if no node. - // Needed due to WP triggering this event twice. - if( !this.has('node') ) { - return false; - } - - // Determine context. - var $submit = $('#wp-link-submit'); - var isSubmit = ( $submit.is(':hover') || $submit.is(':focus') ); - - // Set value - if( isSubmit ) { - var val = this.getInputValue(); - this.setNodeValue( val ); - } - - // Cleanup. - this.off('wplink-open'); - this.off('wplink-close'); - $('#acf-link-textarea').remove(); - this.set('node', null); - } - }); - -})(jQuery); - -(function($, undefined){ - - var Field = acf.Field.extend({ - - type: 'oembed', - - events: { - 'click [data-name="clear-button"]': 'onClickClear', - 'keypress .input-search': 'onKeypressSearch', - 'keyup .input-search': 'onKeyupSearch', - 'change .input-search': 'onChangeSearch' - }, - - $control: function(){ - return this.$('.acf-oembed'); - }, - - $input: function(){ - return this.$('.input-value'); - }, - - $search: function(){ - return this.$('.input-search'); - }, - - getValue: function(){ - return this.$input().val(); - }, - - getSearchVal: function(){ - return this.$search().val(); - }, - - setValue: function( val ){ - - // class - if( val ) { - this.$control().addClass('has-value'); - } else { - this.$control().removeClass('has-value'); - } - - acf.val( this.$input(), val ); - }, - - showLoading: function( show ){ - acf.showLoading( this.$('.canvas') ); - }, - - hideLoading: function(){ - acf.hideLoading( this.$('.canvas') ); - }, - - maybeSearch: function(){ - - // vars - var prevUrl = this.val(); - var url = this.getSearchVal(); - - // no value - if( !url ) { - return this.clear(); - } - - // fix missing 'http://' - causes the oembed code to error and fail - if( url.substr(0, 4) != 'http' ) { - url = 'http://' + url; - } - - // bail early if no change - if( url === prevUrl ) return; - - // clear existing timeout - var timeout = this.get('timeout'); - if( timeout ) { - clearTimeout( timeout ); - } - - // set new timeout - var callback = $.proxy(this.search, this, url); - this.set('timeout', setTimeout(callback, 300)); - - }, - - search: function( url ){ - - // ajax - var ajaxData = { - action: 'acf/fields/oembed/search', - s: url, - field_key: this.get('key') - }; - - // clear existing timeout - var xhr = this.get('xhr'); - if( xhr ) { - xhr.abort(); - } - - // loading - this.showLoading(); - - // query - var xhr = $.ajax({ - url: acf.get('ajaxurl'), - data: acf.prepareForAjax(ajaxData), - type: 'post', - dataType: 'json', - context: this, - success: function( json ){ - - // error - if( !json || !json.html ) { - json = { - url: false, - html: '' - } - } - - // update vars - this.val( json.url ); - this.$('.canvas-media').html( json.html ); - }, - complete: function(){ - this.hideLoading(); - } - }); - - this.set('xhr', xhr); - }, - - clear: function(){ - this.val(''); - this.$search().val(''); - this.$('.canvas-media').html(''); - }, - - onClickClear: function( e, $el ){ - this.clear(); - }, - - onKeypressSearch: function( e, $el ){ - if( e.which == 13 ) { - e.preventDefault(); - this.maybeSearch(); - } - }, - - onKeyupSearch: function( e, $el ){ - if( $el.val() ) { - this.maybeSearch(); - } - }, - - onChangeSearch: function( e, $el ){ - this.maybeSearch(); - } - - }); - - acf.registerFieldType( Field ); - -})(jQuery); - -(function($, undefined){ - - var Field = acf.Field.extend({ - - type: 'radio', - - events: { - 'click input[type="radio"]': 'onClick', - }, - - $control: function(){ - return this.$('.acf-radio-list'); - }, - - $input: function(){ - return this.$('input:checked'); - }, - - $inputText: function(){ - return this.$('input[type="text"]'); - }, - - getValue: function(){ - var val = this.$input().val(); - if( val === 'other' && this.get('other_choice') ) { - val = this.$inputText().val(); - } - return val; - }, - - onClick: function( e, $el ){ - - // vars - var $label = $el.parent('label'); - var selected = $label.hasClass('selected'); - var val = $el.val(); - - // remove previous selected - this.$('.selected').removeClass('selected'); - - // add active class - $label.addClass('selected'); - - // allow null - if( this.get('allow_null') && selected ) { - $label.removeClass('selected'); - $el.prop('checked', false).trigger('change'); - val = false; - } - - // other - if( this.get('other_choice') ) { - - // enable - if( val === 'other' ) { - this.$inputText().prop('disabled', false); - - // disable - } else { - this.$inputText().prop('disabled', true); - } - } - } - }); - - acf.registerFieldType( Field ); - -})(jQuery); - -(function($, undefined){ - - var Field = acf.Field.extend({ - - type: 'range', - - events: { - 'input input[type="range"]': 'onChange', - 'change input': 'onChange' - }, - - $input: function(){ - return this.$('input[type="range"]'); - }, - - $inputAlt: function(){ - return this.$('input[type="number"]'); - }, - - setValue: function( val ){ - this.busy = true; - - // Update range input (with change). - acf.val( this.$input(), val ); - - // Update alt input (without change). - // Read in input value to inherit min/max validation. - acf.val( this.$inputAlt(), this.$input().val(), true ); - - this.busy = false; - }, - - onChange: function( e, $el ){ - if( !this.busy ) { - this.setValue( $el.val() ); - } - } - }); - - acf.registerFieldType( Field ); - -})(jQuery); - -(function($, undefined){ - - var Field = acf.Field.extend({ - - type: 'relationship', - - events: { - 'keypress [data-filter]': 'onKeypressFilter', - 'change [data-filter]': 'onChangeFilter', - 'keyup [data-filter]': 'onChangeFilter', - 'click .choices-list .acf-rel-item': 'onClickAdd', - 'click [data-name="remove_item"]': 'onClickRemove', - }, - - $control: function(){ - return this.$('.acf-relationship'); - }, - - $list: function( list ) { - return this.$('.' + list + '-list'); - }, - - $listItems: function( list ) { - return this.$list( list ).find('.acf-rel-item'); - }, - - $listItem: function( list, id ) { - return this.$list( list ).find('.acf-rel-item[data-id="' + id + '"]'); - }, - - getValue: function(){ - var val = []; - this.$listItems('values').each(function(){ - val.push( $(this).data('id') ); - }); - return val.length ? val : false; - }, - - newChoice: function( props ){ - return [ - '
                  • ', - '' + props.text + '', - '
                  • ' - ].join(''); - }, - - newValue: function( props ){ - return [ - '
                  • ', - '', - '' + props.text, - '', - '', - '
                  • ' - ].join(''); - }, - - initialize: function(){ - - // Delay initialization until "interacted with" or "in view". - var delayed = this.proxy(acf.once(function(){ - - // Add sortable. - this.$list('values').sortable({ - items: 'li', - forceHelperSize: true, - forcePlaceholderSize: true, - scroll: true, - update: this.proxy(function(){ - this.$input().trigger('change'); - }) - }); - - // Avoid browser remembering old scroll position and add event. - this.$list('choices').scrollTop(0).on('scroll', this.proxy(this.onScrollChoices)); - - // Fetch choices. - this.fetch(); - - })); - - // Bind "interacted with". - this.$el.one( 'mouseover', delayed ); - this.$el.one( 'focus', 'input', delayed ); - - // Bind "in view". - acf.onceInView( this.$el, delayed ); - }, - - onScrollChoices: function(e){ - - // bail early if no more results - if( this.get('loading') || !this.get('more') ) { - return; - } - - // Scrolled to bottom - var $list = this.$list('choices'); - var scrollTop = Math.ceil( $list.scrollTop() ); - var scrollHeight = Math.ceil( $list[0].scrollHeight ); - var innerHeight = Math.ceil( $list.innerHeight() ); - var paged = this.get('paged') || 1; - if( (scrollTop + innerHeight) >= scrollHeight ) { - - // update paged - this.set('paged', (paged+1)); - - // fetch - this.fetch(); - } - }, - - onKeypressFilter: function( e, $el ){ - - // don't submit form - if( e.which == 13 ) { - e.preventDefault(); - } - }, - - onChangeFilter: function( e, $el ){ - - // vars - var val = $el.val(); - var filter = $el.data('filter'); - - // Bail early if filter has not changed - if( this.get(filter) === val ) { - return; - } - - // update attr - this.set(filter, val); - - // reset paged - this.set('paged', 1); - - // fetch - if( $el.is('select') ) { - this.fetch(); - - // search must go through timeout - } else { - this.maybeFetch(); - } - }, - - onClickAdd: function( e, $el ){ - - // vars - var val = this.val(); - var max = parseInt( this.get('max') ); - - // can be added? - if( $el.hasClass('disabled') ) { - return false; - } - - // validate - if( max > 0 && val && val.length >= max ) { - - // add notice - this.showNotice({ - text: acf.__('Maximum values reached ( {max} values )').replace('{max}', max), - type: 'warning' - }); - return false; - } - - // disable - $el.addClass('disabled'); - - // add - var html = this.newValue({ - id: $el.data('id'), - text: $el.html() - }); - this.$list('values').append( html ) - - // trigger change - this.$input().trigger('change'); - }, - - onClickRemove: function( e, $el ){ - - // Prevent default here because generic handler wont be triggered. - e.preventDefault(); - - // vars - var $span = $el.parent(); - var $li = $span.parent(); - var id = $span.data('id'); - - // remove value - $li.remove(); - - // show choice - this.$listItem('choices', id).removeClass('disabled'); - - // trigger change - this.$input().trigger('change'); - }, - - maybeFetch: function(){ - - // vars - var timeout = this.get('timeout'); - - // abort timeout - if( timeout ) { - clearTimeout( timeout ); - } - - // fetch - timeout = this.setTimeout(this.fetch, 300); - this.set('timeout', timeout); - }, - - getAjaxData: function(){ - - // load data based on element attributes - var ajaxData = this.$control().data(); - for( var name in ajaxData ) { - ajaxData[ name ] = this.get( name ); - } - - // extra - ajaxData.action = 'acf/fields/relationship/query'; - ajaxData.field_key = this.get('key'); - - // Filter. - ajaxData = acf.applyFilters( 'relationship_ajax_data', ajaxData, this ); - - // return - return ajaxData; - }, - - fetch: function(){ - - // abort XHR if this field is already loading AJAX data - var xhr = this.get('xhr'); - if( xhr ) { - xhr.abort(); - } - - // add to this.o - var ajaxData = this.getAjaxData(); - - // clear html if is new query - var $choiceslist = this.$list( 'choices' ); - if( ajaxData.paged == 1 ) { - $choiceslist.html(''); - } - - // loading - var $loading = $('
                  • ' + acf.__('Loading') + '
                  • '); - $choiceslist.append($loading); - this.set('loading', true); - - // callback - var onComplete = function(){ - this.set('loading', false); - $loading.remove(); - }; - - var onSuccess = function( json ){ - - // no results - if( !json || !json.results || !json.results.length ) { - - // prevent pagination - this.set('more', false); - - // add message - if( this.get('paged') == 1 ) { - this.$list('choices').append('
                  • ' + acf.__('No matches found') + '
                  • '); - } - - // return - return; - } - - // set more (allows pagination scroll) - this.set('more', json.more ); - - // get new results - var html = this.walkChoices(json.results); - var $html = $( html ); - - // apply .disabled to left li's - var val = this.val(); - if( val && val.length ) { - val.map(function( id ){ - $html.find('.acf-rel-item[data-id="' + id + '"]').addClass('disabled'); - }); - } - - // append - $choiceslist.append( $html ); - - // merge together groups - var $prevLabel = false; - var $prevList = false; - - $choiceslist.find('.acf-rel-label').each(function(){ - - var $label = $(this); - var $list = $label.siblings('ul'); - - if( $prevLabel && $prevLabel.text() == $label.text() ) { - $prevList.append( $list.children() ); - $(this).parent().remove(); - return; - } - - // update vars - $prevLabel = $label; - $prevList = $list; - }); - }; - - // get results - var xhr = $.ajax({ - url: acf.get('ajaxurl'), - dataType: 'json', - type: 'post', - data: acf.prepareForAjax(ajaxData), - context: this, - success: onSuccess, - complete: onComplete - }); - - // set - this.set('xhr', xhr); - }, - - walkChoices: function( data ){ - - // walker - var walk = function( data ){ - - // vars - var html = ''; - - // is array - if( $.isArray(data) ) { - data.map(function(item){ - html += walk( item ); - }); - - // is item - } else if( $.isPlainObject(data) ) { - - // group - if( data.children !== undefined ) { - - html += '
                  • ' + acf.escHtml( data.text ) + '
                      '; - html += walk( data.children ); - html += '
                  • '; - - // single - } else { - html += '
                  • ' + acf.escHtml( data.text ) + '
                  • '; - } - } - - // return - return html; - }; - - return walk( data ); - } - - }); - - acf.registerFieldType( Field ); - -})(jQuery); - -(function($, undefined){ - - var Field = acf.Field.extend({ - - type: 'select', - - select2: false, - - wait: 'load', - - events: { - 'removeField': 'onRemove' - }, - - $input: function(){ - return this.$('select'); - }, - - initialize: function(){ - - // vars - var $select = this.$input(); - - // inherit data - this.inherit( $select ); - - // select2 - if( this.get('ui') ) { - - // populate ajax_data (allowing custom attribute to already exist) - var ajaxAction = this.get('ajax_action'); - if( !ajaxAction ) { - ajaxAction = 'acf/fields/' + this.get('type') + '/query'; - } - - // select2 - this.select2 = acf.newSelect2($select, { - field: this, - ajax: this.get('ajax'), - multiple: this.get('multiple'), - placeholder: this.get('placeholder'), - allowNull: this.get('allow_null'), - ajaxAction: ajaxAction, - }); - } - }, - - onRemove: function(){ - if( this.select2 ) { - this.select2.destroy(); - } - } - }); - - acf.registerFieldType( Field ); - -})(jQuery); - -(function($, undefined){ - - // vars - var CONTEXT = 'tab'; - - var Field = acf.Field.extend({ - - type: 'tab', - - wait: '', - - tabs: false, - - tab: false, - - events: { - 'duplicateField': 'onDuplicate' - }, - - findFields: function(){ - return this.$el.nextUntil('.acf-field-tab', '.acf-field'); - }, - - getFields: function(){ - return acf.getFields( this.findFields() ); - }, - - findTabs: function(){ - return this.$el.prevAll('.acf-tab-wrap:first'); - }, - - findTab: function(){ - return this.$('.acf-tab-button'); - }, - - initialize: function(){ - - // bail early if is td - if( this.$el.is('td') ) { - this.events = {}; - return false; - } - - // vars - var $tabs = this.findTabs(); - var $tab = this.findTab(); - var settings = acf.parseArgs($tab.data(), { - endpoint: false, - placement: '', - before: this.$el - }); - - // create wrap - if( !$tabs.length || settings.endpoint ) { - this.tabs = new Tabs( settings ); - } else { - this.tabs = $tabs.data('acf'); - } - - // add tab - this.tab = this.tabs.addTab($tab, this); - }, - - isActive: function(){ - return this.tab.isActive(); - }, - - showFields: function(){ - - // show fields - this.getFields().map(function( field ){ - field.show( this.cid, CONTEXT ); - field.hiddenByTab = false; - }, this); - - }, - - hideFields: function(){ - - // hide fields - this.getFields().map(function( field ){ - field.hide( this.cid, CONTEXT ); - field.hiddenByTab = this.tab; - }, this); - - }, - - show: function( lockKey ){ - - // show field and store result - var visible = acf.Field.prototype.show.apply(this, arguments); - - // check if now visible - if( visible ) { - - // show tab - this.tab.show(); - - // check active tabs - this.tabs.refresh(); - } - - // return - return visible; - }, - - hide: function( lockKey ){ - - // hide field and store result - var hidden = acf.Field.prototype.hide.apply(this, arguments); - - // check if now hidden - if( hidden ) { - - // hide tab - this.tab.hide(); - - // reset tabs if this was active - if( this.isActive() ) { - this.tabs.reset(); - } - } - - // return - return hidden; - }, - - enable: function( lockKey ){ - - // enable fields - this.getFields().map(function( field ){ - field.enable( CONTEXT ); - }); - }, - - disable: function( lockKey ){ - - // disable fields - this.getFields().map(function( field ){ - field.disable( CONTEXT ); - }); - }, - - onDuplicate: function( e, $el, $duplicate ){ - if( this.isActive() ) { - $duplicate.prevAll('.acf-tab-wrap:first').remove(); - } - } - }); - - acf.registerFieldType( Field ); - - - /** - * tabs - * - * description - * - * @date 8/2/18 - * @since 5.6.5 - * - * @param type $var Description. Default. - * @return type Description. - */ - - var i = 0; - var Tabs = acf.Model.extend({ - - tabs: [], - - active: false, - - actions: { - 'refresh': 'onRefresh' - }, - - data: { - before: false, - placement: 'top', - index: 0, - initialized: false, - }, - - setup: function( settings ){ - - // data - $.extend(this.data, settings); - - // define this prop to avoid scope issues - this.tabs = []; - this.active = false; - - // vars - var placement = this.get('placement'); - var $before = this.get('before'); - var $parent = $before.parent(); - - // add sidebar for left placement - if( placement == 'left' && $parent.hasClass('acf-fields') ) { - $parent.addClass('-sidebar'); - } - - // create wrap - if( $before.is('tr') ) { - this.$el = $('
                    '); - } else { - this.$el = $('
                      '); - } - - // append - $before.before( this.$el ); - - // set index - this.set('index', i, true); - i++; - }, - - initializeTabs: function(){ - - // find first visible tab - var tab = this.getVisible().shift(); - - // remember previous tab state - var order = acf.getPreference('this.tabs') || []; - var groupIndex = this.get('index'); - var tabIndex = order[ groupIndex ]; - - if( this.tabs[ tabIndex ] && this.tabs[ tabIndex ].isVisible() ) { - tab = this.tabs[ tabIndex ]; - } - - // select - if( tab ) { - this.selectTab( tab ); - } else { - this.closeTabs(); - } - - // set local variable used by tabsManager - this.set('initialized', true); - }, - - getVisible: function(){ - return this.tabs.filter(function( tab ){ - return tab.isVisible(); - }); - }, - - getActive: function(){ - return this.active; - }, - - setActive: function( tab ){ - return this.active = tab; - }, - - hasActive: function(){ - return (this.active !== false); - }, - - isActive: function( tab ){ - var active = this.getActive(); - return (active && active.cid === tab.cid); - }, - - closeActive: function(){ - if( this.hasActive() ) { - this.closeTab( this.getActive() ); - } - }, - - openTab: function( tab ){ - - // close existing tab - this.closeActive(); - - // open - tab.open(); - - // set active - this.setActive( tab ); - }, - - closeTab: function( tab ){ - - // close - tab.close(); - - // set active - this.setActive( false ); - }, - - closeTabs: function(){ - this.tabs.map( this.closeTab, this ); - }, - - selectTab: function( tab ){ - - // close other tabs - this.tabs.map(function( t ){ - if( tab.cid !== t.cid ) { - this.closeTab( t ); - } - }, this); - - // open - this.openTab( tab ); - - }, - - addTab: function( $a, field ){ - - // create
                    • - var $li = $('
                    • ' + $a.outerHTML() + '
                    • '); - - // append - this.$('ul').append( $li ); - - // initialize - var tab = new Tab({ - $el: $li, - field: field, - group: this, - }); - - // store - this.tabs.push( tab ); - - // return - return tab; - }, - - reset: function(){ - - // close existing tab - this.closeActive(); - - // find and active a tab - return this.refresh(); - }, - - refresh: function(){ - - // bail early if active already exists - if( this.hasActive() ) { - return false; - } - - // find next active tab - var tab = this.getVisible().shift(); - - // open tab - if( tab ) { - this.openTab( tab ); - } - - // return - return tab; - }, - - onRefresh: function(){ - - // only for left placements - if( this.get('placement') !== 'left' ) { - return; - } - - // vars - var $parent = this.$el.parent(); - var $list = this.$el.children('ul'); - var attribute = $parent.is('td') ? 'height' : 'min-height'; - - // find height (minus 1 for border-bottom) - var height = $list.position().top + $list.outerHeight(true) - 1; - - // add css - $parent.css(attribute, height); - } - }); - - var Tab = acf.Model.extend({ - - group: false, - - field: false, - - events: { - 'click a': 'onClick' - }, - - index: function(){ - return this.$el.index(); - }, - - isVisible: function(){ - return acf.isVisible( this.$el ); - }, - - isActive: function(){ - return this.$el.hasClass('active'); - }, - - open: function(){ - - // add class - this.$el.addClass('active'); - - // show field - this.field.showFields(); - }, - - close: function(){ - - // remove class - this.$el.removeClass('active'); - - // hide field - this.field.hideFields(); - }, - - onClick: function( e, $el ){ - - // prevent default - e.preventDefault(); - - // toggle - this.toggle(); - }, - - toggle: function(){ - - // bail early if already active - if( this.isActive() ) { - return; - } - - // toggle this tab - this.group.openTab( this ); - } - }); - - var tabsManager = new acf.Model({ - - priority: 50, - - actions: { - 'prepare': 'render', - 'append': 'render', - 'unload': 'onUnload', - 'invalid_field': 'onInvalidField' - }, - - findTabs: function(){ - return $('.acf-tab-wrap'); - }, - - getTabs: function(){ - return acf.getInstances( this.findTabs() ); - }, - - render: function( $el ){ - this.getTabs().map(function( tabs ){ - if( !tabs.get('initialized') ) { - tabs.initializeTabs(); - } - }); - }, - - onInvalidField: function( field ){ - - // bail early if busy - if( this.busy ) { - return; - } - - // ignore if not hidden by tab - if( !field.hiddenByTab ) { - return; - } - - // toggle tab - field.hiddenByTab.toggle(); - - // ignore other invalid fields - this.busy = true; - this.setTimeout(function(){ - this.busy = false; - }, 100); - }, - - onUnload: function(){ - - // vars - var order = []; - - // loop - this.getTabs().map(function( group ){ - var active = group.hasActive() ? group.getActive().index() : 0; - order.push(active); - }); - - // bail if no tabs - if( !order.length ) { - return; - } - - // update - acf.setPreference('this.tabs', order); - } - }); - -})(jQuery); - -(function($, undefined){ - - var Field = acf.models.SelectField.extend({ - type: 'post_object', - }); - - acf.registerFieldType( Field ); - -})(jQuery); - -(function($, undefined){ - - var Field = acf.models.SelectField.extend({ - type: 'page_link', - }); - - acf.registerFieldType( Field ); - -})(jQuery); - -(function($, undefined){ - - var Field = acf.models.SelectField.extend({ - type: 'user', - }); - - acf.registerFieldType( Field ); - -})(jQuery); - -(function($, undefined){ - - var Field = acf.Field.extend({ - - type: 'taxonomy', - - data: { - 'ftype': 'select' - }, - - select2: false, - - wait: 'load', - - events: { - 'click a[data-name="add"]': 'onClickAdd', - 'click input[type="radio"]': 'onClickRadio', - 'removeField': 'onRemove' - }, - - $control: function(){ - return this.$('.acf-taxonomy-field'); - }, - - $input: function(){ - return this.getRelatedPrototype().$input.apply(this, arguments); - }, - - getRelatedType: function(){ - - // vars - var fieldType = this.get('ftype'); - - // normalize - if( fieldType == 'multi_select' ) { - fieldType = 'select'; - } - - // return - return fieldType; - - }, - - getRelatedPrototype: function(){ - return acf.getFieldType( this.getRelatedType() ).prototype; - }, - - getValue: function(){ - return this.getRelatedPrototype().getValue.apply(this, arguments); - }, - - setValue: function(){ - return this.getRelatedPrototype().setValue.apply(this, arguments); - }, - - initialize: function(){ - this.getRelatedPrototype().initialize.apply(this, arguments); - }, - - onRemove: function(){ - var proto = this.getRelatedPrototype(); - if( proto.onRemove ) { - proto.onRemove.apply(this, arguments); - } - }, - - onClickAdd: function( e, $el ){ - - // vars - var field = this; - var popup = false; - var $form = false; - var $name = false; - var $parent = false; - var $button = false; - var $message = false; - var notice = false; - - // step 1. - var step1 = function(){ - - // popup - popup = acf.newPopup({ - title: $el.attr('title'), - loading: true, - width: '300px' - }); - - // ajax - var ajaxData = { - action: 'acf/fields/taxonomy/add_term', - field_key: field.get('key') - }; - - // get HTML - $.ajax({ - url: acf.get('ajaxurl'), - data: acf.prepareForAjax(ajaxData), - type: 'post', - dataType: 'html', - success: step2 - }); - }; - - // step 2. - var step2 = function( html ){ - - // update popup - popup.loading(false); - popup.content(html); - - // vars - $form = popup.$('form'); - $name = popup.$('input[name="term_name"]'); - $parent = popup.$('select[name="term_parent"]'); - $button = popup.$('.acf-submit-button'); - - // focus - $name.focus(); - - // submit form - popup.on('submit', 'form', step3); - }; - - // step 3. - var step3 = function( e, $el ){ - - // prevent - e.preventDefault(); - e.stopImmediatePropagation(); - - // basic validation - if( $name.val() === '' ) { - $name.focus(); - return false; - } - - // disable - acf.startButtonLoading( $button ); - - // ajax - var ajaxData = { - action: 'acf/fields/taxonomy/add_term', - field_key: field.get('key'), - term_name: $name.val(), - term_parent: $parent.length ? $parent.val() : 0 - }; - - $.ajax({ - url: acf.get('ajaxurl'), - data: acf.prepareForAjax(ajaxData), - type: 'post', - dataType: 'json', - success: step4 - }); - }; - - // step 4. - var step4 = function( json ){ - - // enable - acf.stopButtonLoading( $button ); - - // remove prev notice - if( notice ) { - notice.remove(); - } - - // success - if( acf.isAjaxSuccess(json) ) { - - // clear name - $name.val(''); - - // update term lists - step5( json.data ); - - // notice - notice = acf.newNotice({ - type: 'success', - text: acf.getAjaxMessage(json), - target: $form, - timeout: 2000, - dismiss: false - }); - - } else { - - // notice - notice = acf.newNotice({ - type: 'error', - text: acf.getAjaxError(json), - target: $form, - timeout: 2000, - dismiss: false - }); - } - - // focus - $name.focus(); - }; - - // step 5. - var step5 = function( term ){ - - // update parent dropdown - var $option = $(''); - if( term.term_parent ) { - $parent.children('option[value="' + term.term_parent + '"]').after( $option ); - } else { - $parent.append( $option ); - } - - // add this new term to all taxonomy field - var fields = acf.getFields({ - type: 'taxonomy' - }); - - fields.map(function( otherField ){ - if( otherField.get('taxonomy') == field.get('taxonomy') ) { - otherField.appendTerm( term ); - } - }); - - // select - field.selectTerm( term.term_id ); - }; - - // run - step1(); - }, - - appendTerm: function( term ){ - - if( this.getRelatedType() == 'select' ) { - this.appendTermSelect( term ); - } else { - this.appendTermCheckbox( term ); - } - }, - - appendTermSelect: function( term ){ - - this.select2.addOption({ - id: term.term_id, - text: term.term_label - }); - - }, - - appendTermCheckbox: function( term ){ - - // vars - var name = this.$('[name]:first').attr('name'); - var $ul = this.$('ul:first'); - - // allow multiple selection - if( this.getRelatedType() == 'checkbox' ) { - name += '[]'; - } - - // create new li - var $li = $([ - '
                    • ', - '', - '
                    • ' - ].join('')); - - // find parent - if( term.term_parent ) { - - // vars - var $parent = $ul.find('li[data-id="' + term.term_parent + '"]'); - - // update vars - $ul = $parent.children('ul'); - - // create ul - if( !$ul.exists() ) { - $ul = $('
                        '); - $parent.append( $ul ); - } - } - - // append - $ul.append( $li ); - }, - - selectTerm: function( id ){ - if( this.getRelatedType() == 'select' ) { - this.select2.selectOption( id ); - } else { - var $input = this.$('input[value="' + id + '"]'); - $input.prop('checked', true).trigger('change'); - } - }, - - onClickRadio: function( e, $el ){ - - // vars - var $label = $el.parent('label'); - var selected = $label.hasClass('selected'); - - // remove previous selected - this.$('.selected').removeClass('selected'); - - // add active class - $label.addClass('selected'); - - // allow null - if( this.get('allow_null') && selected ) { - $label.removeClass('selected'); - $el.prop('checked', false).trigger('change'); - } - } - }); - - acf.registerFieldType( Field ); - -})(jQuery); - -(function($, undefined){ - - var Field = acf.models.DatePickerField.extend({ - - type: 'time_picker', - - $control: function(){ - return this.$('.acf-time-picker'); - }, - - initialize: function(){ - - // vars - var $input = this.$input(); - var $inputText = this.$inputText(); - - // args - var args = { - timeFormat: this.get('time_format'), - altField: $input, - altFieldTimeOnly: false, - altTimeFormat: 'HH:mm:ss', - showButtonPanel: true, - controlType: 'select', - oneLine: true, - closeText: acf.get('dateTimePickerL10n').selectText, - timeOnly: true, - }; - - // add custom 'Close = Select' functionality - args.onClose = function( value, dp_instance, t_instance ){ - - // vars - var $close = dp_instance.dpDiv.find('.ui-datepicker-close'); - - // if clicking close button - if( !value && $close.is(':hover') ) { - t_instance._updateDateTime(); - } - }; - - - // filter - args = acf.applyFilters('time_picker_args', args, this); - - // add date time picker - acf.newTimePicker( $inputText, args ); - - // action - acf.doAction('time_picker_init', $inputText, args, this); - } - }); - - acf.registerFieldType( Field ); - - - // add - acf.newTimePicker = function( $input, args ){ - - // bail ealry if no datepicker library - if( typeof $.timepicker === 'undefined' ) { - return false; - } - - // defaults - args = args || {}; - - // initialize - $input.timepicker( args ); - - // wrap the datepicker (only if it hasn't already been wrapped) - if( $('body > #ui-datepicker-div').exists() ) { - $('body > #ui-datepicker-div').wrap('
                        '); - } - }; - -})(jQuery); - -(function($, undefined){ - - var Field = acf.Field.extend({ - - type: 'true_false', - - events: { - 'change .acf-switch-input': 'onChange', - 'focus .acf-switch-input': 'onFocus', - 'blur .acf-switch-input': 'onBlur', - 'keypress .acf-switch-input': 'onKeypress' - }, - - $input: function(){ - return this.$('input[type="checkbox"]'); - }, - - $switch: function(){ - return this.$('.acf-switch'); - }, - - getValue: function(){ - return this.$input().prop('checked') ? 1 : 0; - }, - - initialize: function(){ - this.render(); - }, - - render: function(){ - - // vars - var $switch = this.$switch(); - - // bail ealry if no $switch - if( !$switch.length ) return; - - // vars - var $on = $switch.children('.acf-switch-on'); - var $off = $switch.children('.acf-switch-off'); - var width = Math.max( $on.width(), $off.width() ); - - // bail ealry if no width - if( !width ) return; - - // set widths - $on.css( 'min-width', width ); - $off.css( 'min-width', width ); - - }, - - switchOn: function() { - this.$input().prop('checked', true); - this.$switch().addClass('-on'); - }, - - switchOff: function() { - this.$input().prop('checked', false); - this.$switch().removeClass('-on'); - }, - - onChange: function( e, $el ){ - if( $el.prop('checked') ) { - this.switchOn(); - } else { - this.switchOff(); - } - }, - - onFocus: function( e, $el ){ - this.$switch().addClass('-focus'); - }, - - onBlur: function( e, $el ){ - this.$switch().removeClass('-focus'); - }, - - onKeypress: function( e, $el ){ - - // left - if( e.keyCode === 37 ) { - return this.switchOff(); - } - - // right - if( e.keyCode === 39 ) { - return this.switchOn(); - } - - } - }); - - acf.registerFieldType( Field ); - -})(jQuery); - -(function($, undefined){ - - var Field = acf.Field.extend({ - - type: 'url', - - events: { - 'keyup input[type="url"]': 'onkeyup' - }, - - $control: function(){ - return this.$('.acf-input-wrap'); - }, - - $input: function(){ - return this.$('input[type="url"]'); - }, - - initialize: function(){ - this.render(); - }, - - isValid: function(){ - - // vars - var val = this.val(); - - // bail early if no val - if( !val ) { - return false; - } - - // url - if( val.indexOf('://') !== -1 ) { - return true; - } - - // protocol relative url - if( val.indexOf('//') === 0 ) { - return true; - } - - // return - return false; - }, - - render: function(){ - - // add class - if( this.isValid() ) { - this.$control().addClass('-valid'); - } else { - this.$control().removeClass('-valid'); - } - }, - - onkeyup: function( e, $el ){ - this.render(); - } - }); - - acf.registerFieldType( Field ); - -})(jQuery); - -(function($, undefined){ - - var Field = acf.Field.extend({ - - type: 'wysiwyg', - - wait: 'load', - - events: { - 'mousedown .acf-editor-wrap.delay': 'onMousedown', - 'unmountField': 'disableEditor', - 'remountField': 'enableEditor', - 'removeField': 'disableEditor' - }, - - $control: function(){ - return this.$('.acf-editor-wrap'); - }, - - $input: function(){ - return this.$('textarea'); - }, - - getMode: function(){ - return this.$control().hasClass('tmce-active') ? 'visual' : 'text'; - }, - - initialize: function(){ - - // initializeEditor if no delay - if( !this.$control().hasClass('delay') ) { - this.initializeEditor(); - } - }, - - initializeEditor: function(){ - - // vars - var $wrap = this.$control(); - var $textarea = this.$input(); - var args = { - tinymce: true, - quicktags: true, - toolbar: this.get('toolbar'), - mode: this.getMode(), - field: this - }; - - // generate new id - var oldId = $textarea.attr('id'); - var newId = acf.uniqueId('acf-editor-'); - - // Backup textarea data. - var inputData = $textarea.data(); - var inputVal = $textarea.val(); - - // rename - acf.rename({ - target: $wrap, - search: oldId, - replace: newId, - destructive: true - }); - - // update id - this.set('id', newId, true); - - // apply data to new textarea (acf.rename creates a new textarea element due to destructive mode) - // fixes bug where conditional logic "disabled" is lost during "screen_check" - this.$input().data( inputData ).val( inputVal ); - - // initialize - acf.tinymce.initialize( newId, args ); - }, - - onMousedown: function( e ){ - - // prevent default - e.preventDefault(); - - // remove delay class - var $wrap = this.$control(); - $wrap.removeClass('delay'); - $wrap.find('.acf-editor-toolbar').remove(); - - // initialize - this.initializeEditor(); - }, - - enableEditor: function(){ - if( this.getMode() == 'visual' ) { - acf.tinymce.enable( this.get('id') ); - } - }, - - disableEditor: function(){ - acf.tinymce.destroy( this.get('id') ); - } - }); - - acf.registerFieldType( Field ); - -})(jQuery); - -(function($, undefined){ - - // vars - var storage = []; - - /** - * acf.Condition - * - * description - * - * @date 23/3/18 - * @since 5.6.9 - * - * @param type $var Description. Default. - * @return type Description. - */ - - acf.Condition = acf.Model.extend({ - - type: '', // used for model name - operator: '==', // rule operator - label: '', // label shown when editing fields - choiceType: 'input', // input, select - fieldTypes: [], // auto connect this conditions with these field types - - data: { - conditions: false, // the parent instance - field: false, // the field which we query against - rule: {} // the rule [field, operator, value] - }, - - events: { - 'change': 'change', - 'keyup': 'change', - 'enableField': 'change', - 'disableField': 'change' - }, - - setup: function( props ){ - $.extend(this.data, props); - }, - - getEventTarget: function( $el, event ){ - return $el || this.get('field').$el; - }, - - change: function( e, $el ){ - this.get('conditions').change( e ); - }, - - match: function( rule, field ){ - return false; - }, - - calculate: function(){ - return this.match( this.get('rule'), this.get('field') ); - }, - - choices: function( field ){ - return ''; - } - }); - - /** - * acf.newCondition - * - * description - * - * @date 1/2/18 - * @since 5.6.5 - * - * @param type $var Description. Default. - * @return type Description. - */ - - acf.newCondition = function( rule, conditions ){ - - // currently setting up conditions for fieldX, this field is the 'target' - var target = conditions.get('field'); - - // use the 'target' to find the 'trigger' field. - // - this field is used to setup the conditional logic events - var field = target.getField( rule.field ); - - // bail ealry if no target or no field (possible if field doesn't exist due to HTML error) - if( !target || !field ) { - return false; - } - - // vars - var args = { - rule: rule, - target: target, - conditions: conditions, - field: field - }; - - // vars - var fieldType = field.get('type'); - var operator = rule.operator; - - // get avaibale conditions - var conditionTypes = acf.getConditionTypes({ - fieldType: fieldType, - operator: operator, - }); - - // instantiate - var model = conditionTypes[0] || acf.Condition; - - // instantiate - var condition = new model( args ); - - // return - return condition; - }; - - /** - * mid - * - * Calculates the model ID for a field type - * - * @date 15/12/17 - * @since 5.6.5 - * - * @param string type - * @return string - */ - - var modelId = function( type ) { - return acf.strPascalCase( type || '' ) + 'Condition'; - }; - - /** - * acf.registerConditionType - * - * description - * - * @date 1/2/18 - * @since 5.6.5 - * - * @param type $var Description. Default. - * @return type Description. - */ - - acf.registerConditionType = function( model ){ - - // vars - var proto = model.prototype; - var type = proto.type; - var mid = modelId( type ); - - // store model - acf.models[ mid ] = model; - - // store reference - storage.push( type ); - }; - - /** - * acf.getConditionType - * - * description - * - * @date 1/2/18 - * @since 5.6.5 - * - * @param type $var Description. Default. - * @return type Description. - */ - - acf.getConditionType = function( type ){ - var mid = modelId( type ); - return acf.models[ mid ] || false; - } - - /** - * acf.registerConditionForFieldType - * - * description - * - * @date 1/2/18 - * @since 5.6.5 - * - * @param type $var Description. Default. - * @return type Description. - */ - - acf.registerConditionForFieldType = function( conditionType, fieldType ){ - - // get model - var model = acf.getConditionType( conditionType ); - - // append - if( model ) { - model.prototype.fieldTypes.push( fieldType ); - } - }; - - /** - * acf.getConditionTypes - * - * description - * - * @date 1/2/18 - * @since 5.6.5 - * - * @param type $var Description. Default. - * @return type Description. - */ - - acf.getConditionTypes = function( args ){ - - // defaults - args = acf.parseArgs(args, { - fieldType: '', - operator: '' - }); - - // clonse available types - var types = []; - - // loop - storage.map(function( type ){ - - // vars - var model = acf.getConditionType(type); - var ProtoFieldTypes = model.prototype.fieldTypes; - var ProtoOperator = model.prototype.operator; - - // check fieldType - if( args.fieldType && ProtoFieldTypes.indexOf( args.fieldType ) === -1 ) { - return; - } - - // check operator - if( args.operator && ProtoOperator !== args.operator ) { - return; - } - - // append - types.push( model ); - }); - - // return - return types; - }; - -})(jQuery); - -(function($, undefined){ - - // vars - var CONTEXT = 'conditional_logic'; - - /** - * conditionsManager - * - * description - * - * @date 1/2/18 - * @since 5.6.5 - * - * @param type $var Description. Default. - * @return type Description. - */ - - var conditionsManager = new acf.Model({ - - id: 'conditionsManager', - - priority: 20, // run actions later - - actions: { - 'new_field': 'onNewField', - }, - - onNewField: function( field ){ - if( field.has('conditions') ) { - field.getConditions().render(); - } - }, - }); - - /** - * acf.Field.prototype.getField - * - * Finds a field that is related to another field - * - * @date 1/2/18 - * @since 5.6.5 - * - * @param type $var Description. Default. - * @return type Description. - */ - - var getSiblingField = function( field, key ){ - - // find sibling (very fast) - var fields = acf.getFields({ - key: key, - sibling: field.$el, - suppressFilters: true, - }); - - // find sibling-children (fast) - // needed for group fields, accordions, etc - if( !fields.length ) { - fields = acf.getFields({ - key: key, - parent: field.$el.parent(), - suppressFilters: true, - }); - } - - // return - if( fields.length ) { - return fields[0]; - } - return false; - }; - - acf.Field.prototype.getField = function( key ){ - - // get sibling field - var field = getSiblingField( this, key ); - - // return early - if( field ) { - return field; - } - - // move up through each parent and try again - var parents = this.parents(); - for( var i = 0; i < parents.length; i++ ) { - - // get sibling field - field = getSiblingField( parents[i], key ); - - // return early - if( field ) { - return field; - } - } - - // return - return false; - }; - - - /** - * acf.Field.prototype.getConditions - * - * Returns the field's conditions instance - * - * @date 1/2/18 - * @since 5.6.5 - * - * @param type $var Description. Default. - * @return type Description. - */ - - acf.Field.prototype.getConditions = function(){ - - // instantiate - if( !this.conditions ) { - this.conditions = new Conditions( this ); - } - - // return - return this.conditions; - }; - - - /** - * Conditions - * - * description - * - * @date 1/2/18 - * @since 5.6.5 - * - * @param type $var Description. Default. - * @return type Description. - */ - var timeout = false; - var Conditions = acf.Model.extend({ - - id: 'Conditions', - - data: { - field: false, // The field with "data-conditions" (target). - timeStamp: false, // Reference used during "change" event. - groups: [], // The groups of condition instances. - }, - - setup: function( field ){ - - // data - this.data.field = field; - - // vars - var conditions = field.get('conditions'); - - // detect groups - if( conditions instanceof Array ) { - - // detect groups - if( conditions[0] instanceof Array ) { - - // loop - conditions.map(function(rules, i){ - this.addRules( rules, i ); - }, this); - - // detect rules - } else { - this.addRules( conditions ); - } - - // detect rule - } else { - this.addRule( conditions ); - } - }, - - change: function( e ){ - - // this function may be triggered multiple times per event due to multiple condition classes - // compare timestamp to allow only 1 trigger per event - if( this.get('timeStamp') === e.timeStamp ) { - return false; - } else { - this.set('timeStamp', e.timeStamp, true); - } - - // render condition and store result - var changed = this.render(); - }, - - render: function(){ - return this.calculate() ? this.show() : this.hide(); - }, - - show: function(){ - return this.get('field').showEnable(this.cid, CONTEXT); - }, - - hide: function(){ - return this.get('field').hideDisable(this.cid, CONTEXT); - }, - - calculate: function(){ - - // vars - var pass = false; - - // loop - this.getGroups().map(function( group ){ - - // igrnore this group if another group passed - if( pass ) return; - - // find passed - var passed = group.filter(function(condition){ - return condition.calculate(); - }); - - // if all conditions passed, update the global var - if( passed.length == group.length ) { - pass = true; - } - }); - - return pass; - }, - - hasGroups: function(){ - return this.data.groups != null; - }, - - getGroups: function(){ - return this.data.groups; - }, - - addGroup: function(){ - var group = []; - this.data.groups.push( group ); - return group; - }, - - hasGroup: function( i ){ - return this.data.groups[i] != null; - }, - - getGroup: function( i ){ - return this.data.groups[i]; - }, - - removeGroup: function( i ){ - this.data.groups[i].delete; - return this; - }, - - addRules: function( rules, group ){ - rules.map(function( rule ){ - this.addRule( rule, group ); - }, this); - }, - - addRule: function( rule, group ){ - - // defaults - group = group || 0; - - // vars - var groupArray; - - // get group - if( this.hasGroup(group) ) { - groupArray = this.getGroup(group); - } else { - groupArray = this.addGroup(); - } - - // instantiate - var condition = acf.newCondition( rule, this ); - - // bail ealry if condition failed (field did not exist) - if( !condition ) { - return false; - } - - // add rule - groupArray.push(condition); - }, - - hasRule: function(){ - - }, - - getRule: function( rule, group ){ - - // defaults - rule = rule || 0; - group = group || 0; - - return this.data.groups[ group ][ rule ]; - }, - - removeRule: function(){ - - } - }); - -})(jQuery); - -(function($, undefined){ - - var __ = acf.__; - - var parseString = function( val ){ - return val ? '' + val : ''; - }; - - var isEqualTo = function( v1, v2 ){ - return ( parseString(v1).toLowerCase() === parseString(v2).toLowerCase() ); - }; - - var isEqualToNumber = function( v1, v2 ){ - return ( parseFloat(v1) === parseFloat(v2) ); - }; - - var isGreaterThan = function( v1, v2 ){ - return ( parseFloat(v1) > parseFloat(v2) ); - }; - - var isLessThan = function( v1, v2 ){ - return ( parseFloat(v1) < parseFloat(v2) ); - }; - - var inArray = function( v1, array ){ - - // cast all values as string - array = array.map(function(v2){ - return parseString(v2); - }); - - return (array.indexOf( v1 ) > -1); - } - - var containsString = function( haystack, needle ){ - return ( parseString(haystack).indexOf( parseString(needle) ) > -1 ); - }; - - var matchesPattern = function( v1, pattern ){ - var regexp = new RegExp(parseString(pattern), 'gi'); - return parseString(v1).match( regexp ); - }; - - /** - * hasValue - * - * description - * - * @date 1/2/18 - * @since 5.6.5 - * - * @param void - * @return void - */ - - var HasValue = acf.Condition.extend({ - type: 'hasValue', - operator: '!=empty', - label: __('Has any value'), - fieldTypes: [ 'text', 'textarea', 'number', 'range', 'email', 'url', 'password', 'image', 'file', 'wysiwyg', 'oembed', 'select', 'checkbox', 'radio', 'button_group', 'link', 'post_object', 'page_link', 'relationship', 'taxonomy', 'user', 'google_map', 'date_picker', 'date_time_picker', 'time_picker', 'color_picker' ], - match: function( rule, field ){ - return (field.val() ? true : false); - }, - choices: function( fieldObject ){ - return ''; - } - }); - - acf.registerConditionType( HasValue ); - - /** - * hasValue - * - * description - * - * @date 1/2/18 - * @since 5.6.5 - * - * @param void - * @return void - */ - - var HasNoValue = HasValue.extend({ - type: 'hasNoValue', - operator: '==empty', - label: __('Has no value'), - match: function( rule, field ){ - return !HasValue.prototype.match.apply(this, arguments); - } - }); - - acf.registerConditionType( HasNoValue ); - - - - /** - * EqualTo - * - * description - * - * @date 1/2/18 - * @since 5.6.5 - * - * @param void - * @return void - */ - - var EqualTo = acf.Condition.extend({ - type: 'equalTo', - operator: '==', - label: __('Value is equal to'), - fieldTypes: [ 'text', 'textarea', 'number', 'range', 'email', 'url', 'password' ], - match: function( rule, field ){ - if( $.isNumeric(rule.value) ) { - return isEqualToNumber( rule.value, field.val() ); - } else { - return isEqualTo( rule.value, field.val() ); - } - }, - choices: function( fieldObject ){ - return ''; - } - }); - - acf.registerConditionType( EqualTo ); - - /** - * NotEqualTo - * - * description - * - * @date 1/2/18 - * @since 5.6.5 - * - * @param void - * @return void - */ - - var NotEqualTo = EqualTo.extend({ - type: 'notEqualTo', - operator: '!=', - label: __('Value is not equal to'), - match: function( rule, field ){ - return !EqualTo.prototype.match.apply(this, arguments); - } - }); - - acf.registerConditionType( NotEqualTo ); - - /** - * PatternMatch - * - * description - * - * @date 1/2/18 - * @since 5.6.5 - * - * @param void - * @return void - */ - - var PatternMatch = acf.Condition.extend({ - type: 'patternMatch', - operator: '==pattern', - label: __('Value matches pattern'), - fieldTypes: [ 'text', 'textarea', 'email', 'url', 'password', 'wysiwyg' ], - match: function( rule, field ){ - return matchesPattern( field.val(), rule.value ); - }, - choices: function( fieldObject ){ - return ''; - } - }); - - acf.registerConditionType( PatternMatch ); - - /** - * Contains - * - * description - * - * @date 1/2/18 - * @since 5.6.5 - * - * @param void - * @return void - */ - - var Contains = acf.Condition.extend({ - type: 'contains', - operator: '==contains', - label: __('Value contains'), - fieldTypes: [ 'text', 'textarea', 'number', 'email', 'url', 'password', 'wysiwyg', 'oembed', 'select' ], - match: function( rule, field ){ - return containsString( field.val(), rule.value ); - }, - choices: function( fieldObject ){ - return ''; - } - }); - - acf.registerConditionType( Contains ); - - /** - * TrueFalseEqualTo - * - * description - * - * @date 1/2/18 - * @since 5.6.5 - * - * @param void - * @return void - */ - - var TrueFalseEqualTo = EqualTo.extend({ - type: 'trueFalseEqualTo', - choiceType: 'select', - fieldTypes: [ 'true_false' ], - choices: function( field ){ - return [ - { - id: 1, - text: __('Checked') - } - ]; - }, - }); - - acf.registerConditionType( TrueFalseEqualTo ); - - /** - * TrueFalseNotEqualTo - * - * description - * - * @date 1/2/18 - * @since 5.6.5 - * - * @param void - * @return void - */ - - var TrueFalseNotEqualTo = NotEqualTo.extend({ - type: 'trueFalseNotEqualTo', - choiceType: 'select', - fieldTypes: [ 'true_false' ], - choices: function( field ){ - return [ - { - id: 1, - text: __('Checked') - } - ]; - }, - }); - - acf.registerConditionType( TrueFalseNotEqualTo ); - - /** - * SelectEqualTo - * - * description - * - * @date 1/2/18 - * @since 5.6.5 - * - * @param void - * @return void - */ - - var SelectEqualTo = acf.Condition.extend({ - type: 'selectEqualTo', - operator: '==', - label: __('Value is equal to'), - fieldTypes: [ 'select', 'checkbox', 'radio', 'button_group' ], - match: function( rule, field ){ - var val = field.val(); - if( val instanceof Array ) { - return inArray( rule.value, val ); - } else { - return isEqualTo( rule.value, val ); - } - }, - choices: function( fieldObject ){ - - // vars - var choices = []; - var lines = fieldObject.$setting('choices textarea').val().split("\n"); - - // allow null - if( fieldObject.$input('allow_null').prop('checked') ) { - choices.push({ - id: '', - text: __('Null') - }); - } - - // loop - lines.map(function( line ){ - - // split - line = line.split(':'); - - // default label to value - line[1] = line[1] || line[0]; - - // append - choices.push({ - id: $.trim( line[0] ), - text: $.trim( line[1] ) - }); - }); - - // return - return choices; - }, - }); - - acf.registerConditionType( SelectEqualTo ); - - /** - * SelectNotEqualTo - * - * description - * - * @date 1/2/18 - * @since 5.6.5 - * - * @param void - * @return void - */ - - var SelectNotEqualTo = SelectEqualTo.extend({ - type: 'selectNotEqualTo', - operator: '!=', - label: __('Value is not equal to'), - match: function( rule, field ){ - return !SelectEqualTo.prototype.match.apply(this, arguments); - } - }); - - acf.registerConditionType( SelectNotEqualTo ); - - /** - * GreaterThan - * - * description - * - * @date 1/2/18 - * @since 5.6.5 - * - * @param void - * @return void - */ - - var GreaterThan = acf.Condition.extend({ - type: 'greaterThan', - operator: '>', - label: __('Value is greater than'), - fieldTypes: [ 'number', 'range' ], - match: function( rule, field ){ - var val = field.val(); - if( val instanceof Array ) { - val = val.length; - } - return isGreaterThan( val, rule.value ); - }, - choices: function( fieldObject ){ - return ''; - } - }); - - acf.registerConditionType( GreaterThan ); - - - /** - * LessThan - * - * description - * - * @date 1/2/18 - * @since 5.6.5 - * - * @param void - * @return void - */ - - var LessThan = GreaterThan.extend({ - type: 'lessThan', - operator: '<', - label: __('Value is less than'), - match: function( rule, field ){ - var val = field.val(); - if( val instanceof Array ) { - val = val.length; - } - return isLessThan( val, rule.value ); - }, - choices: function( fieldObject ){ - return ''; - } - }); - - acf.registerConditionType( LessThan ); - - /** - * SelectedGreaterThan - * - * description - * - * @date 1/2/18 - * @since 5.6.5 - * - * @param void - * @return void - */ - - var SelectionGreaterThan = GreaterThan.extend({ - type: 'selectionGreaterThan', - label: __('Selection is greater than'), - fieldTypes: [ 'checkbox', 'select', 'post_object', 'page_link', 'relationship', 'taxonomy', 'user' ], - }); - - acf.registerConditionType( SelectionGreaterThan ); - - /** - * SelectedGreaterThan - * - * description - * - * @date 1/2/18 - * @since 5.6.5 - * - * @param void - * @return void - */ - - var SelectionLessThan = LessThan.extend({ - type: 'selectionLessThan', - label: __('Selection is less than'), - fieldTypes: [ 'checkbox', 'select', 'post_object', 'page_link', 'relationship', 'taxonomy', 'user' ], - }); - - acf.registerConditionType( SelectionLessThan ); - -})(jQuery); - -(function($, undefined){ - - acf.unload = new acf.Model({ - - wait: 'load', - active: true, - changed: false, - - actions: { - 'validation_failure': 'startListening', - 'validation_success': 'stopListening' - }, - - events: { - 'change form .acf-field': 'startListening', - 'submit form': 'stopListening' - }, - - enable: function(){ - this.active = true; - }, - - disable: function(){ - this.active = false; - }, - - reset: function(){ - this.stopListening(); - }, - - startListening: function(){ - - // bail ealry if already changed, not active - if( this.changed || !this.active ) { - return; - } - - // update - this.changed = true; - - // add event - $(window).on('beforeunload', this.onUnload); - - }, - - stopListening: function(){ - - // update - this.changed = false; - - // remove event - $(window).off('beforeunload', this.onUnload); - - }, - - onUnload: function(){ - return acf.__('The changes you made will be lost if you navigate away from this page'); - } - - }); - -})(jQuery); - -(function($, undefined){ - - /** - * postboxManager - * - * Manages postboxes on the screen. - * - * @date 25/5/19 - * @since 5.8.1 - * - * @param void - * @return void - */ - var postboxManager = new acf.Model({ - wait: 'prepare', - priority: 1, - initialize: function(){ - (acf.get('postboxes') || []).map( acf.newPostbox ); - }, - }); - - /** - * acf.getPostbox - * - * Returns a postbox instance. - * - * @date 23/9/18 - * @since 5.7.7 - * - * @param mixed $el Either a jQuery element or the postbox id. - * @return object - */ - acf.getPostbox = function( $el ){ - - // allow string parameter - if( typeof arguments[0] == 'string' ) { - $el = $('#' + arguments[0]); - } - - // return instance - return acf.getInstance( $el ); - }; - - /** - * acf.getPostboxes - * - * Returns an array of postbox instances. - * - * @date 23/9/18 - * @since 5.7.7 - * - * @param void - * @return array - */ - acf.getPostboxes = function(){ - return acf.getInstances( $('.acf-postbox') ); - }; - - /** - * acf.newPostbox - * - * Returns a new postbox instance for the given props. - * - * @date 20/9/18 - * @since 5.7.6 - * - * @param object props The postbox properties. - * @return object - */ - acf.newPostbox = function( props ){ - return new acf.models.Postbox( props ); - }; - - /** - * acf.models.Postbox - * - * The postbox model. - * - * @date 20/9/18 - * @since 5.7.6 - * - * @param void - * @return void - */ - acf.models.Postbox = acf.Model.extend({ - - data: { - id: '', - key: '', - style: 'default', - label: 'top', - edit: '' - }, - - setup: function( props ){ - - // compatibilty - if( props.editLink ) { - props.edit = props.editLink; - } - - // extend data - $.extend(this.data, props); - - // set $el - this.$el = this.$postbox(); - }, - - $postbox: function(){ - return $('#' + this.get('id')); - }, - - $hide: function(){ - return $('#' + this.get('id') + '-hide'); - }, - - $hideLabel: function(){ - return this.$hide().parent(); - }, - - $hndle: function(){ - return this.$('> .hndle'); - }, - - $handleActions: function(){ - return this.$('> .postbox-header .handle-actions'); - }, - - $inside: function(){ - return this.$('> .inside'); - }, - - isVisible: function(){ - return this.$el.hasClass('acf-hidden'); - }, - - initialize: function(){ - - // Add default class. - this.$el.addClass('acf-postbox'); - - // Remove 'hide-if-js class. - // This class is added by WP to postboxes that are hidden via the "Screen Options" tab. - this.$el.removeClass('hide-if-js'); - - // Add field group style class (ignore in block editor). - if( acf.get('editor') !== 'block' ) { - var style = this.get('style'); - if( style !== 'default' ) { - this.$el.addClass( style ); - } - } - - // Add .inside class. - this.$inside().addClass('acf-fields').addClass('-' + this.get('label')); - - // Append edit link. - var edit = this.get('edit'); - if( edit ) { - var html = ''; - var $handleActions = this.$handleActions(); - if( $handleActions.length ) { - $handleActions.prepend( html ); - } else { - this.$hndle().append( html ); - } - } - - // Show postbox. - this.show(); - }, - - show: function(){ - - // Show label. - this.$hideLabel().show(); - - // toggle on checkbox - this.$hide().prop('checked', true); - - // Show postbox - this.$el.show().removeClass('acf-hidden'); - - // Do action. - acf.doAction('show_postbox', this); - }, - - enable: function(){ - acf.enable( this.$el, 'postbox' ); - }, - - showEnable: function(){ - this.enable(); - this.show(); - }, - - hide: function(){ - - // Hide label. - this.$hideLabel().hide(); - - // Hide postbox - this.$el.hide().addClass('acf-hidden'); - - // Do action. - acf.doAction('hide_postbox', this); - }, - - disable: function(){ - acf.disable( this.$el, 'postbox' ); - }, - - hideDisable: function(){ - this.disable(); - this.hide(); - }, - - html: function( html ){ - - // Update HTML. - this.$inside().html( html ); - - // Do action. - acf.doAction('append', this.$el); - } - }); - -})(jQuery); - -(function($, undefined){ - - /** - * acf.newMediaPopup - * - * description - * - * @date 10/1/18 - * @since 5.6.5 - * - * @param type $var Description. Default. - * @return type Description. - */ - - acf.newMediaPopup = function( args ){ - - // args - var popup = null; - var args = acf.parseArgs(args, { - mode: 'select', // 'select', 'edit' - title: '', // 'Upload Image' - button: '', // 'Select Image' - type: '', // 'image', '' - field: false, // field instance - allowedTypes: '', // '.jpg, .png, etc' - library: 'all', // 'all', 'uploadedTo' - multiple: false, // false, true, 'add' - attachment: 0, // the attachment to edit - autoOpen: true, // open the popup automatically - open: function(){}, // callback after close - select: function(){}, // callback after select - close: function(){} // callback after close - }); - - // initialize - if( args.mode == 'edit' ) { - popup = new acf.models.EditMediaPopup( args ); - } else { - popup = new acf.models.SelectMediaPopup( args ); - } - - // open popup (allow frame customization before opening) - if( args.autoOpen ) { - setTimeout(function(){ - popup.open(); - }, 1); - } - - // action - acf.doAction('new_media_popup', popup); - - // return - return popup; - }; - - - /** - * getPostID - * - * description - * - * @date 10/1/18 - * @since 5.6.5 - * - * @param type $var Description. Default. - * @return type Description. - */ - - var getPostID = function() { - var postID = acf.get('post_id'); - return $.isNumeric(postID) ? postID : 0; - } - - - /** - * acf.getMimeTypes - * - * description - * - * @date 11/1/18 - * @since 5.6.5 - * - * @param type $var Description. Default. - * @return type Description. - */ - - acf.getMimeTypes = function(){ - return this.get('mimeTypes'); - }; - - acf.getMimeType = function( name ){ - - // vars - var allTypes = acf.getMimeTypes(); - - // search - if( allTypes[name] !== undefined ) { - return allTypes[name]; - } - - // some types contain a mixed key such as "jpg|jpeg|jpe" - for( var key in allTypes ) { - if( key.indexOf(name) !== -1 ) { - return allTypes[key]; - } - } - - // return - return false; - }; - - - /** - * MediaPopup - * - * description - * - * @date 10/1/18 - * @since 5.6.5 - * - * @param type $var Description. Default. - * @return type Description. - */ - - var MediaPopup = acf.Model.extend({ - - id: 'MediaPopup', - data: {}, - defaults: {}, - frame: false, - - setup: function( props ){ - $.extend(this.data, props); - }, - - initialize: function(){ - - // vars - var options = this.getFrameOptions(); - - // add states - this.addFrameStates( options ); - - // create frame - var frame = wp.media( options ); - - // add args reference - frame.acf = this; - - // add events - this.addFrameEvents( frame, options ); - - // strore frame - this.frame = frame; - }, - - open: function(){ - this.frame.open(); - }, - - close: function(){ - this.frame.close(); - }, - - remove: function(){ - this.frame.detach(); - this.frame.remove(); - }, - - getFrameOptions: function(){ - - // vars - var options = { - title: this.get('title'), - multiple: this.get('multiple'), - library: {}, - states: [] - }; - - // type - if( this.get('type') ) { - options.library.type = this.get('type'); - } - - // type - if( this.get('library') === 'uploadedTo' ) { - options.library.uploadedTo = getPostID(); - } - - // attachment - if( this.get('attachment') ) { - options.library.post__in = [ this.get('attachment') ]; - } - - // button - if( this.get('button') ) { - options.button = { - text: this.get('button') - }; - } - - // return - return options; - }, - - addFrameStates: function( options ){ - - // create query - var Query = wp.media.query( options.library ); - - // add _acfuploader - // this is super wack! - // if you add _acfuploader to the options.library args, new uploads will not be added to the library view. - // this has been traced back to the wp.media.model.Query initialize function (which can't be overriden) - // Adding any custom args will cause the Attahcments to not observe the uploader queue - // To bypass this security issue, we add in the args AFTER the Query has been initialized - // options.library._acfuploader = settings.field; - if( this.get('field') && acf.isset(Query, 'mirroring', 'args') ) { - Query.mirroring.args._acfuploader = this.get('field'); - } - - // add states - options.states.push( - - // main state - new wp.media.controller.Library({ - library: Query, - multiple: this.get('multiple'), - title: this.get('title'), - priority: 20, - filterable: 'all', - editable: true, - allowLocalEdits: true - }) - - ); - - // edit image functionality (added in WP 3.9) - if( acf.isset(wp, 'media', 'controller', 'EditImage') ) { - options.states.push( new wp.media.controller.EditImage() ); - } - }, - - addFrameEvents: function( frame, options ){ - - // log all events - //frame.on('all', function( e ) { - // console.log( 'frame all: %o', e ); - //}); - - // add class - frame.on('open',function() { - this.$el.closest('.media-modal').addClass('acf-media-modal -' + this.acf.get('mode') ); - }, frame); - - // edit image view - // source: media-views.js:2410 editImageContent() - frame.on('content:render:edit-image', function(){ - - var image = this.state().get('image'); - var view = new wp.media.view.EditImage({ model: image, controller: this }).render(); - this.content.set( view ); - - // after creating the wrapper view, load the actual editor via an ajax call - view.loadEditor(); - - }, frame); - - // update toolbar button - //frame.on( 'toolbar:create:select', function( toolbar ) { - // toolbar.view = new wp.media.view.Toolbar.Select({ - // text: frame.options._button, - // controller: this - // }); - //}, frame ); - - // on select - frame.on('select', function() { - - // vars - var selection = frame.state().get('selection'); - - // if selecting images - if( selection ) { - - // loop - selection.each(function( attachment, i ){ - frame.acf.get('select').apply( frame.acf, [attachment, i] ); - }); - } - }); - - // on close - frame.on('close',function(){ - - // callback and remove - setTimeout(function(){ - frame.acf.get('close').apply( frame.acf ); - frame.acf.remove(); - }, 1); - }); - } - }); - - - /** - * acf.models.SelectMediaPopup - * - * description - * - * @date 10/1/18 - * @since 5.6.5 - * - * @param type $var Description. Default. - * @return type Description. - */ - - acf.models.SelectMediaPopup = MediaPopup.extend({ - id: 'SelectMediaPopup', - setup: function( props ){ - - // default button - if( !props.button ) { - props.button = acf._x('Select', 'verb'); - } - - // parent - MediaPopup.prototype.setup.apply(this, arguments); - }, - - addFrameEvents: function( frame, options ){ - - // plupload - // adds _acfuploader param to validate uploads - if( acf.isset(_wpPluploadSettings, 'defaults', 'multipart_params') ) { - - // add _acfuploader so that Uploader will inherit - _wpPluploadSettings.defaults.multipart_params._acfuploader = this.get('field'); - - // remove acf_field so future Uploaders won't inherit - frame.on('open', function(){ - delete _wpPluploadSettings.defaults.multipart_params._acfuploader; - }); - } - - // browse - frame.on('content:activate:browse', function(){ - - // vars - var toolbar = false; - - // populate above vars making sure to allow for failure - // perhaps toolbar does not exist because the frame open is Upload Files - try { - toolbar = frame.content.get().toolbar; - } catch(e) { - console.log(e); - return; - } - - // callback - frame.acf.customizeFilters.apply(frame.acf, [toolbar]); - }); - - // parent - MediaPopup.prototype.addFrameEvents.apply(this, arguments); - - }, - - customizeFilters: function( toolbar ){ - - // vars - var filters = toolbar.get('filters'); - - // image - if( this.get('type') == 'image' ) { - - // update all - filters.filters.all.text = acf.__('All images'); - - // remove some filters - delete filters.filters.audio; - delete filters.filters.video; - delete filters.filters.image; - - // update all filters to show images - $.each(filters.filters, function( i, filter ){ - filter.props.type = filter.props.type || 'image'; - }); - } - - // specific types - if( this.get('allowedTypes') ) { - - // convert ".jpg, .png" into ["jpg", "png"] - var allowedTypes = this.get('allowedTypes').split(' ').join('').split('.').join('').split(','); - - // loop - allowedTypes.map(function( name ){ - - // get type - var mimeType = acf.getMimeType( name ); - - // bail early if no type - if( !mimeType ) return; - - // create new filter - var newFilter = { - text: mimeType, - props: { - status: null, - type: mimeType, - uploadedTo: null, - orderby: 'date', - order: 'DESC' - }, - priority: 20 - }; - - // append - filters.filters[ mimeType ] = newFilter; - - }); - } - - - - // uploaded to post - if( this.get('library') === 'uploadedTo' ) { - - // vars - var uploadedTo = this.frame.options.library.uploadedTo; - - // remove some filters - delete filters.filters.unattached; - delete filters.filters.uploaded; - - // add uploadedTo to filters - $.each(filters.filters, function( i, filter ){ - filter.text += ' (' + acf.__('Uploaded to this post') + ')'; - filter.props.uploadedTo = uploadedTo; - }); - } - - // add _acfuploader to filters - var field = this.get('field'); - $.each(filters.filters, function( k, filter ){ - filter.props._acfuploader = field; - }); - - // add _acfuplaoder to search - var search = toolbar.get('search'); - search.model.attributes._acfuploader = field; - - // render (custom function added to prototype) - if( filters.renderFilters ) { - filters.renderFilters(); - } - } - }); - - - /** - * acf.models.EditMediaPopup - * - * description - * - * @date 10/1/18 - * @since 5.6.5 - * - * @param type $var Description. Default. - * @return type Description. - */ - - acf.models.EditMediaPopup = MediaPopup.extend({ - id: 'SelectMediaPopup', - setup: function( props ){ - - // default button - if( !props.button ) { - props.button = acf._x('Update', 'verb'); - } - - // parent - MediaPopup.prototype.setup.apply(this, arguments); - }, - - addFrameEvents: function( frame, options ){ - - // add class - frame.on('open',function() { - - // add class - this.$el.closest('.media-modal').addClass('acf-expanded'); - - // set to browse - if( this.content.mode() != 'browse' ) { - this.content.mode('browse'); - } - - // set selection - var state = this.state(); - var selection = state.get('selection'); - var attachment = wp.media.attachment( frame.acf.get('attachment') ); - selection.add( attachment ); - - }, frame); - - // parent - MediaPopup.prototype.addFrameEvents.apply(this, arguments); - - } - }); - - - /** - * customizePrototypes - * - * description - * - * @date 11/1/18 - * @since 5.6.5 - * - * @param type $var Description. Default. - * @return type Description. - */ - - var customizePrototypes = new acf.Model({ - id: 'customizePrototypes', - wait: 'ready', - - initialize: function(){ - - // bail early if no media views - if( !acf.isset(window, 'wp', 'media', 'view') ) { - return; - } - - // fix bug where CPT without "editor" does not set post.id setting which then prevents uploadedTo from working - var postID = getPostID(); - if( postID && acf.isset(wp, 'media', 'view', 'settings', 'post') ) { - wp.media.view.settings.post.id = postID; - } - - // customize - this.customizeAttachmentsButton(); - this.customizeAttachmentsRouter(); - this.customizeAttachmentFilters(); - this.customizeAttachmentCompat(); - this.customizeAttachmentLibrary(); - }, - - customizeAttachmentsButton: function(){ - - // validate - if( !acf.isset(wp, 'media', 'view', 'Button') ) { - return; - } - - // Extend - var Button = wp.media.view.Button; - wp.media.view.Button = Button.extend({ - - // Fix bug where "Select" button appears blank after editing an image. - // Do this by simplifying Button initialize function and avoid deleting this.options. - initialize: function() { - var options = _.defaults( this.options, this.defaults ); - this.model = new Backbone.Model( options ); - this.listenTo( this.model, 'change', this.render ); - } - }); - - }, - - customizeAttachmentsRouter: function(){ - - // validate - if( !acf.isset(wp, 'media', 'view', 'Router') ) { - return; - } - - // vars - var Parent = wp.media.view.Router; - - // extend - wp.media.view.Router = Parent.extend({ - - addExpand: function(){ - - // vars - var $a = $([ - '', - '' + acf.__('Expand Details') + '', - '' + acf.__('Collapse Details') + '', - '' - ].join('')); - - // add events - $a.on('click', function( e ){ - e.preventDefault(); - var $div = $(this).closest('.media-modal'); - if( $div.hasClass('acf-expanded') ) { - $div.removeClass('acf-expanded'); - } else { - $div.addClass('acf-expanded'); - } - }); - - // append - this.$el.append( $a ); - }, - - initialize: function(){ - - // initialize - Parent.prototype.initialize.apply( this, arguments ); - - // add buttons - this.addExpand(); - - // return - return this; - } - }); - }, - - customizeAttachmentFilters: function(){ - - // validate - if( !acf.isset(wp, 'media', 'view', 'AttachmentFilters', 'All') ) { - return; - } - - // vars - var Parent = wp.media.view.AttachmentFilters.All; - - // renderFilters - // copied from media-views.js:6939 - Parent.prototype.renderFilters = function(){ - - // Build `' ).val( value ).html( filter.text )[0], - priority: filter.priority || 50 - }; - }, this ).sortBy('priority').pluck('el').value() ); - - }; - }, - - customizeAttachmentCompat: function(){ - - // validate - if( !acf.isset(wp, 'media', 'view', 'AttachmentCompat') ) { - return; - } - - // vars - var AttachmentCompat = wp.media.view.AttachmentCompat; - var timeout = false; - - // extend - wp.media.view.AttachmentCompat = AttachmentCompat.extend({ - - render: function() { - - // WP bug - // When multiple media frames exist on the same page (WP content, WYSIWYG, image, file ), - // WP creates multiple instances of this AttachmentCompat view. - // Each instance will attempt to render when a new modal is created. - // Use a property to avoid this and only render once per instance. - if( this.rendered ) { - return this; - } - - // render HTML - AttachmentCompat.prototype.render.apply( this, arguments ); - - // when uploading, render is called twice. - // ignore first render by checking for #acf-form-data element - if( !this.$('#acf-form-data').length ) { - return this; - } - - // clear timeout - clearTimeout( timeout ); - - // setTimeout - timeout = setTimeout($.proxy(function(){ - this.rendered = true; - acf.doAction('append', this.$el); - }, this), 50); - - // return - return this; - }, - - save: function( event ) { - var data = {}; - - if ( event ) { - event.preventDefault(); - } - - //_.each( this.$el.serializeArray(), function( pair ) { - // data[ pair.name ] = pair.value; - //}); - - // Serialize data more thoroughly to allow chckbox inputs to save. - data = acf.serializeForAjax(this.$el); - - this.controller.trigger( 'attachment:compat:waiting', ['waiting'] ); - this.model.saveCompat( data ).always( _.bind( this.postSave, this ) ); - } - }); - - }, - - customizeAttachmentLibrary: function(){ - - // validate - if( !acf.isset(wp, 'media', 'view', 'Attachment', 'Library') ) { - return; - } - - // vars - var AttachmentLibrary = wp.media.view.Attachment.Library; - - // extend - wp.media.view.Attachment.Library = AttachmentLibrary.extend({ - - render: function() { - - // vars - var popup = acf.isget(this, 'controller', 'acf'); - var attributes = acf.isget(this, 'model', 'attributes'); - - // check vars exist to avoid errors - if( popup && attributes ) { - - // show errors - if( attributes.acf_errors ) { - this.$el.addClass('acf-disabled'); - } - - // disable selected - var selected = popup.get('selected'); - if( selected && selected.indexOf(attributes.id) > -1 ) { - this.$el.addClass('acf-selected'); - } - } - - // render - return AttachmentLibrary.prototype.render.apply( this, arguments ); - - }, - - - /* - * toggleSelection - * - * This function is called before an attachment is selected - * A good place to check for errors and prevent the 'select' function from being fired - * - * @type function - * @date 29/09/2016 - * @since 5.4.0 - * - * @param options (object) - * @return n/a - */ - - toggleSelection: function( options ) { - - // vars - // source: wp-includes/js/media-views.js:2880 - var collection = this.collection, - selection = this.options.selection, - model = this.model, - single = selection.single(); - - - // vars - var frame = this.controller; - var errors = acf.isget(this, 'model', 'attributes', 'acf_errors'); - var $sidebar = frame.$el.find('.media-frame-content .media-sidebar'); - - // remove previous error - $sidebar.children('.acf-selection-error').remove(); - - // show attachment details - $sidebar.children().removeClass('acf-hidden'); - - // add message - if( frame && errors ) { - - // vars - var filename = acf.isget(this, 'model', 'attributes', 'filename'); - - // hide attachment details - // Gallery field continues to show previously selected attachment... - $sidebar.children().addClass('acf-hidden'); - - // append message - $sidebar.prepend([ - '
                        ', - '' + acf.__('Restricted') +'', - '' + filename + '', - '' + errors + '', - '
                        ' - ].join('')); - - // reset selection (unselects all attachments) - selection.reset(); - - // set single (attachment displayed in sidebar) - selection.single( model ); - - // return and prevent 'select' form being fired - return; - - } - - // return - return AttachmentLibrary.prototype.toggleSelection.apply( this, arguments ); - } - }); - } - }); - -})(jQuery); - -(function($, undefined){ - - acf.screen = new acf.Model({ - - active: true, - - xhr: false, - - timeout: false, - - wait: 'load', - - events: { - 'change #page_template': 'onChange', - 'change #parent_id': 'onChange', - 'change #post-formats-select': 'onChange', - 'change .categorychecklist': 'onChange', - 'change .tagsdiv': 'onChange', - 'change .acf-taxonomy-field[data-save="1"]': 'onChange', - 'change #product-type': 'onChange' - }, - - isPost: function(){ - return acf.get('screen') === 'post'; - }, - - isUser: function(){ - return acf.get('screen') === 'user'; - }, - - isTaxonomy: function(){ - return acf.get('screen') === 'taxonomy'; - }, - - isAttachment: function(){ - return acf.get('screen') === 'attachment'; - }, - - isNavMenu: function(){ - return acf.get('screen') === 'nav_menu'; - }, - - isWidget: function(){ - return acf.get('screen') === 'widget'; - }, - - isComment: function(){ - return acf.get('screen') === 'comment'; - }, - - getPageTemplate: function(){ - var $el = $('#page_template'); - return $el.length ? $el.val() : null; - }, - - getPageParent: function( e, $el ){ - var $el = $('#parent_id'); - return $el.length ? $el.val() : null; - }, - - getPageType: function( e, $el ){ - return this.getPageParent() ? 'child' : 'parent'; - }, - - getPostType: function(){ - return $('#post_type').val(); - }, - - getPostFormat: function( e, $el ){ - var $el = $('#post-formats-select input:checked'); - if( $el.length ) { - var val = $el.val(); - return (val == '0') ? 'standard' : val; - } - return null; - }, - - getPostCoreTerms: function(){ - - // vars - var terms = {}; - - // serialize WP taxonomy postboxes - var data = acf.serialize( $('.categorydiv, .tagsdiv') ); - - // use tax_input (tag, custom-taxonomy) when possible. - // this data is already formatted in taxonomy => [terms]. - if( data.tax_input ) { - terms = data.tax_input; - } - - // append "category" which uses a different name - if( data.post_category ) { - terms.category = data.post_category; - } - - // convert any string values (tags) into array format - for( var tax in terms ) { - if( !acf.isArray(terms[tax]) ) { - terms[tax] = terms[tax].split(/,[\s]?/); - } - } - - // return - return terms; - }, - - getPostTerms: function(){ - - // Get core terms. - var terms = this.getPostCoreTerms(); - - // loop over taxonomy fields and add their values - acf.getFields({type: 'taxonomy'}).map(function( field ){ - - // ignore fields that don't save - if( !field.get('save') ) { - return; - } - - // vars - var val = field.val(); - var tax = field.get('taxonomy'); - - // check val - if( val ) { - - // ensure terms exists - terms[ tax ] = terms[ tax ] || []; - - // ensure val is an array - val = acf.isArray(val) ? val : [val]; - - // append - terms[ tax ] = terms[ tax ].concat( val ); - } - }); - - // add WC product type - if( (productType = this.getProductType()) !== null ) { - terms.product_type = [productType]; - } - - // remove duplicate values - for( var tax in terms ) { - terms[tax] = acf.uniqueArray(terms[tax]); - } - - // return - return terms; - }, - - getProductType: function(){ - var $el = $('#product-type'); - return $el.length ? $el.val() : null; - }, - - check: function(){ - - // bail early if not for post - if( acf.get('screen') !== 'post' ) { - return; - } - - // abort XHR if is already loading AJAX data - if( this.xhr ) { - this.xhr.abort(); - } - - // vars - var ajaxData = acf.parseArgs(this.data, { - action: 'acf/ajax/check_screen', - screen: acf.get('screen'), - exists: [] - }); - - // post id - if( this.isPost() ) { - ajaxData.post_id = acf.get('post_id'); - } - - // post type - if( (postType = this.getPostType()) !== null ) { - ajaxData.post_type = postType; - } - - // page template - if( (pageTemplate = this.getPageTemplate()) !== null ) { - ajaxData.page_template = pageTemplate; - } - - // page parent - if( (pageParent = this.getPageParent()) !== null ) { - ajaxData.page_parent = pageParent; - } - - // page type - if( (pageType = this.getPageType()) !== null ) { - ajaxData.page_type = pageType; - } - - // post format - if( (postFormat = this.getPostFormat()) !== null ) { - ajaxData.post_format = postFormat; - } - - // post terms - if( (postTerms = this.getPostTerms()) !== null ) { - ajaxData.post_terms = postTerms; - } - - // add array of existing postboxes to increase performance and reduce JSON HTML - acf.getPostboxes().map(function( postbox ){ - ajaxData.exists.push( postbox.get('key') ); - }); - - // filter - ajaxData = acf.applyFilters('check_screen_args', ajaxData); - - // success - var onSuccess = function( json ){ - - // Render post screen. - if( acf.get('screen') == 'post' ) { - this.renderPostScreen( json ); - - // Render user screen. - } else if( acf.get('screen') == 'user' ) { - this.renderUserScreen( json ); - } - - // action - acf.doAction('check_screen_complete', json, ajaxData); - }; - - // ajax - this.xhr = $.ajax({ - url: acf.get('ajaxurl'), - data: acf.prepareForAjax( ajaxData ), - type: 'post', - dataType: 'json', - context: this, - success: onSuccess - }); - }, - - onChange: function( e, $el ){ - this.setTimeout(this.check, 1); - }, - - renderPostScreen: function( data ){ - - // Helper function to copy events - var copyEvents = function( $from, $to ){ - var events = $._data($from[0]).events; - for( var type in events ) { - for( var i = 0; i < events[type].length; i++ ) { - $to.on( type, events[type][i].handler ); - } - } - } - - // Helper function to sort metabox. - var sortMetabox = function( id, ids ){ - - // Find position of id within ids. - var index = ids.indexOf( id ); - - // Bail early if index not found. - if( index == -1 ) { - return false; - } - - // Loop over metaboxes behind (in reverse order). - for( var i = index-1; i >= 0; i-- ) { - if( $('#'+ids[i]).length ) { - return $('#'+ids[i]).after( $('#'+id) ); - } - } - - // Loop over metaboxes infront. - for( var i = index+1; i < ids.length; i++ ) { - if( $('#'+ids[i]).length ) { - return $('#'+ids[i]).before( $('#'+id) ); - } - } - - // Return false if not sorted. - return false; - }; - - // Keep track of visible and hidden postboxes. - data.visible = []; - data.hidden = []; - - // Show these postboxes. - data.results = data.results.map(function( result, i ){ - - // vars - var postbox = acf.getPostbox( result.id ); - - // Prevent "acf_after_title" position in Block Editor. - if( acf.isGutenberg() && result.position == "acf_after_title" ) { - result.position = 'normal'; - } - - // Create postbox if doesn't exist. - if( !postbox ) { - var wpMinorVersion = parseFloat( acf.get('wp_version') ); - if( wpMinorVersion >= 5.5 ) { - var postboxHeader = [ - '
                        ', - '

                        ', - '' + acf.escHtml( result.title ) + '', - '

                        ', - '
                        ', - '', - '
                        ', - '
                        ' - ].join(''); - } else { - var postboxHeader = [ - '', - '

                        ', - '' + acf.escHtml( result.title ) + '', - '

                        ', - ].join(''); - } - - // Create it. - var $postbox = $([ - '
                        ', - postboxHeader, - '
                        ', - result.html, - '
                        ', - '
                        ' - ].join('')); - - // Create new hide toggle. - if( $('#adv-settings').length ) { - var $prefs = $('#adv-settings .metabox-prefs'); - var $label = $([ - '' - ].join('')); - - // Copy default WP events onto checkbox. - copyEvents( $prefs.find('input').first(), $label.find('input') ); - - // Append hide label - $prefs.append( $label ); - } - - // Copy default WP events onto metabox. - if( $('.postbox').length ) { - copyEvents( $('.postbox .handlediv').first(), $postbox.children('.handlediv') ); - copyEvents( $('.postbox .hndle').first(), $postbox.children('.hndle') ); - } - - // Append metabox to the bottom of "side-sortables". - if( result.position === 'side' ) { - $('#' + result.position + '-sortables').append( $postbox ); - - // Prepend metabox to the top of "normal-sortbables". - } else { - $('#' + result.position + '-sortables').prepend( $postbox ); - } - - // Position metabox amongst existing ACF metaboxes within the same location. - var order = []; - data.results.map(function( _result ){ - if( result.position === _result.position && $('#' + result.position + '-sortables #' + _result.id).length ) { - order.push( _result.id ); - } - }); - sortMetabox(result.id, order) - - // Check 'sorted' for user preference. - if( data.sorted ) { - - // Loop over each position (acf_after_title, side, normal). - for( var position in data.sorted ) { - - // Explode string into array of ids. - var order = data.sorted[position].split(','); - - // Position metabox relative to order. - if( sortMetabox(result.id, order) ) { - break; - } - } - } - - // Initalize it (modifies HTML). - postbox = acf.newPostbox( result ); - - // Trigger action. - acf.doAction('append', $postbox); - acf.doAction('append_postbox', postbox); - } - - // show postbox - postbox.showEnable(); - - // append - data.visible.push( result.id ); - - // Return result (may have changed). - return result; - }); - - // Hide these postboxes. - acf.getPostboxes().map(function( postbox ){ - if( data.visible.indexOf( postbox.get('id') ) === -1 ) { - - // Hide postbox. - postbox.hideDisable(); - - // Append to data. - data.hidden.push( postbox.get('id') ); - } - }); - - // Update style. - $('#acf-style').html( data.style ); - - // Do action. - acf.doAction( 'refresh_post_screen', data ); - }, - - renderUserScreen: function( json ){ - - } - }); - - /** - * gutenScreen - * - * Adds compatibility with the Gutenberg edit screen. - * - * @date 11/12/18 - * @since 5.8.0 - * - * @param void - * @return void - */ - var gutenScreen = new acf.Model({ - - // Keep a reference to the most recent post attributes. - postEdits: {}, - - // Wait until assets have been loaded. - wait: 'prepare', - - initialize: function(){ - - // Bail early if not Gutenberg. - if( !acf.isGutenberg() ) { - return; - } - - // Listen for changes (use debounced version as this can fires often). - wp.data.subscribe( acf.debounce(this.onChange).bind(this) ); - - // Customize "acf.screen.get" functions. - acf.screen.getPageTemplate = this.getPageTemplate; - acf.screen.getPageParent = this.getPageParent; - acf.screen.getPostType = this.getPostType; - acf.screen.getPostFormat = this.getPostFormat; - acf.screen.getPostCoreTerms = this.getPostCoreTerms; - - // Disable unload - acf.unload.disable(); - - // Refresh metaboxes since WP 5.3. - var wpMinorVersion = parseFloat( acf.get('wp_version') ); - if( wpMinorVersion >= 5.3 ) { - this.addAction( 'refresh_post_screen', this.onRefreshPostScreen ); - } - - // Trigger "refresh" after WP has moved metaboxes into place. - wp.domReady( acf.refresh ); - }, - - onChange: function(){ - - // Determine attributes that can trigger a refresh. - var attributes = [ 'template', 'parent', 'format' ]; - - // Append taxonomy attribute names to this list. - ( wp.data.select( 'core' ).getTaxonomies() || [] ).map(function( taxonomy ){ - attributes.push( taxonomy.rest_base ); - }); - - // Get relevant current post edits. - var _postEdits = wp.data.select( 'core/editor' ).getPostEdits(); - var postEdits = {}; - attributes.map(function( k ){ - if( _postEdits[k] !== undefined ) { - postEdits[k] = _postEdits[k]; - } - }); - - // Detect change. - if( JSON.stringify(postEdits) !== JSON.stringify(this.postEdits) ) { - this.postEdits = postEdits; - - // Check screen. - acf.screen.check(); - } - }, - - getPageTemplate: function(){ - return wp.data.select( 'core/editor' ).getEditedPostAttribute( 'template' ); - }, - - getPageParent: function( e, $el ){ - return wp.data.select( 'core/editor' ).getEditedPostAttribute( 'parent' ); - }, - - getPostType: function(){ - return wp.data.select( 'core/editor' ).getEditedPostAttribute( 'type' ); - }, - - getPostFormat: function( e, $el ){ - return wp.data.select( 'core/editor' ).getEditedPostAttribute( 'format' ); - }, - - getPostCoreTerms: function(){ - - // vars - var terms = {}; - - // Loop over taxonomies. - var taxonomies = wp.data.select( 'core' ).getTaxonomies() || []; - taxonomies.map(function( taxonomy ){ - - // Append selected taxonomies to terms object. - var postTerms = wp.data.select( 'core/editor' ).getEditedPostAttribute( taxonomy.rest_base ); - if( postTerms ) { - terms[ taxonomy.slug ] = postTerms; - } - }); - - // return - return terms; - }, - - /** - * onRefreshPostScreen - * - * Fires after the Post edit screen metaboxs are refreshed to update the Block Editor API state. - * - * @date 11/11/19 - * @since 5.8.7 - * - * @param object data The "check_screen" JSON response data. - * @return void - */ - onRefreshPostScreen: function( data ) { - - // Extract vars. - var select = wp.data.select( 'core/edit-post' ); - var dispatch = wp.data.dispatch( 'core/edit-post' ); - - // Load current metabox locations and data. - var locations = {}; - select.getActiveMetaBoxLocations().map(function( location ){ - locations[ location ] = select.getMetaBoxesPerLocation( location ); - }); - - // Generate flat array of existing ids. - var ids = []; - for( var k in locations ) { - locations[k].map(function( m ){ - ids.push( m.id ); - }); - } - - // Append new ACF metaboxes (ignore those which already exist). - data.results.filter(function( r ){ - return ( ids.indexOf( r.id ) === -1 ); - }).map(function( result, i ){ - - // Ensure location exists. - var location = result.position; - locations[ location ] = locations[ location ] || []; - - // Append. - locations[ location ].push({ - id: result.id, - title: result.title - }); - }); - - // Remove hidden ACF metaboxes. - for( var k in locations ) { - locations[k] = locations[k].filter(function( m ){ - return ( data.hidden.indexOf( m.id ) === -1 ); - }); - } - - // Update state. - dispatch.setAvailableMetaBoxesPerLocation( locations ); - } - }); - -})(jQuery); - -(function($, undefined){ - - /** - * acf.newSelect2 - * - * description - * - * @date 13/1/18 - * @since 5.6.5 - * - * @param type $var Description. Default. - * @return type Description. - */ - - acf.newSelect2 = function( $select, props ){ - - // defaults - props = acf.parseArgs(props, { - allowNull: false, - placeholder: '', - multiple: false, - field: false, - ajax: false, - ajaxAction: '', - ajaxData: function( data ){ return data; }, - ajaxResults: function( json ){ return json; }, - }); - - // initialize - if( getVersion() == 4 ) { - var select2 = new Select2_4( $select, props ); - } else { - var select2 = new Select2_3( $select, props ); - } - - // actions - acf.doAction('new_select2', select2); - - // return - return select2; - }; - - /** - * getVersion - * - * description - * - * @date 13/1/18 - * @since 5.6.5 - * - * @param type $var Description. Default. - * @return type Description. - */ - - function getVersion() { - - // v4 - if( acf.isset(window, 'jQuery', 'fn', 'select2', 'amd') ) { - return 4; - } - - // v3 - if( acf.isset(window, 'Select2') ) { - return 3; - } - - // return - return false; - } - - /** - * Select2 - * - * description - * - * @date 13/1/18 - * @since 5.6.5 - * - * @param type $var Description. Default. - * @return type Description. - */ - - var Select2 = acf.Model.extend({ - - setup: function( $select, props ){ - $.extend(this.data, props); - this.$el = $select; - }, - - initialize: function(){ - - }, - - selectOption: function( value ){ - var $option = this.getOption( value ); - if( !$option.prop('selected') ) { - $option.prop('selected', true).trigger('change'); - } - }, - - unselectOption: function( value ){ - var $option = this.getOption( value ); - if( $option.prop('selected') ) { - $option.prop('selected', false).trigger('change'); - } - }, - - getOption: function( value ){ - return this.$('option[value="' + value + '"]'); - }, - - addOption: function( option ){ - - // defaults - option = acf.parseArgs(option, { - id: '', - text: '', - selected: false - }); - - // vars - var $option = this.getOption( option.id ); - - // append - if( !$option.length ) { - $option = $(''); - $option.html( option.text ); - $option.attr('value', option.id); - $option.prop('selected', option.selected); - this.$el.append($option); - } - - // chain - return $option; - }, - - getValue: function(){ - - // vars - var val = []; - var $options = this.$el.find('option:selected'); - - // bail early if no selected - if( !$options.exists() ) { - return val; - } - - // sort by attribute - $options = $options.sort(function(a, b) { - return +a.getAttribute('data-i') - +b.getAttribute('data-i'); - }); - - // loop - $options.each(function(){ - var $el = $(this); - val.push({ - $el: $el, - id: $el.attr('value'), - text: $el.text(), - }); - }); - - // return - return val; - - }, - - mergeOptions: function(){ - - }, - - getChoices: function(){ - - // callback - var crawl = function( $parent ){ - - // vars - var choices = []; - - // loop - $parent.children().each(function(){ - - // vars - var $child = $(this); - - // optgroup - if( $child.is('optgroup') ) { - - choices.push({ - text: $child.attr('label'), - children: crawl( $child ) - }); - - // option - } else { - - choices.push({ - id: $child.attr('value'), - text: $child.text() - }); - } - }); - - // return - return choices; - }; - - // crawl - return crawl( this.$el ); - }, - - getAjaxData: function( params ){ - - // vars - var ajaxData = { - action: this.get('ajaxAction'), - s: params.term || '', - paged: params.page || 1 - }; - - // field helper - var field = this.get('field'); - if( field ) { - ajaxData.field_key = field.get('key'); - } - - // callback - var callback = this.get('ajaxData'); - if( callback ) { - ajaxData = callback.apply( this, [ajaxData, params] ); - } - - // filter - ajaxData = acf.applyFilters( 'select2_ajax_data', ajaxData, this.data, this.$el, (field || false), this ); - - // return - return acf.prepareForAjax(ajaxData); - }, - - getAjaxResults: function( json, params ){ - - // defaults - json = acf.parseArgs(json, { - results: false, - more: false, - }); - - // callback - var callback = this.get('ajaxResults'); - if( callback ) { - json = callback.apply( this, [json, params] ); - } - - // filter - json = acf.applyFilters( 'select2_ajax_results', json, params, this ); - - // return - return json; - }, - - processAjaxResults: function( json, params ){ - - // vars - var json = this.getAjaxResults( json, params ); - - // change more to pagination - if( json.more ) { - json.pagination = { more: true }; - } - - // merge together groups - setTimeout($.proxy(this.mergeOptions, this), 1); - - // return - return json; - }, - - destroy: function(){ - - // destroy via api - if( this.$el.data('select2') ) { - this.$el.select2('destroy'); - } - - // destory via HTML (duplicating HTML does not contain data) - this.$el.siblings('.select2-container').remove(); - } - - }); - - - /** - * Select2_4 - * - * description - * - * @date 13/1/18 - * @since 5.6.5 - * - * @param type $var Description. Default. - * @return type Description. - */ - - var Select2_4 = Select2.extend({ - - initialize: function(){ - - // vars - var $select = this.$el; - var options = { - width: '100%', - allowClear: this.get('allowNull'), - placeholder: this.get('placeholder'), - multiple: this.get('multiple'), - data: [], - escapeMarkup: function( string ){ - return acf.escHtml( string ); - }, - }; - - // multiple - if( options.multiple ) { - - // reorder options - this.getValue().map(function( item ){ - item.$el.detach().appendTo( $select ); - }); - } - - // remove conflicting atts - $select.removeData('ajax'); - $select.removeAttr('data-ajax'); - - // ajax - if( this.get('ajax') ) { - - options.ajax = { - url: acf.get('ajaxurl'), - delay: 250, - dataType: 'json', - type: 'post', - cache: false, - data: $.proxy(this.getAjaxData, this), - processResults: $.proxy(this.processAjaxResults, this), - }; - } - - // filter for 3rd party customization - //options = acf.applyFilters( 'select2_args', options, $select, this ); - var field = this.get('field'); - options = acf.applyFilters( 'select2_args', options, $select, this.data, (field || false), this ); - - // add select2 - $select.select2( options ); - - // get container (Select2 v4 does not return this from constructor) - var $container = $select.next('.select2-container'); - - // multiple - if( options.multiple ) { - - // vars - var $ul = $container.find('ul'); - - // sortable - $ul.sortable({ - stop: function( e ) { - - // loop - $ul.find('.select2-selection__choice').each(function() { - - // vars - var $option = $( $(this).data('data').element ); - - // detach and re-append to end - $option.detach().appendTo( $select ); - }); - - // trigger change on input (JS error if trigger on select) - $select.trigger('change'); - } - }); - - // on select, move to end - $select.on('select2:select', this.proxy(function( e ){ - this.getOption( e.params.data.id ).detach().appendTo( this.$el ); - })); - } - - // add class - $container.addClass('-acf'); - - // action for 3rd party customization - acf.doAction('select2_init', $select, options, this.data, (field || false), this); - }, - - mergeOptions: function(){ - - // vars - var $prevOptions = false; - var $prevGroup = false; - - // loop - $('.select2-results__option[role="group"]').each(function(){ - - // vars - var $options = $(this).children('ul'); - var $group = $(this).children('strong'); - - // compare to previous - if( $prevGroup && $prevGroup.text() === $group.text() ) { - $prevOptions.append( $options.children() ); - $(this).remove(); - return; - } - - // update vars - $prevOptions = $options; - $prevGroup = $group; - - }); - }, - - }); - - /** - * Select2_3 - * - * description - * - * @date 13/1/18 - * @since 5.6.5 - * - * @param type $var Description. Default. - * @return type Description. - */ - - var Select2_3 = Select2.extend({ - - initialize: function(){ - - // vars - var $select = this.$el; - var value = this.getValue(); - var multiple = this.get('multiple'); - var options = { - width: '100%', - allowClear: this.get('allowNull'), - placeholder: this.get('placeholder'), - separator: '||', - multiple: this.get('multiple'), - data: this.getChoices(), - escapeMarkup: function( string ){ - return acf.escHtml( string ); - }, - dropdownCss: { - 'z-index': '999999999' - }, - initSelection: function( element, callback ) { - if( multiple ) { - callback( value ); - } else { - callback( value.shift() ); - } - } - }; - - // get hidden input - var $input = $select.siblings('input'); - if( !$input.length ) { - $input = $(''); - $select.before( $input ); - } - - // set input value - inputValue = value.map(function(item){ return item.id }).join('||'); - $input.val( inputValue ); - - // multiple - if( options.multiple ) { - - // reorder options - value.map(function( item ){ - item.$el.detach().appendTo( $select ); - }); - } - - // remove blank option as we have a clear all button - if( options.allowClear ) { - options.data = options.data.filter(function(item){ - return item.id !== ''; - }); - } - - // remove conflicting atts - $select.removeData('ajax'); - $select.removeAttr('data-ajax'); - - // ajax - if( this.get('ajax') ) { - - options.ajax = { - url: acf.get('ajaxurl'), - quietMillis: 250, - dataType: 'json', - type: 'post', - cache: false, - data: $.proxy(this.getAjaxData, this), - results: $.proxy(this.processAjaxResults, this), - }; - } - - // filter for 3rd party customization - var field = this.get('field'); - options = acf.applyFilters( 'select2_args', options, $select, this.data, (field || false), this ); - - // add select2 - $input.select2( options ); - - // get container - var $container = $input.select2('container'); - - // helper to find this select's option - var getOption = $.proxy(this.getOption, this); - - // multiple - if( options.multiple ) { - - // vars - var $ul = $container.find('ul'); - - // sortable - $ul.sortable({ - stop: function() { - - // loop - $ul.find('.select2-search-choice').each(function() { - - // vars - var data = $(this).data('select2Data'); - var $option = getOption( data.id ); - - // detach and re-append to end - $option.detach().appendTo( $select ); - }); - - // trigger change on input (JS error if trigger on select) - $select.trigger('change'); - } - }); - } - - // on select, create option and move to end - $input.on('select2-selecting', function( e ){ - - // vars - var item = e.choice; - var $option = getOption( item.id ); - - // create if doesn't exist - if( !$option.length ) { - $option = $(''); - } - - // detach and re-append to end - $option.detach().appendTo( $select ); - }); - - // add class - $container.addClass('-acf'); - - // action for 3rd party customization - acf.doAction('select2_init', $select, options, this.data, (field || false), this); - - // change - $input.on('change', function(){ - var val = $input.val(); - if( val.indexOf('||') ) { - val = val.split('||'); - } - $select.val( val ).trigger('change'); - }); - - // hide select - $select.hide(); - }, - - mergeOptions: function(){ - - // vars - var $prevOptions = false; - var $prevGroup = false; - - // loop - $('#select2-drop .select2-result-with-children').each(function(){ - - // vars - var $options = $(this).children('ul'); - var $group = $(this).children('.select2-result-label'); - - // compare to previous - if( $prevGroup && $prevGroup.text() === $group.text() ) { - $prevGroup.append( $options.children() ); - $(this).remove(); - return; - } - - // update vars - $prevOptions = $options; - $prevGroup = $group; - - }); - - }, - - getAjaxData: function( term, page ){ - - // create Select2 v4 params - var params = { - term: term, - page: page - } - - // return - return Select2.prototype.getAjaxData.apply(this, [params]); - }, - - }); - - - // manager - var select2Manager = new acf.Model({ - priority: 5, - wait: 'prepare', - actions: { - 'duplicate': 'onDuplicate' - }, - initialize: function(){ - - // vars - var locale = acf.get('locale'); - var rtl = acf.get('rtl'); - var l10n = acf.get('select2L10n'); - var version = getVersion(); - - // bail ealry if no l10n - if( !l10n ) { - return false; - } - - // bail early if 'en' - if( locale.indexOf('en') === 0 ) { - return false; - } - - // initialize - if( version == 4 ) { - this.addTranslations4(); - } else if( version == 3 ) { - this.addTranslations3(); - } - }, - - addTranslations4: function(){ - - // vars - var l10n = acf.get('select2L10n'); - var locale = acf.get('locale'); - - // modify local to match html[lang] attribute (used by Select2) - locale = locale.replace('_', '-'); - - // select2L10n - var select2L10n = { - errorLoading: function () { - return l10n.load_fail; - }, - inputTooLong: function (args) { - var overChars = args.input.length - args.maximum; - if( overChars > 1 ) { - return l10n.input_too_long_n.replace( '%d', overChars ); - } - return l10n.input_too_long_1; - }, - inputTooShort: function( args ){ - var remainingChars = args.minimum - args.input.length; - if( remainingChars > 1 ) { - return l10n.input_too_short_n.replace( '%d', remainingChars ); - } - return l10n.input_too_short_1; - }, - loadingMore: function () { - return l10n.load_more; - }, - maximumSelected: function( args ) { - var maximum = args.maximum; - if( maximum > 1 ) { - return l10n.selection_too_long_n.replace( '%d', maximum ); - } - return l10n.selection_too_long_1; - }, - noResults: function () { - return l10n.matches_0; - }, - searching: function () { - return l10n.searching; - } - }; - - // append - jQuery.fn.select2.amd.define('select2/i18n/' + locale, [], function(){ - return select2L10n; - }); - }, - - addTranslations3: function(){ - - // vars - var l10n = acf.get('select2L10n'); - var locale = acf.get('locale'); - - // modify local to match html[lang] attribute (used by Select2) - locale = locale.replace('_', '-'); - - // select2L10n - var select2L10n = { - formatMatches: function( matches ) { - if( matches > 1 ) { - return l10n.matches_n.replace( '%d', matches ); - } - return l10n.matches_1; - }, - formatNoMatches: function() { - return l10n.matches_0; - }, - formatAjaxError: function() { - return l10n.load_fail; - }, - formatInputTooShort: function( input, min ) { - var remainingChars = min - input.length; - if( remainingChars > 1 ) { - return l10n.input_too_short_n.replace( '%d', remainingChars ); - } - return l10n.input_too_short_1; - }, - formatInputTooLong: function( input, max ) { - var overChars = input.length - max; - if( overChars > 1 ) { - return l10n.input_too_long_n.replace( '%d', overChars ); - } - return l10n.input_too_long_1; - }, - formatSelectionTooBig: function( maximum ) { - if( maximum > 1 ) { - return l10n.selection_too_long_n.replace( '%d', maximum ); - } - return l10n.selection_too_long_1; - }, - formatLoadMore: function() { - return l10n.load_more; - }, - formatSearching: function() { - return l10n.searching; - } - }; - - // ensure locales exists - $.fn.select2.locales = $.fn.select2.locales || {}; - - // append - $.fn.select2.locales[ locale ] = select2L10n; - $.extend($.fn.select2.defaults, select2L10n); - }, - - onDuplicate: function( $el, $el2 ){ - $el2.find('.select2-container').remove(); - } - - }); - -})(jQuery); - -(function($, undefined){ - - acf.tinymce = { - - /* - * defaults - * - * This function will return default mce and qt settings - * - * @type function - * @date 18/8/17 - * @since 5.6.0 - * - * @param $post_id (int) - * @return $post_id (int) - */ - - defaults: function(){ - - // bail early if no tinyMCEPreInit - if( typeof tinyMCEPreInit === 'undefined' ) return false; - - // vars - var defaults = { - tinymce: tinyMCEPreInit.mceInit.acf_content, - quicktags: tinyMCEPreInit.qtInit.acf_content - }; - - // return - return defaults; - }, - - - /* - * initialize - * - * This function will initialize the tinymce and quicktags instances - * - * @type function - * @date 18/8/17 - * @since 5.6.0 - * - * @param $post_id (int) - * @return $post_id (int) - */ - - initialize: function( id, args ){ - - // defaults - args = acf.parseArgs(args, { - tinymce: true, - quicktags: true, - toolbar: 'full', - mode: 'visual', // visual,text - field: false - }); - - // tinymce - if( args.tinymce ) { - this.initializeTinymce( id, args ); - } - - // quicktags - if( args.quicktags ) { - this.initializeQuicktags( id, args ); - } - }, - - - /* - * initializeTinymce - * - * This function will initialize the tinymce instance - * - * @type function - * @date 18/8/17 - * @since 5.6.0 - * - * @param $post_id (int) - * @return $post_id (int) - */ - - initializeTinymce: function( id, args ){ - - // vars - var $textarea = $('#'+id); - var defaults = this.defaults(); - var toolbars = acf.get('toolbars'); - var field = args.field || false; - var $field = field.$el || false; - - // bail early - if( typeof tinymce === 'undefined' ) return false; - if( !defaults ) return false; - - // check if exists - if( tinymce.get(id) ) { - return this.enable( id ); - } - - // settings - var init = $.extend( {}, defaults.tinymce, args.tinymce ); - init.id = id; - init.selector = '#' + id; - - // toolbar - var toolbar = args.toolbar; - if( toolbar && toolbars && toolbars[toolbar] ) { - - for( var i = 1; i <= 4; i++ ) { - init[ 'toolbar' + i ] = toolbars[toolbar][i] || ''; - } - } - - // event - init.setup = function( ed ){ - - ed.on('change', function(e) { - ed.save(); // save to textarea - $textarea.trigger('change'); - }); - - // Fix bug where Gutenberg does not hear "mouseup" event and tries to select multiple blocks. - ed.on('mouseup', function(e) { - var event = new MouseEvent('mouseup'); - window.dispatchEvent(event); - }); - - // Temporarily comment out. May not be necessary due to wysiwyg field actions. - //ed.on('unload', function(e) { - // acf.tinymce.remove( id ); - //}); - }; - - // disable wp_autoresize_on (no solution yet for fixed toolbar) - init.wp_autoresize_on = false; - - // Enable wpautop allowing value to save without

                        tags. - // Only if the "TinyMCE Advanced" plugin hasn't already set this functionality. - if( !init.tadv_noautop ) { - init.wpautop = true; - } - - // hook for 3rd party customization - init = acf.applyFilters('wysiwyg_tinymce_settings', init, id, field); - - // z-index fix (caused too many conflicts) - //if( acf.isset(tinymce,'ui','FloatPanel') ) { - // tinymce.ui.FloatPanel.zIndex = 900000; - //} - - // store settings - tinyMCEPreInit.mceInit[ id ] = init; - - // visual tab is active - if( args.mode == 'visual' ) { - - // init - var result = tinymce.init( init ); - - // get editor - var ed = tinymce.get( id ); - - // validate - if( !ed ) { - return false; - } - - // add reference - ed.acf = args.field; - - // action - acf.doAction('wysiwyg_tinymce_init', ed, ed.id, init, field); - } - }, - - /* - * initializeQuicktags - * - * This function will initialize the quicktags instance - * - * @type function - * @date 18/8/17 - * @since 5.6.0 - * - * @param $post_id (int) - * @return $post_id (int) - */ - - initializeQuicktags: function( id, args ){ - - // vars - var defaults = this.defaults(); - - // bail early - if( typeof quicktags === 'undefined' ) return false; - if( !defaults ) return false; - - // settings - var init = $.extend( {}, defaults.quicktags, args.quicktags ); - init.id = id; - - // filter - var field = args.field || false; - var $field = field.$el || false; - init = acf.applyFilters('wysiwyg_quicktags_settings', init, init.id, field); - - // store settings - tinyMCEPreInit.qtInit[ id ] = init; - - // init - var ed = quicktags( init ); - - // validate - if( !ed ) { - return false; - } - - // generate HTML - this.buildQuicktags( ed ); - - // action for 3rd party customization - acf.doAction('wysiwyg_quicktags_init', ed, ed.id, init, field); - }, - - - /* - * buildQuicktags - * - * This function will build the quicktags HTML - * - * @type function - * @date 18/8/17 - * @since 5.6.0 - * - * @param $post_id (int) - * @return $post_id (int) - */ - - buildQuicktags: function( ed ){ - - var canvas, name, settings, theButtons, html, ed, id, i, use, instanceId, - defaults = ',strong,em,link,block,del,ins,img,ul,ol,li,code,more,close,'; - - canvas = ed.canvas; - name = ed.name; - settings = ed.settings; - html = ''; - theButtons = {}; - use = ''; - instanceId = ed.id; - - // set buttons - if ( settings.buttons ) { - use = ','+settings.buttons+','; - } - - for ( i in edButtons ) { - if ( ! edButtons[i] ) { - continue; - } - - id = edButtons[i].id; - if ( use && defaults.indexOf( ',' + id + ',' ) !== -1 && use.indexOf( ',' + id + ',' ) === -1 ) { - continue; - } - - if ( ! edButtons[i].instance || edButtons[i].instance === instanceId ) { - theButtons[id] = edButtons[i]; - - if ( edButtons[i].html ) { - html += edButtons[i].html( name + '_' ); - } - } - } - - if ( use && use.indexOf(',dfw,') !== -1 ) { - theButtons.dfw = new QTags.DFWButton(); - html += theButtons.dfw.html( name + '_' ); - } - - if ( 'rtl' === document.getElementsByTagName( 'html' )[0].dir ) { - theButtons.textdirection = new QTags.TextDirectionButton(); - html += theButtons.textdirection.html( name + '_' ); - } - - ed.toolbar.innerHTML = html; - ed.theButtons = theButtons; - - if ( typeof jQuery !== 'undefined' ) { - jQuery( document ).triggerHandler( 'quicktags-init', [ ed ] ); - } - - }, - - disable: function( id ){ - this.destroyTinymce( id ); - }, - - remove: function( id ){ - this.destroyTinymce( id ); - }, - - destroy: function( id ){ - this.destroyTinymce( id ); - }, - - destroyTinymce: function( id ){ - - // bail early - if( typeof tinymce === 'undefined' ) return false; - - // get editor - var ed = tinymce.get( id ); - - // bail early if no editor - if( !ed ) return false; - - // save - ed.save(); - - // destroy editor - ed.destroy(); - - // return - return true; - }, - - enable: function( id ){ - this.enableTinymce( id ); - }, - - enableTinymce: function( id ){ - - // bail early - if( typeof switchEditors === 'undefined' ) return false; - - // bail ealry if not initialized - if( typeof tinyMCEPreInit.mceInit[ id ] === 'undefined' ) return false; - - // Ensure textarea element is visible - // - Fixes bug in block editor when switching between "Block" and "Document" tabs. - $('#'+id).show(); - - // toggle - switchEditors.go( id, 'tmce'); - - // return - return true; - } - }; - - var editorManager = new acf.Model({ - - // hook in before fieldsEventManager, conditions, etc - priority: 5, - - actions: { - 'prepare': 'onPrepare', - 'ready': 'onReady', - }, - onPrepare: function(){ - - // find hidden editor which may exist within a field - var $div = $('#acf-hidden-wp-editor'); - - // move to footer - if( $div.exists() ) { - $div.appendTo('body'); - } - }, - onReady: function(){ - - // Restore wp.editor functions used by tinymce removed in WP5. - if( acf.isset(window,'wp','oldEditor') ) { - wp.editor.autop = wp.oldEditor.autop; - wp.editor.removep = wp.oldEditor.removep; - } - - // bail early if no tinymce - if( !acf.isset(window,'tinymce','on') ) return; - - // restore default activeEditor - tinymce.on('AddEditor', function( data ){ - - // vars - var editor = data.editor; - - // bail early if not 'acf' - if( editor.id.substr(0, 3) !== 'acf' ) return; - - // override if 'content' exists - editor = tinymce.editors.content || editor; - - // update vars - tinymce.activeEditor = editor; - wpActiveEditor = editor.id; - }); - } - }); - -})(jQuery); - -(function($, undefined){ - - /** - * Validator - * - * The model for validating forms - * - * @date 4/9/18 - * @since 5.7.5 - * - * @param void - * @return void - */ - var Validator = acf.Model.extend({ - - /** @var string The model identifier. */ - id: 'Validator', - - /** @var object The model data. */ - data: { - - /** @var array The form errors. */ - errors: [], - - /** @var object The form notice. */ - notice: null, - - /** @var string The form status. loading, invalid, valid */ - status: '' - }, - - /** @var object The model events. */ - events: { - 'changed:status': 'onChangeStatus' - }, - - /** - * addErrors - * - * Adds errors to the form. - * - * @date 4/9/18 - * @since 5.7.5 - * - * @param array errors An array of errors. - * @return void - */ - addErrors: function( errors ){ - errors.map( this.addError, this ); - }, - - /** - * addError - * - * Adds and error to the form. - * - * @date 4/9/18 - * @since 5.7.5 - * - * @param object error An error object containing input and message. - * @return void - */ - addError: function( error ){ - this.data.errors.push( error ); - }, - - /** - * hasErrors - * - * Returns true if the form has errors. - * - * @date 4/9/18 - * @since 5.7.5 - * - * @param void - * @return bool - */ - hasErrors: function(){ - return this.data.errors.length; - }, - - /** - * clearErrors - * - * Removes any errors. - * - * @date 4/9/18 - * @since 5.7.5 - * - * @param void - * @return void - */ - clearErrors: function(){ - return this.data.errors = []; - }, - - /** - * getErrors - * - * Returns the forms errors. - * - * @date 4/9/18 - * @since 5.7.5 - * - * @param void - * @return array - */ - getErrors: function(){ - return this.data.errors; - }, - - /** - * getFieldErrors - * - * Returns the forms field errors. - * - * @date 4/9/18 - * @since 5.7.5 - * - * @param void - * @return array - */ - getFieldErrors: function(){ - - // vars - var errors = []; - var inputs = []; - - // loop - this.getErrors().map(function(error){ - - // bail early if global - if( !error.input ) return; - - // update if exists - var i = inputs.indexOf(error.input); - if( i > -1 ) { - errors[ i ] = error; - - // update - } else { - errors.push( error ); - inputs.push( error.input ); - } - }); - - // return - return errors; - }, - - /** - * getGlobalErrors - * - * Returns the forms global errors (errors without a specific input). - * - * @date 4/9/18 - * @since 5.7.5 - * - * @param void - * @return array - */ - getGlobalErrors: function(){ - - // return array of errors that contain no input - return this.getErrors().filter(function(error){ - return !error.input; - }); - }, - - /** - * showErrors - * - * Displays all errors for this form. - * - * @date 4/9/18 - * @since 5.7.5 - * - * @param void - * @return void - */ - showErrors: function(){ - - // bail early if no errors - if( !this.hasErrors() ) { - return; - } - - // vars - var fieldErrors = this.getFieldErrors(); - var globalErrors = this.getGlobalErrors(); - - // vars - var errorCount = 0; - var $scrollTo = false; - - // loop - fieldErrors.map(function( error ){ - - // get input - var $input = this.$('[name="' + error.input + '"]').first(); - - // if $_POST value was an array, this $input may not exist - if( !$input.length ) { - $input = this.$('[name^="' + error.input + '"]').first(); - } - - // bail early if input doesn't exist - if( !$input.length ) { - return; - } - - // increase - errorCount++; - - // get field - var field = acf.getClosestField( $input ); - - // show error - field.showError( error.message ); - - // set $scrollTo - if( !$scrollTo ) { - $scrollTo = field.$el; - } - }, this); - - // errorMessage - var errorMessage = acf.__('Validation failed'); - globalErrors.map(function( error ){ - errorMessage += '. ' + error.message; - }); - if( errorCount == 1 ) { - errorMessage += '. ' + acf.__('1 field requires attention'); - } else if( errorCount > 1 ) { - errorMessage += '. ' + acf.__('%d fields require attention').replace('%d', errorCount); - } - - // notice - if( this.has('notice') ) { - this.get('notice').update({ - type: 'error', - text: errorMessage - }); - } else { - var notice = acf.newNotice({ - type: 'error', - text: errorMessage, - target: this.$el - }); - this.set('notice', notice); - } - - // if no $scrollTo, set to message - if( !$scrollTo ) { - $scrollTo = this.get('notice').$el; - } - - // timeout - setTimeout(function(){ - $("html, body").animate({ scrollTop: $scrollTo.offset().top - ( $(window).height() / 2 ) }, 500); - }, 10); - }, - - /** - * onChangeStatus - * - * Update the form class when changing the 'status' data - * - * @date 4/9/18 - * @since 5.7.5 - * - * @param object e The event object. - * @param jQuery $el The form element. - * @param string value The new status. - * @param string prevValue The old status. - * @return void - */ - onChangeStatus: function( e, $el, value, prevValue ){ - this.$el.removeClass('is-'+prevValue).addClass('is-'+value); - }, - - /** - * validate - * - * Vaildates the form via AJAX. - * - * @date 4/9/18 - * @since 5.7.5 - * - * @param object args A list of settings to customize the validation process. - * @return bool True if the form is valid. - */ - validate: function( args ){ - - // default args - args = acf.parseArgs(args, { - - // trigger event - event: false, - - // reset the form after submit - reset: false, - - // loading callback - loading: function(){}, - - // complete callback - complete: function(){}, - - // failure callback - failure: function(){}, - - // success callback - success: function( $form ){ - $form.submit(); - } - }); - - // return true if is valid - allows form submit - if( this.get('status') == 'valid' ) { - return true; - } - - // return false if is currently validating - prevents form submit - if( this.get('status') == 'validating' ) { - return false; - } - - // return true if no ACF fields exist (no need to validate) - if( !this.$('.acf-field').length ) { - return true; - } - - // if event is provided, create a new success callback. - if( args.event ) { - var event = $.Event(null, args.event); - args.success = function(){ - acf.enableSubmit( $(event.target) ).trigger( event ); - } - } - - // action for 3rd party - acf.doAction('validation_begin', this.$el); - - // lock form - acf.lockForm( this.$el ); - - // loading callback - args.loading( this.$el, this ); - - // update status - this.set('status', 'validating'); - - // success callback - var onSuccess = function( json ){ - - // validate - if( !acf.isAjaxSuccess(json) ) { - return; - } - - // filter - var data = acf.applyFilters('validation_complete', json.data, this.$el, this); - - // add errors - if( !data.valid ) { - this.addErrors( data.errors ); - } - }; - - // complete - var onComplete = function(){ - - // unlock form - acf.unlockForm( this.$el ); - - // failure - if( this.hasErrors() ) { - - // update status - this.set('status', 'invalid'); - - // action - acf.doAction('validation_failure', this.$el, this); - - // display errors - this.showErrors(); - - // failure callback - args.failure( this.$el, this ); - - // success - } else { - - // update status - this.set('status', 'valid'); - - // remove previous error message - if( this.has('notice') ) { - this.get('notice').update({ - type: 'success', - text: acf.__('Validation successful'), - timeout: 1000 - }); - } - - // action - acf.doAction('validation_success', this.$el, this); - acf.doAction('submit', this.$el); - - // success callback (submit form) - args.success( this.$el, this ); - - // lock form - acf.lockForm( this.$el ); - - // reset - if( args.reset ) { - this.reset(); - } - } - - // complete callback - args.complete( this.$el, this ); - - // clear errors - this.clearErrors(); - }; - - // serialize form data - var data = acf.serialize( this.$el ); - data.action = 'acf/validate_save_post'; - - // ajax - $.ajax({ - url: acf.get('ajaxurl'), - data: acf.prepareForAjax(data), - type: 'post', - dataType: 'json', - context: this, - success: onSuccess, - complete: onComplete - }); - - // return false to fail validation and allow AJAX - return false - }, - - /** - * setup - * - * Called during the constructor function to setup this instance - * - * @date 4/9/18 - * @since 5.7.5 - * - * @param jQuery $form The form element. - * @return void - */ - setup: function( $form ){ - - // set $el - this.$el = $form; - }, - - /** - * reset - * - * Rests the validation to be used again. - * - * @date 6/9/18 - * @since 5.7.5 - * - * @param void - * @return void - */ - reset: function(){ - - // reset data - this.set('errors', []); - this.set('notice', null); - this.set('status', ''); - - // unlock form - acf.unlockForm( this.$el ); - } - }); - - /** - * getValidator - * - * Returns the instance for a given form element. - * - * @date 4/9/18 - * @since 5.7.5 - * - * @param jQuery $el The form element. - * @return object - */ - var getValidator = function( $el ){ - - // instantiate - var validator = $el.data('acf'); - if( !validator ) { - validator = new Validator( $el ); - } - - // return - return validator; - }; - - /** - * acf.validateForm - * - * A helper function for the Validator.validate() function. - * Returns true if form is valid, or fetches a validation request and returns false. - * - * @date 4/4/18 - * @since 5.6.9 - * - * @param object args A list of settings to customize the validation process. - * @return bool - */ - - acf.validateForm = function( args ){ - return getValidator( args.form ).validate( args ); - }; - - /** - * acf.enableSubmit - * - * Enables a submit button and returns the element. - * - * @date 30/8/18 - * @since 5.7.4 - * - * @param jQuery $submit The submit button. - * @return jQuery - */ - acf.enableSubmit = function( $submit ){ - return $submit.removeClass('disabled'); - }; - - /** - * acf.disableSubmit - * - * Disables a submit button and returns the element. - * - * @date 30/8/18 - * @since 5.7.4 - * - * @param jQuery $submit The submit button. - * @return jQuery - */ - acf.disableSubmit = function( $submit ){ - return $submit.addClass('disabled'); - }; - - /** - * acf.showSpinner - * - * Shows the spinner element. - * - * @date 4/9/18 - * @since 5.7.5 - * - * @param jQuery $spinner The spinner element. - * @return jQuery - */ - acf.showSpinner = function( $spinner ){ - $spinner.addClass('is-active'); // add class (WP > 4.2) - $spinner.css('display', 'inline-block'); // css (WP < 4.2) - return $spinner; - }; - - /** - * acf.hideSpinner - * - * Hides the spinner element. - * - * @date 4/9/18 - * @since 5.7.5 - * - * @param jQuery $spinner The spinner element. - * @return jQuery - */ - acf.hideSpinner = function( $spinner ){ - $spinner.removeClass('is-active'); // add class (WP > 4.2) - $spinner.css('display', 'none'); // css (WP < 4.2) - return $spinner; - }; - - /** - * acf.lockForm - * - * Locks a form by disabeling its primary inputs and showing a spinner. - * - * @date 4/9/18 - * @since 5.7.5 - * - * @param jQuery $form The form element. - * @return jQuery - */ - acf.lockForm = function( $form ){ - - // vars - var $wrap = findSubmitWrap( $form ); - var $submit = $wrap.find('.button, [type="submit"]'); - var $spinner = $wrap.find('.spinner, .acf-spinner'); - - // hide all spinners (hides the preview spinner) - acf.hideSpinner( $spinner ); - - // lock - acf.disableSubmit( $submit ); - acf.showSpinner( $spinner.last() ); - return $form; - }; - - /** - * acf.unlockForm - * - * Unlocks a form by enabeling its primary inputs and hiding all spinners. - * - * @date 4/9/18 - * @since 5.7.5 - * - * @param jQuery $form The form element. - * @return jQuery - */ - acf.unlockForm = function( $form ){ - - // vars - var $wrap = findSubmitWrap( $form ); - var $submit = $wrap.find('.button, [type="submit"]'); - var $spinner = $wrap.find('.spinner, .acf-spinner'); - - // unlock - acf.enableSubmit( $submit ); - acf.hideSpinner( $spinner ); - return $form; - }; - - /** - * findSubmitWrap - * - * An internal function to find the 'primary' form submit wrapping element. - * - * @date 4/9/18 - * @since 5.7.5 - * - * @param jQuery $form The form element. - * @return jQuery - */ - var findSubmitWrap = function( $form ){ - - // default post submit div - var $wrap = $form.find('#submitdiv'); - if( $wrap.length ) { - return $wrap; - } - - // 3rd party publish box - var $wrap = $form.find('#submitpost'); - if( $wrap.length ) { - return $wrap; - } - - // term, user - var $wrap = $form.find('p.submit').last(); - if( $wrap.length ) { - return $wrap; - } - - // front end form - var $wrap = $form.find('.acf-form-submit'); - if( $wrap.length ) { - return $wrap; - } - - // default - return $form; - }; - - /** - * A debounced function to trigger a form submission. - * - * @date 15/07/2020 - * @since 5.9.0 - * - * @param type Var Description. - * @return type Description. - */ - var submitFormDebounced = acf.debounce(function( $form ){ - $form.submit(); - }); - - /** - * acf.validation - * - * Global validation logic - * - * @date 4/4/18 - * @since 5.6.9 - * - * @param void - * @return void - */ - - acf.validation = new acf.Model({ - - /** @var string The model identifier. */ - id: 'validation', - - /** @var bool The active state. Set to false before 'prepare' to prevent validation. */ - active: true, - - /** @var string The model initialize time. */ - wait: 'prepare', - - /** @var object The model actions. */ - actions: { - 'ready': 'addInputEvents', - 'append': 'addInputEvents' - }, - - /** @var object The model events. */ - events: { - 'click input[type="submit"]': 'onClickSubmit', - 'click button[type="submit"]': 'onClickSubmit', - //'click #editor .editor-post-publish-button': 'onClickSubmitGutenberg', - 'click #save-post': 'onClickSave', - 'submit form#post': 'onSubmitPost', - 'submit form': 'onSubmit', - }, - - /** - * initialize - * - * Called when initializing the model. - * - * @date 4/9/18 - * @since 5.7.5 - * - * @param void - * @return void - */ - initialize: function(){ - - // check 'validation' setting - if( !acf.get('validation') ) { - this.active = false; - this.actions = {}; - this.events = {}; - } - }, - - /** - * enable - * - * Enables validation. - * - * @date 4/9/18 - * @since 5.7.5 - * - * @param void - * @return void - */ - enable: function(){ - this.active = true; - }, - - /** - * disable - * - * Disables validation. - * - * @date 4/9/18 - * @since 5.7.5 - * - * @param void - * @return void - */ - disable: function(){ - this.active = false; - }, - - /** - * reset - * - * Rests the form validation to be used again - * - * @date 6/9/18 - * @since 5.7.5 - * - * @param jQuery $form The form element. - * @return void - */ - reset: function( $form ){ - getValidator( $form ).reset(); - }, - - /** - * addInputEvents - * - * Adds 'invalid' event listeners to HTML inputs. - * - * @date 4/9/18 - * @since 5.7.5 - * - * @param jQuery $el The element being added / readied. - * @return void - */ - addInputEvents: function( $el ){ - - // Bug exists in Safari where custom "invalid" handeling prevents draft from saving. - if( acf.get('browser') === 'safari' ) - return; - - // vars - var $inputs = $('.acf-field [name]', $el); - - // check - if( $inputs.length ) { - this.on( $inputs, 'invalid', 'onInvalid' ); - } - }, - - /** - * onInvalid - * - * Callback for the 'invalid' event. - * - * @date 4/9/18 - * @since 5.7.5 - * - * @param object e The event object. - * @param jQuery $el The input element. - * @return void - */ - onInvalid: function( e, $el ){ - - // prevent default - // - prevents browser error message - // - also fixes chrome bug where 'hidden-by-tab' field throws focus error - e.preventDefault(); - - // vars - var $form = $el.closest('form'); - - // check form exists - if( $form.length ) { - - // add error to validator - getValidator( $form ).addError({ - input: $el.attr('name'), - message: acf.strEscape( e.target.validationMessage ) - }); - - // trigger submit on $form - // - allows for "save", "preview" and "publish" to work - submitFormDebounced( $form ); - } - }, - - /** - * onClickSubmit - * - * Callback when clicking submit. - * - * @date 4/9/18 - * @since 5.7.5 - * - * @param object e The event object. - * @param jQuery $el The input element. - * @return void - */ - onClickSubmit: function( e, $el ){ - - // store the "click event" for later use in this.onSubmit() - this.set('originalEvent', e); - }, - - /** - * onClickSave - * - * Set ignore to true when saving a draft. - * - * @date 4/9/18 - * @since 5.7.5 - * - * @param object e The event object. - * @param jQuery $el The input element. - * @return void - */ - onClickSave: function( e, $el ) { - this.set('ignore', true); - }, - - /** - * onClickSubmitGutenberg - * - * Custom validation event for the gutenberg editor. - * - * @date 29/10/18 - * @since 5.8.0 - * - * @param object e The event object. - * @param jQuery $el The input element. - * @return void - */ - onClickSubmitGutenberg: function( e, $el ){ - - // validate - var valid = acf.validateForm({ - form: $('#editor'), - event: e, - reset: true, - failure: function( $form, validator ){ - var $notice = validator.get('notice').$el; - $notice.appendTo('.components-notice-list'); - $notice.find('.acf-notice-dismiss').removeClass('small'); - } - }); - - // if not valid, stop event and allow validation to continue - if( !valid ) { - e.preventDefault(); - e.stopImmediatePropagation(); - } - }, - - /** - * onSubmitPost - * - * Callback when the 'post' form is submit. - * - * @date 5/3/19 - * @since 5.7.13 - * - * @param object e The event object. - * @param jQuery $el The input element. - * @return void - */ - onSubmitPost: function( e, $el ) { - - // Check if is preview. - if( $('input#wp-preview').val() === 'dopreview' ) { - - // Ignore validation. - this.set('ignore', true); - - // Unlock form to fix conflict with core "submit.edit-post" event causing all submit buttons to be disabled. - acf.unlockForm( $el ) - } - }, - - /** - * onSubmit - * - * Callback when the form is submit. - * - * @date 4/9/18 - * @since 5.7.5 - * - * @param object e The event object. - * @param jQuery $el The input element. - * @return void - */ - onSubmit: function( e, $el ){ - - // Allow form to submit if... - if( - // Validation has been disabled. - !this.active - - // Or this event is to be ignored. - || this.get('ignore') - - // Or this event has already been prevented. - || e.isDefaultPrevented() - ) { - // Return early and call reset function. - return this.allowSubmit(); - } - - // Validate form. - var valid = acf.validateForm({ - form: $el, - event: this.get('originalEvent') - }); - - // If not valid, stop event to prevent form submit. - if( !valid ) { - e.preventDefault(); - } - }, - - /** - * allowSubmit - * - * Resets data during onSubmit when the form is allowed to submit. - * - * @date 5/3/19 - * @since 5.7.13 - * - * @param void - * @return void - */ - allowSubmit: function(){ - - // Reset "ignore" state. - this.set('ignore', false); - - // Reset "originalEvent" object. - this.set('originalEvent', false); - - // Return true - return true; - } - }); - - var gutenbergValidation = new acf.Model({ - wait: 'prepare', - initialize: function(){ - - // Bail early if not Gutenberg. - if( !acf.isGutenberg() ) { - return; - } - - // Custommize the editor. - this.customizeEditor(); - }, - customizeEditor: function(){ - - // Extract vars. - var editor = wp.data.dispatch( 'core/editor' ); - var editorSelect = wp.data.select( 'core/editor' ); - var notices = wp.data.dispatch( 'core/notices' ); - - // Backup original method. - var savePost = editor.savePost; - - // Listen for changes to post status and perform actions: - // a) Enable validation for "publish" action. - // b) Remember last non "publish" status used for restoring after validation fail. - var useValidation = false; - var lastPostStatus = ''; - wp.data.subscribe(function() { - var postStatus = editorSelect.getEditedPostAttribute( 'status' ); - useValidation = ( postStatus === 'publish' ); - lastPostStatus = ( postStatus !== 'publish' ) ? postStatus : lastPostStatus; - }); - - // Create validation version. - editor.savePost = function( options ){ - options = options || {}; - - // Backup vars. - var _this = this; - var _args = arguments; - - // Perform validation within a Promise. - return new Promise(function( resolve, reject ) { - - // Bail early if is autosave or preview. - if( options.isAutosave || options.isPreview ) { - return resolve( 'Validation ignored (autosave).' ); - } - - // Bail early if validation is not neeed. - if( !useValidation ) { - return resolve( 'Validation ignored (draft).' ); - } - - // Validate the editor form. - var valid = acf.validateForm({ - form: $('#editor'), - reset: true, - complete: function( $form, validator ){ - - // Always unlock the form after AJAX. - editor.unlockPostSaving( 'acf' ); - }, - failure: function( $form, validator ){ - - // Get validation error and append to Gutenberg notices. - var notice = validator.get('notice'); - notices.createErrorNotice( notice.get('text'), { - id: 'acf-validation', - isDismissible: true - }); - notice.remove(); - - // Restore last non "publish" status. - if( lastPostStatus ) { - editor.editPost({ - status: lastPostStatus - }); - } - - // Rejext promise and prevent savePost(). - reject( 'Validation failed.' ); - }, - success: function(){ - notices.removeNotice( 'acf-validation' ); - - // Resolve promise and allow savePost(). - resolve( 'Validation success.' ); - } - }); - - // Resolve promise and allow savePost() if no validation is needed. - if( valid ) { - resolve( 'Validation bypassed.' ); - - // Otherwise, lock the form and wait for AJAX response. - } else { - editor.lockPostSaving( 'acf' ); - } - }).then(function(){ - return savePost.apply(_this, _args); - }); - }; - } - }); - -})(jQuery); - -(function($, undefined){ - - /** - * refreshHelper - * - * description - * - * @date 1/7/18 - * @since 5.6.9 - * - * @param type $var Description. Default. - * @return type Description. - */ - - var refreshHelper = new acf.Model({ - priority: 90, - actions: { - 'new_field': 'refresh', - 'show_field': 'refresh', - 'hide_field': 'refresh', - 'remove_field': 'refresh', - 'unmount_field': 'refresh', - 'remount_field': 'refresh', - }, - refresh: function(){ - acf.refresh(); - } - }); - - /** - * mountHelper - * - * Adds compatiblity for the 'unmount' and 'remount' actions added in 5.8.0 - * - * @date 7/3/19 - * @since 5.7.14 - * - * @param void - * @return void - */ - var mountHelper = new acf.Model({ - priority: 1, - actions: { - 'sortstart': 'onSortstart', - 'sortstop': 'onSortstop' - }, - onSortstart: function( $item ){ - acf.doAction('unmount', $item); - }, - onSortstop: function( $item ){ - acf.doAction('remount', $item); - } - }); - - /** - * sortableHelper - * - * Adds compatibility for sorting a

                        element - * - * @date 6/3/18 - * @since 5.6.9 - * - * @param void - * @return void - */ - - var sortableHelper = new acf.Model({ - actions: { - 'sortstart': 'onSortstart' - }, - onSortstart: function( $item, $placeholder ){ - - // if $item is a tr, apply some css to the elements - if( $item.is('tr') ) { - - // replace $placeholder children with a single td - // fixes "width calculation issues" due to conditional logic hiding some children - $placeholder.html(''); - - // add helper class to remove absolute positioning - $item.addClass('acf-sortable-tr-helper'); - - // set fixed widths for children - $item.children().each(function(){ - $(this).width( $(this).width() ); - }); - - // mimic height - $placeholder.height( $item.height() + 'px' ); - - // remove class - $item.removeClass('acf-sortable-tr-helper'); - } - } - }); - - /** - * duplicateHelper - * - * Fixes browser bugs when duplicating an element - * - * @date 6/3/18 - * @since 5.6.9 - * - * @param void - * @return void - */ - - var duplicateHelper = new acf.Model({ - actions: { - 'after_duplicate': 'onAfterDuplicate' - }, - onAfterDuplicate: function( $el, $el2 ){ - - // get original values - var vals = []; - $el.find('select').each(function(i){ - vals.push( $(this).val() ); - }); - - // set duplicate values - $el2.find('select').each(function(i){ - $(this).val( vals[i] ); - }); - } - }); - - /** - * tableHelper - * - * description - * - * @date 6/3/18 - * @since 5.6.9 - * - * @param type $var Description. Default. - * @return type Description. - */ - - var tableHelper = new acf.Model({ - - id: 'tableHelper', - - priority: 20, - - actions: { - 'refresh': 'renderTables' - }, - - renderTables: function( $el ){ - - // loop - var self = this; - $('.acf-table:visible').each(function(){ - self.renderTable( $(this) ); - }); - }, - - renderTable: function( $table ){ - - // vars - var $ths = $table.find('> thead > tr:visible > th[data-key]'); - var $tds = $table.find('> tbody > tr:visible > td[data-key]'); - - // bail early if no thead - if( !$ths.length || !$tds.length ) { - return false; - } - - - // visiblity - $ths.each(function( i ){ - - // vars - var $th = $(this); - var key = $th.data('key'); - var $cells = $tds.filter('[data-key="' + key + '"]'); - var $hidden = $cells.filter('.acf-hidden'); - - // always remove empty and allow cells to be hidden - $cells.removeClass('acf-empty'); - - // hide $th if all cells are hidden - if( $cells.length === $hidden.length ) { - acf.hide( $th ); - - // force all hidden cells to appear empty - } else { - acf.show( $th ); - $hidden.addClass('acf-empty'); - } - }); - - - // clear width - $ths.css('width', 'auto'); - - // get visible - $ths = $ths.not('.acf-hidden'); - - // vars - var availableWidth = 100; - var colspan = $ths.length; - - // set custom widths first - var $fixedWidths = $ths.filter('[data-width]'); - $fixedWidths.each(function(){ - var width = $(this).data('width'); - $(this).css('width', width + '%'); - availableWidth -= width; - }); - - // set auto widths - var $auoWidths = $ths.not('[data-width]'); - if( $auoWidths.length ) { - var width = availableWidth / $auoWidths.length; - $auoWidths.css('width', width + '%'); - availableWidth = 0; - } - - // avoid stretching issue - if( availableWidth > 0 ) { - $ths.last().css('width', 'auto'); - } - - - // update colspan on collapsed - $tds.filter('.-collapsed-target').each(function(){ - - // vars - var $td = $(this); - - // check if collapsed - if( $td.parent().hasClass('-collapsed') ) { - $td.attr('colspan', $ths.length); - } else { - $td.removeAttr('colspan'); - } - }); - } - }); - - - /** - * fieldsHelper - * - * description - * - * @date 6/3/18 - * @since 5.6.9 - * - * @param type $var Description. Default. - * @return type Description. - */ - - var fieldsHelper = new acf.Model({ - - id: 'fieldsHelper', - - priority: 30, - - actions: { - 'refresh': 'renderGroups' - }, - - renderGroups: function(){ - - // loop - var self = this; - $('.acf-fields:visible').each(function(){ - self.renderGroup( $(this) ); - }); - }, - - renderGroup: function( $el ){ - - // vars - var top = 0; - var height = 0; - var $row = $(); - - // get fields - var $fields = $el.children('.acf-field[data-width]:visible'); - - // bail early if no fields - if( !$fields.length ) { - return false; - } - - // bail ealry if is .-left - if( $el.hasClass('-left') ) { - $fields.removeAttr('data-width'); - $fields.css('width', 'auto'); - return false; - } - - // reset fields - $fields.removeClass('-r0 -c0').css({'min-height': 0}); - - // loop - $fields.each(function( i ){ - - // vars - var $field = $(this); - var position = $field.position(); - var thisTop = Math.ceil( position.top ); - var thisLeft = Math.ceil( position.left ); - - // detect change in row - if( $row.length && thisTop > top ) { - - // set previous heights - $row.css({'min-height': height+'px'}); - - // update position due to change in row above - position = $field.position(); - thisTop = Math.ceil( position.top ); - thisLeft = Math.ceil( position.left ); - - // reset vars - top = 0; - height = 0; - $row = $(); - } - - // rtl - if( acf.get('rtl') ) { - thisLeft = Math.ceil( $field.parent().width() - (position.left + $field.outerWidth()) ); - } - - // add classes - if( thisTop == 0 ) { - $field.addClass('-r0'); - } else if( thisLeft == 0 ) { - $field.addClass('-c0'); - } - - // get height after class change - // - add 1 for subpixel rendering - var thisHeight = Math.ceil( $field.outerHeight() ) + 1; - - // set height - height = Math.max( height, thisHeight ); - - // set y - top = Math.max( top, thisTop ); - - // append - $row = $row.add( $field ); - }); - - // clean up - if( $row.length ) { - $row.css({'min-height': height+'px'}); - } - } - }); - - /** - * Adds a body class when holding down the "shift" key. - * - * @date 06/05/2020 - * @since 5.9.0 - */ - var bodyClassShiftHelper = new acf.Model({ - id: 'bodyClassShiftHelper', - events: { - 'keydown': 'onKeyDown', - 'keyup': 'onKeyUp' - }, - isShiftKey: function( e ){ - return ( e.keyCode === 16 ); - }, - onKeyDown: function( e ){ - if( this.isShiftKey(e) ) { - $('body').addClass('acf-keydown-shift'); - } - }, - onKeyUp: function( e ){ - if( this.isShiftKey(e) ) { - $('body').removeClass('acf-keydown-shift'); - } - }, - }); - -})(jQuery); - -(function($, undefined){ - - /** - * acf.newCompatibility - * - * Inserts a new __proto__ object compatibility layer - * - * @date 15/2/18 - * @since 5.6.9 - * - * @param object instance The object to modify. - * @param object compatibilty Optional. The compatibilty layer. - * @return object compatibilty - */ - - acf.newCompatibility = function( instance, compatibilty ){ - - // defaults - compatibilty = compatibilty || {}; - - // inherit __proto_- - compatibilty.__proto__ = instance.__proto__; - - // inject - instance.__proto__ = compatibilty; - - // reference - instance.compatibility = compatibilty; - - // return - return compatibilty; - }; - - /** - * acf.getCompatibility - * - * Returns the compatibility layer for a given instance - * - * @date 13/3/18 - * @since 5.6.9 - * - * @param object instance The object to look in. - * @return object|null compatibility The compatibility object or null on failure. - */ - - acf.getCompatibility = function( instance ) { - return instance.compatibility || null; - }; - - /** - * acf (compatibility) - * - * Compatibility layer for the acf object - * - * @date 15/2/18 - * @since 5.6.9 - * - * @param void - * @return void - */ - - var _acf = acf.newCompatibility(acf, { - - // storage - l10n: {}, - o: {}, - fields: {}, - - // changed function names - update: acf.set, - add_action: acf.addAction, - remove_action: acf.removeAction, - do_action: acf.doAction, - add_filter: acf.addFilter, - remove_filter: acf.removeFilter, - apply_filters: acf.applyFilters, - parse_args: acf.parseArgs, - disable_el: acf.disable, - disable_form: acf.disable, - enable_el: acf.enable, - enable_form: acf.enable, - update_user_setting: acf.updateUserSetting, - prepare_for_ajax: acf.prepareForAjax, - is_ajax_success: acf.isAjaxSuccess, - remove_el: acf.remove, - remove_tr: acf.remove, - str_replace: acf.strReplace, - render_select: acf.renderSelect, - get_uniqid: acf.uniqid, - serialize_form: acf.serialize, - esc_html: acf.strEscape, - str_sanitize: acf.strSanitize, - - }); - - _acf._e = function( k1, k2 ){ - - // defaults - k1 = k1 || ''; - k2 = k2 || ''; - - // compability - var compatKey = k2 ? k1 + '.' + k2 : k1; - var compats = { - 'image.select': 'Select Image', - 'image.edit': 'Edit Image', - 'image.update': 'Update Image' - }; - if( compats[compatKey] ) { - return acf.__(compats[compatKey]); - } - - // try k1 - var string = this.l10n[ k1 ] || ''; - - // try k2 - if( k2 ) { - string = string[ k2 ] || ''; - } - - // return - return string; - }; - - _acf.get_selector = function( s ) { - - // vars - var selector = '.acf-field'; - - // bail early if no search - if( !s ) { - return selector; - } - - // compatibility with object - if( $.isPlainObject(s) ) { - if( $.isEmptyObject(s) ) { - return selector; - } else { - for( var k in s ) { s = s[k]; break; } - } - } - - // append - selector += '-' + s; - - // replace underscores (split/join replaces all and is faster than regex!) - selector = acf.strReplace('_', '-', selector); - - // remove potential double up - selector = acf.strReplace('field-field-', 'field-', selector); - - // return - return selector; - }; - - _acf.get_fields = function( s, $el, all ){ - - // args - var args = { - is: s || '', - parent: $el || false, - suppressFilters: all || false, - }; - - // change 'field_123' to '.acf-field-123' - if( args.is ) { - args.is = this.get_selector( args.is ); - } - - // return - return acf.findFields(args); - }; - - _acf.get_field = function( s, $el ){ - - // get fields - var $fields = this.get_fields.apply(this, arguments); - - // return - if( $fields.length ) { - return $fields.first(); - } else { - return false; - } - }; - - _acf.get_closest_field = function( $el, s ){ - return $el.closest( this.get_selector(s) ); - }; - - _acf.get_field_wrap = function( $el ){ - return $el.closest( this.get_selector() ); - }; - - _acf.get_field_key = function( $field ){ - return $field.data('key'); - }; - - _acf.get_field_type = function( $field ){ - return $field.data('type'); - }; - - _acf.get_data = function( $el, defaults ){ - return acf.parseArgs( $el.data(), defaults ); - }; - - _acf.maybe_get = function( obj, key, value ){ - - // default - if( value === undefined ) { - value = null; - } - - // get keys - keys = String(key).split('.'); - - // acf.isget - for( var i = 0; i < keys.length; i++ ) { - if( !obj.hasOwnProperty(keys[i]) ) { - return value; - } - obj = obj[ keys[i] ]; - } - return obj; - }; - - - /** - * hooks - * - * Modify add_action and add_filter functions to add compatibility with changed $field parameter - * Using the acf.add_action() or acf.add_filter() functions will interpret new field parameters as jQuery $field - * - * @date 12/5/18 - * @since 5.6.9 - * - * @param void - * @return void - */ - - var compatibleArgument = function( arg ){ - return ( arg instanceof acf.Field ) ? arg.$el : arg; - }; - - var compatibleArguments = function( args ){ - return acf.arrayArgs( args ).map( compatibleArgument ); - } - - var compatibleCallback = function( origCallback ){ - return function(){ - - // convert to compatible arguments - if( arguments.length ) { - var args = compatibleArguments(arguments); - - // add default argument for 'ready', 'append' and 'load' events - } else { - var args = [ $(document) ]; - } - - // return - return origCallback.apply(this, args); - } - } - - _acf.add_action = function( action, callback, priority, context ){ - - // handle multiple actions - var actions = action.split(' '); - var length = actions.length; - if( length > 1 ) { - for( var i = 0; i < length; i++) { - action = actions[i]; - _acf.add_action.apply(this, arguments); - } - return this; - } - - // single - var callback = compatibleCallback(callback); - return acf.addAction.apply(this, arguments); - }; - - _acf.add_filter = function( action, callback, priority, context ){ - var callback = compatibleCallback(callback); - return acf.addFilter.apply(this, arguments); - }; - - /* - * acf.model - * - * This model acts as a scafold for action.event driven modules - * - * @type object - * @date 8/09/2014 - * @since 5.0.0 - * - * @param (object) - * @return (object) - */ - - _acf.model = { - actions: {}, - filters: {}, - events: {}, - extend: function( args ){ - - // extend - var model = $.extend( {}, this, args ); - - // setup actions - $.each(model.actions, function( name, callback ){ - model._add_action( name, callback ); - }); - - // setup filters - $.each(model.filters, function( name, callback ){ - model._add_filter( name, callback ); - }); - - // setup events - $.each(model.events, function( name, callback ){ - model._add_event( name, callback ); - }); - - // return - return model; - }, - - _add_action: function( name, callback ) { - - // split - var model = this, - data = name.split(' '); - - // add missing priority - var name = data[0] || '', - priority = data[1] || 10; - - // add action - acf.add_action(name, model[ callback ], priority, model); - - }, - - _add_filter: function( name, callback ) { - - // split - var model = this, - data = name.split(' '); - - // add missing priority - var name = data[0] || '', - priority = data[1] || 10; - - // add action - acf.add_filter(name, model[ callback ], priority, model); - }, - - _add_event: function( name, callback ) { - - // vars - var model = this, - i = name.indexOf(' '), - event = (i > 0) ? name.substr(0,i) : name, - selector = (i > 0) ? name.substr(i+1) : ''; - - // event - var fn = function( e ){ - - // append $el to event object - e.$el = $(this); - - // append $field to event object (used in field group) - if( acf.field_group ) { - e.$field = e.$el.closest('.acf-field-object'); - } - - // event - if( typeof model.event === 'function' ) { - e = model.event( e ); - } - - // callback - model[ callback ].apply(model, arguments); - - }; - - // add event - if( selector ) { - $(document).on(event, selector, fn); - } else { - $(document).on(event, fn); - } - }, - - get: function( name, value ){ - - // defaults - value = value || null; - - // get - if( typeof this[ name ] !== 'undefined' ) { - value = this[ name ]; - } - - // return - return value; - }, - - set: function( name, value ){ - - // set - this[ name ] = value; - - // function for 3rd party - if( typeof this[ '_set_' + name ] === 'function' ) { - this[ '_set_' + name ].apply(this); - } - - // return for chaining - return this; - } - }; - - /* - * field - * - * This model sets up many of the field's interactions - * - * @type function - * @date 21/02/2014 - * @since 3.5.1 - * - * @param n/a - * @return n/a - */ - - _acf.field = acf.model.extend({ - type: '', - o: {}, - $field: null, - _add_action: function( name, callback ) { - - // vars - var model = this; - - // update name - name = name + '_field/type=' + model.type; - - // add action - acf.add_action(name, function( $field ){ - - // focus - model.set('$field', $field); - - // callback - model[ callback ].apply(model, arguments); - }); - }, - - _add_filter: function( name, callback ) { - - // vars - var model = this; - - // update name - name = name + '_field/type=' + model.type; - - // add action - acf.add_filter(name, function( $field ){ - - // focus - model.set('$field', $field); - - // callback - model[ callback ].apply(model, arguments); - }); - }, - - _add_event: function( name, callback ) { - - // vars - var model = this, - event = name.substr(0,name.indexOf(' ')), - selector = name.substr(name.indexOf(' ')+1), - context = acf.get_selector(model.type); - - // add event - $(document).on(event, context + ' ' + selector, function( e ){ - - // vars - var $el = $(this); - var $field = acf.get_closest_field( $el, model.type ); - - // bail early if no field - if( !$field.length ) return; - - // focus - if( !$field.is(model.$field) ) { - model.set('$field', $field); - } - - // append to event - e.$el = $el; - e.$field = $field; - - // callback - model[ callback ].apply(model, [e]); - }); - }, - - _set_$field: function(){ - - // callback - if( typeof this.focus === 'function' ) { - this.focus(); - } - }, - - // depreciated - doFocus: function( $field ){ - return this.set('$field', $field); - } - }); - - - /** - * validation - * - * description - * - * @date 15/2/18 - * @since 5.6.9 - * - * @param type $var Description. Default. - * @return type Description. - */ - - var _validation = acf.newCompatibility(acf.validation, { - remove_error: function( $field ){ - acf.getField( $field ).removeError(); - }, - add_warning: function( $field, message ){ - acf.getField( $field ).showNotice({ - text: message, - type: 'warning', - timeout: 1000 - }); - }, - fetch: acf.validateForm, - enableSubmit: acf.enableSubmit, - disableSubmit: acf.disableSubmit, - showSpinner: acf.showSpinner, - hideSpinner: acf.hideSpinner, - unlockForm: acf.unlockForm, - lockForm: acf.lockForm - }); - - - /** - * tooltip - * - * description - * - * @date 15/2/18 - * @since 5.6.9 - * - * @param type $var Description. Default. - * @return type Description. - */ - - _acf.tooltip = { - - tooltip: function( text, $el ){ - - var tooltip = acf.newTooltip({ - text: text, - target: $el - }); - - // return - return tooltip.$el; - }, - - temp: function( text, $el ){ - - var tooltip = acf.newTooltip({ - text: text, - target: $el, - timeout: 250 - }); - }, - - confirm: function( $el, callback, text, button_y, button_n ){ - - var tooltip = acf.newTooltip({ - confirm: true, - text: text, - target: $el, - confirm: function(){ - callback(true); - }, - cancel: function(){ - callback(false); - } - }); - }, - - confirm_remove: function( $el, callback ){ - - var tooltip = acf.newTooltip({ - confirmRemove: true, - target: $el, - confirm: function(){ - callback(true); - }, - cancel: function(){ - callback(false); - } - }); - }, - }; - - /** - * tooltip - * - * description - * - * @date 15/2/18 - * @since 5.6.9 - * - * @param type $var Description. Default. - * @return type Description. - */ - - _acf.media = new acf.Model({ - activeFrame: false, - actions: { - 'new_media_popup': 'onNewMediaPopup' - }, - - frame: function(){ - return this.activeFrame; - }, - - onNewMediaPopup: function( popup ){ - this.activeFrame = popup.frame; - }, - - popup: function( props ){ - - // update props - if( props.mime_types ) { - props.allowedTypes = props.mime_types; - } - if( props.id ) { - props.attachment = props.id; - } - - // new - var popup = acf.newMediaPopup( props ); - - // append -/* - if( props.selected ) { - popup.selected = props.selected; - } -*/ - - // return - return popup.frame; - } - }); - - - /** - * Select2 - * - * description - * - * @date 11/6/18 - * @since 5.6.9 - * - * @param type $var Description. Default. - * @return type Description. - */ - - _acf.select2 = { - init: function( $select, args, $field ){ - - // compatible args - if( args.allow_null ) { - args.allowNull = args.allow_null; - } - if( args.ajax_action ) { - args.ajaxAction = args.ajax_action; - } - if( $field ) { - args.field = acf.getField($field); - } - - // return - return acf.newSelect2( $select, args ); - }, - - destroy: function( $select ){ - return acf.getInstance( $select ).destroy(); - - }, - }; - - /** - * postbox - * - * description - * - * @date 11/6/18 - * @since 5.6.9 - * - * @param type $var Description. Default. - * @return type Description. - */ - - _acf.postbox = { - render: function( args ){ - - // compatible args - if( args.edit_url ) { - args.editLink = args.edit_url; - } - if( args.edit_title ) { - args.editTitle = args.edit_title; - } - - // return - return acf.newPostbox( args ); - } - }; - - /** - * acf.screen - * - * description - * - * @date 11/6/18 - * @since 5.6.9 - * - * @param type $var Description. Default. - * @return type Description. - */ - - acf.newCompatibility(acf.screen, { - update: function(){ - return this.set.apply(this, arguments); - }, - fetch: acf.screen.check - }); - _acf.ajax = acf.screen; - -})(jQuery); - -// @codekit-prepend "_acf-field.js"; -// @codekit-prepend "_acf-fields.js"; -// @codekit-prepend "_acf-field-accordion.js"; -// @codekit-prepend "_acf-field-button-group.js"; -// @codekit-prepend "_acf-field-checkbox.js"; -// @codekit-prepend "_acf-field-color-picker.js"; -// @codekit-prepend "_acf-field-date-picker.js"; -// @codekit-prepend "_acf-field-date-time-picker.js"; -// @codekit-prepend "_acf-field-google-map.js"; -// @codekit-prepend "_acf-field-image.js"; -// @codekit-prepend "_acf-field-file.js"; -// @codekit-prepend "_acf-field-link.js"; -// @codekit-prepend "_acf-field-oembed.js"; -// @codekit-prepend "_acf-field-radio.js"; -// @codekit-prepend "_acf-field-range.js"; -// @codekit-prepend "_acf-field-relationship.js"; -// @codekit-prepend "_acf-field-select.js"; -// @codekit-prepend "_acf-field-tab.js"; -// @codekit-prepend "_acf-field-post-object.js"; -// @codekit-prepend "_acf-field-page-link.js"; -// @codekit-prepend "_acf-field-user.js"; -// @codekit-prepend "_acf-field-taxonomy.js"; -// @codekit-prepend "_acf-field-time-picker.js"; -// @codekit-prepend "_acf-field-true-false.js"; -// @codekit-prepend "_acf-field-url.js"; -// @codekit-prepend "_acf-field-wysiwyg.js"; -// @codekit-prepend "_acf-condition.js"; -// @codekit-prepend "_acf-conditions.js"; -// @codekit-prepend "_acf-condition-types.js"; -// @codekit-prepend "_acf-unload.js"; -// @codekit-prepend "_acf-postbox.js"; -// @codekit-prepend "_acf-media.js"; -// @codekit-prepend "_acf-screen.js"; -// @codekit-prepend "_acf-select2.js"; -// @codekit-prepend "_acf-tinymce.js"; -// @codekit-prepend "_acf-validation.js"; -// @codekit-prepend "_acf-helpers.js"; -// @codekit-prepend "_acf-compatibility"; \ No newline at end of file diff --git a/assets/js/acf-input.min.js b/assets/js/acf-input.min.js deleted file mode 100644 index e2d24a2..0000000 --- a/assets/js/acf-input.min.js +++ /dev/null @@ -1,4 +0,0 @@ -!function(t,e){var i=[];acf.Field=acf.Model.extend({type:"",eventScope:".acf-field",wait:"ready",setup:function(t){this.$el=t,this.inherit(t),this.inherit(this.$control())},val:function(t){return void 0!==t?this.setValue(t):this.prop("disabled")?null:this.getValue()},getValue:function(){return this.$input().val()},setValue:function(t){return acf.val(this.$input(),t)},__:function(t){return acf._e(this.type,t)},$control:function(){return!1},$input:function(){return this.$("[name]:first")},$inputWrap:function(){return this.$(".acf-input:first")},$labelWrap:function(){return this.$(".acf-label:first")},getInputName:function(){return this.$input().attr("name")||""},parent:function(){var t=this.parents();return!!t.length&&t[0]},parents:function(){var t=this.$el.parents(".acf-field"),e;return acf.getFields(t)},show:function(t,e){var i=acf.show(this.$el,t);return i&&(this.prop("hidden",!1),acf.doAction("show_field",this,e)),i},hide:function(t,e){var i=acf.hide(this.$el,t);return i&&(this.prop("hidden",!0),acf.doAction("hide_field",this,e)),i},enable:function(t,e){var i=acf.enable(this.$el,t);return i&&(this.prop("disabled",!1),acf.doAction("enable_field",this,e)),i},disable:function(t,e){var i=acf.disable(this.$el,t);return i&&(this.prop("disabled",!0),acf.doAction("disable_field",this,e)),i},showEnable:function(t,e){return this.enable.apply(this,arguments),this.show.apply(this,arguments)},hideDisable:function(t,e){return this.disable.apply(this,arguments),this.hide.apply(this,arguments)},showNotice:function(t){"object"!=typeof t&&(t={text:t}),this.notice&&this.notice.remove(),t.target=this.$inputWrap(),this.notice=acf.newNotice(t)},removeNotice:function(t){this.notice&&(this.notice.away(t||0),this.notice=!1)},showError:function(e){this.$el.addClass("acf-error"),void 0!==e&&this.showNotice({text:e,type:"error",dismiss:!1}),acf.doAction("invalid_field",this),this.$el.one("focus change","input, select, textarea",t.proxy(this.removeError,this))},removeError:function(){this.$el.removeClass("acf-error"),this.removeNotice(250),acf.doAction("valid_field",this)},trigger:function(t,e,i){return"invalidField"==t&&(i=!0),acf.Model.prototype.trigger.apply(this,[t,e,i])}}),acf.newField=function(t){var e=t.data("type"),i=a(e),n,s=new(acf.models[i]||acf.Field)(t);return acf.doAction("new_field",s),s};var a=function(t){return acf.strPascalCase(t||"")+"Field"};acf.registerFieldType=function(t){var e,n=t.prototype.type,s=a(n);acf.models[s]=t,i.push(n)},acf.getFieldType=function(t){var e=a(t);return acf.models[e]||!1},acf.getFieldTypes=function(t){t=acf.parseArgs(t,{category:""});var e=[];return i.map((function(i){var a=acf.getFieldType(i),n=a.prototype;t.category&&n.category!==t.category||e.push(a)})),e}}(jQuery),function(t,e){acf.findFields=function(e){var i=".acf-field",a=!1;return(e=acf.parseArgs(e,{key:"",name:"",type:"",is:"",parent:!1,sibling:!1,limit:!1,visible:!1,suppressFilters:!1})).suppressFilters||(e=acf.applyFilters("find_fields_args",e)),e.key&&(i+='[data-key="'+e.key+'"]'),e.type&&(i+='[data-type="'+e.type+'"]'),e.name&&(i+='[data-name="'+e.name+'"]'),e.is&&(i+=e.is),e.visible&&(i+=":visible"),a=e.parent?e.parent.find(i):e.sibling?e.sibling.siblings(i):t(i),e.suppressFilters||(a=a.not(".acf-clone .acf-field"),a=acf.applyFilters("find_fields",a)),e.limit&&(a=a.slice(0,e.limit)),a},acf.findField=function(t,e){return acf.findFields({key:t,limit:1,parent:e,suppressFilters:!0})},acf.getField=function(t){t instanceof jQuery||(t=acf.findField(t));var e=t.data("acf");return e||(e=acf.newField(t)),e},acf.getFields=function(e){e instanceof jQuery||(e=acf.findFields(e));var i=[];return e.each((function(){var e=acf.getField(t(this));i.push(e)})),i},acf.findClosestField=function(t){return t.closest(".acf-field")},acf.getClosestField=function(t){var e=acf.findClosestField(t);return this.getField(e)};var i=function(t){var e=t,i=t+"_fields",n=t+"_field",s=function(t){var e=acf.arrayArgs(arguments),a=e.slice(1),n=acf.getFields({parent:t});if(n.length){var s=[i,n].concat(a);acf.doAction.apply(null,s)}},r=function(t){var e=acf.arrayArgs(arguments),i=e.slice(1);t.map((function(t,e){var a=[n,t].concat(i);acf.doAction.apply(null,a)}))};acf.addAction(e,s),acf.addAction(i,r),a(t)},a=function(t){var e=t+"_field",i=t+"Field",a=function(a){var n=acf.arrayArgs(arguments),s=n.slice(1),o=["type","name","key"];o.map((function(t){var i="/"+t+"="+a.get(t);n=[e+i,a].concat(s),acf.doAction.apply(null,n)})),r.indexOf(t)>-1&&a.trigger(i,s)};acf.addAction(e,a)},n,s=["valid","invalid","enable","disable","new","duplicate"],r=["remove","unmount","remount","sortstart","sortstop","show","hide","unload","valid","invalid","enable","disable","duplicate"];["prepare","ready","load","append","remove","unmount","remount","sortstart","sortstop","show","hide","unload"].map(i),s.map(a);var o=new acf.Model({id:"fieldsEventManager",events:{'click .acf-field a[href="#"]':"onClick","change .acf-field":"onChange"},onClick:function(t){t.preventDefault()},onChange:function(){t("#_acf_changed").val(1)}}),c=new acf.Model({id:"duplicateFieldsManager",actions:{duplicate:"onDuplicate",duplicate_fields:"onDuplicateFields"},onDuplicate:function(t,e){var i=acf.getFields({parent:t});if(i.length){var a=acf.findFields({parent:e});acf.doAction("duplicate_fields",i,a)}},onDuplicateFields:function(e,i){e.map((function(e,a){acf.doAction("duplicate_field",e,t(i[a]))}))}})}(jQuery),function(t,e){var i=0,a=acf.Field.extend({type:"accordion",wait:"",$control:function(){return this.$(".acf-fields:first")},initialize:function(){if(!this.$el.hasClass("acf-accordion")&&!this.$el.is("td")){if(this.get("endpoint"))return this.remove();var e=this.$el,a=this.$labelWrap(),s=this.$inputWrap(),r=this.$control(),o=s.children(".description");if(o.length&&a.append(o),this.$el.is("tr")){var c=this.$el.closest("table"),l=t('
                        '),d=t('
                        '),u=t('
                            '),f=t("");l.append(a.html()),u.append(f),d.append(u),s.append(l),s.append(d),a.remove(),r.remove(),s.attr("colspan",2),a=l,s=d,r=f}e.addClass("acf-accordion"),a.addClass("acf-accordion-title"),s.addClass("acf-accordion-content"),i++,this.get("multi_expand")&&e.attr("multi-expand",1);var p=acf.getPreference("this.accordions")||[];void 0!==p[i-1]&&this.set("open",p[i-1]),this.get("open")&&(e.addClass("-open"),s.css("display","block")),a.prepend(n.iconHtml({open:this.get("open")}));var h=e.parent();r.addClass(h.hasClass("-left")?"-left":""),r.addClass(h.hasClass("-clear")?"-clear":""),r.append(e.nextUntil(".acf-field-accordion",".acf-field")),r.removeAttr("data-open data-multi_expand data-endpoint")}}});acf.registerFieldType(a);var n=new acf.Model({actions:{unload:"onUnload"},events:{"click .acf-accordion-title":"onClick","invalidField .acf-accordion":"onInvalidField"},isOpen:function(t){return t.hasClass("-open")},toggle:function(t){this.isOpen(t)?this.close(t):this.open(t)},iconHtml:function(t){return acf.isGutenberg()?t.open?'':'':t.open?'':''},open:function(e){var i=acf.isGutenberg()?0:300;e.find(".acf-accordion-content:first").slideDown(i).css("display","block"),e.find(".acf-accordion-icon:first").replaceWith(this.iconHtml({open:!0})),e.addClass("-open"),acf.doAction("show",e),e.attr("multi-expand")||e.siblings(".acf-accordion.-open").each((function(){n.close(t(this))}))},close:function(t){var e=acf.isGutenberg()?0:300;t.find(".acf-accordion-content:first").slideUp(e),t.find(".acf-accordion-icon:first").replaceWith(this.iconHtml({open:!1})),t.removeClass("-open"),acf.doAction("hide",t)},onClick:function(t,e){t.preventDefault(),this.toggle(e.parent())},onInvalidField:function(t,e){this.busy||(this.busy=!0,this.setTimeout((function(){this.busy=!1}),1e3),this.open(e))},onUnload:function(e){var i=[];t(".acf-accordion").each((function(){var e=t(this).hasClass("-open")?1:0;i.push(e)})),i.length&&acf.setPreference("this.accordions",i)}})}(jQuery),function(t,e){var i=acf.Field.extend({type:"button_group",events:{'click input[type="radio"]':"onClick"},$control:function(){return this.$(".acf-button-group")},$input:function(){return this.$("input:checked")},setValue:function(t){this.$('input[value="'+t+'"]').prop("checked",!0).trigger("change")},onClick:function(t,e){var i=e.parent("label"),a=i.hasClass("selected");this.$(".selected").removeClass("selected"),i.addClass("selected"),this.get("allow_null")&&a&&(i.removeClass("selected"),e.prop("checked",!1).trigger("change"))}});acf.registerFieldType(i)}(jQuery),function(t,e){var i=acf.Field.extend({type:"checkbox",events:{"change input":"onChange","click .acf-add-checkbox":"onClickAdd","click .acf-checkbox-toggle":"onClickToggle","click .acf-checkbox-custom":"onClickCustom"},$control:function(){return this.$(".acf-checkbox-list")},$toggle:function(){return this.$(".acf-checkbox-toggle")},$input:function(){return this.$('input[type="hidden"]')},$inputs:function(){return this.$('input[type="checkbox"]').not(".acf-checkbox-toggle")},getValue:function(){var e=[];return this.$(":checked").each((function(){e.push(t(this).val())})),!!e.length&&e},onChange:function(t,e){var i=e.prop("checked"),a=e.parent("label"),n=this.$toggle(),s;(i?a.addClass("selected"):a.removeClass("selected"),n.length)&&(0==this.$inputs().not(":checked").length?n.prop("checked",!0):n.prop("checked",!1))},onClickAdd:function(t,e){var i='
                          • ';e.parent("li").before(i)},onClickToggle:function(t,e){var i=e.prop("checked"),a=this.$('input[type="checkbox"]'),n=this.$("label");a.prop("checked",i),i?n.addClass("selected"):n.removeClass("selected")},onClickCustom:function(t,e){var i=e.prop("checked"),a=e.next('input[type="text"]');i?a.prop("disabled",!1):(a.prop("disabled",!0),""==a.val()&&e.parent("li").remove())}});acf.registerFieldType(i)}(jQuery),function(t,e){var i=acf.Field.extend({type:"color_picker",wait:"load",events:{duplicateField:"onDuplicate"},$control:function(){return this.$(".acf-color-picker")},$input:function(){return this.$('input[type="hidden"]')},$inputText:function(){return this.$('input[type="text"]')},setValue:function(t){acf.val(this.$input(),t),this.$inputText().iris("color",t)},initialize:function(){var t=this.$input(),e=this.$inputText(),i=function(i){setTimeout((function(){acf.val(t,e.val())}),1)},a={defaultColor:!1,palettes:!0,hide:!0,change:i,clear:i},a=acf.applyFilters("color_picker_args",a,this);e.wpColorPicker(a)},onDuplicate:function(t,e,i){$colorPicker=i.find(".wp-picker-container"),$inputText=i.find('input[type="text"]'),$colorPicker.replaceWith($inputText)}});acf.registerFieldType(i)}(jQuery),function(t,e){var i=acf.Field.extend({type:"date_picker",events:{'blur input[type="text"]':"onBlur",duplicateField:"onDuplicate"},$control:function(){return this.$(".acf-date-picker")},$input:function(){return this.$('input[type="hidden"]')},$inputText:function(){return this.$('input[type="text"]')},initialize:function(){if(this.has("save_format"))return this.initializeCompatibility();var t=this.$input(),e=this.$inputText(),i={dateFormat:this.get("date_format"),altField:t,altFormat:"yymmdd",changeYear:!0,yearRange:"-100:+100",changeMonth:!0,showButtonPanel:!0,firstDay:this.get("first_day")};i=acf.applyFilters("date_picker_args",i,this),acf.newDatePicker(e,i),acf.doAction("date_picker_init",e,i,this)},initializeCompatibility:function(){var t=this.$input(),e=this.$inputText();e.val(t.val());var i={dateFormat:this.get("date_format"),altField:t,altFormat:this.get("save_format"),changeYear:!0,yearRange:"-100:+100",changeMonth:!0,showButtonPanel:!0,firstDay:this.get("first_day")},a=(i=acf.applyFilters("date_picker_args",i,this)).dateFormat;i.dateFormat=this.get("save_format"),acf.newDatePicker(e,i),e.datepicker("option","dateFormat",a),acf.doAction("date_picker_init",e,i,this)},onBlur:function(){this.$inputText().val()||acf.val(this.$input(),"")},onDuplicate:function(t,e,i){i.find('input[type="text"]').removeClass("hasDatepicker").removeAttr("id")}});acf.registerFieldType(i);var a=new acf.Model({priority:5,wait:"ready",initialize:function(){var e=acf.get("locale"),i=acf.get("rtl"),a=acf.get("datePickerL10n");return!!a&&(void 0!==t.datepicker&&(a.isRTL=i,t.datepicker.regional[e]=a,void t.datepicker.setDefaults(a)))}});acf.newDatePicker=function(e,i){if(void 0===t.datepicker)return!1;i=i||{},e.datepicker(i),t("body > #ui-datepicker-div").exists()&&t("body > #ui-datepicker-div").wrap('
                            ')}}(jQuery),function(t,e){var i=acf.models.DatePickerField.extend({type:"date_time_picker",$control:function(){return this.$(".acf-date-time-picker")},initialize:function(){var t=this.$input(),e=this.$inputText(),i={dateFormat:this.get("date_format"),timeFormat:this.get("time_format"),altField:t,altFieldTimeOnly:!1,altFormat:"yy-mm-dd",altTimeFormat:"HH:mm:ss",changeYear:!0,yearRange:"-100:+100",changeMonth:!0,showButtonPanel:!0,firstDay:this.get("first_day"),controlType:"select",oneLine:!0};i=acf.applyFilters("date_time_picker_args",i,this),acf.newDateTimePicker(e,i),acf.doAction("date_time_picker_init",e,i,this)}});acf.registerFieldType(i);var a=new acf.Model({priority:5,wait:"ready",initialize:function(){var e=acf.get("locale"),i=acf.get("rtl"),a=acf.get("dateTimePickerL10n");return!!a&&(void 0!==t.timepicker&&(a.isRTL=i,t.timepicker.regional[e]=a,void t.timepicker.setDefaults(a)))}});acf.newDateTimePicker=function(e,i){if(void 0===t.timepicker)return!1;i=i||{},e.datetimepicker(i),t("body > #ui-datepicker-div").exists()&&t("body > #ui-datepicker-div").wrap('
                            ')}}(jQuery),function(t,e){function i(e){if(s)return e();if(acf.isset(window,"google","maps","Geocoder"))return s=new google.maps.Geocoder,e();if(acf.addAction("google_map_api_loaded",e),!n){var i=acf.get("google_map_api");i&&(n=!0,t.ajax({url:i,dataType:"script",cache:!0,success:function(){s=new google.maps.Geocoder,acf.doAction("google_map_api_loaded")}}))}}var a=acf.Field.extend({type:"google_map",map:!1,wait:"load",events:{'click a[data-name="clear"]':"onClickClear",'click a[data-name="locate"]':"onClickLocate",'click a[data-name="search"]':"onClickSearch","keydown .search":"onKeydownSearch","keyup .search":"onKeyupSearch","focus .search":"onFocusSearch","blur .search":"onBlurSearch",showField:"onShow"},$control:function(){return this.$(".acf-google-map")},$search:function(){return this.$(".search")},$canvas:function(){return this.$(".canvas")},setState:function(t){this.$control().removeClass("-value -loading -searching"),"default"===t&&(t=this.val()?"value":""),t&&this.$control().addClass("-"+t)},getValue:function(){var t=this.$input().val();return!!t&&JSON.parse(t)},setValue:function(t,e){var i="";t&&(i=JSON.stringify(t)),acf.val(this.$input(),i),e||(this.renderVal(t),acf.doAction("google_map_change",t,this.map,this))},renderVal:function(t){t?(this.setState("value"),this.$search().val(t.address),this.setPosition(t.lat,t.lng)):(this.setState(""),this.$search().val(""),this.map.marker.setVisible(!1))},newLatLng:function(t,e){return new google.maps.LatLng(parseFloat(t),parseFloat(e))},setPosition:function(t,e){this.map.marker.setPosition({lat:parseFloat(t),lng:parseFloat(e)}),this.map.marker.setVisible(!0),this.center()},center:function(){var t=this.map.marker.getPosition();if(t)var e=t.lat(),i=t.lng();else var e=this.get("lat"),i=this.get("lng");this.map.setCenter({lat:parseFloat(e),lng:parseFloat(i)})},initialize:function(){i(this.initializeMap.bind(this))},initializeMap:function(){var t=this.getValue(),e=acf.parseArgs(t,{zoom:this.get("zoom"),lat:this.get("lat"),lng:this.get("lng")}),i={scrollwheel:!1,zoom:parseInt(e.zoom),center:{lat:parseFloat(e.lat),lng:parseFloat(e.lng)},mapTypeId:google.maps.MapTypeId.ROADMAP,marker:{draggable:!0,raiseOnDrag:!0},autocomplete:{}};i=acf.applyFilters("google_map_args",i,this);var a=new google.maps.Map(this.$canvas()[0],i),n=acf.parseArgs(i.marker,{draggable:!0,raiseOnDrag:!0,map:a});n=acf.applyFilters("google_map_marker_args",n,this);var s=new google.maps.Marker(n),r=!1;if(acf.isset(google,"maps","places","Autocomplete")){var o=i.autocomplete||{};o=acf.applyFilters("google_map_autocomplete_args",o,this),(r=new google.maps.places.Autocomplete(this.$search()[0],o)).bindTo("bounds",a)}this.addMapEvents(this,a,s,r),a.acf=this,a.marker=s,a.autocomplete=r,this.map=a,t&&this.setPosition(t.lat,t.lng),acf.doAction("google_map_init",a,s,this)},addMapEvents:function(t,e,i,a){google.maps.event.addListener(e,"click",(function(e){var i=e.latLng.lat(),a=e.latLng.lng();t.searchPosition(i,a)})),google.maps.event.addListener(i,"dragend",(function(){var e=this.getPosition().lat(),i=this.getPosition().lng();t.searchPosition(e,i)})),a&&google.maps.event.addListener(a,"place_changed",(function(){var e=this.getPlace();t.searchPlace(e)})),google.maps.event.addListener(e,"zoom_changed",(function(){var i=t.val();i&&(i.zoom=e.getZoom(),t.setValue(i,!0))}))},searchPosition:function(t,e){this.setState("loading");var i={lat:t,lng:e};s.geocode({location:i},function(i,a){if(this.setState(""),"OK"!==a)this.showNotice({text:acf.__("Location not found: %s").replace("%s",a),type:"warning"});else{var n=this.parseResult(i[0]);n.lat=t,n.lng=e,this.val(n)}}.bind(this))},searchPlace:function(t){if(t)if(t.geometry){t.formatted_address=this.$search().val();var e=this.parseResult(t);this.val(e)}else t.name&&this.searchAddress(t.name)},searchAddress:function(t){if(t){var e=t.split(",");if(2==e.length){var i=parseFloat(e[0]),a=parseFloat(e[1]);if(i&&a)return this.searchPosition(i,a)}this.setState("loading"),s.geocode({address:t},function(e,i){if(this.setState(""),"OK"!==i)this.showNotice({text:acf.__("Location not found: %s").replace("%s",i),type:"warning"});else{var a=this.parseResult(e[0]);a.address=t,this.val(a)}}.bind(this))}},searchLocation:function(){if(!navigator.geolocation)return alert(acf.__("Sorry, this browser does not support geolocation"));this.setState("loading"),navigator.geolocation.getCurrentPosition(function(t){this.setState("");var e=t.coords.latitude,i=t.coords.longitude;this.searchPosition(e,i)}.bind(this),function(t){this.setState("")}.bind(this))},parseResult:function(t){var e={address:t.formatted_address,lat:t.geometry.location.lat(),lng:t.geometry.location.lng()};e.zoom=this.map.getZoom(),t.place_id&&(e.place_id=t.place_id),t.name&&(e.name=t.name);var i={street_number:["street_number"],street_name:["street_address","route"],city:["locality"],state:["administrative_area_level_1","administrative_area_level_2","administrative_area_level_3","administrative_area_level_4","administrative_area_level_5"],post_code:["postal_code"],country:["country"]};for(var a in i)for(var n=i[a],s=0;s0?this.append(t,e):this.render(t)}),this)})},editAttachment:function(){var e=this.val();if(e)var i=acf.newMediaPopup({mode:"edit",title:acf.__("Edit Image"),button:acf.__("Update Image"),attachment:e,field:this.get("key"),select:t.proxy((function(t,e){this.render(t)}),this)})},removeAttachment:function(){this.render(!1)},onClickAdd:function(t,e){this.selectAttachment()},onClickEdit:function(t,e){this.editAttachment()},onClickRemove:function(t,e){this.removeAttachment()},onChange:function(e,i){var a=this.$input();acf.getFileInputData(i,(function(e){a.val(t.param(e))}))}});acf.registerFieldType(i)}(jQuery),function(t,e){var i=acf.models.ImageField.extend({type:"file",$control:function(){return this.$(".acf-file-uploader")},$input:function(){return this.$('input[type="hidden"]')},validateAttachment:function(t){return void 0!==(t=t||{}).id&&(t=t.attributes),t=acf.parseArgs(t,{url:"",alt:"",title:"",filename:"",filesizeHumanReadable:"",icon:"/wp-includes/images/media/default.png"})},render:function(t){t=this.validateAttachment(t),this.$("img").attr({src:t.icon,alt:t.alt,title:t.title}),this.$('[data-name="title"]').text(t.title),this.$('[data-name="filename"]').text(t.filename).attr("href",t.url),this.$('[data-name="filesize"]').text(t.filesizeHumanReadable);var e=t.id||"";acf.val(this.$input(),e),e?this.$control().addClass("has-value"):this.$control().removeClass("has-value")},selectAttachment:function(){var e=this.parent(),i=e&&"repeater"===e.get("type"),a=acf.newMediaPopup({mode:"select",title:acf.__("Select File"),field:this.get("key"),multiple:i,library:this.get("library"),allowedTypes:this.get("mime_types"),select:t.proxy((function(t,i){i>0?this.append(t,e):this.render(t)}),this)})},editAttachment:function(){var e=this.val();if(!e)return!1;var i=acf.newMediaPopup({mode:"edit",title:acf.__("Edit File"),button:acf.__("Update File"),attachment:e,field:this.get("key"),select:t.proxy((function(t,e){this.render(t)}),this)})}});acf.registerFieldType(i)}(jQuery),function(t,e){var i=acf.Field.extend({type:"link",events:{'click a[data-name="add"]':"onClickEdit",'click a[data-name="edit"]':"onClickEdit",'click a[data-name="remove"]':"onClickRemove","change .link-node":"onChange"},$control:function(){return this.$(".acf-link")},$node:function(){return this.$(".link-node")},getValue:function(){var t=this.$node();return!!t.attr("href")&&{title:t.html(),url:t.attr("href"),target:t.attr("target")}},setValue:function(t){t=acf.parseArgs(t,{title:"",url:"",target:""});var e=this.$control(),i=this.$node();e.removeClass("-value -external"),t.url&&e.addClass("-value"),"_blank"===t.target&&e.addClass("-external"),this.$(".link-title").html(t.title),this.$(".link-url").attr("href",t.url).html(t.url),i.html(t.title),i.attr("href",t.url),i.attr("target",t.target),this.$(".input-title").val(t.title),this.$(".input-target").val(t.target),this.$(".input-url").val(t.url).trigger("change")},onClickEdit:function(t,e){acf.wpLink.open(this.$node())},onClickRemove:function(t,e){this.setValue(!1)},onChange:function(t,e){var i=this.getValue();this.setValue(i)}});acf.registerFieldType(i),acf.wpLink=new acf.Model({getNodeValue:function(){var t=this.get("node");return{title:acf.decode(t.html()),url:t.attr("href"),target:t.attr("target")}},setNodeValue:function(t){var e=this.get("node");e.text(t.title),e.attr("href",t.url),e.attr("target",t.target),e.trigger("change")},getInputValue:function(){return{title:t("#wp-link-text").val(),url:t("#wp-link-url").val(),target:t("#wp-link-target").prop("checked")?"_blank":""}},setInputValue:function(e){t("#wp-link-text").val(e.title),t("#wp-link-url").val(e.url),t("#wp-link-target").prop("checked","_blank"===e.target)},open:function(e){this.on("wplink-open","onOpen"),this.on("wplink-close","onClose"),this.set("node",e);var i=t('');t("body").append(i);var a=this.getNodeValue();wpLink.open("acf-link-textarea",a.url,a.title,null)},onOpen:function(){t("#wp-link-wrap").addClass("has-text-field");var e=this.getNodeValue();this.setInputValue(e),e.url&&wpLinkL10n&&t("#wp-link-submit").val(wpLinkL10n.update)},close:function(){wpLink.close()},onClose:function(){if(!this.has("node"))return!1;var e=t("#wp-link-submit"),i;if(e.is(":hover")||e.is(":focus")){var a=this.getInputValue();this.setNodeValue(a)}this.off("wplink-open"),this.off("wplink-close"),t("#acf-link-textarea").remove(),this.set("node",null)}})}(jQuery),function(t,e){var i=acf.Field.extend({type:"oembed",events:{'click [data-name="clear-button"]':"onClickClear","keypress .input-search":"onKeypressSearch","keyup .input-search":"onKeyupSearch","change .input-search":"onChangeSearch"},$control:function(){return this.$(".acf-oembed")},$input:function(){return this.$(".input-value")},$search:function(){return this.$(".input-search")},getValue:function(){return this.$input().val()},getSearchVal:function(){return this.$search().val()},setValue:function(t){t?this.$control().addClass("has-value"):this.$control().removeClass("has-value"),acf.val(this.$input(),t)},showLoading:function(t){acf.showLoading(this.$(".canvas"))},hideLoading:function(){acf.hideLoading(this.$(".canvas"))},maybeSearch:function(){var e=this.val(),i=this.getSearchVal();if(!i)return this.clear();if("http"!=i.substr(0,4)&&(i="http://"+i),i!==e){var a=this.get("timeout");a&&clearTimeout(a);var n=t.proxy(this.search,this,i);this.set("timeout",setTimeout(n,300))}},search:function(e){var i={action:"acf/fields/oembed/search",s:e,field_key:this.get("key")},a;(a=this.get("xhr"))&&a.abort(),this.showLoading();var a=t.ajax({url:acf.get("ajaxurl"),data:acf.prepareForAjax(i),type:"post",dataType:"json",context:this,success:function(t){t&&t.html||(t={url:!1,html:""}),this.val(t.url),this.$(".canvas-media").html(t.html)},complete:function(){this.hideLoading()}});this.set("xhr",a)},clear:function(){this.val(""),this.$search().val(""),this.$(".canvas-media").html("")},onClickClear:function(t,e){this.clear()},onKeypressSearch:function(t,e){13==t.which&&(t.preventDefault(),this.maybeSearch())},onKeyupSearch:function(t,e){e.val()&&this.maybeSearch()},onChangeSearch:function(t,e){this.maybeSearch()}});acf.registerFieldType(i)}(jQuery),function(t,e){var i=acf.Field.extend({type:"radio",events:{'click input[type="radio"]':"onClick"},$control:function(){return this.$(".acf-radio-list")},$input:function(){return this.$("input:checked")},$inputText:function(){return this.$('input[type="text"]')},getValue:function(){var t=this.$input().val();return"other"===t&&this.get("other_choice")&&(t=this.$inputText().val()),t},onClick:function(t,e){var i=e.parent("label"),a=i.hasClass("selected"),n=e.val();this.$(".selected").removeClass("selected"),i.addClass("selected"),this.get("allow_null")&&a&&(i.removeClass("selected"),e.prop("checked",!1).trigger("change"),n=!1),this.get("other_choice")&&("other"===n?this.$inputText().prop("disabled",!1):this.$inputText().prop("disabled",!0))}});acf.registerFieldType(i)}(jQuery),function(t,e){var i=acf.Field.extend({type:"range",events:{'input input[type="range"]':"onChange","change input":"onChange"},$input:function(){return this.$('input[type="range"]')},$inputAlt:function(){return this.$('input[type="number"]')},setValue:function(t){this.busy=!0,acf.val(this.$input(),t),acf.val(this.$inputAlt(),this.$input().val(),!0),this.busy=!1},onChange:function(t,e){this.busy||this.setValue(e.val())}});acf.registerFieldType(i)}(jQuery),function(t,e){var i=acf.Field.extend({type:"relationship",events:{"keypress [data-filter]":"onKeypressFilter","change [data-filter]":"onChangeFilter","keyup [data-filter]":"onChangeFilter","click .choices-list .acf-rel-item":"onClickAdd",'click [data-name="remove_item"]':"onClickRemove"},$control:function(){return this.$(".acf-relationship")},$list:function(t){return this.$("."+t+"-list")},$listItems:function(t){return this.$list(t).find(".acf-rel-item")},$listItem:function(t,e){return this.$list(t).find('.acf-rel-item[data-id="'+e+'"]')},getValue:function(){var e=[];return this.$listItems("values").each((function(){e.push(t(this).data("id"))})),!!e.length&&e},newChoice:function(t){return["
                          • ",''+t.text+"","
                          • "].join("")},newValue:function(t){return["
                          • ",'',''+t.text,'',"","
                          • "].join("")},initialize:function(){var t=this.proxy(acf.once((function(){this.$list("values").sortable({items:"li",forceHelperSize:!0,forcePlaceholderSize:!0,scroll:!0,update:this.proxy((function(){this.$input().trigger("change")}))}),this.$list("choices").scrollTop(0).on("scroll",this.proxy(this.onScrollChoices)),this.fetch()})));this.$el.one("mouseover",t),this.$el.one("focus","input",t),acf.onceInView(this.$el,t)},onScrollChoices:function(t){if(!this.get("loading")&&this.get("more")){var e=this.$list("choices"),i=Math.ceil(e.scrollTop()),a=Math.ceil(e[0].scrollHeight),n=Math.ceil(e.innerHeight()),s=this.get("paged")||1;i+n>=a&&(this.set("paged",s+1),this.fetch())}},onKeypressFilter:function(t,e){13==t.which&&t.preventDefault()},onChangeFilter:function(t,e){var i=e.val(),a=e.data("filter");this.get(a)!==i&&(this.set(a,i),this.set("paged",1),e.is("select")?this.fetch():this.maybeFetch())},onClickAdd:function(t,e){var i=this.val(),a=parseInt(this.get("max"));if(e.hasClass("disabled"))return!1;if(a>0&&i&&i.length>=a)return this.showNotice({text:acf.__("Maximum values reached ( {max} values )").replace("{max}",a),type:"warning"}),!1;e.addClass("disabled");var n=this.newValue({id:e.data("id"),text:e.html()});this.$list("values").append(n),this.$input().trigger("change")},onClickRemove:function(t,e){t.preventDefault();var i=e.parent(),a=i.parent(),n=i.data("id");a.remove(),this.$listItem("choices",n).removeClass("disabled"),this.$input().trigger("change")},maybeFetch:function(){var t=this.get("timeout");t&&clearTimeout(t),t=this.setTimeout(this.fetch,300),this.set("timeout",t)},getAjaxData:function(){var t=this.$control().data();for(var e in t)t[e]=this.get(e);return t.action="acf/fields/relationship/query",t.field_key=this.get("key"), -t=acf.applyFilters("relationship_ajax_data",t,this)},fetch:function(){var e;(e=this.get("xhr"))&&e.abort();var i=this.getAjaxData(),a=this.$list("choices");1==i.paged&&a.html("");var n=t('
                          • '+acf.__("Loading")+"
                          • ");a.append(n),this.set("loading",!0);var s=function(){this.set("loading",!1),n.remove()},r=function(e){if(!e||!e.results||!e.results.length)return this.set("more",!1),void(1==this.get("paged")&&this.$list("choices").append("
                          • "+acf.__("No matches found")+"
                          • "));this.set("more",e.more);var i=this.walkChoices(e.results),n=t(i),s=this.val();s&&s.length&&s.map((function(t){n.find('.acf-rel-item[data-id="'+t+'"]').addClass("disabled")})),a.append(n);var r=!1,o=!1;a.find(".acf-rel-label").each((function(){var e=t(this),i=e.siblings("ul");if(r&&r.text()==e.text())return o.append(i.children()),void t(this).parent().remove();r=e,o=i}))},e=t.ajax({url:acf.get("ajaxurl"),dataType:"json",type:"post",data:acf.prepareForAjax(i),context:this,success:r,complete:s});this.set("xhr",e)},walkChoices:function(e){var i=function(e){var a="";return t.isArray(e)?e.map((function(t){a+=i(t)})):t.isPlainObject(e)&&(void 0!==e.children?(a+='
                          • '+acf.escHtml(e.text)+'
                              ',a+=i(e.children),a+="
                          • "):a+='
                          • '+acf.escHtml(e.text)+"
                          • "),a};return i(e)}});acf.registerFieldType(i)}(jQuery),function(t,e){var i=acf.Field.extend({type:"select",select2:!1,wait:"load",events:{removeField:"onRemove"},$input:function(){return this.$("select")},initialize:function(){var t=this.$input();if(this.inherit(t),this.get("ui")){var e=this.get("ajax_action");e||(e="acf/fields/"+this.get("type")+"/query"),this.select2=acf.newSelect2(t,{field:this,ajax:this.get("ajax"),multiple:this.get("multiple"),placeholder:this.get("placeholder"),allowNull:this.get("allow_null"),ajaxAction:e})}},onRemove:function(){this.select2&&this.select2.destroy()}});acf.registerFieldType(i)}(jQuery),function(t,e){var i="tab",a=acf.Field.extend({type:"tab",wait:"",tabs:!1,tab:!1,events:{duplicateField:"onDuplicate"},findFields:function(){return this.$el.nextUntil(".acf-field-tab",".acf-field")},getFields:function(){return acf.getFields(this.findFields())},findTabs:function(){return this.$el.prevAll(".acf-tab-wrap:first")},findTab:function(){return this.$(".acf-tab-button")},initialize:function(){if(this.$el.is("td"))return this.events={},!1;var t=this.findTabs(),e=this.findTab(),i=acf.parseArgs(e.data(),{endpoint:!1,placement:"",before:this.$el});!t.length||i.endpoint?this.tabs=new s(i):this.tabs=t.data("acf"),this.tab=this.tabs.addTab(e,this)},isActive:function(){return this.tab.isActive()},showFields:function(){this.getFields().map((function(t){t.show(this.cid,"tab"),t.hiddenByTab=!1}),this)},hideFields:function(){this.getFields().map((function(t){t.hide(this.cid,"tab"),t.hiddenByTab=this.tab}),this)},show:function(t){var e=acf.Field.prototype.show.apply(this,arguments);return e&&(this.tab.show(),this.tabs.refresh()),e},hide:function(t){var e=acf.Field.prototype.hide.apply(this,arguments);return e&&(this.tab.hide(),this.isActive()&&this.tabs.reset()),e},enable:function(t){this.getFields().map((function(t){t.enable("tab")}))},disable:function(t){this.getFields().map((function(t){t.disable("tab")}))},onDuplicate:function(t,e,i){this.isActive()&&i.prevAll(".acf-tab-wrap:first").remove()}});acf.registerFieldType(a);var n=0,s=acf.Model.extend({tabs:[],active:!1,actions:{refresh:"onRefresh"},data:{before:!1,placement:"top",index:0,initialized:!1},setup:function(e){t.extend(this.data,e),this.tabs=[],this.active=!1;var i=this.get("placement"),a=this.get("before"),s=a.parent();"left"==i&&s.hasClass("acf-fields")&&s.addClass("-sidebar"),a.is("tr")?this.$el=t('
                            '):this.$el=t('
                              '),a.before(this.$el),this.set("index",n,!0),n++},initializeTabs:function(){var t=this.getVisible().shift(),e,i,a=(acf.getPreference("this.tabs")||[])[this.get("index")];this.tabs[a]&&this.tabs[a].isVisible()&&(t=this.tabs[a]),t?this.selectTab(t):this.closeTabs(),this.set("initialized",!0)},getVisible:function(){return this.tabs.filter((function(t){return t.isVisible()}))},getActive:function(){return this.active},setActive:function(t){return this.active=t},hasActive:function(){return!1!==this.active},isActive:function(t){var e=this.getActive();return e&&e.cid===t.cid},closeActive:function(){this.hasActive()&&this.closeTab(this.getActive())},openTab:function(t){this.closeActive(),t.open(),this.setActive(t)},closeTab:function(t){t.close(),this.setActive(!1)},closeTabs:function(){this.tabs.map(this.closeTab,this)},selectTab:function(t){this.tabs.map((function(e){t.cid!==e.cid&&this.closeTab(e)}),this),this.openTab(t)},addTab:function(e,i){var a=t("
                            • "+e.outerHTML()+"
                            • ");this.$("ul").append(a);var n=new r({$el:a,field:i,group:this});return this.tabs.push(n),n},reset:function(){return this.closeActive(),this.refresh()},refresh:function(){if(this.hasActive())return!1;var t=this.getVisible().shift();return t&&this.openTab(t),t},onRefresh:function(){if("left"===this.get("placement")){var t=this.$el.parent(),e=this.$el.children("ul"),i=t.is("td")?"height":"min-height",a=e.position().top+e.outerHeight(!0)-1;t.css(i,a)}}}),r=acf.Model.extend({group:!1,field:!1,events:{"click a":"onClick"},index:function(){return this.$el.index()},isVisible:function(){return acf.isVisible(this.$el)},isActive:function(){return this.$el.hasClass("active")},open:function(){this.$el.addClass("active"),this.field.showFields()},close:function(){this.$el.removeClass("active"),this.field.hideFields()},onClick:function(t,e){t.preventDefault(),this.toggle()},toggle:function(){this.isActive()||this.group.openTab(this)}}),o=new acf.Model({priority:50,actions:{prepare:"render",append:"render",unload:"onUnload",invalid_field:"onInvalidField"},findTabs:function(){return t(".acf-tab-wrap")},getTabs:function(){return acf.getInstances(this.findTabs())},render:function(t){this.getTabs().map((function(t){t.get("initialized")||t.initializeTabs()}))},onInvalidField:function(t){this.busy||t.hiddenByTab&&(t.hiddenByTab.toggle(),this.busy=!0,this.setTimeout((function(){this.busy=!1}),100))},onUnload:function(){var t=[];this.getTabs().map((function(e){var i=e.hasActive()?e.getActive().index():0;t.push(i)})),t.length&&acf.setPreference("this.tabs",t)}})}(jQuery),function(t,e){var i=acf.models.SelectField.extend({type:"post_object"});acf.registerFieldType(i)}(jQuery),function(t,e){var i=acf.models.SelectField.extend({type:"page_link"});acf.registerFieldType(i)}(jQuery),function(t,e){var i=acf.models.SelectField.extend({type:"user"});acf.registerFieldType(i)}(jQuery),function(t,e){var i=acf.Field.extend({type:"taxonomy",data:{ftype:"select"},select2:!1,wait:"load",events:{'click a[data-name="add"]':"onClickAdd",'click input[type="radio"]':"onClickRadio",removeField:"onRemove"},$control:function(){return this.$(".acf-taxonomy-field")},$input:function(){return this.getRelatedPrototype().$input.apply(this,arguments)},getRelatedType:function(){var t=this.get("ftype");return"multi_select"==t&&(t="select"),t},getRelatedPrototype:function(){return acf.getFieldType(this.getRelatedType()).prototype},getValue:function(){return this.getRelatedPrototype().getValue.apply(this,arguments)},setValue:function(){return this.getRelatedPrototype().setValue.apply(this,arguments)},initialize:function(){this.getRelatedPrototype().initialize.apply(this,arguments)},onRemove:function(){var t=this.getRelatedPrototype();t.onRemove&&t.onRemove.apply(this,arguments)},onClickAdd:function(e,i){var a=this,n=!1,s=!1,r=!1,o=!1,c=!1,l=!1,d=!1,u=function(){n=acf.newPopup({title:i.attr("title"),loading:!0,width:"300px"});var e={action:"acf/fields/taxonomy/add_term",field_key:a.get("key")};t.ajax({url:acf.get("ajaxurl"),data:acf.prepareForAjax(e),type:"post",dataType:"html",success:f})},f=function(t){n.loading(!1),n.content(t),s=n.$("form"),r=n.$('input[name="term_name"]'),o=n.$('select[name="term_parent"]'),c=n.$(".acf-submit-button"),r.focus(),n.on("submit","form",p)},p=function(e,i){if(e.preventDefault(),e.stopImmediatePropagation(),""===r.val())return r.focus(),!1;acf.startButtonLoading(c);var n={action:"acf/fields/taxonomy/add_term",field_key:a.get("key"),term_name:r.val(),term_parent:o.length?o.val():0};t.ajax({url:acf.get("ajaxurl"),data:acf.prepareForAjax(n),type:"post",dataType:"json",success:h})},h=function(t){acf.stopButtonLoading(c),d&&d.remove(),acf.isAjaxSuccess(t)?(r.val(""),g(t.data),d=acf.newNotice({type:"success",text:acf.getAjaxMessage(t),target:s,timeout:2e3,dismiss:!1})):d=acf.newNotice({type:"error",text:acf.getAjaxError(t),target:s,timeout:2e3,dismiss:!1}),r.focus()},g=function(e){var i=t('"),n;e.term_parent?o.children('option[value="'+e.term_parent+'"]').after(i):o.append(i),acf.getFields({type:"taxonomy"}).map((function(t){t.get("taxonomy")==a.get("taxonomy")&&t.appendTerm(e)})),a.selectTerm(e.term_id)};u()},appendTerm:function(t){"select"==this.getRelatedType()?this.appendTermSelect(t):this.appendTermCheckbox(t)},appendTermSelect:function(t){this.select2.addOption({id:t.term_id,text:t.term_label})},appendTermCheckbox:function(e){var i=this.$("[name]:first").attr("name"),a=this.$("ul:first");"checkbox"==this.getRelatedType()&&(i+="[]");var n=t(['
                            • ',"","
                            • "].join(""));if(e.term_parent){var s=a.find('li[data-id="'+e.term_parent+'"]');(a=s.children("ul")).exists()||(a=t('
                                '),s.append(a))}a.append(n)},selectTerm:function(t){var e;"select"==this.getRelatedType()?this.select2.selectOption(t):this.$('input[value="'+t+'"]').prop("checked",!0).trigger("change")},onClickRadio:function(t,e){var i=e.parent("label"),a=i.hasClass("selected");this.$(".selected").removeClass("selected"),i.addClass("selected"),this.get("allow_null")&&a&&(i.removeClass("selected"),e.prop("checked",!1).trigger("change"))}});acf.registerFieldType(i)}(jQuery),function(t,e){var i=acf.models.DatePickerField.extend({type:"time_picker",$control:function(){return this.$(".acf-time-picker")},initialize:function(){var t=this.$input(),e=this.$inputText(),i={timeFormat:this.get("time_format"),altField:t,altFieldTimeOnly:!1,altTimeFormat:"HH:mm:ss",showButtonPanel:!0,controlType:"select",oneLine:!0,closeText:acf.get("dateTimePickerL10n").selectText,timeOnly:!0,onClose:function(t,e,i){var a=e.dpDiv.find(".ui-datepicker-close");!t&&a.is(":hover")&&i._updateDateTime()}};i=acf.applyFilters("time_picker_args",i,this),acf.newTimePicker(e,i),acf.doAction("time_picker_init",e,i,this)}});acf.registerFieldType(i),acf.newTimePicker=function(e,i){if(void 0===t.timepicker)return!1;i=i||{},e.timepicker(i),t("body > #ui-datepicker-div").exists()&&t("body > #ui-datepicker-div").wrap('
                                ')}}(jQuery),function(t,e){var i=acf.Field.extend({type:"true_false",events:{"change .acf-switch-input":"onChange","focus .acf-switch-input":"onFocus","blur .acf-switch-input":"onBlur","keypress .acf-switch-input":"onKeypress"},$input:function(){return this.$('input[type="checkbox"]')},$switch:function(){return this.$(".acf-switch")},getValue:function(){return this.$input().prop("checked")?1:0},initialize:function(){this.render()},render:function(){var t=this.$switch();if(t.length){var e=t.children(".acf-switch-on"),i=t.children(".acf-switch-off"),a=Math.max(e.width(),i.width());a&&(e.css("min-width",a),i.css("min-width",a))}},switchOn:function(){this.$input().prop("checked",!0),this.$switch().addClass("-on")},switchOff:function(){this.$input().prop("checked",!1),this.$switch().removeClass("-on")},onChange:function(t,e){e.prop("checked")?this.switchOn():this.switchOff()},onFocus:function(t,e){this.$switch().addClass("-focus")},onBlur:function(t,e){this.$switch().removeClass("-focus")},onKeypress:function(t,e){return 37===t.keyCode?this.switchOff():39===t.keyCode?this.switchOn():void 0}});acf.registerFieldType(i)}(jQuery),function(t,e){var i=acf.Field.extend({type:"url",events:{'keyup input[type="url"]':"onkeyup"},$control:function(){return this.$(".acf-input-wrap")},$input:function(){return this.$('input[type="url"]')},initialize:function(){this.render()},isValid:function(){var t=this.val();return!!t&&(-1!==t.indexOf("://")||0===t.indexOf("//"))},render:function(){this.isValid()?this.$control().addClass("-valid"):this.$control().removeClass("-valid")},onkeyup:function(t,e){this.render()}});acf.registerFieldType(i)}(jQuery),function(t,e){var i=acf.Field.extend({type:"wysiwyg",wait:"load",events:{"mousedown .acf-editor-wrap.delay":"onMousedown",unmountField:"disableEditor",remountField:"enableEditor",removeField:"disableEditor"},$control:function(){return this.$(".acf-editor-wrap")},$input:function(){return this.$("textarea")},getMode:function(){return this.$control().hasClass("tmce-active")?"visual":"text"},initialize:function(){this.$control().hasClass("delay")||this.initializeEditor()},initializeEditor:function(){var t=this.$control(),e=this.$input(),i={tinymce:!0,quicktags:!0,toolbar:this.get("toolbar"),mode:this.getMode(),field:this},a=e.attr("id"),n=acf.uniqueId("acf-editor-"),s=e.data(),r=e.val();acf.rename({target:t,search:a,replace:n,destructive:!0}),this.set("id",n,!0),this.$input().data(s).val(r),acf.tinymce.initialize(n,i)},onMousedown:function(t){t.preventDefault();var e=this.$control();e.removeClass("delay"),e.find(".acf-editor-toolbar").remove(),this.initializeEditor()},enableEditor:function(){"visual"==this.getMode()&&acf.tinymce.enable(this.get("id"))},disableEditor:function(){acf.tinymce.destroy(this.get("id"))}});acf.registerFieldType(i)}(jQuery),function(t,e){var i=[];acf.Condition=acf.Model.extend({type:"",operator:"==",label:"",choiceType:"input",fieldTypes:[],data:{conditions:!1,field:!1,rule:{}},events:{change:"change",keyup:"change",enableField:"change",disableField:"change"},setup:function(e){t.extend(this.data,e)},getEventTarget:function(t,e){return t||this.get("field").$el},change:function(t,e){this.get("conditions").change(t)},match:function(t,e){return!1},calculate:function(){return this.match(this.get("rule"),this.get("field"))},choices:function(t){return''}}),acf.newCondition=function(t,e){var i=e.get("field"),a=i.getField(t.field);if(!i||!a)return!1;var n={rule:t,target:i,conditions:e,field:a},s=a.get("type"),r=t.operator,o,c,l;return new(acf.getConditionTypes({fieldType:s,operator:r})[0]||acf.Condition)(n)};var a=function(t){return acf.strPascalCase(t||"")+"Condition"};acf.registerConditionType=function(t){var e,n=t.prototype.type,s=a(n);acf.models[s]=t,i.push(n)},acf.getConditionType=function(t){var e=a(t);return acf.models[e]||!1},acf.registerConditionForFieldType=function(t,e){var i=acf.getConditionType(t);i&&i.prototype.fieldTypes.push(e)},acf.getConditionTypes=function(t){t=acf.parseArgs(t,{fieldType:"",operator:""});var e=[];return i.map((function(i){var a=acf.getConditionType(i),n=a.prototype.fieldTypes,s=a.prototype.operator;t.fieldType&&-1===n.indexOf(t.fieldType)||t.operator&&s!==t.operator||e.push(a)})),e}}(jQuery),function(t,e){var i="conditional_logic",a=new acf.Model({id:"conditionsManager",priority:20,actions:{new_field:"onNewField"},onNewField:function(t){t.has("conditions")&&t.getConditions().render()}}),n=function(t,e){var i=acf.getFields({key:e,sibling:t.$el,suppressFilters:!0});return i.length||(i=acf.getFields({key:e,parent:t.$el.parent(),suppressFilters:!0})),!!i.length&&i[0]};acf.Field.prototype.getField=function(t){var e=n(this,t);if(e)return e;for(var i=this.parents(),a=0;aparseFloat(e)},o=function(t,e){return parseFloat(t)-1},l=function(t,e){return a(t).indexOf(a(e))>-1},d=function(t,e){var i=new RegExp(a(e),"gi");return a(t).match(i)},u=acf.Condition.extend({type:"hasValue",operator:"!=empty",label:i("Has any value"),fieldTypes:["text","textarea","number","range","email","url","password","image","file","wysiwyg","oembed","select","checkbox","radio","button_group","link","post_object","page_link","relationship","taxonomy","user","google_map","date_picker","date_time_picker","time_picker","color_picker"],match:function(t,e){return!!e.val()},choices:function(t){return''}});acf.registerConditionType(u);var f=u.extend({type:"hasNoValue",operator:"==empty",label:i("Has no value"),match:function(t,e){return!u.prototype.match.apply(this,arguments)}});acf.registerConditionType(f);var p=acf.Condition.extend({type:"equalTo",operator:"==",label:i("Value is equal to"),fieldTypes:["text","textarea","number","range","email","url","password"],match:function(e,i){return t.isNumeric(e.value)?s(e.value,i.val()):n(e.value,i.val())},choices:function(t){return''}});acf.registerConditionType(p);var h=p.extend({type:"notEqualTo",operator:"!=",label:i("Value is not equal to"),match:function(t,e){return!p.prototype.match.apply(this,arguments)}});acf.registerConditionType(h);var g=acf.Condition.extend({type:"patternMatch",operator:"==pattern",label:i("Value matches pattern"),fieldTypes:["text","textarea","email","url","password","wysiwyg"],match:function(t,e){return d(e.val(),t.value)},choices:function(t){return''}});acf.registerConditionType(g);var m=acf.Condition.extend({type:"contains",operator:"==contains",label:i("Value contains"),fieldTypes:["text","textarea","number","email","url","password","wysiwyg","oembed","select"],match:function(t,e){return l(e.val(),t.value)},choices:function(t){return''}});acf.registerConditionType(m);var v=p.extend({type:"trueFalseEqualTo",choiceType:"select",fieldTypes:["true_false"],choices:function(t){return[{id:1,text:i("Checked")}]}});acf.registerConditionType(v);var y=h.extend({type:"trueFalseNotEqualTo",choiceType:"select",fieldTypes:["true_false"],choices:function(t){return[{id:1,text:i("Checked")}]}});acf.registerConditionType(y);var b=acf.Condition.extend({type:"selectEqualTo",operator:"==",label:i("Value is equal to"),fieldTypes:["select","checkbox","radio","button_group"],match:function(t,e){var i=e.val();return i instanceof Array?c(t.value,i):n(t.value,i)},choices:function(e){var a=[],n=e.$setting("choices textarea").val().split("\n");return e.$input("allow_null").prop("checked")&&a.push({id:"",text:i("Null")}),n.map((function(e){(e=e.split(":"))[1]=e[1]||e[0],a.push({id:t.trim(e[0]),text:t.trim(e[1])})})),a}});acf.registerConditionType(b);var _=b.extend({type:"selectNotEqualTo",operator:"!=",label:i("Value is not equal to"),match:function(t,e){return!b.prototype.match.apply(this,arguments)}});acf.registerConditionType(_);var w=acf.Condition.extend({type:"greaterThan",operator:">",label:i("Value is greater than"),fieldTypes:["number","range"],match:function(t,e){var i=e.val();return i instanceof Array&&(i=i.length),r(i,t.value)},choices:function(t){return''}});acf.registerConditionType(w);var x=w.extend({type:"lessThan",operator:"<",label:i("Value is less than"),match:function(t,e){var i=e.val();return i instanceof Array&&(i=i.length),o(i,t.value)},choices:function(t){return''}});acf.registerConditionType(x);var $=w.extend({type:"selectionGreaterThan",label:i("Selection is greater than"),fieldTypes:["checkbox","select","post_object","page_link","relationship","taxonomy","user"]});acf.registerConditionType($);var k=x.extend({type:"selectionLessThan",label:i("Selection is less than"),fieldTypes:["checkbox","select","post_object","page_link","relationship","taxonomy","user"]});acf.registerConditionType(k)}(jQuery),function(t,e){acf.unload=new acf.Model({wait:"load",active:!0,changed:!1,actions:{validation_failure:"startListening",validation_success:"stopListening"},events:{"change form .acf-field":"startListening","submit form":"stopListening"},enable:function(){this.active=!0},disable:function(){this.active=!1},reset:function(){this.stopListening()},startListening:function(){!this.changed&&this.active&&(this.changed=!0,t(window).on("beforeunload",this.onUnload))},stopListening:function(){this.changed=!1,t(window).off("beforeunload",this.onUnload)},onUnload:function(){return acf.__("The changes you made will be lost if you navigate away from this page")}})}(jQuery),function(t,e){var i=new acf.Model({wait:"prepare",priority:1,initialize:function(){(acf.get("postboxes")||[]).map(acf.newPostbox)}});acf.getPostbox=function(e){return"string"==typeof e&&(e=t("#"+e)),acf.getInstance(e)},acf.getPostboxes=function(){return acf.getInstances(t(".acf-postbox"))},acf.newPostbox=function(t){return new acf.models.Postbox(t)},acf.models.Postbox=acf.Model.extend({data:{id:"",key:"",style:"default",label:"top",edit:""},setup:function(e){e.editLink&&(e.edit=e.editLink),t.extend(this.data,e),this.$el=this.$postbox()},$postbox:function(){return t("#"+this.get("id"))},$hide:function(){return t("#"+this.get("id")+"-hide")},$hideLabel:function(){return this.$hide().parent()},$hndle:function(){return this.$("> .hndle")},$handleActions:function(){return this.$("> .postbox-header .handle-actions")},$inside:function(){return this.$("> .inside")},isVisible:function(){return this.$el.hasClass("acf-hidden")},initialize:function(){if(this.$el.addClass("acf-postbox"),this.$el.removeClass("hide-if-js"),"block"!==acf.get("editor")){var t=this.get("style");"default"!==t&&this.$el.addClass(t)}this.$inside().addClass("acf-fields").addClass("-"+this.get("label"));var e=this.get("edit");if(e){var i='',a=this.$handleActions();a.length?a.prepend(i):this.$hndle().append(i)}this.show()},show:function(){this.$hideLabel().show(),this.$hide().prop("checked",!0),this.$el.show().removeClass("acf-hidden"),acf.doAction("show_postbox",this)},enable:function(){acf.enable(this.$el,"postbox")},showEnable:function(){this.enable(),this.show()},hide:function(){this.$hideLabel().hide(),this.$el.hide().addClass("acf-hidden"),acf.doAction("hide_postbox",this)},disable:function(){acf.disable(this.$el,"postbox")},hideDisable:function(){this.disable(),this.hide()},html:function(t){this.$inside().html(t),acf.doAction("append",this.$el)}})}(jQuery),function(t,e){acf.newMediaPopup=function(t){var e=null,t=acf.parseArgs(t,{mode:"select",title:"",button:"",type:"",field:!1,allowedTypes:"",library:"all",multiple:!1,attachment:0,autoOpen:!0,open:function(){},select:function(){},close:function(){}});return e="edit"==t.mode?new acf.models.EditMediaPopup(t):new acf.models.SelectMediaPopup(t),t.autoOpen&&setTimeout((function(){e.open()}),1),acf.doAction("new_media_popup",e),e};var i=function(){var e=acf.get("post_id");return t.isNumeric(e)?e:0};acf.getMimeTypes=function(){return this.get("mimeTypes")},acf.getMimeType=function(t){var e=acf.getMimeTypes();if(void 0!==e[t])return e[t];for(var i in e)if(-1!==i.indexOf(t))return e[i];return!1};var a=acf.Model.extend({id:"MediaPopup",data:{},defaults:{},frame:!1,setup:function(e){t.extend(this.data,e)},initialize:function(){var t=this.getFrameOptions();this.addFrameStates(t);var e=wp.media(t);e.acf=this,this.addFrameEvents(e,t),this.frame=e},open:function(){this.frame.open()},close:function(){this.frame.close()},remove:function(){this.frame.detach(),this.frame.remove()},getFrameOptions:function(){var t={title:this.get("title"),multiple:this.get("multiple"),library:{},states:[]};return this.get("type")&&(t.library.type=this.get("type")),"uploadedTo"===this.get("library")&&(t.library.uploadedTo=i()),this.get("attachment")&&(t.library.post__in=[this.get("attachment")]),this.get("button")&&(t.button={text:this.get("button")}),t},addFrameStates:function(t){var e=wp.media.query(t.library);this.get("field")&&acf.isset(e,"mirroring","args")&&(e.mirroring.args._acfuploader=this.get("field")),t.states.push(new wp.media.controller.Library({library:e,multiple:this.get("multiple"),title:this.get("title"),priority:20,filterable:"all",editable:!0,allowLocalEdits:!0})),acf.isset(wp,"media","controller","EditImage")&&t.states.push(new wp.media.controller.EditImage)},addFrameEvents:function(t,e){t.on("open",(function(){this.$el.closest(".media-modal").addClass("acf-media-modal -"+this.acf.get("mode"))}),t),t.on("content:render:edit-image",(function(){var t=this.state().get("image"),e=new wp.media.view.EditImage({model:t,controller:this}).render();this.content.set(e),e.loadEditor()}),t),t.on("select",(function(){var e=t.state().get("selection");e&&e.each((function(e,i){t.acf.get("select").apply(t.acf,[e,i])}))})),t.on("close",(function(){setTimeout((function(){t.acf.get("close").apply(t.acf),t.acf.remove()}),1)}))}});acf.models.SelectMediaPopup=a.extend({id:"SelectMediaPopup",setup:function(t){t.button||(t.button=acf._x("Select","verb")),a.prototype.setup.apply(this,arguments)},addFrameEvents:function(t,e){acf.isset(_wpPluploadSettings,"defaults","multipart_params")&&(_wpPluploadSettings.defaults.multipart_params._acfuploader=this.get("field"),t.on("open",(function(){delete _wpPluploadSettings.defaults.multipart_params._acfuploader}))),t.on("content:activate:browse",(function(){var e=!1;try{e=t.content.get().toolbar}catch(t){return void console.log(t)}t.acf.customizeFilters.apply(t.acf,[e])})),a.prototype.addFrameEvents.apply(this,arguments)},customizeFilters:function(e){var i=e.get("filters"),a;("image"==this.get("type")&&(i.filters.all.text=acf.__("All images"),delete i.filters.audio,delete i.filters.video,delete i.filters.image,t.each(i.filters,(function(t,e){e.props.type=e.props.type||"image"}))),this.get("allowedTypes"))&&this.get("allowedTypes").split(" ").join("").split(".").join("").split(",").map((function(t){var e=acf.getMimeType(t);if(e){var a={text:e,props:{status:null,type:e,uploadedTo:null,orderby:"date",order:"DESC"},priority:20};i.filters[e]=a}}));if("uploadedTo"===this.get("library")){var n=this.frame.options.library.uploadedTo;delete i.filters.unattached,delete i.filters.uploaded,t.each(i.filters,(function(t,e){e.text+=" ("+acf.__("Uploaded to this post")+")",e.props.uploadedTo=n}))}var s=this.get("field"),r;t.each(i.filters,(function(t,e){e.props._acfuploader=s})),e.get("search").model.attributes._acfuploader=s,i.renderFilters&&i.renderFilters()}}),acf.models.EditMediaPopup=a.extend({id:"SelectMediaPopup",setup:function(t){t.button||(t.button=acf._x("Update","verb")),a.prototype.setup.apply(this,arguments)},addFrameEvents:function(t,e){t.on("open",(function(){this.$el.closest(".media-modal").addClass("acf-expanded"),"browse"!=this.content.mode()&&this.content.mode("browse");var e,i=this.state().get("selection"),a=wp.media.attachment(t.acf.get("attachment"));i.add(a)}),t),a.prototype.addFrameEvents.apply(this,arguments)}});var n=new acf.Model({id:"customizePrototypes",wait:"ready",initialize:function(){if(acf.isset(window,"wp","media","view")){var t=i();t&&acf.isset(wp,"media","view","settings","post")&&(wp.media.view.settings.post.id=t),this.customizeAttachmentsButton(),this.customizeAttachmentsRouter(),this.customizeAttachmentFilters(),this.customizeAttachmentCompat(),this.customizeAttachmentLibrary()}},customizeAttachmentsButton:function(){if(acf.isset(wp,"media","view","Button")){var t=wp.media.view.Button;wp.media.view.Button=t.extend({initialize:function(){var t=_.defaults(this.options,this.defaults);this.model=new Backbone.Model(t),this.listenTo(this.model,"change",this.render)}})}},customizeAttachmentsRouter:function(){if(acf.isset(wp,"media","view","Router")){var e=wp.media.view.Router;wp.media.view.Router=e.extend({addExpand:function(){var e=t(['',''+acf.__("Expand Details")+"",''+acf.__("Collapse Details")+"",""].join(""));e.on("click",(function(e){e.preventDefault();var i=t(this).closest(".media-modal");i.hasClass("acf-expanded")?i.removeClass("acf-expanded"):i.addClass("acf-expanded")})),this.$el.append(e)},initialize:function(){return e.prototype.initialize.apply(this,arguments),this.addExpand(),this}})}},customizeAttachmentFilters:function(){var e;acf.isset(wp,"media","view","AttachmentFilters","All")&&(wp.media.view.AttachmentFilters.All.prototype.renderFilters=function(){this.$el.html(_.chain(this.filters).map((function(e,i){return{el:t("").val(i).html(e.text)[0],priority:e.priority||50}}),this).sortBy("priority").pluck("el").value())})},customizeAttachmentCompat:function(){if(acf.isset(wp,"media","view","AttachmentCompat")){var e=wp.media.view.AttachmentCompat,i=!1;wp.media.view.AttachmentCompat=e.extend({render:function(){return this.rendered?this:(e.prototype.render.apply(this,arguments),this.$("#acf-form-data").length?(clearTimeout(i),i=setTimeout(t.proxy((function(){this.rendered=!0,acf.doAction("append",this.$el)}),this),50),this):this)},save:function(t){var e={};t&&t.preventDefault(),e=acf.serializeForAjax(this.$el),this.controller.trigger("attachment:compat:waiting",["waiting"]),this.model.saveCompat(e).always(_.bind(this.postSave,this))}})}},customizeAttachmentLibrary:function(){if(acf.isset(wp,"media","view","Attachment","Library")){var t=wp.media.view.Attachment.Library;wp.media.view.Attachment.Library=t.extend({render:function(){var e=acf.isget(this,"controller","acf"),i=acf.isget(this,"model","attributes");if(e&&i){i.acf_errors&&this.$el.addClass("acf-disabled");var a=e.get("selected");a&&a.indexOf(i.id)>-1&&this.$el.addClass("acf-selected")}return t.prototype.render.apply(this,arguments)},toggleSelection:function(e){var i=this.collection,a=this.options.selection,n=this.model,s=a.single(),r=this.controller,o=acf.isget(this,"model","attributes","acf_errors"),c=r.$el.find(".media-frame-content .media-sidebar") -;if(c.children(".acf-selection-error").remove(),c.children().removeClass("acf-hidden"),r&&o){var l=acf.isget(this,"model","attributes","filename");return c.children().addClass("acf-hidden"),c.prepend(['
                                ',''+acf.__("Restricted")+"",''+l+"",''+o+"","
                                "].join("")),a.reset(),void a.single(n)}return t.prototype.toggleSelection.apply(this,arguments)}})}}})}(jQuery),function(t,e){acf.screen=new acf.Model({active:!0,xhr:!1,timeout:!1,wait:"load",events:{"change #page_template":"onChange","change #parent_id":"onChange","change #post-formats-select":"onChange","change .categorychecklist":"onChange","change .tagsdiv":"onChange",'change .acf-taxonomy-field[data-save="1"]':"onChange","change #product-type":"onChange"},isPost:function(){return"post"===acf.get("screen")},isUser:function(){return"user"===acf.get("screen")},isTaxonomy:function(){return"taxonomy"===acf.get("screen")},isAttachment:function(){return"attachment"===acf.get("screen")},isNavMenu:function(){return"nav_menu"===acf.get("screen")},isWidget:function(){return"widget"===acf.get("screen")},isComment:function(){return"comment"===acf.get("screen")},getPageTemplate:function(){var e=t("#page_template");return e.length?e.val():null},getPageParent:function(e,i){var i;return(i=t("#parent_id")).length?i.val():null},getPageType:function(t,e){return this.getPageParent()?"child":"parent"},getPostType:function(){return t("#post_type").val()},getPostFormat:function(e,i){var i;if((i=t("#post-formats-select input:checked")).length){var a=i.val();return"0"==a?"standard":a}return null},getPostCoreTerms:function(){var e={},i=acf.serialize(t(".categorydiv, .tagsdiv"));for(var a in i.tax_input&&(e=i.tax_input),i.post_category&&(e.category=i.post_category),e)acf.isArray(e[a])||(e[a]=e[a].split(/,[\s]?/));return e},getPostTerms:function(){var t=this.getPostCoreTerms();for(var e in acf.getFields({type:"taxonomy"}).map((function(e){if(e.get("save")){var i=e.val(),a=e.get("taxonomy");i&&(t[a]=t[a]||[],i=acf.isArray(i)?i:[i],t[a]=t[a].concat(i))}})),null!==(productType=this.getProductType())&&(t.product_type=[productType]),t)t[e]=acf.uniqueArray(t[e]);return t},getProductType:function(){var e=t("#product-type");return e.length?e.val():null},check:function(){if("post"===acf.get("screen")){this.xhr&&this.xhr.abort();var e=acf.parseArgs(this.data,{action:"acf/ajax/check_screen",screen:acf.get("screen"),exists:[]});this.isPost()&&(e.post_id=acf.get("post_id")),null!==(postType=this.getPostType())&&(e.post_type=postType),null!==(pageTemplate=this.getPageTemplate())&&(e.page_template=pageTemplate),null!==(pageParent=this.getPageParent())&&(e.page_parent=pageParent),null!==(pageType=this.getPageType())&&(e.page_type=pageType),null!==(postFormat=this.getPostFormat())&&(e.post_format=postFormat),null!==(postTerms=this.getPostTerms())&&(e.post_terms=postTerms),acf.getPostboxes().map((function(t){e.exists.push(t.get("key"))})),e=acf.applyFilters("check_screen_args",e);var i=function(t){"post"==acf.get("screen")?this.renderPostScreen(t):"user"==acf.get("screen")&&this.renderUserScreen(t),acf.doAction("check_screen_complete",t,e)};this.xhr=t.ajax({url:acf.get("ajaxurl"),data:acf.prepareForAjax(e),type:"post",dataType:"json",context:this,success:i})}},onChange:function(t,e){this.setTimeout(this.check,1)},renderPostScreen:function(e){var i=function(e,i){var a=t._data(e[0]).events;for(var n in a)for(var s=0;s=0;n--)if(t("#"+i[n]).length)return t("#"+i[n]).after(t("#"+e));for(var n=a+1;n=5.5)var c=['
                                ','

                                ',""+acf.escHtml(n.title)+"","

                                ",'
                                ','","
                                ","
                                "].join("");else var c=['",'

                                ',""+acf.escHtml(n.title)+"","

                                "].join("");var l=t(['
                                ',c,'
                                ',n.html,"
                                ","
                                "].join(""));if(t("#adv-settings").length){var d=t("#adv-settings .metabox-prefs"),u=t(['"].join(""));i(d.find("input").first(),u.find("input")),d.append(u)}t(".postbox").length&&(i(t(".postbox .handlediv").first(),l.children(".handlediv")),i(t(".postbox .hndle").first(),l.children(".hndle"))),"side"===n.position?t("#"+n.position+"-sortables").append(l):t("#"+n.position+"-sortables").prepend(l);var f=[];if(e.results.map((function(e){n.position===e.position&&t("#"+n.position+"-sortables #"+e.id).length&&f.push(e.id)})),a(n.id,f),e.sorted)for(var p in e.sorted){var f=e.sorted[p].split(",");if(a(n.id,f))break}r=acf.newPostbox(n),acf.doAction("append",l),acf.doAction("append_postbox",r)}return r.showEnable(),e.visible.push(n.id),n})),acf.getPostboxes().map((function(t){-1===e.visible.indexOf(t.get("id"))&&(t.hideDisable(),e.hidden.push(t.get("id")))})),t("#acf-style").html(e.style),acf.doAction("refresh_post_screen",e)},renderUserScreen:function(t){}});var i=new acf.Model({postEdits:{},wait:"prepare",initialize:function(){var t;acf.isGutenberg()&&(wp.data.subscribe(acf.debounce(this.onChange).bind(this)),acf.screen.getPageTemplate=this.getPageTemplate,acf.screen.getPageParent=this.getPageParent,acf.screen.getPostType=this.getPostType,acf.screen.getPostFormat=this.getPostFormat,acf.screen.getPostCoreTerms=this.getPostCoreTerms,acf.unload.disable(),parseFloat(acf.get("wp_version"))>=5.3&&this.addAction("refresh_post_screen",this.onRefreshPostScreen),wp.domReady(acf.refresh))},onChange:function(){var t=["template","parent","format"];(wp.data.select("core").getTaxonomies()||[]).map((function(e){t.push(e.rest_base)}));var e=wp.data.select("core/editor").getPostEdits(),i={};t.map((function(t){void 0!==e[t]&&(i[t]=e[t])})),JSON.stringify(i)!==JSON.stringify(this.postEdits)&&(this.postEdits=i,acf.screen.check())},getPageTemplate:function(){return wp.data.select("core/editor").getEditedPostAttribute("template")},getPageParent:function(t,e){return wp.data.select("core/editor").getEditedPostAttribute("parent")},getPostType:function(){return wp.data.select("core/editor").getEditedPostAttribute("type")},getPostFormat:function(t,e){return wp.data.select("core/editor").getEditedPostAttribute("format")},getPostCoreTerms:function(){var t={},e;return(wp.data.select("core").getTaxonomies()||[]).map((function(e){var i=wp.data.select("core/editor").getEditedPostAttribute(e.rest_base);i&&(t[e.slug]=i)})),t},onRefreshPostScreen:function(t){var e=wp.data.select("core/edit-post"),i=wp.data.dispatch("core/edit-post"),a={};e.getActiveMetaBoxLocations().map((function(t){a[t]=e.getMetaBoxesPerLocation(t)}));var n=[];for(var s in a)a[s].map((function(t){n.push(t.id)}));for(var s in t.results.filter((function(t){return-1===n.indexOf(t.id)})).map((function(t,e){var i=t.position;a[i]=a[i]||[],a[i].push({id:t.id,title:t.title})})),a)a[s]=a[s].filter((function(e){return-1===t.hidden.indexOf(e.id)}));i.setAvailableMetaBoxesPerLocation(a)}})}(jQuery),function(t,e){function i(){return acf.isset(window,"jQuery","fn","select2","amd")?4:!!acf.isset(window,"Select2")&&3}acf.newSelect2=function(t,e){if(e=acf.parseArgs(e,{allowNull:!1,placeholder:"",multiple:!1,field:!1,ajax:!1,ajaxAction:"",ajaxData:function(t){return t},ajaxResults:function(t){return t}}),4==i())var a=new n(t,e);else var a=new s(t,e);return acf.doAction("new_select2",a),a};var a=acf.Model.extend({setup:function(e,i){t.extend(this.data,i),this.$el=e},initialize:function(){},selectOption:function(t){var e=this.getOption(t);e.prop("selected")||e.prop("selected",!0).trigger("change")},unselectOption:function(t){var e=this.getOption(t);e.prop("selected")&&e.prop("selected",!1).trigger("change")},getOption:function(t){return this.$('option[value="'+t+'"]')},addOption:function(e){e=acf.parseArgs(e,{id:"",text:"",selected:!1});var i=this.getOption(e.id);return i.length||((i=t("")).html(e.text),i.attr("value",e.id),i.prop("selected",e.selected),this.$el.append(i)),i},getValue:function(){var e=[],i=this.$el.find("option:selected");return i.exists()?((i=i.sort((function(t,e){return+t.getAttribute("data-i")-+e.getAttribute("data-i")}))).each((function(){var i=t(this);e.push({$el:i,id:i.attr("value"),text:i.text()})})),e):e},mergeOptions:function(){},getChoices:function(){var e=function(i){var a=[];return i.children().each((function(){var i=t(this);i.is("optgroup")?a.push({text:i.attr("label"),children:e(i)}):a.push({id:i.attr("value"),text:i.text()})})),a};return e(this.$el)},getAjaxData:function(t){var e={action:this.get("ajaxAction"),s:t.term||"",paged:t.page||1},i=this.get("field");i&&(e.field_key=i.get("key"));var a=this.get("ajaxData");return a&&(e=a.apply(this,[e,t])),e=acf.applyFilters("select2_ajax_data",e,this.data,this.$el,i||!1,this),acf.prepareForAjax(e)},getAjaxResults:function(t,e){t=acf.parseArgs(t,{results:!1,more:!1});var i=this.get("ajaxResults");return i&&(t=i.apply(this,[t,e])),t=acf.applyFilters("select2_ajax_results",t,e,this)},processAjaxResults:function(e,i){var e;return(e=this.getAjaxResults(e,i)).more&&(e.pagination={more:!0}),setTimeout(t.proxy(this.mergeOptions,this),1),e},destroy:function(){this.$el.data("select2")&&this.$el.select2("destroy"),this.$el.siblings(".select2-container").remove()}}),n=a.extend({initialize:function(){var e=this.$el,i={width:"100%",allowClear:this.get("allowNull"),placeholder:this.get("placeholder"),multiple:this.get("multiple"),data:[],escapeMarkup:function(t){return acf.escHtml(t)}};i.multiple&&this.getValue().map((function(t){t.$el.detach().appendTo(e)})),e.removeData("ajax"),e.removeAttr("data-ajax"),this.get("ajax")&&(i.ajax={url:acf.get("ajaxurl"),delay:250,dataType:"json",type:"post",cache:!1,data:t.proxy(this.getAjaxData,this),processResults:t.proxy(this.processAjaxResults,this)});var a=this.get("field");i=acf.applyFilters("select2_args",i,e,this.data,a||!1,this),e.select2(i);var n=e.next(".select2-container");if(i.multiple){var s=n.find("ul");s.sortable({stop:function(i){s.find(".select2-selection__choice").each((function(){var i;t(t(this).data("data").element).detach().appendTo(e)})),e.trigger("change")}}),e.on("select2:select",this.proxy((function(t){this.getOption(t.params.data.id).detach().appendTo(this.$el)})))}n.addClass("-acf"),acf.doAction("select2_init",e,i,this.data,a||!1,this)},mergeOptions:function(){var e=!1,i=!1;t('.select2-results__option[role="group"]').each((function(){var a=t(this).children("ul"),n=t(this).children("strong");if(i&&i.text()===n.text())return e.append(a.children()),void t(this).remove();e=a,i=n}))}}),s=a.extend({initialize:function(){var e=this.$el,i=this.getValue(),a=this.get("multiple"),n={width:"100%",allowClear:this.get("allowNull"),placeholder:this.get("placeholder"),separator:"||",multiple:this.get("multiple"),data:this.getChoices(),escapeMarkup:function(t){return acf.escHtml(t)},dropdownCss:{"z-index":"999999999"},initSelection:function(t,e){e(a?i:i.shift())}},s=e.siblings("input");s.length||(s=t(''),e.before(s)),inputValue=i.map((function(t){return t.id})).join("||"),s.val(inputValue),n.multiple&&i.map((function(t){t.$el.detach().appendTo(e)})),n.allowClear&&(n.data=n.data.filter((function(t){return""!==t.id}))),e.removeData("ajax"),e.removeAttr("data-ajax"),this.get("ajax")&&(n.ajax={url:acf.get("ajaxurl"),quietMillis:250,dataType:"json",type:"post",cache:!1,data:t.proxy(this.getAjaxData,this),results:t.proxy(this.processAjaxResults,this)});var r=this.get("field");n=acf.applyFilters("select2_args",n,e,this.data,r||!1,this),s.select2(n);var o=s.select2("container"),c=t.proxy(this.getOption,this);if(n.multiple){var l=o.find("ul");l.sortable({stop:function(){l.find(".select2-search-choice").each((function(){var i=t(this).data("select2Data"),a;c(i.id).detach().appendTo(e)})),e.trigger("change")}})}s.on("select2-selecting",(function(i){var a=i.choice,n=c(a.id);n.length||(n=t('")),n.detach().appendTo(e)})),o.addClass("-acf"),acf.doAction("select2_init",e,n,this.data,r||!1,this),s.on("change",(function(){var t=s.val();t.indexOf("||")&&(t=t.split("||")),e.val(t).trigger("change")})),e.hide()},mergeOptions:function(){var e=!1,i=!1;t("#select2-drop .select2-result-with-children").each((function(){var a=t(this).children("ul"),n=t(this).children(".select2-result-label");if(i&&i.text()===n.text())return i.append(a.children()),void t(this).remove();e=a,i=n}))},getAjaxData:function(t,e){var i={term:t,page:e};return a.prototype.getAjaxData.apply(this,[i])}}),r=new acf.Model({priority:5,wait:"prepare",actions:{duplicate:"onDuplicate"},initialize:function(){var t=acf.get("locale"),e=acf.get("rtl"),a=acf.get("select2L10n"),n=i();return!!a&&(0!==t.indexOf("en")&&void(4==n?this.addTranslations4():3==n&&this.addTranslations3()))},addTranslations4:function(){var t=acf.get("select2L10n"),e=acf.get("locale");e=e.replace("_","-");var i={errorLoading:function(){return t.load_fail},inputTooLong:function(e){var i=e.input.length-e.maximum;return i>1?t.input_too_long_n.replace("%d",i):t.input_too_long_1},inputTooShort:function(e){var i=e.minimum-e.input.length;return i>1?t.input_too_short_n.replace("%d",i):t.input_too_short_1},loadingMore:function(){return t.load_more},maximumSelected:function(e){var i=e.maximum;return i>1?t.selection_too_long_n.replace("%d",i):t.selection_too_long_1},noResults:function(){return t.matches_0},searching:function(){return t.searching}};jQuery.fn.select2.amd.define("select2/i18n/"+e,[],(function(){return i}))},addTranslations3:function(){var e=acf.get("select2L10n"),i=acf.get("locale");i=i.replace("_","-");var a={formatMatches:function(t){return t>1?e.matches_n.replace("%d",t):e.matches_1},formatNoMatches:function(){return e.matches_0},formatAjaxError:function(){return e.load_fail},formatInputTooShort:function(t,i){var a=i-t.length;return a>1?e.input_too_short_n.replace("%d",a):e.input_too_short_1},formatInputTooLong:function(t,i){var a=t.length-i;return a>1?e.input_too_long_n.replace("%d",a):e.input_too_long_1},formatSelectionTooBig:function(t){return t>1?e.selection_too_long_n.replace("%d",t):e.selection_too_long_1},formatLoadMore:function(){return e.load_more},formatSearching:function(){return e.searching}};t.fn.select2.locales=t.fn.select2.locales||{},t.fn.select2.locales[i]=a,t.extend(t.fn.select2.defaults,a)},onDuplicate:function(t,e){e.find(".select2-container").remove()}})}(jQuery),function(t,e){acf.tinymce={defaults:function(){return"undefined"!=typeof tinyMCEPreInit&&{tinymce:tinyMCEPreInit.mceInit.acf_content,quicktags:tinyMCEPreInit.qtInit.acf_content};var t},initialize:function(t,e){(e=acf.parseArgs(e,{tinymce:!0,quicktags:!0,toolbar:"full",mode:"visual",field:!1})).tinymce&&this.initializeTinymce(t,e),e.quicktags&&this.initializeQuicktags(t,e)},initializeTinymce:function(e,i){var a=t("#"+e),n=this.defaults(),s=acf.get("toolbars"),r=i.field||!1,o=r.$el||!1;if("undefined"==typeof tinymce)return!1;if(!n)return!1;if(tinymce.get(e))return this.enable(e);var c=t.extend({},n.tinymce,i.tinymce);c.id=e,c.selector="#"+e;var l=i.toolbar;if(l&&s&&s[l])for(var d=1;d<=4;d++)c["toolbar"+d]=s[l][d]||"";if(c.setup=function(t){t.on("change",(function(e){t.save(),a.trigger("change")})),t.on("mouseup",(function(t){var e=new MouseEvent("mouseup");window.dispatchEvent(e)}))},c.wp_autoresize_on=!1,c.tadv_noautop||(c.wpautop=!0),c=acf.applyFilters("wysiwyg_tinymce_settings",c,e,r),tinyMCEPreInit.mceInit[e]=c,"visual"==i.mode){var u=tinymce.init(c),f=tinymce.get(e);if(!f)return!1;f.acf=i.field,acf.doAction("wysiwyg_tinymce_init",f,f.id,c,r)}},initializeQuicktags:function(e,i){var a=this.defaults();if("undefined"==typeof quicktags)return!1;if(!a)return!1;var n=t.extend({},a.quicktags,i.quicktags);n.id=e;var s=i.field||!1,r=s.$el||!1;n=acf.applyFilters("wysiwyg_quicktags_settings",n,n.id,s),tinyMCEPreInit.qtInit[e]=n;var o=quicktags(n);if(!o)return!1;this.buildQuicktags(o),acf.doAction("wysiwyg_quicktags_init",o,o.id,n,s)},buildQuicktags:function(t){var e,i,a,n,s,t,r,o,c,l,d=",strong,em,link,block,del,ins,img,ul,ol,li,code,more,close,";for(o in e=t.canvas,i=t.name,a=t.settings,s="",n={},c="",l=t.id,a.buttons&&(c=","+a.buttons+","),edButtons)edButtons[o]&&(r=edButtons[o].id,c&&-1!==d.indexOf(","+r+",")&&-1===c.indexOf(","+r+",")||edButtons[o].instance&&edButtons[o].instance!==l||(n[r]=edButtons[o],edButtons[o].html&&(s+=edButtons[o].html(i+"_"))));c&&-1!==c.indexOf(",dfw,")&&(n.dfw=new QTags.DFWButton,s+=n.dfw.html(i+"_")),"rtl"===document.getElementsByTagName("html")[0].dir&&(n.textdirection=new QTags.TextDirectionButton,s+=n.textdirection.html(i+"_")),t.toolbar.innerHTML=s,t.theButtons=n,"undefined"!=typeof jQuery&&jQuery(document).triggerHandler("quicktags-init",[t])},disable:function(t){this.destroyTinymce(t)},remove:function(t){this.destroyTinymce(t)},destroy:function(t){this.destroyTinymce(t)},destroyTinymce:function(t){if("undefined"==typeof tinymce)return!1;var e=tinymce.get(t);return!!e&&(e.save(),e.destroy(),!0)},enable:function(t){this.enableTinymce(t)},enableTinymce:function(e){return"undefined"!=typeof switchEditors&&(void 0!==tinyMCEPreInit.mceInit[e]&&(t("#"+e).show(),switchEditors.go(e,"tmce"),!0))}};var i=new acf.Model({priority:5,actions:{prepare:"onPrepare",ready:"onReady"},onPrepare:function(){var e=t("#acf-hidden-wp-editor");e.exists()&&e.appendTo("body")},onReady:function(){acf.isset(window,"wp","oldEditor")&&(wp.editor.autop=wp.oldEditor.autop,wp.editor.removep=wp.oldEditor.removep),acf.isset(window,"tinymce","on")&&tinymce.on("AddEditor",(function(t){var e=t.editor;"acf"===e.id.substr(0,3)&&(e=tinymce.editors.content||e,tinymce.activeEditor=e,wpActiveEditor=e.id)}))}})}(jQuery),function(t,e){var i=acf.Model.extend({id:"Validator",data:{errors:[],notice:null,status:""},events:{"changed:status":"onChangeStatus"},addErrors:function(t){t.map(this.addError,this)},addError:function(t){this.data.errors.push(t)},hasErrors:function(){return this.data.errors.length},clearErrors:function(){return this.data.errors=[]},getErrors:function(){return this.data.errors},getFieldErrors:function(){var t=[],e=[];return this.getErrors().map((function(i){if(i.input){var a=e.indexOf(i.input);a>-1?t[a]=i:(t.push(i),e.push(i.input))}})),t},getGlobalErrors:function(){return this.getErrors().filter((function(t){return!t.input}))},showErrors:function(){if(this.hasErrors()){var e=this.getFieldErrors(),i=this.getGlobalErrors(),a=0,n=!1;e.map((function(t){var e=this.$('[name="'+t.input+'"]').first();if(e.length||(e=this.$('[name^="'+t.input+'"]').first()),e.length){a++;var i=acf.getClosestField(e);i.showError(t.message),n||(n=i.$el)}}),this);var s=acf.__("Validation failed");if(i.map((function(t){s+=". "+t.message})),1==a?s+=". "+acf.__("1 field requires attention"):a>1&&(s+=". "+acf.__("%d fields require attention").replace("%d",a)),this.has("notice"))this.get("notice").update({type:"error",text:s});else{var r=acf.newNotice({type:"error",text:s,target:this.$el});this.set("notice",r)}n||(n=this.get("notice").$el),setTimeout((function(){t("html, body").animate({scrollTop:n.offset().top-t(window).height()/2},500)}),10)}},onChangeStatus:function(t,e,i,a){this.$el.removeClass("is-"+a).addClass("is-"+i)},validate:function(e){if(e=acf.parseArgs(e,{event:!1,reset:!1,loading:function(){},complete:function(){},failure:function(){},success:function(t){t.submit()}}),"valid"==this.get("status"))return!0;if("validating"==this.get("status"))return!1;if(!this.$(".acf-field").length)return!0;if(e.event){var i=t.Event(null,e.event);e.success=function(){acf.enableSubmit(t(i.target)).trigger(i)}}acf.doAction("validation_begin",this.$el),acf.lockForm(this.$el),e.loading(this.$el,this),this.set("status","validating");var a=function(t){if(acf.isAjaxSuccess(t)){var e=acf.applyFilters("validation_complete",t.data,this.$el,this);e.valid||this.addErrors(e.errors)}},n=function(){acf.unlockForm(this.$el),this.hasErrors()?(this.set("status","invalid"),acf.doAction("validation_failure",this.$el,this),this.showErrors(),e.failure(this.$el,this)):(this.set("status","valid"),this.has("notice")&&this.get("notice").update({type:"success",text:acf.__("Validation successful"),timeout:1e3}),acf.doAction("validation_success",this.$el,this),acf.doAction("submit",this.$el),e.success(this.$el,this),acf.lockForm(this.$el),e.reset&&this.reset()),e.complete(this.$el,this),this.clearErrors()},s=acf.serialize(this.$el);return s.action="acf/validate_save_post",t.ajax({url:acf.get("ajaxurl"),data:acf.prepareForAjax(s),type:"post",dataType:"json",context:this,success:a,complete:n}),!1},setup:function(t){this.$el=t},reset:function(){this.set("errors",[]),this.set("notice",null),this.set("status",""),acf.unlockForm(this.$el)}}),a=function(t){var e=t.data("acf");return e||(e=new i(t)),e};acf.validateForm=function(t){return a(t.form).validate(t)},acf.enableSubmit=function(t){return t.removeClass("disabled")},acf.disableSubmit=function(t){return t.addClass("disabled")},acf.showSpinner=function(t){return t.addClass("is-active"),t.css("display","inline-block"),t},acf.hideSpinner=function(t){return t.removeClass("is-active"),t.css("display","none"),t},acf.lockForm=function(t){var e=n(t),i=e.find('.button, [type="submit"]'),a=e.find(".spinner, .acf-spinner");return acf.hideSpinner(a),acf.disableSubmit(i),acf.showSpinner(a.last()),t},acf.unlockForm=function(t){var e=n(t),i=e.find('.button, [type="submit"]'),a=e.find(".spinner, .acf-spinner");return acf.enableSubmit(i),acf.hideSpinner(a),t};var n=function(t){var e,e,e,e;return(e=t.find("#submitdiv")).length||(e=t.find("#submitpost")).length||(e=t.find("p.submit").last()).length||(e=t.find(".acf-form-submit")).length?e:t},s=acf.debounce((function(t){t.submit()}));acf.validation=new acf.Model({id:"validation",active:!0,wait:"prepare",actions:{ready:"addInputEvents",append:"addInputEvents"},events:{'click input[type="submit"]':"onClickSubmit",'click button[type="submit"]':"onClickSubmit","click #save-post":"onClickSave","submit form#post":"onSubmitPost","submit form":"onSubmit"},initialize:function(){acf.get("validation")||(this.active=!1,this.actions={},this.events={})},enable:function(){this.active=!0},disable:function(){this.active=!1},reset:function(t){a(t).reset()},addInputEvents:function(e){if("safari"!==acf.get("browser")){var i=t(".acf-field [name]",e);i.length&&this.on(i,"invalid","onInvalid")}},onInvalid:function(t,e){t.preventDefault();var i=e.closest("form");i.length&&(a(i).addError({input:e.attr("name"),message:acf.strEscape(t.target.validationMessage)}),s(i))},onClickSubmit:function(t,e){this.set("originalEvent",t)},onClickSave:function(t,e){this.set("ignore",!0)},onClickSubmitGutenberg:function(e,i){var a;acf.validateForm({form:t("#editor"),event:e,reset:!0,failure:function(t,e){var i=e.get("notice").$el;i.appendTo(".components-notice-list"),i.find(".acf-notice-dismiss").removeClass("small")}})||(e.preventDefault(),e.stopImmediatePropagation())},onSubmitPost:function(e,i){"dopreview"===t("input#wp-preview").val()&&(this.set("ignore",!0),acf.unlockForm(i))},onSubmit:function(t,e){if(!this.active||this.get("ignore")||t.isDefaultPrevented())return this.allowSubmit();var i;acf.validateForm({form:e,event:this.get("originalEvent")})||t.preventDefault()},allowSubmit:function(){return this.set("ignore",!1),this.set("originalEvent",!1),!0}});var r=new acf.Model({wait:"prepare",initialize:function(){acf.isGutenberg()&&this.customizeEditor()},customizeEditor:function(){var e=wp.data.dispatch("core/editor"),i=wp.data.select("core/editor"),a=wp.data.dispatch("core/notices"),n=e.savePost,s=!1,r="";wp.data.subscribe((function(){var t=i.getEditedPostAttribute("status");s="publish"===t,r="publish"!==t?t:r})),e.savePost=function(i){i=i||{};var o=this,c=arguments;return new Promise((function(n,o){return i.isAutosave||i.isPreview?n("Validation ignored (autosave)."):s?void(acf.validateForm({form:t("#editor"),reset:!0,complete:function(t,i){e.unlockPostSaving("acf")},failure:function(t,i){var n=i.get("notice");a.createErrorNotice(n.get("text"),{id:"acf-validation",isDismissible:!0}),n.remove(),r&&e.editPost({status:r}),o("Validation failed.")},success:function(){a.removeNotice("acf-validation"),n("Validation success.")}})?n("Validation bypassed."):e.lockPostSaving("acf")):n("Validation ignored (draft).");var c})).then((function(){return n.apply(o,c)}))}}})}(jQuery),function(t,e){var i=new acf.Model({priority:90,actions:{new_field:"refresh",show_field:"refresh",hide_field:"refresh",remove_field:"refresh",unmount_field:"refresh",remount_field:"refresh"},refresh:function(){acf.refresh()}}),a=new acf.Model({priority:1,actions:{sortstart:"onSortstart",sortstop:"onSortstop"},onSortstart:function(t){acf.doAction("unmount",t)},onSortstop:function(t){acf.doAction("remount",t)}}),n=new acf.Model({actions:{sortstart:"onSortstart"},onSortstart:function(e,i){e.is("tr")&&(i.html('
                                '),e.addClass("acf-sortable-tr-helper"),e.children().each((function(){t(this).width(t(this).width())})),i.height(e.height()+"px"),e.removeClass("acf-sortable-tr-helper"))}}),s=new acf.Model({actions:{after_duplicate:"onAfterDuplicate"},onAfterDuplicate:function(e,i){var a=[];e.find("select").each((function(e){a.push(t(this).val())})),i.find("select").each((function(e){t(this).val(a[e])}))}}),r=new acf.Model({id:"tableHelper",priority:20,actions:{refresh:"renderTables"},renderTables:function(e){var i=this;t(".acf-table:visible").each((function(){i.renderTable(t(this))}))},renderTable:function(e){var i=e.find("> thead > tr:visible > th[data-key]"),a=e.find("> tbody > tr:visible > td[data-key]");if(!i.length||!a.length)return!1;i.each((function(e){var i=t(this),n=i.data("key"),s=a.filter('[data-key="'+n+'"]'),r=s.filter(".acf-hidden");s.removeClass("acf-empty"),s.length===r.length?acf.hide(i):(acf.show(i),r.addClass("acf-empty"))})),i.css("width","auto"),i=i.not(".acf-hidden");var n=100,s=i.length,r;i.filter("[data-width]").each((function(){var e=t(this).data("width");t(this).css("width",e+"%"),n-=e}));var o=i.not("[data-width]");if(o.length){var c=n/o.length;o.css("width",c+"%"),n=0}n>0&&i.last().css("width","auto"),a.filter(".-collapsed-target").each((function(){var e=t(this);e.parent().hasClass("-collapsed")?e.attr("colspan",i.length):e.removeAttr("colspan")}))}}),o=new acf.Model({id:"fieldsHelper",priority:30,actions:{refresh:"renderGroups"},renderGroups:function(){var e=this;t(".acf-fields:visible").each((function(){e.renderGroup(t(this))}))},renderGroup:function(e){var i=0,a=0,n=t(),s=e.children(".acf-field[data-width]:visible");return!!s.length&&(e.hasClass("-left")?(s.removeAttr("data-width"),s.css("width","auto"),!1):(s.removeClass("-r0 -c0").css({"min-height":0}),s.each((function(e){var s=t(this),r=s.position(),o=Math.ceil(r.top),c=Math.ceil(r.left);n.length&&o>i&&(n.css({"min-height":a+"px"}),r=s.position(),o=Math.ceil(r.top),c=Math.ceil(r.left),i=0,a=0,n=t()),acf.get("rtl")&&(c=Math.ceil(s.parent().width()-(r.left+s.outerWidth()))),0==o?s.addClass("-r0"):0==c&&s.addClass("-c0");var l=Math.ceil(s.outerHeight())+1;a=Math.max(a,l),i=Math.max(i,o),n=n.add(s)})),void(n.length&&n.css({"min-height":a+"px"}))))}}),c=new acf.Model({id:"bodyClassShiftHelper",events:{keydown:"onKeyDown",keyup:"onKeyUp"},isShiftKey:function(t){return 16===t.keyCode},onKeyDown:function(e){this.isShiftKey(e)&&t("body").addClass("acf-keydown-shift")},onKeyUp:function(e){this.isShiftKey(e)&&t("body").removeClass("acf-keydown-shift")}})}(jQuery),function(t,e){acf.newCompatibility=function(t,e){return(e=e||{}).__proto__=t.__proto__,t.__proto__=e,t.compatibility=e,e},acf.getCompatibility=function(t){return t.compatibility||null};var i=acf.newCompatibility(acf,{l10n:{},o:{},fields:{},update:acf.set,add_action:acf.addAction,remove_action:acf.removeAction,do_action:acf.doAction,add_filter:acf.addFilter,remove_filter:acf.removeFilter,apply_filters:acf.applyFilters,parse_args:acf.parseArgs,disable_el:acf.disable,disable_form:acf.disable,enable_el:acf.enable,enable_form:acf.enable,update_user_setting:acf.updateUserSetting,prepare_for_ajax:acf.prepareForAjax,is_ajax_success:acf.isAjaxSuccess,remove_el:acf.remove,remove_tr:acf.remove,str_replace:acf.strReplace,render_select:acf.renderSelect,get_uniqid:acf.uniqid,serialize_form:acf.serialize,esc_html:acf.strEscape,str_sanitize:acf.strSanitize});i._e=function(t,e){t=t||"";var i=(e=e||"")?t+"."+e:t,a={"image.select":"Select Image","image.edit":"Edit Image","image.update":"Update Image"};if(a[i])return acf.__(a[i]);var n=this.l10n[t]||"";return e&&(n=n[e]||""),n},i.get_selector=function(e){var i=".acf-field";if(!e)return i;if(t.isPlainObject(e)){if(t.isEmptyObject(e))return i;for(var a in e){e=e[a];break}}return i+="-"+e,i=acf.strReplace("_","-",i),i=acf.strReplace("field-field-","field-",i)},i.get_fields=function(t,e,i){var a={is:t||"",parent:e||!1,suppressFilters:i||!1};return a.is&&(a.is=this.get_selector(a.is)),acf.findFields(a)},i.get_field=function(t,e){var i=this.get_fields.apply(this,arguments);return!!i.length&&i.first()},i.get_closest_field=function(t,e){return t.closest(this.get_selector(e))},i.get_field_wrap=function(t){return t.closest(this.get_selector())},i.get_field_key=function(t){return t.data("key")},i.get_field_type=function(t){return t.data("type")},i.get_data=function(t,e){return acf.parseArgs(t.data(),e)},i.maybe_get=function(t,e,i){void 0===i&&(i=null),keys=String(e).split(".");for(var a=0;a1){for(var c=0;c0?e.substr(0,n):e,r=n>0?e.substr(n+1):"",o=function(e){e.$el=t(this),acf.field_group&&(e.$field=e.$el.closest(".acf-field-object")),"function"==typeof a.event&&(e=a.event(e)),a[i].apply(a,arguments)};r?t(document).on(s,r,o):t(document).on(s,o)},get:function(t,e){return e=e||null,void 0!==this[t]&&(e=this[t]),e},set:function(t,e){return this[t]=e,"function"==typeof this["_set_"+t]&&this["_set_"+t].apply(this),this}}, -i.field=acf.model.extend({type:"",o:{},$field:null,_add_action:function(t,e){var i=this;t=t+"_field/type="+i.type,acf.add_action(t,(function(t){i.set("$field",t),i[e].apply(i,arguments)}))},_add_filter:function(t,e){var i=this;t=t+"_field/type="+i.type,acf.add_filter(t,(function(t){i.set("$field",t),i[e].apply(i,arguments)}))},_add_event:function(e,i){var a=this,n=e.substr(0,e.indexOf(" ")),s=e.substr(e.indexOf(" ")+1),r=acf.get_selector(a.type);t(document).on(n,r+" "+s,(function(e){var n=t(this),s=acf.get_closest_field(n,a.type);s.length&&(s.is(a.$field)||a.set("$field",s),e.$el=n,e.$field=s,a[i].apply(a,[e]))}))},_set_$field:function(){"function"==typeof this.focus&&this.focus()},doFocus:function(t){return this.set("$field",t)}});var r=acf.newCompatibility(acf.validation,{remove_error:function(t){acf.getField(t).removeError()},add_warning:function(t,e){acf.getField(t).showNotice({text:e,type:"warning",timeout:1e3})},fetch:acf.validateForm,enableSubmit:acf.enableSubmit,disableSubmit:acf.disableSubmit,showSpinner:acf.showSpinner,hideSpinner:acf.hideSpinner,unlockForm:acf.unlockForm,lockForm:acf.lockForm});i.tooltip={tooltip:function(t,e){var i;return acf.newTooltip({text:t,target:e}).$el},temp:function(t,e){var i=acf.newTooltip({text:t,target:e,timeout:250})},confirm:function(t,e,i,a,n){var s=acf.newTooltip({confirm:!0,text:i,target:t,confirm:function(){e(!0)},cancel:function(){e(!1)}})},confirm_remove:function(t,e){var i=acf.newTooltip({confirmRemove:!0,target:t,confirm:function(){e(!0)},cancel:function(){e(!1)}})}},i.media=new acf.Model({activeFrame:!1,actions:{new_media_popup:"onNewMediaPopup"},frame:function(){return this.activeFrame},onNewMediaPopup:function(t){this.activeFrame=t.frame},popup:function(t){var e;return t.mime_types&&(t.allowedTypes=t.mime_types),t.id&&(t.attachment=t.id),acf.newMediaPopup(t).frame}}),i.select2={init:function(t,e,i){return e.allow_null&&(e.allowNull=e.allow_null),e.ajax_action&&(e.ajaxAction=e.ajax_action),i&&(e.field=acf.getField(i)),acf.newSelect2(t,e)},destroy:function(t){return acf.getInstance(t).destroy()}},i.postbox={render:function(t){return t.edit_url&&(t.editLink=t.edit_url),t.edit_title&&(t.editTitle=t.edit_title),acf.newPostbox(t)}},acf.newCompatibility(acf.screen,{update:function(){return this.set.apply(this,arguments)},fetch:acf.screen.check}),i.ajax=acf.screen}(jQuery); \ No newline at end of file diff --git a/assets/js/acf.js b/assets/js/acf.js deleted file mode 100644 index fa2f4a9..0000000 --- a/assets/js/acf.js +++ /dev/null @@ -1,4447 +0,0 @@ -(function($, undefined){ - - /** - * acf - * - * description - * - * @date 14/12/17 - * @since 5.6.5 - * - * @param type $var Description. Default. - * @return type Description. - */ - - // The global acf object - var acf = {}; - - // Set as a browser global - window.acf = acf; - - /** @var object Data sent from PHP */ - acf.data = {}; - - - /** - * get - * - * Gets a specific data value - * - * @date 14/12/17 - * @since 5.6.5 - * - * @param string name - * @return mixed - */ - - acf.get = function( name ){ - return this.data[name] || null; - }; - - - /** - * has - * - * Returns `true` if the data exists and is not null - * - * @date 14/12/17 - * @since 5.6.5 - * - * @param string name - * @return boolean - */ - - acf.has = function( name ){ - return this.get(name) !== null; - }; - - - /** - * set - * - * Sets a specific data value - * - * @date 14/12/17 - * @since 5.6.5 - * - * @param string name - * @param mixed value - * @return this - */ - - acf.set = function( name, value ){ - this.data[ name ] = value; - return this; - }; - - - /** - * uniqueId - * - * Returns a unique ID - * - * @date 9/11/17 - * @since 5.6.3 - * - * @param string prefix Optional prefix. - * @return string - */ - - var idCounter = 0; - acf.uniqueId = function(prefix){ - var id = ++idCounter + ''; - return prefix ? prefix + id : id; - }; - - /** - * acf.uniqueArray - * - * Returns a new array with only unique values - * Credit: https://stackoverflow.com/questions/1960473/get-all-unique-values-in-an-array-remove-duplicates - * - * @date 23/3/18 - * @since 5.6.9 - * - * @param type $var Description. Default. - * @return type Description. - */ - - acf.uniqueArray = function( array ){ - function onlyUnique(value, index, self) { - return self.indexOf(value) === index; - } - return array.filter( onlyUnique ); - }; - - /** - * uniqid - * - * Returns a unique ID (PHP version) - * - * @date 9/11/17 - * @since 5.6.3 - * @source http://locutus.io/php/misc/uniqid/ - * - * @param string prefix Optional prefix. - * @return string - */ - - var uniqidSeed = ''; - acf.uniqid = function(prefix, moreEntropy){ - // discuss at: http://locutus.io/php/uniqid/ - // original by: Kevin van Zonneveld (http://kvz.io) - // revised by: Kankrelune (http://www.webfaktory.info/) - // note 1: Uses an internal counter (in locutus global) to avoid collision - // example 1: var $id = uniqid() - // example 1: var $result = $id.length === 13 - // returns 1: true - // example 2: var $id = uniqid('foo') - // example 2: var $result = $id.length === (13 + 'foo'.length) - // returns 2: true - // example 3: var $id = uniqid('bar', true) - // example 3: var $result = $id.length === (23 + 'bar'.length) - // returns 3: true - if (typeof prefix === 'undefined') { - prefix = ''; - } - - var retId; - var formatSeed = function(seed, reqWidth) { - seed = parseInt(seed, 10).toString(16); // to hex str - if (reqWidth < seed.length) { // so long we split - return seed.slice(seed.length - reqWidth); - } - if (reqWidth > seed.length) { // so short we pad - return Array(1 + (reqWidth - seed.length)).join('0') + seed; - } - return seed; - }; - - if (!uniqidSeed) { // init seed with big random int - uniqidSeed = Math.floor(Math.random() * 0x75bcd15); - } - uniqidSeed++; - - retId = prefix; // start with prefix, add current milliseconds hex string - retId += formatSeed(parseInt(new Date().getTime() / 1000, 10), 8); - retId += formatSeed(uniqidSeed, 5); // add seed hex string - if (moreEntropy) { - // for more entropy we add a float lower to 10 - retId += (Math.random() * 10).toFixed(8).toString(); - } - - return retId; - }; - - - /** - * strReplace - * - * Performs a string replace - * - * @date 14/12/17 - * @since 5.6.5 - * - * @param string search - * @param string replace - * @param string subject - * @return string - */ - - acf.strReplace = function( search, replace, subject ){ - return subject.split(search).join(replace); - }; - - - /** - * strCamelCase - * - * Converts a string into camelCase - * Thanks to https://stackoverflow.com/questions/2970525/converting-any-string-into-camel-case - * - * @date 14/12/17 - * @since 5.6.5 - * - * @param string str - * @return string - */ - - acf.strCamelCase = function( str ){ - var matches = str.match( /([a-zA-Z0-9]+)/g ); - return matches ? matches.map(function( s, i ){ - var c = s.charAt(0); - return ( i === 0 ? c.toLowerCase() : c.toUpperCase() ) + s.slice(1); - }).join('') : ''; - }; - - /** - * strPascalCase - * - * Converts a string into PascalCase - * Thanks to https://stackoverflow.com/questions/1026069/how-do-i-make-the-first-letter-of-a-string-uppercase-in-javascript - * - * @date 14/12/17 - * @since 5.6.5 - * - * @param string str - * @return string - */ - - acf.strPascalCase = function( str ){ - var camel = acf.strCamelCase( str ); - return camel.charAt(0).toUpperCase() + camel.slice(1); - }; - - /** - * acf.strSlugify - * - * Converts a string into a HTML class friendly slug - * - * @date 21/3/18 - * @since 5.6.9 - * - * @param string str - * @return string - */ - - acf.strSlugify = function( str ){ - return acf.strReplace( '_', '-', str.toLowerCase() ); - }; - - - acf.strSanitize = function( str ){ - - // chars (https://jsperf.com/replace-foreign-characters) - var map = { - "À": "A", - "Á": "A", - "Â": "A", - "Ã": "A", - "Ä": "A", - "Å": "A", - "Æ": "AE", - "Ç": "C", - "È": "E", - "É": "E", - "Ê": "E", - "Ë": "E", - "Ì": "I", - "Í": "I", - "Î": "I", - "Ï": "I", - "Ð": "D", - "Ñ": "N", - "Ò": "O", - "Ó": "O", - "Ô": "O", - "Õ": "O", - "Ö": "O", - "Ø": "O", - "Ù": "U", - "Ú": "U", - "Û": "U", - "Ü": "U", - "Ý": "Y", - "ß": "s", - "à": "a", - "á": "a", - "â": "a", - "ã": "a", - "ä": "a", - "å": "a", - "æ": "ae", - "ç": "c", - "è": "e", - "é": "e", - "ê": "e", - "ë": "e", - "ì": "i", - "í": "i", - "î": "i", - "ï": "i", - "ñ": "n", - "ò": "o", - "ó": "o", - "ô": "o", - "õ": "o", - "ö": "o", - "ø": "o", - "ù": "u", - "ú": "u", - "û": "u", - "ü": "u", - "ý": "y", - "ÿ": "y", - "Ā": "A", - "ā": "a", - "Ă": "A", - "ă": "a", - "Ą": "A", - "ą": "a", - "Ć": "C", - "ć": "c", - "Ĉ": "C", - "ĉ": "c", - "Ċ": "C", - "ċ": "c", - "Č": "C", - "č": "c", - "Ď": "D", - "ď": "d", - "Đ": "D", - "đ": "d", - "Ē": "E", - "ē": "e", - "Ĕ": "E", - "ĕ": "e", - "Ė": "E", - "ė": "e", - "Ę": "E", - "ę": "e", - "Ě": "E", - "ě": "e", - "Ĝ": "G", - "ĝ": "g", - "Ğ": "G", - "ğ": "g", - "Ġ": "G", - "ġ": "g", - "Ģ": "G", - "ģ": "g", - "Ĥ": "H", - "ĥ": "h", - "Ħ": "H", - "ħ": "h", - "Ĩ": "I", - "ĩ": "i", - "Ī": "I", - "ī": "i", - "Ĭ": "I", - "ĭ": "i", - "Į": "I", - "į": "i", - "İ": "I", - "ı": "i", - "IJ": "IJ", - "ij": "ij", - "Ĵ": "J", - "ĵ": "j", - "Ķ": "K", - "ķ": "k", - "Ĺ": "L", - "ĺ": "l", - "Ļ": "L", - "ļ": "l", - "Ľ": "L", - "ľ": "l", - "Ŀ": "L", - "ŀ": "l", - "Ł": "l", - "ł": "l", - "Ń": "N", - "ń": "n", - "Ņ": "N", - "ņ": "n", - "Ň": "N", - "ň": "n", - "ʼn": "n", - "Ō": "O", - "ō": "o", - "Ŏ": "O", - "ŏ": "o", - "Ő": "O", - "ő": "o", - "Œ": "OE", - "œ": "oe", - "Ŕ": "R", - "ŕ": "r", - "Ŗ": "R", - "ŗ": "r", - "Ř": "R", - "ř": "r", - "Ś": "S", - "ś": "s", - "Ŝ": "S", - "ŝ": "s", - "Ş": "S", - "ş": "s", - "Š": "S", - "š": "s", - "Ţ": "T", - "ţ": "t", - "Ť": "T", - "ť": "t", - "Ŧ": "T", - "ŧ": "t", - "Ũ": "U", - "ũ": "u", - "Ū": "U", - "ū": "u", - "Ŭ": "U", - "ŭ": "u", - "Ů": "U", - "ů": "u", - "Ű": "U", - "ű": "u", - "Ų": "U", - "ų": "u", - "Ŵ": "W", - "ŵ": "w", - "Ŷ": "Y", - "ŷ": "y", - "Ÿ": "Y", - "Ź": "Z", - "ź": "z", - "Ż": "Z", - "ż": "z", - "Ž": "Z", - "ž": "z", - "ſ": "s", - "ƒ": "f", - "Ơ": "O", - "ơ": "o", - "Ư": "U", - "ư": "u", - "Ǎ": "A", - "ǎ": "a", - "Ǐ": "I", - "ǐ": "i", - "Ǒ": "O", - "ǒ": "o", - "Ǔ": "U", - "ǔ": "u", - "Ǖ": "U", - "ǖ": "u", - "Ǘ": "U", - "ǘ": "u", - "Ǚ": "U", - "ǚ": "u", - "Ǜ": "U", - "ǜ": "u", - "Ǻ": "A", - "ǻ": "a", - "Ǽ": "AE", - "ǽ": "ae", - "Ǿ": "O", - "ǿ": "o", - - // extra - ' ': '_', - "'": '', - '?': '', - '/': '', - '\\': '', - '.': '', - ',': '', - '`': '', - '>': '', - '<': '', - '"': '', - '[': '', - ']': '', - '|': '', - '{': '', - '}': '', - '(': '', - ')': '' - }; - - // vars - var nonWord = /\W/g; - var mapping = function (c) { - return (map[c] !== undefined) ? map[c] : c; - }; - - // replace - str = str.replace(nonWord, mapping); - - // lowercase - str = str.toLowerCase(); - - // return - return str; - }; - - /** - * acf.strMatch - * - * Returns the number of characters that match between two strings - * - * @date 1/2/18 - * @since 5.6.5 - * - * @param type $var Description. Default. - * @return type Description. - */ - - acf.strMatch = function( s1, s2 ){ - - // vars - var val = 0; - var min = Math.min( s1.length, s2.length ); - - // loop - for( var i = 0; i < min; i++ ) { - if( s1[i] !== s2[i] ) { - break; - } - val++; - } - - // return - return val; - }; - - /** - * Escapes HTML entities from a string. - * - * @date 08/06/2020 - * @since 5.9.0 - * - * @param string string The input string. - * @return string - */ - acf.strEscape = function( string ){ - var htmlEscapes = { - '&': '&', - '<': '<', - '>': '>', - '"': '"', - "'": ''' - }; - return ('' + string).replace(/[&<>"']/g, function( chr ) { - return htmlEscapes[ chr ]; - }); - }; - - // Tests. - //console.log( acf.strEscape('Test 1') ); - //console.log( acf.strEscape('Test & 1') ); - //console.log( acf.strEscape('Test\'s & 1') ); - //console.log( acf.strEscape('') ); - - /** - * Unescapes HTML entities from a string. - * - * @date 08/06/2020 - * @since 5.9.0 - * - * @param string string The input string. - * @return string - */ - acf.strUnescape = function( string ){ - var htmlUnescapes = { - '&': '&', - '<': '<', - '>': '>', - '"': '"', - ''': "'" - }; - return ('' + string).replace(/&|<|>|"|'/g, function( entity ) { - return htmlUnescapes[ entity ]; - }); - }; - - // Tests. - //console.log( acf.strUnescape( acf.strEscape('Test 1') ) ); - //console.log( acf.strUnescape( acf.strEscape('Test & 1') ) ); - //console.log( acf.strUnescape( acf.strEscape('Test\'s & 1') ) ); - //console.log( acf.strUnescape( acf.strEscape('') ) ); - - /** - * Escapes HTML entities from a string. - * - * @date 08/06/2020 - * @since 5.9.0 - * - * @param string string The input string. - * @return string - */ - acf.escAttr = acf.strEscape; - - /** - * Encodes ') ); - //console.log( acf.escHtml( acf.strEscape('') ) ); - //console.log( acf.escHtml( '' ) ); - - /** - * acf.decode - * - * description - * - * @date 13/1/18 - * @since 5.6.5 - * - * @param type $var Description. Default. - * @return type Description. - */ - - acf.decode = function( string ){ - return $('', acf_esc_attrs($attrs), esc_textarea($value) ); + return sprintf( '', acf_esc_attrs( $attrs ), esc_textarea( $value ) ); } /** @@ -234,11 +291,11 @@ function acf_get_textarea_input( $attrs = array() ) { * * Renders the HTML of a checkbox input. * - * @date 3/02/2014 - * @since 5.0.0 + * @date 3/02/2014 + * @since 5.0.0 * - * @param array $attrs The array of attrs. - * @return string + * @param array $attrs The array of attrs. + * @return string */ function acf_checkbox_input( $attrs = array() ) { echo acf_get_checkbox_input( $attrs ); @@ -249,29 +306,32 @@ function acf_checkbox_input( $attrs = array() ) { * * Returns the HTML of a checkbox input. * - * @date 3/02/2014 - * @since 5.0.0 + * @date 3/02/2014 + * @since 5.0.0 * - * @param array $attrs The array of attrs. - * @return string + * @param array $attrs The array of attrs. + * @return string */ function acf_get_checkbox_input( $attrs = array() ) { - + // Allow radio or checkbox type. - $attrs = wp_parse_args($attrs, array( - 'type' => 'checkbox' - )); - + $attrs = wp_parse_args( + $attrs, + array( + 'type' => 'checkbox', + ) + ); + // Get label. $label = ''; - if( isset($attrs['label']) ) { - $label= $attrs['label']; + if ( isset( $attrs['label'] ) ) { + $label = $attrs['label']; unset( $attrs['label'] ); } - + // Render. - $checked = isset($attrs['checked']); - return ' ' . acf_esc_html($label) . ''; + $checked = isset( $attrs['checked'] ); + return ' ' . acf_esc_html( $label ) . ''; } /** @@ -279,11 +339,11 @@ function acf_get_checkbox_input( $attrs = array() ) { * * Renders the HTML of a radio input. * - * @date 3/02/2014 - * @since 5.0.0 + * @date 3/02/2014 + * @since 5.0.0 * - * @param array $attrs The array of attrs. - * @return string + * @param array $attrs The array of attrs. + * @return string */ function acf_radio_input( $attrs = array() ) { echo acf_get_radio_input( $attrs ); @@ -294,11 +354,11 @@ function acf_radio_input( $attrs = array() ) { * * Returns the HTML of a radio input. * - * @date 3/02/2014 - * @since 5.0.0 + * @date 3/02/2014 + * @since 5.0.0 * - * @param array $attrs The array of attrs. - * @return string + * @param array $attrs The array of attrs. + * @return string */ function acf_get_radio_input( $attrs = array() ) { $attrs['type'] = 'radio'; @@ -310,11 +370,11 @@ function acf_get_radio_input( $attrs = array() ) { * * Renders the HTML of a select input. * - * @date 3/02/2014 - * @since 5.0.0 + * @date 3/02/2014 + * @since 5.0.0 * - * @param array $attrs The array of attrs. - * @return string + * @param array $attrs The array of attrs. + * @return string */ function acf_select_input( $attrs = array() ) { echo acf_get_select_input( $attrs ); @@ -325,19 +385,19 @@ function acf_select_input( $attrs = array() ) { * * Returns the HTML of a select input. * - * @date 3/02/2014 - * @since 5.0.0 + * @date 3/02/2014 + * @since 5.0.0 * - * @param array $attrs The array of attrs. - * @return string + * @param array $attrs The array of attrs. + * @return string */ function acf_get_select_input( $attrs = array() ) { - $value = (array) acf_extract_var( $attrs, 'value' ); + $value = (array) acf_extract_var( $attrs, 'value' ); $choices = (array) acf_extract_var( $attrs, 'choices' ); return sprintf( '', - acf_esc_attrs($attrs), - acf_walk_select_input($choices, $value) + acf_esc_attrs( $attrs ), + acf_walk_select_input( $choices, $value ) ); } @@ -346,47 +406,47 @@ function acf_get_select_input( $attrs = array() ) { * * Returns the HTML of a select input's choices. * - * @date 27/6/17 - * @since 5.6.0 + * @date 27/6/17 + * @since 5.6.0 * - * @param array $choices The choices to walk through. - * @param array $values The selected choices. - * @param array $depth The current walk depth. - * @return string + * @param array $choices The choices to walk through. + * @param array $values The selected choices. + * @param array $depth The current walk depth. + * @return string */ function acf_walk_select_input( $choices = array(), $values = array(), $depth = 0 ) { $html = ''; - + // Sanitize values for 'selected' matching (only once). - if( $depth == 0 ) { - $values = array_map('esc_attr', $values); + if ( $depth == 0 ) { + $values = array_map( 'esc_attr', $values ); } - + // Loop over choices and append to html. - if( $choices ) { - foreach( $choices as $value => $label ) { - + if ( $choices ) { + foreach ( $choices as $value => $label ) { + // Multiple (optgroup) - if( is_array($label) ){ + if ( is_array( $label ) ) { $html .= sprintf( '%s', - esc_attr($value), - acf_walk_select_input( $label, $values, $depth+1 ) + esc_attr( $value ), + acf_walk_select_input( $label, $values, $depth + 1 ) ); - - // single (option) + + // single (option) } else { $attrs = array( - 'value' => $value + 'value' => $value, ); - + // If is selected. - $pos = array_search( esc_attr($value), $values ); - if( $pos !== false ) { + $pos = array_search( esc_attr( $value ), $values ); + if ( $pos !== false ) { $attrs['selected'] = 'selected'; - $attrs['data-i'] = $pos; + $attrs['data-i'] = $pos; } - $html .= sprintf( '', acf_esc_attr($attrs), esc_html($label) ); + $html .= sprintf( '', acf_esc_attr( $attrs ), esc_html( $label ) ); } } } @@ -398,11 +458,11 @@ function acf_walk_select_input( $choices = array(), $values = array(), $depth = * * See acf_filter_attrs(). * - * @date 3/10/17 - * @since 5.6.3 + * @date 3/10/17 + * @since 5.6.3 * - * @param array $attrs The array of attrs. - * @return string + * @param array $attrs The array of attrs. + * @return string */ function acf_clean_atts( $attrs ) { return acf_filter_attrs( $attrs ); @@ -413,11 +473,11 @@ function acf_clean_atts( $attrs ) { * * See acf_esc_attrs(). * - * @date 27/6/17 - * @since 5.6.0 + * @date 27/6/17 + * @since 5.6.0 * - * @param array $attrs The array of attrs. - * @return string + * @param array $attrs The array of attrs. + * @return string */ function acf_esc_atts( $attrs ) { return acf_esc_attrs( $attrs ); @@ -428,12 +488,12 @@ function acf_esc_atts( $attrs ) { * * See acf_esc_attrs(). * - * @date 13/6/19 - * @since 5.8.1 - * @deprecated 5.6.0 + * @date 13/6/19 + * @since 5.8.1 + * @deprecated 5.6.0 * - * @param array $attrs The array of attrs. - * @return string + * @param array $attrs The array of attrs. + * @return string */ function acf_esc_attr( $attrs ) { return acf_esc_attrs( $attrs ); @@ -444,12 +504,12 @@ function acf_esc_attr( $attrs ) { * * See acf_esc_attrs(). * - * @date 13/6/19 - * @since 5.8.1 - * @deprecated 5.6.0 + * @date 13/6/19 + * @since 5.8.1 + * @deprecated 5.6.0 * - * @param array $attrs The array of attrs. - * @return string + * @param array $attrs The array of attrs. + * @return string */ function acf_esc_attr_e( $attrs ) { echo acf_esc_attrs( $attrs ); @@ -460,12 +520,12 @@ function acf_esc_attr_e( $attrs ) { * * See acf_esc_attrs(). * - * @date 13/6/19 - * @since 5.8.1 - * @deprecated 5.6.0 + * @date 13/6/19 + * @since 5.8.1 + * @deprecated 5.6.0 * - * @param array $attrs The array of attrs. - * @return string + * @param array $attrs The array of attrs. + * @return string */ function acf_esc_atts_e( $attrs ) { echo acf_esc_attrs( $attrs ); diff --git a/includes/acf-internal-post-type-functions.php b/includes/acf-internal-post-type-functions.php new file mode 100644 index 0000000..4169d74 --- /dev/null +++ b/includes/acf-internal-post-type-functions.php @@ -0,0 +1,623 @@ +get( $post_type ); + if ( ! $instance ) { + return false; + } + + return acf_get_instance( $instance ); +} + +/** + * Get an ACF CPT object as an array + * + * @param int $id The post ID being queried. + * @param string $post_type The post type being queried. + * @return array|false The post type object. + */ +function acf_get_internal_post_type( $id, $post_type ) { + $instance = acf_get_internal_post_type_instance( $post_type ); + + if ( ! $instance ) { + return false; + } + + return $instance->get_post( $id ); +} + +/** + * Retrieves raw internal post type data for the given identifier. + * + * @since 6.1 + * + * @param int|string $id The post ID. + * @param string $post_type The post type name. + * @return array|false The internal post type array. + */ +function acf_get_raw_internal_post_type( $id, $post_type ) { + $instance = acf_get_internal_post_type_instance( $post_type ); + + if ( ! $instance ) { + return false; + } + + return $instance->get_raw_post( $id ); +} + +/** + * Gets a post object from an ACF internal post type. + * + * @since 6.1 + * + * @param int|string $id The post ID, key, or name. + * @param string $post_type The post type name. + * @return object|bool The post object, or false on failure. + */ +function acf_get_internal_post_type_post( $id, $post_type ) { + $instance = acf_get_internal_post_type_instance( $post_type ); + + if ( ! $instance ) { + return false; + } + + return $instance->get_post_object( $id ); +} + +/** + * Returns true if the given identifier is a ACF internal post type key. + * + * @since 6.1 + * + * @param string $id The identifier. + * @param string $post_type The ACF post type the key is for. + * @return bool + */ +function acf_is_internal_post_type_key( $id = '', $post_type = 'acf-field-group' ) { + $instance = acf_get_internal_post_type_instance( $post_type ); + if ( ! $instance ) { + return false; + } + + return $instance->is_post_key( $id ); +} + +/** + * Validates an ACF internal post type. + * + * @since 6.1 + * + * @param array $internal_post_type The internal post type array. + * @param string $post_type_name The post type name. + * @return array|bool + */ +function acf_validate_internal_post_type( $internal_post_type, $post_type_name ) { + $instance = acf_get_internal_post_type_instance( $post_type_name ); + + if ( ! $instance ) { + return false; // TODO: Should this return an empty array instead? + } + + return $instance->validate_post( $internal_post_type ); +} + +/** + * Translates the settings for an ACF internal post type. + * + * @since 6.1 + * + * @param array $internal_post_type The ACF post array. + * @param string $post_type The post type name. + * @return array + */ +function acf_translate_internal_post_type( $internal_post_type, $post_type ) { + $instance = acf_get_internal_post_type_instance( $post_type ); + + if ( ! $instance ) { + return $internal_post_type; + } + + return $instance->translate_post( $internal_post_type ); +} + +/** + * Returns and array of ACF posts for the given $filter. + * + * @since 6.1 + * + * @param string $post_type The ACF post type to get posts for. + * @param array $filter An array of args to filter results by. + * @return array + */ +function acf_get_internal_post_type_posts( $post_type = 'acf-field-group', $filter = array() ) { + $posts = array(); + $instance = acf_get_internal_post_type_instance( $post_type ); + + if ( $instance ) { + $posts = $instance->get_posts( $filter ); + } + + return $posts; +} + +/** + * Returns an array of raw/unvalidated ACF post data. + * + * @since 6.1 + * + * @param string $post_type The ACF post type to get post data for. + * @return array + */ +function acf_get_raw_internal_post_type_posts( $post_type ) { + $raw_posts = array(); + $instance = acf_get_internal_post_type_instance( $post_type ); + + if ( $instance ) { + $raw_posts = $instance->get_raw_posts(); + } + + return $raw_posts; +} + +/** + * Returns a filtered array of ACF posts based on the given $args. + * + * @since 6.1 + * + * @param array $posts An array of ACF posts. + * @param array $args An array of args to filter by. + * @param string $post_type The ACF post type of the posts being filtered. + * @return array + */ +function acf_filter_internal_post_type_posts( $posts, $args = array(), $post_type = 'acf-field-group' ) { + $filtered = array(); + $instance = acf_get_internal_post_type_instance( $post_type ); + + if ( $instance ) { + $filtered = $instance->filter_posts( $posts, $args ); + } + + return $filtered; +} + +/** + * Updates a internal post type in the database. + * + * @since 6.1 + * + * @param array $internal_post_type Array of data to be saved. + * @param string $post_type_name The internal post type being updated. + * @return array + */ +function acf_update_internal_post_type( $internal_post_type, $post_type_name ) { + $instance = acf_get_internal_post_type_instance( $post_type_name ); + + if ( $instance ) { + $internal_post_type = $instance->update_post( $internal_post_type ); + } + + return $internal_post_type; +} + +/** + * Deletes all caches for the provided ACF post. + * + * @since 6.1 + * + * @param array $post The ACF post array. + * @param string $post_type The ACF post type the cache is being cleared for. + * @return void + */ +function acf_flush_internal_post_type_cache( $post, $post_type ) { + $instance = acf_get_internal_post_type_instance( $post_type ); + + if ( $instance ) { + $instance->flush_post_cache( $post ); + } +} + +/** + * Deletes an internal post type from the database. + * + * @since 6.1 + * + * @param int|string $id The internal post type ID, key or name. + * @param string $post_type_name The post type to be deleted. + * @return bool True if field group was deleted. + */ +function acf_delete_internal_post_type( $id = 0, $post_type_name = '' ) { + $instance = acf_get_internal_post_type_instance( $post_type_name ); + + if ( $instance ) { + return $instance->delete_post( $id ); + } + + return false; +} + +/** + * Trashes an internal post type. + * + * @since 6.1 + * + * @param int|string $id The internal post type ID, key, or name. + * @param string $post_type_name The post type being trashed. + * @return bool True if post was trashed. + */ +function acf_trash_internal_post_type( $id = 0, $post_type_name = '' ) { + $instance = acf_get_internal_post_type_instance( $post_type_name ); + + if ( $instance ) { + return $instance->trash_post( $id ); + } + + return false; +} + +/** + * Restores an ACF post from the trash. + * + * @since 6.1 + * + * @param int|string $id The internal post type ID, key, or name. + * @param string $post_type_name The post type being untrashed. + * @return bool True if post was untrashed. + */ +function acf_untrash_internal_post_type( $id = 0, $post_type_name = '' ) { + $instance = acf_get_internal_post_type_instance( $post_type_name ); + + if ( $instance ) { + return $instance->untrash_post( $id ); + } + + return false; +} + +/** + * Returns true if the given params match an ACF post. + * + * @since 6.1 + * + * @param array $post The ACF post array. + * @param string $post_type The ACF post type. + * @return bool + */ +function acf_is_internal_post_type( $post, $post_type ) { + $instance = acf_get_internal_post_type_instance( $post_type ); + + if ( $instance ) { + return $instance->is_post( $post ); + } + + return false; +} + +/** + * Duplicates an ACF post. + * + * @since 6.1 + * + * @param int|string $id The field_group ID, key or name. + * @param int $new_post_id Optional ID to override. + * @param string $post_type The post type of the post being duplicated. + * @return array|bool The new ACF post, or false on failure. + */ +function acf_duplicate_internal_post_type( $id = 0, $new_post_id = 0, $post_type = 'acf-field-group' ) { + $instance = acf_get_internal_post_type_instance( $post_type ); + + if ( $instance ) { + return $instance->duplicate_post( $id, $new_post_id ); + } + + return false; +} + +/** + * Activates or deactivates an ACF post. + * + * @param int|string $id The field_group ID, key or name. + * @param bool $activate True if the post should be activated. + * @param string $post_type The post type being activated/deactivated. + * @return bool + */ +function acf_update_internal_post_type_active_status( $id, $activate = true, $post_type = 'acf-field-group' ) { + $instance = acf_get_internal_post_type_instance( $post_type ); + + if ( $instance ) { + return $instance->update_post_active_status( $id, $activate ); + } + + return false; +} + +/** + * Checks if the current user can edit the field group and returns the edit url. + * + * @since 6.1 + * + * @param int $post_id The ACF post ID. + * @param string $post_type The ACF post type to get the edit link for. + * @return string + */ +function acf_get_internal_post_type_edit_link( $post_id, $post_type ) { + $instance = acf_get_internal_post_type_instance( $post_type ); + + if ( $instance ) { + return $instance->get_post_edit_link( $post_id ); + } + + return ''; +} + +/** + * Returns a modified field group ready for export. + * + * @since 6.1 + * + * @param array $post The ACF post array. + * @param string $post_type The post type of the ACF post being exported. + * @return array + */ +function acf_prepare_internal_post_type_for_export( $post = array(), $post_type = 'acf-field-group' ) { + $instance = acf_get_internal_post_type_instance( $post_type ); + + if ( $instance ) { + $post = $instance->prepare_post_for_export( $post ); + } + + return $post; +} + +/** + * Exports an ACF post as PHP. + * + * @since 6.1 + * + * @param array $post The ACF post array. + * @param string $post_type The post type of the ACF post being exported. + * @return string|bool + */ +function acf_export_internal_post_type_as_php( $post, $post_type = 'acf-field-group' ) { + $instance = acf_get_internal_post_type_instance( $post_type ); + + if ( $instance ) { + return $instance->export_post_as_php( $post ); + } + + return false; +} + +/** + * Prepares an ACF post for the import process. + * + * @since 6.1 + * + * @param array $post The ACF post array. + * @param string $post_type The post type of the ACF post being imported. + * @return array + */ +function acf_prepare_internal_post_type_for_import( $post = array(), $post_type = 'acf-field-group' ) { + $instance = acf_get_internal_post_type_instance( $post_type ); + + if ( $instance ) { + $post = $instance->prepare_post_for_import( $post ); + } + + return $post; +} + +/** + * Imports an ACF post into the database. + * + * @since 6.1 + * + * @param array $post The ACF post array. + * @param string $post_type The post type of the ACF post being imported. + * @return array The imported post. + */ +function acf_import_internal_post_type( $post, $post_type ) { + $instance = acf_get_internal_post_type_instance( $post_type ); + + if ( $instance ) { + $post = $instance->import_post( $post ); + } + + return $post; +} + +/** + * Tries to determine the ACF post type for the provided key. + * + * @param string $key The key to check. + * @return string|bool + */ +function acf_determine_internal_post_type( $key ) { + $store = acf_get_store( 'internal-post-types' ); + $post_types = array(); + + if ( $store ) { + $post_types = $store->get(); + $post_types = array_keys( $post_types ); + } + + foreach ( $post_types as $post_type ) { + if ( acf_is_internal_post_type_key( $key, $post_type ) ) { + return $post_type; + } + } + + return false; +} + +/** + * Returns an array of tabs for the post type advanced settings. + * + * @since 6.1 + * + * @return array + */ +function acf_get_combined_post_type_settings_tabs() { + $default_post_type_tabs = array( + 'general' => __( 'General', 'acf' ), + 'labels' => __( 'Labels', 'acf' ), + 'visibility' => __( 'Visibility', 'acf' ), + 'urls' => __( 'URLs', 'acf' ), + 'permissions' => __( 'Permissions', 'acf' ), + 'rest_api' => __( 'REST API', 'acf' ), + ); + + $additional_post_type_tabs = (array) apply_filters( 'acf/post_type/additional_settings_tabs', array() ); + + // Remove any default tab values from the filtered tabs. + foreach ( $additional_post_type_tabs as $key => $tab ) { + if ( isset( $default_post_type_tabs[ $key ] ) ) { + unset( $additional_post_type_tabs[ $key ] ); + } + } + + return array_merge( $default_post_type_tabs, $additional_post_type_tabs ); +} + +/** + * Returns an array of tabs for the taxonomy advanced settings. + * + * @since 6.1 + * + * @return array + */ +function acf_get_combined_taxonomy_settings_tabs() { + $default_taxonomy_tabs = array( + 'general' => __( 'General', 'acf' ), + 'labels' => __( 'Labels', 'acf' ), + 'visibility' => __( 'Visibility', 'acf' ), + 'urls' => __( 'URLs', 'acf' ), + 'permissions' => __( 'Permissions', 'acf' ), + 'rest_api' => __( 'REST API', 'acf' ), + ); + + $additional_taxonomy_tabs = (array) apply_filters( 'acf/taxonomy/additional_settings_tabs', array() ); + + // Remove any default tab values from the filtered tabs. + foreach ( $additional_taxonomy_tabs as $key => $tab ) { + if ( isset( $default_taxonomy_tabs[ $key ] ) ) { + unset( $additional_taxonomy_tabs[ $key ] ); + } + } + + return array_merge( $default_taxonomy_tabs, $additional_taxonomy_tabs ); +} + +/** + * Converts an _acf_screen or hook value into a post type. + * + * @since 6.1 + * + * @param string $screen The ACF screen being viewed. + * @return string The post type matching the screen or hook value. + */ +function acf_get_post_type_from_screen_value( $screen ) { + switch ( $screen ) { + case 'post_type': + return 'acf-post-type'; + case 'taxonomy': + return 'acf-taxonomy'; + case 'field_group': + return 'acf-field-group'; + default: + return false; + } +} + +/** + * Calls the ajax validator for a post type + * + * @since 6.1 + * + * @param string $post_type The post type being validated. + * @return mixed + */ +function acf_validate_internal_post_type_values( $post_type ) { + if ( $post_type ) { + $instance = acf_get_internal_post_type_instance( $post_type ); + return $instance->ajax_validate_values(); + } + return false; +} + +/** + * Adds a validation error for ACF internal post types. + * + * @since 6.1 + * + * @param string $name The name of the input. + * @param string $message An optional error message to display. + * @return void + */ +function acf_add_internal_post_type_validation_error( $name, $message = '' ) { + $screen = isset( $_POST['_acf_screen'] ) ? (string) $_POST['_acf_screen'] : 'post_type'; // phpcs:ignore WordPress.Security -- Nonce verified upstream, value only used for comparison. + $post_type = acf_get_post_type_from_screen_value( $screen ); + + if ( ! $post_type ) { + return; + } + + $input_prefix = str_replace( '-', '_', $post_type ); + + if ( substr( $name, 0, strlen( $input_prefix ) ) !== $input_prefix ) { + $name = "{$input_prefix}[$name]"; + } + + return acf_add_validation_error( $name, $message ); +} + +/** + * Gets an ACF post type from request args and verifies nonce based on action. + * + * @since 6.1.5 + * + * @param string $action The action being performed. + * @return array|bool + */ +function acf_get_post_type_from_request_args( $action = '' ) { + $acf_use_post_type = acf_request_arg( 'use_post_type', false ); + + if ( ! $acf_use_post_type || ! wp_verify_nonce( acf_request_arg( '_wpnonce' ), $action . '-' . $acf_use_post_type ) ) { + return false; + } + + return acf_get_internal_post_type( (int) $acf_use_post_type, 'acf-post-type' ); +} + +/** + * Gets an ACF taxonomy from request args and verifies nonce based on action. + * + * @since 6.1.5 + * + * @param string $action The action being performed. + * @return array|bool + */ +function acf_get_taxonomy_from_request_args( $action = '' ) { + $acf_use_taxonomy = acf_request_arg( 'use_taxonomy', false ); + + if ( ! $acf_use_taxonomy || ! wp_verify_nonce( acf_request_arg( '_wpnonce' ), $action . '-' . $acf_use_taxonomy ) ) { + return false; + } + + return acf_get_internal_post_type( (int) $acf_use_taxonomy, 'acf-taxonomy' ); +} diff --git a/includes/acf-meta-functions.php b/includes/acf-meta-functions.php index 1d26f03..4d04e96 100644 --- a/includes/acf-meta-functions.php +++ b/includes/acf-meta-functions.php @@ -1,121 +1,64 @@ - 'post', - 'id' => 0 - ); - - // Check if is numeric. - if( is_numeric($post_id) ) { - $data['id'] = (int) $post_id; - - // Check if is string. - } elseif( is_string($post_id) ) { - - // Determine "{$type}_{$id}" from string. - $bits = explode( '_', $post_id ); - $id = array_pop( $bits ); - $type = implode( '_', $bits ); - - // Check if is meta type. - if( function_exists("get_{$type}_meta") && is_numeric($id) ) { - $data['type'] = $type; - $data['id'] = (int) $id; - - // Check if is taxonomy name. - } elseif( taxonomy_exists($type) && is_numeric($id) ) { - $data['type'] = 'term'; - $data['id'] = (int) $id; - - // Otherwise, default to option. - } else { - $data['type'] = 'option'; - $data['id'] = $post_id; - } - } - - /** - * Filters the $data array after it has been decoded. - * - * @date 12/02/2014 - * @since 5.0.0 - * - * @param array $data The type and id array. - */ - return apply_filters( "acf/decode_post_id", $data, $post_id ); -} - -/** - * acf_get_meta - * * Returns an array of "ACF only" meta for the given post_id. * - * @date 9/10/18 - * @since 5.8.0 + * @date 9/10/18 + * @since 5.8.0 * - * @param mixed $post_id The post_id for this data. - * @return array + * @param mixed $post_id The post_id for this data. + * + * @return array */ function acf_get_meta( $post_id = 0 ) { - + // Allow filter to short-circuit load_value logic. - $null = apply_filters( "acf/pre_load_meta", null, $post_id ); - if( $null !== null ) { - return ( $null === '__return_null' ) ? null : $null; - } - - // Decode $post_id for $type and $id. - extract( acf_decode_post_id($post_id) ); - - // Use get_$type_meta() function when possible. - if( function_exists("get_{$type}_meta") ) { - $allmeta = call_user_func("get_{$type}_meta", $id, ''); - - // Default to wp_options. - } else { - $allmeta = acf_get_option_meta( $id ); + $null = apply_filters( 'acf/pre_load_meta', null, $post_id ); + if ( $null !== null ) { + return ( $null === '__return_null' ) ? null : $null; } - + + // Decode $post_id for $type and $id. + $decoded = acf_decode_post_id( $post_id ); + + /** + * Determine CRUD function. + * + * - Relies on decoded post_id result to identify option or meta types. + * - Uses xxx_metadata(type) instead of xxx_type_meta() to bypass additional logic that could alter the ID. + */ + if ( $decoded['type'] === 'option' ) { + $allmeta = acf_get_option_meta( $decoded['id'] ); + } else { + $allmeta = get_metadata( $decoded['type'], $decoded['id'], '' ); + } + // Loop over meta and check that a reference exists for each value. $meta = array(); - if( $allmeta ) { - foreach( $allmeta as $key => $value ) { - + if ( $allmeta ) { + foreach ( $allmeta as $key => $value ) { + // If a reference exists for this value, add it to the meta array. - if( isset($allmeta["_$key"]) ) { - $meta[ $key ] = $allmeta[ $key ][0]; + if ( isset( $allmeta[ "_$key" ] ) ) { + $meta[ $key ] = $allmeta[ $key ][0]; $meta[ "_$key" ] = $allmeta[ "_$key" ][0]; } } } - + // Unserialized results (get_metadata does not unserialize if $key is empty). - $meta = array_map('maybe_unserialize', $meta); - + $meta = array_map( 'acf_maybe_unserialize', $meta ); + /** * Filters the $meta array after it has been loaded. * - * @date 25/1/19 - * @since 5.7.11 + * @date 25/1/19 + * @since 5.7.11 * - * @param array $meta The arary of loaded meta. - * @param string $post_id The $post_id for this meta. + * @param array $meta The array of loaded meta. + * @param string $post_id The $post_id for this meta. */ - return apply_filters( "acf/load_meta", $meta, $post_id ); + return apply_filters( 'acf/load_meta', $meta, $post_id ); } @@ -124,174 +67,174 @@ function acf_get_meta( $post_id = 0 ) { * * Returns an array of meta for the given wp_option name prefix in the same format as get_post_meta(). * - * @date 9/10/18 - * @since 5.8.0 + * @date 9/10/18 + * @since 5.8.0 * - * @param string $prefix The wp_option name prefix. - * @return array + * @param string $prefix The wp_option name prefix. + * @return array */ function acf_get_option_meta( $prefix = '' ) { - + // Globals. global $wpdb; - + // Vars. - $meta = array(); - $search = "{$prefix}_%"; + $meta = array(); + $search = "{$prefix}_%"; $_search = "_{$prefix}_%"; - + // Escape underscores for LIKE. - $search = str_replace('_', '\_', $search); - $_search = str_replace('_', '\_', $_search); - + $search = str_replace( '_', '\_', $search ); + $_search = str_replace( '_', '\_', $_search ); + // Query database for results. - $rows = $wpdb->get_results($wpdb->prepare( - "SELECT * + $rows = $wpdb->get_results( + $wpdb->prepare( + "SELECT * FROM $wpdb->options WHERE option_name LIKE %s OR option_name LIKE %s", - $search, - $_search - ), ARRAY_A); - + $search, + $_search + ), + ARRAY_A + ); + // Loop over results and append meta (removing the $prefix from the option name). - $len = strlen("{$prefix}_"); - foreach( $rows as $row ) { - $meta[ substr($row['option_name'], $len) ][] = $row['option_value']; + $len = strlen( "{$prefix}_" ); + foreach ( $rows as $row ) { + $meta[ substr( $row['option_name'], $len ) ][] = $row['option_value']; } - + // Return results. return $meta; } /** - * acf_get_metadata - * * Retrieves specific metadata from the database. * - * @date 16/10/2015 - * @since 5.2.3 + * @date 16/10/2015 + * @since 5.2.3 * - * @param (int|string) $post_id The post id. - * @param string $name The meta name. - * @param bool $hidden If the meta is hidden (starts with an underscore). - * @return mixed + * @param int|string $post_id The post id. + * @param string $name The meta name. + * @param bool $hidden If the meta is hidden (starts with an underscore). + * + * @return mixed */ function acf_get_metadata( $post_id = 0, $name = '', $hidden = false ) { - // Allow filter to short-circuit logic. - $null = apply_filters( "acf/pre_load_metadata", null, $post_id, $name, $hidden ); - if( $null !== null ) { - return ( $null === '__return_null' ) ? null : $null; - } - + $null = apply_filters( 'acf/pre_load_metadata', null, $post_id, $name, $hidden ); + if ( $null !== null ) { + return ( $null === '__return_null' ) ? null : $null; + } + // Decode $post_id for $type and $id. - extract( acf_decode_post_id($post_id) ); - + $decoded = acf_decode_post_id( $post_id ); + $id = $decoded['id']; + $type = $decoded['type']; + // Hidden meta uses an underscore prefix. $prefix = $hidden ? '_' : ''; - + // Bail early if no $id (possible during new acf_form). - if( !$id ) { + if ( ! $id ) { return null; } - - // Check option. - if( $type === 'option' ) { + + // Determine CRUD function. + // - Relies on decoded post_id result to identify option or meta types. + // - Uses xxx_metadata(type) instead of xxx_type_meta() to bypass additional logic that could alter the ID. + if ( $type === 'option' ) { return get_option( "{$prefix}{$id}_{$name}", null ); - - // Check meta. } else { $meta = get_metadata( $type, $id, "{$prefix}{$name}", false ); - return isset($meta[0]) ? $meta[0] : null; + return isset( $meta[0] ) ? $meta[0] : null; } } /** - * acf_update_metadata - * * Updates metadata in the database. * - * @date 16/10/2015 - * @since 5.2.3 + * @date 16/10/2015 + * @since 5.2.3 * - * @param (int|string) $post_id The post id. - * @param string $name The meta name. - * @param mixed $value The meta value. - * @param bool $hidden If the meta is hidden (starts with an underscore). - * @return (int|bool) Meta ID if the key didn't exist, true on successful update, false on failure. + * @param int|string $post_id The post id. + * @param string $name The meta name. + * @param mixed $value The meta value. + * @param bool $hidden If the meta is hidden (starts with an underscore). + * + * @return int|bool Meta ID if the key didn't exist, true on successful update, false on failure. */ function acf_update_metadata( $post_id = 0, $name = '', $value = '', $hidden = false ) { - // Allow filter to short-circuit logic. - $pre = apply_filters( "acf/pre_update_metadata", null, $post_id, $name, $value, $hidden ); - if( $pre !== null ) { - return $pre; - } - + $pre = apply_filters( 'acf/pre_update_metadata', null, $post_id, $name, $value, $hidden ); + if ( $pre !== null ) { + return $pre; + } + // Decode $post_id for $type and $id. - extract( acf_decode_post_id($post_id) ); - + $decoded = acf_decode_post_id( $post_id ); + $id = $decoded['id']; + $type = $decoded['type']; + // Hidden meta uses an underscore prefix. $prefix = $hidden ? '_' : ''; - + // Bail early if no $id (possible during new acf_form). - if( !$id ) { + if ( ! $id ) { return false; } - - // Update option. - if( $type === 'option' ) { - - // Unslash value to match update_metadata() functionality. - $value = wp_unslash( $value ); - $autoload = (bool) acf_get_setting('autoload'); + + // Determine CRUD function. + // - Relies on decoded post_id result to identify option or meta types. + // - Uses xxx_metadata(type) instead of xxx_type_meta() to bypass additional logic that could alter the ID. + if ( $type === 'option' ) { + $value = wp_unslash( $value ); + $autoload = (bool) acf_get_setting( 'autoload' ); return update_option( "{$prefix}{$id}_{$name}", $value, $autoload ); - - // Update meta. } else { return update_metadata( $type, $id, "{$prefix}{$name}", $value ); } } /** - * acf_delete_metadata - * * Deletes metadata from the database. * - * @date 16/10/2015 - * @since 5.2.3 + * @date 16/10/2015 + * @since 5.2.3 * - * @param (int|string) $post_id The post id. - * @param string $name The meta name. - * @param bool $hidden If the meta is hidden (starts with an underscore). - * @return bool + * @param int|string $post_id The post id. + * @param string $name The meta name. + * @param bool $hidden If the meta is hidden (starts with an underscore). + * + * @return bool */ function acf_delete_metadata( $post_id = 0, $name = '', $hidden = false ) { - // Allow filter to short-circuit logic. - $pre = apply_filters( "acf/pre_delete_metadata", null, $post_id, $name, $hidden ); - if( $pre !== null ) { - return $pre; - } - + $pre = apply_filters( 'acf/pre_delete_metadata', null, $post_id, $name, $hidden ); + if ( $pre !== null ) { + return $pre; + } + // Decode $post_id for $type and $id. - extract( acf_decode_post_id($post_id) ); - + $decoded = acf_decode_post_id( $post_id ); + $id = $decoded['id']; + $type = $decoded['type']; + // Hidden meta uses an underscore prefix. $prefix = $hidden ? '_' : ''; - + // Bail early if no $id (possible during new acf_form). - if( !$id ) { + if ( ! $id ) { return false; } - - // Update option. - if( $type === 'option' ) { - $autoload = (bool) acf_get_setting('autoload'); + + // Determine CRUD function. + // - Relies on decoded post_id result to identify option or meta types. + // - Uses xxx_metadata(type) instead of xxx_type_meta() to bypass additional logic that could alter the ID. + if ( $type === 'option' ) { return delete_option( "{$prefix}{$id}_{$name}" ); - - // Update meta. } else { return delete_metadata( $type, $id, "{$prefix}{$name}" ); } @@ -302,27 +245,27 @@ function acf_delete_metadata( $post_id = 0, $name = '', $hidden = false ) { * * Copies meta from one post to another. Useful for saving and restoring revisions. * - * @date 25/06/2016 - * @since 5.3.8 + * @date 25/06/2016 + * @since 5.3.8 * - * @param (int|string) $from_post_id The post id to copy from. - * @param (int|string) $to_post_id The post id to paste to. - * @return void + * @param (int|string) $from_post_id The post id to copy from. + * @param (int|string) $to_post_id The post id to paste to. + * @return void */ function acf_copy_metadata( $from_post_id = 0, $to_post_id = 0 ) { - + // Get all postmeta. $meta = acf_get_meta( $from_post_id ); - + // Check meta. - if( $meta ) { - + if ( $meta ) { + // Slash data. WP expects all data to be slashed and will unslash it (fixes '\' character issues). $meta = wp_slash( $meta ); - + // Loop over meta. - foreach( $meta as $name => $value ) { - acf_update_metadata( $to_post_id, $name, $value ); + foreach ( $meta as $name => $value ) { + acf_update_metadata( $to_post_id, $name, $value ); } } } @@ -332,13 +275,13 @@ function acf_copy_metadata( $from_post_id = 0, $to_post_id = 0 ) { * * Copies meta from one post to another. Useful for saving and restoring revisions. * - * @date 25/06/2016 - * @since 5.3.8 + * @date 25/06/2016 + * @since 5.3.8 * @deprecated 5.7.11 * - * @param int $from_post_id The post id to copy from. - * @param int $to_post_id The post id to paste to. - * @return void + * @param int $from_post_id The post id to copy from. + * @param int $to_post_id The post id to paste to. + * @return void */ function acf_copy_postmeta( $from_post_id = 0, $to_post_id = 0 ) { return acf_copy_metadata( $from_post_id, $to_post_id ); @@ -350,26 +293,26 @@ function acf_copy_postmeta( $from_post_id = 0, $to_post_id = 0 ) { * Returns a field using the provided $id and $post_id parameters. * Looks for a reference to help loading the correct field via name. * - * @date 21/1/19 - * @since 5.7.10 + * @date 21/1/19 + * @since 5.7.10 * - * @param string $key The meta name (field name). - * @param (int|string) $post_id The post_id where this field's value is saved. - * @return (array|false) The field array. + * @param string $key The meta name (field name). + * @param (int|string) $post_id The post_id where this field's value is saved. + * @return (array|false) The field array. */ function acf_get_meta_field( $key = 0, $post_id = 0 ) { - + // Try reference. $field_key = acf_get_reference( $key, $post_id ); - - if( $field_key ) { + + if ( $field_key ) { $field = acf_get_field( $field_key ); - if( $field ) { + if ( $field ) { $field['name'] = $key; return $field; } } - + // Return false. return false; } @@ -379,29 +322,29 @@ function acf_get_meta_field( $key = 0, $post_id = 0 ) { * * Retrieves reference metadata from the database. * - * @date 16/10/2015 - * @since 5.2.3 + * @date 16/10/2015 + * @since 5.2.3 * - * @param (int|string) $post_id The post id. - * @param string type The reference type (fields|groups). - * @param string $name An optional specific name - * @return mixed + * @param (int|string) $post_id The post id. + * @param string type The reference type (fields|groups). + * @param string $name An optional specific name + * @return mixed */ function acf_get_metaref( $post_id = 0, $type = 'fields', $name = '' ) { - + // Load existing meta. $meta = acf_get_metadata( $post_id, "_acf_$type" ); - + // Handle no meta. - if( !$meta ) { + if ( ! $meta ) { return $name ? '' : array(); } - + // Return specific reference. - if( $name ) { - return isset($meta[ $name ]) ? $meta[ $name ] : ''; - - // Or return all references. + if ( $name ) { + return isset( $meta[ $name ] ) ? $meta[ $name ] : ''; + + // Or return all references. } else { return $meta; } @@ -412,30 +355,30 @@ function acf_get_metaref( $post_id = 0, $type = 'fields', $name = '' ) { * * Updates reference metadata in the database. * - * @date 16/10/2015 - * @since 5.2.3 + * @date 16/10/2015 + * @since 5.2.3 * - * @param (int|string) $post_id The post id. - * @param string type The reference type (fields|groups). - * @param array $references An array of references. - * @return (int|bool) Meta ID if the key didn't exist, true on successful update, false on failure. + * @param (int|string) $post_id The post id. + * @param string type The reference type (fields|groups). + * @param array $references An array of references. + * @return (int|bool) Meta ID if the key didn't exist, true on successful update, false on failure. */ function acf_update_metaref( $post_id = 0, $type = 'fields', $references = array() ) { - + // Get current references. $current = acf_get_metaref( $post_id, $type ); - + // Merge in new references. $references = array_merge( $current, $references ); - + // Simplify groups - if( $type === 'groups' ) { - $references = array_values($references); + if ( $type === 'groups' ) { + $references = array_values( $references ); } - + // Remove duplicate references. - $references = array_unique($references); - + $references = array_unique( $references ); + // Update metadata. return acf_update_metadata( $post_id, "_acf_$type", $references ); -} +} diff --git a/includes/acf-post-functions.php b/includes/acf-post-functions.php index f1cf57d..c583bcd 100644 --- a/includes/acf-post-functions.php +++ b/includes/acf-post-functions.php @@ -1,40 +1,40 @@ -get_page_templates( null, $post_type ); - if( $templates ) { + if ( $templates ) { $post_templates[ $post_type ] = $templates; } } } - + // Update store. acf_set_data( 'post_templates', $post_templates ); // Return templates. return $post_templates; -} \ No newline at end of file +} diff --git a/includes/acf-post-type-functions.php b/includes/acf-post-type-functions.php new file mode 100644 index 0000000..96e4cc7 --- /dev/null +++ b/includes/acf-post-type-functions.php @@ -0,0 +1,268 @@ + $user ) { - $order[ $i ] = array_search($user->ID, $args['include']); + foreach ( $users as $i => $user ) { + $order[ $i ] = array_search( $user->ID, $args['include'] ); } - + // Sort results. - array_multisort($order, $users); + array_multisort( $order, $users ); } - + // Return return $users; } @@ -38,25 +38,25 @@ function acf_get_users( $args = array() ) { * * Returns a result containing "id" and "text" for the given user. * - * @date 21/5/19 - * @since 5.8.1 + * @date 21/5/19 + * @since 5.8.1 * - * @param WP_User $user The user object. - * @return array + * @param WP_User $user The user object. + * @return array */ function acf_get_user_result( $user ) { - + // Vars. - $id = $user->ID; + $id = $user->ID; $text = $user->user_login; - + // Add name. - if( $user->first_name && $user->last_name ) { + if ( $user->first_name && $user->last_name ) { $text .= " ({$user->first_name} {$user->last_name})"; - } elseif( $user->first_name ) { + } elseif ( $user->first_name ) { $text .= " ({$user->first_name})"; } - return compact('id', 'text'); + return compact( 'id', 'text' ); } @@ -65,28 +65,28 @@ function acf_get_user_result( $user ) { * * Returns an array of user roles in the format "name => label". * - * @date 20/5/19 - * @since 5.8.1 + * @date 20/5/19 + * @since 5.8.1 * - * @param array $roles A specific array of roles. - * @return array + * @param array $roles A specific array of roles. + * @return array */ function acf_get_user_role_labels( $roles = array() ) { $all_roles = wp_roles()->get_names(); - + // Load all roles if none provided. - if( empty($roles) ) { + if ( empty( $roles ) ) { $roles = array_keys( $all_roles ); } - + // Loop over roles and populare labels. $lables = array(); - foreach( $roles as $role ) { - if( isset($all_roles[ $role ]) ) { + foreach ( $roles as $role ) { + if ( isset( $all_roles[ $role ] ) ) { $lables[ $role ] = translate_user_role( $all_roles[ $role ] ); } } - + // Return labels. return $lables; } @@ -96,24 +96,24 @@ function acf_get_user_role_labels( $roles = array() ) { * * Returns true if the current user is allowed to save unfiltered HTML. * - * @date 9/1/19 - * @since 5.7.10 + * @date 9/1/19 + * @since 5.7.10 * - * @param void - * @return bool + * @param void + * @return bool */ function acf_allow_unfiltered_html() { - + // Check capability. - $allow_unfiltered_html = current_user_can('unfiltered_html'); - + $allow_unfiltered_html = current_user_can( 'unfiltered_html' ); + /** * Filters whether the current user is allowed to save unfiltered HTML. * - * @date 9/1/19 - * @since 5.7.10 + * @date 9/1/19 + * @since 5.7.10 * - * @param bool allow_unfiltered_html The result. + * @param bool allow_unfiltered_html The result. */ return apply_filters( 'acf/allow_unfiltered_html', $allow_unfiltered_html ); -} \ No newline at end of file +} diff --git a/includes/acf-utility-functions.php b/includes/acf-utility-functions.php index 97f180e..514e834 100644 --- a/includes/acf-utility-functions.php +++ b/includes/acf-utility-functions.php @@ -1,10 +1,10 @@ -switch_site( $site_id, $prev_site_id ); } } @@ -110,14 +108,14 @@ add_action( 'switch_blog', 'acf_switch_stores', 10, 2 ); * * Returns the plugin path to a specified file. * - * @date 28/9/13 - * @since 5.0.0 + * @date 28/9/13 + * @since 5.0.0 * - * @param string $filename The specified file. - * @return string + * @param string $filename The specified file. + * @return string */ function acf_get_path( $filename = '' ) { - return ACF_PATH . ltrim($filename, '/'); + return ACF_PATH . ltrim( $filename, '/' ); } /** @@ -126,17 +124,17 @@ function acf_get_path( $filename = '' ) { * Returns the plugin url to a specified file. * This function also defines the ACF_URL constant. * - * @date 12/12/17 - * @since 5.6.8 + * @date 12/12/17 + * @since 5.6.8 * - * @param string $filename The specified file. - * @return string + * @param string $filename The specified file. + * @return string */ function acf_get_url( $filename = '' ) { - if( !defined('ACF_URL') ) { - define( 'ACF_URL', acf_get_setting('url') ); + if ( ! defined( 'ACF_URL' ) ) { + define( 'ACF_URL', acf_get_setting( 'url' ) ); } - return ACF_URL . ltrim($filename, '/'); + return ACF_URL . ltrim( $filename, '/' ); } /* @@ -144,15 +142,15 @@ function acf_get_url( $filename = '' ) { * * Includes a file within the ACF plugin. * - * @date 10/3/14 - * @since 5.0.0 + * @date 10/3/14 + * @since 5.0.0 * - * @param string $filename The specified file. - * @return void + * @param string $filename The specified file. + * @return void */ function acf_include( $filename = '' ) { - $file_path = acf_get_path($filename); - if( file_exists($file_path) ) { - include_once($file_path); + $file_path = acf_get_path( $filename ); + if ( file_exists( $file_path ) ) { + include_once $file_path; } } diff --git a/includes/acf-value-functions.php b/includes/acf-value-functions.php index da01021..c6af96b 100644 --- a/includes/acf-value-functions.php +++ b/includes/acf-value-functions.php @@ -1,4 +1,4 @@ -prop( 'multisite', true ); @@ -8,138 +8,169 @@ acf_register_store( 'values' )->prop( 'multisite', true ); * * Retrieves the field key for a given field name and post_id. * - * @date 26/1/18 - * @since 5.6.5 + * @date 26/1/18 + * @since 5.6.5 * - * @param string $field_name The name of the field. eg 'sub_heading'. - * @param mixed $post_id The post_id of which the value is saved against. - * @return string The field key. + * @param string $field_name The name of the field. eg 'sub_heading'. + * @param mixed $post_id The post_id of which the value is saved against. + * @return string The field key. */ function acf_get_reference( $field_name, $post_id ) { - + // Allow filter to short-circuit load_value logic. - $reference = apply_filters( "acf/pre_load_reference", null, $field_name, $post_id ); - if( $reference !== null ) { - return $reference; - } - + $reference = apply_filters( 'acf/pre_load_reference', null, $field_name, $post_id ); + if ( $reference !== null ) { + return $reference; + } + // Get hidden meta for this field name. $reference = acf_get_metadata( $post_id, $field_name, true ); - + /** * Filters the reference value. * - * @date 25/1/19 - * @since 5.7.11 + * @date 25/1/19 + * @since 5.7.11 * - * @param string $reference The reference value. - * @param string $field_name The field name. - * @param (int|string) $post_id The post ID where meta is stored. + * @param string $reference The reference value. + * @param string $field_name The field name. + * @param (int|string) $post_id The post ID where meta is stored. */ - return apply_filters( "acf/load_reference", $reference, $field_name, $post_id ); + return apply_filters( 'acf/load_reference', $reference, $field_name, $post_id ); } /** - * acf_get_value - * * Retrieves the value for a given field and post_id. * - * @date 28/09/13 - * @since 5.0.0 + * @date 28/09/13 + * @since 5.0.0 * - * @param (int|string) $post_id The post id. - * @param array $field The field array. - * @return mixed. + * @param int|string $post_id The post id. + * @param array $field The field array. + * @return mixed */ -function acf_get_value( $post_id = 0, $field ) { - +function acf_get_value( $post_id, $field ) { + // Allow filter to short-circuit load_value logic. - $value = apply_filters( "acf/pre_load_value", null, $post_id, $field ); - if( $value !== null ) { - return $value; - } - - // Get field name. - $field_name = $field['name']; - - // Check store. - $store = acf_get_store( 'values' ); - if( $store->has( "$post_id:$field_name" ) ) { - return $store->get( "$post_id:$field_name" ); + $value = apply_filters( 'acf/pre_load_value', null, $post_id, $field ); + if ( $value !== null ) { + return $value; } - - // Load value from database. - $value = acf_get_metadata( $post_id, $field_name ); - + + // Get field name. + $field_name = $field['name']; + + // Get field ID & type. + $decoded = acf_decode_post_id( $post_id ); + + $allow_load = true; + + // If we don't have a proper field array, the field doesn't exist currently. + if ( empty( $field['type'] ) && empty( $field['key'] ) ) { + + // Check if we should trigger warning about accessing fields too early via action. + do_action( 'acf/get_invalid_field_value', $field, __FUNCTION__ ); + + if ( apply_filters( 'acf/prevent_access_to_unknown_fields', false ) || ( 'option' === $decoded['type'] && 'options' !== $decoded['id'] ) ) { + $allow_load = false; + } + } + + // If we're using a non options_ option key, ensure we have a valid reference key. + if ( 'option' === $decoded['type'] && 'options' !== $decoded['id'] ) { + $meta = acf_get_metadata( $post_id, $field_name, true ); + if ( ! $meta ) { + $allow_load = false; + } elseif ( $meta !== $field['key'] ) { + if ( ! isset( $field['__key'] ) || $meta !== $field['__key'] ) { + $allow_load = false; + } + } + } + + // Load Store. + $store = acf_get_store( 'values' ); + + // If we're allowing load, check the store or load value from database. + if ( $allow_load ) { + if ( $store->has( "$post_id:$field_name" ) ) { + return $store->get( "$post_id:$field_name" ); + } + + $value = acf_get_metadata( $post_id, $field_name ); + } + // Use field's default_value if no meta was found. - if( $value === null && isset($field['default_value']) ) { + if ( $value === null && isset( $field['default_value'] ) ) { $value = $field['default_value']; } - + /** * Filters the $value after it has been loaded. * - * @date 28/09/13 - * @since 5.0.0 + * @date 28/09/13 + * @since 5.0.0 * - * @param mixed $value The value to preview. - * @param string $post_id The post ID for this value. - * @param array $field The field array. + * @param mixed $value The value to preview. + * @param string $post_id The post ID for this value. + * @param array $field The field array. */ - $value = apply_filters( "acf/load_value", $value, $post_id, $field ); - - // Update store. - $store->set( "$post_id:$field_name", $value ); + $value = apply_filters( 'acf/load_value', $value, $post_id, $field ); + + // Update store if we allowed the value load. + if ( $allow_load ) { + $store->set( "$post_id:$field_name", $value ); + } // Return value. return $value; } // Register variation. -acf_add_filter_variations( 'acf/load_value', array('type', 'name', 'key'), 2 ); +acf_add_filter_variations( 'acf/load_value', array( 'type', 'name', 'key' ), 2 ); /** * acf_format_value * * Returns a formatted version of the provided value. * - * @date 28/09/13 - * @since 5.0.0 + * @date 28/09/13 + * @since 5.0.0 * - * @param mixed $value The field value. - * @param (int|string) $post_id The post id. - * @param array $field The field array. - * @return mixed. + * @param mixed $value The field value. + * @param (int|string) $post_id The post id. + * @param array $field The field array. + * @return mixed. */ function acf_format_value( $value, $post_id, $field ) { - + // Allow filter to short-circuit load_value logic. - $check = apply_filters( "acf/pre_format_value", null, $value, $post_id, $field ); - if( $check !== null ) { - return $check; - } - - // Get field name. - $field_name = $field['name']; - - // Check store. + $check = apply_filters( 'acf/pre_format_value', null, $value, $post_id, $field ); + if ( $check !== null ) { + return $check; + } + + // Get field name. + $field_name = $field['name']; + + // Check store. $store = acf_get_store( 'values' ); - if( $store->has( "$post_id:$field_name:formatted" ) ) { + if ( $store->has( "$post_id:$field_name:formatted" ) ) { return $store->get( "$post_id:$field_name:formatted" ); } - + /** * Filters the $value for use in a template function. * - * @date 28/09/13 - * @since 5.0.0 + * @date 28/09/13 + * @since 5.0.0 * - * @param mixed $value The value to preview. - * @param string $post_id The post ID for this value. - * @param array $field The field array. + * @param mixed $value The value to preview. + * @param string $post_id The post ID for this value. + * @param array $field The field array. */ - $value = apply_filters( "acf/format_value", $value, $post_id, $field ); - + $value = apply_filters( 'acf/format_value', $value, $post_id, $field ); + // Update store. $store->set( "$post_id:$field_name:formatted", $value ); @@ -148,85 +179,85 @@ function acf_format_value( $value, $post_id, $field ) { } // Register variation. -acf_add_filter_variations( 'acf/format_value', array('type', 'name', 'key'), 2 ); +acf_add_filter_variations( 'acf/format_value', array( 'type', 'name', 'key' ), 2 ); /** * acf_update_value * * Updates the value for a given field and post_id. * - * @date 28/09/13 - * @since 5.0.0 + * @date 28/09/13 + * @since 5.0.0 * - * @param mixed $value The new value. - * @param (int|string) $post_id The post id. - * @param array $field The field array. - * @return bool. + * @param mixed $value The new value. + * @param (int|string) $post_id The post id. + * @param array $field The field array. + * @return bool. */ -function acf_update_value( $value = null, $post_id = 0, $field ) { - +function acf_update_value( $value, $post_id, $field ) { + // Allow filter to short-circuit update_value logic. - $check = apply_filters( "acf/pre_update_value", null, $value, $post_id, $field ); - if( $check !== null ) { + $check = apply_filters( 'acf/pre_update_value', null, $value, $post_id, $field ); + if ( $check !== null ) { return $check; } - - /** + + /** * Filters the $value before it is updated. * - * @date 28/09/13 - * @since 5.0.0 + * @date 28/09/13 + * @since 5.0.0 * - * @param mixed $value The value to update. - * @param string $post_id The post ID for this value. - * @param array $field The field array. - * @param mixed $original The original value before modification. + * @param mixed $value The value to update. + * @param string $post_id The post ID for this value. + * @param array $field The field array. + * @param mixed $original The original value before modification. */ - $value = apply_filters( "acf/update_value", $value, $post_id, $field, $value ); - + $value = apply_filters( 'acf/update_value', $value, $post_id, $field, $value ); + // Allow null to delete value. - if( $value === null ) { + if ( $value === null ) { return acf_delete_value( $post_id, $field ); } - + // Update meta. $return = acf_update_metadata( $post_id, $field['name'], $value ); - + // Update reference. acf_update_metadata( $post_id, $field['name'], $field['key'], true ); - + // Delete stored data. acf_flush_value_cache( $post_id, $field['name'] ); - + // Return update status. return $return; } // Register variation. -acf_add_filter_variations( 'acf/update_value', array('type', 'name', 'key'), 2 ); +acf_add_filter_variations( 'acf/update_value', array( 'type', 'name', 'key' ), 2 ); /** * acf_update_values * * Updates an array of values. * - * @date 26/2/19 - * @since 5.7.13 + * @date 26/2/19 + * @since 5.7.13 * - * @param array values The array of values. - * @param (int|string) $post_id The post id. - * @return void + * @param array values The array of values. + * @param (int|string) $post_id The post id. + * @return void */ -function acf_update_values( $values = array(), $post_id = 0 ) { - +function acf_update_values( $values, $post_id ) { + // Loop over values. - foreach( $values as $key => $value ) { - + foreach ( $values as $key => $value ) { + // Get field. $field = acf_get_field( $key ); - + // Update value. - if( $field ) { + if ( $field ) { acf_update_value( $value, $post_id, $field ); } } @@ -237,15 +268,15 @@ function acf_update_values( $values = array(), $post_id = 0 ) { * * Deletes all cached data for this value. * - * @date 22/1/19 - * @since 5.7.10 + * @date 22/1/19 + * @since 5.7.10 * - * @param (int|string) $post_id The post id. - * @param string $field_name The field name. - * @return void + * @param (int|string) $post_id The post id. + * @param string $field_name The field name. + * @return void */ function acf_flush_value_cache( $post_id = 0, $field_name = '' ) { - + // Delete stored data. acf_get_store( 'values' ) ->remove( "$post_id:$field_name" ) @@ -257,70 +288,93 @@ function acf_flush_value_cache( $post_id = 0, $field_name = '' ) { * * Deletes the value for a given field and post_id. * - * @date 28/09/13 - * @since 5.0.0 + * @date 28/09/13 + * @since 5.0.0 * - * @param (int|string) $post_id The post id. - * @param array $field The field array. - * @return bool. + * @param (int|string) $post_id The post id. + * @param array $field The field array. + * @return bool. */ function acf_delete_value( $post_id, $field ) { - + /** * Fires before a value is deleted. * - * @date 28/09/13 - * @since 5.0.0 + * @date 28/09/13 + * @since 5.0.0 * - * @param string $post_id The post ID for this value. - * @param mixed $name The meta name. - * @param array $field The field array. + * @param string $post_id The post ID for this value. + * @param mixed $name The meta name. + * @param array $field The field array. */ - do_action( "acf/delete_value", $post_id, $field['name'], $field ); - + do_action( 'acf/delete_value', $post_id, $field['name'], $field ); + // Delete meta. $return = acf_delete_metadata( $post_id, $field['name'] ); - + // Delete reference. acf_delete_metadata( $post_id, $field['name'], true ); - + // Delete stored data. acf_flush_value_cache( $post_id, $field['name'] ); - + // Return delete status. return $return; } // Register variation. -acf_add_filter_variations( 'acf/delete_value', array('type', 'name', 'key'), 2 ); +acf_add_filter_variations( 'acf/delete_value', array( 'type', 'name', 'key' ), 2 ); /** * acf_preview_value * * Return a human friendly 'preview' for a given field value. * - * @date 28/09/13 - * @since 5.0.0 + * @date 28/09/13 + * @since 5.0.0 * - * @param mixed $value The new value. - * @param (int|string) $post_id The post id. - * @param array $field The field array. - * @return bool. + * @param mixed $value The new value. + * @param (int|string) $post_id The post id. + * @param array $field The field array. + * @return bool. */ function acf_preview_value( $value, $post_id, $field ) { - + /** * Filters the $value before used in HTML. * - * @date 24/10/16 - * @since 5.5.0 + * @date 24/10/16 + * @since 5.5.0 * - * @param mixed $value The value to preview. - * @param string $post_id The post ID for this value. - * @param array $field The field array. + * @param mixed $value The value to preview. + * @param string $post_id The post ID for this value. + * @param array $field The field array. */ - return apply_filters( "acf/preview_value", $value, $post_id, $field ); + return apply_filters( 'acf/preview_value', $value, $post_id, $field ); } // Register variation. -acf_add_filter_variations( 'acf/preview_value', array('type', 'name', 'key'), 2 ); +acf_add_filter_variations( 'acf/preview_value', array( 'type', 'name', 'key' ), 2 ); + +/** + * Potentially log an error if a field doesn't exist when we expect it to. + * + * @param array $field An array representing the field that a value was requested for. + * @param string $function The function that noticed the problem. + * + * @return void + */ +function acf_log_invalid_field_notice( $field, $function ) { + // If "init" has fired, ACF probably wasn't initialized early. + if ( did_action( 'init' ) ) { + return; + } + + $error_text = sprintf( + __( '%1$s - We\'ve detected one or more calls to retrieve ACF field values before ACF has been initialized. This is not supported and can result in malformed or missing data. Learn how to fix this.', 'acf' ), + acf_get_setting( 'name' ), + acf_add_url_utm_tags( 'https://www.advancedcustomfields.com/resources/acf-field-functions/', 'docs', 'early_init_warning' ) + ); + _doing_it_wrong( $function, $error_text, '5.11.1' ); +} +add_action( 'acf/get_invalid_field_value', 'acf_log_invalid_field_notice', 10, 2 ); diff --git a/includes/acf-wp-functions.php b/includes/acf-wp-functions.php index 89b9ad8..fe80ced 100644 --- a/includes/acf-wp-functions.php +++ b/includes/acf-wp-functions.php @@ -3,106 +3,261 @@ /** * Returns a WordPress object type. * - * @date 1/4/20 - * @since 5.9.0 + * @date 1/4/20 + * @since 5.9.0 * - * @param string $object_type The object type (post, term, user, etc). - * @param string $object_subtype Optional object subtype (post type, taxonomy). - * @return object + * @param string $object_type The object type (post, term, user, etc). + * @param string $object_subtype Optional object subtype (post type, taxonomy). + * @return object */ function acf_get_object_type( $object_type, $object_subtype = '' ) { $props = array( - 'type' => $object_type, - 'subtype' => $object_subtype, - 'name' => '', - 'label' => '', - 'icon' => '' + 'type' => $object_type, + 'subtype' => $object_subtype, + 'name' => '', + 'label' => '', + 'icon' => '', ); - + // Set unique identifier as name. - if( $object_subtype ) { + if ( $object_subtype ) { $props['name'] = "$object_type/$object_subtype"; } else { $props['name'] = $object_type; } - + // Set label and icon. switch ( $object_type ) { case 'post': - if( $object_subtype ) { + if ( $object_subtype ) { $post_type = get_post_type_object( $object_subtype ); - if( $post_type ) { + if ( $post_type ) { $props['label'] = $post_type->labels->name; - $props['icon'] = acf_with_default( $post_type->menu_icon, 'dashicons-admin-post' ); + $props['icon'] = acf_with_default( $post_type->menu_icon, 'dashicons-admin-post' ); } else { return false; } } else { - $props['label'] = __('Posts', 'acf'); - $props['icon'] = 'dashicons-admin-post'; + $props['label'] = __( 'Posts', 'acf' ); + $props['icon'] = 'dashicons-admin-post'; } break; case 'term': - if( $object_subtype ) { + if ( $object_subtype ) { $taxonomy = get_taxonomy( $object_subtype ); - if( $taxonomy ) { + if ( $taxonomy ) { $props['label'] = $taxonomy->labels->name; } else { return false; } } else { - $props['label'] = __('Taxonomies', 'acf'); + $props['label'] = __( 'Taxonomies', 'acf' ); } $props['icon'] = 'dashicons-tag'; break; case 'attachment': - $props['label'] = __('Attachments', 'acf'); - $props['icon'] = 'dashicons-admin-media'; + $props['label'] = __( 'Attachments', 'acf' ); + $props['icon'] = 'dashicons-admin-media'; break; case 'comment': - $props['label'] = __('Comments', 'acf'); - $props['icon'] = 'dashicons-admin-comments'; + $props['label'] = __( 'Comments', 'acf' ); + $props['icon'] = 'dashicons-admin-comments'; break; case 'widget': - $props['label'] = __('Widgets', 'acf'); - $props['icon'] = 'dashicons-screenoptions'; + $props['label'] = __( 'Widgets', 'acf' ); + $props['icon'] = 'dashicons-screenoptions'; break; case 'menu': - $props['label'] = __('Menus', 'acf'); - $props['icon'] = 'dashicons-admin-appearance'; + $props['label'] = __( 'Menus', 'acf' ); + $props['icon'] = 'dashicons-admin-appearance'; break; case 'menu_item': - $props['label'] = __('Menu items', 'acf'); - $props['icon'] = 'dashicons-admin-appearance'; + $props['label'] = __( 'Menu items', 'acf' ); + $props['icon'] = 'dashicons-admin-appearance'; break; case 'user': - $props['label'] = __('Users', 'acf'); - $props['icon'] = 'dashicons-admin-users'; + $props['label'] = __( 'Users', 'acf' ); + $props['icon'] = 'dashicons-admin-users'; break; case 'option': - $props['label'] = __('Options', 'acf'); - $props['icon'] = 'dashicons-admin-generic'; + $props['label'] = __( 'Options', 'acf' ); + $props['icon'] = 'dashicons-admin-generic'; break; case 'block': - $props['label'] = __('Blocks', 'acf'); - $props['icon'] = acf_version_compare('wp', '>=', '5.5') ? 'dashicons-block-default' : 'dashicons-layout'; + $props['label'] = __( 'Blocks', 'acf' ); + $props['icon'] = acf_version_compare( 'wp', '>=', '5.5' ) ? 'dashicons-block-default' : 'dashicons-layout'; break; default: return false; } - + // Convert to object. $object = (object) $props; - + /** * Filters the object type. * - * @date 6/4/20 - * @since 5.9.0 + * @date 6/4/20 + * @since 5.9.0 * - * @param object $object The object props. - * @param string $object_type The object type (post, term, user, etc). - * @param string $object_subtype Optional object subtype (post type, taxonomy). + * @param object $object The object props. + * @param string $object_type The object type (post, term, user, etc). + * @param string $object_subtype Optional object subtype (post type, taxonomy). */ return apply_filters( 'acf/get_object_type', $object, $object_type, $object_subtype ); } + +/** + * Decodes a post_id value such as 1 or "user_1" into an array containing the type and ID. + * + * @date 25/1/19 + * @since 5.7.11 + * + * @param (int|string) $post_id The post id. + * @return array + */ +function acf_decode_post_id( $post_id = 0 ) { + $type = ''; + $id = 0; + + // Interpret numeric value (123). + if ( is_numeric( $post_id ) ) { + $type = 'post'; + $id = $post_id; + + // Interpret string value ("user_123" or "option"). + } elseif ( is_string( $post_id ) ) { + $i = strrpos( $post_id, '_' ); + if ( $i > 0 ) { + $type = substr( $post_id, 0, $i ); + $id = substr( $post_id, $i + 1 ); + } else { + $type = $post_id; + $id = ''; + } + + // Handle incorrect param type. + } else { + return compact( 'type', 'id' ); + } + + // Validate props based on param format. + $format = $type . '_' . ( is_numeric( $id ) ? '%d' : '%s' ); + switch ( $format ) { + case 'post_%d': + $type = 'post'; + $id = absint( $id ); + break; + case 'term_%d': + $type = 'term'; + $id = absint( $id ); + break; + case 'attachment_%d': + $type = 'post'; + $id = absint( $id ); + break; + case 'comment_%d': + $type = 'comment'; + $id = absint( $id ); + break; + case 'widget_%s': + case 'widget_%d': + $type = 'option'; + $id = $post_id; + break; + case 'menu_%d': + $type = 'term'; + $id = absint( $id ); + break; + case 'menu_item_%d': + $type = 'post'; + $id = absint( $id ); + break; + case 'user_%d': + $type = 'user'; + $id = absint( $id ); + break; + case 'block_%s': + case 'block_%d': + $type = 'block'; + $id = $post_id; + break; + case 'option_%s': + $type = 'option'; + $id = $post_id; + break; + case 'blog_%d': + case 'site_%d': + // Allow backwards compatibility for custom taxonomies. + $type = taxonomy_exists( $type ) ? 'term' : 'blog'; + $id = absint( $id ); + break; + default: + // Check for taxonomy name. + if ( taxonomy_exists( $type ) && is_numeric( $id ) ) { + $type = 'term'; + $id = absint( $id ); + break; + } + + // Treat unknown post_id format as an option. + $type = 'option'; + $id = $post_id; + break; + } + + /** + * Filters the decoded post_id information. + * + * @date 25/1/19 + * @since 5.7.11 + * + * @param array $props An array containing "type" and "id" information. + * @param (int|string) $post_id The post id. + */ + return apply_filters( 'acf/decode_post_id', compact( 'type', 'id' ), $post_id ); +} + +/** + * Determine the REST base for a post type or taxonomy object. Note that this is not intended for use + * with term or post objects but is, instead, to be used with the underlying WP_Post_Type and WP_Taxonomy + * instances. + * + * @param WP_Post_Type|WP_Taxonomy $type_object + * @return string|null + */ +function acf_get_object_type_rest_base( $type_object ) { + if ( $type_object instanceof WP_Post_Type || $type_object instanceof WP_Taxonomy ) { + return ! empty( $type_object->rest_base ) ? $type_object->rest_base : $type_object->name; + } + + return null; +} + +/** + * Extract the ID of a given object/array. This supports all expected types handled by our update_fields() and + * load_fields() callbacks. + * + * @param WP_Post|WP_User|WP_Term|WP_Comment|array $object + * @return int|mixed|null + */ +function acf_get_object_id( $object ) { + if ( is_object( $object ) ) { + switch ( get_class( $object ) ) { + case WP_User::class: + case WP_Post::class: + return (int) $object->ID; + case WP_Term::class: + return (int) $object->term_id; + case WP_Comment::class: + return (int) $object->comment_ID; + } + } elseif ( isset( $object['id'] ) ) { + return (int) $object['id']; + + } elseif ( isset( $object['ID'] ) ) { + return (int) $object['ID']; + } + + return null; +} diff --git a/includes/admin/admin-field-group.php b/includes/admin/admin-field-group.php deleted file mode 100644 index 0ef6477..0000000 --- a/includes/admin/admin-field-group.php +++ /dev/null @@ -1,842 +0,0 @@ - '', // Unused. Messages start at index 1. - 1 => __('Field group updated.', 'acf'), - 2 => __('Field group updated.', 'acf'), - 3 => __('Field group deleted.', 'acf'), - 4 => __('Field group updated.', 'acf'), - 5 => false, // field group does not support revisions - 6 => __('Field group published.', 'acf'), - 7 => __('Field group saved.', 'acf'), - 8 => __('Field group submitted.', 'acf'), - 9 => __('Field group scheduled for.', 'acf'), - 10 => __('Field group draft updated.', 'acf') - ); - - - // return - return $messages; - } - - - /* - * current_screen - * - * This function is fired when loading the admin page before HTML has been rendered. - * - * @type action (current_screen) - * @date 21/07/2014 - * @since 5.0.0 - * - * @param n/a - * @return n/a - */ - - function current_screen() { - - // validate screen - if( !acf_is_screen('acf-field-group') ) return; - - - // disable filters to ensure ACF loads raw data from DB - acf_disable_filters(); - - - // enqueue scripts - acf_enqueue_scripts(); - - - // actions - add_action('acf/input/admin_enqueue_scripts', array($this, 'admin_enqueue_scripts')); - add_action('acf/input/admin_head', array($this, 'admin_head')); - add_action('acf/input/form_data', array($this, 'form_data')); - add_action('acf/input/admin_footer', array($this, 'admin_footer')); - add_action('acf/input/admin_footer_js', array($this, 'admin_footer_js')); - - - // filters - add_filter('acf/input/admin_l10n', array($this, 'admin_l10n')); - } - - - /* - * admin_enqueue_scripts - * - * This action is run after post query but before any admin script / head actions. - * It is a good place to register all actions. - * - * @type action (admin_enqueue_scripts) - * @date 30/06/2014 - * @since 5.0.0 - * - * @param n/a - * @return n/a - */ - - function admin_enqueue_scripts() { - - // no autosave - wp_dequeue_script('autosave'); - - - // custom scripts - wp_enqueue_style('acf-field-group'); - wp_enqueue_script('acf-field-group'); - - - // localize text - acf_localize_text(array( - 'The string "field_" may not be used at the start of a field name' => __('The string "field_" may not be used at the start of a field name', 'acf'), - 'This field cannot be moved until its changes have been saved' => __('This field cannot be moved until its changes have been saved', 'acf'), - 'Field group title is required' => __('Field group title is required', 'acf'), - 'Move to trash. Are you sure?' => __('Move to trash. Are you sure?', 'acf'), - 'No toggle fields available' => __('No toggle fields available', 'acf'), - 'Move Custom Field' => __('Move Custom Field', 'acf'), - 'Checked' => __('Checked', 'acf'), - '(no label)' => __('(no label)', 'acf'), - '(this field)' => __('(this field)', 'acf'), - 'copy' => __('copy', 'acf'), - 'or' => __('or', 'acf'), - 'Null' => __('Null', 'acf'), - - // Conditions - 'Has any value' => __('Has any value', 'acf'), - 'Has no value' => __('Has no value', 'acf'), - 'Value is equal to' => __('Value is equal to', 'acf'), - 'Value is not equal to' => __('Value is not equal to', 'acf'), - 'Value matches pattern' => __('Value matches pattern', 'acf'), - 'Value contains' => __('Value contains', 'acf'), - 'Value is greater than' => __('Value is greater than', 'acf'), - 'Value is less than' => __('Value is less than', 'acf'), - 'Selection is greater than' => __('Selection is greater than', 'acf'), - 'Selection is less than' => __('Selection is less than', 'acf'), - )); - - // localize data - acf_localize_data(array( - 'fieldTypes' => acf_get_field_types_info() - )); - - // 3rd party hook - do_action('acf/field_group/admin_enqueue_scripts'); - - } - - - /* - * admin_head - * - * This function will setup all functionality for the field group edit page to work - * - * @type action (admin_head) - * @date 23/06/12 - * @since 3.1.8 - * - * @param $post_id (int) - * @return $post_id (int) - */ - - function admin_head() { - - // global - global $post, $field_group; - - - // set global var - $field_group = acf_get_field_group( $post->ID ); - - - // metaboxes - add_meta_box('acf-field-group-fields', __("Fields",'acf'), array($this, 'mb_fields'), 'acf-field-group', 'normal', 'high'); - add_meta_box('acf-field-group-locations', __("Location",'acf'), array($this, 'mb_locations'), 'acf-field-group', 'normal', 'high'); - add_meta_box('acf-field-group-options', __("Settings",'acf'), array($this, 'mb_options'), 'acf-field-group', 'normal', 'high'); - - - // actions - add_action('post_submitbox_misc_actions', array($this, 'post_submitbox_misc_actions'), 10, 0); - add_action('edit_form_after_title', array($this, 'edit_form_after_title'), 10, 0); - - - // filters - add_filter('screen_settings', array($this, 'screen_settings'), 10, 1); - - - // 3rd party hook - do_action('acf/field_group/admin_head'); - - } - - - /* - * edit_form_after_title - * - * This action will allow ACF to render metaboxes after the title - * - * @type action - * @date 17/08/13 - * - * @param n/a - * @return n/a - */ - - function edit_form_after_title() { - - // globals - global $post; - - - // render post data - acf_form_data(array( - 'screen' => 'field_group', - 'post_id' => $post->ID, - 'delete_fields' => 0, - 'validation' => 0 - )); - - } - - - /* - * form_data - * - * This function will add extra HTML to the acf form data element - * - * @type function - * @date 31/05/2016 - * @since 5.3.8 - * - * @param n/a - * @return n/a - */ - - function form_data( $args ) { - - // do action - do_action('acf/field_group/form_data', $args); - - } - - - /* - * admin_l10n - * - * This function will append extra l10n strings to the acf JS object - * - * @type function - * @date 31/05/2016 - * @since 5.3.8 - * - * @param $l10n (array) - * @return $l10n - */ - - function admin_l10n( $l10n ) { - return apply_filters('acf/field_group/admin_l10n', $l10n); - } - - - - /* - * admin_footer - * - * description - * - * @type function - * @date 11/01/2016 - * @since 5.3.2 - * - * @param $post_id (int) - * @return $post_id (int) - */ - - function admin_footer() { - - // 3rd party hook - do_action('acf/field_group/admin_footer'); - - } - - - /* - * admin_footer_js - * - * description - * - * @type function - * @date 31/05/2016 - * @since 5.3.8 - * - * @param $post_id (int) - * @return $post_id (int) - */ - - function admin_footer_js() { - - // 3rd party hook - do_action('acf/field_group/admin_footer_js'); - - } - - - /* - * screen_settings - * - * description - * - * @type function - * @date 26/01/13 - * @since 3.6.0 - * - * @param $current (string) - * @return $current - */ - - function screen_settings( $html ) { - - // vars - $checked = acf_get_user_setting('show_field_keys') ? 'checked="checked"' : ''; - - - // append - $html .= '
                                '; - $html .= ''; - $html .= '
                                '; - - - // return - return $html; - - } - - - /* - * post_submitbox_misc_actions - * - * This function will customize the publish metabox - * - * @type function - * @date 17/07/2015 - * @since 5.2.9 - * - * @param n/a - * @return n/a - */ - - function post_submitbox_misc_actions() { - - // global - global $field_group; - - - // vars - $status = $field_group['active'] ? __("Active",'acf') : __("Inactive",'acf'); - -?> - -post_type !== 'acf-field-group' ) { - return $post_id; - } - - // only save once! WordPress save's a revision as well. - if( wp_is_post_revision($post_id) ) { - return $post_id; - } - - // verify nonce - if( !acf_verify_nonce('field_group') ) { - return $post_id; - } - - // Bail early if request came from an unauthorised user. - if( !current_user_can(acf_get_setting('capability')) ) { - return $post_id; - } - - - // disable filters to ensure ACF loads raw data from DB - acf_disable_filters(); - - - // save fields - if( !empty($_POST['acf_fields']) ) { - - // loop - foreach( $_POST['acf_fields'] as $field ) { - - // vars - $specific = false; - $save = acf_extract_var( $field, 'save' ); - - - // only saved field if has changed - if( $save == 'meta' ) { - $specific = array( - 'menu_order', - 'post_parent', - ); - } - - // set parent - if( !$field['parent'] ) { - $field['parent'] = $post_id; - } - - // save field - acf_update_field( $field, $specific ); - - } - } - - - // delete fields - if( $_POST['_acf_delete_fields'] ) { - - // clean - $ids = explode('|', $_POST['_acf_delete_fields']); - $ids = array_map( 'intval', $ids ); - - - // loop - foreach( $ids as $id ) { - - // bai early if no id - if( !$id ) continue; - - - // delete - acf_delete_field( $id ); - - } - - } - - - // add args - $_POST['acf_field_group']['ID'] = $post_id; - $_POST['acf_field_group']['title'] = $_POST['post_title']; - - - // save field group - acf_update_field_group( $_POST['acf_field_group'] ); - - - // return - return $post_id; - } - - - /* - * mb_fields - * - * This function will render the HTML for the medtabox 'acf-field-group-fields' - * - * @type function - * @date 28/09/13 - * @since 5.0.0 - * - * @param N/A - * @return N/A - */ - - function mb_fields() { - - // global - global $field_group; - - - // get fields - $view = array( - 'fields' => acf_get_fields( $field_group ), - 'parent' => 0 - ); - - - // load view - acf_get_view('field-group-fields', $view); - - } - - - /* - * mb_options - * - * This function will render the HTML for the medtabox 'acf-field-group-options' - * - * @type function - * @date 28/09/13 - * @since 5.0.0 - * - * @param N/A - * @return N/A - */ - - function mb_options() { - - // global - global $field_group; - - - // field key (leave in for compatibility) - if( !acf_is_field_group_key( $field_group['key']) ) { - - $field_group['key'] = uniqid('group_'); - - } - - - // view - acf_get_view('field-group-options'); - - } - - - /* - * mb_locations - * - * This function will render the HTML for the medtabox 'acf-field-group-locations' - * - * @type function - * @date 28/09/13 - * @since 5.0.0 - * - * @param N/A - * @return N/A - */ - - function mb_locations() { - - // global - global $field_group; - - - // UI needs at lease 1 location rule - if( empty($field_group['location']) ) { - - $field_group['location'] = array( - - // group 0 - array( - - // rule 0 - array( - 'param' => 'post_type', - 'operator' => '==', - 'value' => 'post', - ) - ) - - ); - } - - - // view - acf_get_view('field-group-locations'); - - } - - - /* - * ajax_render_location_rule - * - * This function can be accessed via an AJAX action and will return the result from the render_location_value function - * - * @type function (ajax) - * @date 30/09/13 - * @since 5.0.0 - * - * @param n/a - * @return n/a - */ - - function ajax_render_location_rule() { - - // validate - if( !acf_verify_ajax() ) die(); - - // validate rule - $rule = acf_validate_location_rule($_POST['rule']); - - // view - acf_get_view( 'html-location-rule', array( - 'rule' => $rule - )); - - // die - die(); - } - - - /* - * ajax_render_field_settings - * - * This function will return HTML containing the field's settings based on it's new type - * - * @type function (ajax) - * @date 30/09/13 - * @since 5.0.0 - * - * @param n/a - * @return n/a - */ - - function ajax_render_field_settings() { - - // validate - if( !acf_verify_ajax() ) die(); - - // vars - $field = acf_maybe_get_POST('field'); - - // check - if( !$field ) die(); - - // set prefix - $field['prefix'] = acf_maybe_get_POST('prefix'); - - // validate - $field = acf_get_valid_field( $field ); - - // render - do_action("acf/render_field_settings/type={$field['type']}", $field); - - // return - die(); - - } - - /* - * ajax_move_field - * - * description - * - * @type function - * @date 20/01/2014 - * @since 5.0.0 - * - * @param $post_id (int) - * @return $post_id (int) - */ - - function ajax_move_field() { - - // disable filters to ensure ACF loads raw data from DB - acf_disable_filters(); - - - $args = acf_parse_args($_POST, array( - 'nonce' => '', - 'post_id' => 0, - 'field_id' => 0, - 'field_group_id' => 0 - )); - - - // verify nonce - if( !wp_verify_nonce($args['nonce'], 'acf_nonce') ) die(); - - - // confirm? - if( $args['field_id'] && $args['field_group_id'] ) { - - // vars - $field = acf_get_field($args['field_id']); - $field_group = acf_get_field_group($args['field_group_id']); - - - // update parent - $field['parent'] = $field_group['ID']; - - - // remove conditional logic - $field['conditional_logic'] = 0; - - - // update field - acf_update_field($field); - - - // message - $a = '' . $field_group['title'] . ''; - echo '

                                ' . __('Move Complete.', 'acf') . '

                                '; - echo '

                                ' . sprintf( __('The %s field can now be found in the %s field group', 'acf'), $field['label'], $a ). '

                                '; - echo '' . __("Close Window",'acf') . ''; - die(); - - } - - - // get all field groups - $field_groups = acf_get_field_groups(); - $choices = array(); - - - // check - if( !empty($field_groups) ) { - - // loop - foreach( $field_groups as $field_group ) { - - // bail early if no ID - if( !$field_group['ID'] ) continue; - - - // bail ealry if is current - if( $field_group['ID'] == $args['post_id'] ) continue; - - - // append - $choices[ $field_group['ID'] ] = $field_group['title']; - - } - - } - - - // render options - $field = acf_get_valid_field(array( - 'type' => 'select', - 'name' => 'acf_field_group', - 'choices' => $choices - )); - - - echo '

                                ' . __('Please select the destination for this field', 'acf') . '

                                '; - - echo '
                                '; - - // render - acf_render_field_wrap( $field ); - - echo ''; - - echo ''; - - - // die - die(); - - } - -} - -// initialize -new acf_admin_field_group(); - -endif; - -?> \ No newline at end of file diff --git a/includes/admin/admin-field-groups.php b/includes/admin/admin-field-groups.php deleted file mode 100644 index 89a51d0..0000000 --- a/includes/admin/admin-field-groups.php +++ /dev/null @@ -1,879 +0,0 @@ -get_admin_url( ( $this->view ? '&post_status=' . $this->view : '' ) . $params ); - } - - /** - * Redirects users from ACF 4.0 admin page. - * - * @date 17/9/18 - * @since 5.7.6 - * - * @param void - * @return void - */ - public function handle_redirection() { - if( isset($_GET['post_type']) && $_GET['post_type'] === 'acf' ) { - wp_redirect( $this->get_admin_url() ); - exit; - } - } - - /** - * Constructor for the Field Groups admin page. - * - * @date 21/07/2014 - * @since 5.0.0 - * - * @param void - * @return void - */ - public function current_screen() { - - // Bail early if not Field Groups admin page. - if( !acf_is_screen('edit-acf-field-group') ) { - return; - } - - // Get the current view. - $this->view = isset( $_GET['post_status'] ) ? sanitize_text_field( $_GET['post_status'] ) : ''; - - // Setup and check for custom actions.. - $this->setup_sync(); - $this->check_sync(); - $this->check_duplicate(); - - // Modify publish post status text and order. - global $wp_post_statuses; - $wp_post_statuses['publish']->label_count = _n_noop( 'Active (%s)', 'Active (%s)', 'acf' ); - $wp_post_statuses['trash'] = acf_extract_var( $wp_post_statuses, 'trash' ); - - // Add hooks. - add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts') ); - add_action( 'admin_body_class', array( $this, 'admin_body_class' ) ); - add_filter( 'views_edit-acf-field-group', array( $this, 'admin_table_views' ), 10, 1 ); - add_filter( 'manage_acf-field-group_posts_columns', array( $this, 'admin_table_columns' ), 10, 1 ); - add_action( 'manage_acf-field-group_posts_custom_column', array( $this, 'admin_table_columns_html' ), 10, 2 ); - add_filter( 'display_post_states', array( $this, 'display_post_states' ), 10, 2 ); - add_filter( 'bulk_actions-edit-acf-field-group', array( $this, 'admin_table_bulk_actions' ), 10, 1 ); - add_action( 'admin_footer', array( $this, 'admin_footer' ), 1 ); - if( $this->view !== 'trash' ) { - add_filter( 'page_row_actions', array( $this, 'page_row_actions' ), 10, 2 ); - } - - // Add hooks for "sync" view. - if( $this->view === 'sync' ) { - add_action( 'admin_footer', array( $this, 'admin_footer__sync' ), 1 ); - } - } - - /** - * Sets up the field groups ready for sync. - * - * @date 17/4/20 - * @since 5.9.0 - * - * @param void - * @return void - */ - public function setup_sync() { - - // Review local json field groups. - if( acf_get_local_json_files() ) { - - // Get all groups in a single cached query to check if sync is available. - $all_field_groups = acf_get_field_groups(); - foreach( $all_field_groups as $field_group ) { - - // Extract vars. - $local = acf_maybe_get( $field_group, 'local' ); - $modified = acf_maybe_get( $field_group, 'modified' ); - $private = acf_maybe_get( $field_group, 'private' ); - - // Ignore if is private. - if( $private ) { - continue; - - // Ignore not local "json". - } elseif( $local !== 'json' ) { - continue; - - // Append to sync if not yet in database. - } elseif( !$field_group['ID'] ) { - $this->sync[ $field_group['key'] ] = $field_group; - - // Append to sync if "json" modified time is newer than database. - } elseif( $modified && $modified > get_post_modified_time('U', true, $field_group['ID']) ) { - $this->sync[ $field_group['key'] ] = $field_group; - } - } - } - } - - /** - * Enqueues admin scripts. - * - * @date 18/4/20 - * @since 5.9.0 - * - * @param void - * @return void - */ - public function admin_enqueue_scripts() { - acf_enqueue_script( 'acf' ); - - // Localize text. - acf_localize_text(array( - 'Review local JSON changes' => __( 'Review local JSON changes', 'acf' ), - 'Loading diff' => __( 'Loading diff', 'acf' ), - 'Sync changes' => __( 'Sync changes', 'acf' ), - )); - } - - /** - * Modifies the admin body class. - * - * @date 18/4/20 - * @since 5.9.0 - * - * @param string $classes Space-separated list of CSS classes. - * @return string - */ - public function admin_body_class( $classes ) { - $classes .= ' acf-admin-field-groups'; - if( $this->view ) { - $classes .= " view-{$this->view}"; - } - return $classes; - } - - /** - * returns the disabled post state HTML. - * - * @date 17/4/20 - * @since 5.9.0 - * - * @param void - * @return string - */ - public function get_disabled_post_state() { - return ' ' . _x( 'Disabled', 'post status', 'acf' ); - } - - /** - * Adds the "disabled" post state for the admin table title. - * - * @date 1/4/20 - * @since 5.9.0 - * - * @param array $post_states An array of post display states. - * @param WP_Post $post The current post object. - * @return array - */ - public function display_post_states( $post_states, $post ) { - if( $post->post_status === 'acf-disabled' ) { - $post_states['acf-disabled'] = $this->get_disabled_post_state(); - } - return $post_states; - } - - /** - * Customizes the admin table columns. - * - * @date 1/4/20 - * @since 5.9.0 - * - * @param array $columns The columns array. - * @return array - */ - public function admin_table_columns( $_columns ) { - $columns = array( - 'cb' => $_columns['cb'], - 'title' => $_columns['title'], - 'acf-description' => __('Description', 'acf'), - 'acf-key' => __('Key', 'acf'), - 'acf-location' => __('Location', 'acf'), - 'acf-count' => __('Fields', 'acf'), - ); - if( acf_get_local_json_files() ) { - $columns['acf-json'] = __('Local JSON', 'acf'); - } - return $columns; - } - - /** - * Renders the admin table column HTML - * - * @date 1/4/20 - * @since 5.9.0 - * - * @param string $column_name The name of the column to display. - * @param int $post_id The current post ID. - * @return void - */ - public function admin_table_columns_html( $column_name, $post_id ) { - $field_group = acf_get_field_group( $post_id ); - if( $field_group ) { - $this->render_admin_table_column( $column_name, $field_group ); - } - } - - /** - * Renders a specific admin table column. - * - * @date 17/4/20 - * @since 5.9.0 - * - * @param string $column_name The name of the column to display. - * @param array $field_group The field group. - * @return void - */ - public function render_admin_table_column( $column_name, $field_group ) { - switch ( $column_name ) { - - // Key. - case 'acf-key': - echo esc_html( $field_group['key'] ); - break; - - // Description. - case 'acf-description': - if( $field_group['description'] ) { - echo '' . acf_esc_html( $field_group['description'] ) . ''; - } - break; - - // Location. - case 'acf-location': - $this->render_admin_table_column_locations( $field_group ); - break; - - // Count. - case 'acf-count': - echo esc_html( acf_get_field_count( $field_group ) ); - break; - - // Local JSON. - case 'acf-json': - $this->render_admin_table_column_local_status( $field_group ); - break; - } - } - - /** - * Displays a visual representation of the field group's locations. - * - * @date 1/4/20 - * @since 5.9.0 - * - * @param array $field_group The field group. - * @return void - */ - public function render_admin_table_column_locations( $field_group ) { - $objects = array(); - - // Loop over location rules and determine connected object types. - if( $field_group['location'] ) { - foreach( $field_group['location'] as $i => $rules ) { - - // Determine object types for each rule. - foreach( $rules as $j => $rule ) { - - // Get location type and subtype for the current rule. - $location = acf_get_location_rule( $rule['param'] ); - $location_object_type = ''; - $location_object_subtype = ''; - if( $location ) { - $location_object_type = $location->get_object_type( $rule ); - $location_object_subtype = $location->get_object_subtype( $rule ); - } - $rules[ $j ]['object_type'] = $location_object_type; - $rules[ $j ]['object_subtype'] = $location_object_subtype; - } - - // Now that each $rule conains object type data... - $object_types = array_column( $rules, 'object_type' ); - $object_types = array_filter( $object_types ); - $object_types = array_values( $object_types ); - if( $object_types ) { - $object_type = $object_types[0]; - } else { - continue; - } - - $object_subtypes = array_column( $rules, 'object_subtype' ); - $object_subtypes = array_filter( $object_subtypes ); - $object_subtypes = array_values( $object_subtypes ); - $object_subtypes = array_map('acf_array', $object_subtypes); - if( count($object_subtypes) > 1 ) { - $object_subtypes = call_user_func_array('array_intersect', $object_subtypes); - $object_subtypes = array_values( $object_subtypes ); - } elseif( $object_subtypes ) { - $object_subtypes = $object_subtypes[0]; - } else { - $object_subtypes = array( '' ); - } - - // Append to objects. - foreach( $object_subtypes as $object_subtype ) { - $object = acf_get_object_type( $object_type, $object_subtype ); - if( $object ) { - $objects[ $object->name ] = $object; - } - } - } - } - - // Reset keys. - $objects = array_values( $objects ); - - // Display. - $html = ''; - if( $objects ) { - $limit = 3; - $total = count( $objects ); - - // Icon. - $html .= ' '; - - // Labels. - $labels = array_column( $objects, 'label' ); - $labels = array_slice( $labels, 0, 3 ); - $html .= implode(', ', $labels ); - - // More. - if( $total > $limit ) { - $html .= ', ...'; - } - } else { - $html = ' ' . __( 'Various', 'acf' ); - } - - // Filter. - echo acf_esc_html( $html ); - } - - /** - * Returns a human readable file location. - * - * @date 17/4/20 - * @since 5.9.0 - * - * @param string $file The full file path. - * @return string - */ - public function get_human_readable_file_location( $file ) { - - // Generate friendly file path. - $theme_path = get_stylesheet_directory(); - if( strpos($file, $theme_path) !== false ) { - $rel_file = str_replace( $theme_path, '', $file ); - $located = sprintf( __('Located in theme: %s', 'acf'), $rel_file ); - - } elseif( strpos($file, WP_PLUGIN_DIR) !== false ) { - $rel_file = str_replace( WP_PLUGIN_DIR, '', $file ); - $located = sprintf( __('Located in plugin: %s', 'acf'), $rel_file ); - - } else { - $rel_file = str_replace( ABSPATH, '', $file ); - $located = sprintf( __('Located in: %s', 'acf'), $rel_file ); - } - return $located; - } - - /** - * Displays the local JSON status of a field group. - * - * @date 14/4/20 - * @since 5.9.0 - * - * @param type $var Description. Default. - * @return type Description. - */ - public function render_admin_table_column_local_status( $field_group ) { - $json = acf_get_local_json_files(); - if( isset( $json[ $field_group['key'] ] ) ) { - $file = $json[ $field_group['key'] ]; - if( isset($this->sync[ $field_group['key'] ]) ) { - $url = $this->get_admin_url( '&acfsync=' . $field_group['key'] . '&_wpnonce=' . wp_create_nonce('bulk-posts') ); - echo '' . __( 'Sync available', 'acf' ) . ''; - if( $field_group['ID'] ) { - echo ''; - } else { - echo ''; - } - } else { - echo __( 'Saved', 'acf' ); - } - } else { - echo '' . __( 'Awaiting save', 'acf' ) . ''; - } - } - - /** - * Customizes the page row actions visible on hover. - * - * @date 14/4/20 - * @since 5.9.0 - * - * @param array $actions The array of actions HTML. - * @param WP_Post $post The post. - * @return array - */ - public function page_row_actions( $actions, $post ) { - - // Remove "Quick Edit" action. - unset( $actions['inline'], $actions['inline hide-if-no-js'] ); - - // Append "Duplicate" action. - $duplicate_action_url = $this->get_admin_url( '&acfduplicate=' . $post->ID . '&_wpnonce=' . wp_create_nonce('bulk-posts') ); - $actions[ 'acfduplicate' ] = '' . __( 'Duplicate', 'acf' ) . ''; - - // Return actions in custom order. - $order = array( 'edit', 'acfduplicate', 'trash' ); - return array_merge( array_flip($order), $actions ); - } - - /** - * Modifies the admin table bulk actions dropdown. - * - * @date 15/4/20 - * @since 5.9.0 - * - * @param array $actions The actions array. - * @return array - */ - public function admin_table_bulk_actions( $actions ) { - - // Add "duplicate" action. - if( $this->view !== 'sync' ) { - $actions[ 'acfduplicate' ] = __( 'Duplicate', 'acf' ); - } - - // Add "Sync" action. - if( $this->sync ) { - if( $this->view === 'sync' ) { - $actions = array(); - } - $actions[ 'acfsync' ] = __( 'Sync changes', 'acf' ); - } - return $actions; - } - - /** - * Checks for the custom "duplicate" action. - * - * @date 15/4/20 - * @since 5.9.0 - * - * @param void - * @return void - */ - public function check_duplicate() { - - // Display notice on success redirect. - if( isset($_GET['acfduplicatecomplete']) ) { - $ids = array_map( 'intval', explode(',', $_GET['acfduplicatecomplete']) ); - - // Generate text. - $text = sprintf( - _n( 'Field group duplicated.', '%s field groups duplicated.', count($ids), 'acf' ), - count($ids) - ); - - // Append links to text. - $links = array(); - foreach( $ids as $id ) { - $links[] = '' . get_the_title( $id ) . ''; - } - $text .= ' ' . implode( ', ', $links ); - - // Add notice. - acf_add_admin_notice( $text, 'success' ); - return; - } - - // Find items to duplicate. - $ids = array(); - if( isset($_GET['acfduplicate']) ) { - $ids[] = intval( $_GET['acfduplicate'] ); - } elseif( isset($_GET['post'], $_GET['action2']) && $_GET['action2'] === 'acfduplicate' ) { - $ids = array_map( 'intval', $_GET['post'] ); - } - - if( $ids ) { - check_admin_referer('bulk-posts'); - - // Duplicate field groups and generate array of new IDs. - $new_ids = array(); - foreach( $ids as $id ) { - $field_group = acf_duplicate_field_group( $id ); - $new_ids[] = $field_group['ID']; - } - - // Redirect. - wp_redirect( $this->get_admin_url( '&acfduplicatecomplete=' . implode(',', $new_ids) ) ); - exit; - } - } - - /** - * Checks for the custom "acfsync" action. - * - * @date 15/4/20 - * @since 5.9.0 - * - * @param void - * @return void - */ - public function check_sync() { - - // Display notice on success redirect. - if( isset($_GET['acfsynccomplete']) ) { - $ids = array_map( 'intval', explode(',', $_GET['acfsynccomplete']) ); - - // Generate text. - $text = sprintf( - _n( 'Field group synchronised.', '%s field groups synchronised.', count($ids), 'acf' ), - count($ids) - ); - - // Append links to text. - $links = array(); - foreach( $ids as $id ) { - $links[] = '' . get_the_title( $id ) . ''; - } - $text .= ' ' . implode( ', ', $links ); - - // Add notice. - acf_add_admin_notice( $text, 'success' ); - return; - } - - // Find items to sync. - $keys = array(); - if( isset($_GET['acfsync']) ) { - $keys[] = sanitize_text_field( $_GET['acfsync'] ); - } elseif( isset($_GET['post'], $_GET['action2']) && $_GET['action2'] === 'acfsync' ) { - $keys = array_map( 'sanitize_text_field', $_GET['post'] ); - } - - if( $keys && $this->sync ) { - check_admin_referer('bulk-posts'); - - // Disabled "Local JSON" controller to prevent the .json file from being modified during import. - acf_update_setting( 'json', false ); - - // Sync field groups and generate array of new IDs. - $files = acf_get_local_json_files(); - $new_ids = array(); - foreach( $this->sync as $key => $field_group ) { - if( $field_group['key'] && in_array($field_group['key'], $keys) ) { - // Import. - } elseif( $field_group['ID'] && in_array($field_group['ID'], $keys) ) { - // Import. - } else { - // Ignore. - continue; - } - $local_field_group = json_decode( file_get_contents( $files[ $key ] ), true ); - $local_field_group['ID'] = $field_group['ID']; - $result = acf_import_field_group( $local_field_group ); - $new_ids[] = $result['ID']; - } - - // Redirect. - wp_redirect( $this->get_current_admin_url( '&acfsynccomplete=' . implode(',', $new_ids) ) ); - exit; - } - } - - /** - * Customizes the admin table subnav. - * - * @date 17/4/20 - * @since 5.9.0 - * - * @param array $views The available views. - * @return array - */ - public function admin_table_views( $views ) { - global $wp_list_table, $wp_query; - - // Count items. - $count = count( $this->sync ); - - // Append "sync" link to subnav. - if( $count ) { - $views['sync'] = sprintf( - '%s (%s)', - ( $this->view === 'sync' ? 'class="current"' : '' ), - esc_url( $this->get_admin_url( '&post_status=sync' ) ), - esc_html( __('Sync available', 'acf') ), - $count - ); - } - - // Modify table pagination args to match JSON data. - if( $this->view === 'sync' ) { - $wp_list_table->set_pagination_args( array( - 'total_items' => $count, - 'total_pages' => 1, - 'per_page' => $count - )); - $wp_query->post_count = 1; // At least one post is needed to render bulk drop-down. - } - return $views; - } - - /** - * Prints scripts into the admin footer. - * - * @date 20/4/20 - * @since 5.9.0 - * - * @param void - * @return void - */ - function admin_footer() { - ?> - - get_columns(); - $hidden = get_hidden_columns( $wp_list_table->screen ); - ?> -
                                -
                                  - - sync as $k => $field_group ) { - echo ''; - foreach( $columns as $column_name => $column_label ) { - $el = 'td'; - if( $column_name === 'cb' ) { - $el = 'th'; - $classes = 'check-column'; - $column_label = ''; - } elseif( $column_name === 'title' ) { - $classes = "$column_name column-$column_name column-primary"; - } else { - $classes = "$column_name column-$column_name"; - } - if( in_array( $column_name, $hidden, true ) ) { - $classes .= ' hidden'; - } - echo "<$el class=\"$classes\" data-colname=\"$column_label\">"; - switch ( $column_name ) { - - // Checkbox. - case 'cb': - echo ''; - echo ''; - break; - - // Title. - case 'title': - $post_state = ''; - if( !$field_group['active'] ) { - $post_state = ' — ' . $this->get_disabled_post_state() . ''; - } - echo '' . esc_html( $field_group['title']) . '' . $post_state . ''; - echo '
                                  ' . $this->get_human_readable_file_location( $field_group['local_file'] ) . '
                                  '; - echo ''; - break; - - // All other columns. - default: - $this->render_admin_table_column( $column_name, $field_group ); - break; - } - echo ""; - } - echo ''; - } - ?> - -
                                  -
                                  - - post_type}{$params}" ); + } + + /** + * Returns the post type admin URL taking into account the current view. + * + * @date 27/3/20 + * @since 5.9.0 + * + * @param string $params Extra URL params. + * @return string + */ + public function get_current_admin_url( $params = '' ) { + return $this->get_admin_url( ( $this->view ? '&post_status=' . $this->view : '' ) . $params ); + } + + /** + * Constructor for all ACF internal post type admin list pages. + * + * @date 21/07/2014 + * @since 5.0.0 + * + * @return void + */ + public function current_screen() { + // Bail early if not the list admin page. + if ( ! acf_is_screen( "edit-{$this->post_type}" ) ) { + return; + } + + // Get the current view. + $this->view = acf_request_arg( 'post_status', '' ); + + // Setup and check for custom actions. + $this->setup_sync(); + $this->check_sync(); + $this->check_duplicate(); + $this->check_activate(); + $this->check_deactivate(); + + // Modify publish post status text and order. + global $wp_post_statuses; + $wp_post_statuses['publish']->label_count = _n_noop( 'Active (%s)', 'Active (%s)', 'acf' ); + $wp_post_statuses['trash'] = acf_extract_var( $wp_post_statuses, 'trash' ); + + // Add hooks. + add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) ); + add_action( 'admin_body_class', array( $this, 'admin_body_class' ) ); + add_filter( "views_edit-{$this->post_type}", array( $this, 'admin_table_views' ), 10, 1 ); + add_filter( "manage_{$this->post_type}_posts_columns", array( $this, 'admin_table_columns' ), 10, 1 ); + add_action( "manage_{$this->post_type}_posts_custom_column", array( $this, 'admin_table_columns_html' ), 10, 2 ); + add_filter( 'display_post_states', array( $this, 'display_post_states' ), 10, 2 ); + add_filter( "bulk_actions-edit-{$this->post_type}", array( $this, 'admin_table_bulk_actions' ), 10, 1 ); + add_action( 'admin_footer', array( $this, 'admin_footer' ), 1 ); + + if ( $this->view !== 'trash' ) { + add_filter( 'page_row_actions', array( $this, 'page_row_actions' ), 10, 2 ); + } + + // Add hooks for "sync" view. + if ( $this->view === 'sync' ) { + add_action( 'admin_footer', array( $this, 'admin_footer__sync' ), 1 ); + } + } + + /** + * Sets up the field groups ready for sync. + * + * @date 17/4/20 + * @since 5.9.0 + * + * @return void + */ + public function setup_sync() { + // Review local json files. + if ( acf_get_local_json_files( $this->post_type ) ) { + + // Get all posts in a single cached query to check if sync is available. + $all_posts = acf_get_internal_post_type_posts( $this->post_type ); + foreach ( $all_posts as $post ) { + + // Extract vars. + $local = acf_maybe_get( $post, 'local' ); + $modified = acf_maybe_get( $post, 'modified' ); + $private = acf_maybe_get( $post, 'private' ); + + // Ignore if is private. + if ( $private ) { + continue; + + // Ignore not local "json". + } elseif ( $local !== 'json' ) { + continue; + + // Append to sync if not yet in database. + } elseif ( ! $post['ID'] ) { + $this->sync[ $post['key'] ] = $post; + + // Append to sync if "json" modified time is newer than database. + } elseif ( $modified && $modified > get_post_modified_time( 'U', true, $post['ID'] ) ) { + $this->sync[ $post['key'] ] = $post; + } + } + } + } + + /** + * Enqueues admin scripts. + * + * @date 18/4/20 + * @since 5.9.0 + * + * @return void + */ + public function admin_enqueue_scripts() { + acf_enqueue_script( 'acf' ); + + acf_localize_text( + array( + 'Review local JSON changes' => __( 'Review local JSON changes', 'acf' ), + 'Loading diff' => __( 'Loading diff', 'acf' ), + 'Sync changes' => __( 'Sync changes', 'acf' ), + ) + ); + } + + /** + * Modifies the admin body class. + * + * @date 18/4/20 + * @since 5.9.0 + * + * @param string $classes Space-separated list of CSS classes. + * @return string + */ + public function admin_body_class( $classes ) { + $classes .= ' acf-admin-page acf-internal-post-type ' . esc_attr( $this->admin_body_class ); + + if ( $this->view ) { + $classes .= ' view-' . esc_attr( $this->view ); + } + + return $classes; + } + + /** + * Returns the disabled post state HTML. + * + * @since 5.9.0 + * + * @return string + */ + public function get_disabled_post_state() { + return ' ' . _x( 'Inactive', 'post status', 'acf' ); + } + + /** + * Returns the registration error state. + * + * @since 6.1 + * + * @return string + */ + public function get_registration_error_state() { + return ' ' . _x( 'Registration Failed', 'post status', 'acf' ); + } + + /** + * Adds the "disabled" post state for the admin table title. + * + * @date 1/4/20 + * @since 5.9.0 + * + * @param array $post_states An array of post display states. + * @param WP_Post $post The current post object. + * @return array + */ + public function display_post_states( $post_states, $post ) { + if ( $post->post_status === 'acf-disabled' ) { + $post_states['acf-disabled'] = $this->get_disabled_post_state(); + } + + // Check the post store to see if this failed registration. + if ( ! empty( $this->store ) && ! empty( $post->ID ) ) { + $store = acf_get_store( $this->store ); + $store_item = $store->get( $post->ID ); + if ( ! empty( $store_item ) && ! empty( $store_item['not_registered'] ) ) { + $post_states['acf-registration-warning'] = $this->get_registration_error_state(); + } + } + + return $post_states; + } + + /** + * Get the HTML for when there are no post objects found. + * + * @since 6.0.0 + * + * @return string + */ + public function get_not_found_html() { + ob_start(); + acf_get_view( $this->post_type . '/list-empty' ); + return ob_get_clean(); + } + + /** + * Customizes the admin table columns. + * + * @date 1/4/20 + * @since 5.9.0 + * + * @param array $_columns The columns array. + * @return array + */ + public function admin_table_columns( $_columns ) { + return $_columns; + } + + /** + * Renders the admin table column HTML + * + * @date 1/4/20 + * @since 5.9.0 + * + * @param string $column_name The name of the column to display. + * @param int $post_id The current post ID. + * @return void + */ + public function admin_table_columns_html( $column_name, $post_id ) { + $post = acf_get_internal_post_type( $post_id, $this->post_type ); + + if ( $post ) { + $this->render_admin_table_column( $column_name, $post ); + } + } + + /** + * Renders a specific admin table column. + * + * @date 17/4/20 + * @since 5.9.0 + * + * @param string $column_name The name of the column to display. + * @param array $post The main ACF post array. + * @return void + */ + public function render_admin_table_column( $column_name, $post ) {} + + /** + * Returns a human-readable file location. + * + * @date 17/4/20 + * @since 5.9.0 + * + * @param string $file The full file path. + * @return string + */ + public function get_human_readable_file_location( $file ) { + // Generate friendly file path. + $theme_path = get_stylesheet_directory(); + if ( strpos( $file, $theme_path ) !== false ) { + $rel_file = str_replace( $theme_path, '', $file ); + $located = sprintf( __( 'Located in theme: %s', 'acf' ), $rel_file ); + } elseif ( strpos( $file, WP_PLUGIN_DIR ) !== false ) { + $rel_file = str_replace( WP_PLUGIN_DIR, '', $file ); + $located = sprintf( __( 'Located in plugin: %s', 'acf' ), $rel_file ); + } else { + $rel_file = str_replace( ABSPATH, '', $file ); + $located = sprintf( __( 'Located in: %s', 'acf' ), $rel_file ); + } + + return $located; + } + + /** + * Displays the local JSON status of an ACF post. + * + * @date 14/4/20 + * @since 5.9.0 + * + * @param array $post The main ACF post array. + * @return void + */ + public function render_admin_table_column_local_status( $post ) { + $json = acf_get_local_json_files( $this->post_type ); + if ( isset( $json[ $post['key'] ] ) ) { + if ( isset( $this->sync[ $post['key'] ] ) ) { + $url = $this->get_admin_url( '&acfsync=' . $post['key'] . '&_wpnonce=' . wp_create_nonce( 'bulk-posts' ) ); + echo '' . __( 'Sync available', 'acf' ) . ''; + if ( $post['ID'] ) { + echo ''; + } else { + echo ''; + } + } else { + echo __( 'Saved', 'acf' ); + } + } else { + echo '' . __( 'Awaiting save', 'acf' ) . ''; + } + } + + /** + * Customizes the page row actions visible on hover. + * + * @date 14/4/20 + * @since 5.9.0 + * + * @param array $actions The array of actions HTML. + * @param WP_Post $post The post. + * @return array + */ + public function page_row_actions( $actions, $post ) { + + // Remove "Quick Edit" action. + unset( $actions['inline'], $actions['inline hide-if-no-js'] ); + + // Append "Duplicate" action. + // TODO: We'll likely have to add support for CPTs/Taxonomies! + if ( 'acf-field-group' === $this->post_type ) { + $duplicate_action_url = $this->get_admin_url( '&acfduplicate=' . $post->ID . '&_wpnonce=' . wp_create_nonce( 'bulk-posts' ) ); + $actions['acfduplicate'] = '' . __( 'Duplicate', 'acf' ) . ''; + } + + // Append the "Activate" or "Deactivate" actions. + if ( 'acf-disabled' === $post->post_status ) { + $activate_deactivate_action = 'acfactivate'; + $activate_action_url = $this->get_admin_url( '&acfactivate=' . $post->ID . '&_wpnonce=' . wp_create_nonce( 'bulk-posts' ) ); + $actions['acfactivate'] = '' . __( 'Activate', 'acf' ) . ''; + } else { + $activate_deactivate_action = 'acfdeactivate'; + $deactivate_action_url = $this->get_admin_url( '&acfdeactivate=' . $post->ID . '&_wpnonce=' . wp_create_nonce( 'bulk-posts' ) ); + $actions['acfdeactivate'] = '' . __( 'Deactivate', 'acf' ) . ''; + } + + // Return actions in custom order. + // TODO: We'll likely have to add support for CPTs/Taxonomies! + if ( 'acf-field-group' === $this->post_type ) { + $order = array( 'edit', 'acfduplicate', $activate_deactivate_action, 'trash' ); + } else { + $order = array( 'edit', $activate_deactivate_action, 'trash' ); + } + + return array_merge( array_flip( $order ), $actions ); + } + + /** + * Modifies the admin table bulk actions dropdown. + * + * @date 15/4/20 + * @since 5.9.0 + * + * @param array $actions The actions array. + * @return array + */ + public function admin_table_bulk_actions( $actions ) { + if ( ! in_array( $this->view, array( 'sync', 'trash' ), true ) ) { + // TODO: We'll likely have to add support for CPTs/Taxonomies! + if ( 'acf-field-group' === $this->post_type ) { + $actions['acfduplicate'] = __( 'Duplicate', 'acf' ); + } + + $actions['acfactivate'] = __( 'Activate', 'acf' ); + $actions['acfdeactivate'] = __( 'Deactivate', 'acf' ); + } + + if ( $this->sync ) { + if ( $this->view === 'sync' ) { + $actions = array(); + } + $actions['acfsync'] = __( 'Sync changes', 'acf' ); + } + + return $actions; + } + + /** + * Gets the translated action notice text for list table actions (activate, deactivate, sync, etc.). + * + * @since 6.1 + * + * @param string $action The action being performed. + * @param int $count The number of items the action was performed on. + * @return string + */ + public function get_action_notice_text( $action, $count = 1 ) { + return ''; + } + + /** + * Checks for the custom "Activate" bulk action. + * + * @since 6.0 + */ + public function check_activate() { + // phpcs:disable WordPress.Security.NonceVerification.Recommended -- Used for redirect notice. + // Display notice on success redirect. + if ( isset( $_GET['acfactivatecomplete'] ) ) { + $ids = array_map( 'intval', explode( ',', $_GET['acfactivatecomplete'] ) ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- Sanitized with intval(). + // phpcs:enable WordPress.Security.NonceVerification.Recommended + // Generate text. + $text = $this->get_action_notice_text( 'acfactivatecomplete', count( $ids ) ); + + // Append links to text. + $links = array(); + foreach ( $ids as $id ) { + $links[] = '' . get_the_title( $id ) . ''; + } + $text .= ' ' . implode( ', ', $links ); + + // Add notice. + acf_add_admin_notice( $text, 'success' ); + return; + } + + // Find items to activate. + $ids = array(); + if ( isset( $_GET['acfactivate'] ) ) { + $ids[] = intval( $_GET['acfactivate'] ); + } elseif ( isset( $_GET['post'], $_GET['action2'] ) && $_GET['action2'] === 'acfactivate' ) { + $ids = array_map( 'intval', $_GET['post'] ); + } + + if ( $ids ) { + check_admin_referer( 'bulk-posts' ); + + // Activate the field groups and return an array of IDs that were activated. + $new_ids = array(); + foreach ( $ids as $id ) { + $post_type = get_post_type( $id ); + if ( $post_type && acf_update_internal_post_type_active_status( $id, true, $post_type ) ) { + $new_ids[] = $id; + } + } + + wp_safe_redirect( $this->get_admin_url( '&acfactivatecomplete=' . implode( ',', $new_ids ) ) ); + exit; + } + } + + /** + * Checks for the custom "Deactivate" bulk action. + * + * @since 6.0 + */ + public function check_deactivate() { + // phpcs:disable WordPress.Security.NonceVerification.Recommended -- Used for redirect notice. + // Display notice on success redirect. + if ( isset( $_GET['acfdeactivatecomplete'] ) ) { + $ids = array_map( 'intval', explode( ',', $_GET['acfdeactivatecomplete'] ) ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- Sanitized with intval(). + // phpcs:enable WordPress.Security.NonceVerification.Recommended + // Generate text. + $text = $this->get_action_notice_text( 'acfdeactivatecomplete', count( $ids ) ); + + // Append links to text. + $links = array(); + foreach ( $ids as $id ) { + $links[] = '' . get_the_title( $id ) . ''; + } + $text .= ' ' . implode( ', ', $links ); + + // Add notice. + acf_add_admin_notice( $text, 'success' ); + return; + } + + // Find items to activate. + $ids = array(); + if ( isset( $_GET['acfdeactivate'] ) ) { + $ids[] = intval( $_GET['acfdeactivate'] ); + } elseif ( isset( $_GET['post'], $_GET['action2'] ) && $_GET['action2'] === 'acfdeactivate' ) { + $ids = array_map( 'intval', $_GET['post'] ); + } + + if ( $ids ) { + check_admin_referer( 'bulk-posts' ); + + // Activate the field groups and return an array of IDs. + $new_ids = array(); + foreach ( $ids as $id ) { + $post_type = get_post_type( $id ); + if ( $post_type && acf_update_internal_post_type_active_status( $id, false, $post_type ) ) { + $new_ids[] = $id; + } + } + + wp_safe_redirect( $this->get_admin_url( '&acfdeactivatecomplete=' . implode( ',', $new_ids ) ) ); + exit; + } + } + + /** + * Checks for the custom "duplicate" action. + * + * @date 15/4/20 + * @since 5.9.0 + * + * @return void + */ + public function check_duplicate() { + // phpcs:disable WordPress.Security.NonceVerification.Recommended -- Used for redirect notice. + // Display notice on success redirect. + if ( isset( $_GET['acfduplicatecomplete'] ) ) { + $ids = array_map( 'intval', explode( ',', $_GET['acfduplicatecomplete'] ) ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- Sanitized with intval(). + // phpcs:enable WordPress.Security.NonceVerification.Recommended + // Generate text. + $text = $this->get_action_notice_text( 'acfduplicatecomplete', count( $ids ) ); + + // Append links to text. + $links = array(); + foreach ( $ids as $id ) { + $links[] = '' . get_the_title( $id ) . ''; + } + $text .= ' ' . implode( ', ', $links ); + + // Add notice. + acf_add_admin_notice( $text, 'success' ); + return; + } + + // Find items to duplicate. + $ids = array(); + if ( isset( $_GET['acfduplicate'] ) ) { + $ids[] = intval( $_GET['acfduplicate'] ); + } elseif ( isset( $_GET['post'], $_GET['action2'] ) && $_GET['action2'] === 'acfduplicate' ) { + $ids = array_map( 'intval', $_GET['post'] ); + } + + if ( $ids ) { + check_admin_referer( 'bulk-posts' ); + + // Duplicate field groups and generate array of new IDs. + $new_ids = array(); + foreach ( $ids as $id ) { + $field_group = acf_duplicate_field_group( $id ); + $new_ids[] = $field_group['ID']; + } + + // Redirect. + wp_safe_redirect( $this->get_admin_url( '&acfduplicatecomplete=' . implode( ',', $new_ids ) ) ); + exit; + } + } + + /** + * Checks for the custom "acfsync" action. + * + * @date 15/4/20 + * @since 5.9.0 + * + * @return void + */ + public function check_sync() { + // phpcs:disable WordPress.Security.NonceVerification.Recommended + // Display notice on success redirect. + if ( isset( $_GET['acfsynccomplete'] ) ) { + $ids = array_map( 'intval', explode( ',', $_GET['acfsynccomplete'] ) ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- Sanitized with intval(). + // phpcs:enable WordPress.Security.NonceVerification.Recommended + // Generate text. + $text = $this->get_action_notice_text( 'acfsynccomplete', count( $ids ) ); + + // Append links to text. + $links = array(); + foreach ( $ids as $id ) { + $links[] = '' . get_the_title( $id ) . ''; + } + $text .= ' ' . implode( ', ', $links ); + + // Add notice. + acf_add_admin_notice( $text, 'success' ); + return; + } + + // Find items to sync. + $keys = array(); + if ( isset( $_GET['acfsync'] ) ) { + $keys[] = sanitize_text_field( $_GET['acfsync'] ); + } elseif ( isset( $_GET['post'], $_GET['action2'] ) && $_GET['action2'] === 'acfsync' ) { + $keys = array_map( 'sanitize_text_field', $_GET['post'] ); + } + + if ( $keys && $this->sync ) { + check_admin_referer( 'bulk-posts' ); + + // Disabled "Local JSON" controller to prevent the .json file from being modified during import. + acf_update_setting( 'json', false ); + + // Sync field groups and generate array of new IDs. + $files = acf_get_local_json_files( $this->post_type ); + $new_ids = array(); + foreach ( $this->sync as $key => $post ) { + if ( $post['key'] && in_array( $post['key'], $keys ) ) { + // Import. + } elseif ( $post['ID'] && in_array( $post['ID'], $keys ) ) { + // Import. + } else { + // Ignore. + continue; + } + $local_post = json_decode( file_get_contents( $files[ $key ] ), true ); + $local_post['ID'] = $post['ID']; + $result = acf_import_internal_post_type( $local_post, $this->post_type ); + $new_ids[] = $result['ID']; + } + + // Redirect. + wp_safe_redirect( $this->get_current_admin_url( '&acfsynccomplete=' . implode( ',', $new_ids ) ) ); + exit; + } + } + + /** + * Customizes the admin table subnav. + * + * @date 17/4/20 + * @since 5.9.0 + * + * @param array $views The available views. + * @return array + */ + public function admin_table_views( $views ) { + global $wp_list_table, $wp_query; + + // Count items. + $count = count( $this->sync ); + + // Append "sync" link to subnav. + if ( $count ) { + $views['sync'] = sprintf( + '%s (%s)', + ( $this->view === 'sync' ? 'class="current"' : '' ), + esc_url( $this->get_admin_url( '&post_status=sync' ) ), + esc_html( __( 'Sync available', 'acf' ) ), + $count + ); + } + + // Modify table pagination args to match JSON data. + if ( $this->view === 'sync' ) { + $wp_list_table->set_pagination_args( + array( + 'total_items' => $count, + 'total_pages' => 1, + 'per_page' => $count, + ) + ); + $wp_query->post_count = 1; // At least one post is needed to render bulk drop-down. + } + return $views; + } + + /** + * Prints scripts into the admin footer. + * + * @date 20/4/20 + * @since 5.9.0 + * + * @return void + */ + public function admin_footer() { + ?> + + get_columns(); + $hidden = get_hidden_columns( $wp_list_table->screen ); + ?> +
                                  + + + sync as $k => $field_group ) { + echo ''; + foreach ( $columns as $column_name => $column_label ) { + $el = 'td'; + if ( $column_name === 'cb' ) { + $el = 'th'; + $classes = 'check-column'; + $column_label = ''; + } elseif ( $column_name === 'title' ) { + $classes = "$column_name column-$column_name column-primary"; + } else { + $classes = "$column_name column-$column_name"; + } + if ( in_array( $column_name, $hidden, true ) ) { + $classes .= ' hidden'; + } + echo "<$el class=\"$classes\" data-colname=\"$column_label\">"; + switch ( $column_name ) { + + // Checkbox. + case 'cb': + echo ''; + echo ''; + break; + + // Title. + case 'title': + $post_state = ''; + if ( ! $field_group['active'] ) { + $post_state = ' — ' . $this->get_disabled_post_state() . ''; + } + echo '' . esc_html( $field_group['title'] ) . '' . $post_state . ''; + echo '
                                  ' . $this->get_human_readable_file_location( $field_group['local_file'] ) . '
                                  '; + echo ''; + break; + + // All other columns. + default: + $this->render_admin_table_column( $column_name, $field_group ); + break; + } + echo ""; + } + echo ''; + } + ?> + +
                                  +
                                  + + post_type ) { + acf_trash_internal_post_type( $post_id, $this->post_type ); + } + } + + /** + * Fires when untrashing an internal post type. + * + * @date 8/01/2014 + * @since 5.0.0 + * + * @param int $post_id The post ID. + * @return void + */ + public function untrashed_post( $post_id ) { + if ( get_post_type( $post_id ) === $this->post_type ) { + acf_untrash_internal_post_type( $post_id, $this->post_type ); + } + } + + /** + * Fires when deleting an internal post type. + * + * @date 8/01/2014 + * @since 5.0.0 + * + * @param int $post_id The post ID. + * @return void + */ + public function deleted_post( $post_id ) { + if ( get_post_type( $post_id ) === $this->post_type ) { + acf_delete_internal_post_type( $post_id, $this->post_type ); + } + } + + } + +endif; // Class exists check. diff --git a/includes/admin/admin-internal-post-type.php b/includes/admin/admin-internal-post-type.php new file mode 100644 index 0000000..d5c7b0f --- /dev/null +++ b/includes/admin/admin-internal-post-type.php @@ -0,0 +1,350 @@ +post_type, array( $this, 'save_post' ), 10, 2 ); + add_action( 'wp_ajax_acf/link_field_groups', array( $this, 'ajax_link_field_groups' ) ); + add_filter( 'post_updated_messages', array( $this, 'post_updated_messages' ) ); + add_filter( 'use_block_editor_for_post_type', array( $this, 'use_block_editor_for_post_type' ), 10, 2 ); + } + + /** + * Prevents the block editor from loading when editing an ACF field group. + * + * @since 5.8.0 + * + * @param bool $use_block_editor Whether the post type can be edited or not. Default true. + * @param string $post_type The post type being checked. + * @return bool + */ + public function use_block_editor_for_post_type( $use_block_editor, $post_type ) { + if ( $post_type === $this->post_type ) { + return false; + } + + return $use_block_editor; + } + + /** + * This function will customize the message shown when editing a field group + * + * @since 5.0.0 + * + * @param array $messages Post type messages. + * @return array + */ + public function post_updated_messages( $messages ) { + return $messages; + } + + /** + * This function is fired when loading the admin page before HTML has been rendered. + * + * @since 5.0.0 + * + * @return void + */ + public function current_screen() { + if ( ! acf_is_screen( $this->post_type ) ) { + return; + } + + acf_disable_filters(); + acf_enqueue_scripts(); + + add_action( 'admin_body_class', array( $this, 'admin_body_class' ) ); + add_action( 'acf/input/admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) ); + add_action( 'acf/input/admin_head', array( $this, 'admin_head' ) ); + add_action( 'acf/input/form_data', array( $this, 'form_data' ) ); + add_action( 'acf/input/admin_footer', array( $this, 'admin_footer' ) ); + + add_filter( 'acf/input/admin_l10n', array( $this, 'admin_l10n' ) ); + } + + /** + * Modifies the admin body class. + * + * @since 6.0.0 + * + * @param string $classes Space-separated list of CSS classes. + * @return string + */ + public function admin_body_class( $classes ) { + return $classes . ' acf-admin-page acf-internal-post-type ' . esc_attr( $this->admin_body_class ); + } + + /** + * Enqueues any scripts necessary for internal post type. + * + * @since 5.0.0 + * + * @return void + */ + public function admin_enqueue_scripts() { + wp_enqueue_script( 'acf-internal-post-type' ); + + wp_dequeue_script( 'autosave' ); + wp_enqueue_style( $this->post_type ); + wp_enqueue_script( $this->post_type ); + } + + /** + * Set up functionality for the field group edit page. + * + * @since 3.1.8 + * + * @return void + */ + public function admin_head() { + // Override as necessary. + } + + /** + * Adds extra HTML to the acf form data element. + * + * @since 5.3.8 + * + * @param array $args Arguments array to pass through to action. + * @return void + */ + public function form_data( $args ) { + // Override as necessary. + } + + /** + * Admin footer third party hook support + * + * @since 5.3.2 + * + * @return void + */ + public function admin_footer() { + // Override as necessary. + } + + /** + * This function will append extra l10n strings to the acf JS object + * + * @since 5.3.8 + * + * @param array $l10n The array of translated strings. + * @return array $l10n + */ + public function admin_l10n( $l10n ) { + // Override as necessary. + } + + /** + * Ran during the `save_post` hook to verify that the post should be saved. + * + * @since 6.1 + * + * @param int $post_id The ID of the post being saved. + * @param WP_Post $post The post object. + * + * @return bool + */ + public function verify_save_post( $post_id, $post ) { + // Do not save if this is an auto save routine. + if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) { + return false; + } + + // Bail early if not an ACF internal post type. + if ( $post->post_type !== $this->post_type ) { + return false; + } + + // Only save once! WordPress saves a revision as well. + if ( wp_is_post_revision( $post_id ) ) { + return false; + } + + // Verify nonce. + $nonce_name = str_replace( + array( 'acf-', '-' ), + array( '', '_' ), + $this->post_type + ); + + if ( ! acf_verify_nonce( $nonce_name ) ) { + return false; + } + + // Bail early if request came from an unauthorised user. + if ( ! current_user_can( acf_get_setting( 'capability' ) ) ) { + return false; + } + + return true; + } + + /** + * Powers the modal for linking field groups to newly-created CPTs/taxonomies. + * + * @since 6.1 + * + * @return void + */ + public function ajax_link_field_groups() { + // Disable filters to ensure ACF loads raw data from DB. + acf_disable_filters(); + + // phpcs:disable WordPress.Security.NonceVerification.Missing + $args = acf_parse_args( + $_POST, + array( + 'nonce' => '', + 'post_id' => 0, + 'field_groups' => array(), + ) + ); + // phpcs:enable WordPress.Security.NonceVerification.Missing + + // Verify nonce and user capability. + if ( ! wp_verify_nonce( $args['nonce'], 'acf_nonce' ) || ! acf_current_user_can_admin() || ! $args['post_id'] ) { + die(); + } + + $post_type = get_post_type( $args['post_id'] ); + $saved_post = acf_get_internal_post_type( $args['post_id'], $post_type ); + + // Link the selected field groups. + if ( is_array( $args['field_groups'] ) && ! empty( $args['field_groups'] ) && $saved_post ) { + foreach ( $args['field_groups'] as $field_group_id ) { + $field_group = acf_get_field_group( $field_group_id ); + + if ( ! is_array( $field_group ) ) { + continue; + } + + $field_group['location'][] = array( + array( + 'param' => 'acf-post-type' === $post_type ? 'post_type' : 'taxonomy', + 'operator' => '==', + 'value' => 'acf-post-type' === $post_type ? $saved_post['post_type'] : $saved_post['taxonomy'], + ), + ); + + acf_update_field_group( $field_group ); + } + + ob_start(); + ?> + +
                                  + +
                                  + $content ) ); + } + + // Render the field group select. + $field_groups = acf_get_field_groups(); + $choices = array(); + + if ( ! empty( $field_groups ) ) { + foreach ( $field_groups as $field_group ) { + if ( ! $field_group['ID'] ) { + continue; + } + + $choices[ $field_group['ID'] ] = $field_group['title']; + } + } + + $field = acf_get_valid_field( + array( + 'type' => 'select', + 'name' => 'acf_field_groups', + 'choices' => $choices, + 'aria-label' => __( 'Please select the field groups to link.', 'acf' ), + 'placeholder' => __( 'Select one or many field groups...', 'acf' ), + 'instructions' => __( 'Field group(s)', 'acf' ), + 'ui' => true, + 'multiple' => true, + 'allow_null' => true, + ) + ); + + ob_start(); + ?> + + $content, + 'title' => $title, + ) + ); + } + + } + +endif; // Class exists check. diff --git a/includes/admin/admin-notices.php b/includes/admin/admin-notices.php index b6ffdf5..c2ec986 100644 --- a/includes/admin/admin-notices.php +++ b/includes/admin/admin-notices.php @@ -1,15 +1,17 @@ - '', - - /** @type string Optional HTML alternative to text. - 'html' => '', */ - - /** @type string The type of notice (warning, error, success, info). */ - 'type' => 'info', - - /** @type bool If the notice can be dismissed. */ - 'dismissible' => true, - ); - - /** - * render - * - * Renders the notice HTML. - * - * @date 27/12/18 - * @since 5.8.0 - * - * @param void - * @return void - */ - function render() { - - // Ensure text contains punctuation. - // todo: Remove this after updating translations. - $text = $this->get('text'); - if( substr($text, -1) !== '.' && substr($text, -1) !== '>' ) { - $text .= '.'; - } - - // Print HTML. - printf('
                                  %s
                                  ', - - // Type class. - $this->get('type'), - - // Dismissible class. - $this->get('dismissible') ? 'is-dismissible' : '', - - // InnerHTML - $this->has('html') ? $this->get('html') : wpautop($text) + class ACF_Admin_Notice extends ACF_Data { + + /** @var array Storage for data. */ + var $data = array( + + /** @type string Text displayed in notice. */ + 'text' => '', + + /** @type string The type of notice (warning, error, success, info). */ + 'type' => 'info', + + /** @type bool If the notice can be dismissed. */ + 'dismissible' => true, + + /** @type bool If the dismissed state should be persisted to ACF user preferences. */ + 'persisted' => false, ); + + /** + * render + * + * Renders the notice HTML. + * + * @date 27/12/18 + * @since 5.8.0 + * + * @param void + * @return void + */ + function render() { + $notice_text = $this->get( 'text' ); + $notice_type = $this->get( 'type' ); + $is_dismissible = $this->get( 'dismissible' ); + $is_persisted = $this->get( 'persisted' ); + + printf( + '
                                  %s
                                  ', + esc_attr( $notice_type ), + $is_dismissible ? 'is-dismissible' : '', + $is_persisted ? 'true' : 'false', + esc_attr( md5( $notice_text ) ), + acf_esc_html( wpautop( acf_punctify( $notice_text ) ) ) + ); + } } -} endif; // class_exists check /** -* acf_new_admin_notice -* -* Instantiates and returns a new model. -* -* @date 23/12/18 -* @since 5.8.0 -* -* @param array $data Optional data to set. -* @return ACF_Admin_Notice -*/ + * acf_new_admin_notice + * + * Instantiates and returns a new model. + * + * @date 23/12/18 + * @since 5.8.0 + * + * @param array $data Optional data to set. + * @return ACF_Admin_Notice + */ function acf_new_admin_notice( $data = false ) { - + // Create notice. $instance = new ACF_Admin_Notice( $data ); - + // Register notice. acf_get_store( 'notices' )->set( $instance->cid, $instance ); - + // Return notice. return $instance; } @@ -107,40 +102,49 @@ function acf_new_admin_notice( $data = false ) { * * Renders all admin notices HTML. * - * @date 10/1/19 - * @since 5.7.10 + * @date 10/1/19 + * @since 5.7.10 * - * @param void - * @return void + * @param void + * @return void */ function acf_render_admin_notices() { - + // Get notices. $notices = acf_get_store( 'notices' )->get_data(); - + // Loop over notices and render. - if( $notices ) { - foreach( $notices as $notice ) { + if ( $notices ) { + foreach ( $notices as $notice ) { $notice->render(); } } } // Render notices during admin action. -add_action('admin_notices', 'acf_render_admin_notices', 99); +add_action( 'admin_notices', 'acf_render_admin_notices', 99 ); /** * acf_add_admin_notice * * Creates and returns a new notice. * - * @date 17/10/13 - * @since 5.0.0 + * @date 17/10/13 + * @since 5.0.0 * - * @param string $text The admin notice text. - * @param string $class The type of notice (warning, error, success, info). - * @return ACF_Admin_Notice + * @param string $text The admin notice text. + * @param string $class The type of notice (warning, error, success, info). + * @param boolean $dismissable Is this notification dismissible (default true) (since 5.11.0) + * @param boolean $persisted Store once a notice has been dismissed per user and prevent showing it again. (since 6.1.0) + * @return ACF_Admin_Notice */ -function acf_add_admin_notice( $text = '', $type = 'info' ) { - return acf_new_admin_notice( array( 'text' => $text, 'type' => $type ) ); -} \ No newline at end of file +function acf_add_admin_notice( $text = '', $type = 'info', $dismissible = true, $persisted = false ) { + return acf_new_admin_notice( + array( + 'text' => $text, + 'type' => $type, + 'dismissible' => $dismissible, + 'persisted' => $persisted, + ) + ); +} diff --git a/includes/admin/admin-tools.php b/includes/admin/admin-tools.php index c081fb0..364ea10 100644 --- a/includes/admin/admin-tools.php +++ b/includes/admin/admin-tools.php @@ -1,292 +1,298 @@ -tools[ $instance->name ] = $instance; - - } - - - /** - * get_tool - * - * This function will return a tool tool class - * - * @date 10/10/17 - * @since 5.6.3 - * - * @param string $name - * @return n/a - */ - - function get_tool( $name ) { - - return isset( $this->tools[$name] ) ? $this->tools[$name] : null; - - } - - - /** - * get_tools - * - * This function will return an array of all tools - * - * @date 10/10/17 - * @since 5.6.3 - * - * @param n/a - * @return array - */ - - function get_tools() { - - return $this->tools; - - } - - - /* - * admin_menu - * - * This function will add the ACF menu item to the WP admin - * - * @type action (admin_menu) - * @date 28/09/13 - * @since 5.0.0 - * - * @param n/a - * @return n/a - */ - - function admin_menu() { - - // bail early if no show_admin - if( !acf_get_setting('show_admin') ) return; - - - // add page - $page = add_submenu_page('edit.php?post_type=acf-field-group', __('Tools','acf'), __('Tools','acf'), acf_get_setting('capability'), 'acf-tools', array($this, 'html')); - - - // actions - add_action('load-' . $page, array($this, 'load')); - - } - - - /** - * load - * - * description - * - * @date 10/10/17 - * @since 5.6.3 - * - * @param n/a - * @return n/a - */ - - function load() { - - // disable filters (default to raw data) - acf_disable_filters(); - - - // include tools - $this->include_tools(); - - - // check submit - $this->check_submit(); - - - // load acf scripts - acf_enqueue_scripts(); - - } - - - /** - * include_tools - * - * description - * - * @date 10/10/17 - * @since 5.6.3 - * - * @param n/a - * @return n/a - */ - - function include_tools() { - - // include - acf_include('includes/admin/tools/class-acf-admin-tool.php'); - acf_include('includes/admin/tools/class-acf-admin-tool-export.php'); - acf_include('includes/admin/tools/class-acf-admin-tool-import.php'); - - - // action - do_action('acf/include_admin_tools'); - - } - - - /** - * check_submit - * - * description - * - * @date 10/10/17 - * @since 5.6.3 - * - * @param n/a - * @return n/a - */ - - function check_submit() { - - // loop - foreach( $this->get_tools() as $tool ) { - - // load - $tool->load(); - - - // submit - if( acf_verify_nonce($tool->name) ) { - $tool->submit(); + + /** @var array Contains an array of admin tool instances */ + var $tools = array(); + + + /** @var string The active tool */ + var $active = ''; + + + /** + * __construct + * + * This function will setup the class functionality + * + * @date 10/10/17 + * @since 5.6.3 + * + * @param n/a + * @return n/a + */ + + function __construct() { + + // actions + add_action( 'admin_menu', array( $this, 'admin_menu' ), 15 ); + + } + + /** + * register_tool + * + * This function will store a tool tool class + * + * @date 10/10/17 + * @since 5.6.3 + * + * @param string $class + * @return n/a + */ + + function register_tool( $class ) { + + $instance = new $class(); + $this->tools[ $instance->name ] = $instance; + + } + + + /** + * get_tool + * + * This function will return a tool tool class + * + * @date 10/10/17 + * @since 5.6.3 + * + * @param string $name + * @return n/a + */ + + function get_tool( $name ) { + + return isset( $this->tools[ $name ] ) ? $this->tools[ $name ] : null; + + } + + + /** + * get_tools + * + * This function will return an array of all tools + * + * @date 10/10/17 + * @since 5.6.3 + * + * @param n/a + * @return array + */ + + function get_tools() { + + return $this->tools; + + } + + + /* + * admin_menu + * + * This function will add the ACF menu item to the WP admin + * + * @type action (admin_menu) + * @date 28/09/13 + * @since 5.0.0 + * + * @param n/a + * @return n/a + */ + + function admin_menu() { + + // bail early if no show_admin + if ( ! acf_get_setting( 'show_admin' ) ) { + return; } - + + // add page + $page = add_submenu_page( 'edit.php?post_type=acf-field-group', __( 'Tools', 'acf' ), __( 'Tools', 'acf' ), acf_get_setting( 'capability' ), 'acf-tools', array( $this, 'html' ) ); + + // actions + add_action( 'load-' . $page, array( $this, 'load' ) ); + } - - } - - - /** - * html - * - * description - * - * @date 10/10/17 - * @since 5.6.3 - * - * @param n/a - * @return n/a - */ - - function html() { - - // vars - $screen = get_current_screen(); - $active = acf_maybe_get_GET('tool'); - - - // view - $view = array( - 'screen_id' => $screen->id, - 'active' => $active - ); - - - // register metaboxes - foreach( $this->get_tools() as $tool ) { - - // check active - if( $active && $active !== $tool->name ) continue; - - - // add metabox - add_meta_box( 'acf-admin-tool-' . $tool->name, $tool->title, array($this, 'metabox_html'), $screen->id, 'normal', 'default', array('tool' => $tool->name) ); - + + + /** + * load + * + * description + * + * @date 10/10/17 + * @since 5.6.3 + * + * @param n/a + * @return n/a + */ + + function load() { + + add_action( 'admin_body_class', array( $this, 'admin_body_class' ) ); + + // disable filters (default to raw data) + acf_disable_filters(); + + // include tools + $this->include_tools(); + + // check submit + $this->check_submit(); + + // load acf scripts + acf_enqueue_scripts(); + } - - - // view - acf_get_view( 'html-admin-tools', $view ); - - } - - - /** - * meta_box_html - * - * description - * - * @date 10/10/17 - * @since 5.6.3 - * - * @param n/a - * @return n/a - */ - - function metabox_html( $post, $metabox ) { - - // vars - $tool = $this->get_tool($metabox['args']['tool']); - - - ?> + + /** + * Modifies the admin body class. + * + * @since 6.0.0 + * + * @param string $classes Space-separated list of CSS classes. + * @return string + */ + public function admin_body_class( $classes ) { + $classes .= ' acf-admin-page'; + return $classes; + } + + /** + * include_tools + * + * description + * + * @date 10/10/17 + * @since 5.6.3 + * + * @param n/a + * @return n/a + */ + + function include_tools() { + + // include + acf_include( 'includes/admin/tools/class-acf-admin-tool.php' ); + acf_include( 'includes/admin/tools/class-acf-admin-tool-export.php' ); + acf_include( 'includes/admin/tools/class-acf-admin-tool-import.php' ); + + // action + do_action( 'acf/include_admin_tools' ); + + } + + + /** + * check_submit + * + * description + * + * @date 10/10/17 + * @since 5.6.3 + * + * @param n/a + * @return n/a + */ + + function check_submit() { + + // loop + foreach ( $this->get_tools() as $tool ) { + + // load + $tool->load(); + + // submit + if ( acf_verify_nonce( $tool->name ) ) { + $tool->submit(); + } + } + + } + + + /** + * html + * + * description + * + * @date 10/10/17 + * @since 5.6.3 + * + * @param n/a + * @return n/a + */ + + function html() { + + // vars + $screen = get_current_screen(); + $active = acf_maybe_get_GET( 'tool' ); + + // view + $view = array( + 'screen_id' => $screen->id, + 'active' => $active, + ); + + // register metaboxes + foreach ( $this->get_tools() as $tool ) { + + // check active + if ( $active && $active !== $tool->name ) { + continue; + } + + // add metabox + add_meta_box( 'acf-admin-tool-' . $tool->name, acf_esc_html( $tool->title ), array( $this, 'metabox_html' ), $screen->id, 'normal', 'default', array( 'tool' => $tool->name ) ); + + } + + // view + acf_get_view( 'tools/tools', $view ); + + } + + + /** + * meta_box_html + * + * description + * + * @date 10/10/17 + * @since 5.6.3 + * + * @param n/a + * @return n/a + */ + + function metabox_html( $post, $metabox ) { + + // vars + $tool = $this->get_tool( $metabox['args']['tool'] ); + + ?>
                                  html(); ?> name ); ?>
                                  - admin_tools = new acf_admin_tools(); + } + + } + + // initialize + acf()->admin_tools = new acf_admin_tools(); endif; // class_exists check @@ -296,18 +302,18 @@ endif; // class_exists check * * alias of acf()->admin_tools->register_tool() * -* @type function -* @date 31/5/17 -* @since 5.6.0 +* @type function +* @date 31/5/17 +* @since 5.6.0 * -* @param n/a -* @return n/a +* @param n/a +* @return n/a */ function acf_register_admin_tool( $class ) { - + return acf()->admin_tools->register_tool( $class ); - + } @@ -316,18 +322,18 @@ function acf_register_admin_tool( $class ) { * * This function will return the admin URL to the tools page * -* @type function -* @date 31/5/17 -* @since 5.6.0 +* @type function +* @date 31/5/17 +* @since 5.6.0 * -* @param n/a -* @return n/a +* @param n/a +* @return n/a */ function acf_get_admin_tools_url() { - - return admin_url('edit.php?post_type=acf-field-group&page=acf-tools'); - + + return admin_url( 'edit.php?post_type=acf-field-group&page=acf-tools' ); + } @@ -336,19 +342,19 @@ function acf_get_admin_tools_url() { * * This function will return the admin URL to the tools page * -* @type function -* @date 31/5/17 -* @since 5.6.0 +* @type function +* @date 31/5/17 +* @since 5.6.0 * -* @param n/a -* @return n/a +* @param n/a +* @return n/a */ function acf_get_admin_tool_url( $tool = '' ) { - - return acf_get_admin_tools_url() . '&tool='.$tool; - + + return acf_get_admin_tools_url() . '&tool=' . $tool; + } -?> \ No newline at end of file +?> diff --git a/includes/admin/admin-upgrade.php b/includes/admin/admin-upgrade.php index e3275cb..c4dfa86 100644 --- a/includes/admin/admin-upgrade.php +++ b/includes/admin/admin-upgrade.php @@ -1,244 +1,297 @@ - 0 ) ); - if( $sites ) { - - // Unhook action to avoid memory issue (as seen in wp-includes/ms-site.php). - remove_action( 'switch_blog', 'wp_switch_roles_and_user', 1 ); - foreach( $sites as $site ) { - - // Switch site. - switch_to_blog( $site->blog_id ); - - // Check for upgrade. - $site_upgrade = acf_has_upgrade(); - - // Restore site. - // Ideally, we would switch back to the original site at after looping, however, - // the restore_current_blog() is needed to modify global vars. - restore_current_blog(); - - // Check if upgrade was found. - if( $site_upgrade ) { - $upgrade = true; - break; - } - } - add_action( 'switch_blog', 'wp_switch_roles_and_user', 1, 2 ); - } - - // Bail early if no upgrade is needed. - if( !$upgrade ) { - return; - } - - // Add notice. - add_action('network_admin_notices', array($this, 'network_admin_notices')); - - // Add page. - $page = add_submenu_page( - 'index.php', - __('Upgrade Database','acf'), - __('Upgrade Database','acf'), - acf_get_setting('capability'), - 'acf-upgrade-network', - array( $this,'network_admin_html' ) - ); - add_action( "load-$page", array( $this, 'network_admin_load' ) ); - } - - /** - * admin_load - * - * Runs during the loading of the admin page. - * - * @date 24/8/18 - * @since 5.7.4 - * - * @param type $var Description. Default. - * @return type Description. - */ - function admin_load() { - - // remove prompt - remove_action('admin_notices', array($this, 'admin_notices')); - - // Enqueue core script. - acf_enqueue_script( 'acf' ); - } - - /** - * network_admin_load - * - * Runs during the loading of the network admin page. - * - * @date 24/8/18 - * @since 5.7.4 - * - * @param type $var Description. Default. - * @return type Description. - */ - function network_admin_load() { - - // remove prompt - remove_action('network_admin_notices', array($this, 'network_admin_notices')); - - // Enqueue core script. - acf_enqueue_script( 'acf' ); - } - - /** - * admin_notices - * - * Displays the DB Upgrade prompt. - * - * @date 23/8/18 - * @since 5.7.3 - * - * @param void - * @return void - */ - function admin_notices() { - - // vars - $view = array( - 'button_text' => __("Upgrade Database", 'acf'), - 'button_url' => admin_url('index.php?page=acf-upgrade'), - 'confirm' => true - ); - - // view - acf_get_view('html-notice-upgrade', $view); - } - - /** - * network_admin_notices - * - * Displays the DB Upgrade prompt on a multi site. - * - * @date 23/8/18 - * @since 5.7.3 - * - * @param void - * @return void - */ - function network_admin_notices() { - - // vars - $view = array( - 'button_text' => __("Review sites & upgrade", 'acf'), - 'button_url' => network_admin_url('index.php?page=acf-upgrade-network'), - 'confirm' => false - ); - - // view - acf_get_view('html-notice-upgrade', $view); - } - - /** - * admin_html - * - * Displays the HTML for the admin page. - * - * @date 24/8/18 - * @since 5.7.4 - * - * @param void - * @return void - */ - function admin_html() { - acf_get_view('html-admin-page-upgrade'); - } - - /** - * network_admin_html - * - * Displays the HTML for the network upgrade admin page. - * - * @date 24/8/18 - * @since 5.7.4 - * - * @param void - * @return void - */ - function network_admin_html() { - acf_get_view('html-admin-page-upgrade-network'); - } +if ( ! defined( 'ABSPATH' ) ) { + exit; // Exit if accessed directly } -// instantiate -acf_new_instance('ACF_Admin_Upgrade'); +if ( ! class_exists( 'ACF_Admin_Upgrade' ) ) : + + class ACF_Admin_Upgrade { + + /** + * The name of the transient to store the network update check status. + * + * @var string + */ + public $network_upgrade_needed_transient; + + /** + * __construct + * + * Sets up the class functionality. + * + * @date 31/7/18 + * @since 5.7.2 + * + * @param void + * @return void + */ + function __construct() { + + $this->network_upgrade_needed_transient = 'acf_network_upgrade_needed_' . ACF_UPGRADE_VERSION; + + add_action( 'admin_menu', array( $this, 'admin_menu' ), 20 ); + if ( is_multisite() ) { + add_action( 'network_admin_menu', array( $this, 'network_admin_menu' ), 20 ); + } + } + + /** + * admin_menu + * + * Setus up logic if DB Upgrade is needed on a single site. + * + * @date 24/8/18 + * @since 5.7.4 + * + * @param void + * @return void + */ + function admin_menu() { + + // check if upgrade is avaialble + if ( acf_has_upgrade() ) { + + // add notice + add_action( 'admin_notices', array( $this, 'admin_notices' ) ); + + // add page + $page = add_submenu_page( 'index.php', __( 'Upgrade Database', 'acf' ), __( 'Upgrade Database', 'acf' ), acf_get_setting( 'capability' ), 'acf-upgrade', array( $this, 'admin_html' ) ); + + // actions + add_action( 'load-' . $page, array( $this, 'admin_load' ) ); + } + } + + /** + * Displays a “Database Upgrade Required” network admin notice and adds + * the “Upgrade Database” submenu under the “Dashboard” network admin + * menu item if an ACF upgrade needs to run on any network site. + * + * @date 24/8/18 + * @since 5.7.4 + * @since 6.0.0 Reduce memory usage, cache network upgrade checks. + * + * @return void + */ + function network_admin_menu() { + $network_upgrade_needed = get_site_transient( $this->network_upgrade_needed_transient ); + + // No transient value exists, so run the upgrade check. + if ( $network_upgrade_needed === false ) { + $network_upgrade_needed = $this->check_for_network_upgrades(); + } + + if ( $network_upgrade_needed === 'no' ) { + return; + } + + add_action( 'network_admin_notices', array( $this, 'network_admin_notices' ) ); + + $page = add_submenu_page( + 'index.php', + __( 'Upgrade Database', 'acf' ), + __( 'Upgrade Database', 'acf' ), + acf_get_setting( 'capability' ), + 'acf-upgrade-network', + array( $this, 'network_admin_html' ) + ); + + add_action( "load-$page", array( $this, 'network_admin_load' ) ); + } + + /** + * Checks if an ACF database upgrade is required on any site in the + * multisite network. + * + * Stores the result in `$this->network_upgrade_needed_transient`, + * which is version-linked to ACF_UPGRADE_VERSION: the highest ACF + * version that requires an upgrade function to run. Bumping + * ACF_UPGRADE_VERSION will trigger new upgrade checks but incrementing + * ACF_VERSION alone will not. + * + * @since 6.0.0 + * @return string 'yes' if any site in the network requires an upgrade, + * otherwise 'no'. String instead of boolean so that + * `false` returned from a get_site_transient check can + * denote that an upgrade check is needed. + */ + public function check_for_network_upgrades() { + $network_upgrade_needed = 'no'; + + $sites = get_sites( + array( + 'number' => 0, + 'fields' => 'ids', // Reduces PHP memory usage. + ) + ); + + if ( $sites ) { + // Reduces memory usage (same pattern used in wp-includes/ms-site.php). + remove_action( 'switch_blog', 'wp_switch_roles_and_user', 1 ); + + foreach ( $sites as $site_id ) { + switch_to_blog( $site_id ); + + $site_needs_upgrade = acf_has_upgrade(); + + restore_current_blog(); // Restores global vars. + + if ( $site_needs_upgrade ) { + $network_upgrade_needed = 'yes'; + break; + } + } + + add_action( 'switch_blog', 'wp_switch_roles_and_user', 1, 2 ); + } + + set_site_transient( + $this->network_upgrade_needed_transient, + $network_upgrade_needed, + 3 * MONTH_IN_SECONDS + ); + + return $network_upgrade_needed; + } + + /** + * admin_load + * + * Runs during the loading of the admin page. + * + * @date 24/8/18 + * @since 5.7.4 + * + * @param type $var Description. Default. + * @return type Description. + */ + function admin_load() { + + add_action( 'admin_body_class', array( $this, 'admin_body_class' ) ); + + // remove prompt + remove_action( 'admin_notices', array( $this, 'admin_notices' ) ); + + // Enqueue core script. + acf_enqueue_script( 'acf' ); + } + + /** + * network_admin_load + * + * Runs during the loading of the network admin page. + * + * @date 24/8/18 + * @since 5.7.4 + * + * @param type $var Description. Default. + * @return type Description. + */ + function network_admin_load() { + + add_action( 'admin_body_class', array( $this, 'admin_body_class' ) ); + + // remove prompt + remove_action( 'network_admin_notices', array( $this, 'network_admin_notices' ) ); + + // Enqueue core script. + acf_enqueue_script( 'acf' ); + } + + /** + * Modifies the admin body class. + * + * @since 6.0.0 + * + * @param string $classes Space-separated list of CSS classes. + * @return string + */ + public function admin_body_class( $classes ) { + $classes .= ' acf-admin-page'; + return $classes; + } + + /** + * admin_notices + * + * Displays the DB Upgrade prompt. + * + * @date 23/8/18 + * @since 5.7.3 + * + * @param void + * @return void + */ + function admin_notices() { + + // vars + $view = array( + 'button_text' => __( 'Upgrade Database', 'acf' ), + 'button_url' => admin_url( 'index.php?page=acf-upgrade' ), + 'confirm' => true, + ); + + // view + acf_get_view( 'upgrade/notice', $view ); + } + + /** + * network_admin_notices + * + * Displays the DB Upgrade prompt on a multi site. + * + * @date 23/8/18 + * @since 5.7.3 + * + * @param void + * @return void + */ + function network_admin_notices() { + + // vars + $view = array( + 'button_text' => __( 'Review sites & upgrade', 'acf' ), + 'button_url' => network_admin_url( 'index.php?page=acf-upgrade-network' ), + 'confirm' => false, + ); + + // view + acf_get_view( 'upgrade/notice', $view ); + } + + /** + * admin_html + * + * Displays the HTML for the admin page. + * + * @date 24/8/18 + * @since 5.7.4 + * + * @param void + * @return void + */ + function admin_html() { + acf_get_view( 'upgrade/upgrade' ); + } + + /** + * network_admin_html + * + * Displays the HTML for the network upgrade admin page. + * + * @date 24/8/18 + * @since 5.7.4 + * + * @param void + * @return void + */ + function network_admin_html() { + acf_get_view( 'upgrade/network' ); + } + } + + // instantiate + acf_new_instance( 'ACF_Admin_Upgrade' ); endif; // class_exists check - -?> \ No newline at end of file diff --git a/includes/admin/admin.php b/includes/admin/admin.php index 252a741..8077619 100644 --- a/includes/admin/admin.php +++ b/includes/admin/admin.php @@ -1,207 +1,281 @@ -= 5.3 ) { - $classes .= ' acf-admin-5-3'; - } else { - $classes .= ' acf-admin-3-8'; - } - - // Add browser for specific CSS. - $classes .= ' acf-browser-' . acf_get_browser(); - - // Return classes. - return $classes; - } - - /** - * Adds custom functionality to "ACF" admin pages. - * - * @date 7/4/20 - * @since 5.9.0 - * - * @param void - * @return void - */ - function current_screen( $screen ) { - - // Determine if the current page being viewed is "ACF" related. - if( isset( $screen->post_type ) && $screen->post_type === 'acf-field-group' ) { - add_action( 'in_admin_header', array( $this, 'in_admin_header' ) ); - add_filter( 'admin_footer_text', array( $this, 'admin_footer_text' ) ); - $this->setup_help_tab(); - } - } - - /** - * Sets up the admin help tab. - * - * @date 20/4/20 - * @since 5.9.0 - * - * @param void - * @return void - */ - public function setup_help_tab() { - $screen = get_current_screen(); - - // Overview tab. - $screen->add_help_tab( - array( - 'id' => 'overview', - 'title' => __( 'Overview', 'acf' ), - 'content' => - '

                                  ' . __( 'Overview', 'acf' ) . '

                                  ' . - '

                                  ' . __( 'The Advanced Custom Fields plugin provides a visual form builder to customize WordPress edit screens with extra fields, and an intuitive API to display custom field values in any theme template file.', 'acf' ) . '

                                  ' . - '

                                  ' . sprintf( - __( 'Before creating your first Field Group, we recommend first reading our Getting started guide to familiarize yourself with the plugin\'s philosophy and best practises.', 'acf' ), - 'https://www.advancedcustomfields.com/resources/getting-started-with-acf/' - ) . '

                                  ' . - '

                                  ' . __( 'Please use the Help & Support tab to get in touch should you find yourself requiring assistance.', 'acf' ) . '

                                  ' . - '' - ) - ); - - // Help tab. - $screen->add_help_tab( - array( - 'id' => 'help', - 'title' => __( 'Help & Support', 'acf' ), - 'content' => - '

                                  ' . __( 'Help & Support', 'acf' ) . '

                                  ' . - '

                                  ' . __( 'We are fanatical about support, and want you to get the best out of your website with ACF. If you run into any difficulties, there are several places you can find help:', 'acf' ) . '

                                  ' . - '
                                    ' . - '
                                  • ' . sprintf( - __( 'Documentation. Our extensive documentation contains references and guides for most situations you may encounter.', 'acf' ), - 'https://www.advancedcustomfields.com/resources/' - ) . '
                                  • ' . - '
                                  • ' . sprintf( - __( 'Discussions. We have an active and friendly community on our Community Forums who may be able to help you figure out the ‘how-tos’ of the ACF world.', 'acf' ), - 'https://support.advancedcustomfields.com/' - ) . '
                                  • ' . - '
                                  • ' . sprintf( - __( 'Help Desk. The support professionals on our Help Desk will assist with your more in depth, technical challenges.', 'acf' ), - 'https://www.advancedcustomfields.com/support/' - ) . '
                                  • ' . - '
                                  ' - ) - ); - - // Sidebar. - $screen->set_help_sidebar( - '

                                  ' . __( 'Information', 'acf' ) . '

                                  ' . - '

                                  ' . sprintf( __( 'Version %s', 'acf' ), ACF_VERSION ) . '

                                  ' . - '

                                  ' . __( 'View details', 'acf' ) . '

                                  ' . - '

                                  ' . __( 'Visit website', 'acf' ) . '

                                  ' . - '' - ); - } - - /** - * Renders the admin navigation element. - * - * @date 27/3/20 - * @since 5.9.0 - * - * @param void - * @return void - */ - function in_admin_header() { - acf_get_view( 'html-admin-navigation' ); - } - - /** - * Modifies the admin footer text. - * - * @date 7/4/20 - * @since 5.9.0 - * - * @param string $text The admin footer text. - * @return string - */ - function admin_footer_text( $text ) { - // Use RegExp to append "ACF" after the element allowing translations to read correctly. - return preg_replace( '/()/', '$1 ' . __('and', 'acf') . ' ACF', $text, 1 ); - } +if ( ! defined( 'ABSPATH' ) ) { + exit; // Exit if accessed directly } -// Instantiate. -acf_new_instance('ACF_Admin'); +if ( ! class_exists( 'ACF_Admin' ) ) : + + class ACF_Admin { + + /** + * Constructor. + * + * @date 23/06/12 + * @since 5.0.0 + * + * @param void + * @return void + */ + function __construct() { + // Add actions. + add_action( 'admin_menu', array( $this, 'admin_menu' ) ); + add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) ); + add_action( 'admin_body_class', array( $this, 'admin_body_class' ) ); + add_action( 'current_screen', array( $this, 'current_screen' ) ); + add_filter( 'parent_file', array( $this, 'ensure_menu_selection' ) ); + add_filter( 'submenu_file', array( $this, 'ensure_submenu_selection' ) ); + } + + /** + * Adds the ACF menu item. + * + * @date 28/09/13 + * @since 5.0.0 + */ + public function admin_menu() { + + // Bail early if ACF is hidden. + if ( ! acf_get_setting( 'show_admin' ) ) { + return; + } + + // Vars. + $cap = acf_get_setting( 'capability' ); + $parent_slug = 'edit.php?post_type=acf-field-group'; + + // Add menu items. + add_menu_page( __( 'ACF', 'acf' ), __( 'ACF', 'acf' ), $cap, $parent_slug, false, 'dashicons-welcome-widgets-menus', 80 ); + } + + /** + * Enqueues global admin styling. + * + * @date 28/09/13 + * @since 5.0.0 + * + * @param void + * @return void + */ + function admin_enqueue_scripts() { + wp_enqueue_style( 'acf-global' ); + } + + /** + * Appends custom admin body classes. + * + * @date 5/11/19 + * @since 5.8.7 + * + * @param string $classes Space-separated list of CSS classes. + * @return string + */ + public function admin_body_class( $classes ) { + global $wp_version; + + // Determine body class version. + $wp_minor_version = floatval( $wp_version ); + if ( $wp_minor_version >= 5.3 ) { + $classes .= ' acf-admin-5-3'; + } else { + $classes .= ' acf-admin-3-8'; + } + + // Add browser for specific CSS. + $classes .= ' acf-browser-' . esc_attr( acf_get_browser() ); + + // Return classes. + return $classes; + } + + /** + * Adds custom functionality to "ACF" admin pages. + * + * @date 7/4/20 + * @since 5.9.0 + * + * @param void + * @return void + */ + public function current_screen( $screen ) { + // Determine if the current page being viewed is "ACF" related. + if ( isset( $screen->post_type ) && in_array( $screen->post_type, acf_get_internal_post_types(), true ) ) { + add_action( 'in_admin_header', array( $this, 'in_admin_header' ) ); + add_filter( 'admin_footer_text', array( $this, 'admin_footer_text' ) ); + $this->setup_help_tab(); + $this->maybe_show_import_from_cptui_notice(); + } + } + + /** + * Sets up the admin help tab. + * + * @date 20/4/20 + * @since 5.9.0 + * + * @param void + * @return void + */ + public function setup_help_tab() { + $screen = get_current_screen(); + + // Overview tab. + $screen->add_help_tab( + array( + 'id' => 'overview', + 'title' => __( 'Overview', 'acf' ), + 'content' => + '

                                  ' . __( 'Overview', 'acf' ) . '

                                  ' . + '

                                  ' . __( 'The Advanced Custom Fields plugin provides a visual form builder to customize WordPress edit screens with extra fields, and an intuitive API to display custom field values in any theme template file.', 'acf' ) . '

                                  ' . + '

                                  ' . sprintf( + __( 'Before creating your first Field Group, we recommend first reading our Getting started guide to familiarize yourself with the plugin\'s philosophy and best practises.', 'acf' ), + acf_add_url_utm_tags( 'https://www.advancedcustomfields.com/resources/getting-started-with-acf/', 'docs', 'help-tab' ) + ) . '

                                  ' . + '

                                  ' . __( 'Please use the Help & Support tab to get in touch should you find yourself requiring assistance.', 'acf' ) . '

                                  ' . + '', + ) + ); + + // Help tab. + $screen->add_help_tab( + array( + 'id' => 'help', + 'title' => __( 'Help & Support', 'acf' ), + 'content' => + '

                                  ' . __( 'Help & Support', 'acf' ) . '

                                  ' . + '

                                  ' . __( 'We are fanatical about support, and want you to get the best out of your website with ACF. If you run into any difficulties, there are several places you can find help:', 'acf' ) . '

                                  ' . + '
                                    ' . + '
                                  • ' . sprintf( + __( 'Documentation. Our extensive documentation contains references and guides for most situations you may encounter.', 'acf' ), + acf_add_url_utm_tags( 'https://www.advancedcustomfields.com/resources/', 'docs', 'help-tab' ) + ) . '
                                  • ' . + '
                                  • ' . sprintf( + __( 'Discussions. We have an active and friendly community on our Community Forums who may be able to help you figure out the \'how-tos\' of the ACF world.', 'acf' ), + acf_add_url_utm_tags( 'https://support.advancedcustomfields.com/', 'docs', 'help-tab' ) + ) . '
                                  • ' . + '
                                  • ' . sprintf( + __( 'Help Desk. The support professionals on our Help Desk will assist with your more in depth, technical challenges.', 'acf' ), + acf_add_url_utm_tags( 'https://www.advancedcustomfields.com/support/', 'docs', 'help-tab' ) + ) . '
                                  • ' . + '
                                  ', + ) + ); + + // Sidebar. + $screen->set_help_sidebar( + '

                                  ' . __( 'Information', 'acf' ) . '

                                  ' . + '

                                  ' . sprintf( __( 'Version %s', 'acf' ), ACF_VERSION ) . '

                                  ' . + '

                                  ' . __( 'View details', 'acf' ) . '

                                  ' . + '

                                  ' . __( 'Visit website', 'acf' ) . '

                                  ' . + '' + ); + } + + /** + * Shows a notice to import post types and taxonomies from CPTUI if that plugin is active. + * + * @since 6.1 + */ + public function maybe_show_import_from_cptui_notice() { + global $plugin_page; + + // Only show if CPTUI is active and post types are enabled. + if ( ! acf_get_setting( 'enable_post_types' ) || ! is_plugin_active( 'custom-post-type-ui/custom-post-type-ui.php' ) ) { + return; + } + + // No need to show on the tools page. + if ( 'acf-tools' === $plugin_page ) { + return; + } + + $text = sprintf( + /* translators: %s - URL to ACF tools page. */ + __( 'Import Post Types and Taxonomies registered with Custom Post Type UI and manage them with ACF. Get Started.', 'acf' ), + acf_get_admin_tools_url() + ); + + acf_add_admin_notice( $text, 'success', true, true ); + } + + /** + * Renders the admin navigation element. + * + * @date 27/3/20 + * @since 5.9.0 + * + * @param void + * @return void + */ + function in_admin_header() { + acf_get_view( 'global/navigation' ); + + $screen = get_current_screen(); + + if ( isset( $screen->base ) && 'post' === $screen->base ) { + acf_get_view( 'global/form-top' ); + } + } + + /** + * Modifies the admin footer text. + * + * @date 7/4/20 + * @since 5.9.0 + * + * @param string $text The admin footer text. + * @return string + */ + function admin_footer_text( $text ) { + if ( null === $text ) { + $text = ''; + } + + $is_free = ! defined( 'ACF_PRO' ) || ! ACF_PRO; + $wp_engine_link = acf_add_url_utm_tags( 'https://wpengine.com/', 'bx_prod_referral', $is_free ? 'acf_free_plugin_footer_text' : 'acf_pro_plugin_footer_text', false, 'acf_plugin', 'referral' ); + + // Use RegExp to append "ACF" after the element allowing translations to read correctly. + return preg_replace( '/()/', '$1 ' . __( 'and', 'acf' ) . ' ACF ' . __( 'from', 'acf' ) . ' WP Engine', $text, 1 ); + } + + /** + * Ensure the ACF parent menu is selected for add-new.php + * + * @since 6.1 + * @param string $parent_file The parent file checked against menu activation. + * @return string The modified parent file + */ + public function ensure_menu_selection( $parent_file ) { + if ( ! is_string( $parent_file ) ) { + return $parent_file; + } + if ( strpos( $parent_file, 'edit.php?post_type=acf-' ) === 0 ) { + return 'edit.php?post_type=acf-field-group'; + } + return $parent_file; + } + + + /** + * Ensure the correct ACF submenu item is selected when in post-new versions of edit pages + * + * @since 6.1 + * @param string $submenu_file The submenu filename. + * @return string The modified submenu filename + */ + public function ensure_submenu_selection( $submenu_file ) { + if ( ! is_string( $submenu_file ) ) { + return $submenu_file; + } + if ( strpos( $submenu_file, 'post-new.php?post_type=acf-' ) === 0 ) { + return str_replace( 'post-new', 'edit', $submenu_file ); + } + return $submenu_file; + } + + } + + // Instantiate. + acf_new_instance( 'ACF_Admin' ); endif; // class_exists check diff --git a/includes/admin/post-types/admin-field-group.php b/includes/admin/post-types/admin-field-group.php new file mode 100644 index 0000000..c16ff9f --- /dev/null +++ b/includes/admin/post-types/admin-field-group.php @@ -0,0 +1,620 @@ + '', // Unused. Messages start at index 1. + 1 => __( 'Field group updated.', 'acf' ), + 2 => __( 'Field group updated.', 'acf' ), + 3 => __( 'Field group deleted.', 'acf' ), + 4 => __( 'Field group updated.', 'acf' ), + 5 => false, // field group does not support revisions. + 6 => __( 'Field group published.', 'acf' ), + 7 => __( 'Field group saved.', 'acf' ), + 8 => __( 'Field group submitted.', 'acf' ), + 9 => __( 'Field group scheduled for.', 'acf' ), + 10 => __( 'Field group draft updated.', 'acf' ), + ); + + return $messages; + } + + /** + * Enqueues any scripts necessary for internal post type. + * + * @since 5.0.0 + * + * @return void + */ + public function admin_enqueue_scripts() { + parent::admin_enqueue_scripts(); + + acf_localize_text( + array( + 'The string "field_" may not be used at the start of a field name' => __( 'The string "field_" may not be used at the start of a field name', 'acf' ), + 'This field cannot be moved until its changes have been saved' => __( 'This field cannot be moved until its changes have been saved', 'acf' ), + 'Field group title is required' => __( 'Field group title is required', 'acf' ), + 'Move field group to trash?' => __( 'Move field group to trash?', 'acf' ), + 'No toggle fields available' => __( 'No toggle fields available', 'acf' ), + 'Move Custom Field' => __( 'Move Custom Field', 'acf' ), + 'Close modal' => __( 'Close modal', 'acf' ), + 'Field moved to other group' => __( 'Field moved to other group', 'acf' ), + 'Field groups linked successfully.' => __( 'Field groups linked successfully.', 'acf' ), + 'Checked' => __( 'Checked', 'acf' ), + '(no label)' => __( '(no label)', 'acf' ), + '(this field)' => __( '(this field)', 'acf' ), + 'copy' => __( 'copy', 'acf' ), + 'or' => __( 'or', 'acf' ), + 'Show this field group if' => __( 'Show this field group if', 'acf' ), + 'Null' => __( 'Null', 'acf' ), + 'PRO Only' => __( 'PRO Only', 'acf' ), + + // Conditions. + 'Has any value' => __( 'Has any value', 'acf' ), + 'Has no value' => __( 'Has no value', 'acf' ), + 'Value is equal to' => __( 'Value is equal to', 'acf' ), + 'Value is not equal to' => __( 'Value is not equal to', 'acf' ), + 'Value matches pattern' => __( 'Value matches pattern', 'acf' ), + 'Value contains' => __( 'Value contains', 'acf' ), + 'Value is greater than' => __( 'Value is greater than', 'acf' ), + 'Value is less than' => __( 'Value is less than', 'acf' ), + 'Selection is greater than' => __( 'Selection is greater than', 'acf' ), + 'Selection is less than' => __( 'Selection is less than', 'acf' ), + + // Field type selection modal. + 'Type to search...' => __( 'Type to search...', 'acf' ), + ) + ); + + acf_localize_data( + array( + 'fieldTypes' => acf_get_field_types_info(), + 'fieldCategoriesL10n' => acf_get_field_categories_i18n(), + 'PROUpgradeURL' => acf_add_url_utm_tags( 'https://www.advancedcustomfields.com/pro/', 'ACF upgrade', 'field-type-selection' ), + 'PROFieldTypes' => acf_get_pro_field_types(), + 'PROLocationTypes' => array( + 'block' => __( 'Block', 'acf' ), + 'options_page' => __( 'Options Page', 'acf' ), + ), + ) + ); + + do_action( 'acf/field_group/admin_enqueue_scripts' ); + } + + /** + * Set up functionality for the field group edit page. + * + * @since 3.1.8 + * + * @return void + */ + public function admin_head() { + global $post, $field_group; + + // Set global var. + $field_group = acf_get_field_group( $post->ID ); + + // metaboxes. + add_meta_box( 'acf-field-group-fields', __( 'Fields', 'acf' ), array( $this, 'mb_fields' ), 'acf-field-group', 'normal', 'high' ); + add_meta_box( 'acf-field-group-options', __( 'Settings', 'acf' ), array( $this, 'mb_options' ), 'acf-field-group', 'normal', 'high' ); + + // actions. + add_action( 'post_submitbox_misc_actions', array( $this, 'post_submitbox_misc_actions' ), 10, 0 ); + add_action( 'edit_form_after_title', array( $this, 'edit_form_after_title' ), 10, 0 ); + + // filters. + add_filter( 'screen_settings', array( $this, 'screen_settings' ), 10, 1 ); + add_filter( 'get_user_option_screen_layout_acf-field-group', array( $this, 'screen_layout' ), 10, 1 ); + + // 3rd party hook. + do_action( 'acf/field_group/admin_head' ); + } + + /** + * This action will allow ACF to render metaboxes after the title. + * + * @return void + */ + public function edit_form_after_title() { + global $post; + + // Render post data. + acf_form_data( + array( + 'screen' => 'field_group', + 'post_id' => $post->ID, + 'delete_fields' => 0, + 'validation' => 0, + ) + ); + } + + /** + * This function will add extra HTML to the acf form data element + * + * @since 5.3.8 + * + * @param array $args Arguments array to pass through to action. + * @return void + */ + public function form_data( $args ) { + do_action( 'acf/field_group/form_data', $args ); + } + + /** + * This function will append extra l10n strings to the acf JS object + * + * @since 5.3.8 + * + * @param array $l10n The array of translated strings. + * @return array $l10n + */ + public function admin_l10n( $l10n ) { + return apply_filters( 'acf/field_group/admin_l10n', $l10n ); + } + + /** + * Admin footer third party hook support + * + * @since 5.3.2 + * + * @return void + */ + public function admin_footer() { + $this->include_pro_features(); + do_action( 'acf/field_group/admin_footer' ); + } + + /** + * Renders HTML for the ACF PRO features upgrade notice. + * + * @return void + */ + public function include_pro_features() { + // Bail if on PRO. + if ( defined( 'ACF_PRO' ) && ACF_PRO ) { + return; + } + + // Bail if not the edit field group screen. + if ( ! acf_is_screen( 'acf-field-group' ) ) { + return; + } + + acf_get_view( 'acf-field-group/pro-features' ); + } + + /** + * Screen settings html output + * + * @since 3.6.0 + * + * @param string $html Current screen settings HTML. + * @return string $html + */ + public function screen_settings( $html ) { + $show_field_keys = acf_get_user_setting( 'show_field_keys' ) ? 'checked="checked"' : ''; + $show_field_settings_tabs = acf_get_user_setting( 'show_field_settings_tabs', true ) ? 'checked="checked"' : ''; + $hide_field_settings_tabs = apply_filters( 'acf/field_group/disable_field_settings_tabs', false ); + + $html .= '
                                  '; + $html .= ''; + + if ( ! $hide_field_settings_tabs ) { + $html .= ''; + } + + $html .= '
                                  '; + + return $html; + } + + /** + * Sets the "Edit Field Group" screen to use a one-column layout. + * + * @param int $columns Number of columns for layout. + * + * @return int + */ + public function screen_layout( $columns = 0 ) { + return 1; + } + + /** + * This function will customize the publish metabox + * + * @since 5.2.9 + * + * @return void + */ + public function post_submitbox_misc_actions() { + global $field_group; + $status_label = $field_group['active'] ? _x( 'Active', 'post status', 'acf' ) : _x( 'Inactive', 'post status', 'acf' ); + + ?> + + verify_save_post( $post_id, $post ) ) { + return $post_id; + } + + // disable filters to ensure ACF loads raw data from DB. + acf_disable_filters(); + + // save fields. + // phpcs:disable WordPress.Security.NonceVerification.Missing -- Validated by WordPress. + if ( ! empty( $_POST['acf_fields'] ) ) { + + // loop. + foreach ( $_POST['acf_fields'] as $field ) { // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- Sanitized when saved. + + if ( ! isset( $field['key'] ) ) { + continue; + } + + // vars. + $specific = false; + $save = acf_extract_var( $field, 'save' ); + + // only saved field if has changed. + if ( $save == 'meta' ) { + $specific = array( + 'menu_order', + 'post_parent', + ); + } + + // set parent. + if ( ! $field['parent'] ) { + $field['parent'] = $post_id; + } + + // save field. + acf_update_field( $field, $specific ); + } + } + + // delete fields. + if ( $_POST['_acf_delete_fields'] ) { // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- Sanitized below. + + // clean. + $ids = explode( '|', $_POST['_acf_delete_fields'] ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- Sanitized below. + $ids = array_map( 'intval', $ids ); + + // loop. + foreach ( $ids as $id ) { + + // bai early if no id. + if ( ! $id ) { + continue; + } + + // delete. + acf_delete_field( $id ); + } + } + + $_POST['acf_field_group']['ID'] = $post_id; + // phpcs:disable WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- Sanitized when saved. + $_POST['acf_field_group']['title'] = $_POST['post_title']; + + // save field group. + acf_update_field_group( $_POST['acf_field_group'] ); + // phpcs:enable WordPress.Security.ValidatedSanitizedInput.InputNotSanitized + // phpcs:enable WordPress.Security.NonceVerification.Missing + + return $post_id; + } + + /** + * This function will render the HTML for the metabox 'acf-field-group-fields' + * + * @since 5.0.0 + * + * @return void + */ + public function mb_fields() { + global $field_group; + + $view = array( + 'fields' => acf_get_fields( $field_group ), + 'parent' => 0, + ); + + acf_get_view( $this->post_type . '/fields', $view ); + } + + /** + * This function will render the HTML for the metabox 'acf-field-group-pro-features' + * + * @since 6.0.0 + * + * @return void + */ + public function mb_pro_features() { + acf_get_view( $this->post_type . '/pro-features' ); + } + + /** + * This function will render the HTML for the metabox 'acf-field-group-options' + * + * @since 5.0.0 + * + * @return void + */ + public function mb_options() { + global $field_group; + + // Field group key (leave in for compatibility). + if ( ! acf_is_field_group_key( $field_group['key'] ) ) { + $field_group['key'] = uniqid( 'group_' ); + } + + acf_get_view( $this->post_type . '/options' ); + } + + /** + * This function can be accessed via an AJAX action and will return the result from the render_location_value function + * + * @since 5.0.0 + * + * @return void + */ + public function ajax_render_location_rule() { + // validate. + if ( ! acf_verify_ajax() ) { + die(); + } + + // verify user capability. + if ( ! acf_current_user_can_admin() ) { + die(); + } + + // validate rule. + $rule = acf_validate_location_rule( acf_sanitize_request_args( $_POST['rule'] ) ); + + acf_get_view( + 'acf-field-group/location-rule', + array( + 'rule' => $rule, + ) + ); + + die(); + } + + /** + * This function will return HTML containing the field's settings based on it's new type + * + * @since 5.0.0 + * + * @return void + */ + public function ajax_render_field_settings() { + // Verify the current request. + if ( ! acf_verify_ajax() || ! acf_current_user_can_admin() ) { + wp_send_json_error(); + } + + // Make sure we have a field. + $field = acf_maybe_get_POST( 'field' ); + if ( ! $field ) { + wp_send_json_error(); + } + + $field['prefix'] = acf_maybe_get_POST( 'prefix' ); + $field = acf_get_valid_field( $field ); + $tabs = acf_get_combined_field_type_settings_tabs(); + $tab_keys = array_keys( $tabs ); + $sections = array(); + + foreach ( $tab_keys as $tab ) { + ob_start(); + + if ( 'general' === $tab ) { + // Back-compat for fields not using tab-specific hooks. + do_action( "acf/render_field_settings/type={$field['type']}", $field ); + } + + do_action( "acf/field_group/render_field_settings_tab/{$tab}/type={$field['type']}", $field ); + do_action( "acf/render_field_{$tab}_settings/type={$field['type']}", $field ); + + $sections[ $tab ] = ob_get_clean(); + } + + wp_send_json_success( $sections ); + } + + /** + * Move field AJAX function + * + * @since 5.0.0 + * + * @return void No return, HTML output for AJAX consumption. + */ + public function ajax_move_field() { + // disable filters to ensure ACF loads raw data from DB. + acf_disable_filters(); + + // phpcs:disable WordPress.Security.NonceVerification.Missing + $args = acf_parse_args( + $_POST, + array( + 'nonce' => '', + 'post_id' => 0, + 'field_id' => 0, + 'field_group_id' => 0, + ) + ); + // phpcs:enable WordPress.Security.NonceVerification.Missing + + // verify nonce. + if ( ! wp_verify_nonce( $args['nonce'], 'acf_nonce' ) ) { + die(); + } + + // verify user capability. + if ( ! acf_current_user_can_admin() ) { + die(); + } + + // confirm? + if ( $args['field_id'] && $args['field_group_id'] ) { + + // vars. + $field = acf_get_field( $args['field_id'] ); + $field_group = acf_get_field_group( $args['field_group_id'] ); + + // update parent. + $field['parent'] = $field_group['ID']; + + // remove conditional logic. + $field['conditional_logic'] = 0; + + // update field. + acf_update_field( $field ); + + // Output HTML. + $link = '' . esc_html( $field_group['title'] ) . ''; + + echo '' . + '

                                  ' . __( 'Move Complete.', 'acf' ) . '

                                  ' . + '

                                  ' . sprintf( + /* translators: Confirmation message once a field has been moved to a different field group. */ + acf_punctify( __( 'The %1$s field can now be found in the %2$s field group', 'acf' ) ), + esc_html( $field['label'] ), + $link //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + ) . '

                                  ' . + '' . __( 'Close Modal', 'acf' ) . ''; + die(); + } + + // get all field groups. + $field_groups = acf_get_field_groups(); + $choices = array(); + + // check. + if ( ! empty( $field_groups ) ) { + + // loop. + foreach ( $field_groups as $field_group ) { + + // bail early if no ID. + if ( ! $field_group['ID'] ) { + continue; + } + + // bail early if is current. + if ( $field_group['ID'] == $args['post_id'] ) { + continue; + } + + $choices[ $field_group['ID'] ] = $field_group['title']; + } + } + + // render options. + $field = acf_get_valid_field( + array( + 'type' => 'select', + 'name' => 'acf_field_group', + 'choices' => $choices, + 'aria-label' => __( 'Please select the destination for this field', 'acf' ), + ) + ); + + echo '

                                  ' . __( 'Please select the destination for this field', 'acf' ) . '

                                  '; + + echo '
                                  '; + + // render. + acf_render_field_wrap( $field ); + + echo ''; + + echo '
                                  '; + + die(); + } + + } + + // initialize. + new acf_admin_field_group(); +endif; // Class exists check. + +?> diff --git a/includes/admin/post-types/admin-field-groups.php b/includes/admin/post-types/admin-field-groups.php new file mode 100644 index 0000000..811626c --- /dev/null +++ b/includes/admin/post-types/admin-field-groups.php @@ -0,0 +1,395 @@ +post_type . '/pro-features' ); + } + + /** + * Add any menu items required for field groups. + * + * @since 6.1 + */ + public function admin_menu() { + $parent_slug = 'edit.php?post_type=acf-field-group'; + $cap = acf_get_setting( 'capability' ); + add_submenu_page( $parent_slug, __( 'Field Groups', 'acf' ), __( 'Field Groups', 'acf' ), $cap, $parent_slug ); + } + + /** + * Redirects users from ACF 4.0 admin page. + * + * @date 17/9/18 + * @since 5.7.6 + * + * @return void + */ + public function handle_redirection() { + if ( isset( $_GET['post_type'] ) && $_GET['post_type'] === 'acf' ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended + wp_redirect( $this->get_admin_url() ); + exit; + } + } + + /** + * Customizes the admin table columns. + * + * @date 1/4/20 + * @since 5.9.0 + * + * @param array $_columns The columns array. + * @return array + */ + public function admin_table_columns( $_columns ) { + // Set the "no found" label to be our custom HTML for no results. + if ( empty( acf_request_arg( 's' ) ) ) { + global $wp_post_types; + $this->not_found_label = $wp_post_types['acf-field-group']->labels->not_found; + $wp_post_types['acf-field-group']->labels->not_found = $this->get_not_found_html(); + } + + $columns = array( + 'cb' => $_columns['cb'], + 'title' => $_columns['title'], + 'acf-description' => __( 'Description', 'acf' ), + 'acf-key' => __( 'Key', 'acf' ), + 'acf-location' => __( 'Location', 'acf' ), + 'acf-count' => __( 'Fields', 'acf' ), + ); + + if ( acf_get_local_json_files( $this->post_type ) ) { + $columns['acf-json'] = __( 'Local JSON', 'acf' ); + } + + return $columns; + } + + /** + * Renders a specific admin table column. + * + * @date 17/4/20 + * @since 5.9.0 + * + * @param string $column_name The name of the column to display. + * @param array $post The main ACF post array. + * @return void + */ + public function render_admin_table_column( $column_name, $post ) { + switch ( $column_name ) { + + // Key. + case 'acf-key': + echo ''; + echo esc_html( $post['key'] ); + break; + + // Description. + case 'acf-description': + if ( is_string( $post['description'] ) && ! empty( $post['description'] ) ) { + echo '' . acf_esc_html( $post['description'] ) . ''; + } else { + echo ''; + echo '' . esc_html__( 'No description', 'acf' ) . ''; + } + break; + + // Location. + case 'acf-location': + $this->render_admin_table_column_locations( $post ); + break; + + // Count. + case 'acf-count': + $this->render_admin_table_column_num_fields( $post ); + break; + + // Local JSON. + case 'acf-json': + $this->render_admin_table_column_local_status( $post ); + break; + } + } + + /** + * Displays a visual representation of the field group's locations. + * + * @date 1/4/20 + * @since 5.9.0 + * + * @param array $field_group The field group. + * @return void + */ + public function render_admin_table_column_locations( $field_group ) { + $objects = array(); + + // Loop over location rules and determine connected object types. + if ( $field_group['location'] ) { + foreach ( $field_group['location'] as $i => $rules ) { + + // Determine object types for each rule. + foreach ( $rules as $j => $rule ) { + + // Get location type and subtype for the current rule. + $location = acf_get_location_rule( $rule['param'] ); + $location_object_type = ''; + $location_object_subtype = ''; + if ( $location ) { + $location_object_type = $location->get_object_type( $rule ); + $location_object_subtype = $location->get_object_subtype( $rule ); + } + $rules[ $j ]['object_type'] = $location_object_type; + $rules[ $j ]['object_subtype'] = $location_object_subtype; + } + + // Now that each $rule conains object type data... + $object_types = array_column( $rules, 'object_type' ); + $object_types = array_filter( $object_types ); + $object_types = array_values( $object_types ); + if ( $object_types ) { + $object_type = $object_types[0]; + } else { + continue; + } + + $object_subtypes = array_column( $rules, 'object_subtype' ); + $object_subtypes = array_filter( $object_subtypes ); + $object_subtypes = array_values( $object_subtypes ); + $object_subtypes = array_map( 'acf_array', $object_subtypes ); + if ( count( $object_subtypes ) > 1 ) { + $object_subtypes = call_user_func_array( 'array_intersect', $object_subtypes ); + $object_subtypes = array_values( $object_subtypes ); + } elseif ( $object_subtypes ) { + $object_subtypes = $object_subtypes[0]; + } else { + $object_subtypes = array( '' ); + } + + // Append to objects. + foreach ( $object_subtypes as $object_subtype ) { + $object = acf_get_object_type( $object_type, $object_subtype ); + if ( $object ) { + $objects[ $object->name ] = $object; + } + } + } + } + + // Reset keys. + $objects = array_values( $objects ); + + // Display. + $html = ''; + if ( $objects ) { + $limit = 3; + $total = count( $objects ); + + // Icon. + $html .= ''; + + // Labels. + $labels = array_column( $objects, 'label' ); + $labels = array_slice( $labels, 0, 3 ); + $html .= implode( ', ', $labels ); + + // More. + if ( $total > $limit ) { + $html .= ', ...'; + } + } else { + $html = ' ' . __( 'Various', 'acf' ); + } + + // Filter. + echo acf_esc_html( $html ); + } + + /** + * Renders the number of fields created for the field group in the list table. + * + * @since 6.1.5 + * + * @param array $field_group The main field group array. + * @return void + */ + public function render_admin_table_column_num_fields( $field_group ) { + $field_count = acf_get_field_count( $field_group ); + + if ( ! $field_count || ! is_numeric( $field_count ) ) { + echo ''; + echo '' . esc_html__( 'No fields', 'acf' ) . ''; + return; + } + + // If in JSON but not synced or in trash, the link won't work. + if ( empty( $field_group['ID'] ) || 'trash' === get_post_status( $field_group['ID'] ) ) { + echo esc_html( number_format_i18n( $field_count ) ); + return; + } + + printf( + '%s', + esc_url( admin_url( 'post.php?action=edit&post=' . $field_group['ID'] ) ), + esc_html( number_format_i18n( $field_count ) ) + ); + } + + /** + * Fires when trashing a field group. + * + * @date 8/01/2014 + * @since 5.0.0 + * + * @param int $post_id The post ID. + * @return void + */ + public function trashed_post( $post_id ) { + if ( get_post_type( $post_id ) === $this->post_type ) { + acf_trash_field_group( $post_id ); + } + } + + /** + * Fires when untrashing a field group. + * + * @date 8/01/2014 + * @since 5.0.0 + * + * @param int $post_id The post ID. + * @return void + */ + public function untrashed_post( $post_id ) { + if ( get_post_type( $post_id ) === $this->post_type ) { + acf_untrash_field_group( $post_id ); + } + } + + /** + * Fires when deleting a field group. + * + * @date 8/01/2014 + * @since 5.0.0 + * + * @param int $post_id The post ID. + * @return void + */ + public function deleted_post( $post_id ) { + if ( get_post_type( $post_id ) === $this->post_type ) { + acf_delete_field_group( $post_id ); + } + } + + /** + * Gets the translated action notice text for list table actions (activate, deactivate, sync, etc.). + * + * @since 6.1 + * + * @param string $action The action being performed. + * @param int $count The number of items the action was performed on. + * @return string + */ + public function get_action_notice_text( $action, $count = 1 ) { + $text = ''; + $count = (int) $count; + + switch ( $action ) { + case 'acfactivatecomplete': + $text = sprintf( + /* translators: %s number of field groups activated */ + _n( 'Field group activated.', '%s field groups activated.', $count, 'acf' ), + $count + ); + break; + case 'acfdeactivatecomplete': + $text = sprintf( + /* translators: %s number of field groups deactivated */ + _n( 'Field group deactivated.', '%s field groups deactivated.', $count, 'acf' ), + $count + ); + break; + case 'acfduplicatecomplete': + $text = sprintf( + /* translators: %s number of field groups duplicated */ + _n( 'Field group duplicated.', '%s field groups duplicated.', $count, 'acf' ), + $count + ); + break; + case 'acfsynccomplete': + $text = sprintf( + /* translators: %s number of field groups synchronized */ + _n( 'Field group synchronized.', '%s field groups synchronized.', $count, 'acf' ), + $count + ); + break; + } + + return $text; + } + + } + + // Instantiate. + acf_new_instance( 'ACF_Admin_Field_Groups' ); + +endif; // Class exists check. diff --git a/includes/admin/post-types/admin-post-type.php b/includes/admin/post-types/admin-post-type.php new file mode 100644 index 0000000..c107430 --- /dev/null +++ b/includes/admin/post-types/admin-post-type.php @@ -0,0 +1,369 @@ + '', // Unused. Messages start at index 1. + 1 => $this->post_type_created_message(), // Updated. + 2 => $this->post_type_created_message(), + 3 => __( 'Post type deleted.', 'acf' ), + 4 => __( 'Post type updated.', 'acf' ), + 5 => false, // Post type does not support revisions. + 6 => $this->post_type_created_message( true ), // Created. + 7 => __( 'Post type saved.', 'acf' ), + 8 => __( 'Post type submitted.', 'acf' ), + 9 => __( 'Post type scheduled for.', 'acf' ), + 10 => __( 'Post type draft updated.', 'acf' ), + ); + + return $messages; + } + + /** + * Renders the post type created message. + * + * @since 6.1 + * + * @param bool $created True if the post was just created. + * @return string + */ + public function post_type_created_message( $created = false ) { + global $post_id; + + $title = get_the_title( $post_id ); + + /* translators: %s post type name */ + $item_saved_text = sprintf( __( '%s post type updated', 'acf' ), $title ); + /* translators: %s post type name */ + $add_fields_text = sprintf( __( 'Add fields to %s', 'acf' ), $title ); + + if ( $created ) { + /* translators: %s post type name */ + $item_saved_text = sprintf( __( '%s post type created', 'acf' ), $title ); + } + + $add_fields_link = wp_nonce_url( + admin_url( 'post-new.php?post_type=acf-field-group&use_post_type=' . $post_id ), + 'add-fields-' . $post_id + ); + + $create_post_type_link = admin_url( 'post-new.php?post_type=acf-post-type' ); + + $create_taxonomy_link = wp_nonce_url( + admin_url( 'post-new.php?post_type=acf-taxonomy&use_post_type=' . $post_id ), + 'create-taxonomy-' . $post_id + ); + + ob_start(); ?> +

                                  + + __( 'Post', 'acf' ), + 'Posts' => __( 'Posts', 'acf' ), + 'Page' => __( 'Page', 'acf' ), + 'Pages' => __( 'Pages', 'acf' ), + 'Default' => __( 'Default', 'acf' ), + ) + ); + + parent::admin_enqueue_scripts(); + + do_action( 'acf/post_type/admin_enqueue_scripts' ); + } + + /** + * Sets up all functionality for the post type edit page to work. + * + * @since 3.1.8 + * + * @return void + */ + public function admin_head() { + + // global. + global $post, $acf_post_type; + + // set global var. + $acf_post_type = acf_get_internal_post_type( $post->ID, $this->post_type ); + + if ( ! empty( $acf_post_type['not_registered'] ) ) { + acf_add_admin_notice( + __( 'This post type could not be registered because its key is in use by another post type registered by another plugin or theme.', 'acf' ), + 'error' + ); + } + + // metaboxes. + add_meta_box( 'acf-basic-settings', __( 'Basic Settings', 'acf' ), array( $this, 'mb_basic_settings' ), 'acf-post-type', 'normal', 'high' ); + add_meta_box( 'acf-advanced-settings', __( 'Advanced Settings', 'acf' ), array( $this, 'mb_advanced_settings' ), 'acf-post-type', 'normal', 'high' ); + + // actions. + add_action( 'post_submitbox_misc_actions', array( $this, 'post_submitbox_misc_actions' ), 10, 0 ); + add_action( 'edit_form_after_title', array( $this, 'edit_form_after_title' ), 10, 0 ); + + // filters. + add_filter( 'screen_settings', array( $this, 'screen_settings' ), 10, 1 ); + add_filter( 'get_user_option_screen_layout_acf-post-type', array( $this, 'screen_layout' ), 10, 1 ); + add_filter( 'get_user_option_metaboxhidden_acf-post-type', array( $this, 'force_basic_settings' ), 10, 1 ); + add_filter( 'get_user_option_closedpostboxes_acf-post-type', array( $this, 'force_basic_settings' ), 10, 1 ); + add_filter( 'get_user_option_closedpostboxes_acf-post-type', array( $this, 'force_advanced_settings' ), 10, 1 ); + + // 3rd party hook. + do_action( 'acf/post_type/admin_head' ); + } + + /** + * This action will allow ACF to render metaboxes after the title. + * + * @return void + */ + public function edit_form_after_title() { + + // globals. + global $post; + + // render post data. + acf_form_data( + array( + 'screen' => 'post_type', + 'post_id' => $post->ID, + 'delete_fields' => 0, + 'validation' => 1, + ) + ); + } + + /** + * This function will add extra HTML to the acf form data element + * + * @since 5.3.8 + * + * @param array $args Arguments array to pass through to action. + * @return void + */ + public function form_data( $args ) { + do_action( 'acf/post_type/form_data', $args ); + } + + /** + * This function will append extra l10n strings to the acf JS object + * + * @since 5.3.8 + * + * @param array $l10n The array of translated strings. + * @return array $l10n + */ + public function admin_l10n( $l10n ) { + return apply_filters( 'acf/post_type/admin_l10n', $l10n ); + } + + /** + * Admin footer third party hook support + * + * @since 5.3.2 + * + * @return void + */ + public function admin_footer() { + do_action( 'acf/post_type/admin_footer' ); + } + + /** + * Screen settings html output + * + * @since 3.6.0 + * + * @param string $html Current screen settings HTML. + * @return string $html + */ + public function screen_settings( $html ) { + return $html; + } + + /** + * Sets the "Edit Post Type" screen to use a one-column layout. + * + * @param int $columns Number of columns for layout. + * + * @return int + */ + public function screen_layout( $columns = 0 ) { + return 1; + } + + /** + * Force basic settings to always be visible + * + * @param array $hidden_metaboxes The metaboxes hidden on this page. + * + * @return array + */ + public function force_basic_settings( $hidden_metaboxes ) { + if ( ! is_array( $hidden_metaboxes ) ) { + return $hidden_metaboxes; + } + return array_diff( $hidden_metaboxes, array( 'acf-basic-settings' ) ); + } + + /** + * Force advanced settings to be visible + * + * @param array $hidden_metaboxes The metaboxes hidden on this page. + * + * @return array + */ + public function force_advanced_settings( $hidden_metaboxes ) { + if ( ! is_array( $hidden_metaboxes ) ) { + return $hidden_metaboxes; + } + return array_diff( $hidden_metaboxes, array( 'acf-advanced-settings' ) ); + } + + /** + * This function will customize the publish metabox + * + * @since 5.2.9 + * + * @return void + */ + public function post_submitbox_misc_actions() { + global $acf_post_type; + $status_label = $acf_post_type['active'] ? _x( 'Active', 'post status', 'acf' ) : _x( 'Inactive', 'post status', 'acf' ); + + ?> + + verify_save_post( $post_id, $post ) ) { + return $post_id; + } + + // Disable filters to ensure ACF loads raw data from DB. + acf_disable_filters(); + + // phpcs:disable WordPress.Security.NonceVerification.Missing -- Validated in $this->verify_save_post() above. + // phpcs:disable WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- Sanitized when saved. + $_POST['acf_post_type']['ID'] = $post_id; + $_POST['acf_post_type']['title'] = isset( $_POST['acf_post_type']['labels']['name'] ) ? $_POST['acf_post_type']['labels']['name'] : ''; + + // Save the post type. + acf_update_internal_post_type( $_POST['acf_post_type'], $this->post_type ); // phpcs:ignore WordPress.Security.NonceVerification.Missing -- Validated in verify_save_post + // phpcs:enable WordPress.Security.ValidatedSanitizedInput.InputNotSanitized + // phpcs:enable WordPress.Security.NonceVerification.Missing + + return $post_id; + } + + /** + * Renders HTML for the basic settings metabox. + * + * @since 5.0.0 + * + * @return void + */ + public function mb_basic_settings() { + global $acf_post_type; + + if ( ! acf_is_internal_post_type_key( $acf_post_type['key'], 'acf-post-type' ) ) { + $acf_post_type['key'] = uniqid( 'post_type_' ); + } + + acf_get_view( $this->post_type . '/basic-settings' ); + } + + + /** + * Renders the HTML for the advanced settings metabox. + * + * @since 5.0.0 + * + * @return void + */ + public function mb_advanced_settings() { + acf_get_view( $this->post_type . '/advanced-settings' ); + } + + } + + new ACF_Admin_Post_Type(); + +endif; // Class exists check. + +?> diff --git a/includes/admin/post-types/admin-post-types.php b/includes/admin/post-types/admin-post-types.php new file mode 100644 index 0000000..5345c6e --- /dev/null +++ b/includes/admin/post-types/admin-post-types.php @@ -0,0 +1,379 @@ +post_type}" ) ) { + return; + } + + parent::current_screen(); + + // Run a first-run routine to set some defaults which are stored in user preferences. + if ( ! acf_get_user_setting( 'post-type-first-run', false ) ) { + $option_key = 'manageedit-' . $this->post_type . 'columnshidden'; + $hidden_items = get_user_option( $option_key ); + + if ( ! is_array( $hidden_items ) ) { + $hidden_items = array(); + } + + if ( ! in_array( 'acf-key', $hidden_items ) ) { + $hidden_items[] = 'acf-key'; + } + update_user_option( get_current_user_id(), $option_key, $hidden_items, true ); + + acf_update_user_setting( 'post-type-first-run', true ); + } + } + + /** + * Add any menu items required for post types. + * + * @since 6.1 + */ + public function admin_menu() { + $parent_slug = 'edit.php?post_type=acf-field-group'; + $cap = acf_get_setting( 'capability' ); + add_submenu_page( $parent_slug, __( 'Post Types', 'acf' ), __( 'Post Types', 'acf' ), $cap, 'edit.php?post_type=acf-post-type' ); + } + + /** + * Customizes the admin table columns. + * + * @date 1/4/20 + * @since 5.9.0 + * + * @param array $_columns The columns array. + * @return array + */ + public function admin_table_columns( $_columns ) { + // Set the "no found" label to be our custom HTML for no results. + if ( empty( acf_request_arg( 's' ) ) ) { + global $wp_post_types; + $this->not_found_label = $wp_post_types[ $this->post_type ]->labels->not_found; + $wp_post_types[ $this->post_type ]->labels->not_found = $this->get_not_found_html(); + } + + $columns = array( + 'cb' => $_columns['cb'], + 'title' => $_columns['title'], + 'acf-description' => __( 'Description', 'acf' ), + 'acf-key' => __( 'Key', 'acf' ), + 'acf-taxonomies' => __( 'Taxonomies', 'acf' ), + 'acf-field-groups' => __( 'Field Groups', 'acf' ), + 'acf-count' => __( 'Posts', 'acf' ), + ); + + if ( acf_get_local_json_files( $this->post_type ) ) { + $columns['acf-json'] = __( 'Local JSON', 'acf' ); + } + + return $columns; + } + + /** + * Renders a specific admin table column. + * + * @date 17/4/20 + * @since 5.9.0 + * + * @param string $column_name The name of the column to display. + * @param array $post The main ACF post array. + * @return void + */ + public function render_admin_table_column( $column_name, $post ) { + switch ( $column_name ) { + case 'acf-key': + echo ''; + echo esc_html( $post['key'] ); + break; + + // Description. + case 'acf-description': + if ( is_string( $post['description'] ) && ! empty( $post['description'] ) ) { + echo '' . acf_esc_html( $post['description'] ) . ''; + } else { + echo ''; + echo '' . esc_html__( 'No description', 'acf' ) . ''; + } + break; + + case 'acf-taxonomies': + $this->render_admin_table_column_taxonomies( $post ); + break; + + case 'acf-field-groups': + $this->render_admin_table_column_field_groups( $post ); + break; + + case 'acf-count': + $this->render_admin_table_column_num_posts( $post ); + break; + + // Local JSON. + case 'acf-json': + $this->render_admin_table_column_local_status( $post ); + break; + } + } + + /** + * Renders the field groups attached to the post type in the list table. + * + * @since 6.1 + * + * @param array $post_type The main post type array. + * @return void + */ + public function render_admin_table_column_field_groups( $post_type ) { + $field_groups = acf_get_field_groups( array( 'post_type' => $post_type['post_type'] ) ); + + if ( empty( $field_groups ) ) { + echo ''; + echo '' . esc_html__( 'No field groups', 'acf' ) . ''; + return; + } + + $labels = wp_list_pluck( $field_groups, 'title' ); + $limit = 3; + $shown_labels = array_slice( $labels, 0, $limit ); + $hidden_labels = array_slice( $labels, $limit ); + $text = implode( ', ', $shown_labels ); + + if ( ! empty( $hidden_labels ) ) { + $text .= ', +' . count( $hidden_labels ) . ''; + } + + echo acf_esc_html( $text ); + } + + /** + * Renders the taxonomies attached to the post type in the list table. + * + * @since 6.1 + * + * @param array $post_type The main post type array. + * @return void + */ + public function render_admin_table_column_taxonomies( $post_type ) { + $taxonomies = array(); + $labels = array(); + + if ( is_array( $post_type['taxonomies'] ) ) { + $taxonomies = $post_type['taxonomies']; + } + + $acf_taxonomies = acf_get_internal_post_type_posts( 'acf-taxonomy' ); + + foreach ( $acf_taxonomies as $acf_taxonomy ) { + if ( is_array( $acf_taxonomy['object_type'] ) && in_array( $post_type['post_type'], $acf_taxonomy['object_type'], true ) ) { + $taxonomies[] = $acf_taxonomy['taxonomy']; + } + } + + $taxonomies = array_unique( $taxonomies ); + + foreach ( $taxonomies as $tax_slug ) { + $taxonomy = get_taxonomy( $tax_slug ); + + if ( ! is_object( $taxonomy ) || empty( $taxonomy->label ) ) { + continue; + } + + $labels[] = $taxonomy->label; + } + + if ( empty( $labels ) ) { + echo ''; + echo '' . esc_html__( 'No taxonomies', 'acf' ) . ''; + return; + } + + $limit = 3; + $shown_labels = array_slice( $labels, 0, $limit ); + $hidden_labels = array_slice( $labels, $limit ); + $text = implode( ', ', $shown_labels ); + + if ( ! empty( $hidden_labels ) ) { + $text .= ', +' . count( $hidden_labels ) . ''; + } + + echo acf_esc_html( $text ); + } + + /** + * Renders the number of posts created for the post type in the list table. + * + * @since 6.1 + * + * @param array $post_type The main post type array. + * @return void + */ + public function render_admin_table_column_num_posts( $post_type ) { + $no_posts = ''; + $no_posts .= '' . esc_html__( 'No posts', 'acf' ) . ''; + + // WP doesn't count posts for post types that don't exist. + if ( empty( $post_type['active'] ) || 'trash' === get_post_status( $post_type['ID'] ) ) { + echo acf_esc_html( $no_posts ); + return; + } + + $num_posts = wp_count_posts( $post_type['post_type'] ); + if ( is_object( $num_posts ) && property_exists( $num_posts, 'publish' ) ) { + $num_posts = $num_posts->publish; + } + + if ( ! $num_posts || ! is_numeric( $num_posts ) ) { + echo acf_esc_html( $no_posts ); + return; + } + + printf( + '%s', + esc_url( admin_url( 'edit.php?post_type=' . $post_type['post_type'] ) ), + esc_html( number_format_i18n( $num_posts ) ) + ); + } + + /** + * Gets the translated action notice text for list table actions (activate, deactivate, sync, etc.). + * + * @since 6.1 + * + * @param string $action The action being performed. + * @param int $count The number of items the action was performed on. + * @return string + */ + public function get_action_notice_text( $action, $count = 1 ) { + $text = ''; + $count = (int) $count; + + switch ( $action ) { + case 'acfactivatecomplete': + $text = sprintf( + /* translators: %s number of post types activated */ + _n( 'Post type activated.', '%s post types activated.', $count, 'acf' ), + $count + ); + break; + case 'acfdeactivatecomplete': + $text = sprintf( + /* translators: %s number of post types deactivated */ + _n( 'Post type deactivated.', '%s post types deactivated.', $count, 'acf' ), + $count + ); + break; + case 'acfduplicatecomplete': + $text = sprintf( + /* translators: %s number of post types duplicated */ + _n( 'Post type duplicated.', '%s post types duplicated.', $count, 'acf' ), + $count + ); + break; + case 'acfsynccomplete': + $text = sprintf( + /* translators: %s number of post types synchronized */ + _n( 'Post type synchronized.', '%s post types synchronized.', $count, 'acf' ), + $count + ); + break; + } + + return $text; + } + + /** + * Returns the registration error state. + * + * @since 6.1 + * + * @return string + */ + public function get_registration_error_state() { + return ' ' . _x( 'Registration Failed', 'post status', 'acf' ); + } + + } + + // Instantiate. + acf_new_instance( 'ACF_Admin_Post_Types' ); + +endif; // Class exists check. diff --git a/includes/admin/post-types/admin-taxonomies.php b/includes/admin/post-types/admin-taxonomies.php new file mode 100644 index 0000000..ebebdfa --- /dev/null +++ b/includes/admin/post-types/admin-taxonomies.php @@ -0,0 +1,386 @@ +post_type}" ) ) { + return; + } + + parent::current_screen(); + + // Run a first-run routine to set some defaults which are stored in user preferences. + if ( ! acf_get_user_setting( 'taxonomies-first-run', false ) ) { + $option_key = 'manageedit-' . $this->post_type . 'columnshidden'; + $hidden_items = get_user_option( $option_key ); + + if ( ! is_array( $hidden_items ) ) { + $hidden_items = array(); + } + + if ( ! in_array( 'acf-key', $hidden_items ) ) { + $hidden_items[] = 'acf-key'; + } + update_user_option( get_current_user_id(), $option_key, $hidden_items, true ); + + acf_update_user_setting( 'taxonomies-first-run', true ); + } + } + + /** + * Add any menu items required for taxonomies. + * + * @since 6.1 + */ + public function admin_menu() { + $parent_slug = 'edit.php?post_type=acf-field-group'; + $cap = acf_get_setting( 'capability' ); + add_submenu_page( $parent_slug, __( 'Taxonomies', 'acf' ), __( 'Taxonomies', 'acf' ), $cap, 'edit.php?post_type=acf-taxonomy' ); + } + + /** + * Customizes the admin table columns. + * + * @date 1/4/20 + * @since 5.9.0 + * + * @param array $_columns The columns array. + * @return array + */ + public function admin_table_columns( $_columns ) { + // Set the "no found" label to be our custom HTML for no results. + if ( empty( acf_request_arg( 's' ) ) ) { + global $wp_post_types; + $this->not_found_label = $wp_post_types[ $this->post_type ]->labels->not_found; + $wp_post_types[ $this->post_type ]->labels->not_found = $this->get_not_found_html(); + } + + $columns = array( + 'cb' => $_columns['cb'], + 'title' => $_columns['title'], + 'acf-description' => __( 'Description', 'acf' ), + 'acf-key' => __( 'Key', 'acf' ), + 'acf-post-types' => __( 'Post Types', 'acf' ), + 'acf-field-groups' => __( 'Field Groups', 'acf' ), + 'acf-count' => __( 'Terms', 'acf' ), + ); + + if ( acf_get_local_json_files( $this->post_type ) ) { + $columns['acf-json'] = __( 'Local JSON', 'acf' ); + } + + return $columns; + } + + /** + * Renders a specific admin table column. + * + * @date 17/4/20 + * @since 5.9.0 + * + * @param string $column_name The name of the column to display. + * @param array $post The main ACF post array. + * @return void + */ + public function render_admin_table_column( $column_name, $post ) { + switch ( $column_name ) { + case 'acf-key': + echo ''; + echo esc_html( $post['key'] ); + break; + + // Description. + case 'acf-description': + if ( is_string( $post['description'] ) && ! empty( $post['description'] ) ) { + echo '' . acf_esc_html( $post['description'] ) . ''; + } else { + echo ''; + echo '' . esc_html__( 'No description', 'acf' ) . ''; + } + break; + + case 'acf-field-groups': + $this->render_admin_table_column_field_groups( $post ); + break; + + case 'acf-post-types': + $this->render_admin_table_column_post_types( $post ); + break; + + case 'acf-count': + $this->render_admin_table_column_num_terms( $post ); + break; + + // Local JSON. + case 'acf-json': + $this->render_admin_table_column_local_status( $post ); + break; + } + } + + /** + * Renders the field groups attached to the taxonomy in the list table. + * + * @since 6.1 + * + * @param array $taxonomy The main taxonomy array. + * @return void + */ + public function render_admin_table_column_field_groups( $taxonomy ) { + $field_groups = acf_get_field_groups( array( 'taxonomy' => $taxonomy['taxonomy'] ) ); + + if ( empty( $field_groups ) ) { + echo ''; + echo '' . esc_html__( 'No field groups', 'acf' ) . ''; + return; + } + + $labels = wp_list_pluck( $field_groups, 'title' ); + $limit = 3; + $shown_labels = array_slice( $labels, 0, $limit ); + $hidden_labels = array_slice( $labels, $limit ); + $text = implode( ', ', $shown_labels ); + + if ( ! empty( $hidden_labels ) ) { + $text .= ', +' . count( $hidden_labels ) . ''; + } + + echo acf_esc_html( $text ); + } + + /** + * Renders the post types attached to the taxonomy in the list table. + * + * @since 6.1 + * + * @param array $taxonomy The main taxonomy array. + * @return void + */ + public function render_admin_table_column_post_types( $taxonomy ) { + $post_types = get_post_types( array(), 'objects' ); + $labels = array(); + $object_types = array(); + + if ( ! empty( $taxonomy['object_type'] ) ) { + $object_types = (array) $taxonomy['object_type']; + } + + foreach ( $object_types as $post_type_slug ) { + if ( ! isset( $post_types[ $post_type_slug ] ) ) { + continue; + } + + $post_type = $post_types[ $post_type_slug ]; + + if ( empty( $post_type->label ) ) { + continue; + } + + $labels[] = $post_type->label; + } + + $acf_post_types = acf_get_internal_post_type_posts( 'acf-post-type' ); + + foreach ( $acf_post_types as $acf_post_type ) { + if ( is_array( $acf_post_type['taxonomies'] ) && in_array( $taxonomy['taxonomy'], $acf_post_type['taxonomies'], true ) ) { + $labels[] = $acf_post_type['title']; + } + } + + if ( empty( $labels ) ) { + echo ''; + echo '' . esc_html__( 'No post types', 'acf' ) . ''; + return; + } + + $labels = array_unique( $labels ); + $limit = 3; + $shown_labels = array_slice( $labels, 0, $limit ); + $hidden_labels = array_slice( $labels, $limit ); + $text = implode( ', ', $shown_labels ); + + if ( ! empty( $hidden_labels ) ) { + $text .= ', +' . count( $hidden_labels ) . ''; + } + + echo acf_esc_html( $text ); + } + + /** + * Renders the number of terms created for the taxonomy in the list table. + * + * @since 6.1 + * + * @param array $taxonomy The main taxonomy array. + * @return void + */ + public function render_admin_table_column_num_terms( $taxonomy ) { + $no_terms = ''; + $no_terms .= '' . esc_html__( 'No terms', 'acf' ) . ''; + + // WP doesn't count terms for taxonomies that don't exist and instead returns WP_Error. + if ( empty( $taxonomy['active'] ) || 'trash' === get_post_status( $taxonomy['ID'] ) ) { + echo acf_esc_html( $no_terms ); + return; + } + + $num_terms = wp_count_terms( + $taxonomy['taxonomy'], + array( + 'hide_empty' => false, + 'parent' => 0, + ) + ); + + if ( ! $num_terms || ! is_numeric( $num_terms ) ) { + echo acf_esc_html( $no_terms ); + return; + } + + printf( + '%s', + esc_url( admin_url( 'edit-tags.php?taxonomy=' . $taxonomy['taxonomy'] ) ), + esc_html( number_format_i18n( $num_terms ) ) + ); + } + + /** + * Gets the translated action notice text for list table actions (activate, deactivate, sync, etc.). + * + * @since 6.1 + * + * @param string $action The action being performed. + * @param int $count The number of items the action was performed on. + * @return string + */ + public function get_action_notice_text( $action, $count = 1 ) { + $text = ''; + $count = (int) $count; + + switch ( $action ) { + case 'acfactivatecomplete': + $text = sprintf( + /* translators: %s number of taxonomies activated */ + _n( 'Taxonomy activated.', '%s taxonomies activated.', $count, 'acf' ), + $count + ); + break; + case 'acfdeactivatecomplete': + $text = sprintf( + /* translators: %s number of taxonomies deactivated */ + _n( 'Taxonomy deactivated.', '%s taxonomies deactivated.', $count, 'acf' ), + $count + ); + break; + case 'acfduplicatecomplete': + $text = sprintf( + /* translators: %s number of taxonomies duplicated */ + _n( 'Taxonomy duplicated.', '%s taxonomies duplicated.', $count, 'acf' ), + $count + ); + break; + case 'acfsynccomplete': + $text = sprintf( + /* translators: %s number of taxonomies synchronized */ + _n( 'Taxonomy synchronized.', '%s taxonomies synchronized.', $count, 'acf' ), + $count + ); + break; + } + + return $text; + } + + /** + * Returns the registration error state. + * + * @since 6.1 + * + * @return string + */ + public function get_registration_error_state() { + return ' ' . _x( 'Registration Failed', 'post status', 'acf' ); + } + + } + + // Instantiate. + acf_new_instance( 'ACF_Admin_Taxonomies' ); + +endif; // Class exists check. diff --git a/includes/admin/post-types/admin-taxonomy.php b/includes/admin/post-types/admin-taxonomy.php new file mode 100644 index 0000000..30febf0 --- /dev/null +++ b/includes/admin/post-types/admin-taxonomy.php @@ -0,0 +1,368 @@ + '', // Unused. Messages start at index 1. + 1 => $this->taxonomy_saved_message(), + 2 => __( 'Taxonomy updated.', 'acf' ), + 3 => __( 'Taxonomy deleted.', 'acf' ), + 4 => $this->taxonomy_saved_message(), + 5 => false, // taxonomy does not support revisions. + 6 => $this->taxonomy_saved_message( true ), + 7 => __( 'Taxonomy saved.', 'acf' ), + 8 => __( 'Taxonomy submitted.', 'acf' ), + 9 => __( 'Taxonomy scheduled for.', 'acf' ), + 10 => __( 'Taxonomy draft updated.', 'acf' ), + ); + + return $messages; + } + + /** + * Renders the post type created message. + * + * @since 6.1 + * + * @param bool $created True if the post was just created. + * @return string + */ + public function taxonomy_saved_message( $created = false ) { + global $post_id; + + $title = get_the_title( $post_id ); + + /* translators: %s taxonomy name */ + $item_saved_text = sprintf( __( '%s taxonomy updated', 'acf' ), $title ); + /* translators: %s taxonomy name */ + $add_fields_text = sprintf( __( 'Add fields to %s', 'acf' ), $title ); + + if ( $created ) { + /* translators: %s taxonomy name */ + $item_saved_text = sprintf( __( '%s taxonomy created', 'acf' ), $title ); + } + + $add_fields_link = wp_nonce_url( + admin_url( 'post-new.php?post_type=acf-field-group&use_taxonomy=' . $post_id ), + 'add-fields-' . $post_id + ); + + $create_taxonomy_link = admin_url( 'post-new.php?post_type=acf-taxonomy' ); + + $create_post_type_link = wp_nonce_url( + admin_url( 'post-new.php?post_type=acf-post-type&use_taxonomy=' . $post_id ), + 'create-post-type-' . $post_id + ); + + ob_start(); ?> +

                                  + + __( 'Tag', 'acf' ), + 'Tags' => __( 'Tags', 'acf' ), + 'Category' => __( 'Category', 'acf' ), + 'Categories' => __( 'Categories', 'acf' ), + 'Default' => __( 'Default', 'acf' ), + ) + ); + + parent::admin_enqueue_scripts(); + + do_action( 'acf/taxonomy/admin_enqueue_scripts' ); + } + + /** + * Sets up all functionality for the taxonomy edit page to work. + * + * @since 3.1.8 + * + * @return void + */ + public function admin_head() { + + // global. + global $post, $acf_taxonomy; + + // set global var. + $acf_taxonomy = acf_get_internal_post_type( $post->ID, $this->post_type ); + + if ( ! empty( $acf_taxonomy['not_registered'] ) ) { + acf_add_admin_notice( + __( 'This taxonomy could not be registered because its key is in use by another taxonomy registered by another plugin or theme.', 'acf' ), + 'error' + ); + } + + // metaboxes. + add_meta_box( 'acf-basic-settings', __( 'Basic Settings', 'acf' ), array( $this, 'mb_basic_settings' ), 'acf-taxonomy', 'normal', 'high' ); + add_meta_box( 'acf-advanced-settings', __( 'Advanced Settings', 'acf' ), array( $this, 'mb_advanced_settings' ), 'acf-taxonomy', 'normal', 'high' ); + + // actions. + add_action( 'post_submitbox_misc_actions', array( $this, 'post_submitbox_misc_actions' ), 10, 0 ); + add_action( 'edit_form_after_title', array( $this, 'edit_form_after_title' ), 10, 0 ); + + // filters. + add_filter( 'screen_settings', array( $this, 'screen_settings' ), 10, 1 ); + add_filter( 'get_user_option_screen_layout_acf-taxonomy', array( $this, 'screen_layout' ), 10, 1 ); + add_filter( 'get_user_option_metaboxhidden_acf-taxonomy', array( $this, 'force_basic_settings' ), 10, 1 ); + add_filter( 'get_user_option_closedpostboxes_acf-taxonomy', array( $this, 'force_basic_settings' ), 10, 1 ); + add_filter( 'get_user_option_closedpostboxes_acf-taxonomy', array( $this, 'force_advanced_settings' ), 10, 1 ); + + // 3rd party hook. + do_action( 'acf/taxonomy/admin_head' ); + } + + /** + * This action will allow ACF to render metaboxes after the title. + * + * @return void + */ + public function edit_form_after_title() { + + // globals. + global $post; + + // render post data. + acf_form_data( + array( + 'screen' => 'taxonomy', + 'post_id' => $post->ID, + 'delete_fields' => 0, + 'validation' => 1, + ) + ); + } + + /** + * This function will add extra HTML to the acf form data element + * + * @since 5.3.8 + * + * @param array $args Arguments array to pass through to action. + * @return void + */ + public function form_data( $args ) { + do_action( 'acf/taxonomy/form_data', $args ); + } + + /** + * This function will append extra l10n strings to the acf JS object + * + * @since 5.3.8 + * + * @param array $l10n The array of translated strings. + * @return array $l10n + */ + public function admin_l10n( $l10n ) { + return apply_filters( 'acf/taxonomy/admin_l10n', $l10n ); + } + + /** + * Admin footer third party hook support + * + * @since 5.3.2 + * + * @return void + */ + public function admin_footer() { + do_action( 'acf/taxonomy/admin_footer' ); + } + + /** + * Screen settings html output + * + * @since 3.6.0 + * + * @param string $html Current screen settings HTML. + * @return string $html + */ + public function screen_settings( $html ) { + return $html; + } + + /** + * Sets the "Edit Field Group" screen to use a one-column layout. + * + * @param int $columns Number of columns for layout. + * + * @return int + */ + public function screen_layout( $columns = 0 ) { + return 1; + } + + /** + * Force basic settings to always be visible + * + * @param array $hidden_metaboxes The metaboxes hidden on this page. + * + * @return array + */ + public function force_basic_settings( $hidden_metaboxes ) { + if ( ! is_array( $hidden_metaboxes ) ) { + return $hidden_metaboxes; + } + return array_diff( $hidden_metaboxes, array( 'acf-basic-settings' ) ); + } + + /** + * Force advanced settings to be visible + * + * @param array $hidden_metaboxes The metaboxes hidden on this page. + * + * @return array + */ + public function force_advanced_settings( $hidden_metaboxes ) { + if ( ! is_array( $hidden_metaboxes ) ) { + return $hidden_metaboxes; + } + return array_diff( $hidden_metaboxes, array( 'acf-advanced-settings' ) ); + } + + /** + * This function will customize the publish metabox + * + * @since 5.2.9 + * + * @return void + */ + public function post_submitbox_misc_actions() { + global $acf_taxonomy; + $status_label = $acf_taxonomy['active'] ? _x( 'Active', 'post status', 'acf' ) : _x( 'Inactive', 'post status', 'acf' ); + + ?> + + verify_save_post( $post_id, $post ) ) { + return $post_id; + } + + // Disable filters to ensure ACF loads raw data from DB. + acf_disable_filters(); + + // phpcs:disable WordPress.Security.NonceVerification.Missing -- Validated in $this->verify_save_post() above. + // phpcs:disable WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- Sanitized when saved. + $_POST['acf_taxonomy']['ID'] = $post_id; + $_POST['acf_taxonomy']['title'] = isset( $_POST['acf_taxonomy']['labels']['name'] ) ? $_POST['acf_taxonomy']['labels']['name'] : ''; + + // Save the taxonomy. + acf_update_internal_post_type( $_POST['acf_taxonomy'], $this->post_type ); // phpcs:ignore WordPress.Security.NonceVerification.Missing -- Validated in verify_save_post + // phpcs:enable WordPress.Security.ValidatedSanitizedInput.InputNotSanitized + // phpcs:enable WordPress.Security.NonceVerification.Missing + + return $post_id; + } + + /** + * Renders HTML for the 'acf-taxonomy-fields' metabox. + * + * @since 5.0.0 + * + * @return void + */ + public function mb_basic_settings() { + global $acf_taxonomy; + + if ( ! acf_is_internal_post_type_key( $acf_taxonomy['key'], 'acf-taxonomy' ) ) { + $acf_taxonomy['key'] = uniqid( 'taxonomy_' ); + } + + acf_get_view( $this->post_type . '/basic-settings' ); + } + + + /** + * Renders the HTML for the 'acf-taxonomy-options' metabox. + * + * @since 5.0.0 + * + * @return void + */ + public function mb_advanced_settings() { + acf_get_view( $this->post_type . '/advanced-settings' ); + } + + } + + new ACF_Admin_Taxonomy(); +endif; // Class exists check. + +?> diff --git a/includes/admin/tools/class-acf-admin-tool-export.php b/includes/admin/tools/class-acf-admin-tool-export.php index f506dc6..d2dca3b 100644 --- a/includes/admin/tools/class-acf-admin-tool-export.php +++ b/includes/admin/tools/class-acf-admin-tool-export.php @@ -1,596 +1,566 @@ -name = 'export'; + $this->title = __( 'Export Field Groups', 'acf' ); + + // active + if ( $this->is_active() ) { + $this->title .= ' - ' . __( 'Generate PHP', 'acf' ); + } -class ACF_Admin_Tool_Export extends ACF_Admin_Tool { - - /** @var string View context */ - var $view = ''; - - - /** @var array Export data */ - var $json = ''; - - - /** - * initialize - * - * This function will initialize the admin tool - * - * @date 10/10/17 - * @since 5.6.3 - * - * @param n/a - * @return n/a - */ - - function initialize() { - - // vars - $this->name = 'export'; - $this->title = __("Export Field Groups", 'acf'); - - - // active - if( $this->is_active() ) { - $this->title .= ' - ' . __('Generate PHP', 'acf'); - } - - } - - - /** - * submit - * - * This function will run when the tool's form has been submit - * - * @date 10/10/17 - * @since 5.6.3 - * - * @param n/a - * @return n/a - */ - - function submit() { - - // vars - $action = acf_maybe_get_POST('action'); - - - // download - if( $action === 'download' ) { - - $this->submit_download(); - - // generate - } elseif( $action === 'generate' ) { - - $this->submit_generate(); - - } - - } - - - /** - * submit_download - * - * description - * - * @date 17/10/17 - * @since 5.6.3 - * - * @param n/a - * @return n/a - */ - - function submit_download() { - - // vars - $json = $this->get_selected(); - - - // validate - if( $json === false ) { - return acf_add_admin_notice( __("No field groups selected", 'acf'), 'warning' ); - } - - - // headers - $file_name = 'acf-export-' . date('Y-m-d') . '.json'; - header( "Content-Description: File Transfer" ); - header( "Content-Disposition: attachment; filename={$file_name}" ); - header( "Content-Type: application/json; charset=utf-8" ); - - - // return - echo acf_json_encode( $json ); - die; - - } - - - /** - * submit_generate - * - * description - * - * @date 17/10/17 - * @since 5.6.3 - * - * @param n/a - * @return n/a - */ - - function submit_generate() { - - // vars - $keys = $this->get_selected_keys(); - - - // validate - if( !$keys ) { - return acf_add_admin_notice( __("No field groups selected", 'acf'), 'warning' ); - } - - - // url - $url = add_query_arg( 'keys', implode('+', $keys), $this->get_url() ); - - - // redirect - wp_redirect( $url ); - exit; - - } - - - /** - * load - * - * description - * - * @date 21/10/17 - * @since 5.6.3 - * - * @param n/a - * @return n/a - */ - - function load() { - - // active - if( $this->is_active() ) { - - // get selected keys - $selected = $this->get_selected_keys(); - - - // add notice - if( $selected ) { - $count = count($selected); - $text = sprintf( _n( 'Exported 1 field group.', 'Exported %s field groups.', $count, 'acf' ), $count ); - acf_add_admin_notice( $text, 'success' ); - } } - } - - - /** - * html - * - * This function will output the metabox HTML - * - * @date 10/10/17 - * @since 5.6.3 - * - * @param n/a - * @return n/a - */ - - function html() { - - // single (generate PHP) - if( $this->is_active() ) { - - $this->html_single(); - - // archive - } else { - - $this->html_archive(); - + + /** + * submit + * + * This function will run when the tool's form has been submit + * + * @date 10/10/17 + * @since 5.6.3 + * + * @param n/a + * @return n/a + */ + + function submit() { + + // vars + $action = acf_maybe_get_POST( 'action' ); + + // download + if ( $action === 'download' ) { + + $this->submit_download(); + + // generate + } elseif ( $action === 'generate' ) { + + $this->submit_generate(); + + } + } - - } - - - /** - * html_field_selection - * - * description - * - * @date 24/10/17 - * @since 5.6.3 - * - * @param n/a - * @return n/a - */ - - function html_field_selection() { - - // vars - $choices = array(); - $selected = $this->get_selected_keys(); - $field_groups = acf_get_field_groups(); - - - // loop - if( $field_groups ) { - foreach( $field_groups as $field_group ) { - $choices[ $field_group['key'] ] = esc_html( $field_group['title'] ); - } + + + /** + * submit_download + * + * description + * + * @date 17/10/17 + * @since 5.6.3 + * + * @param n/a + * @return n/a + */ + + function submit_download() { + + // vars + $json = $this->get_selected(); + + // validate + if ( $json === false ) { + return acf_add_admin_notice( __( 'No field groups selected', 'acf' ), 'warning' ); + } + + // headers + $file_name = 'acf-export-' . date( 'Y-m-d' ) . '.json'; + header( 'Content-Description: File Transfer' ); + header( "Content-Disposition: attachment; filename={$file_name}" ); + header( 'Content-Type: application/json; charset=utf-8' ); + + // return + echo acf_json_encode( $json ) . "\r\n"; + die; + } - - - // render - acf_render_field_wrap(array( - 'label' => __('Select Field Groups', 'acf'), - 'type' => 'checkbox', - 'name' => 'keys', - 'prefix' => false, - 'value' => $selected, - 'toggle' => true, - 'choices' => $choices, - )); - - } - - - /** - * html_panel_selection - * - * description - * - * @date 21/10/17 - * @since 5.6.3 - * - * @param n/a - * @return n/a - */ - - function html_panel_selection() { - - ?> -
                                  -

                                  -
                                  + + + /** + * submit_generate + * + * description + * + * @date 17/10/17 + * @since 5.6.3 + * + * @param n/a + * @return n/a + */ + + function submit_generate() { + + // vars + $keys = $this->get_selected_keys(); + + // validate + if ( ! $keys ) { + return acf_add_admin_notice( __( 'No field groups selected', 'acf' ), 'warning' ); + } + + // url + $url = add_query_arg( 'keys', implode( '+', $keys ), $this->get_url() ); + + // redirect + wp_redirect( $url ); + exit; + + } + + + /** + * load + * + * description + * + * @date 21/10/17 + * @since 5.6.3 + * + * @param n/a + * @return n/a + */ + + function load() { + + // active + if ( $this->is_active() ) { + + // get selected keys + $selected = $this->get_selected_keys(); + + // add notice + if ( $selected ) { + $count = count( $selected ); + $text = sprintf( _n( 'Exported 1 item.', 'Exported %s items.', $count, 'acf' ), $count ); + acf_add_admin_notice( $text, 'success' ); + } + } + + } + + + /** + * html + * + * This function will output the metabox HTML + * + * @date 10/10/17 + * @since 5.6.3 + * + * @param n/a + * @return n/a + */ + + function html() { + + // single (generate PHP) + if ( $this->is_active() ) { + + $this->html_single(); + + // archive + } else { + + $this->html_archive(); + + } + + } + + + /** + * Renders the checkboxes to select items to export. + * + * @date 24/10/17 + * @since 5.6.3 + * + * @return void + */ + public function html_field_selection() { + // Ensure `l10n_var_export` is always false at the point we're outputting the options. + acf_update_setting( 'l10n_var_export', false ); + // Reset the field-groups store which may have been corrupted by export. + $store = acf_get_store( 'field-groups' ); + if ( $store ) { + $store->reset(); + } + + $choices = array(); + $selected = $this->get_selected_keys(); + $field_groups = acf_get_internal_post_type_posts( 'acf-field-group' ); + + if ( $field_groups ) { + foreach ( $field_groups as $field_group ) { + $choices[ $field_group['key'] ] = esc_html( $field_group['title'] ); + } + } + + acf_render_field_wrap( + array( + 'label' => __( 'Select Field Groups', 'acf' ), + 'type' => 'checkbox', + 'name' => 'keys', + 'prefix' => false, + 'value' => $selected, + 'toggle' => true, + 'choices' => $choices, + ) + ); + + $choices = array(); + $selected = $this->get_selected_keys(); + $post_types = acf_get_internal_post_type_posts( 'acf-post-type' ); + + if ( $post_types ) { + foreach ( $post_types as $post_type ) { + $choices[ $post_type['key'] ] = esc_html( $post_type['title'] ); + } + + acf_render_field_wrap( + array( + 'label' => __( 'Select Post Types', 'acf' ), + 'type' => 'checkbox', + 'name' => 'post_type_keys', + 'prefix' => false, + 'value' => $selected, + 'toggle' => true, + 'choices' => $choices, + ) + ); + } + + $choices = array(); + $selected = $this->get_selected_keys(); + $taxonomies = acf_get_internal_post_type_posts( 'acf-taxonomy' ); + + if ( $taxonomies ) { + foreach ( $taxonomies as $taxonomy ) { + $choices[ $taxonomy['key'] ] = esc_html( $taxonomy['title'] ); + } + + acf_render_field_wrap( + array( + 'label' => __( 'Select Taxonomies', 'acf' ), + 'type' => 'checkbox', + 'name' => 'taxonomy_keys', + 'prefix' => false, + 'value' => $selected, + 'toggle' => true, + 'choices' => $choices, + ) + ); + } + } + + /** + * Renders the side panel for selecting ACF items to export via PHP. + * + * @date 21/10/17 + * @since 5.6.3 + * + * @return void + */ + public function html_panel_selection() { + ?> +
                                  html_field_selection(); ?>
                                  -
                                  - +
                                  -

                                  +

                                  - __('Empty settings', 'acf'), - 'type' => 'select', - 'name' => 'minimal', - 'prefix' => false, - 'value' => '', - 'choices' => array( - 'all' => __('Include all settings', 'acf'), - 'minimal' => __('Ignore empty settings', 'acf'), + 'label' => __('Empty settings', 'acf'), + 'type' => 'select', + 'name' => 'minimal', + 'prefix' => false, + 'value' => '', + 'choices' => array( + 'all' => __('Include all settings', 'acf'), + 'minimal' => __('Ignore empty settings', 'acf'), ) )); -*/ - + */ + ?>
                                  - -

                                  -
                                  - html_field_selection(); ?> -
                                  -

                                  - - -

                                  - -
                                  -
                                  - html_generate(); ?> -
                                  -
                                  - html_panel_selection(); ?> -

                                  - -

                                  -
                                  -
                                  - get_selected(); - $str_replace = array( - " " => "\t", - "'!!__(!!\'" => "__('", - "!!\', !!\'" => "', '", - "!!\')!!'" => "')", - "array (" => "array(" - ); - $preg_replace = array( - '/([\t\r\n]+?)array/' => 'array', - '/[0-9]+ => array/' => 'array' - ); + -

                                  - -

                                  - -

                                  - - get_selected_keys(); - $json = array(); - - - // bail early if no keys - if( !$selected ) return false; - - - // construct JSON - foreach( $selected as $key ) { - - // load field group - $field_group = acf_get_field_group( $key ); - - - // validate field group - if( empty($field_group) ) continue; - - - // load fields - $field_group['fields'] = acf_get_fields( $field_group ); - - - // prepare for export - $field_group = acf_prepare_field_group_for_export( $field_group ); - - - // add to json array - $json[] = $field_group; - - } - - - // return - return $json; - - } -} + } -// initialize -acf_register_admin_tool( 'ACF_Admin_Tool_Export' ); + echo ''; + ?> +

                                  + +

                                  + + get_selected_keys(); + $json = array(); + + if ( ! $selected ) { + return false; + } + + foreach ( $selected as $key ) { + $post_type = acf_determine_internal_post_type( $key ); + $post = acf_get_internal_post_type( $key, $post_type ); + + if ( empty( $post ) ) { + continue; + } + + if ( 'acf-field-group' === $post_type ) { + $post['fields'] = acf_get_fields( $post ); + } + + $post = acf_prepare_internal_post_type_for_export( $post, $post_type ); + $json[] = $post; + } + + return $json; + } + + } + + // initialize + acf_register_admin_tool( 'ACF_Admin_Tool_Export' ); endif; // class_exists check -?> \ No newline at end of file +?> diff --git a/includes/admin/tools/class-acf-admin-tool-import.php b/includes/admin/tools/class-acf-admin-tool-import.php index 1faaccd..96cf765 100644 --- a/includes/admin/tools/class-acf-admin-tool-import.php +++ b/includes/admin/tools/class-acf-admin-tool-import.php @@ -1,157 +1,302 @@ -name = 'import'; - $this->title = __("Import Field Groups", 'acf'); - $this->icon = 'dashicons-upload'; - - } - - - /** - * html - * - * This function will output the metabox HTML - * - * @date 10/10/17 - * @since 5.6.3 - * - * @param n/a - * @return n/a - */ - - function html() { - - ?> -

                                  -
                                  - __('Select File', 'acf'), - 'type' => 'file', - 'name' => 'acf_import_file', - 'value' => false, - 'uploader' => 'basic', - )); - - ?> -
                                  -

                                  - -

                                  - ID; - } - - // Import field group. - $field_group = acf_import_field_group( $field_group ); - - // append message - $ids[] = $field_group['ID']; - } - - // Count number of imported field groups. - $total = count($ids); - - // Generate text. - $text = sprintf( _n( 'Imported 1 field group', 'Imported %s field groups', $total, 'acf' ), $total ); - - // Add links to text. - $links = array(); - foreach( $ids as $id ) { - $links[] = '' . get_the_title( $id ) . ''; - } - $text .= ' ' . implode( ', ', $links ); - - // Add notice - acf_add_admin_notice( $text, 'success' ); - } +if ( ! defined( 'ABSPATH' ) ) { + exit; // Exit if accessed directly } -// initialize -acf_register_admin_tool( 'ACF_Admin_Tool_Import' ); +if ( ! class_exists( 'ACF_Admin_Tool_Import' ) ) : -endif; // class_exists check + class ACF_Admin_Tool_Import extends ACF_Admin_Tool { -?> \ No newline at end of file + /** + * initialize + * + * This function will initialize the admin tool + * + * @date 10/10/17 + * @since 5.6.3 + * + * @param n/a + * @return n/a + */ + + function initialize() { + + // vars + $this->name = 'import'; + $this->title = __( 'Import Field Groups', 'acf' ); + $this->icon = 'dashicons-upload'; + + } + + + /** + * html + * + * This function will output the metabox HTML + * + * @date 10/10/17 + * @since 5.6.3 + * + * @param n/a + * @return n/a + */ + + function html() { + + ?> +
                                  +

                                  +
                                  ?
                                  +
                                  +
                                  +
                                  + __( 'Select File', 'acf' ), + 'type' => 'file', + 'name' => 'acf_import_file', + 'value' => false, + 'uploader' => 'basic', + ) + ); + + ?> +
                                  +

                                  + +

                                  + + +
                                  + __( 'Import from Custom Post Type UI', 'acf' ), + 'type' => 'checkbox', + 'name' => 'acf_import_cptui', + 'choices' => $choices, + 'toggle' => true, + ) + ); + ?> +
                                  + ' . esc_html__( 'Importing a Post Type or Taxonomy with the same key as one that already exists will overwrite the settings for the existing Post Type or Taxonomy with those of the import.', 'acf' ) . '

                                  '; + } + ?> +

                                  + +

                                  + +
                                  + import_cpt_ui( $import ); + } + + // Check file size. + if ( empty( $_FILES['acf_import_file']['size'] ) ) { + return acf_add_admin_notice( __( 'No file selected', 'acf' ), 'warning' ); + } + + $file = acf_sanitize_files_array( $_FILES['acf_import_file'] ); + + // Check errors. + if ( $file['error'] ) { + return acf_add_admin_notice( __( 'Error uploading file. Please try again', 'acf' ), 'warning' ); + } + + // Check file type. + if ( pathinfo( $file['name'], PATHINFO_EXTENSION ) !== 'json' ) { + return acf_add_admin_notice( __( 'Incorrect file type', 'acf' ), 'warning' ); + } + + // Read JSON. + $json = file_get_contents( $file['tmp_name'] ); + $json = json_decode( $json, true ); + + // Check if empty. + if ( ! $json || ! is_array( $json ) ) { + return acf_add_admin_notice( __( 'Import file empty', 'acf' ), 'warning' ); + } + + // Ensure $json is an array of posts. + if ( isset( $json['key'] ) ) { + $json = array( $json ); + } + + // Remember imported post ids. + $ids = array(); + + // Loop over json. + foreach ( $json as $to_import ) { + // Search database for existing post. + $post_type = acf_determine_internal_post_type( $to_import['key'] ); + $post = acf_get_internal_post_type_post( $to_import['key'], $post_type ); + + if ( $post ) { + $to_import['ID'] = $post->ID; + } + + // Import the post. + $to_import = acf_import_internal_post_type( $to_import, $post_type ); + + // Append message. + $ids[] = $to_import['ID']; + } + + // Count number of imported posts. + $total = count( $ids ); + + // Generate text. + $text = sprintf( _n( 'Imported 1 item', 'Imported %s items', $total, 'acf' ), $total ); + + // Add links to text. + $links = array(); + foreach ( $ids as $id ) { + $links[] = '' . get_the_title( $id ) . ''; + } + $text .= ' ' . implode( ', ', $links ); + + // Add notice. + return acf_add_admin_notice( $text, 'success' ); + //phpcs:enable WordPress.Security.NonceVerification.Missing + } + + /** + * Handles the import of CPTUI post types and taxonomies. + * + * @since 6.1 + * + * @param array $import_args What to import. + * @return ACF_Admin_Notice + */ + public function import_cpt_ui( $import_args ) { + if ( ! is_array( $import_args ) ) { + return acf_add_admin_notice( __( 'Nothing from Custom Post Type UI plugin selected for import.', 'acf' ), 'warning' ); + } + + $imported = array(); + + // Import any post types. + if ( in_array( 'post_types', $import_args, true ) ) { + $cptui_post_types = get_option( 'cptui_post_types' ); + $instance = acf_get_internal_post_type_instance( 'acf-post-type' ); + + if ( ! is_array( $cptui_post_types ) || ! $instance ) { + return acf_add_admin_notice( __( 'Failed to import post types.', 'acf' ), 'warning' ); + } + + foreach ( $cptui_post_types as $post_type ) { + $result = $instance->import_cptui_post_type( $post_type ); + + if ( is_array( $result ) && isset( $result['ID'] ) ) { + $imported[] = (int) $result['ID']; + } + } + } + + // Import any taxonomies. + if ( in_array( 'taxonomies', $import_args, true ) ) { + $cptui_taxonomies = get_option( 'cptui_taxonomies' ); + $instance = acf_get_internal_post_type_instance( 'acf-taxonomy' ); + + if ( ! is_array( $cptui_taxonomies ) || ! $instance ) { + return acf_add_admin_notice( __( 'Failed to import taxonomies.', 'acf' ), 'warning' ); + } + + foreach ( $cptui_taxonomies as $taxonomy ) { + $result = $instance->import_cptui_taxonomy( $taxonomy ); + + if ( is_array( $result ) && isset( $result['ID'] ) ) { + $imported[] = (int) $result['ID']; + } + } + } + + if ( ! empty( $imported ) ) { + // Generate text. + $total = count( $imported ); + /* translators: %d - number of items imported from CPTUI */ + $text = sprintf( _n( 'Imported %d item from Custom Post Type UI -', 'Imported %d items from Custom Post Type UI -', $total, 'acf' ), $total ); + + // Add links to text. + $links = array(); + foreach ( $imported as $id ) { + $links[] = '' . get_the_title( $id ) . ''; + } + + $text .= ' ' . implode( ', ', $links ); + $text .= __( '. The Custom Post Type UI plugin can be deactivated.', 'acf' ); + + return acf_add_admin_notice( $text, 'success' ); + } + + return acf_add_admin_notice( __( 'Nothing to import', 'acf' ), 'warning' ); + } + + } + + // Initialize. + acf_register_admin_tool( 'ACF_Admin_Tool_Import' ); + +endif; // class_exists check. + +?> diff --git a/includes/admin/tools/class-acf-admin-tool.php b/includes/admin/tools/class-acf-admin-tool.php index 9f4c683..f590ad9 100644 --- a/includes/admin/tools/class-acf-admin-tool.php +++ b/includes/admin/tools/class-acf-admin-tool.php @@ -1,195 +1,194 @@ -name; - } - - - /** - * get_title - * - * This function will return the Tool's title - * - * @date 19/10/17 - * @since 5.6.3 - * - * @param n/a - * @return n/a - */ - - function get_title() { - return $this->title; - } - - - /** - * get_url - * - * This function will return the Tool's title - * - * @date 19/10/17 - * @since 5.6.3 - * - * @param n/a - * @return n/a - */ - - function get_url() { - return acf_get_admin_tool_url( $this->name ); - } - - - /** - * is_active - * - * This function will return true if the tool is active - * - * @date 19/10/17 - * @since 5.6.3 - * - * @param n/a - * @return bool - */ - - function is_active() { - return acf_maybe_get_GET('tool') === $this->name; - } - - - /* - * __construct - * - * This function will setup the class functionality - * - * @type function - * @date 27/6/17 - * @since 5.6.0 - * - * @param n/a - * @return n/a - */ - - function __construct() { - - // initialize - $this->initialize(); - - } - - - /** - * initialize - * - * This function will initialize the admin tool - * - * @date 10/10/17 - * @since 5.6.3 - * - * @param n/a - * @return n/a - */ - - function initialize() { - - /* do nothing */ - - } - - - - /** - * load - * - * This function is called during the admin page load - * - * @date 10/10/17 - * @since 5.6.3 - * - * @param n/a - * @return n/a - */ - - function load() { - - /* do nothing */ - - } - - - /** - * html - * - * This function will output the metabox HTML - * - * @date 10/10/17 - * @since 5.6.3 - * - * @param n/a - * @return n/a - */ - - function html() { - - - - } - - - /** - * submit - * - * This function will run when the tool's form has been submit - * - * @date 10/10/17 - * @since 5.6.3 - * - * @param n/a - * @return n/a - */ - - function submit() { - - - } - - +if ( ! defined( 'ABSPATH' ) ) { + exit; // Exit if accessed directly } +if ( ! class_exists( 'ACF_Admin_Tool' ) ) : + + class ACF_Admin_Tool { + + + /** @var string Tool name */ + var $name = ''; + + + /** @var string Tool title */ + var $title = ''; + + + /** @var string Dashicon slug */ + var $icon = ''; + + + /** @var boolean Redirect form to single */ + // var $redirect = false; + + + /** + * get_name + * + * This function will return the Tool's name + * + * @date 19/10/17 + * @since 5.6.3 + * + * @param n/a + * @return n/a + */ + + function get_name() { + return $this->name; + } + + + /** + * get_title + * + * This function will return the Tool's title + * + * @date 19/10/17 + * @since 5.6.3 + * + * @param n/a + * @return n/a + */ + + function get_title() { + return $this->title; + } + + + /** + * get_url + * + * This function will return the Tool's title + * + * @date 19/10/17 + * @since 5.6.3 + * + * @param n/a + * @return n/a + */ + + function get_url() { + return acf_get_admin_tool_url( $this->name ); + } + + + /** + * is_active + * + * This function will return true if the tool is active + * + * @date 19/10/17 + * @since 5.6.3 + * + * @param n/a + * @return bool + */ + + function is_active() { + return acf_maybe_get_GET( 'tool' ) === $this->name; + } + + + /* + * __construct + * + * This function will setup the class functionality + * + * @type function + * @date 27/6/17 + * @since 5.6.0 + * + * @param n/a + * @return n/a + */ + + function __construct() { + + // initialize + $this->initialize(); + + } + + + /** + * initialize + * + * This function will initialize the admin tool + * + * @date 10/10/17 + * @since 5.6.3 + * + * @param n/a + * @return n/a + */ + + function initialize() { + + /* do nothing */ + + } + + + + /** + * load + * + * This function is called during the admin page load + * + * @date 10/10/17 + * @since 5.6.3 + * + * @param n/a + * @return n/a + */ + + function load() { + + /* do nothing */ + + } + + + /** + * html + * + * This function will output the metabox HTML + * + * @date 10/10/17 + * @since 5.6.3 + * + * @param n/a + * @return n/a + */ + + function html() { + + } + + + /** + * submit + * + * This function will run when the tool's form has been submit + * + * @date 10/10/17 + * @since 5.6.3 + * + * @param n/a + * @return n/a + */ + + function submit() { + + } + + + } + endif; // class_exists check -?> \ No newline at end of file + diff --git a/includes/admin/views/acf-field-group/conditional-logic.php b/includes/admin/views/acf-field-group/conditional-logic.php new file mode 100644 index 0000000..df48146 --- /dev/null +++ b/includes/admin/views/acf-field-group/conditional-logic.php @@ -0,0 +1,173 @@ + +
                                  +
                                  +
                                  + + +
                                  +
                                  + 'true_false', + 'name' => 'conditional_logic', + 'prefix' => $field['prefix'], + 'value' => $disabled ? 0 : 1, + 'ui' => 1, + 'class' => 'conditions-toggle', + ) + ); + + ?> + +
                                  +
                                  + +
                                  diff --git a/includes/admin/views/acf-field-group/field.php b/includes/admin/views/acf-field-group/field.php new file mode 100644 index 0000000..a1de666 --- /dev/null +++ b/includes/admin/views/acf-field-group/field.php @@ -0,0 +1,324 @@ + 'acf-field-object acf-field-object-' . acf_slugify( $field['type'] ), + 'data-id' => $field['ID'], + 'data-key' => $field['key'], + 'data-type' => $field['type'], +); + +// Add additional class if the field is an endpoint. +if ( isset( $field['endpoint'] ) && $field['endpoint'] ) { + $div_attrs['class'] .= ' acf-field-is-endpoint'; +} + +// Misc template vars. +$field_label = acf_get_field_label( $field, 'admin' ); +$field_type_label = acf_get_field_type_label( $field['type'] ); + +if ( ! isset( $num_field_groups ) ) { + $num_field_groups = 0; +} + +$conditional_logic_class = $conditional_logic_text = ''; +if ( isset( $field['conditional_logic'] ) && is_array( $field['conditional_logic'] ) && count( $field['conditional_logic'] ) > 0 ) { + $conditional_logic_class = ' is-enabled'; + $conditional_logic_text = __( 'Active', 'acf' ); +} + +?> +
                                  > + +
                                  + $field['ID'], + 'key' => $field['key'], + 'parent' => $field['parent'], + 'menu_order' => $i, + 'save' => '', + ); + foreach ( $meta_inputs as $k => $v ) : + acf_hidden_input( + array( + 'name' => $input_prefix . '[' . $k . ']', + 'value' => $v, + 'id' => $input_id . '-' . $k, + ) + ); + endforeach; + ?> +
                                  + +
                                  +
                                    +
                                  • + +
                                  • +
                                  • + + + +
                                    + + + 1 ) : ?> + + + +
                                    +
                                  • +
                                  • +
                                  • +
                                  • + + + + +
                                  • +
                                  +
                                  + +
                                  +
                                  +
                                  + + $tab_label ) { + $field_to_render = array( + 'type' => 'tab', + 'label' => $tab_label, + 'key' => 'acf_field_settings_tabs', + 'settings-type' => $tab_key, + ); + + if ( $tab_key === 'conditional_logic' ) { + $field_to_render['label'] = __( 'Conditional Logic', 'acf' ) . '' . $conditional_logic_text . ''; + } + + acf_render_field_wrap( $field_to_render ); + ?> + +
                                  + __( 'Field Type', 'acf' ), + 'instructions' => '', + 'type' => 'select', + 'name' => 'type', + 'choices' => acf_get_grouped_field_types(), + 'class' => $field_type_select_class, + ), + true + ); + + if ( apply_filters( 'acf/field_group/enable_field_browser', true ) ) { + ?> +
                                  +
                                  + +
                                  +
                                  + __( 'Field Label', 'acf' ), + 'instructions' => __( 'This is the name which will appear on the EDIT page', 'acf' ), + 'name' => 'label', + 'type' => 'text', + 'class' => 'field-label', + ), + true + ); + + // name + acf_render_field_setting( + $field, + array( + 'label' => __( 'Field Name', 'acf' ), + 'instructions' => __( 'Single word, no spaces. Underscores and dashes allowed', 'acf' ), + 'name' => 'name', + 'type' => 'text', + 'class' => 'field-name', + ), + true + ); + + // 3rd party settings + do_action( 'acf/render_field_settings', $field ); + do_action( "acf/field_group/render_field_settings_tab/{$tab_key}", $field ); + ?> +
                                  + +
                                  + __( 'Required', 'acf' ), + 'instructions' => '', + 'type' => 'true_false', + 'name' => 'required', + 'ui' => 1, + 'class' => 'field-required', + ), + true + ); + + do_action( "acf/field_group/render_field_settings_tab/{$tab_key}", $field ); + ?> +
                                  + +
                                  + __( 'Instructions', 'acf' ), + 'instructions' => __( 'Instructions for authors. Shown when submitting data', 'acf' ), + 'type' => 'textarea', + 'name' => 'instructions', + 'rows' => 5, + ), + true + ); + + acf_render_field_wrap( + array( + 'label' => '', + 'instructions' => '', + 'type' => 'text', + 'name' => 'class', + 'prefix' => $field['prefix'] . '[wrapper]', + 'value' => $field['wrapper']['class'], + 'prepend' => __( 'class', 'acf' ), + 'wrapper' => array( + 'data-append' => 'wrapper', + ), + ), + 'div' + ); + + acf_render_field_wrap( + array( + 'label' => '', + 'instructions' => '', + 'type' => 'text', + 'name' => 'id', + 'prefix' => $field['prefix'] . '[wrapper]', + 'value' => $field['wrapper']['id'], + 'prepend' => __( 'id', 'acf' ), + 'wrapper' => array( + 'data-append' => 'wrapper', + ), + ), + 'div' + ); + + do_action( "acf/field_group/render_field_settings_tab/{$tab_key}", $field ); + ?> +
                                  + +
                                  + __( 'Wrapper Attributes', 'acf' ), + 'instructions' => '', + 'type' => 'number', + 'name' => 'width', + 'prefix' => $field['prefix'] . '[wrapper]', + 'value' => $field['wrapper']['width'], + 'prepend' => __( 'width', 'acf' ), + 'append' => '%', + 'wrapper' => array( + 'data-name' => 'wrapper', + 'class' => 'acf-field-setting-wrapper', + ), + ), + 'div' + ); + break; + case 'conditional_logic': + acf_get_view( 'acf-field-group/conditional-logic', array( 'field' => $field ) ); + + do_action( "acf/field_group/render_field_settings_tab/{$tab_key}", $field ); + ?> +
                                  + +
                                  + +
                                  + +
                                  + +
                                  + + +
                                  +
                                  +
                                  + +
                                  diff --git a/includes/admin/views/acf-field-group/fields.php b/includes/admin/views/acf-field-group/fields.php new file mode 100644 index 0000000..2f8998f --- /dev/null +++ b/includes/admin/views/acf-field-group/fields.php @@ -0,0 +1,139 @@ + + +
                                  +

                                  + +
                                  + + +
                                  + +
                                    +
                                  • + + + + +
                                  • +
                                  • +
                                  • +
                                  • +
                                  • +
                                  + + +
                                  + +
                                  +
                                  + +

                                  +

                                  + +

                                  + Learn more.', 'acf' ), + acf_add_url_utm_tags( 'https://www.advancedcustomfields.com/resources/', 'docs', 'empty-field-group', 'field-types' ) + ); + ?> +

                                  +
                                  +
                                  + + $field ) : + + acf_get_view( + 'acf-field-group/field', + array( + 'field' => $field, + 'i' => $i, + 'num_field_groups' => $num_field_groups, + ) + ); + + endforeach; + + endif; + ?> + +
                                  + +
                                    +
                                  • + +
                                  • +
                                  + + 'acfcloneindex', + 'key' => 'acfcloneindex', + 'label' => __( 'New Field', 'acf' ), + 'name' => 'new_field', + 'type' => 'text', + ) + ); + + ?> + + + + +
                                  diff --git a/includes/admin/views/acf-field-group/list-empty.php b/includes/admin/views/acf-field-group/list-empty.php new file mode 100644 index 0000000..f5f16cb --- /dev/null +++ b/includes/admin/views/acf-field-group/list-empty.php @@ -0,0 +1,26 @@ + +
                                  +
                                  + +

                                  +

                                  + field groups to group custom fields together, and then attach those fields to edit screens.', 'acf' ), + acf_add_url_utm_tags( 'https://www.advancedcustomfields.com/resources/creating-a-field-group/', 'docs', 'no-field-groups' ) + ); + ?> +

                                  + +

                                  + getting started guide.', 'acf' ), + acf_add_url_utm_tags( 'https://www.advancedcustomfields.com/resources/getting-started-with-acf/', 'docs', 'no-field-groups' ) + ); + ?> +

                                  +
                                  +
                                  diff --git a/includes/admin/views/acf-field-group/location-group.php b/includes/admin/views/acf-field-group/location-group.php new file mode 100644 index 0000000..222bfe4 --- /dev/null +++ b/includes/admin/views/acf-field-group/location-group.php @@ -0,0 +1,30 @@ +
                                  + +

                                  + + + + $rule ) : + + // validate rule + $rule = acf_validate_location_rule( $rule ); + + // append id and group + $rule['id'] = "rule_{$i}"; + $rule['group'] = $group_id; + + // view + acf_get_view( + 'acf-field-group/location-rule', + array( + 'rule' => $rule, + ) + ); + + endforeach; + ?> + +
                                  + +
                                  diff --git a/includes/admin/views/acf-field-group/location-rule.php b/includes/admin/views/acf-field-group/location-rule.php new file mode 100644 index 0000000..cfe05d1 --- /dev/null +++ b/includes/admin/views/acf-field-group/location-rule.php @@ -0,0 +1,96 @@ + + + + 'select', + 'name' => 'param', + 'prefix' => $prefix, + 'value' => $rule['param'], + 'choices' => $choices, + 'class' => 'refresh-location-rule', + ) + ); + + } + + ?> + + + 'select', + 'name' => 'operator', + 'prefix' => $prefix, + 'value' => $rule['operator'], + 'choices' => $choices, + ) + ); + + // custom + } else { + + echo $choices; + + } + + ?> + + + 'select', + 'name' => 'value', + 'prefix' => $prefix, + 'value' => $rule['value'], + 'choices' => $choices, + ) + ); + + // custom + } else { + + echo $choices; + + } + + ?> + + + + + + + + diff --git a/includes/admin/views/acf-field-group/locations.php b/includes/admin/views/acf-field-group/locations.php new file mode 100644 index 0000000..d30de7b --- /dev/null +++ b/includes/admin/views/acf-field-group/locations.php @@ -0,0 +1,52 @@ + +
                                  +
                                  + + ? +
                                  +
                                  +
                                  + + $group ) : + + // bail early if no group + if ( empty( $group ) ) { + return; + } + + + // view + acf_get_view( + 'acf-field-group/location-group', + array( + 'group' => $group, + 'group_id' => "group_{$i}", + ) + ); + + endforeach; + ?> + +

                                  + + + +
                                  +
                                  +
                                  + diff --git a/includes/admin/views/acf-field-group/options.php b/includes/admin/views/acf-field-group/options.php new file mode 100644 index 0000000..96c4101 --- /dev/null +++ b/includes/admin/views/acf-field-group/options.php @@ -0,0 +1,282 @@ + 'post_type', + 'operator' => '==', + 'value' => 'post', + ), + ), + ); + + $acf_use_post_type = acf_get_post_type_from_request_args( 'add-fields' ); + $acf_use_taxonomy = acf_get_taxonomy_from_request_args( 'add-fields' ); + + if ( $acf_use_post_type && ! empty( $acf_use_post_type['post_type'] ) ) { + $field_group['location'] = array( + array( + array( + 'param' => 'post_type', + 'operator' => '==', + 'value' => $acf_use_post_type['post_type'], + ), + ), + ); + } + + if ( $acf_use_taxonomy && ! empty( $acf_use_taxonomy['taxonomy'] ) ) { + $field_group['location'] = array( + array( + array( + 'param' => 'taxonomy', + 'operator' => '==', + 'value' => $acf_use_taxonomy['taxonomy'], + ), + ), + ); + } +} + +foreach ( acf_get_combined_field_group_settings_tabs() as $tab_key => $tab_label ) { + acf_render_field_wrap( + array( + 'type' => 'tab', + 'label' => $tab_label, + 'key' => 'acf_field_group_settings_tabs', + 'settings-type' => $tab_key, + ) + ); + + switch ( $tab_key ) { + case 'location_rules': + echo '
                                  '; + acf_get_view( 'acf-field-group/locations' ); + echo '
                                  '; + break; + case 'presentation': + echo '
                                  '; + echo '
                                  '; + + // style + acf_render_field_wrap( + array( + 'label' => __( 'Style', 'acf' ), + 'instructions' => '', + 'type' => 'button_group', + 'name' => 'style', + 'prefix' => 'acf_field_group', + 'value' => $field_group['style'], + 'choices' => array( + 'default' => __( 'Standard (WP metabox)', 'acf' ), + 'seamless' => __( 'Seamless (no metabox)', 'acf' ), + ), + ) + ); + + + // position + acf_render_field_wrap( + array( + 'label' => __( 'Position', 'acf' ), + 'instructions' => '', + 'type' => 'button_group', + 'name' => 'position', + 'prefix' => 'acf_field_group', + 'value' => $field_group['position'], + 'choices' => array( + 'acf_after_title' => __( 'High (after title)', 'acf' ), + 'normal' => __( 'Normal (after content)', 'acf' ), + 'side' => __( 'Side', 'acf' ), + ), + 'default_value' => 'normal', + ) + ); + + + // label_placement + acf_render_field_wrap( + array( + 'label' => __( 'Label Placement', 'acf' ), + 'instructions' => '', + 'type' => 'button_group', + 'name' => 'label_placement', + 'prefix' => 'acf_field_group', + 'value' => $field_group['label_placement'], + 'choices' => array( + 'top' => __( 'Top aligned', 'acf' ), + 'left' => __( 'Left aligned', 'acf' ), + ), + ) + ); + + + // instruction_placement + acf_render_field_wrap( + array( + 'label' => __( 'Instruction Placement', 'acf' ), + 'instructions' => '', + 'type' => 'button_group', + 'name' => 'instruction_placement', + 'prefix' => 'acf_field_group', + 'value' => $field_group['instruction_placement'], + 'choices' => array( + 'label' => __( 'Below labels', 'acf' ), + 'field' => __( 'Below fields', 'acf' ), + ), + ) + ); + + + // menu_order + acf_render_field_wrap( + array( + 'label' => __( 'Order No.', 'acf' ), + 'instructions' => __( 'Field groups with a lower order will appear first', 'acf' ), + 'type' => 'number', + 'name' => 'menu_order', + 'prefix' => 'acf_field_group', + 'value' => $field_group['menu_order'], + ), + 'div', + 'field' + ); + + echo '
                                  '; + echo '
                                  '; + + // hide on screen + $choices = array( + 'permalink' => __( 'Permalink', 'acf' ), + 'the_content' => __( 'Content Editor', 'acf' ), + 'excerpt' => __( 'Excerpt', 'acf' ), + 'custom_fields' => __( 'Custom Fields', 'acf' ), + 'discussion' => __( 'Discussion', 'acf' ), + 'comments' => __( 'Comments', 'acf' ), + 'revisions' => __( 'Revisions', 'acf' ), + 'slug' => __( 'Slug', 'acf' ), + 'author' => __( 'Author', 'acf' ), + 'format' => __( 'Format', 'acf' ), + 'page_attributes' => __( 'Page Attributes', 'acf' ), + 'featured_image' => __( 'Featured Image', 'acf' ), + 'categories' => __( 'Categories', 'acf' ), + 'tags' => __( 'Tags', 'acf' ), + 'send-trackbacks' => __( 'Send Trackbacks', 'acf' ), + ); + if ( acf_get_setting( 'remove_wp_meta_box' ) ) { + unset( $choices['custom_fields'] ); + } + + acf_render_field_wrap( + array( + 'label' => __( 'Hide on screen', 'acf' ), + 'instructions' => __( 'Select items to hide them from the edit screen.', 'acf' ) . '

                                  ' . __( "If multiple field groups appear on an edit screen, the first field group's options will be used (the one with the lowest order number)", 'acf' ), + 'type' => 'checkbox', + 'name' => 'hide_on_screen', + 'prefix' => 'acf_field_group', + 'value' => $field_group['hide_on_screen'], + 'toggle' => true, + 'choices' => $choices, + ), + 'div', + 'label', + true + ); + + echo '
                                  '; + echo '
                                  '; + break; + case 'group_settings': + echo '
                                  '; + + // active + acf_render_field_wrap( + array( + 'label' => __( 'Active', 'acf' ), + 'instructions' => '', + 'type' => 'true_false', + 'name' => 'active', + 'prefix' => 'acf_field_group', + 'value' => $field_group['active'], + 'ui' => 1, + // 'ui_on_text' => __('Active', 'acf'), + // 'ui_off_text' => __('Inactive', 'acf'), + ) + ); + + // Show fields in REST API. + if ( acf_get_setting( 'rest_api_enabled' ) ) { + acf_render_field_wrap( + array( + 'label' => __( 'Show in REST API', 'acf' ), + 'instructions' => '', + 'type' => 'true_false', + 'name' => 'show_in_rest', + 'prefix' => 'acf_field_group', + 'value' => $field_group['show_in_rest'], + 'ui' => 1, + // 'ui_on_text' => __('Active', 'acf'), + // 'ui_off_text' => __('Inactive', 'acf'), + ) + ); + } + + // description + acf_render_field_wrap( + array( + 'label' => __( 'Description', 'acf' ), + 'instructions' => __( 'Shown in field group list', 'acf' ), + 'type' => 'text', + 'name' => 'description', + 'prefix' => 'acf_field_group', + 'value' => $field_group['description'], + ), + 'div', + 'field' + ); + + /* translators: 1: Post creation date 2: Post creation time */ + $acf_created_on = sprintf( __( 'Created on %1$s at %2$s', 'acf' ), get_the_date(), get_the_time() ); + ?> + + '; + break; + default: + echo '
                                  '; + do_action( 'acf/field_group/render_group_settings_tab/' . $tab_key, $field_group ); + echo '
                                  '; + break; + } +} + +// 3rd party settings +do_action( 'acf/render_field_group_settings', $field_group ); +?> + +
                                  + +
                                  + diff --git a/includes/admin/views/acf-field-group/pro-features.php b/includes/admin/views/acf-field-group/pro-features.php new file mode 100644 index 0000000..707774a --- /dev/null +++ b/includes/admin/views/acf-field-group/pro-features.php @@ -0,0 +1,75 @@ + +
                                  +
                                  +

                                  PRO

                                  +
                                  +

                                  PRO

                                  +

                                  +
                                  + + +
                                  +
                                  + +
                                  +
                                  + + +
                                  +
                                  + + +
                                  +
                                  + + +
                                  +
                                  + + +
                                  +
                                  + + +
                                  +
                                  + + +
                                  +
                                  +
                                  + +
                                  + + diff --git a/includes/admin/views/acf-post-type/advanced-settings.php b/includes/admin/views/acf-post-type/advanced-settings.php new file mode 100644 index 0000000..c34bdff --- /dev/null +++ b/includes/admin/views/acf-post-type/advanced-settings.php @@ -0,0 +1,1266 @@ + $tab_label ) { + acf_render_field_wrap( + array( + 'type' => 'tab', + 'label' => $tab_label, + 'key' => 'acf_post_type_tabs', + ) + ); + + switch ( $tab_key ) { + case 'general': + $acf_available_supports = array( + 'title' => __( 'Title', 'acf' ), + 'author' => __( 'Author', 'acf' ), + 'comments' => __( 'Comments', 'acf' ), + 'trackbacks' => __( 'Trackbacks', 'acf' ), + 'editor' => __( 'Editor', 'acf' ), + 'excerpt' => __( 'Excerpt', 'acf' ), + 'revisions' => __( 'Revisions', 'acf' ), + 'page-attributes' => __( 'Page Attributes', 'acf' ), + 'thumbnail' => __( 'Featured Image', 'acf' ), + 'custom-fields' => __( 'Custom Fields', 'acf' ), + 'post-formats' => __( 'Post Formats', 'acf' ), + ); + $acf_available_supports = apply_filters( 'acf/post_type/available_supports', $acf_available_supports, $acf_post_type ); + $acf_selected_supports = is_array( $acf_post_type['supports'] ) ? $acf_post_type['supports'] : array(); + + acf_render_field_wrap( + array( + 'type' => 'checkbox', + 'name' => 'supports', + 'key' => 'supports', + 'label' => __( 'Supports', 'acf' ), + 'instructions' => __( 'Enable various features in the content editor.', 'acf' ), + 'prefix' => 'acf_post_type', + 'value' => array_unique( array_filter( $acf_selected_supports ) ), + 'choices' => $acf_available_supports, + 'allow_custom' => true, + 'class' => 'acf_post_type_supports', + 'custom_choice_button_text' => __( 'Add Custom', 'acf' ), + ), + 'div' + ); + + acf_render_field_wrap( array( 'type' => 'seperator' ) ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'name' => 'description', + 'key' => 'description', + 'prefix' => 'acf_post_type', + 'value' => $acf_post_type['description'], + 'label' => __( 'Description', 'acf' ), + 'instructions' => __( 'A descriptive summary of the post type.', 'acf' ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( array( 'type' => 'seperator' ) ); + + acf_render_field_wrap( + array( + 'type' => 'true_false', + 'name' => 'active', + 'key' => 'active', + 'prefix' => 'acf_post_type', + 'value' => $acf_post_type['active'], + 'label' => __( 'Active', 'acf' ), + 'instructions' => __( 'Active post types are enabled and registered with WordPress.', 'acf' ), + 'ui' => true, + 'default' => 1, + ) + ); + + break; + case 'labels': + echo '
                                  '; + echo '' . __( 'Regenerate', 'acf' ) . ''; + echo '' . __( 'Clear', 'acf' ) . ''; + echo ''; + echo '
                                  '; + + acf_render_field_wrap( + array( + 'type' => 'text', + 'name' => 'menu_name', + 'key' => 'menu_name', + 'prefix' => 'acf_post_type[labels]', + 'value' => $acf_post_type['labels']['menu_name'], + 'data' => array( + 'label' => '%s', + 'replace' => 'plural', + ), + 'label' => __( 'Menu Name', 'acf' ), + 'instructions' => __( 'Admin menu name for the post type.', 'acf' ), + 'placeholder' => __( 'Posts', 'acf' ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'name' => 'all_items', + 'key' => 'all_items', + 'prefix' => 'acf_post_type[labels]', + 'value' => $acf_post_type['labels']['all_items'], + 'data' => array( + /* translators: %s Plural form of post type name */ + 'label' => __( 'All %s', 'acf' ), + 'replace' => 'plural', + ), + 'label' => __( 'All Items', 'acf' ), + 'instructions' => __( 'In the post type submenu in the admin dashboard.', 'acf' ), + 'placeholder' => __( 'All Posts', 'acf' ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'name' => 'edit_item', + 'key' => 'edit_item', + 'prefix' => 'acf_post_type[labels]', + 'value' => $acf_post_type['labels']['edit_item'], + 'data' => array( + /* translators: %s Singular form of post type name */ + 'label' => __( 'Edit %s', 'acf' ), + 'replace' => 'singular', + ), + 'label' => __( 'Edit Item', 'acf' ), + 'instructions' => __( 'At the top of the editor screen when editing an item.', 'acf' ), + 'placeholder' => __( 'Edit Post', 'acf' ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'name' => 'view_item', + 'key' => 'view_item', + 'prefix' => 'acf_post_type[labels]', + 'value' => $acf_post_type['labels']['view_item'], + 'data' => array( + /* translators: %s Singular form of post type name */ + 'label' => __( 'View %s', 'acf' ), + 'replace' => 'singular', + ), + 'label' => __( 'View Item', 'acf' ), + 'instructions' => __( 'In the admin bar to view item when editing it.', 'acf' ), + 'placeholder' => __( 'View Post', 'acf' ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'name' => 'view_items', + 'key' => 'view_items', + 'prefix' => 'acf_post_type[labels]', + 'value' => $acf_post_type['labels']['view_items'], + 'data' => array( + /* translators: %s Plural form of post type name */ + 'label' => __( 'View %s', 'acf' ), + 'replace' => 'plural', + ), + 'label' => __( 'View Items', 'acf' ), + 'instructions' => __( 'Appears in the admin bar in the \'All Posts\' view, provided the post type supports archives and the home page is not an archive of that post type.', 'acf' ), + 'placeholder' => __( 'View Posts', 'acf' ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'name' => 'add_new_item', + 'key' => 'add_new_item', + 'prefix' => 'acf_post_type[labels]', + 'value' => $acf_post_type['labels']['add_new_item'], + 'data' => array( + /* translators: %s Singular form of post type name */ + 'label' => __( 'Add New %s', 'acf' ), + 'replace' => 'singular', + ), + 'label' => __( 'Add New Item', 'acf' ), + 'instructions' => __( 'At the top of the editor screen when adding a new item.', 'acf' ), + 'placeholder' => __( 'Add New Post', 'acf' ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'name' => 'add_new', + 'key' => 'add_new', + 'prefix' => 'acf_post_type[labels]', + 'value' => $acf_post_type['labels']['add_new'], + 'label' => __( 'Add New', 'acf' ), + 'instructions' => __( 'In the post type submenu in the admin dashboard.', 'acf' ), + 'placeholder' => __( 'Add New', 'acf' ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'name' => 'new_item', + 'key' => 'new_item', + 'prefix' => 'acf_post_type[labels]', + 'value' => $acf_post_type['labels']['new_item'], + 'data' => array( + /* translators: %s Singular form of post type name */ + 'label' => __( 'New %s', 'acf' ), + 'replace' => 'singular', + ), + 'label' => __( 'New Item', 'acf' ), + 'instructions' => __( 'In the post type submenu in the admin dashboard.', 'acf' ), + 'placeholder' => __( 'New Post', 'acf' ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'name' => 'parent_item_colon', + 'key' => 'parent_item_colon', + 'prefix' => 'acf_post_type[labels]', + 'value' => $acf_post_type['labels']['parent_item_colon'], + 'data' => array( + /* translators: %s Singular form of post type name */ + 'label' => __( 'Parent %s:', 'acf' ), + 'replace' => 'singular', + ), + 'label' => __( 'Parent Item Prefix', 'acf' ), + 'instructions' => __( 'For hierarchical types in the post type list screen.', 'acf' ), + 'placeholder' => __( 'Parent Page:', 'acf' ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'name' => 'search_items', + 'key' => 'search_items', + 'prefix' => 'acf_post_type[labels]', + 'value' => $acf_post_type['labels']['search_items'], + 'data' => array( + /* translators: %s Singular form of post type name */ + 'label' => __( 'Search %s', 'acf' ), + 'replace' => 'plural', + ), + 'label' => __( 'Search Items', 'acf' ), + 'instructions' => __( 'At the top of the items screen when searching for an item.', 'acf' ), + 'placeholder' => __( 'Search Posts', 'acf' ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'name' => 'not_found', + 'key' => 'not_found', + 'prefix' => 'acf_post_type[labels]', + 'value' => $acf_post_type['labels']['not_found'], + 'data' => array( + /* translators: %s Plural form of post type name */ + 'label' => __( 'No %s found', 'acf' ), + 'replace' => 'plural', + 'transform' => 'lower', + ), + 'label' => __( 'No Items Found', 'acf' ), + 'instructions' => __( 'At the top of the post type list screen when there are no posts to display.', 'acf' ), + 'placeholder' => __( 'No posts found', 'acf' ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'name' => 'not_found_in_trash', + 'key' => 'not_found_in_trash', + 'prefix' => 'acf_post_type[labels]', + 'value' => $acf_post_type['labels']['not_found_in_trash'], + 'data' => array( + /* translators: %s Plural form of post type name */ + 'label' => __( 'No %s found in Trash', 'acf' ), + 'replace' => 'plural', + 'transform' => 'lower', + ), + 'label' => __( 'No Items Found in Trash', 'acf' ), + 'instructions' => __( 'At the top of the post type list screen when there are no posts in the trash.', 'acf' ), + 'placeholder' => __( 'No posts found in Trash', 'acf' ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'name' => 'archives', + 'key' => 'archives', + 'prefix' => 'acf_post_type[labels]', + 'value' => $acf_post_type['labels']['archives'], + 'data' => array( + /* translators: %s Singular form of post type name */ + 'label' => __( '%s Archives', 'acf' ), + 'replace' => 'singular', + ), + 'label' => __( 'Archives Nav Menu', 'acf' ), + 'instructions' => __( "Adds 'Post Type Archive' items with this label to the list of posts shown when adding items to an existing menu in a CPT with archives enabled. Only appears when editing menus in 'Live Preview' mode and a custom archive slug has been provided.", 'acf' ), + 'placeholder' => __( 'Post Archives', 'acf' ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'name' => 'attributes', + 'key' => 'attributes', + 'prefix' => 'acf_post_type[labels]', + 'value' => $acf_post_type['labels']['attributes'], + 'data' => array( + /* translators: %s Singular form of post type name */ + 'label' => __( '%s Attributes', 'acf' ), + 'replace' => 'singular', + ), + 'label' => __( 'Attributes Meta Box', 'acf' ), + 'instructions' => __( 'In the editor used for the title of the post attributes meta box.', 'acf' ), + 'placeholder' => __( 'Post Attributes', 'acf' ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'name' => 'featured_image', + 'key' => 'featured_image', + 'prefix' => 'acf_post_type[labels]', + 'value' => $acf_post_type['labels']['featured_image'], + 'label' => __( 'Featured Image Meta Box', 'acf' ), + 'instructions' => __( 'In the editor used for the title of the featured image meta box.', 'acf' ), + 'placeholder' => __( 'Featured image', 'acf' ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'name' => 'set_featured_image', + 'key' => 'set_featured_image', + 'prefix' => 'acf_post_type[labels]', + 'value' => $acf_post_type['labels']['set_featured_image'], + 'label' => __( 'Set Featured Image', 'acf' ), + 'instructions' => __( 'As the button label when setting the featured image.', 'acf' ), + 'placeholder' => __( 'Set featured image', 'acf' ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'name' => 'remove_featured_image', + 'key' => 'remove_featured_image', + 'prefix' => 'acf_post_type[labels]', + 'value' => $acf_post_type['labels']['remove_featured_image'], + 'label' => __( 'Remove Featured Image', 'acf' ), + 'instructions' => __( 'As the button label when removing the featured image.', 'acf' ), + 'placeholder' => __( 'Remove featured image', 'acf' ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'name' => 'use_featured_image', + 'key' => 'use_featured_image', + 'prefix' => 'acf_post_type[labels]', + 'value' => $acf_post_type['labels']['use_featured_image'], + 'label' => __( 'Use Featured Image', 'acf' ), + 'instructions' => __( 'As the button label for selecting to use an image as the featured image.', 'acf' ), + 'placeholder' => __( 'Use as featured image', 'acf' ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'name' => 'insert_into_item', + 'key' => 'insert_into_item', + 'prefix' => 'acf_post_type[labels]', + 'value' => $acf_post_type['labels']['insert_into_item'], + 'data' => array( + /* translators: %s Singular form of post type name */ + 'label' => __( 'Insert into %s', 'acf' ), + 'replace' => 'singular', + 'transform' => 'lower', + ), + 'label' => __( 'Insert Into Media Button', 'acf' ), + 'instructions' => __( 'As the button label when adding media to content.', 'acf' ), + 'placeholder' => __( 'Insert into post', 'acf' ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'name' => 'uploaded_to_this_item', + 'key' => 'uploaded_to_this_item', + 'prefix' => 'acf_post_type[labels]', + 'value' => $acf_post_type['labels']['uploaded_to_this_item'], + 'data' => array( + /* translators: %s Singular form of post type name */ + 'label' => __( 'Uploaded to this %s', 'acf' ), + 'replace' => 'singular', + 'transform' => 'lower', + ), + 'label' => __( 'Uploaded To This Item', 'acf' ), + 'instructions' => __( 'In the media modal showing all media uploaded to this item.', 'acf' ), + 'placeholder' => __( 'Uploaded to this post', 'acf' ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'name' => 'filter_items_list', + 'key' => 'filter_items_list', + 'prefix' => 'acf_post_type[labels]', + 'value' => $acf_post_type['labels']['filter_items_list'], + 'data' => array( + /* translators: %s Plural form of post type name */ + 'label' => __( 'Filter %s list', 'acf' ), + 'replace' => 'plural', + 'transform' => 'lower', + ), + 'label' => __( 'Filter Items List', 'acf' ), + 'instructions' => __( 'Used by screen readers for the filter links heading on the post type list screen.', 'acf' ), + 'placeholder' => __( 'Filter posts list', 'acf' ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'name' => 'filter_by_date', + 'key' => 'filter_by_date', + 'prefix' => 'acf_post_type[labels]', + 'value' => $acf_post_type['labels']['filter_by_date'], + 'data' => array( + /* translators: %s Plural form of post type name */ + 'label' => __( 'Filter %s by date', 'acf' ), + 'replace' => 'plural', + 'transform' => 'lower', + ), + 'label' => __( 'Filter Items By Date', 'acf' ), + 'instructions' => __( 'Used by screen readers for the filter by date heading on the post type list screen.', 'acf' ), + 'placeholder' => __( 'Filter posts by date', 'acf' ), + ), + 'div', + 'field' + ); + + + acf_render_field_wrap( + array( + 'type' => 'text', + 'name' => 'items_list_navigation', + 'key' => 'items_list_navigation', + 'prefix' => 'acf_post_type[labels]', + 'value' => $acf_post_type['labels']['items_list_navigation'], + 'data' => array( + /* translators: %s Plural form of post type name */ + 'label' => __( '%s list navigation', 'acf' ), + 'replace' => 'plural', + ), + 'label' => __( 'Items List Navigation', 'acf' ), + 'instructions' => __( 'Used by screen readers for the filter list pagination on the post type list screen.', 'acf' ), + 'placeholder' => __( 'Posts list navigation', 'acf' ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'name' => 'items_list', + 'key' => 'items_list', + 'prefix' => 'acf_post_type[labels]', + 'value' => $acf_post_type['labels']['items_list'], + 'data' => array( + /* translators: %s Plural form of post type name */ + 'label' => __( '%s list', 'acf' ), + 'replace' => 'plural', + ), + 'label' => __( 'Items List', 'acf' ), + 'instructions' => __( 'Used by screen readers for the items list on the post type list screen.', 'acf' ), + 'placeholder' => __( 'Posts list', 'acf' ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'name' => 'item_published', + 'key' => 'item_published', + 'prefix' => 'acf_post_type[labels]', + 'value' => $acf_post_type['labels']['item_published'], + 'data' => array( + /* translators: %s Singular form of post type name */ + 'label' => __( '%s published.', 'acf' ), + 'replace' => 'singular', + ), + 'label' => __( 'Item Published', 'acf' ), + 'instructions' => __( 'In the editor notice after publishing an item.', 'acf' ), + 'placeholder' => __( 'Post published.', 'acf' ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'name' => 'item_published_privately', + 'key' => 'item_published_privately', + 'prefix' => 'acf_post_type[labels]', + 'value' => $acf_post_type['labels']['item_published_privately'], + 'data' => array( + /* translators: %s Singular form of post type name */ + 'label' => __( '%s published privately.', 'acf' ), + 'replace' => 'singular', + ), + 'label' => __( 'Item Published Privately', 'acf' ), + 'instructions' => __( 'In the editor notice after publishing a private item.', 'acf' ), + 'placeholder' => __( 'Post published privately.', 'acf' ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'name' => 'item_reverted_to_draft', + 'key' => 'item_reverted_to_draft', + 'prefix' => 'acf_post_type[labels]', + 'value' => $acf_post_type['labels']['item_reverted_to_draft'], + 'data' => array( + /* translators: %s Singular form of post type name */ + 'label' => __( '%s reverted to draft.', 'acf' ), + 'replace' => 'singular', + ), + 'label' => __( 'Item Reverted To Draft', 'acf' ), + 'instructions' => __( 'In the editor notice after reverting an item to draft.', 'acf' ), + 'placeholder' => __( 'Post reverted to draft.', 'acf' ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'name' => 'item_scheduled', + 'key' => 'item_scheduled', + 'prefix' => 'acf_post_type[labels]', + 'value' => $acf_post_type['labels']['item_scheduled'], + 'data' => array( + /* translators: %s Singular form of post type name */ + 'label' => __( '%s scheduled.', 'acf' ), + 'replace' => 'singular', + ), + 'label' => __( 'Item Scheduled', 'acf' ), + 'instructions' => __( 'In the editor notice after scheduling an item.', 'acf' ), + 'placeholder' => __( 'Post scheduled.', 'acf' ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'name' => 'item_updated', + 'key' => 'item_updated', + 'prefix' => 'acf_post_type[labels]', + 'value' => $acf_post_type['labels']['item_updated'], + 'data' => array( + /* translators: %s Singular form of post type name */ + 'label' => __( '%s updated.', 'acf' ), + 'replace' => 'singular', + ), + 'label' => __( 'Item Updated', 'acf' ), + 'instructions' => __( 'In the editor notice after an item is updated.', 'acf' ), + 'placeholder' => __( 'Post updated.', 'acf' ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'name' => 'item_link', + 'key' => 'item_link', + 'prefix' => 'acf_post_type[labels]', + 'value' => $acf_post_type['labels']['item_link'], + 'data' => array( + /* translators: %s Singular form of post type name */ + 'label' => __( '%s Link', 'acf' ), + 'replace' => 'singular', + ), + 'label' => __( 'Item Link', 'acf' ), + 'instructions' => __( 'Title for a navigation link block variation.', 'acf' ), + 'placeholder' => __( 'Post Link', 'acf' ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'name' => 'item_link_description', + 'key' => 'item_link_description', + 'prefix' => 'acf_post_type[labels]', + 'value' => $acf_post_type['labels']['item_link_description'], + 'data' => array( + /* translators: %s Singular form of post type name */ + 'label' => __( 'A link to a %s.', 'acf' ), + 'replace' => 'singular', + 'transform' => 'lower', + ), + 'label' => __( 'Item Link Description', 'acf' ), + 'instructions' => __( 'Description for a navigation link block variation.', 'acf' ), + 'placeholder' => __( 'A link to a post.', 'acf' ), + ), + 'div', + 'field' + ); + break; + case 'visibility': + acf_render_field_wrap( + array( + 'type' => 'true_false', + 'name' => 'show_ui', + 'key' => 'show_ui', + 'prefix' => 'acf_post_type', + 'value' => $acf_post_type['show_ui'], + 'label' => __( 'Show In UI', 'acf' ), + 'instructions' => __( 'Items can be edited and managed in the admin dashboard.', 'acf' ), + 'ui' => true, + 'default' => 1, + ) + ); + + acf_render_field_wrap( + array( + 'type' => 'true_false', + 'name' => 'show_in_menu', + 'key' => 'show_in_menu', + 'prefix' => 'acf_post_type', + 'value' => $acf_post_type['show_in_menu'], + 'label' => __( 'Show In Admin Menu', 'acf' ), + 'instructions' => __( 'Admin editor navigation in the sidebar menu.', 'acf' ), + 'ui' => true, + 'default' => 1, + 'conditions' => array( + 'field' => 'show_ui', + 'operator' => '==', + 'value' => 1, + ), + ) + ); + + $acf_dashicon_class_name = __( 'Dashicon class name', 'acf' ); + $acf_dashicon_link = '' . $acf_dashicon_class_name . ''; + + $acf_menu_icon_instructions = sprintf( + /* translators: %s = "dashicon class name", link to the WordPress dashicon documentation. */ + __( 'The icon used for the post type menu item in the admin dashboard. Can be a URL or %s to use for the icon.', 'acf' ), + $acf_dashicon_link + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'name' => 'admin_menu_parent', + 'key' => 'admin_menu_parent', + 'prefix' => 'acf_post_type', + 'value' => $acf_post_type['admin_menu_parent'], + 'placeholder' => 'edit.php?post_type={parent_page}', + 'label' => __( 'Admin Menu Parent', 'acf' ), + 'instructions' => __( 'By default the post type will get a new top level item in the admin menu. If an existing top level item is supplied here, the post type will be added as a submenu item under it.', 'acf' ), + 'conditions' => array( + 'field' => 'show_in_menu', + 'operator' => '==', + 'value' => 1, + ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'number', + 'name' => 'menu_position', + 'key' => 'menu_position', + 'prefix' => 'acf_post_type', + 'value' => $acf_post_type['menu_position'], + 'label' => __( 'Menu Position', 'acf' ), + 'instructions' => __( 'The position in the sidebar menu in the admin dashboard.', 'acf' ), + 'conditions' => array( + 'field' => 'show_in_menu', + 'operator' => '==', + 'value' => 1, + ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'name' => 'menu_icon', + 'key' => 'menu_icon', + 'prefix' => 'acf_post_type', + 'value' => $acf_post_type['menu_icon'], + 'label' => __( 'Menu Icon', 'acf' ), + 'placeholder' => 'dashicons-admin-post', + 'instructions' => $acf_menu_icon_instructions, + 'conditions' => array( + 'field' => 'show_in_menu', + 'operator' => '==', + 'value' => 1, + ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'name' => 'register_meta_box_cb', + 'key' => 'register_meta_box_cb', + 'prefix' => 'acf_post_type', + 'value' => $acf_post_type['register_meta_box_cb'], + 'label' => __( 'Custom Meta Box Callback', 'acf' ), + 'instructions' => __( 'A PHP function name to be called when setting up the meta boxes for the edit screen.', 'acf' ), + 'conditions' => array( + 'field' => 'show_ui', + 'operator' => '==', + 'value' => '1', + ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'seperator', + 'conditions' => array( + 'field' => 'show_ui', + 'operator' => '==', + 'value' => 1, + ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'true_false', + 'name' => 'show_in_admin_bar', + 'key' => 'show_in_admin_bar', + 'prefix' => 'acf_post_type', + 'value' => $acf_post_type['show_in_admin_bar'], + 'label' => __( 'Show In Admin Bar', 'acf' ), + 'instructions' => __( "Appears as an item in the 'New' menu in the admin bar.", 'acf' ), + 'ui' => true, + 'default' => 1, + 'conditions' => array( + 'field' => 'show_ui', + 'operator' => '==', + 'value' => 1, + ), + ) + ); + + acf_render_field_wrap( + array( + 'type' => 'true_false', + 'name' => 'show_in_nav_menus', + 'key' => 'show_in_nav_menus', + 'prefix' => 'acf_post_type', + 'value' => $acf_post_type['show_in_nav_menus'], + 'label' => __( 'Appearance Menus Support', 'acf' ), + 'instructions' => __( "Allow items to be added to menus in the 'Appearance' > 'Menus' screen. Must be turned on in 'Screen options'.", 'acf' ), + 'ui' => true, + 'default' => 1, + ) + ); + + acf_render_field_wrap( + array( + 'type' => 'true_false', + 'name' => 'exclude_from_search', + 'key' => 'exclude_from_search', + 'prefix' => 'acf_post_type', + 'value' => $acf_post_type['exclude_from_search'], + 'label' => __( 'Exclude From Search', 'acf' ), + 'instructions' => __( 'Sets whether posts should be excluded from search results and taxonomy archive pages.', 'acf' ), + 'ui' => true, + ) + ); + + break; + case 'permissions': + acf_render_field_wrap( + array( + 'type' => 'true_false', + 'name' => 'rename_capabilities', + 'key' => 'rename_capabilities', + 'prefix' => 'acf_post_type', + 'value' => $acf_post_type['rename_capabilities'], + 'label' => __( 'Rename Capabilities', 'acf' ), + 'instructions' => __( "By default the capabilities of the post type will inherit the 'Post' capability names, eg. edit_post, delete_posts. Enable to use post type specific capabilities, eg. edit_{singular}, delete_{plural}.", 'acf' ), + 'default' => false, + 'ui' => true, + ), + 'div' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'name' => 'singular_capability_name', + 'key' => 'singular_capability_name', + 'prefix' => 'acf_post_type', + 'value' => $acf_post_type['singular_capability_name'], + 'label' => __( 'Singular Capability Name', 'acf' ), + 'instructions' => __( 'Choose another post type to base the capabilities for this post type.', 'acf' ), + 'conditions' => array( + 'field' => 'rename_capabilities', + 'operator' => '==', + 'value' => '1', + ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'name' => 'plural_capability_name', + 'key' => 'plural_capability_name', + 'prefix' => 'acf_post_type', + 'value' => $acf_post_type['plural_capability_name'], + 'label' => __( 'Plural Capability Name', 'acf' ), + 'instructions' => __( 'Optionally provide a plural to be used in capabilities.', 'acf' ), + 'conditions' => array( + 'field' => 'rename_capabilities', + 'operator' => '==', + 'value' => '1', + ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'seperator', + 'conditions' => array( + 'field' => 'rename_capabilities', + 'operator' => '==', + 'value' => '1', + ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'true_false', + 'name' => 'can_export', + 'key' => 'can_export', + 'prefix' => 'acf_post_type', + 'value' => $acf_post_type['can_export'], + 'label' => __( 'Can Export', 'acf' ), + 'instructions' => __( "Allow the post type to be exported from 'Tools' > 'Export'.", 'acf' ), + 'default' => 1, + 'ui' => 1, + ), + 'div' + ); + + acf_render_field_wrap( + array( + 'type' => 'true_false', + 'name' => 'delete_with_user', + 'key' => 'delete_with_user', + 'prefix' => 'acf_post_type', + 'value' => $acf_post_type['delete_with_user'], + 'label' => __( 'Delete With User', 'acf' ), + 'instructions' => __( 'Delete items by a user when that user is deleted.', 'acf' ), + 'ui' => 1, + ), + 'div' + ); + break; + case 'urls': + acf_render_field_wrap( + array( + 'type' => 'select', + 'name' => 'permalink_rewrite', + 'key' => 'permalink_rewrite', + 'prefix' => 'acf_post_type[rewrite]', + 'value' => isset( $acf_post_type['rewrite']['permalink_rewrite'] ) ? $acf_post_type['rewrite']['permalink_rewrite'] : 'post_type_key', + 'label' => __( 'Permalink Rewrite', 'acf' ), + /* translators: this string will be appended with the new permalink structure. */ + 'instructions' => __( 'Rewrite the URL using the post type key as the slug. Your permalink structure will be', 'acf' ) . ' {slug}.', + 'choices' => array( + 'post_type_key' => __( 'Post Type Key', 'acf' ), + 'custom_permalink' => __( 'Custom Permalink', 'acf' ), + 'no_permalink' => __( 'No Permalink (prevent URL rewriting)', 'acf' ), + ), + 'default' => 'post_type_key', + 'hide_search' => true, + 'data' => array( + /* translators: this string will be appended with the new permalink structure. */ + 'post_type_key_instructions' => __( 'Rewrite the URL using the post type key as the slug. Your permalink structure will be', 'acf' ) . ' {slug}.', + /* translators: this string will be appended with the new permalink structure. */ + 'custom_permalink_instructions' => __( 'Rewrite the URL using a custom slug defined in the input below. Your permalink structure will be', 'acf' ) . ' {slug}.', + 'no_permalink_instructions' => __( 'Permalinks for this post type are disabled.', 'acf' ), + 'site_url' => get_site_url(), + ), + 'class' => 'permalink_rewrite', + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'name' => 'slug', + 'key' => 'slug', + 'prefix' => 'acf_post_type[rewrite]', + 'value' => isset( $acf_post_type['rewrite']['slug'] ) ? $acf_post_type['rewrite']['slug'] : '', + 'label' => __( 'URL Slug', 'acf' ), + 'instructions' => __( 'Customize the slug used in the URL.', 'acf' ), + 'conditions' => array( + 'field' => 'permalink_rewrite', + 'operator' => '==', + 'value' => 'custom_permalink', + ), + 'class' => 'rewrite_slug_field', + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'true_false', + 'name' => 'with_front', + 'key' => 'with_front', + 'prefix' => 'acf_post_type[rewrite]', + 'value' => isset( $acf_post_type['rewrite']['with_front'] ) ? $acf_post_type['rewrite']['with_front'] : true, + 'label' => __( 'Front URL Prefix', 'acf' ), + 'instructions' => __( 'Alters the permalink structure to add the `WP_Rewrite::$front` prefix to URLs.', 'acf' ), + 'ui' => true, + 'default' => 1, + 'conditions' => array( + 'field' => 'permalink_rewrite', + 'operator' => '!=', + 'value' => 'no_permalink', + ), + ) + ); + + acf_render_field_wrap( + array( + 'type' => 'true_false', + 'name' => 'feeds', + 'key' => 'feeds', + 'prefix' => 'acf_post_type[rewrite]', + 'value' => isset( $acf_post_type['rewrite']['feeds'] ) ? $acf_post_type['rewrite']['feeds'] : $acf_post_type['has_archive'], + 'label' => __( 'Feed URL', 'acf' ), + 'instructions' => __( 'RSS feed URL for the post type items.', 'acf' ), + 'ui' => true, + 'conditions' => array( + 'field' => 'permalink_rewrite', + 'operator' => '!=', + 'value' => 'no_permalink', + ), + ) + ); + + acf_render_field_wrap( + array( + 'type' => 'true_false', + 'name' => 'pages', + 'key' => 'pages', + 'prefix' => 'acf_post_type[rewrite]', + 'value' => isset( $acf_post_type['rewrite']['pages'] ) ? $acf_post_type['rewrite']['pages'] : true, + 'label' => __( 'Pagination', 'acf' ), + 'instructions' => __( 'Pagination support for the items URLs such as the archives.', 'acf' ), + 'ui' => true, + 'default' => 1, + 'conditions' => array( + 'field' => 'permalink_rewrite', + 'operator' => '!=', + 'value' => 'no_permalink', + ), + ) + ); + + acf_render_field_wrap( array( 'type' => 'seperator' ) ); + + acf_render_field_wrap( + array( + 'type' => 'true_false', + 'name' => 'has_archive', + 'key' => 'has_archive', + 'prefix' => 'acf_post_type', + 'value' => $acf_post_type['has_archive'], + 'label' => __( 'Archive', 'acf' ), + 'instructions' => __( 'Has an item archive that can be customized with an archive template file in your theme.', 'acf' ), + 'ui' => true, + ), + 'div' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'name' => 'has_archive_slug', + 'key' => 'has_archive_slug', + 'prefix' => 'acf_post_type', + 'value' => $acf_post_type['has_archive_slug'], + 'label' => __( 'Archive Slug', 'acf' ), + 'instructions' => __( 'Custom slug for the Archive URL.', 'acf' ), + 'ui' => true, + 'conditions' => array( + 'field' => 'has_archive', + 'operator' => '==', + 'value' => '1', + ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( array( 'type' => 'seperator' ) ); + + acf_render_field_wrap( + array( + 'type' => 'true_false', + 'name' => 'publicly_queryable', + 'key' => 'publicly_queryable', + 'prefix' => 'acf_post_type', + 'value' => $acf_post_type['publicly_queryable'], + 'label' => __( 'Publicly Queryable', 'acf' ), + 'instructions' => __( 'URLs for an item and items can be accessed with a query string.', 'acf' ), + 'default' => 1, + 'ui' => true, + ), + 'div' + ); + + acf_render_field_wrap( + array( + 'type' => 'seperator', + 'conditions' => array( + 'field' => 'publicly_queryable', + 'operator' => '==', + 'value' => 1, + ), + ) + ); + + acf_render_field_wrap( + array( + 'type' => 'select', + 'name' => 'query_var', + 'key' => 'query_var', + 'prefix' => 'acf_post_type', + 'value' => $acf_post_type['query_var'], + 'label' => __( 'Query Variable Support', 'acf' ), + 'instructions' => __( 'Items can be accessed using the non-pretty permalink, eg. {post_type}={post_slug}.', 'acf' ), + 'choices' => array( + 'post_type_key' => __( 'Post Type Key', 'acf' ), + 'custom_query_var' => __( 'Custom Query Variable', 'acf' ), + 'none' => __( 'No Query Variable Support', 'acf' ), + ), + 'default' => 1, + 'hide_search' => true, + 'class' => 'query_var', + 'conditions' => array( + 'field' => 'publicly_queryable', + 'operator' => '==', + 'value' => '1', + ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'name' => 'query_var_name', + 'key' => 'query_var_name', + 'prefix' => 'acf_post_type', + 'value' => $acf_post_type['query_var_name'], + 'label' => __( 'Query Variable', 'acf' ), + 'instructions' => __( 'Customize the query variable name.', 'acf' ), + 'ui' => true, + 'conditions' => array( + 'field' => 'query_var', + 'operator' => '==', + 'value' => 'custom_query_var', + ), + ), + 'div', + 'field' + ); + + break; + case 'rest_api': + acf_render_field_wrap( + array( + 'type' => 'true_false', + 'name' => 'show_in_rest', + 'key' => 'show_in_rest', + 'prefix' => 'acf_post_type', + 'value' => $acf_post_type['show_in_rest'], + 'label' => __( 'Show In REST API', 'acf' ), + 'instructions' => __( 'Exposes this post type in the REST API. Required to use the block editor.', 'acf' ), + 'default' => 1, + 'ui' => true, + ), + 'div' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'name' => 'rest_base', + 'key' => 'rest_base', + 'prefix' => 'acf_post_type', + 'value' => $acf_post_type['rest_base'], + 'label' => __( 'Base URL', 'acf' ), + 'instructions' => __( 'The base URL for the post type REST API URLs.', 'acf' ), + 'conditions' => array( + 'field' => 'show_in_rest', + 'operator' => '==', + 'value' => '1', + ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'name' => 'rest_namespace', + 'key' => 'rest_namespace', + 'prefix' => 'acf_post_type', + 'value' => $acf_post_type['rest_namespace'], + 'label' => __( 'Namespace Route', 'acf' ), + 'instructions' => __( 'The namespace part of the REST API URL.', 'acf' ), + 'conditions' => array( + 'field' => 'show_in_rest', + 'operator' => '==', + 'value' => '1', + ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'name' => 'rest_controller_class', + 'key' => 'rest_controller_class', + 'prefix' => 'acf_post_type', + 'value' => $acf_post_type['rest_controller_class'], + 'label' => __( 'Controller Class', 'acf' ), + 'instructions' => __( 'Optional custom controller to use instead of `WP_REST_Posts_Controller`.', 'acf' ), + 'default' => 'WP_REST_Posts_Controller', + 'conditions' => array( + 'field' => 'show_in_rest', + 'operator' => '==', + 'value' => '1', + ), + ), + 'div', + 'field' + ); + break; + } + + do_action( "acf/post_type/render_settings_tab/{$tab_key}", $acf_post_type ); +} + diff --git a/includes/admin/views/acf-post-type/basic-settings.php b/includes/admin/views/acf-post-type/basic-settings.php new file mode 100644 index 0000000..a361a16 --- /dev/null +++ b/includes/admin/views/acf-post-type/basic-settings.php @@ -0,0 +1,137 @@ + __( 'Plural Label', 'acf' ), + /* translators: example post type */ + 'placeholder' => __( 'Movies', 'acf' ), + 'type' => 'text', + 'name' => 'name', + 'key' => 'name', + 'class' => 'acf_plural_label', + 'prefix' => 'acf_post_type[labels]', + 'value' => $acf_post_type['labels']['name'], + 'required' => true, + ), + 'div', + 'field' +); + +acf_render_field_wrap( + array( + 'label' => __( 'Singular Label', 'acf' ), + /* translators: example post type */ + 'placeholder' => __( 'Movie', 'acf' ), + 'type' => 'text', + 'name' => 'singular_name', + 'key' => 'singular_name', + 'class' => 'acf_slugify_to_key acf_singular_label', + 'prefix' => 'acf_post_type[labels]', + 'value' => $acf_post_type['labels']['singular_name'], + 'required' => true, + ), + 'div', + 'field' +); + +acf_render_field_wrap( + array( + 'label' => __( 'Post Type Key', 'acf' ), + 'instructions' => __( 'Lower case letters, underscores and dashes only, Max 20 characters.', 'acf' ), + /* translators: example post type */ + 'placeholder' => __( 'movie', 'acf' ), + 'type' => 'text', + 'name' => 'post_type', + 'key' => 'post_type', + 'maxlength' => 20, + 'class' => 'acf_slugified_key', + 'prefix' => 'acf_post_type', + 'value' => $acf_post_type['post_type'], + 'required' => true, + ), + 'div', + 'field' +); + +// Allow preselecting the linked taxonomies based on previously created taxonomy. +$acf_use_taxonomy = acf_get_taxonomy_from_request_args( 'create-post-type' ); +if ( $acf_use_taxonomy && ! empty( $acf_use_taxonomy['taxonomy'] ) ) { + $acf_post_type['taxonomies'] = array( $acf_use_taxonomy['taxonomy'] ); +} + +acf_render_field_wrap( + array( + 'type' => 'select', + 'name' => 'taxonomies', + 'key' => 'taxonomies', + 'prefix' => 'acf_post_type', + 'value' => $acf_post_type['taxonomies'], + 'label' => __( 'Taxonomies', 'acf' ), + 'instructions' => __( 'Select existing taxonomies to classify items of the post type.', 'acf' ), + 'choices' => acf_get_taxonomy_labels(), + 'ui' => true, + 'allow_null' => true, + 'multiple' => true, + ), + 'div', + 'field' +); + +acf_render_field_wrap( array( 'type' => 'seperator' ) ); + +acf_render_field_wrap( + array( + 'type' => 'true_false', + 'name' => 'public', + 'key' => 'public', + 'prefix' => 'acf_post_type', + 'value' => $acf_post_type['public'], + 'label' => __( 'Public', 'acf' ), + 'instructions' => __( 'Visible on the frontend and in the admin dashboard.', 'acf' ), + 'ui' => true, + 'default' => 1, + ), + 'div' +); + +acf_render_field_wrap( + array( + 'type' => 'true_false', + 'name' => 'hierarchical', + 'key' => 'hierarchical', + 'class' => 'acf_hierarchical_switch', + 'prefix' => 'acf_post_type', + 'value' => $acf_post_type['hierarchical'], + 'label' => __( 'Hierarchical', 'acf' ), + 'instructions' => __( 'Hierarchical post types can have descendants (like pages).', 'acf' ), + 'ui' => true, + ), + 'div' +); + +do_action( 'acf/post_type/basic_settings', $acf_post_type ); + +acf_render_field_wrap( array( 'type' => 'seperator' ) ); + +acf_render_field_wrap( + array( + 'label' => __( 'Advanced Configuration', 'acf' ), + 'instructions' => __( 'I know what I\'m doing, show me all the options.', 'acf' ), + 'type' => 'true_false', + 'name' => 'advanced_configuration', + 'key' => 'advanced_configuration', + 'prefix' => 'acf_post_type', + 'value' => $acf_post_type['advanced_configuration'], + 'ui' => 1, + 'class' => 'acf-advanced-settings-toggle', + ) +); + +?> +
                                  + + + +
                                  +document.body.classList.add('acf-no-post-types'); +
                                  +
                                  + +

                                  +

                                  + +

                                  + getting started guide.', 'acf' ), + acf_add_url_utm_tags( 'https://www.advancedcustomfields.com/resources/getting-started-with-acf/', 'docs', 'no-post-types' ) + ); + ?> +

                                  +
                                  +
                                  diff --git a/includes/admin/views/acf-taxonomy/advanced-settings.php b/includes/admin/views/acf-taxonomy/advanced-settings.php new file mode 100644 index 0000000..63e2f76 --- /dev/null +++ b/includes/admin/views/acf-taxonomy/advanced-settings.php @@ -0,0 +1,1222 @@ + $tab_label ) { + acf_render_field_wrap( + array( + 'type' => 'tab', + 'label' => $tab_label, + 'key' => 'acf_taxonomy_tabs', + ) + ); + + switch ( $tab_key ) { + case 'general': + acf_render_field_wrap( + array( + 'type' => 'true_false', + 'key' => 'sort', + 'name' => 'sort', + 'prefix' => 'acf_taxonomy', + 'value' => $acf_taxonomy['sort'], + 'label' => __( 'Sort Terms', 'acf' ), + 'instructions' => __( 'Whether terms in this taxonomy should be sorted in the order they are provided to `wp_set_object_terms()`.', 'acf' ), + 'ui' => true, + ) + ); + + acf_render_field_wrap( + array( + 'type' => 'true_false', + 'key' => 'default_term_enabled', + 'name' => 'default_term_enabled', + 'prefix' => 'acf_taxonomy[default_term]', + 'value' => $acf_taxonomy['default_term']['default_term_enabled'], + 'label' => __( 'Default Term', 'acf' ), + 'instructions' => __( 'Create a term for the taxonomy that cannot be deleted. It will not be selected for posts by default.', 'acf' ), + 'ui' => true, + ) + ); + ?> + + 'text', + 'name' => 'default_term_name', + 'key' => 'default_term_name', + 'prefix' => 'acf_taxonomy[default_term]', + 'value' => isset( $acf_taxonomy['default_term']['default_term_name'] ) ? $acf_taxonomy['default_term']['default_term_name'] : '', + 'label' => __( 'Term Name', 'acf' ), + 'instructions' => __( 'The name of the default term.', 'acf' ), + 'required' => 1, + 'conditions' => array( + 'field' => 'default_term_enabled', + 'operator' => '==', + 'value' => '1', + ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'name' => 'default_term_slug', + 'key' => 'default_term_slug', + 'prefix' => 'acf_taxonomy[default_term]', + 'value' => isset( $acf_taxonomy['default_term']['default_term_slug'] ) ? $acf_taxonomy['default_term']['default_term_slug'] : '', + 'label' => __( 'Term Slug', 'acf' ), + 'instructions' => __( 'Single word, no spaces. Underscores and dashes allowed.', 'acf' ), + 'conditions' => array( + 'field' => 'default_term_enabled', + 'operator' => '==', + 'value' => '1', + ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'name' => 'description', + 'key' => 'default_term_description', + 'prefix' => 'acf_taxonomy[default_term]', + 'value' => isset( $acf_taxonomy['default_term']['default_term_description'] ) ? $acf_taxonomy['default_term']['default_term_description'] : '', + 'label' => __( 'Term Description', 'acf' ), + 'instructions' => __( 'A descriptive summary of the term.', 'acf' ), + 'conditions' => array( + 'field' => 'default_term_enabled', + 'operator' => '==', + 'value' => '1', + ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( array( 'type' => 'seperator' ) ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'name' => 'description', + 'prefix' => 'acf_taxonomy', + 'value' => $acf_taxonomy['description'], + 'label' => __( 'Description', 'acf' ), + 'instructions' => __( 'A descriptive summary of the taxonomy.', 'acf' ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( array( 'type' => 'seperator' ) ); + + acf_render_field_wrap( + array( + 'type' => 'true_false', + 'name' => 'active', + 'key' => 'active', + 'prefix' => 'acf_taxonomy', + 'value' => $acf_taxonomy['active'], + 'label' => __( 'Active', 'acf' ), + 'instructions' => __( 'Active taxonomies are enabled and registered with WordPress.', 'acf' ), + 'ui' => true, + 'default' => 1, + ) + ); + + break; + case 'labels': + echo '
                                  '; + echo '' . __( 'Regenerate', 'acf' ) . ''; + echo '' . __( 'Clear', 'acf' ) . ''; + echo ''; + echo '
                                  '; + + acf_render_field_wrap( + array( + 'type' => 'text', + 'key' => 'menu_name', + 'name' => 'menu_name', + 'prefix' => 'acf_taxonomy[labels]', + 'value' => $acf_taxonomy['labels']['menu_name'], + 'data' => array( + /* translators: %s Plural form of taxonomy name */ + 'label' => '%s', + 'replace' => 'plural', + ), + 'label' => __( 'Menu Label', 'acf' ), + 'instructions' => __( 'Assigns the menu name text.', 'acf' ), + 'placeholder' => __( 'Tags', 'acf' ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'name' => 'all_items', + 'prefix' => 'acf_taxonomy[labels]', + 'value' => $acf_taxonomy['labels']['all_items'], + 'data' => array( + /* translators: %s Plural form of taxonomy name */ + 'label' => __( 'All %s', 'acf' ), + 'replace' => 'plural', + ), + 'label' => __( 'All Items', 'acf' ), + 'instructions' => __( 'Assigns the all items text.', 'acf' ), + 'placeholder' => __( 'All Tags', 'acf' ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'key' => 'edit_item', + 'name' => 'edit_item', + 'prefix' => 'acf_taxonomy[labels]', + 'value' => $acf_taxonomy['labels']['edit_item'], + 'data' => array( + /* translators: %s Singular form of taxonomy name */ + 'label' => __( 'Edit %s', 'acf' ), + 'replace' => 'singular', + ), + 'label' => __( 'Edit Item', 'acf' ), + 'instructions' => __( 'At the top of the editor screen when editing a term.', 'acf' ), + 'placeholder' => __( 'Edit Tag', 'acf' ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'key' => 'view_item', + 'name' => 'view_item', + 'prefix' => 'acf_taxonomy[labels]', + 'value' => $acf_taxonomy['labels']['view_item'], + 'data' => array( + /* translators: %s Singular form of taxonomy name */ + 'label' => __( 'View %s', 'acf' ), + 'replace' => 'singular', + ), + 'label' => __( 'View Item', 'acf' ), + 'instructions' => __( 'In the admin bar to view term during editing.', 'acf' ), + 'placeholder' => __( 'View Tag', 'acf' ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'key' => 'update_item', + 'name' => 'update_item', + 'prefix' => 'acf_taxonomy[labels]', + 'value' => $acf_taxonomy['labels']['update_item'], + 'data' => array( + /* translators: %s Singular form of taxonomy name */ + 'label' => __( 'Update %s', 'acf' ), + 'replace' => 'singular', + ), + 'label' => __( 'Update Item', 'acf' ), + 'instructions' => __( 'Assigns the update item text.', 'acf' ), + 'placeholder' => __( 'Update Tag', 'acf' ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'key' => 'add_new_item', + 'name' => 'add_new_item', + 'prefix' => 'acf_taxonomy[labels]', + 'value' => $acf_taxonomy['labels']['add_new_item'], + 'data' => array( + /* translators: %s Singular form of taxonomy name */ + 'label' => __( 'Add New %s', 'acf' ), + 'replace' => 'singular', + ), + 'label' => __( 'Add New Item', 'acf' ), + 'instructions' => __( 'Assigns the add new item text.', 'acf' ), + 'placeholder' => __( 'Add New Tag', 'acf' ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'key' => 'new_item_name', + 'name' => 'new_item_name', + 'prefix' => 'acf_taxonomy[labels]', + 'value' => $acf_taxonomy['labels']['new_item_name'], + 'data' => array( + /* translators: %s Singular form of taxonomy name */ + 'label' => __( 'New %s Name', 'acf' ), + 'replace' => 'singular', + ), + 'label' => __( 'New Item Name', 'acf' ), + 'instructions' => __( 'Assigns the new item name text.', 'acf' ), + 'placeholder' => __( 'New Tag Name', 'acf' ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'key' => 'parent_item', + 'name' => 'parent_item', + 'prefix' => 'acf_taxonomy[labels]', + 'value' => isset( $acf_taxonomy['labels']['parent_item'] ) ? $acf_taxonomy['labels']['parent_item'] : '', + 'data' => array( + /* translators: %s Singular form of taxonomy name */ + 'label' => __( 'Parent %s', 'acf' ), + 'replace' => 'singular', + ), + 'label' => __( 'Parent Item', 'acf' ), + 'instructions' => __( 'Assigns parent item text. Only used on hierarchical taxonomies.', 'acf' ), + 'placeholder' => __( 'Parent Category', 'acf' ), + 'conditions' => array( + 'field' => 'hierarchical', + 'operator' => '==', + 'value' => '1', + ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'key' => 'parent_item_colon', + 'name' => 'parent_item_colon', + 'prefix' => 'acf_taxonomy[labels]', + 'value' => isset( $acf_taxonomy['labels']['parent_item_colon'] ) ? $acf_taxonomy['labels']['parent_item_colon'] : '', + 'data' => array( + /* translators: %s Singular form of taxonomy name */ + 'label' => __( 'Parent %s:', 'acf' ), + 'replace' => 'singular', + ), + 'label' => __( 'Parent Item With Colon', 'acf' ), + 'instructions' => __( 'Assigns parent item text, but with a colon (:) added to the end.', 'acf' ), + 'placeholder' => __( 'Parent Category:', 'acf' ), + 'conditions' => array( + 'field' => 'hierarchical', + 'operator' => '==', + 'value' => '1', + ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'name' => 'search_items', + 'prefix' => 'acf_taxonomy[labels]', + 'value' => $acf_taxonomy['labels']['search_items'], + 'data' => array( + /* translators: %s Plural form of taxonomy name */ + 'label' => __( 'Search %s', 'acf' ), + 'replace' => 'plural', + ), + 'label' => __( 'Search Items', 'acf' ), + 'instructions' => __( 'Assigns search items text.', 'acf' ), + 'placeholder' => __( 'Search Tags', 'acf' ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'name' => 'popular_items', + 'prefix' => 'acf_taxonomy[labels]', + 'value' => isset( $acf_taxonomy['labels']['popular_items'] ) ? $acf_taxonomy['labels']['popular_items'] : '', + 'data' => array( + /* translators: %s Plural form of taxonomy name */ + 'label' => __( 'Popular %s', 'acf' ), + 'replace' => 'plural', + ), + 'label' => __( 'Popular Items', 'acf' ), + 'instructions' => __( 'Assigns popular items text. Only used for non-hierarchical taxonomies.', 'acf' ), + 'placeholder' => __( 'Popular Tags', 'acf' ), + 'conditions' => array( + 'field' => 'hierarchical', + 'operator' => '==', + 'value' => '0', + ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'key' => 'separate_items_with_commas', + 'name' => 'separate_items_with_commas', + 'prefix' => 'acf_taxonomy[labels]', + 'value' => isset( $acf_taxonomy['labels']['separate_items_with_commas'] ) ? $acf_taxonomy['labels']['separate_items_with_commas'] : '', + 'data' => array( + /* translators: %s Plural form of taxonomy name */ + 'label' => __( 'Separate %s with commas', 'acf' ), + 'replace' => 'plural', + 'transform' => 'lower', + ), + 'label' => __( 'Separate Items With Commas', 'acf' ), + 'instructions' => __( 'Assigns the separate item with commas text used in the taxonomy meta box. Only used on non-hierarchical taxonomies.', 'acf' ), + 'placeholder' => __( 'Separate tags with commas', 'acf' ), + 'conditions' => array( + 'field' => 'hierarchical', + 'operator' => '==', + 'value' => '0', + ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'key' => 'add_or_remove_items', + 'name' => 'add_or_remove_items', + 'prefix' => 'acf_taxonomy[labels]', + 'value' => isset( $acf_taxonomy['labels']['add_or_remove_items'] ) ? $acf_taxonomy['labels']['add_or_remove_items'] : '', + 'data' => array( + /* translators: %s Plural form of taxonomy name */ + 'label' => __( 'Add or remove %s', 'acf' ), + 'replace' => 'plural', + 'transform' => 'lower', + ), + 'label' => __( 'Add Or Remove Items', 'acf' ), + 'instructions' => __( 'Assigns the add or remove items text used in the meta box when JavaScript is disabled. Only used on non-hierarchical taxonomies', 'acf' ), + 'placeholder' => __( 'Add or remove tags', 'acf' ), + 'conditions' => array( + 'field' => 'hierarchical', + 'operator' => '==', + 'value' => '0', + ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'key' => 'choose_from_most_used', + 'name' => 'choose_from_most_used', + 'prefix' => 'acf_taxonomy[labels]', + 'value' => isset( $acf_taxonomy['labels']['choose_from_most_used'] ) ? $acf_taxonomy['labels']['choose_from_most_used'] : '', + 'data' => array( + /* translators: %s Plural form of taxonomy name */ + 'label' => __( 'Choose from the most used %s', 'acf' ), + 'replace' => 'plural', + 'transform' => 'lower', + ), + 'label' => __( 'Choose From Most Used', 'acf' ), + 'instructions' => __( "Assigns the 'choose from most used' text used in the meta box when JavaScript is disabled. Only used on non-hierarchical taxonomies.", 'acf' ), + 'placeholder' => __( 'Choose from the most used tags', 'acf' ), + 'conditions' => array( + 'field' => 'hierarchical', + 'operator' => '==', + 'value' => '0', + ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'key' => 'most_used', + 'name' => 'most_used', + 'prefix' => 'acf_taxonomy[labels]', + 'value' => $acf_taxonomy['labels']['most_used'], + 'label' => __( 'Most Used', 'acf' ), + 'instructions' => __( 'Assigns text to the Title field of the Most Used tab.', 'acf' ), + 'default' => __( 'Most Used', 'acf' ), + 'placeholder' => __( 'Most Used', 'acf' ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'key' => 'not_found', + 'name' => 'not_found', + 'prefix' => 'acf_taxonomy[labels]', + 'value' => $acf_taxonomy['labels']['not_found'], + 'data' => array( + /* translators: %s Plural form of taxonomy name */ + 'label' => __( 'No %s found', 'acf' ), + 'replace' => 'plural', + 'transform' => 'lower', + ), + 'label' => __( 'Not Found', 'acf' ), + 'instructions' => __( "Assigns the text displayed when clicking the 'choose from most used' text in the taxonomy meta box when no tags are available, and assigns the text used in the terms list table when there are no items for a taxonomy.", 'acf' ), + 'placeholder' => __( 'No tags found', 'acf' ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'key' => 'no_terms', + 'name' => 'no_terms', + 'prefix' => 'acf_taxonomy[labels]', + 'value' => $acf_taxonomy['labels']['no_terms'], + 'data' => array( + /* translators: %s Plural form of taxonomy name */ + 'label' => __( 'No %s', 'acf' ), + 'replace' => 'plural', + 'transform' => 'lower', + ), + 'label' => __( 'No Terms', 'acf' ), + 'instructions' => __( 'Assigns the text displayed in the posts and media list tables when no tags or categories are available.', 'acf' ), + 'placeholder' => __( 'No tags', 'acf' ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'key' => 'name_field_description', + 'name' => 'name_field_description', + 'prefix' => 'acf_taxonomy[labels]', + 'value' => $acf_taxonomy['labels']['name_field_description'], + 'label' => __( 'Name Field Description', 'acf' ), + 'instructions' => __( 'Describes the Name field on the Edit Tags screen.', 'acf' ), + 'placeholder' => __( 'The name is how it appears on your site', 'acf' ), + 'default' => __( 'The name is how it appears on your site', 'acf' ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'textarea', + 'key' => 'slug_field_description', + 'name' => 'slug_field_description', + 'prefix' => 'acf_taxonomy[labels]', + 'value' => $acf_taxonomy['labels']['slug_field_description'], + 'label' => __( 'Slug Field Description', 'acf' ), + 'instructions' => __( 'Describes the Slug field on the Edit Tags screen.', 'acf' ), + 'placeholder' => __( 'The "slug" is the URL-friendly version of the name. It is usually all lower case and contains only letters, numbers, and hyphens.', 'acf' ), + 'default' => __( 'The "slug" is the URL-friendly version of the name. It is usually all lower case and contains only letters, numbers, and hyphens.', 'acf' ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'key' => 'parent_field_description', + 'name' => 'parent_field_description', + 'prefix' => 'acf_taxonomy[labels]', + 'value' => isset( $acf_taxonomy['labels']['parent_field_description'] ) ? $acf_taxonomy['labels']['parent_field_description'] : '', + 'label' => __( 'Parent Field Description', 'acf' ), + 'instructions' => __( 'Describes the Parent field on the Edit Tags screen.', 'acf' ), + 'placeholder' => __( 'Assign a parent term to create a hierarchy. The term Jazz, for example, would be the parent of Bebop and Big Band', 'acf' ), + 'default' => __( 'Assign a parent term to create a hierarchy. The term Jazz, for example, would be the parent of Bebop and Big Band', 'acf' ), + 'conditions' => array( + 'field' => 'hierarchical', + 'operator' => '==', + 'value' => '1', + ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'key' => 'desc_field_description', + 'name' => 'desc_field_description', + 'prefix' => 'acf_taxonomy[labels]', + 'value' => $acf_taxonomy['labels']['desc_field_description'], + 'label' => __( 'Description Field Description', 'acf' ), + 'instructions' => __( 'Describes the Description field on the Edit Tags screen.', 'acf' ), + 'placeholder' => __( 'The description is not prominent by default; however, some themes may show it.', 'acf' ), + 'default' => __( 'The description is not prominent by default; however, some themes may show it.', 'acf' ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'key' => 'filter_by_item', + 'name' => 'filter_by_item', + 'prefix' => 'acf_taxonomy[labels]', + 'value' => isset( $acf_taxonomy['labels']['filter_by_item'] ) ? $acf_taxonomy['labels']['filter_by_item'] : '', + 'data' => array( + /* translators: %s Singular form of taxonomy name */ + 'label' => __( 'Filter by %s', 'acf' ), + 'replace' => 'singular', + 'transform' => 'lower', + ), + 'label' => __( 'Filter By Item', 'acf' ), + 'instructions' => __( 'Assigns text to the filter button in the posts lists table.', 'acf' ), + 'placeholder' => __( 'Filter by category', 'acf' ), + 'conditions' => array( + 'field' => 'hierarchical', + 'operator' => '==', + 'value' => '1', + ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'key' => 'items_list_navigation', + 'name' => 'items_list_navigation', + 'prefix' => 'acf_taxonomy[labels]', + 'value' => $acf_taxonomy['labels']['items_list_navigation'], + 'data' => array( + /* translators: %s Plural form of taxonomy name */ + 'label' => __( '%s list navigation', 'acf' ), + 'replace' => 'plural', + ), + 'label' => __( 'Items List Navigation', 'acf' ), + 'instructions' => __( 'Assigns text to the table pagination hidden heading.', 'acf' ), + 'placeholder' => __( 'Tags list navigation', 'acf' ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'key' => 'items_list', + 'name' => 'items_list', + 'prefix' => 'acf_taxonomy[labels]', + 'value' => $acf_taxonomy['labels']['items_list'], + 'data' => array( + /* translators: %s Plural form of taxonomy name */ + 'label' => __( '%s list', 'acf' ), + 'replace' => 'plural', + ), + 'label' => __( 'Items List', 'acf' ), + 'instructions' => __( 'Assigns text to the table hidden heading.', 'acf' ), + 'placeholder' => __( 'Tags list', 'acf' ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'key' => 'back_to_items', + 'name' => 'back_to_items', + 'prefix' => 'acf_taxonomy[labels]', + 'value' => $acf_taxonomy['labels']['back_to_items'], + 'data' => array( + /* translators: %s Plural form of taxonomy name */ + 'label' => __( '← Go to %s', 'acf' ), + 'replace' => 'plural', + 'transform' => 'lower', + ), + 'label' => __( 'Back To Items', 'acf' ), + 'instructions' => __( 'Assigns the text used to link back to the main index after updating a term.', 'acf' ), + 'placeholder' => __( '← Go to tags', 'acf' ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'key' => 'item_link', + 'name' => 'item_link', + 'prefix' => 'acf_taxonomy[labels]', + 'value' => $acf_taxonomy['labels']['item_link'], + 'data' => array( + /* translators: %s Singular form of taxonomy name */ + 'label' => __( '%s Link', 'acf' ), + 'replace' => 'singular', + ), + 'label' => __( 'Item Link', 'acf' ), + 'instructions' => __( 'Assigns a title for navigation link block variation used in the block editor.', 'acf' ), + 'placeholder' => __( 'Tag Link', 'acf' ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'key' => 'item_link_description', + 'name' => 'item_link_description', + 'prefix' => 'acf_taxonomy[labels]', + 'value' => $acf_taxonomy['labels']['item_link_description'], + 'data' => array( + /* translators: %s Singular form of taxonomy name */ + 'label' => __( 'A link to a %s', 'acf' ), + 'replace' => 'singular', + 'transform' => 'lower', + ), + 'label' => __( 'Item Link Description', 'acf' ), + 'instructions' => __( 'Describes a navigation link block variation used in the block editor.', 'acf' ), + 'placeholder' => __( 'A link to a tag', 'acf' ), + ), + 'div', + 'field' + ); + break; + case 'visibility': + acf_render_field_wrap( + array( + 'type' => 'true_false', + 'key' => 'show_ui', + 'name' => 'show_ui', + 'prefix' => 'acf_taxonomy', + 'value' => $acf_taxonomy['show_ui'], + 'label' => __( 'Show In UI', 'acf' ), + 'instructions' => __( 'Items can be edited and managed in the admin dashboard.', 'acf' ), + 'default' => 1, + 'ui' => true, + ), + 'div' + ); + + acf_render_field_wrap( + array( + 'type' => 'true_false', + 'key' => 'show_in_menu', + 'name' => 'show_in_menu', + 'prefix' => 'acf_taxonomy', + 'value' => $acf_taxonomy['show_in_menu'], + 'label' => __( 'Show In Admin Menu', 'acf' ), + 'instructions' => __( 'Admin editor navigation in the sidebar menu.', 'acf' ), + 'default' => 1, + 'ui' => true, + 'conditions' => array( + 'field' => 'show_ui', + 'operator' => '==', + 'value' => '1', + ), + ) + ); + + $acf_tags_meta_box_text = __( 'Tags Meta Box', 'acf' ); + $acf_categories_meta_box_text = __( 'Categories Meta Box', 'acf' ); + $acf_default_meta_box_text = empty( $acf_taxonomy['hierarchical'] ) ? $acf_tags_meta_box_text : $acf_categories_meta_box_text; + + acf_render_field_wrap( + array( + 'type' => 'select', + 'key' => 'meta_box', + 'name' => 'meta_box', + 'class' => 'meta_box', + 'prefix' => 'acf_taxonomy', + 'value' => $acf_taxonomy['meta_box'], + 'label' => __( 'Meta Box', 'acf' ), + 'instructions' => __( 'Controls the meta box on the content editor screen. By default, the Categories meta box is shown for hierarchical taxonomies, and the Tags meta box is shown for non-hierarchical taxonomies.', 'acf' ), + 'hide_search' => true, + 'choices' => array( + 'default' => $acf_default_meta_box_text, + 'custom' => __( 'Custom Meta Box', 'acf' ), + 'disabled' => __( 'No Meta Box', 'acf' ), + ), + 'data' => array( + 'tags_meta_box' => __( 'Tags Meta Box', 'acf' ), + 'categories_meta_box' => __( 'Categories Meta Box', 'acf' ), + ), + 'conditions' => array( + 'field' => 'show_ui', + 'operator' => '==', + 'value' => '1', + ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'seperator', + 'conditions' => array( + array( + 'field' => 'meta_box', + 'operator' => '!=', + 'value' => 'custom', + ), + array( + 'field' => 'show_ui', + 'operator' => '==', + 'value' => '1', + ), + ), + ) + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'name' => 'meta_box_cb', + 'key' => 'meta_box_cb', + 'prefix' => 'acf_taxonomy', + 'value' => $acf_taxonomy['meta_box_cb'], + 'label' => __( 'Register Meta Box Callback', 'acf' ), + 'instructions' => __( 'A PHP function name to be called to handle the content of a meta box on your taxonomy.', 'acf' ), + 'conditions' => array( + 'field' => 'meta_box', + 'operator' => '==', + 'value' => 'custom', + ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'name' => 'meta_box_sanitize_cb', + 'key' => 'meta_box_sanitize_cb', + 'prefix' => 'acf_taxonomy', + 'value' => $acf_taxonomy['meta_box_sanitize_cb'], + 'label' => __( 'Meta Box Sanitization Callback', 'acf' ), + 'instructions' => __( 'A PHP function name to be called for sanitizing taxonomy data saved from a meta box.', 'acf' ), + 'conditions' => array( + 'field' => 'meta_box', + 'operator' => '==', + 'value' => 'custom', + ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'seperator', + 'conditions' => array( + 'field' => 'meta_box', + 'operator' => '==', + 'value' => 'custom', + ), + ) + ); + + acf_render_field_wrap( + array( + 'type' => 'true_false', + 'key' => 'show_in_nav_menus', + 'name' => 'show_in_nav_menus', + 'prefix' => 'acf_taxonomy', + 'value' => $acf_taxonomy['show_in_nav_menus'], + 'label' => __( 'Appearance Menus Support', 'acf' ), + 'instructions' => __( "Allow items to be added to menus in the 'Appearance' > 'Menus' screen. Must be turned on in 'Screen options'.", 'acf' ), + 'default' => 1, + 'ui' => true, + ) + ); + + acf_render_field_wrap( + array( + 'type' => 'true_false', + 'key' => 'show_tagcloud', + 'name' => 'show_tagcloud', + 'prefix' => 'acf_taxonomy', + 'value' => $acf_taxonomy['show_tagcloud'], + 'label' => __( 'Tag Cloud', 'acf' ), + 'instructions' => __( 'List the taxonomy in the Tag Cloud Widget controls.', 'acf' ), + 'default' => 1, + 'ui' => true, + ) + ); + + acf_render_field_wrap( + array( + 'type' => 'true_false', + 'key' => 'show_in_quick_edit', + 'name' => 'show_in_quick_edit', + 'prefix' => 'acf_taxonomy', + 'value' => $acf_taxonomy['show_in_quick_edit'], + 'label' => __( 'Quick Edit', 'acf' ), + 'instructions' => __( 'Show the taxonomy in the quick/bulk edit panel.', 'acf' ), + 'default' => 1, + 'ui' => true, + ) + ); + + acf_render_field_wrap( + array( + 'type' => 'true_false', + 'key' => 'show_admin_column', + 'name' => 'show_admin_column', + 'prefix' => 'acf_taxonomy', + 'value' => $acf_taxonomy['show_admin_column'], + 'label' => __( 'Show Admin Column', 'acf' ), + 'instructions' => __( 'Display a column for the taxonomy on post type listing screens.', 'acf' ), + 'ui' => true, + ) + ); + + break; + case 'urls': + acf_render_field_wrap( + array( + 'type' => 'select', + 'name' => 'permalink_rewrite', + 'key' => 'permalink_rewrite', + 'prefix' => 'acf_taxonomy[rewrite]', + 'value' => isset( $acf_taxonomy['rewrite']['permalink_rewrite'] ) ? $acf_taxonomy['rewrite']['permalink_rewrite'] : 'taxonomy_key', + 'label' => __( 'Permalink Rewrite', 'acf' ), + 'instructions' => __( 'Select the type of permalink to use for this taxonomy.', 'acf' ) . ' {slug}.', + 'choices' => array( + 'taxonomy_key' => __( 'Taxonomy Key', 'acf' ), + 'custom_permalink' => __( 'Custom Permalink', 'acf' ), + 'no_permalink' => __( 'No Permalink (prevent URL rewriting)', 'acf' ), + ), + 'default' => 'taxonomy_key', + 'hide_search' => true, + 'data' => array( + /* translators: this string will be appended with the new permalink structure. */ + 'taxonomy_key_instructions' => __( 'Rewrite the URL using the taxonomy key as the slug. Your permalink structure will be', 'acf' ) . ' {slug}.', + /* translators: this string will be appended with the new permalink structure. */ + 'custom_permalink_instructions' => __( 'Rewrite the URL using a custom slug defined in the input below. Your permalink structure will be', 'acf' ) . ' {slug}.', + 'no_permalink_instructions' => __( 'Permalinks for this taxonomy are disabled.', 'acf' ), + 'site_url' => get_site_url(), + ), + 'class' => 'permalink_rewrite', + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'name' => 'slug', + 'key' => 'slug', + 'prefix' => 'acf_taxonomy[rewrite]', + 'value' => isset( $acf_taxonomy['rewrite']['slug'] ) ? $acf_taxonomy['rewrite']['slug'] : '', + 'label' => __( 'URL Slug', 'acf' ), + 'instructions' => __( 'Customize the slug used in the URL', 'acf' ), + 'conditions' => array( + 'field' => 'permalink_rewrite', + 'operator' => '==', + 'value' => 'custom_permalink', + ), + 'class' => 'rewrite_slug_field', + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'true_false', + 'name' => 'with_front', + 'key' => 'with_front', + 'prefix' => 'acf_taxonomy[rewrite]', + 'value' => isset( $acf_taxonomy['rewrite']['with_front'] ) ? $acf_taxonomy['rewrite']['with_front'] : true, + 'label' => __( 'Front URL Prefix', 'acf' ), + 'instructions' => __( 'Alters the permalink structure to add the `WP_Rewrite::$front` prefix to URLs.', 'acf' ), + 'ui' => true, + 'default' => 1, + 'conditions' => array( + 'field' => 'permalink_rewrite', + 'operator' => '!=', + 'value' => 'no_permalink', + ), + ), + 'div' + ); + + acf_render_field_wrap( + array( + 'type' => 'true_false', + 'name' => 'rewrite_hierarchical', + 'key' => 'rewrite_hierarchical', + 'prefix' => 'acf_taxonomy[rewrite]', + 'value' => isset( $acf_taxonomy['rewrite']['rewrite_hierarchical'] ) ? $acf_taxonomy['rewrite']['rewrite_hierarchical'] : false, + 'label' => __( 'Hierarchical', 'acf' ), + 'instructions' => __( 'Parent-child terms in URLs for hierarchical taxonomies.', 'acf' ), + 'ui' => true, + 'default' => 0, + 'conditions' => array( + 'field' => 'permalink_rewrite', + 'operator' => '!=', + 'value' => 'no_permalink', + ), + ), + 'div' + ); + + acf_render_field_wrap( array( 'type' => 'seperator' ) ); + + acf_render_field_wrap( + array( + 'type' => 'true_false', + 'name' => 'publicly_queryable', + 'key' => 'publicly_queryable', + 'prefix' => 'acf_taxonomy', + 'value' => $acf_taxonomy['publicly_queryable'], + 'label' => __( 'Publicly Queryable', 'acf' ), + 'instructions' => __( 'URLs for an item and items can be accessed with a query string.', 'acf' ), + 'default' => 1, + 'ui' => true, + ) + ); + + acf_render_field_wrap( + array( + 'type' => 'seperator', + 'conditions' => array( + 'field' => 'publicly_queryable', + 'operator' => '==', + 'value' => 1, + ), + ) + ); + + acf_render_field_wrap( + array( + 'type' => 'select', + 'name' => 'query_var', + 'key' => 'query_var', + 'prefix' => 'acf_taxonomy', + 'value' => $acf_taxonomy['query_var'], + 'label' => __( 'Query Variable Support', 'acf' ), + 'instructions' => __( 'Terms can be accessed using the non-pretty permalink, e.g., {query_var}={term_slug}.', 'acf' ), + 'choices' => array( + 'post_type_key' => __( 'Taxonomy Key', 'acf' ), + 'custom_query_var' => __( 'Custom Query Variable', 'acf' ), + 'none' => __( 'No Query Variable Support', 'acf' ), + ), + 'default' => 1, + 'hide_search' => true, + 'class' => 'query_var', + 'conditions' => array( + 'field' => 'publicly_queryable', + 'operator' => '==', + 'value' => 1, + ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'name' => 'query_var_name', + 'key' => 'query_var_name', + 'prefix' => 'acf_taxonomy', + 'value' => $acf_taxonomy['query_var_name'], + 'label' => __( 'Query Variable', 'acf' ), + 'instructions' => __( 'Customize the query variable name', 'acf' ), + 'ui' => true, + 'conditions' => array( + 'field' => 'query_var', + 'operator' => '==', + 'value' => 'custom_query_var', + ), + ), + 'div', + 'field' + ); + + break; + case 'permissions': + $acf_all_caps = array(); + + foreach ( wp_roles()->roles as $acf_role ) { + $acf_all_caps = array_merge( $acf_all_caps, $acf_role['capabilities'] ); + } + $acf_all_caps = array_unique( array_keys( $acf_all_caps ) ); + $acf_all_caps = array_combine( $acf_all_caps, $acf_all_caps ); + + acf_render_field_wrap( + array( + 'type' => 'select', + 'name' => 'manage_terms', + 'key' => 'manage_terms', + 'prefix' => 'acf_taxonomy[capabilities]', + 'value' => $acf_taxonomy['capabilities']['manage_terms'], + 'label' => __( 'Manage Terms Capability', 'acf' ), + 'instructions' => __( 'The capability name for managing terms of this taxonomy.', 'acf' ), + 'choices' => $acf_all_caps, + 'default' => 'manage_categories', + 'class' => 'acf-taxonomy-manage_terms', + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'select', + 'name' => 'edit_terms', + 'key' => 'edit_terms', + 'prefix' => 'acf_taxonomy[capabilities]', + 'value' => $acf_taxonomy['capabilities']['edit_terms'], + 'label' => __( 'Edit Terms Capability', 'acf' ), + 'instructions' => __( 'The capability name for editing terms of this taxonomy.', 'acf' ), + 'choices' => $acf_all_caps, + 'default' => 'manage_categories', + 'class' => 'acf-taxonomy-edit_terms', + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'select', + 'name' => 'delete_terms', + 'key' => 'delete_terms', + 'prefix' => 'acf_taxonomy[capabilities]', + 'value' => $acf_taxonomy['capabilities']['delete_terms'], + 'label' => __( 'Delete Terms Capability', 'acf' ), + 'instructions' => __( 'The capability name for deleting terms of this taxonomy.', 'acf' ), + 'choices' => $acf_all_caps, + 'default' => 'manage_categories', + 'class' => 'acf-taxonomy-delete_terms', + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'select', + 'name' => 'assign_terms', + 'key' => 'assign_terms', + 'prefix' => 'acf_taxonomy[capabilities]', + 'value' => $acf_taxonomy['capabilities']['assign_terms'], + 'label' => __( 'Assign Terms Capability', 'acf' ), + 'instructions' => __( 'The capability name for assigning terms of this taxonomy.', 'acf' ), + 'choices' => $acf_all_caps, + 'default' => 'edit_posts', + 'class' => 'acf-taxonomy-assign_terms', + ), + 'div', + 'field' + ); + + break; + case 'rest_api': + acf_render_field_wrap( + array( + 'type' => 'true_false', + 'key' => 'show_in_rest', + 'name' => 'show_in_rest', + 'prefix' => 'acf_taxonomy', + 'value' => $acf_taxonomy['show_in_rest'], + 'label' => __( 'Show In REST API', 'acf' ), + 'instructions' => __( 'Expose this post type in the REST API.', 'acf' ), + 'default' => 1, + 'ui' => true, + ), + 'div' + ); + ?> + + 'text', + 'key' => 'rest_base', + 'name' => 'rest_base', + 'prefix' => 'acf_taxonomy', + 'value' => $acf_taxonomy['rest_base'], + 'label' => __( 'Base URL', 'acf' ), + 'instructions' => __( 'The base URL for the post type REST API URLs.', 'acf' ), + 'conditions' => array( + 'field' => 'show_in_rest', + 'operator' => '==', + 'value' => '1', + ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'name' => 'rest_namespace', + 'key' => 'rest_namespace', + 'prefix' => 'acf_taxonomy', + 'value' => $acf_taxonomy['rest_namespace'], + 'label' => __( 'Namespace Route', 'acf' ), + 'instructions' => __( 'The namespace part of the REST API URL.', 'acf' ), + 'placeholder' => 'wp/v2', + 'conditions' => array( + 'field' => 'show_in_rest', + 'operator' => '==', + 'value' => '1', + ), + ), + 'div', + 'field' + ); + + acf_render_field_wrap( + array( + 'type' => 'text', + 'key' => 'rest_controller_class', + 'name' => 'rest_controller_class', + 'prefix' => 'acf_taxonomy', + 'value' => $acf_taxonomy['rest_controller_class'], + 'label' => __( 'Controller Class', 'acf' ), + 'instructions' => __( 'Optional custom controller to use instead of `WP_REST_Terms_Controller `.', 'acf' ), + 'placeholder' => 'WP_REST_Terms_Controller', + 'conditions' => array( + 'field' => 'show_in_rest', + 'operator' => '==', + 'value' => '1', + ), + ), + 'div', + 'field' + ); + break; + } + + do_action( "acf/taxonomy/render_settings_tab/{$tab_key}", $acf_taxonomy ); +} diff --git a/includes/admin/views/acf-taxonomy/basic-settings.php b/includes/admin/views/acf-taxonomy/basic-settings.php new file mode 100644 index 0000000..22fab6c --- /dev/null +++ b/includes/admin/views/acf-taxonomy/basic-settings.php @@ -0,0 +1,136 @@ + __( 'Plural Label', 'acf' ), + /* translators: example taxonomy */ + 'placeholder' => __( 'Genres', 'acf' ), + 'type' => 'text', + 'key' => 'name', + 'name' => 'name', + 'class' => 'acf_plural_label', + 'prefix' => 'acf_taxonomy[labels]', + 'value' => $acf_taxonomy['labels']['name'], + 'required' => 1, + ), + 'div', + 'field' +); + +acf_render_field_wrap( + array( + 'label' => __( 'Singular Label', 'acf' ), + /* translators: example taxonomy */ + 'placeholder' => __( 'Genre', 'acf' ), + 'type' => 'text', + 'key' => 'singular_name', + 'name' => 'singular_name', + 'class' => 'acf_slugify_to_key acf_singular_label', + 'prefix' => 'acf_taxonomy[labels]', + 'value' => $acf_taxonomy['labels']['singular_name'], + 'required' => 1, + ), + 'div', + 'field' +); + +acf_render_field_wrap( + array( + 'label' => __( 'Taxonomy Key', 'acf' ), + 'instructions' => __( 'Lower case letters, underscores and dashes only, Max 32 characters.', 'acf' ), + /* translators: example taxonomy */ + 'placeholder' => __( 'genre', 'acf' ), + 'type' => 'text', + 'key' => 'taxonomy', + 'name' => 'taxonomy', + 'maxlength' => 32, + 'class' => 'acf_slugified_key', + 'prefix' => 'acf_taxonomy', + 'value' => $acf_taxonomy['taxonomy'], + 'required' => 1, + ), + 'div', + 'field' +); + +// Allow preselecting the linked post types based on previously created post type. +$acf_use_post_type = acf_get_post_type_from_request_args( 'create-taxonomy' ); +if ( $acf_use_post_type && ! empty( $acf_use_post_type['post_type'] ) ) { + $acf_taxonomy['object_type'] = array( $acf_use_post_type['post_type'] ); +} + +acf_render_field_wrap( + array( + 'label' => __( 'Post Types', 'acf' ), + 'type' => 'select', + 'name' => 'object_type', + 'prefix' => 'acf_taxonomy', + 'value' => $acf_taxonomy['object_type'], + 'choices' => acf_get_pretty_post_types(), + 'multiple' => 1, + 'ui' => 1, + 'allow_null' => 1, + 'instructions' => __( 'One or many post types that can be classified with this taxonomy.', 'acf' ), + ), + 'div', + 'field' +); + +acf_render_field_wrap( array( 'type' => 'seperator' ) ); + +acf_render_field_wrap( + array( + 'type' => 'true_false', + 'key' => 'public', + 'name' => 'public', + 'prefix' => 'acf_taxonomy', + 'value' => $acf_taxonomy['public'], + 'label' => __( 'Public', 'acf' ), + 'instructions' => __( 'Makes a taxonomy visible on the frontend and in the admin dashboard.', 'acf' ), + 'ui' => true, + 'default' => 1, + ) +); + +acf_render_field_wrap( + array( + 'type' => 'true_false', + 'key' => 'hierarchical', + 'name' => 'hierarchical', + 'class' => 'acf_hierarchical_switch', + 'prefix' => 'acf_taxonomy', + 'value' => $acf_taxonomy['hierarchical'], + 'label' => __( 'Hierarchical', 'acf' ), + 'instructions' => __( 'Hierarchical taxonomies can have descendants (like categories).', 'acf' ), + 'ui' => true, + ), + 'div' +); + +do_action( 'acf/taxonomy/basic_settings', $acf_taxonomy ); + +acf_render_field_wrap( array( 'type' => 'seperator' ) ); + +acf_render_field_wrap( + array( + 'label' => __( 'Advanced Configuration', 'acf' ), + 'instructions' => __( 'I know what I\'m doing, show me all the options.', 'acf' ), + 'type' => 'true_false', + 'key' => 'advanced_configuration', + 'name' => 'advanced_configuration', + 'prefix' => 'acf_taxonomy', + 'value' => $acf_taxonomy['advanced_configuration'], + 'ui' => 1, + 'class' => 'acf-advanced-settings-toggle', + ) +); + +?> +
                                  + + + +
                                  +document.body.classList.add('acf-no-taxonomies'); +
                                  +
                                  + +

                                  +

                                  + +

                                  + getting started guide.', 'acf' ), + acf_add_url_utm_tags( 'https://www.advancedcustomfields.com/resources/getting-started-with-acf/', 'docs', 'no-taxonomies' ) + ); + ?> +

                                  +
                                  +
                                  diff --git a/includes/admin/views/browse-fields-modal.php b/includes/admin/views/browse-fields-modal.php new file mode 100644 index 0000000..ac3f51d --- /dev/null +++ b/includes/admin/views/browse-fields-modal.php @@ -0,0 +1,99 @@ + __( 'Popular', 'acf' ) ); +$browse_fields_tabs = $browse_fields_tabs + acf_get_field_categories_i18n(); +?> +
                                  +
                                  +
                                  +
                                  +

                                  + + + +
                                  +
                                  + $label ) { + acf_render_field_wrap( + array( + 'type' => 'tab', + 'label' => $label, + 'key' => 'acf_browse_fields_tabs', + ) + ); + + printf( + '
                                  ', + esc_attr( $name ) + ); + } + ?> +
                                  +
                                  + +

                                  + ' + ); + ?> +

                                  +

                                  + ' . esc_html( __( 'Popular fields', 'acf' ) ) . ''; + printf( + /* translators: %s: A link to the popular fields used in ACF */ + acf_esc_html( __( 'Try a different search term or browse %s', 'acf' ) ), + $browse_popular_link //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + ); + ?> +

                                  +
                                  +
                                  +
                                  +
                                  + +
                                  +
                                  + + + + + +
                                  +
                                  +
                                  +
                                  +
                                  +

                                  + + + + +

                                  +
                                  + +
                                  +
                                  + +
                                  +
                                  +
                                  +
                                  diff --git a/includes/admin/views/field-group-field-conditional-logic.php b/includes/admin/views/field-group-field-conditional-logic.php deleted file mode 100644 index a49f761..0000000 --- a/includes/admin/views/field-group-field-conditional-logic.php +++ /dev/null @@ -1,158 +0,0 @@ - - - - - - - 'true_false', - 'name' => 'conditional_logic', - 'prefix' => $field['prefix'], - 'value' => $disabled ? 0 : 1, - 'ui' => 1, - 'class' => 'conditions-toggle', - )); - - ?> -
                                  style="display:none;"> - - $group ): - - // validate - if( empty($group) ) continue; - - - // vars - // $group_id must be completely different to $rule_id to avoid JS issues - $group_id = "group_{$group_id}"; - $h4 = ($group_id == "group_0") ? __("Show this field if",'acf') : __("or",'acf'); - - ?> -
                                  - -

                                  - - - - $rule ): - - // valid rule - $rule = wp_parse_args( $rule, array( - 'field' => '', - 'operator' => '', - 'value' => '', - )); - - - // vars - // $group_id must be completely different to $rule_id to avoid JS issues - $rule_id = "rule_{$rule_id}"; - $prefix = "{$field['prefix']}[conditional_logic][{$group_id}][{$rule_id}]"; - - // data attributes - $attributes = array( - 'data-id' => $rule_id, - 'data-field' => $rule['field'], - 'data-operator' => $rule['operator'], - 'data-value' => $rule['value'] - ); - - ?> - > - - - - - - - - -
                                  - 'select', - 'prefix' => $prefix, - 'name' => 'field', - 'class' => 'condition-rule-field', - 'disabled' => $disabled, - 'value' => $rule['field'], - 'choices' => array( - $rule['field'] => $rule['field'] - ) - )); - - ?> - - 'select', - 'prefix' => $prefix, - 'name' => 'operator', - 'class' => 'condition-rule-operator', - 'disabled' => $disabled, - 'value' => $rule['operator'], - 'choices' => array( - $rule['operator'] => $rule['operator'] - ) - )); - - ?> - - 'select', - 'prefix' => $prefix, - 'name' => 'value', - 'class' => 'condition-rule-value', - 'disabled' => $disabled, - 'value' => $rule['value'], - 'choices' => array( - $rule['value'] => $rule['value'] - ) - )); - - ?> - - - - -
                                  - -
                                  - - -

                                  - - - -
                                  - - - \ No newline at end of file diff --git a/includes/admin/views/field-group-field.php b/includes/admin/views/field-group-field.php deleted file mode 100644 index 0c6657e..0000000 --- a/includes/admin/views/field-group-field.php +++ /dev/null @@ -1,184 +0,0 @@ - 'acf-field-object acf-field-object-' . acf_slugify($field['type']), - 'data-id' => $field['ID'], - 'data-key' => $field['key'], - 'data-type' => $field['type'], -); - -$meta = array( - 'ID' => $field['ID'], - 'key' => $field['key'], - 'parent' => $field['parent'], - 'menu_order' => $i, - 'save' => '' -); - -?> -
                                  > - -
                                  - $v ): - acf_hidden_input(array( 'name' => $prefix . '[' . $k . ']', 'value' => $v, 'id' => $id . '-' . $k )); - endforeach; ?> -
                                  - -
                                  - -
                                  - -
                                  - - - __('Field Label','acf'), - 'instructions' => __('This is the name which will appear on the EDIT page','acf'), - 'name' => 'label', - 'type' => 'text', - 'class' => 'field-label' - ), true); - - - // name - acf_render_field_setting($field, array( - 'label' => __('Field Name','acf'), - 'instructions' => __('Single word, no spaces. Underscores and dashes allowed','acf'), - 'name' => 'name', - 'type' => 'text', - 'class' => 'field-name' - ), true); - - - // type - acf_render_field_setting($field, array( - 'label' => __('Field Type','acf'), - 'instructions' => '', - 'type' => 'select', - 'name' => 'type', - 'choices' => acf_get_grouped_field_types(), - 'class' => 'field-type' - ), true); - - - // instructions - acf_render_field_setting($field, array( - 'label' => __('Instructions','acf'), - 'instructions' => __('Instructions for authors. Shown when submitting data','acf'), - 'type' => 'textarea', - 'name' => 'instructions', - 'rows' => 5 - ), true); - - - // required - acf_render_field_setting($field, array( - 'label' => __('Required?','acf'), - 'instructions' => '', - 'type' => 'true_false', - 'name' => 'required', - 'ui' => 1, - 'class' => 'field-required' - ), true); - - - // 3rd party settings - do_action('acf/render_field_settings', $field); - - - // type specific settings - do_action("acf/render_field_settings/type={$field['type']}", $field); - - - // conditional logic - acf_get_view('field-group-field-conditional-logic', array( 'field' => $field )); - - - // wrapper - acf_render_field_wrap(array( - 'label' => __('Wrapper Attributes','acf'), - 'instructions' => '', - 'type' => 'number', - 'name' => 'width', - 'prefix' => $field['prefix'] . '[wrapper]', - 'value' => $field['wrapper']['width'], - 'prepend' => __('width', 'acf'), - 'append' => '%', - 'wrapper' => array( - 'data-name' => 'wrapper', - 'class' => 'acf-field-setting-wrapper' - ) - ), 'tr'); - - acf_render_field_wrap(array( - 'label' => '', - 'instructions' => '', - 'type' => 'text', - 'name' => 'class', - 'prefix' => $field['prefix'] . '[wrapper]', - 'value' => $field['wrapper']['class'], - 'prepend' => __('class', 'acf'), - 'wrapper' => array( - 'data-append' => 'wrapper' - ) - ), 'tr'); - - acf_render_field_wrap(array( - 'label' => '', - 'instructions' => '', - 'type' => 'text', - 'name' => 'id', - 'prefix' => $field['prefix'] . '[wrapper]', - 'value' => $field['wrapper']['id'], - 'prepend' => __('id', 'acf'), - 'wrapper' => array( - 'data-append' => 'wrapper' - ) - ), 'tr'); - - ?> - - - - - -
                                  - -
                                  -
                                  - -
                                  \ No newline at end of file diff --git a/includes/admin/views/field-group-fields.php b/includes/admin/views/field-group-fields.php deleted file mode 100644 index e4a9e50..0000000 --- a/includes/admin/views/field-group-fields.php +++ /dev/null @@ -1,52 +0,0 @@ -
                                  - -
                                    -
                                  • -
                                  • -
                                  • -
                                  • -
                                  • -
                                  - -
                                  - -
                                  - + Add Field button to create your first field.",'acf'); ?> -
                                  - - $field ): - - acf_get_view('field-group-field', array( 'field' => $field, 'i' => $i )); - - endforeach; - - endif; ?> - -
                                  - -
                                    -
                                  • - -
                                  • -
                                  - - 'acfcloneindex', - 'key' => 'acfcloneindex', - 'label' => __('New Field','acf'), - 'name' => 'new_field', - 'type' => 'text' - )); - - ?> - - - -
                                  \ No newline at end of file diff --git a/includes/admin/views/field-group-locations.php b/includes/admin/views/field-group-locations.php deleted file mode 100644 index 12c76a8..0000000 --- a/includes/admin/views/field-group-locations.php +++ /dev/null @@ -1,45 +0,0 @@ - -
                                  -
                                  - -

                                  -
                                  -
                                  -
                                  - - $group ): - - // bail ealry if no group - if( empty($group) ) return; - - - // view - acf_get_view('html-location-group', array( - 'group' => $group, - 'group_id' => "group_{$i}" - )); - - endforeach; ?> - -

                                  - - - -
                                  -
                                  -
                                  - \ No newline at end of file diff --git a/includes/admin/views/field-group-options.php b/includes/admin/views/field-group-options.php deleted file mode 100644 index e72cd08..0000000 --- a/includes/admin/views/field-group-options.php +++ /dev/null @@ -1,155 +0,0 @@ - __('Active','acf'), - 'instructions' => '', - 'type' => 'true_false', - 'name' => 'active', - 'prefix' => 'acf_field_group', - 'value' => $field_group['active'], - 'ui' => 1, - //'ui_on_text' => __('Active', 'acf'), - //'ui_off_text' => __('Inactive', 'acf'), -)); - - -// style -acf_render_field_wrap(array( - 'label' => __('Style','acf'), - 'instructions' => '', - 'type' => 'select', - 'name' => 'style', - 'prefix' => 'acf_field_group', - 'value' => $field_group['style'], - 'choices' => array( - 'default' => __("Standard (WP metabox)",'acf'), - 'seamless' => __("Seamless (no metabox)",'acf'), - ) -)); - - -// position -acf_render_field_wrap(array( - 'label' => __('Position','acf'), - 'instructions' => '', - 'type' => 'select', - 'name' => 'position', - 'prefix' => 'acf_field_group', - 'value' => $field_group['position'], - 'choices' => array( - 'acf_after_title' => __("High (after title)",'acf'), - 'normal' => __("Normal (after content)",'acf'), - 'side' => __("Side",'acf'), - ), - 'default_value' => 'normal' -)); - - -// label_placement -acf_render_field_wrap(array( - 'label' => __('Label placement','acf'), - 'instructions' => '', - 'type' => 'select', - 'name' => 'label_placement', - 'prefix' => 'acf_field_group', - 'value' => $field_group['label_placement'], - 'choices' => array( - 'top' => __("Top aligned",'acf'), - 'left' => __("Left aligned",'acf'), - ) -)); - - -// instruction_placement -acf_render_field_wrap(array( - 'label' => __('Instruction placement','acf'), - 'instructions' => '', - 'type' => 'select', - 'name' => 'instruction_placement', - 'prefix' => 'acf_field_group', - 'value' => $field_group['instruction_placement'], - 'choices' => array( - 'label' => __("Below labels",'acf'), - 'field' => __("Below fields",'acf'), - ) -)); - - -// menu_order -acf_render_field_wrap(array( - 'label' => __('Order No.','acf'), - 'instructions' => __('Field groups with a lower order will appear first','acf'), - 'type' => 'number', - 'name' => 'menu_order', - 'prefix' => 'acf_field_group', - 'value' => $field_group['menu_order'], -)); - - -// description -acf_render_field_wrap(array( - 'label' => __('Description','acf'), - 'instructions' => __('Shown in field group list','acf'), - 'type' => 'text', - 'name' => 'description', - 'prefix' => 'acf_field_group', - 'value' => $field_group['description'], -)); - - -// hide on screen -$choices = array( - 'permalink' => __("Permalink", 'acf'), - 'the_content' => __("Content Editor",'acf'), - 'excerpt' => __("Excerpt", 'acf'), - 'custom_fields' => __("Custom Fields", 'acf'), - 'discussion' => __("Discussion", 'acf'), - 'comments' => __("Comments", 'acf'), - 'revisions' => __("Revisions", 'acf'), - 'slug' => __("Slug", 'acf'), - 'author' => __("Author", 'acf'), - 'format' => __("Format", 'acf'), - 'page_attributes' => __("Page Attributes", 'acf'), - 'featured_image' => __("Featured Image", 'acf'), - 'categories' => __("Categories", 'acf'), - 'tags' => __("Tags", 'acf'), - 'send-trackbacks' => __("Send Trackbacks", 'acf'), -); -if( acf_get_setting('remove_wp_meta_box') ) { - unset( $choices['custom_fields'] ); -} - -acf_render_field_wrap(array( - 'label' => __('Hide on screen','acf'), - 'instructions' => __('Select items to hide them from the edit screen.','acf') . '

                                  ' . __("If multiple field groups appear on an edit screen, the first field group's options will be used (the one with the lowest order number)",'acf'), - 'type' => 'checkbox', - 'name' => 'hide_on_screen', - 'prefix' => 'acf_field_group', - 'value' => $field_group['hide_on_screen'], - 'toggle' => true, - 'choices' => $choices -)); - - -// 3rd party settings -do_action('acf/render_field_group_settings', $field_group); - -?> -
                                  - -
                                  - \ No newline at end of file diff --git a/includes/admin/views/global/form-top.php b/includes/admin/views/global/form-top.php new file mode 100644 index 0000000..c711a87 --- /dev/null +++ b/includes/admin/views/global/form-top.php @@ -0,0 +1,71 @@ +post_title; +$acf_post_type = is_object( $post_type_object ) ? $post_type_object->name : ''; +$acf_publish_btn_name = 'save'; + +if ( 'publish' !== $post->post_status ) { + $acf_publish_btn_name = 'publish'; +} + +if ( 'acf-field-group' === $acf_post_type ) { + $acf_use_post_type = acf_get_post_type_from_request_args( 'add-fields' ); + $acf_use_taxonomy = acf_get_taxonomy_from_request_args( 'add-fields' ); + + /* translators: %s - singular label of post type/taxonomy, i.e. "Movie"/"Genre" */ + $acf_prefilled_title = __( '%s fields', 'acf' ); + + /** + * Sets a default title to be prefilled (e.g. "Movies Fields") for a post type or taxonomy. + * + * @since 6.1.5 + * + * @param string $acf_prefilled_title A string to define the prefilled title for a post type or taxonomy. + */ + $acf_prefilled_title = (string) apply_filters( 'acf/field_group/prefill_title', $acf_prefilled_title ); + + if ( $acf_use_post_type && ! empty( $acf_use_post_type['labels']['singular_name'] ) ) { + $acf_prefilled_title = sprintf( $acf_prefilled_title, $acf_use_post_type['labels']['singular_name'] ); + } elseif ( $acf_use_taxonomy && ! empty( $acf_use_taxonomy['labels']['singular_name'] ) ) { + $acf_prefilled_title = sprintf( $acf_prefilled_title, $acf_use_taxonomy['labels']['singular_name'] ); + } else { + $acf_prefilled_title = false; + } + + if ( empty( $acf_title ) && $acf_prefilled_title ) { + $acf_title = $acf_prefilled_title; + } +} +?> +
                                  +
                                  + +
                                  +

                                  + +

                                  + +
                                  + + +
                                  + +
                                  + +
                                  + + + + + + + +
                                  + +
                                  +
                                  diff --git a/includes/admin/views/global/header.php b/includes/admin/views/global/header.php new file mode 100644 index 0000000..ad97dc6 --- /dev/null +++ b/includes/admin/views/global/header.php @@ -0,0 +1,33 @@ +labels->name; +} +if ( $page_title ) { + ?> +
                                  + +

                                  + +

                                  + + cap->create_posts ) ) { + echo ' ' . esc_html( $post_type_object->labels->add_new ) . ''; + } + ?> + +
                                  + diff --git a/includes/admin/views/global/navigation.php b/includes/admin/views/global/navigation.php new file mode 100644 index 0000000..60d40f3 --- /dev/null +++ b/includes/admin/views/global/navigation.php @@ -0,0 +1,160 @@ + $sub_item ) { + + // Check user can access page. + if ( ! current_user_can( $sub_item[1] ) ) { + continue; + } + + // Define tab. + $menu_item = array( + 'text' => $sub_item[0], + 'url' => $sub_item[2], + ); + + // Convert submenu slug "test" to "$parent_slug&page=test". + if ( ! strpos( $sub_item[2], '.php' ) ) { + $menu_item['url'] = add_query_arg( array( 'page' => $sub_item[2] ), $parent_slug ); + $menu_item['class'] = $sub_item[2]; + } else { + // Build class from URL. + $menu_item['class'] = str_replace( 'edit.php?post_type=', '', $sub_item[2] ); + } + + // Detect active state. + if ( $submenu_file === $sub_item[2] || $plugin_page === $sub_item[2] ) { + $menu_item['is_active'] = true; + } + + // Handle "Add New" versions of edit page. + if ( str_replace( 'edit', 'post-new', $sub_item[2] ) === $submenu_file ) { + $menu_item['is_active'] = true; + } + + // Flag core tabs. + $core_tabs_classes = array_merge( acf_get_internal_post_types(), array( 'acf-tools', 'acf-settings-updates' ) ); + if ( in_array( $menu_item['class'], $core_tabs_classes, true ) ) { + $core_tabs[] = $menu_item; + } else { + $more_items[] = $menu_item; + } + } +} + +/** + * Filters the admin navigation more items. + * + * @since 5.9.0 + * + * @param array $more_items The array of navigation tabs. + */ +$more_items = apply_filters( 'acf/admin/toolbar', $more_items ); + +// Bail early if set to false. +if ( $core_tabs === false ) { + return; +} + +$acf_is_free = ! defined( 'ACF_PRO' ) || ! ACF_PRO; +$acf_wpengine_logo_link = acf_add_url_utm_tags( + 'https://wpengine.com/', + 'bx_prod_referral', + $acf_is_free ? 'acf_free_plugin_topbar_logo' : 'acf_pro_plugin_topbar_logo', + false, + 'acf_plugin', + 'referral' +); + +?> +
                                  +
                                  +
                                  + + +

                                  + %s', + ! empty( $menu_item['is_active'] ) ? ' is-active' : '', + 'acf-header-tab-' . acf_slugify( $classname ), + esc_url( $menu_item['url'] ), + acf_esc_html( $menu_item['text'] ) + ); + } + ?> + +
                                  + +
                                    + %s', + ! empty( $more_item['is_active'] ) ? ' is-active' : '', + 'acf-header-tab-' . acf_slugify( $classname ), + esc_url( $more_item['url'] ), + acf_esc_html( $more_item['text'] ) + ); + } + ?> +
                                  +
                                  + +
                                  +
                                  + + + +

                                  +
                                  + + +
                                  +
                                  +
                                  + +id, acf_get_internal_post_types(), true ) ) { + if ( $plugin_page == 'acf-tools' ) { + $acf_page_title = __( 'Tools', 'acf' ); + } elseif ( $plugin_page == 'acf-settings-updates' ) { + $acf_page_title = __( 'Updates', 'acf' ); + } + acf_get_view( 'global/header' ); +} +?> diff --git a/includes/admin/views/html-admin-navigation.php b/includes/admin/views/html-admin-navigation.php deleted file mode 100644 index 863f278..0000000 --- a/includes/admin/views/html-admin-navigation.php +++ /dev/null @@ -1,81 +0,0 @@ - $sub_item ) { - - // Check user can access page. - if ( !current_user_can( $sub_item[1] ) ) { - continue; - } - - // Ignore "Add New". - if( $i === 1 ) { - continue; - } - - // Define tab. - $tab = array( - 'text' => $sub_item[0], - 'url' => $sub_item[2] - ); - - // Convert submenu slug "test" to "$parent_slug&page=test". - if( !strpos($sub_item[2], '.php') ) { - $tab['url'] = add_query_arg( array( 'page' => $sub_item[2] ), $parent_slug ); - } - - // Detect active state. - if( $submenu_file === $sub_item[2] || $plugin_page === $sub_item[2] ) { - $tab['is_active'] = true; - } - - // Special case for "Add New" page. - if( $i === 0 && $submenu_file === 'post-new.php?post_type=acf-field-group' ) { - $tab['is_active'] = true; - } - $tabs[] = $tab; - } -} - -/** - * Filters the admin navigation tabs. - * - * @date 27/3/20 - * @since 5.9.0 - * - * @param array $tabs The array of navigation tabs. - */ -$tabs = apply_filters( 'acf/admin/toolbar', $tabs ); - -// Bail early if set to false. -if( $tabs === false ) { - return; -} - -?> -
                                  -

                                  - %s', - !empty( $tab['is_active'] ) ? ' is-active' : '', - esc_url( $tab['url'] ), - acf_esc_html( $tab['text'] ) - ); - } ?> -
                                  \ No newline at end of file diff --git a/includes/admin/views/html-admin-tools.php b/includes/admin/views/html-admin-tools.php deleted file mode 100644 index 145ac6c..0000000 --- a/includes/admin/views/html-admin-tools.php +++ /dev/null @@ -1,27 +0,0 @@ - -
                                  - -

                                  - -
                                  - -
                                  - -
                                  \ No newline at end of file diff --git a/includes/admin/views/html-location-group.php b/includes/admin/views/html-location-group.php deleted file mode 100644 index 14dc961..0000000 --- a/includes/admin/views/html-location-group.php +++ /dev/null @@ -1,25 +0,0 @@ -
                                  - -

                                  - - - - $rule ): - - // validate rule - $rule = acf_validate_location_rule($rule); - - // append id and group - $rule['id'] = "rule_{$i}"; - $rule['group'] = $group_id; - - // view - acf_get_view('html-location-rule', array( - 'rule' => $rule - )); - - endforeach; ?> - -
                                  - -
                                  \ No newline at end of file diff --git a/includes/admin/views/html-location-rule.php b/includes/admin/views/html-location-rule.php deleted file mode 100644 index 1171133..0000000 --- a/includes/admin/views/html-location-rule.php +++ /dev/null @@ -1,91 +0,0 @@ - - - - 'select', - 'name' => 'param', - 'prefix' => $prefix, - 'value' => $rule['param'], - 'choices' => $choices, - 'class' => 'refresh-location-rule' - )); - - } - - ?> - - - 'select', - 'name' => 'operator', - 'prefix' => $prefix, - 'value' => $rule['operator'], - 'choices' => $choices - )); - - // custom - } else { - - echo $choices; - - } - - ?> - - - 'select', - 'name' => 'value', - 'prefix' => $prefix, - 'value' => $rule['value'], - 'choices' => $choices - )); - - // custom - } else { - - echo $choices; - - } - - ?> - - - - - - - - \ No newline at end of file diff --git a/includes/admin/views/html-notice-upgrade.php b/includes/admin/views/html-notice-upgrade.php deleted file mode 100644 index 11f40fd..0000000 --- a/includes/admin/views/html-notice-upgrade.php +++ /dev/null @@ -1,43 +0,0 @@ - -
                                  - -
                                  - - -

                                  -


                                  - -

                                  - -
                                  - -
                                  - -
                                  - -
                                  - - - \ No newline at end of file diff --git a/includes/admin/views/tools/tools.php b/includes/admin/views/tools/tools.php new file mode 100644 index 0000000..2a8075f --- /dev/null +++ b/includes/admin/views/tools/tools.php @@ -0,0 +1,35 @@ + +
                                  + +

                                  +

                                  + +
                                  + +
                                  + + +
                                  diff --git a/includes/admin/views/html-admin-page-upgrade-network.php b/includes/admin/views/upgrade/network.php similarity index 56% rename from includes/admin/views/html-admin-page-upgrade-network.php rename to includes/admin/views/upgrade/network.php index 903733e..9ee2a5b 100644 --- a/includes/admin/views/html-admin-page-upgrade-network.php +++ b/includes/admin/views/upgrade/network.php @@ -1,14 +1,14 @@
                                  -

                                  +

                                  -

                                  -

                                  +

                                  +

                                  @@ -33,9 +33,9 @@ - + @@ -44,53 +44,57 @@ - + $site ): - - // switch blog - switch_to_blog( $site['blog_id'] ); - - ?> - class="alternate"> + if ( $sites ) : + foreach ( $sites as $i => $site ) : + + // switch blog + switch_to_blog( $site['blog_id'] ); + + ?> + + class="alternate"> -
                                  - +
                                  - +
                                  - + -
                                  +
                                  - - - - + + + +
                                  -

                                  -

                                  Return to network dashboard', 'acf'), network_admin_url() ); ?>

                                  +

                                  +

                                  Return to network dashboard', 'acf' ), network_admin_url() ); ?>

                                  -
                                  \ No newline at end of file +
                                  diff --git a/includes/admin/views/upgrade/notice.php b/includes/admin/views/upgrade/notice.php new file mode 100644 index 0000000..3ec10c8 --- /dev/null +++ b/includes/admin/views/upgrade/notice.php @@ -0,0 +1,49 @@ + +
                                  +
                                  +
                                  + +

                                  +


                                  + +

                                  + +
                                  +
                                  + +
                                  + +
                                  +
                                  + + + diff --git a/includes/admin/views/html-admin-page-upgrade.php b/includes/admin/views/upgrade/upgrade.php similarity index 63% rename from includes/admin/views/html-admin-page-upgrade.php rename to includes/admin/views/upgrade/upgrade.php index 3c0f9aa..a3ab091 100644 --- a/includes/admin/views/html-admin-page-upgrade.php +++ b/includes/admin/views/upgrade/upgrade.php @@ -1,14 +1,14 @@
                                  -

                                  +

                                  - + -

                                  -

                                  +

                                  +

                                  -

                                  See what\'s new', 'acf' ), admin_url('edit.php?post_type=acf-field-group') ); ?>

                                  +

                                  See what\'s new', 'acf' ), admin_url( 'edit.php?post_type=acf-field-group' ) ); ?>

                                  - + -

                                  +

                                  -
                                  \ No newline at end of file +
                                  diff --git a/includes/ajax/class-acf-ajax-check-screen.php b/includes/ajax/class-acf-ajax-check-screen.php index c56eb56..cd554d2 100644 --- a/includes/ajax/class-acf-ajax-check-screen.php +++ b/includes/ajax/class-acf-ajax-check-screen.php @@ -1,98 +1,110 @@ request, array( - 'screen' => '', - 'post_id' => 0, - 'ajax' => true, - 'exists' => array() - )); - - // vars - $response = array( - 'results' => array(), - 'style' => '' - ); - - // get field groups - $field_groups = acf_get_field_groups( $args ); - - // loop through field groups - if( $field_groups ) { - foreach( $field_groups as $i => $field_group ) { - - // vars - $item = array( - 'id' => 'acf-' . $field_group['key'], - 'key' => $field_group['key'], - 'title' => $field_group['title'], - 'position' => $field_group['position'], - 'style' => $field_group['style'], - 'label' => $field_group['label_placement'], - 'edit' => acf_get_field_group_edit_link( $field_group['ID'] ), - 'html' => '' - ); - - // append html if doesnt already exist on page - if( !in_array($field_group['key'], $args['exists']) ) { - - // load fields - $fields = acf_get_fields( $field_group ); - - // get field HTML - ob_start(); - - // render - acf_render_fields( $fields, $args['post_id'], 'div', $field_group['instruction_placement'] ); - - $item['html'] = ob_get_clean(); - } - - // append - $response['results'][] = $item; - } - - // Get style from first field group. - $response['style'] = acf_get_field_group_style( $field_groups[0] ); - } - - // Custom metabox order. - if( $this->get('screen') == 'post' ) { - $response['sorted'] = get_user_option('meta-box-order_' . $this->get('post_type')); - } - - // return - return $response; - } +if ( ! defined( 'ABSPATH' ) ) { + exit; // Exit if accessed directly } -acf_new_instance('ACF_Ajax_Check_Screen'); +if ( ! class_exists( 'ACF_Ajax_Check_Screen' ) ) : + + class ACF_Ajax_Check_Screen extends ACF_Ajax { + + /** @var string The AJAX action name. */ + var $action = 'acf/ajax/check_screen'; + + /** @var bool Prevents access for non-logged in users. */ + var $public = false; + + /** + * get_response + * + * Returns the response data to sent back. + * + * @date 31/7/18 + * @since 5.7.2 + * + * @param array $request The request args. + * @return mixed The response data or WP_Error. + */ + function get_response( $request ) { + + // vars + $args = wp_parse_args( + $this->request, + array( + 'screen' => '', + 'post_id' => 0, + 'ajax' => true, + 'exists' => array(), + ) + ); + + // vars + $response = array( + 'results' => array(), + 'style' => '', + ); + + // get field groups + $field_groups = acf_get_field_groups( $args ); + + // loop through field groups + if ( $field_groups ) { + foreach ( $field_groups as $i => $field_group ) { + + // vars + $item = array( + 'id' => 'acf-' . $field_group['key'], + 'key' => $field_group['key'], + 'title' => $field_group['title'], + 'position' => $field_group['position'], + 'classes' => postbox_classes( 'acf-' . $field_group['key'], $args['screen'] ), + 'style' => $field_group['style'], + 'label' => $field_group['label_placement'], + 'edit' => acf_get_field_group_edit_link( $field_group['ID'] ), + 'html' => '', + ); + + $hidden_metaboxes = get_hidden_meta_boxes( $args['screen'] ); + + if ( is_array( $hidden_metaboxes ) && in_array( $item['id'], $hidden_metaboxes ) ) { + $item['classes'] = trim( $item['classes'] . ' hide-if-js' ); + } + + // append html if doesnt already exist on page + if ( ! in_array( $field_group['key'], $args['exists'] ) ) { + + // load fields + $fields = acf_get_fields( $field_group ); + + // get field HTML + ob_start(); + + // render + acf_render_fields( $fields, $args['post_id'], 'div', $field_group['instruction_placement'] ); + + $item['html'] = ob_get_clean(); + } + + // append + $response['results'][] = $item; + } + + // Get style from first field group. + $response['style'] = acf_get_field_group_style( $field_groups[0] ); + } + + // Custom metabox order. + if ( $this->get( 'screen' ) == 'post' ) { + $response['sorted'] = get_user_option( 'meta-box-order_' . $this->get( 'post_type' ) ); + } + + // return + return $response; + } + } + + acf_new_instance( 'ACF_Ajax_Check_Screen' ); endif; // class_exists check -?> \ No newline at end of file + diff --git a/includes/ajax/class-acf-ajax-local-json-diff.php b/includes/ajax/class-acf-ajax-local-json-diff.php index a3ca7bb..454d3a1 100644 --- a/includes/ajax/class-acf-ajax-local-json-diff.php +++ b/includes/ajax/class-acf-ajax-local-json-diff.php @@ -1,80 +1,99 @@ 404 ) ); - } - - // Disable filters and load field group directly from database. - acf_disable_filters(); - $field_group = acf_get_field_group( $id ); - if( !$field_group ) { - return new WP_Error( 'acf_invalid_id', __( 'Invalid field group ID.', 'acf' ), array( 'status' => 404 ) ); - } - $field_group['fields'] = acf_get_fields( $field_group ); - $field_group['modified'] = get_post_modified_time( 'U', true, $field_group['ID'] ); - $field_group = acf_prepare_field_group_for_export( $field_group ); - - // Load local field group file. - $files = acf_get_local_json_files(); - $key = $field_group['key']; - if( !isset( $files[ $key ] ) ) { - return new WP_Error( 'acf_cannot_compare', __( 'Sorry, this field group is unavailable for diff comparison.', 'acf' ), array( 'status' => 404 ) ); - } - $local_field_group = json_decode( file_get_contents( $files[ $key ] ), true ); - - // Render diff HTML. - $date_format = get_option( 'date_format' ) . ' ' . get_option( 'time_format' ); - $date_template = __( 'Last updated: %s', 'acf' ); - $json['html'] = ' + class ACF_Ajax_Local_JSON_Diff extends ACF_Ajax { + + /** + * The AJAX action name. + * + * @var string + */ + public $action = 'acf/ajax/local_json_diff'; + + /** + * Prevents access for non-logged in users. + * + * @var bool + */ + public $public = false; + + /** + * Returns the response data to sent back. + * + * @date 31/7/18 + * @since 5.7.2 + * + * @param array $request The request args. + * @return array|WP_Error The response data or WP_Error. + */ + public function get_response( $request ) { + $json = array(); + + // Extract props. + $id = isset( $request['id'] ) ? intval( $request['id'] ) : 0; + + // Bail early if missing props. + if ( ! $id ) { + return new WP_Error( 'acf_invalid_param', __( 'Invalid field group parameter(s).', 'acf' ), array( 'status' => 404 ) ); + } + + $post_type = get_post_type( $id ); + if ( ! in_array( $post_type, acf_get_internal_post_types(), true ) ) { + return new WP_Error( 'acf_invalid_post_type', __( 'Invalid post type selected for review.', 'acf' ), array( 'status' => 404 ) ); + } + + // Disable filters and load the post directly from database. + acf_disable_filters(); + + $post = acf_get_internal_post_type( $id, $post_type ); + if ( ! $post ) { + return new WP_Error( 'acf_invalid_id', __( 'Invalid post ID.', 'acf' ), array( 'status' => 404 ) ); + } + + // Field groups also load in fields. + if ( 'acf-field-group' === $post_type ) { + $post['fields'] = acf_get_fields( $post ); + } + + $post['modified'] = get_post_modified_time( 'U', true, $post['ID'] ); + $post = acf_prepare_internal_post_type_for_export( $post, $post_type ); + + // Load local field group file. + $files = acf_get_local_json_files( $post_type ); + $key = $post['key']; + if ( ! isset( $files[ $key ] ) ) { + return new WP_Error( 'acf_cannot_compare', __( 'Sorry, this post is unavailable for diff comparison.', 'acf' ), array( 'status' => 404 ) ); + } + $local_post = json_decode( file_get_contents( $files[ $key ] ), true ); + + // Render diff HTML. + $date_format = get_option( 'date_format' ) . ' ' . get_option( 'time_format' ); + $date_template = __( 'Last updated: %s', 'acf' ); + $json['html'] = '
                                  - ' . __( 'Original field group', 'acf' ) . ' - ' . sprintf( $date_template, wp_date( $date_format, $field_group['modified'] ) ) . ' + ' . __( 'Original', 'acf' ) . ' + ' . sprintf( $date_template, wp_date( $date_format, $post['modified'] ) ) . '
                                  - ' . __( 'JSON field group (newer)', 'acf' ) . ' - ' . sprintf( $date_template, wp_date( $date_format, $local_field_group['modified'] ) ) . ' + ' . __( 'JSON (newer)', 'acf' ) . ' + ' . sprintf( $date_template, wp_date( $date_format, $local_post['modified'] ) ) . '
                                  - ' . wp_text_diff( acf_json_encode( $field_group ), acf_json_encode( $local_field_group ) ) . ' + ' . wp_text_diff( acf_json_encode( $post ), acf_json_encode( $local_post ) ) . '
                                  '; - return $json; + return $json; + } } -} -acf_new_instance('ACF_Ajax_Local_JSON_Diff'); + acf_new_instance( 'ACF_Ajax_Local_JSON_Diff' ); endif; // class_exists check diff --git a/includes/ajax/class-acf-ajax-query-users.php b/includes/ajax/class-acf-ajax-query-users.php index 7173b62..8f674c9 100644 --- a/includes/ajax/class-acf-ajax-query-users.php +++ b/includes/ajax/class-acf-ajax-query-users.php @@ -1,273 +1,275 @@ per_page; - $args['paged'] = $this->page; - if( $this->is_search ) { - $args['search'] = "*{$this->search}*"; - } - - /** - * Filters the query args. - * - * @date 21/5/19 - * @since 5.8.1 - * - * @param array $args The query args. - * @param array $request The query request. - * @param ACF_Ajax_Query $query The query object. - */ - return apply_filters( "acf/ajax/query_users/args", $args, $request, $this ); - } - - /** - * Prepares args for the get_results() method. - * - * @date 23/3/20 - * @since 5.8.9 - * - * @param array args The query args. - * @return array - */ - function prepare_args( $args ) { - - // Parse pagination args that may have been modified. - if( isset($args['users_per_page']) ) { - $this->per_page = intval($args['users_per_page']); - unset( $args['users_per_page'] ); - - } elseif( isset($args['number']) ) { - $this->per_page = intval($args['number']); - } - - if( isset($args['paged']) ) { - $this->page = intval($args['paged']); - unset( $args['paged'] ); - } - - // Set pagination args for fine control. - $args['number'] = $this->per_page; - $args['offset'] = $this->per_page * ($this->page - 1); - $args['count_total'] = true; - return $args; - } - - /** - * get_results - * - * Returns an array of results for the given args. - * - * @date 31/7/18 - * @since 5.7.2 - * - * @param array args The query args. - * @return array - */ - function get_results( $args ) { - $results = array(); - - // Prepare args for quey. - $args = $this->prepare_args( $args ); - - // Get result groups. - if( !empty( $args['role__in']) ) { - $roles = acf_get_user_role_labels( $args['role__in'] ); - } else { - $roles = acf_get_user_role_labels(); - } - - // Return a flat array of results when searching or when queriying one group only. - if( $this->is_search || count($roles) === 1 ) { - - // Query users and append to results. - $wp_user_query = new WP_User_Query( $args ); - $users = (array) $wp_user_query->get_results(); - $total_users = $wp_user_query->get_total(); - foreach( $users as $user ) { - $results[] = $this->get_result( $user ); - } - - // Determine if more results exist. - // As this query does not return grouped results, the calculation can be exact (">"). - $this->more = ( $total_users > count($users) + $args['offset'] ); - - // Otherwise, group results via role. - } else { - - // Unset args that will interfer with query results. - unset( $args['role__in'], $args['role__not_in'] ); - - // Loop over each role. - foreach( $roles as $role => $role_label ) { - - // Query users (for this role only). - $args['role'] = $role; - $wp_user_query = new WP_User_Query( $args ); - $users = (array) $wp_user_query->get_results(); - $total_users = $wp_user_query->get_total(); - - //acf_log( $args ); - //acf_log( '- ', count($users) ); - //acf_log( '- ', $total_users ); - - // If users were found for this query... - if( $users ) { - - // Append optgroup of results. - $role_results = array(); - foreach( $users as $user ) { - $role_results[] = $this->get_result( $user ); - } - $results[] = array( - 'text' => $role_label, - 'children' => $role_results - ); - - // End loop when enough results have been found. - if( count($users) === $args['number'] ) { - - // Determine if more results exist. - // As this query does return grouped results, the calculation is best left fuzzy to avoid querying the next group (">="). - $this->more = ( $total_users >= count($users) + $args['offset'] ); - break; - - // Otherwise, modify the args so that the next query can continue on correctly. - } else { - $args['offset'] = 0; - $args['number'] -= count($users); - } - - // If no users were found (for the current pagination args), but there were users found for previous pages... - // Modify the args so that the next query is offset slightly less (the number of total users) and can continue on correctly. - } elseif( $total_users ) { - $args['offset'] -= $total_users; - continue; - - // Ignore roles that will never return a result. - } else { - continue; - } - } - } - - /** - * Filters the query results. - * - * @date 21/5/19 - * @since 5.8.1 - * - * @param array $results The query results. - * @param array $args The query args. - * @param ACF_Ajax_Query $query The query object. - */ - return apply_filters( "acf/ajax/query_users/results", $results, $args, $this ); - } - - /** - * get_result - * - * Returns a single result for the given item object. - * - * @date 31/7/18 - * @since 5.7.2 - * - * @param mixed $item A single item from the queried results. - * @return string - */ - function get_result( $user ) { - $item = acf_get_user_result( $user ); - - /** - * Filters the result item. - * - * @date 21/5/19 - * @since 5.8.1 - * - * @param array $item The choice id and text. - * @param ACF_User $user The user object. - * @param ACF_Ajax_Query $query The query object. - */ - return apply_filters( "acf/ajax/query_users/result", $item, $user, $this ); - } - - /** - * Filters the WP_User_Query search columns. - * - * @date 9/3/20 - * @since 5.8.8 - * - * @param array $columns An array of column names to be searched. - * @param string $search The search term. - * @param WP_User_Query $WP_User_Query The WP_User_Query instance. - * @return array - */ - function filter_search_columns( $columns, $search, $WP_User_Query ) { - - /** - * Filters the column names to be searched. - * - * @date 21/5/19 - * @since 5.8.1 - * - * @param array $columns An array of column names to be searched. - * @param string $search The search term. - * @param WP_User_Query $WP_User_Query The WP_User_Query instance. - * @param ACF_Ajax_Query $query The query object. - */ - return apply_filters( "acf/ajax/query_users/search_columns", $columns, $search, $WP_User_Query, $this ); - } +if ( ! defined( 'ABSPATH' ) ) { + exit; // Exit if accessed directly } -acf_new_instance('ACF_Ajax_Query_Users'); +if ( ! class_exists( 'ACF_Ajax_Query_Users' ) ) : + + class ACF_Ajax_Query_Users extends ACF_Ajax_Query { + + /** @var string The AJAX action name. */ + var $action = 'acf/ajax/query_users'; + + /** + * init_request + * + * Called at the beginning of a request to setup properties. + * + * @date 23/5/19 + * @since 5.8.1 + * + * @param array $request The request args. + * @return void + */ + function init_request( $request ) { + parent::init_request( $request ); + + // Customize query. + add_filter( 'user_search_columns', array( $this, 'filter_search_columns' ), 10, 3 ); + + /** + * Fires when a request is made. + * + * @date 21/5/19 + * @since 5.8.1 + * + * @param array $request The query request. + * @param ACF_Ajax_Query $query The query object. + */ + do_action( 'acf/ajax/query_users/init', $request, $this ); + } + + /** + * get_args + * + * Returns an array of args for this query. + * + * @date 31/7/18 + * @since 5.7.2 + * + * @param array $request The request args. + * @return array + */ + function get_args( $request ) { + $args = parent::get_args( $request ); + $args['number'] = $this->per_page; + $args['paged'] = $this->page; + if ( $this->is_search ) { + $args['search'] = "*{$this->search}*"; + } + + /** + * Filters the query args. + * + * @date 21/5/19 + * @since 5.8.1 + * + * @param array $args The query args. + * @param array $request The query request. + * @param ACF_Ajax_Query $query The query object. + */ + return apply_filters( 'acf/ajax/query_users/args', $args, $request, $this ); + } + + /** + * Prepares args for the get_results() method. + * + * @date 23/3/20 + * @since 5.8.9 + * + * @param array args The query args. + * @return array + */ + function prepare_args( $args ) { + + // Parse pagination args that may have been modified. + if ( isset( $args['users_per_page'] ) ) { + $this->per_page = intval( $args['users_per_page'] ); + unset( $args['users_per_page'] ); + + } elseif ( isset( $args['number'] ) ) { + $this->per_page = intval( $args['number'] ); + } + + if ( isset( $args['paged'] ) ) { + $this->page = intval( $args['paged'] ); + unset( $args['paged'] ); + } + + // Set pagination args for fine control. + $args['number'] = $this->per_page; + $args['offset'] = $this->per_page * ( $this->page - 1 ); + $args['count_total'] = true; + return $args; + } + + /** + * get_results + * + * Returns an array of results for the given args. + * + * @date 31/7/18 + * @since 5.7.2 + * + * @param array args The query args. + * @return array + */ + function get_results( $args ) { + $results = array(); + + // Prepare args for quey. + $args = $this->prepare_args( $args ); + + // Get result groups. + if ( ! empty( $args['role__in'] ) ) { + $roles = acf_get_user_role_labels( $args['role__in'] ); + } else { + $roles = acf_get_user_role_labels(); + } + + // Return a flat array of results when searching or when queriying one group only. + if ( $this->is_search || count( $roles ) === 1 ) { + + // Query users and append to results. + $wp_user_query = new WP_User_Query( $args ); + $users = (array) $wp_user_query->get_results(); + $total_users = $wp_user_query->get_total(); + foreach ( $users as $user ) { + $results[] = $this->get_result( $user ); + } + + // Determine if more results exist. + // As this query does not return grouped results, the calculation can be exact (">"). + $this->more = ( $total_users > count( $users ) + $args['offset'] ); + + // Otherwise, group results via role. + } else { + + // Unset args that will interfer with query results. + unset( $args['role__in'], $args['role__not_in'] ); + + // Loop over each role. + foreach ( $roles as $role => $role_label ) { + + // Query users (for this role only). + $args['role'] = $role; + $wp_user_query = new WP_User_Query( $args ); + $users = (array) $wp_user_query->get_results(); + $total_users = $wp_user_query->get_total(); + + // acf_log( $args ); + // acf_log( '- ', count($users) ); + // acf_log( '- ', $total_users ); + + // If users were found for this query... + if ( $users ) { + + // Append optgroup of results. + $role_results = array(); + foreach ( $users as $user ) { + $role_results[] = $this->get_result( $user ); + } + $results[] = array( + 'text' => $role_label, + 'children' => $role_results, + ); + + // End loop when enough results have been found. + if ( count( $users ) === $args['number'] ) { + + // Determine if more results exist. + // As this query does return grouped results, the calculation is best left fuzzy to avoid querying the next group (">="). + $this->more = ( $total_users >= count( $users ) + $args['offset'] ); + break; + + // Otherwise, modify the args so that the next query can continue on correctly. + } else { + $args['offset'] = 0; + $args['number'] -= count( $users ); + } + + // If no users were found (for the current pagination args), but there were users found for previous pages... + // Modify the args so that the next query is offset slightly less (the number of total users) and can continue on correctly. + } elseif ( $total_users ) { + $args['offset'] -= $total_users; + continue; + + // Ignore roles that will never return a result. + } else { + continue; + } + } + } + + /** + * Filters the query results. + * + * @date 21/5/19 + * @since 5.8.1 + * + * @param array $results The query results. + * @param array $args The query args. + * @param ACF_Ajax_Query $query The query object. + */ + return apply_filters( 'acf/ajax/query_users/results', $results, $args, $this ); + } + + /** + * get_result + * + * Returns a single result for the given item object. + * + * @date 31/7/18 + * @since 5.7.2 + * + * @param mixed $item A single item from the queried results. + * @return string + */ + function get_result( $user ) { + $item = acf_get_user_result( $user ); + + /** + * Filters the result item. + * + * @date 21/5/19 + * @since 5.8.1 + * + * @param array $item The choice id and text. + * @param ACF_User $user The user object. + * @param ACF_Ajax_Query $query The query object. + */ + return apply_filters( 'acf/ajax/query_users/result', $item, $user, $this ); + } + + /** + * Filters the WP_User_Query search columns. + * + * @date 9/3/20 + * @since 5.8.8 + * + * @param array $columns An array of column names to be searched. + * @param string $search The search term. + * @param WP_User_Query $WP_User_Query The WP_User_Query instance. + * @return array + */ + function filter_search_columns( $columns, $search, $WP_User_Query ) { + + /** + * Filters the column names to be searched. + * + * @date 21/5/19 + * @since 5.8.1 + * + * @param array $columns An array of column names to be searched. + * @param string $search The search term. + * @param WP_User_Query $WP_User_Query The WP_User_Query instance. + * @param ACF_Ajax_Query $query The query object. + */ + return apply_filters( 'acf/ajax/query_users/search_columns', $columns, $search, $WP_User_Query, $this ); + } + } + + acf_new_instance( 'ACF_Ajax_Query_Users' ); endif; // class_exists check diff --git a/includes/ajax/class-acf-ajax-query.php b/includes/ajax/class-acf-ajax-query.php index 026b05a..dd1bfe6 100644 --- a/includes/ajax/class-acf-ajax-query.php +++ b/includes/ajax/class-acf-ajax-query.php @@ -1,150 +1,152 @@ init_request( $request ); - - // Get query args. - $args = $this->get_args( $request ); - - // Get query results. - $results = $this->get_results( $args ); - if( is_wp_error($results) ) { - return $results; - } - - // Return response. - return array( - 'results' => $results, - 'more' => $this->more - ); - } - - /** - * init_request - * - * Called at the beginning of a request to setup properties. - * - * @date 23/5/19 - * @since 5.8.1 - * - * @param array $request The request args. - * @return void - */ - function init_request( $request ) { - - // Get field for this query. - if( isset($request['field_key']) ) { - $this->field = acf_get_field( $request['field_key'] ); - } - - // Update query properties. - if( isset($request['page']) ) { - $this->page = intval($request['page']); - } - if( isset($request['per_page']) ) { - $this->per_page = intval($request['per_page']); - } - if( isset($request['search']) && acf_not_empty($request['search']) ) { - $this->search = sanitize_text_field($request['search']); - $this->is_search = true; - } - if( isset($request['post_id']) ) { - $this->post_id = $request['post_id']; - } - } - - /** - * get_args - * - * Returns an array of args for this query. - * - * @date 31/7/18 - * @since 5.7.2 - * - * @param array $request The request args. - * @return array - */ - function get_args( $request ) { - - // Allow for custom "query" arg. - if( isset($request['query']) ) { - return (array) $request['query']; - } - return array(); - } - - /** - * get_items - * - * Returns an array of results for the given args. - * - * @date 31/7/18 - * @since 5.7.2 - * - * @param array args The query args. - * @return array - */ - function get_results( $args ) { - return array(); - } - - /** - * get_item - * - * Returns a single result for the given item object. - * - * @date 31/7/18 - * @since 5.7.2 - * - * @param mixed $item A single item from the queried results. - * @return array An array containing "id" and "text". - */ - function get_result( $item ) { - return false; - } +if ( ! defined( 'ABSPATH' ) ) { + exit; // Exit if accessed directly } +if ( ! class_exists( 'ACF_Ajax_Query' ) ) : + + class ACF_Ajax_Query extends ACF_Ajax { + + /** @var bool Prevents access for non-logged in users. */ + var $public = true; + + /** @var int The page of results to return. */ + var $page = 1; + + /** @var int The number of results per page. */ + var $per_page = 20; + + /** @var bool Signifies whether or not this AJAX query has more pages to load. */ + var $more = false; + + /** @var string The searched term. */ + var $search = ''; + + /** @var bool Signifies whether the current query is a search. */ + var $is_search = false; + + /** @var (int|string) The post_id being edited. */ + var $post_id = 0; + + /** @var array The ACF field related to this query. */ + var $field = false; + + /** + * get_response + * + * Returns the response data to sent back. + * + * @date 31/7/18 + * @since 5.7.2 + * + * @param array $request The request args. + * @return (array|WP_Error) The response data or WP_Error. + */ + function get_response( $request ) { + + // Init request. + $this->init_request( $request ); + + // Get query args. + $args = $this->get_args( $request ); + + // Get query results. + $results = $this->get_results( $args ); + if ( is_wp_error( $results ) ) { + return $results; + } + + // Return response. + return array( + 'results' => $results, + 'more' => $this->more, + ); + } + + /** + * init_request + * + * Called at the beginning of a request to setup properties. + * + * @date 23/5/19 + * @since 5.8.1 + * + * @param array $request The request args. + * @return void + */ + function init_request( $request ) { + + // Get field for this query. + if ( isset( $request['field_key'] ) ) { + $this->field = acf_get_field( $request['field_key'] ); + } + + // Update query properties. + if ( isset( $request['page'] ) ) { + $this->page = intval( $request['page'] ); + } + if ( isset( $request['per_page'] ) ) { + $this->per_page = intval( $request['per_page'] ); + } + if ( isset( $request['search'] ) && acf_not_empty( $request['search'] ) ) { + $this->search = sanitize_text_field( $request['search'] ); + $this->is_search = true; + } + if ( isset( $request['post_id'] ) ) { + $this->post_id = $request['post_id']; + } + } + + /** + * get_args + * + * Returns an array of args for this query. + * + * @date 31/7/18 + * @since 5.7.2 + * + * @param array $request The request args. + * @return array + */ + function get_args( $request ) { + + // Allow for custom "query" arg. + if ( isset( $request['query'] ) ) { + return (array) $request['query']; + } + return array(); + } + + /** + * get_items + * + * Returns an array of results for the given args. + * + * @date 31/7/18 + * @since 5.7.2 + * + * @param array args The query args. + * @return array + */ + function get_results( $args ) { + return array(); + } + + /** + * get_item + * + * Returns a single result for the given item object. + * + * @date 31/7/18 + * @since 5.7.2 + * + * @param mixed $item A single item from the queried results. + * @return array An array containing "id" and "text". + */ + function get_result( $item ) { + return false; + } + } + endif; // class_exists check diff --git a/includes/ajax/class-acf-ajax-upgrade.php b/includes/ajax/class-acf-ajax-upgrade.php index 2f08e53..b01452b 100644 --- a/includes/ajax/class-acf-ajax-upgrade.php +++ b/includes/ajax/class-acf-ajax-upgrade.php @@ -1,54 +1,56 @@ has('value') ) { - return acf_update_user_setting( $this->get('name'), $this->get('value') ); - - // get - } else { - return acf_get_user_setting( $this->get('name') ); - } - } +if ( ! defined( 'ABSPATH' ) ) { + exit; // Exit if accessed directly } -acf_new_instance('ACF_Ajax_User_Setting'); +if ( ! class_exists( 'ACF_Ajax_User_Setting' ) ) : + + class ACF_Ajax_User_Setting extends ACF_Ajax { + + /** @var string The AJAX action name. */ + var $action = 'acf/ajax/user_setting'; + + /** @var bool Prevents access for non-logged in users. */ + var $public = true; + + /** + * get_response + * + * Returns the response data to sent back. + * + * @date 31/7/18 + * @since 5.7.2 + * + * @param array $request The request args. + * @return mixed The response data or WP_Error. + */ + function get_response( $request ) { + + // update + if ( $this->has( 'value' ) ) { + return acf_update_user_setting( $this->get( 'name' ), $this->get( 'value' ) ); + + // get + } else { + return acf_get_user_setting( $this->get( 'name' ) ); + } + } + } + + acf_new_instance( 'ACF_Ajax_User_Setting' ); endif; // class_exists check diff --git a/includes/ajax/class-acf-ajax.php b/includes/ajax/class-acf-ajax.php index 31a7c49..588c4f0 100644 --- a/includes/ajax/class-acf-ajax.php +++ b/includes/ajax/class-acf-ajax.php @@ -1,229 +1,232 @@ initialize(); - $this->add_actions(); - } - - /** - * has - * - * Returns true if the request has data for the given key. - * - * @date 31/7/18 - * @since 5.7.2 - * - * @param string $key The data key. - * @return boolean - */ - function has( $key = '' ) { - return isset($this->request[$key]); - } - - /** - * get - * - * Returns request data for the given key. - * - * @date 31/7/18 - * @since 5.7.2 - * - * @param string $key The data key. - * @return mixed - */ - function get( $key = '' ) { - return isset($this->request[$key]) ? $this->request[$key] : null; - } - - /** - * set - * - * Sets request data for the given key. - * - * @date 31/7/18 - * @since 5.7.2 - * - * @param string $key The data key. - * @param mixed $value The data value. - * @return ACF_Ajax - */ - function set( $key = '', $value ) { - $this->request[$key] = $value; - return $this; - } - - /** - * initialize - * - * Allows easy access to modifying properties without changing constructor. - * - * @date 31/7/18 - * @since 5.7.2 - * - * @param void - * @return void - */ - function initialize() { - /* do nothing */ - } - - /** - * add_actions - * - * Adds the ajax actions for this response. - * - * @date 31/7/18 - * @since 5.7.2 - * - * @param void - * @return void - */ - function add_actions() { - - // add action for logged-in users - add_action( "wp_ajax_{$this->action}", array($this, 'request') ); - - // add action for non logged-in users - if( $this->public ) { - add_action( "wp_ajax_nopriv_{$this->action}", array($this, 'request') ); - } - } - - /** - * request - * - * Callback for ajax action. Sets up properties and calls the get_response() function. - * - * @date 1/8/18 - * @since 5.7.2 - * - * @param void - * @return void - */ - function request() { - - // Store data for has() and get() functions. - $this->request = wp_unslash($_REQUEST); - - // Verify request and handle error. - $error = $this->verify_request( $this->request ); - if( is_wp_error( $error ) ) { - $this->send( $error ); - } - - // Send response. - $this->send( $this->get_response( $this->request ) ); - } - - /** - * Verifies the request. - * - * @date 9/3/20 - * @since 5.8.8 - * - * @param array $request The request args. - * @return (bool|WP_Error) True on success, WP_Error on fail. - */ - function verify_request( $request ) { - - // Verify nonce. - if( !acf_verify_ajax() ) { - return new WP_Error( 'acf_invalid_nonce', __( 'Invalid nonce.', 'acf' ), array( 'status' => 404 ) ); - } - return true; - } - - /** - * get_response - * - * Returns the response data to sent back. - * - * @date 31/7/18 - * @since 5.7.2 - * - * @param array $request The request args. - * @return mixed The response data or WP_Error. - */ - function get_response( $request ) { - return true; - } - - /** - * send - * - * Sends back JSON based on the $response as either success or failure. - * - * @date 31/7/18 - * @since 5.7.2 - * - * @param mixed $response The response to send back. - * @return void - */ - function send( $response ) { - - // Return error. - if( is_wp_error($response) ) { - $this->send_error( $response ); - - // Return success. - } else { - wp_send_json( $response ); - } - } - - /** - * Sends a JSON response for the given WP_Error object. - * - * @date 8/3/20 - * @since 5.8.8 - * - * @param WP_Error error The error object. - * @return void - */ - function send_error( $error ) { - - // Get error status - $error_data = $error->get_error_data(); - if( is_array($error_data) && isset($error_data['status']) ) { - $status_code = $error_data['status']; - } else { - $status_code = 500; - } - - wp_send_json(array( - 'code' => $error->get_error_code(), - 'message' => $error->get_error_message(), - 'data' => $error->get_error_data() - ), $status_code); - } +if ( ! defined( 'ABSPATH' ) ) { + exit; // Exit if accessed directly } +if ( ! class_exists( 'ACF_Ajax' ) ) : + + class ACF_Ajax { + + /** @var string The AJAX action name. */ + var $action = ''; + + /** @var array The $_REQUEST data. */ + var $request; + + /** @var bool Prevents access for non-logged in users. */ + var $public = false; + + /** + * __construct + * + * Sets up the class functionality. + * + * @date 31/7/18 + * @since 5.7.2 + * + * @param void + * @return void + */ + function __construct() { + $this->initialize(); + $this->add_actions(); + } + + /** + * has + * + * Returns true if the request has data for the given key. + * + * @date 31/7/18 + * @since 5.7.2 + * + * @param string $key The data key. + * @return boolean + */ + function has( $key = '' ) { + return isset( $this->request[ $key ] ); + } + + /** + * get + * + * Returns request data for the given key. + * + * @date 31/7/18 + * @since 5.7.2 + * + * @param string $key The data key. + * @return mixed + */ + function get( $key = '' ) { + return isset( $this->request[ $key ] ) ? $this->request[ $key ] : null; + } + + /** + * Sets request data for the given key. + * + * @date 31/7/18 + * @since 5.7.2 + * + * @param string $key The data key. + * @param mixed $value The data value. + * @return ACF_Ajax + */ + function set( $key = '', $value = null ) { + $this->request[ $key ] = $value; + return $this; + } + + /** + * initialize + * + * Allows easy access to modifying properties without changing constructor. + * + * @date 31/7/18 + * @since 5.7.2 + * + * @param void + * @return void + */ + function initialize() { + /* do nothing */ + } + + /** + * add_actions + * + * Adds the ajax actions for this response. + * + * @date 31/7/18 + * @since 5.7.2 + * + * @param void + * @return void + */ + function add_actions() { + + // add action for logged-in users + add_action( "wp_ajax_{$this->action}", array( $this, 'request' ) ); + + // add action for non logged-in users + if ( $this->public ) { + add_action( "wp_ajax_nopriv_{$this->action}", array( $this, 'request' ) ); + } + } + + /** + * request + * + * Callback for ajax action. Sets up properties and calls the get_response() function. + * + * @date 1/8/18 + * @since 5.7.2 + * + * @param void + * @return void + */ + function request() { + + // Store data for has() and get() functions. + $this->request = wp_unslash( $_REQUEST ); // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Verified below in verify_request(). + + // Verify request and handle error. + $error = $this->verify_request( $this->request ); + if ( is_wp_error( $error ) ) { + $this->send( $error ); + } + + // Send response. + $this->send( $this->get_response( $this->request ) ); + } + + /** + * Verifies the request. + * + * @date 9/3/20 + * @since 5.8.8 + * + * @param array $request The request args. + * @return (bool|WP_Error) True on success, WP_Error on fail. + */ + function verify_request( $request ) { + + // Verify nonce. + if ( ! acf_verify_ajax() ) { + return new WP_Error( 'acf_invalid_nonce', __( 'Invalid nonce.', 'acf' ), array( 'status' => 404 ) ); + } + return true; + } + + /** + * get_response + * + * Returns the response data to sent back. + * + * @date 31/7/18 + * @since 5.7.2 + * + * @param array $request The request args. + * @return mixed The response data or WP_Error. + */ + function get_response( $request ) { + return true; + } + + /** + * send + * + * Sends back JSON based on the $response as either success or failure. + * + * @date 31/7/18 + * @since 5.7.2 + * + * @param mixed $response The response to send back. + * @return void + */ + function send( $response ) { + + // Return error. + if ( is_wp_error( $response ) ) { + $this->send_error( $response ); + + // Return success. + } else { + wp_send_json( $response ); + } + } + + /** + * Sends a JSON response for the given WP_Error object. + * + * @date 8/3/20 + * @since 5.8.8 + * + * @param WP_Error error The error object. + * @return void + */ + function send_error( $error ) { + + // Get error status + $error_data = $error->get_error_data(); + if ( is_array( $error_data ) && isset( $error_data['status'] ) ) { + $status_code = $error_data['status']; + } else { + $status_code = 500; + } + + wp_send_json( + array( + 'code' => $error->get_error_code(), + 'message' => $error->get_error_message(), + 'data' => $error->get_error_data(), + ), + $status_code + ); + } + } + endif; // class_exists check -?> \ No newline at end of file + diff --git a/includes/api/api-helpers.php b/includes/api/api-helpers.php index 25cc258..910a179 100644 --- a/includes/api/api-helpers.php +++ b/includes/api/api-helpers.php @@ -1,35 +1,35 @@ -has_setting() -* -* @date 2/2/18 -* @since 5.6.5 -* -* @param n/a -* @return n/a -*/ + * acf_has_setting + * + * alias of acf()->has_setting() + * + * @date 2/2/18 + * @since 5.6.5 + * + * @param n/a + * @return n/a + */ function acf_has_setting( $name = '' ) { return acf()->has_setting( $name ); @@ -37,16 +37,16 @@ function acf_has_setting( $name = '' ) { /** -* acf_raw_setting -* -* alias of acf()->get_setting() -* -* @date 2/2/18 -* @since 5.6.5 -* -* @param n/a -* @return n/a -*/ + * acf_raw_setting + * + * alias of acf()->get_setting() + * + * @date 2/2/18 + * @since 5.6.5 + * + * @param n/a + * @return n/a + */ function acf_raw_setting( $name = '' ) { return acf()->get_setting( $name ); @@ -58,39 +58,39 @@ function acf_raw_setting( $name = '' ) { * * alias of acf()->update_setting() * -* @type function -* @date 28/09/13 -* @since 5.0.0 +* @type function +* @date 28/09/13 +* @since 5.0.0 * -* @param $name (string) -* @param $value (mixed) -* @return n/a +* @param $name (string) +* @param $value (mixed) +* @return n/a */ function acf_update_setting( $name, $value ) { - + // validate name $name = acf_validate_setting( $name ); - + // update return acf()->update_setting( $name, $value ); } /** -* acf_validate_setting -* -* Returns the changed setting name if available. -* -* @date 2/2/18 -* @since 5.6.5 -* -* @param n/a -* @return n/a -*/ + * acf_validate_setting + * + * Returns the changed setting name if available. + * + * @date 2/2/18 + * @since 5.6.5 + * + * @param n/a + * @return n/a + */ function acf_validate_setting( $name = '' ) { - return apply_filters( "acf/validate_setting", $name ); + return apply_filters( 'acf/validate_setting', $name ); } @@ -99,75 +99,84 @@ function acf_validate_setting( $name = '' ) { * * alias of acf()->get_setting() * -* @type function -* @date 28/09/13 -* @since 5.0.0 +* @type function +* @date 28/09/13 +* @since 5.0.0 * -* @param n/a -* @return n/a +* @param n/a +* @return n/a */ function acf_get_setting( $name, $value = null ) { - + // validate name $name = acf_validate_setting( $name ); - + // check settings - if( acf_has_setting($name) ) { + if ( acf_has_setting( $name ) ) { $value = acf_raw_setting( $name ); } - + // filter $value = apply_filters( "acf/settings/{$name}", $value ); - + // return return $value; } +/** + * Return an array of ACF's internal post type names + * + * @since 6.1 + * @return array An array of ACF's internal post type names + */ +function acf_get_internal_post_types() { + return array( 'acf-field-group', 'acf-post-type', 'acf-taxonomy' ); +} /* * acf_append_setting * * This function will add a value into the settings array found in the acf object * -* @type function -* @date 28/09/13 -* @since 5.0.0 +* @type function +* @date 28/09/13 +* @since 5.0.0 * -* @param $name (string) -* @param $value (mixed) -* @return n/a +* @param $name (string) +* @param $value (mixed) +* @return n/a */ function acf_append_setting( $name, $value ) { - + // vars $setting = acf_raw_setting( $name ); - - // bail ealry if not array - if( !is_array($setting) ) { + + // bail early if not array + if ( ! is_array( $setting ) ) { $setting = array(); } - + // append $setting[] = $value; - + // update return acf_update_setting( $name, $setting ); } /** -* acf_get_data -* -* Returns data. -* -* @date 28/09/13 -* @since 5.0.0 -* -* @param string $name -* @return mixed -*/ + * acf_get_data + * + * Returns data. + * + * @date 28/09/13 + * @since 5.0.0 + * + * @param string $name + * @return mixed + */ function acf_get_data( $name ) { return acf()->get_data( $name ); @@ -175,17 +184,17 @@ function acf_get_data( $name ) { /** -* acf_set_data -* -* Sets data. -* -* @date 28/09/13 -* @since 5.0.0 -* -* @param string $name -* @param mixed $value -* @return n/a -*/ + * acf_set_data + * + * Sets data. + * + * @date 28/09/13 + * @since 5.0.0 + * + * @param string $name + * @param mixed $value + * @return n/a + */ function acf_set_data( $name, $value ) { return acf()->set_data( $name, $value ); @@ -194,15 +203,15 @@ function acf_set_data( $name, $value ) { /** * Appends data to an existing key. * - * @date 11/06/2020 - * @since 5.9.0 + * @date 11/06/2020 + * @since 5.9.0 * - * @param string $name The data name. - * @return array $data The data array. + * @param string $name The data name. + * @return array $data The data array. */ function acf_append_data( $name, $data ) { $prev_data = acf()->get_data( $name ); - if( is_array($prev_data) ) { + if ( is_array( $prev_data ) ) { $data = array_merge( $prev_data, $data ); } acf()->set_data( $name, $data ); @@ -213,18 +222,18 @@ function acf_append_data( $name, $data ) { * * alias of acf()->init() * -* @type function -* @date 28/09/13 -* @since 5.0.0 +* @type function +* @date 28/09/13 +* @since 5.0.0 * -* @param n/a -* @return n/a +* @param n/a +* @return n/a */ function acf_init() { - + acf()->init(); - + } @@ -233,23 +242,23 @@ function acf_init() { * * This function will return true if this action has already been done * -* @type function -* @date 16/12/2015 -* @since 5.3.2 +* @type function +* @date 16/12/2015 +* @since 5.3.2 * -* @param $name (string) -* @return (boolean) +* @param $name (string) +* @return (boolean) */ function acf_has_done( $name ) { - + // return true if already done - if( acf_raw_setting("has_done_{$name}") ) { + if ( acf_raw_setting( "has_done_{$name}" ) ) { return true; } - + // update setting and return - acf_update_setting("has_done_{$name}", true); + acf_update_setting( "has_done_{$name}", true ); return false; } @@ -261,19 +270,19 @@ function acf_has_done( $name ) { * * This function will return the path to a file within an external folder * -* @type function -* @date 22/2/17 -* @since 5.5.8 +* @type function +* @date 22/2/17 +* @since 5.5.8 * -* @param $file (string) -* @param $path (string) -* @return (string) +* @param $file (string) +* @param $path (string) +* @return (string) */ function acf_get_external_path( $file, $path = '' ) { - - return plugin_dir_path( $file ) . $path; - + + return plugin_dir_path( $file ) . $path; + } @@ -282,64 +291,62 @@ function acf_get_external_path( $file, $path = '' ) { * * This function will return the url to a file within an external folder * -* @type function -* @date 22/2/17 -* @since 5.5.8 +* @type function +* @date 22/2/17 +* @since 5.5.8 * -* @param $file (string) -* @param $path (string) -* @return (string) +* @param $file (string) +* @param $path (string) +* @return (string) */ function acf_get_external_dir( $file, $path = '' ) { - - return acf_plugin_dir_url( $file ) . $path; - + + return acf_plugin_dir_url( $file ) . $path; + } /** -* acf_plugin_dir_url -* -* This function will calculate the url to a plugin folder. -* Different to the WP plugin_dir_url(), this function can calculate for urls outside of the plugins folder (theme include). -* -* @date 13/12/17 -* @since 5.6.8 -* -* @param type $var Description. Default. -* @return type Description. -*/ + * acf_plugin_dir_url + * + * This function will calculate the url to a plugin folder. + * Different to the WP plugin_dir_url(), this function can calculate for urls outside of the plugins folder (theme include). + * + * @date 13/12/17 + * @since 5.6.8 + * + * @param type $var Description. Default. + * @return type Description. + */ function acf_plugin_dir_url( $file ) { - + // vars $path = plugin_dir_path( $file ); $path = wp_normalize_path( $path ); - - + // check plugins - $check_path = wp_normalize_path( realpath(WP_PLUGIN_DIR) ); - if( strpos($path, $check_path) === 0 ) { + $check_path = wp_normalize_path( realpath( WP_PLUGIN_DIR ) ); + if ( strpos( $path, $check_path ) === 0 ) { return str_replace( $check_path, plugins_url(), $path ); } - + // check wp-content - $check_path = wp_normalize_path( realpath(WP_CONTENT_DIR) ); - if( strpos($path, $check_path) === 0 ) { + $check_path = wp_normalize_path( realpath( WP_CONTENT_DIR ) ); + if ( strpos( $path, $check_path ) === 0 ) { return str_replace( $check_path, content_url(), $path ); } - + // check root - $check_path = wp_normalize_path( realpath(ABSPATH) ); - if( strpos($path, $check_path) === 0 ) { - return str_replace( $check_path, site_url('/'), $path ); + $check_path = wp_normalize_path( realpath( ABSPATH ) ); + if ( strpos( $path, $check_path ) === 0 ) { + return str_replace( $check_path, site_url( '/' ), $path ); } - - - // return - return plugin_dir_url( $file ); - + + // return + return plugin_dir_url( $file ); + } @@ -348,28 +355,26 @@ function acf_plugin_dir_url( $file ) { * * This function will merge together 2 arrays and also convert any numeric values to ints * -* @type function -* @date 18/10/13 -* @since 5.0.0 +* @type function +* @date 18/10/13 +* @since 5.0.0 * -* @param $args (array) -* @param $defaults (array) -* @return $args (array) +* @param $args (array) +* @param $defaults (array) +* @return $args (array) */ function acf_parse_args( $args, $defaults = array() ) { - + // parse args $args = wp_parse_args( $args, $defaults ); - - + // parse types $args = acf_parse_types( $args ); - - + // return return $args; - + } @@ -378,12 +383,12 @@ function acf_parse_args( $args, $defaults = array() ) { * * This function will convert any numeric values to int and trim strings * -* @type function -* @date 18/10/13 -* @since 5.0.0 +* @type function +* @date 18/10/13 +* @since 5.0.0 * -* @param $var (mixed) -* @return $var (mixed) +* @param $var (mixed) +* @return $var (mixed) */ function acf_parse_types( $array ) { @@ -396,65 +401,56 @@ function acf_parse_types( $array ) { * * description * -* @type function -* @date 11/11/2014 -* @since 5.0.9 +* @type function +* @date 11/11/2014 +* @since 5.0.9 * -* @param $post_id (int) -* @return $post_id (int) +* @param $post_id (int) +* @return $post_id (int) */ function acf_parse_type( $v ) { - + // Check if is string. - if( is_string($v) ) { - + if ( is_string( $v ) ) { + // Trim ("Word " = "Word"). $v = trim( $v ); - + // Convert int strings to int ("123" = 123). - if( is_numeric($v) && strval(intval($v)) === $v ) { + if ( is_numeric( $v ) && strval( intval( $v ) ) === $v ) { $v = intval( $v ); } } - + // return. return $v; } -/* -* acf_get_view -* -* This function will load in a file from the 'admin/views' folder and allow variables to be passed through -* -* @type function -* @date 28/09/13 -* @since 5.0.0 -* -* @param $view_name (string) -* @param $args (array) -* @return n/a -*/ - -function acf_get_view( $path = '', $args = array() ) { - +/** + * This function will load in a file from the 'admin/views' folder and allow variables to be passed through + * + * @date 28/09/13 + * @since 5.0.0 + * + * @param string $view_path + * @param array $view_args + * + * @return void + */ +function acf_get_view( $view_path = '', $view_args = array() ) { // allow view file name shortcut - if( substr($path, -4) !== '.php' ) { - - $path = acf_get_path("includes/admin/views/{$path}.php"); - + if ( substr( $view_path, -4 ) !== '.php' ) { + $view_path = acf_get_path( "includes/admin/views/{$view_path}.php" ); } - - + // include - if( file_exists($path) ) { - - extract( $args ); - include( $path ); - + if ( file_exists( $view_path ) ) { + // Use `EXTR_SKIP` here to prevent `$view_path` from being accidentally/maliciously overridden. + extract( $view_args, EXTR_SKIP ); + include $view_path; } - } @@ -463,46 +459,44 @@ function acf_get_view( $path = '', $args = array() ) { * * description * -* @type function -* @date 2/11/2014 -* @since 5.0.9 +* @type function +* @date 2/11/2014 +* @since 5.0.9 * -* @param $post_id (int) -* @return $post_id (int) +* @param $post_id (int) +* @return $post_id (int) */ function acf_merge_atts( $atts, $extra = array() ) { - - // bail ealry if no $extra - if( empty($extra) ) return $atts; - - - // trim - $extra = array_map('trim', $extra); - $extra = array_filter($extra); - - - // merge in new atts - foreach( $extra as $k => $v ) { - - // append - if( $k == 'class' || $k == 'style' ) { - - $atts[ $k ] .= ' ' . $v; - - // merge - } else { - - $atts[ $k ] = $v; - - } - + + // bail early if no $extra + if ( empty( $extra ) ) { + return $atts; } - - + + // trim + $extra = array_map( 'trim', $extra ); + $extra = array_filter( $extra ); + + // merge in new atts + foreach ( $extra as $k => $v ) { + + // append + if ( $k == 'class' || $k == 'style' ) { + + $atts[ $k ] .= ' ' . $v; + + // merge + } else { + + $atts[ $k ] = $v; + + } + } + // return return $atts; - + } @@ -511,18 +505,18 @@ function acf_merge_atts( $atts, $extra = array() ) { * * This function will create a basic nonce input * -* @type function -* @date 24/5/17 -* @since 5.6.0 +* @type function +* @date 24/5/17 +* @since 5.6.0 * -* @param $post_id (int) -* @return $post_id (int) +* @param $post_id (int) +* @return $post_id (int) */ function acf_nonce_input( $nonce = '' ) { - + echo ''; - + } @@ -531,35 +525,32 @@ function acf_nonce_input( $nonce = '' ) { * * This function will remove the var from the array, and return the var * -* @type function -* @date 2/10/13 -* @since 5.0.0 +* @type function +* @date 2/10/13 +* @since 5.0.0 * -* @param $array (array) -* @param $key (string) -* @return (mixed) +* @param $array (array) +* @param $key (string) +* @return (mixed) */ function acf_extract_var( &$array, $key, $default = null ) { - + // check if exists // - uses array_key_exists to extract NULL values (isset will fail) - if( is_array($array) && array_key_exists($key, $array) ) { - + if ( is_array( $array ) && array_key_exists( $key, $array ) ) { + // store value $v = $array[ $key ]; - - + // unset unset( $array[ $key ] ); - - + // return return $v; - + } - - + // return return $default; } @@ -570,24 +561,24 @@ function acf_extract_var( &$array, $key, $default = null ) { * * This function will remove the vars from the array, and return the vars * -* @type function -* @date 8/10/13 -* @since 5.0.0 +* @type function +* @date 8/10/13 +* @since 5.0.0 * -* @param $post_id (int) -* @return $post_id (int) +* @param $post_id (int) +* @return $post_id (int) */ function acf_extract_vars( &$array, $keys ) { - + $r = array(); - - foreach( $keys as $key ) { - + + foreach ( $keys as $key ) { + $r[ $key ] = acf_extract_var( $array, $key ); - + } - + return $r; } @@ -597,165 +588,235 @@ function acf_extract_vars( &$array, $keys ) { * * This function will return a sub array of data * -* @type function -* @date 15/03/2016 -* @since 5.3.2 +* @type function +* @date 15/03/2016 +* @since 5.3.2 * -* @param $post_id (int) -* @return $post_id (int) +* @param $post_id (int) +* @return $post_id (int) */ function acf_get_sub_array( $array, $keys ) { - + $r = array(); - - foreach( $keys as $key ) { - + + foreach ( $keys as $key ) { + $r[ $key ] = $array[ $key ]; - + } - + return $r; - + } /** -* acf_get_post_types -* -* Returns an array of post type names. -* -* @date 7/10/13 -* @since 5.0.0 -* -* @param array $args Optional. An array of key => value arguments to match against the post type objects. Default empty array. -* @return array A list of post type names. -*/ - + * Returns an array of post type names. + * + * @date 7/10/13 + * @since 5.0.0 + * + * @param array $args Optional. An array of key => value arguments to match against the post type objects. Default empty array. + * @return array A list of post type names. + */ function acf_get_post_types( $args = array() ) { - - // vars $post_types = array(); - + // extract special arg - $exclude = acf_extract_var( $args, 'exclude', array() ); + $exclude = acf_extract_var( $args, 'exclude', array() ); $exclude[] = 'acf-field'; $exclude[] = 'acf-field-group'; - - // get post type objects + $exclude[] = 'acf-post-type'; + $exclude[] = 'acf-taxonomy'; + + // Get post type objects. $objects = get_post_types( $args, 'objects' ); - - // loop - foreach( $objects as $i => $object ) { - - // bail early if is exclude - if( in_array($i, $exclude) ) continue; - - // bail early if is builtin (WP) private post type - // - nav_menu_item, revision, customize_changeset, etc - if( $object->_builtin && !$object->public ) continue; - - // append + + foreach ( $objects as $i => $object ) { + // Bail early if is exclude. + if ( in_array( $i, $exclude ) ) { + continue; + } + + // Bail early if is builtin (WP) private post type + // i.e. nav_menu_item, revision, customize_changeset, etc. + if ( $object->_builtin && ! $object->public ) { + continue; + } + $post_types[] = $i; } - - // filter - $post_types = apply_filters('acf/get_post_types', $post_types, $args); - - // return - return $post_types; + + return apply_filters( 'acf/get_post_types', $post_types, $args ); } function acf_get_pretty_post_types( $post_types = array() ) { - + // get post types - if( empty($post_types) ) { - + if ( empty( $post_types ) ) { + // get all custom post types $post_types = acf_get_post_types(); - + } - - + // get labels $ref = array(); - $r = array(); - - foreach( $post_types as $post_type ) { - + $r = array(); + + foreach ( $post_types as $post_type ) { + // vars - $label = acf_get_post_type_label($post_type); - - + $label = acf_get_post_type_label( $post_type ); + // append to r $r[ $post_type ] = $label; - - + // increase counter - if( !isset($ref[ $label ]) ) { - + if ( ! isset( $ref[ $label ] ) ) { + $ref[ $label ] = 0; - + } - + $ref[ $label ]++; } - - + // get slugs - foreach( array_keys($r) as $i ) { - + foreach ( array_keys( $r ) as $i ) { + // vars $post_type = $r[ $i ]; - - if( $ref[ $post_type ] > 1 ) { - + + if ( $ref[ $post_type ] > 1 ) { + $r[ $i ] .= ' (' . $i . ')'; - + } - } - - + // return return $r; - + } +/** + * Function acf_get_post_stati() + * + * Returns an array of post status names. + * + * @date 01/24/23 + * @since 6.1.0 + * + * @param array $args Optional. An array of key => value arguments to match against the post status objects. Default empty array. + * @return array A list of post status names. + */ +function acf_get_post_stati( $args = array() ) { + $args['internal'] = false; + + $post_statuses = get_post_stati( $args ); + + unset( $post_statuses['acf-disabled'] ); + + $post_statuses = (array) apply_filters( 'acf/get_post_stati', $post_statuses, $args ); + + return $post_statuses; +} +/** + * Function acf_get_pretty_post_statuses() + * + * Returns a clean array of post status names. + * + * @date 02/16/23 + * @since 6.1.0 + * + * @param array $post_statuses Optional. An array of post status objects. Default empty array. + * @return array An array of post status names. + */ +function acf_get_pretty_post_statuses( $post_statuses = array() ) { + + // Get all post statuses. + $post_statuses = array_merge( $post_statuses, acf_get_post_stati() ); + + $ref = array(); + $result = array(); + + foreach ( $post_statuses as $post_status ) { + $label = acf_get_post_status_label( $post_status ); + + $result[ $post_status ] = $label; + + if ( ! isset( $ref[ $label ] ) ) { + $ref[ $label ] = 0; + } + + $ref[ $label ]++; + } + + foreach ( array_keys( $result ) as $i ) { + $post_status = $result[ $i ]; + + if ( $ref[ $post_status ] > 1 ) { + $result[ $i ] .= ' (' . $i . ')'; + } + } + + return $result; +} /* * acf_get_post_type_label * * This function will return a pretty label for a specific post_type * -* @type function -* @date 5/07/2016 -* @since 5.4.0 +* @type function +* @date 5/07/2016 +* @since 5.4.0 * -* @param $post_type (string) -* @return (string) +* @param $post_type (string) +* @return (string) */ function acf_get_post_type_label( $post_type ) { - + // vars $label = $post_type; - - + // check that object exists // - case exists when importing field group from another install and post type does not exist - if( post_type_exists($post_type) ) { - - $obj = get_post_type_object($post_type); + if ( post_type_exists( $post_type ) ) { + + $obj = get_post_type_object( $post_type ); $label = $obj->labels->singular_name; - + } - - + // return return $label; - + +} + + +/** + * Function acf_get_post_status_label() + * + * This function will return a pretty label for a specific post_status + * + * @type function + * @date 01/24/2023 + * @since 6.1.0 + * + * @param string $post_status The post status. + * @return string The post status label. + */ +function acf_get_post_status_label( $post_status ) { + $label = $post_status; + $obj = get_post_status_object( $post_status ); + $label = is_object( $obj ) ? $obj->label : ''; + + return $label; } @@ -764,31 +825,30 @@ function acf_get_post_type_label( $post_type ) { * * This function will look at the $_POST['_acf_nonce'] value and return true or false * -* @type function -* @date 15/10/13 -* @since 5.0.0 +* @type function +* @date 15/10/13 +* @since 5.0.0 * -* @param $nonce (string) -* @return (boolean) +* @param $nonce (string) +* @return (boolean) */ -function acf_verify_nonce( $value) { - +function acf_verify_nonce( $value ) { + // vars - $nonce = acf_maybe_get_POST('_acf_nonce'); - - + $nonce = acf_maybe_get_POST( '_acf_nonce' ); + // bail early nonce does not match (post|user|comment|term) - if( !$nonce || !wp_verify_nonce($nonce, $value) ) return false; - - + if ( ! $nonce || ! wp_verify_nonce( $nonce, $value ) ) { + return false; + } + // reset nonce (only allow 1 save) $_POST['_acf_nonce'] = false; - - + // return return true; - + } @@ -798,27 +858,24 @@ function acf_verify_nonce( $value) { * This function will return true if the current AJAX request is valid * It's action will also allow WPML to set the lang and avoid AJAX get_posts issues * -* @type function -* @date 7/08/2015 -* @since 5.2.3 +* @type function +* @date 7/08/2015 +* @since 5.2.3 * -* @param n/a -* @return (boolean) +* @param n/a +* @return (boolean) */ function acf_verify_ajax() { - - // vars - $nonce = isset($_REQUEST['nonce']) ? $_REQUEST['nonce'] : ''; - + // bail early if not acf nonce - if( !$nonce || !wp_verify_nonce($nonce, 'acf_nonce') ) { + if ( empty( $_REQUEST['nonce'] ) || ! wp_verify_nonce( sanitize_text_field( $_REQUEST['nonce'] ), 'acf_nonce' ) ) { return false; } - + // action for 3rd party customization - do_action('acf/verify_ajax'); - + do_action( 'acf/verify_ajax' ); + // return return true; } @@ -829,101 +886,88 @@ function acf_verify_ajax() { * * This function will return an array of available image sizes * -* @type function -* @date 23/10/13 -* @since 5.0.0 +* @type function +* @date 23/10/13 +* @since 5.0.0 * -* @param n/a -* @return (array) +* @param n/a +* @return (array) */ function acf_get_image_sizes() { - + // vars $sizes = array( - 'thumbnail' => __("Thumbnail",'acf'), - 'medium' => __("Medium",'acf'), - 'large' => __("Large",'acf') + 'thumbnail' => __( 'Thumbnail', 'acf' ), + 'medium' => __( 'Medium', 'acf' ), + 'large' => __( 'Large', 'acf' ), ); - - + // find all sizes $all_sizes = get_intermediate_image_sizes(); - - + // add extra registered sizes - if( !empty($all_sizes) ) { - - foreach( $all_sizes as $size ) { - + if ( ! empty( $all_sizes ) ) { + + foreach ( $all_sizes as $size ) { + // bail early if already in array - if( isset($sizes[ $size ]) ) { - + if ( isset( $sizes[ $size ] ) ) { + continue; - + } - - + // append to array - $label = str_replace('-', ' ', $size); - $label = ucwords( $label ); + $label = str_replace( '-', ' ', $size ); + $label = ucwords( $label ); $sizes[ $size ] = $label; - + } - } - - + // add sizes - foreach( array_keys($sizes) as $s ) { - + foreach ( array_keys( $sizes ) as $s ) { + // vars - $data = acf_get_image_size($s); - - + $data = acf_get_image_size( $s ); + // append - if( $data['width'] && $data['height'] ) { - + if ( $data['width'] && $data['height'] ) { + $sizes[ $s ] .= ' (' . $data['width'] . ' x ' . $data['height'] . ')'; - + } - } - - + // add full end - $sizes['full'] = __("Full Size",'acf'); - - + $sizes['full'] = __( 'Full Size', 'acf' ); + // filter for 3rd party customization $sizes = apply_filters( 'acf/get_image_sizes', $sizes ); - - + // return return $sizes; - + } function acf_get_image_size( $s = '' ) { - + // global global $_wp_additional_image_sizes; - - + // rename for nicer code $_sizes = $_wp_additional_image_sizes; - - + // vars $data = array( - 'width' => isset($_sizes[$s]['width']) ? $_sizes[$s]['width'] : get_option("{$s}_size_w"), - 'height' => isset($_sizes[$s]['height']) ? $_sizes[$s]['height'] : get_option("{$s}_size_h") + 'width' => isset( $_sizes[ $s ]['width'] ) ? $_sizes[ $s ]['width'] : get_option( "{$s}_size_w" ), + 'height' => isset( $_sizes[ $s ]['height'] ) ? $_sizes[ $s ]['height'] : get_option( "{$s}_size_h" ), ); - - + // return return $data; - + } /** @@ -931,22 +975,22 @@ function acf_get_image_size( $s = '' ) { * * Similar to the version_compare() function but with extra functionality. * - * @date 21/11/16 - * @since 5.5.0 + * @date 21/11/16 + * @since 5.5.0 * - * @param string $left The left version number. - * @param string $compare The compare operator. - * @param string $right The right version number. - * @return bool + * @param string $left The left version number. + * @param string $compare The compare operator. + * @param string $right The right version number. + * @return bool */ function acf_version_compare( $left = '', $compare = '>', $right = '' ) { - + // Detect 'wp' placeholder. - if( $left === 'wp' ) { + if ( $left === 'wp' ) { global $wp_version; $left = $wp_version; } - + // Return result. return version_compare( $left, $right, $compare ); } @@ -957,27 +1001,26 @@ function acf_version_compare( $left = '', $compare = '>', $right = '' ) { * * This function will remove any '-beta1' or '-RC1' strings from a version * -* @type function -* @date 24/11/16 -* @since 5.5.0 +* @type function +* @date 24/11/16 +* @since 5.5.0 * -* @param $version (string) -* @return (string) +* @param $version (string) +* @return (string) */ function acf_get_full_version( $version = '1' ) { - + // remove '-beta1' or '-RC1' - if( $pos = strpos($version, '-') ) { - - $version = substr($version, 0, $pos); - + if ( $pos = strpos( $version, '-' ) ) { + + $version = substr( $version, 0, $pos ); + } - - + // return return $version; - + } @@ -986,28 +1029,31 @@ function acf_get_full_version( $version = '1' ) { * * This function is a wrapper for the get_terms() function * -* @type function -* @date 28/09/2016 -* @since 5.4.0 +* @type function +* @date 28/09/2016 +* @since 5.4.0 * -* @param $args (array) -* @return (array) +* @param $args (array) +* @return (array) */ function acf_get_terms( $args ) { - + // defaults - $args = wp_parse_args($args, array( - 'taxonomy' => null, - 'hide_empty' => false, - 'update_term_meta_cache' => false, - )); - + $args = wp_parse_args( + $args, + array( + 'taxonomy' => null, + 'hide_empty' => false, + 'update_term_meta_cache' => false, + ) + ); + // parameters changed in version 4.5 - if( acf_version_compare('wp', '<', '4.5') ) { + if ( acf_version_compare( 'wp', '<', '4.5' ) ) { return get_terms( $args['taxonomy'], $args ); } - + // return return get_terms( $args ); } @@ -1018,70 +1064,65 @@ function acf_get_terms( $args ) { * * This function will return an array of available taxonomy terms * -* @type function -* @date 7/10/13 -* @since 5.0.0 +* @type function +* @date 7/10/13 +* @since 5.0.0 * -* @param $taxonomies (array) -* @return (array) +* @param $taxonomies (array) +* @return (array) */ function acf_get_taxonomy_terms( $taxonomies = array() ) { - + // force array $taxonomies = acf_get_array( $taxonomies ); - - + // get pretty taxonomy names $taxonomies = acf_get_pretty_taxonomies( $taxonomies ); - - + // vars $r = array(); - - + // populate $r - foreach( array_keys($taxonomies) as $taxonomy ) { - + foreach ( array_keys( $taxonomies ) as $taxonomy ) { + // vars - $label = $taxonomies[ $taxonomy ]; + $label = $taxonomies[ $taxonomy ]; $is_hierarchical = is_taxonomy_hierarchical( $taxonomy ); - $terms = acf_get_terms(array( - 'taxonomy' => $taxonomy, - 'hide_empty' => false - )); - - + $terms = acf_get_terms( + array( + 'taxonomy' => $taxonomy, + 'hide_empty' => false, + ) + ); + // bail early i no terms - if( empty($terms) ) continue; - - + if ( empty( $terms ) ) { + continue; + } + // sort into hierachial order! - if( $is_hierarchical ) { - + if ( $is_hierarchical ) { + $terms = _get_term_children( 0, $terms, $taxonomy ); - + } - - - // add placeholder + + // add placeholder $r[ $label ] = array(); - - + // add choices - foreach( $terms as $term ) { - - $k = "{$taxonomy}:{$term->slug}"; + foreach ( $terms as $term ) { + + $k = "{$taxonomy}:{$term->slug}"; $r[ $label ][ $k ] = acf_get_term_title( $term ); - + } - } - - + // return return $r; - + } @@ -1090,50 +1131,47 @@ function acf_get_taxonomy_terms( $taxonomies = array() ) { * * This function decodes the $taxonomy:$term strings into a nested array * -* @type function -* @date 27/02/2014 -* @since 5.0.0 +* @type function +* @date 27/02/2014 +* @since 5.0.0 * -* @param $terms (array) -* @return (array) +* @param $terms (array) +* @return (array) */ function acf_decode_taxonomy_terms( $strings = false ) { - + // bail early if no terms - if( empty($strings) ) return false; - - + if ( empty( $strings ) ) { + return false; + } + // vars $terms = array(); - - + // loop - foreach( $strings as $string ) { - + foreach ( $strings as $string ) { + // vars - $data = acf_decode_taxonomy_term( $string ); + $data = acf_decode_taxonomy_term( $string ); $taxonomy = $data['taxonomy']; - $term = $data['term']; - - + $term = $data['term']; + // create empty array - if( !isset($terms[ $taxonomy ]) ) { - + if ( ! isset( $terms[ $taxonomy ] ) ) { + $terms[ $taxonomy ] = array(); - + } - - + // append $terms[ $taxonomy ][] = $term; - + } - - + // return return $terms; - + } @@ -1142,80 +1180,76 @@ function acf_decode_taxonomy_terms( $strings = false ) { * * This function will return the taxonomy and term slug for a given value * -* @type function -* @date 31/03/2014 -* @since 5.0.0 +* @type function +* @date 31/03/2014 +* @since 5.0.0 * -* @param $string (string) -* @return (array) +* @param $string (string) +* @return (array) */ function acf_decode_taxonomy_term( $value ) { - + // vars $data = array( - 'taxonomy' => '', - 'term' => '' + 'taxonomy' => '', + 'term' => '', ); - - + // int - if( is_numeric($value) ) { - + if ( is_numeric( $value ) ) { + $data['term'] = $value; - - // string - } elseif( is_string($value) ) { - - $value = explode(':', $value); - $data['taxonomy'] = isset($value[0]) ? $value[0] : ''; - $data['term'] = isset($value[1]) ? $value[1] : ''; - - // error + + // string + } elseif ( is_string( $value ) ) { + + $value = explode( ':', $value ); + $data['taxonomy'] = isset( $value[0] ) ? $value[0] : ''; + $data['term'] = isset( $value[1] ) ? $value[1] : ''; + + // error } else { - + return false; - + } - - + // allow for term_id (Used by ACF v4) - if( is_numeric($data['term']) ) { - + if ( is_numeric( $data['term'] ) ) { + // global global $wpdb; - - + // find taxonomy - if( !$data['taxonomy'] ) { - - $data['taxonomy'] = $wpdb->get_var( $wpdb->prepare("SELECT taxonomy FROM $wpdb->term_taxonomy WHERE term_id = %d LIMIT 1", $data['term']) ); - + if ( ! $data['taxonomy'] ) { + + $data['taxonomy'] = $wpdb->get_var( $wpdb->prepare( "SELECT taxonomy FROM $wpdb->term_taxonomy WHERE term_id = %d LIMIT 1", $data['term'] ) ); + } - - + // find term (may have numeric slug '123') $term = get_term_by( 'slug', $data['term'], $data['taxonomy'] ); - - + // attempt get term via ID (ACF4 uses ID) - if( !$term ) $term = get_term( $data['term'], $data['taxonomy'] ); - - + if ( ! $term ) { + $term = get_term( $data['term'], $data['taxonomy'] ); + } + // bail early if no term - if( !$term ) return false; - - + if ( ! $term ) { + return false; + } + // update $data['taxonomy'] = $term->taxonomy; - $data['term'] = $term->slug; - + $data['term'] = $term->slug; + } - - + // return return $data; - + } /** @@ -1223,11 +1257,11 @@ function acf_decode_taxonomy_term( $value ) { * * Casts the value into an array. * - * @date 9/1/19 - * @since 5.7.10 + * @date 9/1/19 + * @since 5.7.10 * - * @param mixed $val The value to cast. - * @return array + * @param mixed $val The value to cast. + * @return array */ function acf_array( $val = array() ) { return (array) $val; @@ -1236,14 +1270,14 @@ function acf_array( $val = array() ) { /** * Returns a non-array value. * - * @date 11/05/2020 - * @since 5.8.10 + * @date 11/05/2020 + * @since 5.8.10 * - * @param mixed $val The value to review. - * @return mixed + * @param mixed $val The value to review. + * @return mixed */ function acf_unarray( $val ) { - if( is_array( $val ) ) { + if ( is_array( $val ) ) { return reset( $val ); } return $val; @@ -1254,37 +1288,34 @@ function acf_unarray( $val ) { * * This function will force a variable to become an array * -* @type function -* @date 4/02/2014 -* @since 5.0.0 +* @type function +* @date 4/02/2014 +* @since 5.0.0 * -* @param $var (mixed) -* @return (array) +* @param $var (mixed) +* @return (array) */ function acf_get_array( $var = false, $delimiter = '' ) { - + // array - if( is_array($var) ) { + if ( is_array( $var ) ) { return $var; } - - + // bail early if empty - if( acf_is_empty($var) ) { + if ( acf_is_empty( $var ) ) { return array(); } - - - // string - if( is_string($var) && $delimiter ) { - return explode($delimiter, $var); + + // string + if ( is_string( $var ) && $delimiter ) { + return explode( $delimiter, $var ); } - - + // place in array return (array) $var; - + } @@ -1293,40 +1324,41 @@ function acf_get_array( $var = false, $delimiter = '' ) { * * This function will return numeric values * -* @type function -* @date 15/07/2016 -* @since 5.4.0 +* @type function +* @date 15/07/2016 +* @since 5.4.0 * -* @param $value (mixed) -* @return (mixed) +* @param $value (mixed) +* @return (mixed) */ function acf_get_numeric( $value = '' ) { - + // vars - $numbers = array(); - $is_array = is_array($value); - - + $numbers = array(); + $is_array = is_array( $value ); + // loop - foreach( (array) $value as $v ) { - - if( is_numeric($v) ) $numbers[] = (int) $v; - + foreach ( (array) $value as $v ) { + + if ( is_numeric( $v ) ) { + $numbers[] = (int) $v; + } } - - + // bail early if is empty - if( empty($numbers) ) return false; - - + if ( empty( $numbers ) ) { + return false; + } + // convert array - if( !$is_array ) $numbers = $numbers[0]; - - + if ( ! $is_array ) { + $numbers = $numbers[0]; + } + // return return $numbers; - + } @@ -1335,55 +1367,78 @@ function acf_get_numeric( $value = '' ) { * * Similar to the get_posts() function but with extra functionality. * - * @date 3/03/15 - * @since 5.1.5 + * @date 3/03/15 + * @since 5.1.5 * - * @param array $args The query args. - * @return array + * @param array $args The query args. + * @return array */ function acf_get_posts( $args = array() ) { - + // Vars. $posts = array(); - + // Apply default args. - $args = wp_parse_args($args, array( - 'posts_per_page' => -1, - 'post_type' => '', - 'post_status' => 'any', - 'update_post_meta_cache' => false, - 'update_post_term_cache' => false - )); - + $args = wp_parse_args( + $args, + array( + 'posts_per_page' => -1, + 'post_type' => '', + 'post_status' => 'any', + 'update_post_meta_cache' => false, + 'update_post_term_cache' => false, + ) + ); + // Avoid default 'post' post_type by providing all public types. - if( !$args['post_type'] ) { + if ( ! $args['post_type'] ) { $args['post_type'] = acf_get_post_types(); } - - // Check if specifc post ID's have been provided. - if( $args['post__in'] ) { - - // Clean value into an array of IDs. - $args['post__in'] = array_map('intval', acf_array($args['post__in'])); + + if ( ! $args['post_status'] ) { + $args['post_status'] = acf_get_post_stati(); } - + + // Check if specifc post ID's have been provided. + if ( $args['post__in'] ) { + + // Clean value into an array of IDs. + $args['post__in'] = array_map( 'intval', acf_array( $args['post__in'] ) ); + } + + /** + * Filters the args used in `acf_get_posts()` that are passed to `get_posts()`. + * + * @since 6.1.7 + * + * @param array $args The args passed to `get_posts()`. + */ + $args = apply_filters( 'acf/acf_get_posts/args', $args ); + // Query posts. $posts = get_posts( $args ); - + // Remove any potential empty results. $posts = array_filter( $posts ); - + // Manually order results. - if( $posts && $args['post__in'] ) { + if ( $posts && $args['post__in'] ) { $order = array(); - foreach( $posts as $i => $post ) { + foreach ( $posts as $i => $post ) { $order[ $i ] = array_search( $post->ID, $args['post__in'] ); } - array_multisort($order, $posts); + array_multisort( $order, $posts ); } - - // Return posts. - return $posts; + + + /** + * Filters the results found in the `acf_get_posts()` function. + * + * @since 6.1.7 + * + * @param array $posts The results from the `get_posts()` call. + */ + return apply_filters( 'acf/acf_get_posts/results', $posts ); } @@ -1393,52 +1448,46 @@ function acf_get_posts( $args = array() ) { * This function will remove the 'wp_posts.post_type' WHERE clause completely * When using 'post__in', this clause is unneccessary and slow. * -* @type function -* @date 4/03/2015 -* @since 5.1.5 +* @type function +* @date 4/03/2015 +* @since 5.1.5 * -* @param $sql (string) -* @return $sql +* @param $sql (string) +* @return $sql */ function _acf_query_remove_post_type( $sql ) { - + // global global $wpdb; - - - // bail ealry if no 'wp_posts.ID IN' - if( strpos($sql, "$wpdb->posts.ID IN") === false ) { - + + // bail early if no 'wp_posts.ID IN' + if ( strpos( $sql, "$wpdb->posts.ID IN" ) === false ) { + return $sql; - + } - - - // get bits + + // get bits $glue = 'AND'; - $bits = explode($glue, $sql); - - + $bits = explode( $glue, $sql ); + // loop through $where and remove any post_type queries - foreach( $bits as $i => $bit ) { - - if( strpos($bit, "$wpdb->posts.post_type") !== false ) { - + foreach ( $bits as $i => $bit ) { + + if ( strpos( $bit, "$wpdb->posts.post_type" ) !== false ) { + unset( $bits[ $i ] ); - + } - } - - + // join $where back together - $sql = implode($glue, $bits); - - - // return - return $sql; - + $sql = implode( $glue, $bits ); + + // return + return $sql; + } @@ -1448,303 +1497,277 @@ function _acf_query_remove_post_type( $sql ) { * This function will return all posts grouped by post_type * This is handy for select settings * -* @type function -* @date 27/02/2014 -* @since 5.0.0 +* @type function +* @date 27/02/2014 +* @since 5.0.0 * -* @param $args (array) -* @return (array) +* @param $args (array) +* @return (array) */ function acf_get_grouped_posts( $args ) { - + // vars $data = array(); - - - // defaults - $args = wp_parse_args( $args, array( - 'posts_per_page' => -1, - 'paged' => 0, - 'post_type' => 'post', - 'orderby' => 'menu_order title', - 'order' => 'ASC', - 'post_status' => 'any', - 'suppress_filters' => false, - 'update_post_meta_cache' => false, - )); - + // defaults + $args = wp_parse_args( + $args, + array( + 'posts_per_page' => -1, + 'paged' => 0, + 'post_type' => 'post', + 'orderby' => 'menu_order title', + 'order' => 'ASC', + 'post_status' => 'any', + 'suppress_filters' => false, + 'update_post_meta_cache' => false, + ) + ); + // find array of post_type - $post_types = acf_get_array( $args['post_type'] ); - $post_types_labels = acf_get_pretty_post_types($post_types); - $is_single_post_type = ( count($post_types) == 1 ); - - + $post_types = acf_get_array( $args['post_type'] ); + $post_types_labels = acf_get_pretty_post_types( $post_types ); + $is_single_post_type = ( count( $post_types ) == 1 ); + // attachment doesn't work if it is the only item in an array - if( $is_single_post_type ) { - $args['post_type'] = reset($post_types); + if ( $is_single_post_type ) { + $args['post_type'] = reset( $post_types ); } - - + // add filter to orderby post type - if( !$is_single_post_type ) { - add_filter('posts_orderby', '_acf_orderby_post_type', 10, 2); + if ( ! $is_single_post_type ) { + add_filter( 'posts_orderby', '_acf_orderby_post_type', 10, 2 ); } - - + // get posts $posts = get_posts( $args ); - - + // remove this filter (only once) - if( !$is_single_post_type ) { - remove_filter('posts_orderby', '_acf_orderby_post_type', 10, 2); + if ( ! $is_single_post_type ) { + remove_filter( 'posts_orderby', '_acf_orderby_post_type', 10, 2 ); } - - + // loop - foreach( $post_types as $post_type ) { - + foreach ( $post_types as $post_type ) { + // vars $this_posts = array(); $this_group = array(); - - + // populate $this_posts - foreach( $posts as $post ) { - if( $post->post_type == $post_type ) { + foreach ( $posts as $post ) { + if ( $post->post_type == $post_type ) { $this_posts[] = $post; } } - - + // bail early if no posts for this post type - if( empty($this_posts) ) continue; - - + if ( empty( $this_posts ) ) { + continue; + } + // sort into hierachial order! // this will fail if a search has taken place because parents wont exist - if( is_post_type_hierarchical($post_type) && empty($args['s'])) { - + if ( is_post_type_hierarchical( $post_type ) && empty( $args['s'] ) ) { + // vars - $post_id = $this_posts[0]->ID; - $parent_id = acf_maybe_get($args, 'post_parent', 0); - $offset = 0; - $length = count($this_posts); - - + $post_id = $this_posts[0]->ID; + $parent_id = acf_maybe_get( $args, 'post_parent', 0 ); + $offset = 0; + $length = count( $this_posts ); + // get all posts from this post type - $all_posts = get_posts(array_merge($args, array( - 'posts_per_page' => -1, - 'paged' => 0, - 'post_type' => $post_type - ))); - - + $all_posts = get_posts( + array_merge( + $args, + array( + 'posts_per_page' => -1, + 'paged' => 0, + 'post_type' => $post_type, + ) + ) + ); + // find starting point (offset) - foreach( $all_posts as $i => $post ) { - if( $post->ID == $post_id ) { + foreach ( $all_posts as $i => $post ) { + if ( $post->ID == $post_id ) { $offset = $i; break; } } - - + // order posts - $ordered_posts = get_page_children($parent_id, $all_posts); - - + $ordered_posts = get_page_children( $parent_id, $all_posts ); + // compare aray lengths // if $ordered_posts is smaller than $all_posts, WP has lost posts during the get_page_children() function - // this is possible when get_post( $args ) filter out parents (via taxonomy, meta and other search parameters) - if( count($ordered_posts) == count($all_posts) ) { - $this_posts = array_slice($ordered_posts, $offset, $length); + // this is possible when get_post( $args ) filter out parents (via taxonomy, meta and other search parameters) + if ( count( $ordered_posts ) == count( $all_posts ) ) { + $this_posts = array_slice( $ordered_posts, $offset, $length ); } - } - - + // populate $this_posts - foreach( $this_posts as $post ) { + foreach ( $this_posts as $post ) { $this_group[ $post->ID ] = $post; } - - + // group by post type - $label = $post_types_labels[ $post_type ]; + $label = $post_types_labels[ $post_type ]; $data[ $label ] = $this_group; - + } - - + // return return $data; - + } function _acf_orderby_post_type( $ordeby, $wp_query ) { - + // global global $wpdb; - - + // get post types - $post_types = $wp_query->get('post_type'); - + $post_types = $wp_query->get( 'post_type' ); // prepend SQL - if( is_array($post_types) ) { - - $post_types = implode("','", $post_types); - $ordeby = "FIELD({$wpdb->posts}.post_type,'$post_types')," . $ordeby; - + if ( is_array( $post_types ) ) { + + $post_types = implode( "','", $post_types ); + $ordeby = "FIELD({$wpdb->posts}.post_type,'$post_types')," . $ordeby; + } - - + // return return $ordeby; - + } function acf_get_post_title( $post = 0, $is_search = false ) { - + // vars - $post = get_post($post); - $title = ''; + $post = get_post( $post ); + $title = ''; $prepend = ''; - $append = ''; - - + $append = ''; + // bail early if no post - if( !$post ) return ''; - - + if ( ! $post ) { + return ''; + } + // title $title = get_the_title( $post->ID ); - - + // empty - if( $title === '' ) { - - $title = __('(no title)', 'acf'); - + if ( $title === '' ) { + + $title = __( '(no title)', 'acf' ); + } - - + // status - if( get_post_status( $post->ID ) != "publish" ) { - + if ( get_post_status( $post->ID ) != 'publish' ) { + $append .= ' (' . get_post_status( $post->ID ) . ')'; - + } - - + // ancestors - if( $post->post_type !== 'attachment' ) { - + if ( $post->post_type !== 'attachment' ) { + // get ancestors $ancestors = get_ancestors( $post->ID, $post->post_type ); - $prepend .= str_repeat('- ', count($ancestors)); - - + $prepend .= str_repeat( '- ', count( $ancestors ) ); + // add parent -/* + /* removed in 5.6.5 as not used by the UI if( $is_search && !empty($ancestors) ) { - + // reverse $ancestors = array_reverse($ancestors); - - + + // convert id's into titles foreach( $ancestors as $i => $id ) { - + $ancestors[ $i ] = get_the_title( $id ); - + } - - + + // append $append .= ' | ' . __('Parent', 'acf') . ': ' . implode(' / ', $ancestors); - + } -*/ - + */ + } - - + // merge $title = $prepend . $title . $append; - - + // return return $title; - + } function acf_order_by_search( $array, $search ) { - + // vars $weights = array(); - $needle = strtolower( $search ); - - - // add key prefix - foreach( array_keys($array) as $k ) { - - $array[ '_' . $k ] = acf_extract_var( $array, $k ); - - } + $needle = strtolower( $search ); + // add key prefix + foreach ( array_keys( $array ) as $k ) { + + $array[ '_' . $k ] = acf_extract_var( $array, $k ); + + } // add search weight - foreach( $array as $k => $v ) { - + foreach ( $array as $k => $v ) { + // vars - $weight = 0; + $weight = 0; $haystack = strtolower( $v ); - $strpos = strpos( $haystack, $needle ); - - + $strpos = strpos( $haystack, $needle ); + // detect search match - if( $strpos !== false ) { - + if ( $strpos !== false ) { + // set eright to length of match $weight = strlen( $search ); - - + // increase weight if match starts at begining of string - if( $strpos == 0 ) { - + if ( $strpos == 0 ) { + $weight++; - + } - } - - + // append to wights $weights[ $k ] = $weight; - + } - - + // sort the array with menu_order ascending array_multisort( $weights, SORT_DESC, $array ); - - + // remove key prefix - foreach( array_keys($array) as $k ) { - - $array[ substr($k,1) ] = acf_extract_var( $array, $k ); - + foreach ( array_keys( $array ) as $k ) { + + $array[ substr( $k, 1 ) ] = acf_extract_var( $array, $k ); + } - - + // return return $array; } @@ -1755,38 +1778,37 @@ function acf_order_by_search( $array, $search ) { * * description * -* @type function -* @date 23/02/2016 -* @since 5.3.2 +* @type function +* @date 23/02/2016 +* @since 5.3.2 * -* @param $post_id (int) -* @return $post_id (int) +* @param $post_id (int) +* @return $post_id (int) */ function acf_get_pretty_user_roles( $allowed = false ) { - + // vars $editable_roles = get_editable_roles(); - $allowed = acf_get_array($allowed); - $roles = array(); - - + $allowed = acf_get_array( $allowed ); + $roles = array(); + // loop - foreach( $editable_roles as $role_name => $role_details ) { - + foreach ( $editable_roles as $role_name => $role_details ) { + // bail early if not allowed - if( !empty($allowed) && !in_array($role_name, $allowed) ) continue; - - + if ( ! empty( $allowed ) && ! in_array( $role_name, $allowed ) ) { + continue; + } + // append $roles[ $role_name ] = translate_user_role( $role_details['name'] ); - + } - - + // return return $roles; - + } @@ -1796,153 +1818,142 @@ function acf_get_pretty_user_roles( $allowed = false ) { * This function will return all users grouped by role * This is handy for select settings * -* @type function -* @date 27/02/2014 -* @since 5.0.0 +* @type function +* @date 27/02/2014 +* @since 5.0.0 * -* @param $args (array) -* @return (array) +* @param $args (array) +* @return (array) */ function acf_get_grouped_users( $args = array() ) { - + // vars $r = array(); - - + // defaults - $args = wp_parse_args( $args, array( - 'users_per_page' => -1, - 'paged' => 0, - 'role' => '', - 'orderby' => 'login', - 'order' => 'ASC', - )); - - + $args = wp_parse_args( + $args, + array( + 'users_per_page' => -1, + 'paged' => 0, + 'role' => '', + 'orderby' => 'login', + 'order' => 'ASC', + ) + ); + // offset - $i = 0; - $min = 0; - $max = 0; - $users_per_page = acf_extract_var($args, 'users_per_page'); - $paged = acf_extract_var($args, 'paged'); - - if( $users_per_page > 0 ) { - + $i = 0; + $min = 0; + $max = 0; + $users_per_page = acf_extract_var( $args, 'users_per_page' ); + $paged = acf_extract_var( $args, 'paged' ); + + if ( $users_per_page > 0 ) { + // prevent paged from being -1 - $paged = max(0, $paged); - - + $paged = max( 0, $paged ); + // set min / max - $min = (($paged-1) * $users_per_page) + 1; // 1, 11 - $max = ($paged * $users_per_page); // 10, 20 - + $min = ( ( $paged - 1 ) * $users_per_page ) + 1; // 1, 11 + $max = ( $paged * $users_per_page ); // 10, 20 + } - - + // find array of post_type - $user_roles = acf_get_pretty_user_roles($args['role']); - - + $user_roles = acf_get_pretty_user_roles( $args['role'] ); + // fix role - if( is_array($args['role']) ) { - + if ( is_array( $args['role'] ) ) { + // global - global $wp_version, $wpdb; - - + global $wp_version, $wpdb; + // vars - $roles = acf_extract_var($args, 'role'); - - + $roles = acf_extract_var( $args, 'role' ); + // new WP has role__in - if( version_compare($wp_version, '4.4', '>=' ) ) { - + if ( version_compare( $wp_version, '4.4', '>=' ) ) { + $args['role__in'] = $roles; - - // old WP doesn't have role__in + + // old WP doesn't have role__in } else { - + // vars - $blog_id = get_current_blog_id(); + $blog_id = get_current_blog_id(); $meta_query = array( 'relation' => 'OR' ); - - + // loop - foreach( $roles as $role ) { - + foreach ( $roles as $role ) { + $meta_query[] = array( 'key' => $wpdb->get_blog_prefix( $blog_id ) . 'capabilities', 'value' => '"' . $role . '"', 'compare' => 'LIKE', ); - + } - - + // append $args['meta_query'] = $meta_query; - + } - } - - + // get posts $users = get_users( $args ); - - + // loop - foreach( $user_roles as $user_role_name => $user_role_label ) { - + foreach ( $user_roles as $user_role_name => $user_role_label ) { + // vars $this_users = array(); $this_group = array(); - - + // populate $this_posts - foreach( array_keys($users) as $key ) { - - // bail ealry if not correct role - if( !in_array($user_role_name, $users[ $key ]->roles) ) continue; - - + foreach ( array_keys( $users ) as $key ) { + + // bail early if not correct role + if ( ! in_array( $user_role_name, $users[ $key ]->roles ) ) { + continue; + } + // extract user $user = acf_extract_var( $users, $key ); - - + // increase $i++; - - - // bail ealry if too low - if( $min && $i < $min ) continue; - - + + // bail early if too low + if ( $min && $i < $min ) { + continue; + } + // bail early if too high (don't bother looking at any more users) - if( $max && $i > $max ) break; - - + if ( $max && $i > $max ) { + break; + } + // group by post type $this_users[ $user->ID ] = $user; - - + } - - + // bail early if no posts for this post type - if( empty($this_users) ) continue; - - + if ( empty( $this_users ) ) { + continue; + } + // append $r[ $user_role_label ] = $this_users; - + } - - + // return return $r; - + } /** @@ -1950,14 +1961,14 @@ function acf_get_grouped_users( $args = array() ) { * * Returns json_encode() ready for file / database use. * - * @date 29/4/19 - * @since 5.0.0 + * @date 29/4/19 + * @since 5.0.0 * - * @param array $json The array of data to encode. - * @return string + * @param array $json The array of data to encode. + * @return string */ function acf_json_encode( $json ) { - return json_encode($json, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE); + return json_encode( $json, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE ); } @@ -1966,25 +1977,24 @@ function acf_json_encode( $json ) { * * This function will return true if a sub string is found * -* @type function -* @date 1/05/2014 -* @since 5.0.0 +* @type function +* @date 1/05/2014 +* @since 5.0.0 * -* @param $needle (string) -* @param $haystack (string) -* @return (boolean) +* @param $needle (string) +* @param $haystack (string) +* @return (boolean) */ function acf_str_exists( $needle, $haystack ) { - + // return true if $haystack contains the $needle - if( is_string($haystack) && strpos($haystack, $needle) !== false ) { - + if ( is_string( $haystack ) && strpos( $haystack, $needle ) !== false ) { + return true; - + } - - + // return return false; } @@ -1995,75 +2005,72 @@ function acf_str_exists( $needle, $haystack ) { * * description * -* @type function -* @date 2/05/2014 -* @since 5.0.0 +* @type function +* @date 2/05/2014 +* @since 5.0.0 * -* @param $post_id (int) -* @return $post_id (int) +* @param $post_id (int) +* @return $post_id (int) */ function acf_debug() { - + // vars $args = func_get_args(); - $s = array_shift($args); - $o = ''; - $nl = "\r\n"; - - + $s = array_shift( $args ); + $o = ''; + $nl = "\r\n"; + // start script $o .= '' . $nl; - - + // echo echo $o; } function acf_debug_start() { - - acf_update_setting( 'debug_start', memory_get_usage()); - + + acf_update_setting( 'debug_start', memory_get_usage() ); + } function acf_debug_end() { - + $start = acf_get_setting( 'debug_start' ); - $end = memory_get_usage(); - + $end = memory_get_usage(); + return $end - $start; - + } @@ -2072,124 +2079,116 @@ function acf_debug_end() { * * description * -* @type function -* @date 4/06/2014 -* @since 5.0.0 +* @type function +* @date 4/06/2014 +* @since 5.0.0 * -* @param $post_id (int) -* @return $post_id (int) +* @param $post_id (int) +* @return $post_id (int) */ function acf_encode_choices( $array = array(), $show_keys = true ) { - + // bail early if not array (maybe a single string) - if( !is_array($array) ) return $array; - - + if ( ! is_array( $array ) ) { + return $array; + } + // bail early if empty array - if( empty($array) ) return ''; - - + if ( empty( $array ) ) { + return ''; + } + // vars $string = ''; - - + // if allowed to show keys (good for choices, not for default values) - if( $show_keys ) { - + if ( $show_keys ) { + // loop - foreach( $array as $k => $v ) { - + foreach ( $array as $k => $v ) { + // ignore if key and value are the same - if( strval($k) == strval($v) ) continue; - - + if ( strval( $k ) == strval( $v ) ) { + continue; + } + // show key in the value $array[ $k ] = $k . ' : ' . $v; - - } - - } - - - // implode - $string = implode("\n", $array); - + } + } + + // implode + $string = implode( "\n", $array ); + // return return $string; - + } function acf_decode_choices( $string = '', $array_keys = false ) { - + // bail early if already array - if( is_array($string) ) { - + if ( is_array( $string ) ) { + return $string; - - // allow numeric values (same as string) - } elseif( is_numeric($string) ) { - + + // allow numeric values (same as string) + } elseif ( is_numeric( $string ) ) { + // do nothing - - // bail early if not a string - } elseif( !is_string($string) ) { - + + // bail early if not a string + } elseif ( ! is_string( $string ) ) { + return array(); - - // bail early if is empty string - } elseif( $string === '' ) { - + + // bail early if is empty string + } elseif ( $string === '' ) { + return array(); - + } - - + // vars $array = array(); - - + // explode - $lines = explode("\n", $string); - - + $lines = explode( "\n", $string ); + // key => value - foreach( $lines as $line ) { - + foreach ( $lines as $line ) { + // vars - $k = trim($line); - $v = trim($line); - - + $k = trim( $line ); + $v = trim( $line ); + // look for ' : ' - if( acf_str_exists(' : ', $line) ) { - - $line = explode(' : ', $line); - - $k = trim($line[0]); - $v = trim($line[1]); - + if ( acf_str_exists( ' : ', $line ) ) { + + $line = explode( ' : ', $line ); + + $k = trim( $line[0] ); + $v = trim( $line[1] ); + } - - + // append $array[ $k ] = $v; - + } - - + // return only array keys? (good for checkbox default_value) - if( $array_keys ) { - - return array_keys($array); - + if ( $array_keys ) { + + return array_keys( $array ); + } - - + // return return $array; - + } @@ -2200,48 +2199,46 @@ function acf_decode_choices( $string = '', $array_keys = false ) { * The difference is the extra logic to avoid replacing a string that has alread been replaced * This is very useful for replacing date characters as they overlap with eachother * -* @type function -* @date 21/06/2016 -* @since 5.3.8 +* @type function +* @date 21/06/2016 +* @since 5.3.8 * -* @param $post_id (int) -* @return $post_id (int) +* @param $post_id (int) +* @return $post_id (int) */ function acf_str_replace( $string = '', $search_replace = array() ) { - + // vars $ignore = array(); - - + // remove potential empty search to avoid PHP error - unset($search_replace['']); - - + unset( $search_replace[''] ); + // loop over conversions - foreach( $search_replace as $search => $replace ) { - + foreach ( $search_replace as $search => $replace ) { + // ignore this search, it was a previous replace - if( in_array($search, $ignore) ) continue; - - + if ( in_array( $search, $ignore ) ) { + continue; + } + // bail early if subsctring not found - if( strpos($string, $search) === false ) continue; - - + if ( strpos( $string, $search ) === false ) { + continue; + } + // replace - $string = str_replace($search, $replace, $string); - - + $string = str_replace( $search, $replace, $string ); + // append to ignore $ignore[] = $replace; - + } - - + // return return $string; - + } @@ -2250,52 +2247,58 @@ function acf_str_replace( $string = '', $search_replace = array() ) { * * These settings contain an association of format strings from PHP => JS * -* @type function -* @date 21/06/2016 -* @since 5.3.8 +* @type function +* @date 21/06/2016 +* @since 5.3.8 * -* @param n/a -* @return n/a +* @param n/a +* @return n/a */ -acf_update_setting('php_to_js_date_formats', array( +acf_update_setting( + 'php_to_js_date_formats', + array( + + // Year + 'Y' => 'yy', // Numeric, 4 digits 1999, 2003 + 'y' => 'y', // Numeric, 2 digits 99, 03 + - // Year - 'Y' => 'yy', // Numeric, 4 digits 1999, 2003 - 'y' => 'y', // Numeric, 2 digits 99, 03 - - // Month - 'm' => 'mm', // Numeric, with leading zeros 01–12 - 'n' => 'm', // Numeric, without leading zeros 1–12 - 'F' => 'MM', // Textual full January – December - 'M' => 'M', // Textual three letters Jan - Dec - - - // Weekday - 'l' => 'DD', // Full name (lowercase 'L') Sunday – Saturday - 'D' => 'D', // Three letter name Mon – Sun - - - // Day of Month - 'd' => 'dd', // Numeric, with leading zeros 01–31 - 'j' => 'd', // Numeric, without leading zeros 1–31 - 'S' => '', // The English suffix for the day of the month st, nd or th in the 1st, 2nd or 15th. - -)); + 'm' => 'mm', // Numeric, with leading zeros 01–12 + 'n' => 'm', // Numeric, without leading zeros 1–12 + 'F' => 'MM', // Textual full January – December + 'M' => 'M', // Textual three letters Jan - Dec -acf_update_setting('php_to_js_time_formats', array( - - 'a' => 'tt', // Lowercase Ante meridiem and Post meridiem am or pm - 'A' => 'TT', // Uppercase Ante meridiem and Post meridiem AM or PM - 'h' => 'hh', // 12-hour format of an hour with leading zeros 01 through 12 - 'g' => 'h', // 12-hour format of an hour without leading zeros 1 through 12 - 'H' => 'HH', // 24-hour format of an hour with leading zeros 00 through 23 - 'G' => 'H', // 24-hour format of an hour without leading zeros 0 through 23 - 'i' => 'mm', // Minutes with leading zeros 00 to 59 - 's' => 'ss', // Seconds, with leading zeros 00 through 59 - -)); + + // Weekday + 'l' => 'DD', // Full name (lowercase 'L') Sunday – Saturday + 'D' => 'D', // Three letter name Mon – Sun + + + // Day of Month + 'd' => 'dd', // Numeric, with leading zeros 01–31 + 'j' => 'd', // Numeric, without leading zeros 1–31 + 'S' => '', // The English suffix for the day of the month st, nd or th in the 1st, 2nd or 15th. + + ) +); + +acf_update_setting( + 'php_to_js_time_formats', + array( + + 'a' => 'tt', // Lowercase Ante meridiem and Post meridiem am or pm + 'A' => 'TT', // Uppercase Ante meridiem and Post meridiem AM or PM + 'h' => 'hh', // 12-hour format of an hour with leading zeros 01 through 12 + 'g' => 'h', // 12-hour format of an hour without leading zeros 1 through 12 + 'H' => 'HH', // 24-hour format of an hour with leading zeros 00 through 23 + 'G' => 'H', // 24-hour format of an hour without leading zeros 0 through 23 + 'i' => 'mm', // Minutes with leading zeros 00 to 59 + 's' => 'ss', // Seconds, with leading zeros 00 through 59 + + ) +); /* @@ -2303,60 +2306,55 @@ acf_update_setting('php_to_js_time_formats', array( * * This function will split a format string into seperate date and time * -* @type function -* @date 26/05/2016 -* @since 5.3.8 +* @type function +* @date 26/05/2016 +* @since 5.3.8 * -* @param $date_time (string) -* @return $formats (array) +* @param $date_time (string) +* @return $formats (array) */ function acf_split_date_time( $date_time = '' ) { - + // vars - $php_date = acf_get_setting('php_to_js_date_formats'); - $php_time = acf_get_setting('php_to_js_time_formats'); - $chars = str_split($date_time); - $type = 'date'; - - + $php_date = acf_get_setting( 'php_to_js_date_formats' ); + $php_time = acf_get_setting( 'php_to_js_time_formats' ); + $chars = str_split( $date_time ); + $type = 'date'; + // default $data = array( 'date' => '', - 'time' => '' + 'time' => '', ); - - + // loop - foreach( $chars as $i => $c ) { - + foreach ( $chars as $i => $c ) { + // find type // - allow misc characters to append to previous type - if( isset($php_date[ $c ]) ) { - + if ( isset( $php_date[ $c ] ) ) { + $type = 'date'; - - } elseif( isset($php_time[ $c ]) ) { - + + } elseif ( isset( $php_time[ $c ] ) ) { + $type = 'time'; - + } - - + // append char $data[ $type ] .= $c; - + } - - + // trim - $data['date'] = trim($data['date']); - $data['time'] = trim($data['time']); - - + $data['date'] = trim( $data['date'] ); + $data['time'] = trim( $data['time'] ); + // return - return $data; - + return $data; + } @@ -2365,24 +2363,23 @@ function acf_split_date_time( $date_time = '' ) { * * This fucntion converts a date format string from JS to PHP * -* @type function -* @date 20/06/2014 -* @since 5.0.0 +* @type function +* @date 20/06/2014 +* @since 5.0.0 * -* @param $date (string) -* @return (string) +* @param $date (string) +* @return (string) */ function acf_convert_date_to_php( $date = '' ) { - + // vars - $php_to_js = acf_get_setting('php_to_js_date_formats'); - $js_to_php = array_flip($php_to_js); - - + $php_to_js = acf_get_setting( 'php_to_js_date_formats' ); + $js_to_php = array_flip( $php_to_js ); + // return return acf_str_replace( $date, $js_to_php ); - + } /* @@ -2390,23 +2387,22 @@ function acf_convert_date_to_php( $date = '' ) { * * This fucntion converts a date format string from PHP to JS * -* @type function -* @date 20/06/2014 -* @since 5.0.0 +* @type function +* @date 20/06/2014 +* @since 5.0.0 * -* @param $date (string) -* @return (string) +* @param $date (string) +* @return (string) */ function acf_convert_date_to_js( $date = '' ) { - + // vars - $php_to_js = acf_get_setting('php_to_js_date_formats'); - - + $php_to_js = acf_get_setting( 'php_to_js_date_formats' ); + // return return acf_str_replace( $date, $php_to_js ); - + } @@ -2415,24 +2411,23 @@ function acf_convert_date_to_js( $date = '' ) { * * This fucntion converts a time format string from JS to PHP * -* @type function -* @date 20/06/2014 -* @since 5.0.0 +* @type function +* @date 20/06/2014 +* @since 5.0.0 * -* @param $time (string) -* @return (string) +* @param $time (string) +* @return (string) */ function acf_convert_time_to_php( $time = '' ) { - + // vars - $php_to_js = acf_get_setting('php_to_js_time_formats'); - $js_to_php = array_flip($php_to_js); - - + $php_to_js = acf_get_setting( 'php_to_js_time_formats' ); + $js_to_php = array_flip( $php_to_js ); + // return return acf_str_replace( $time, $js_to_php ); - + } @@ -2441,23 +2436,22 @@ function acf_convert_time_to_php( $time = '' ) { * * This fucntion converts a date format string from PHP to JS * -* @type function -* @date 20/06/2014 -* @since 5.0.0 +* @type function +* @date 20/06/2014 +* @since 5.0.0 * -* @param $time (string) -* @return (string) +* @param $time (string) +* @return (string) */ function acf_convert_time_to_js( $time = '' ) { - + // vars - $php_to_js = acf_get_setting('php_to_js_time_formats'); - - + $php_to_js = acf_get_setting( 'php_to_js_time_formats' ); + // return return acf_str_replace( $time, $php_to_js ); - + } @@ -2466,44 +2460,40 @@ function acf_convert_time_to_js( $time = '' ) { * * description * -* @type function -* @date 15/07/2014 -* @since 5.0.0 +* @type function +* @date 15/07/2014 +* @since 5.0.0 * -* @param $post_id (int) -* @return $post_id (int) +* @param $post_id (int) +* @return $post_id (int) */ function acf_update_user_setting( $name, $value ) { - + // get current user id $user_id = get_current_user_id(); - - + // get user settings $settings = get_user_meta( $user_id, 'acf_user_settings', true ); - - + // ensure array - $settings = acf_get_array($settings); - - + $settings = acf_get_array( $settings ); + // delete setting (allow 0 to save) - if( acf_is_empty($value) ) { - - unset($settings[ $name ]); - - // append setting + if ( acf_is_empty( $value ) ) { + + unset( $settings[ $name ] ); + + // append setting } else { - + $settings[ $name ] = $value; - + } - - + // update user data - return update_metadata('user', $user_id, 'acf_user_settings', $settings); - + return update_metadata( 'user', $user_id, 'acf_user_settings', $settings ); + } @@ -2512,35 +2502,33 @@ function acf_update_user_setting( $name, $value ) { * * description * -* @type function -* @date 15/07/2014 -* @since 5.0.0 +* @type function +* @date 15/07/2014 +* @since 5.0.0 * -* @param $post_id (int) -* @return $post_id (int) +* @param $post_id (int) +* @return $post_id (int) */ function acf_get_user_setting( $name = '', $default = false ) { - + // get current user id $user_id = get_current_user_id(); - - + // get user settings $settings = get_user_meta( $user_id, 'acf_user_settings', true ); - - + // ensure array - $settings = acf_get_array($settings); - - + $settings = acf_get_array( $settings ); + // bail arly if no settings - if( !isset($settings[$name]) ) return $default; - - + if ( ! isset( $settings[ $name ] ) ) { + return $default; + } + // return - return $settings[$name]; - + return $settings[ $name ]; + } @@ -2549,23 +2537,24 @@ function acf_get_user_setting( $name = '', $default = false ) { * * description * -* @type function -* @date 22/07/2014 -* @since 5.0.0 +* @type function +* @date 22/07/2014 +* @since 5.0.0 * -* @param $post_id (int) -* @return $post_id (int) +* @param $post_id (int) +* @return $post_id (int) */ function acf_in_array( $value = '', $array = false ) { - + // bail early if not array - if( !is_array($array) ) return false; - - + if ( ! is_array( $array ) ) { + return false; + } + // find value in array - return in_array($value, $array); - + return in_array( $value, $array ); + } @@ -2574,107 +2563,97 @@ function acf_in_array( $value = '', $array = false ) { * * This function will return a valid post_id based on the current screen / parameter * -* @type function -* @date 8/12/2013 -* @since 5.0.0 +* @type function +* @date 8/12/2013 +* @since 5.0.0 * -* @param $post_id (mixed) -* @return $post_id (mixed) +* @param $post_id (mixed) +* @return $post_id (mixed) */ function acf_get_valid_post_id( $post_id = 0 ) { - + // allow filter to short-circuit load_value logic - $preload = apply_filters( "acf/pre_load_post_id", null, $post_id ); - if( $preload !== null ) { - return $preload; - } - + $preload = apply_filters( 'acf/pre_load_post_id', null, $post_id ); + if ( $preload !== null ) { + return $preload; + } + // vars $_post_id = $post_id; - - + // if not $post_id, load queried object - if( !$post_id ) { - + if ( ! $post_id ) { + // try for global post (needed for setup_postdata) $post_id = (int) get_the_ID(); - - + // try for current screen - if( !$post_id ) { - + if ( ! $post_id ) { + $post_id = get_queried_object(); - + } - } - - - // $post_id may be an object - if( is_object($post_id) ) { - + + // $post_id may be an object. + // todo: Compare class types instead. + if ( is_object( $post_id ) ) { + // post - if( isset($post_id->post_type, $post_id->ID) ) { - + if ( isset( $post_id->post_type, $post_id->ID ) ) { + $post_id = $post_id->ID; - - // user - } elseif( isset($post_id->roles, $post_id->ID) ) { - + + // user + } elseif ( isset( $post_id->roles, $post_id->ID ) ) { + $post_id = 'user_' . $post_id->ID; - - // term - } elseif( isset($post_id->taxonomy, $post_id->term_id) ) { - - $post_id = acf_get_term_post_id( $post_id->taxonomy, $post_id->term_id ); - - // comment - } elseif( isset($post_id->comment_ID) ) { - + + // term + } elseif ( isset( $post_id->taxonomy, $post_id->term_id ) ) { + + $post_id = 'term_' . $post_id->term_id; + + // comment + } elseif ( isset( $post_id->comment_ID ) ) { + $post_id = 'comment_' . $post_id->comment_ID; - - // default + + // default } else { - + $post_id = 0; - + } - } - - + // allow for option == options - if( $post_id === 'option' ) { - + if ( $post_id === 'option' ) { + $post_id = 'options'; - + } - - + // append language code - if( $post_id == 'options' ) { - - $dl = acf_get_setting('default_language'); - $cl = acf_get_setting('current_language'); - - if( $cl && $cl !== $dl ) { - + if ( $post_id == 'options' ) { + + $dl = acf_get_setting( 'default_language' ); + $cl = acf_get_setting( 'current_language' ); + + if ( $cl && $cl !== $dl ) { + $post_id .= '_' . $cl; - + } - } - - - + // filter for 3rd party - $post_id = apply_filters('acf/validate_post_id', $post_id, $_post_id); - - + $post_id = apply_filters( 'acf/validate_post_id', $post_id, $_post_id ); + // return return $post_id; - + } @@ -2684,86 +2663,82 @@ function acf_get_valid_post_id( $post_id = 0 ) { * * This function will return the type and id for a given $post_id string * -* @type function -* @date 2/07/2016 -* @since 5.4.0 +* @type function +* @date 2/07/2016 +* @since 5.4.0 * -* @param $post_id (mixed) -* @return $info (array) +* @param $post_id (mixed) +* @return $info (array) */ function acf_get_post_id_info( $post_id = 0 ) { - + // vars $info = array( - 'type' => 'post', - 'id' => 0 + 'type' => 'post', + 'id' => 0, ); - + // bail early if no $post_id - if( !$post_id ) return $info; - - + if ( ! $post_id ) { + return $info; + } + // check cache // - this function will most likely be called multiple times (saving loading fields from post) - //$cache_key = "get_post_id_info/post_id={$post_id}"; - - //if( acf_isset_cache($cache_key) ) return acf_get_cache($cache_key); - - + // $cache_key = "get_post_id_info/post_id={$post_id}"; + + // if( acf_isset_cache($cache_key) ) return acf_get_cache($cache_key); + // numeric - if( is_numeric($post_id) ) { - + if ( is_numeric( $post_id ) ) { + $info['id'] = (int) $post_id; - - // string - } elseif( is_string($post_id) ) { - + + // string + } elseif ( is_string( $post_id ) ) { + // vars $glue = '_'; - $type = explode($glue, $post_id); - $id = array_pop($type); - $type = implode($glue, $type); - $meta = array('post', 'user', 'comment', 'term'); - - + $type = explode( $glue, $post_id ); + $id = array_pop( $type ); + $type = implode( $glue, $type ); + $meta = array( 'post', 'user', 'comment', 'term' ); + // check if is taxonomy (ACF < 5.5) // - avoid scenario where taxonomy exists with name of meta type - if( !in_array($type, $meta) && acf_isset_termmeta($type) ) $type = 'term'; - - - // meta - if( is_numeric($id) && in_array($type, $meta) ) { - - $info['type'] = $type; - $info['id'] = (int) $id; - - // option - } else { - - $info['type'] = 'option'; - $info['id'] = $post_id; - + if ( ! in_array( $type, $meta ) && acf_isset_termmeta( $type ) ) { + $type = 'term'; + } + + // meta + if ( is_numeric( $id ) && in_array( $type, $meta ) ) { + + $info['type'] = $type; + $info['id'] = (int) $id; + + // option + } else { + + $info['type'] = 'option'; + $info['id'] = $post_id; + } - } - - + // update cache - //acf_set_cache($cache_key, $info); - - + // acf_set_cache($cache_key, $info); + // filter - $info = apply_filters("acf/get_post_id_info", $info, $post_id); - + $info = apply_filters( 'acf/get_post_id_info', $info, $post_id ); + // return return $info; - + } /* - acf_log( acf_get_post_id_info(4) ); acf_log( acf_get_post_id_info('post_4') ); @@ -2791,212 +2766,155 @@ acf_log( acf_get_post_id_info('options') ); * This function will return true if the termmeta table exists * https://developer.wordpress.org/reference/functions/get_term_meta/ * -* @type function -* @date 3/09/2016 -* @since 5.4.0 +* @type function +* @date 3/09/2016 +* @since 5.4.0 * -* @param $post_id (int) -* @return $post_id (int) +* @param $post_id (int) +* @return $post_id (int) */ function acf_isset_termmeta( $taxonomy = '' ) { - - // bail ealry if no table - if( get_option('db_version') < 34370 ) return false; - - + + // bail early if no table + if ( get_option( 'db_version' ) < 34370 ) { + return false; + } + // check taxonomy - if( $taxonomy && !taxonomy_exists($taxonomy) ) return false; - - + if ( $taxonomy && ! taxonomy_exists( $taxonomy ) ) { + return false; + } + // return return true; - + } - -/* -* acf_get_term_post_id -* -* This function will return a valid post_id string for a given term and taxonomy -* -* @type function -* @date 6/2/17 -* @since 5.5.6 -* -* @param $taxonomy (string) -* @param $term_id (int) -* @return (string) -*/ - -function acf_get_term_post_id( $taxonomy, $term_id ) { - - // WP < 4.4 - if( !acf_isset_termmeta() ) { - - return $taxonomy . '_' . $term_id; - - } - - - // return - return 'term_' . $term_id; - -} - - -/* -* acf_upload_files -* -* This function will walk througfh the $_FILES data and upload each found -* -* @type function -* @date 25/10/2014 -* @since 5.0.9 -* -* @param $ancestors (array) an internal parameter, not required -* @return n/a -*/ - +/** + * This function will walk through the $_FILES data and upload each found. + * + * @date 25/10/2014 + * @since 5.0.9 + * + * @param array $ancestors An internal parameter, not required. + * @return void + */ function acf_upload_files( $ancestors = array() ) { - - // vars - $file = array( - 'name' => '', - 'type' => '', - 'tmp_name' => '', - 'error' => '', - 'size' => '' - ); - - - // populate with $_FILES data - foreach( array_keys($file) as $k ) { - - $file[ $k ] = $_FILES['acf'][ $k ]; - - } - - + + $file = acf_sanitize_files_array( $_FILES['acf'] ); + // walk through ancestors - if( !empty($ancestors) ) { - - foreach( $ancestors as $a ) { - - foreach( array_keys($file) as $k ) { - + if ( ! empty( $ancestors ) ) { + + foreach ( $ancestors as $a ) { + + foreach ( array_keys( $file ) as $k ) { + $file[ $k ] = $file[ $k ][ $a ]; - + } - } - } - - + // is array? - if( is_array($file['name']) ) { - - foreach( array_keys($file['name']) as $k ) { - - $_ancestors = array_merge($ancestors, array($k)); - + if ( is_array( $file['name'] ) ) { + + foreach ( array_keys( $file['name'] ) as $k ) { + + $_ancestors = array_merge( $ancestors, array( $k ) ); + acf_upload_files( $_ancestors ); - + } - + return; - + } - - - // bail ealry if file has error (no file uploaded) - if( $file['error'] ) { - + + // Bail early if file has error (no file uploaded). + if ( $file['error'] ) { return; - } - - - // assign global _acfuploader for media validation - $_POST['_acfuploader'] = end($ancestors); - - + + $field_key = end( $ancestors ); + $nonce_name = $field_key . '_file_nonce'; + + if ( empty( $_REQUEST['acf'][ $nonce_name ] ) || ! wp_verify_nonce( sanitize_text_field( $_REQUEST['acf'][ $nonce_name ] ), 'acf/file_uploader_nonce/' . $field_key ) ) { + return; + } + + // Assign global _acfuploader for media validation. + $_POST['_acfuploader'] = $field_key; + // file found! $attachment_id = acf_upload_file( $file ); - - - // update $_POST - array_unshift($ancestors, 'acf'); - acf_update_nested_array( $_POST, $ancestors, $attachment_id ); - -} + // update $_POST + array_unshift( $ancestors, 'acf' ); + acf_update_nested_array( $_POST, $ancestors, $attachment_id ); + +} /* * acf_upload_file * * This function will uploade a $_FILE * -* @type function -* @date 27/10/2014 -* @since 5.0.9 +* @type function +* @date 27/10/2014 +* @since 5.0.9 * -* @param $uploaded_file (array) array found from $_FILE data -* @return $id (int) new attachment ID +* @param $uploaded_file (array) array found from $_FILE data +* @return $id (int) new attachment ID */ function acf_upload_file( $uploaded_file ) { - + // required - //require_once( ABSPATH . "/wp-load.php" ); // WP should already be loaded - require_once( ABSPATH . "/wp-admin/includes/media.php" ); // video functions - require_once( ABSPATH . "/wp-admin/includes/file.php" ); - require_once( ABSPATH . "/wp-admin/includes/image.php" ); - - + // require_once( ABSPATH . "/wp-load.php" ); // WP should already be loaded + require_once ABSPATH . '/wp-admin/includes/media.php'; // video functions + require_once ABSPATH . '/wp-admin/includes/file.php'; + require_once ABSPATH . '/wp-admin/includes/image.php'; + // required for wp_handle_upload() to upload the file $upload_overrides = array( 'test_form' => false ); - - + // upload $file = wp_handle_upload( $uploaded_file, $upload_overrides ); - - - // bail ealry if upload failed - if( isset($file['error']) ) { - + + // bail early if upload failed + if ( isset( $file['error'] ) ) { + return $file['error']; - + } - - + // vars - $url = $file['url']; - $type = $file['type']; - $file = $file['file']; - $filename = basename($file); - + $url = $file['url']; + $type = $file['type']; + $file = $file['file']; + $filename = basename( $file ); // Construct the object array $object = array( - 'post_title' => $filename, + 'post_title' => $filename, 'post_mime_type' => $type, - 'guid' => $url + 'guid' => $url, ); // Save the data - $id = wp_insert_attachment($object, $file); + $id = wp_insert_attachment( $object, $file ); // Add the meta-data wp_update_attachment_metadata( $id, wp_generate_attachment_metadata( $id, $file ) ); - + /** This action is documented in wp-admin/custom-header.php */ do_action( 'wp_create_file_in_uploads', $file, $id ); // For replication - + // return new ID return $id; - + } @@ -3005,42 +2923,39 @@ function acf_upload_file( $uploaded_file ) { * * This function will update a nested array value. Useful for modifying the $_POST array * -* @type function -* @date 27/10/2014 -* @since 5.0.9 +* @type function +* @date 27/10/2014 +* @since 5.0.9 * -* @param $array (array) target array to be updated -* @param $ancestors (array) array of keys to navigate through to find the child -* @param $value (mixed) The new value -* @return (boolean) +* @param $array (array) target array to be updated +* @param $ancestors (array) array of keys to navigate through to find the child +* @param $value (mixed) The new value +* @return (boolean) */ function acf_update_nested_array( &$array, $ancestors, $value ) { - + // if no more ancestors, update the current var - if( empty($ancestors) ) { - + if ( empty( $ancestors ) ) { + $array = $value; - + // return return true; - + } - - + // shift the next ancestor from the array $k = array_shift( $ancestors ); - - + // if exists - if( isset($array[ $k ]) ) { - + if ( isset( $array[ $k ] ) ) { + return acf_update_nested_array( $array[ $k ], $ancestors, $value ); - + } - - - // return + + // return return false; } @@ -3050,35 +2965,35 @@ function acf_update_nested_array( &$array, $ancestors, $value ) { * * This function will return true if all args are matched for the current screen * -* @type function -* @date 9/12/2014 -* @since 5.1.5 +* @type function +* @date 9/12/2014 +* @since 5.1.5 * -* @param $post_id (int) -* @return $post_id (int) +* @param $post_id (int) +* @return $post_id (int) */ function acf_is_screen( $id = '' ) { - + // bail early if not defined - if( !function_exists('get_current_screen') ) { + if ( ! function_exists( 'get_current_screen' ) ) { return false; } - + // vars $current_screen = get_current_screen(); - + // no screen - if( !$current_screen ) { + if ( ! $current_screen ) { return false; - - // array - } elseif( is_array($id) ) { - return in_array($current_screen->id, $id); - - // string + + // array + } elseif ( is_array( $id ) ) { + return in_array( $current_screen->id, $id ); + + // string } else { - return ($id === $current_screen->id); + return ( $id === $current_screen->id ); } } @@ -3088,65 +3003,65 @@ function acf_is_screen( $id = '' ) { * * This function will return a var if it exists in an array * -* @type function -* @date 9/12/2014 -* @since 5.1.5 +* @type function +* @date 9/12/2014 +* @since 5.1.5 * -* @param $array (array) the array to look within -* @param $key (key) the array key to look for. Nested values may be found using '/' -* @param $default (mixed) the value returned if not found -* @return $post_id (int) +* @param $array (array) the array to look within +* @param $key (key) the array key to look for. Nested values may be found using '/' +* @param $default (mixed) the value returned if not found +* @return $post_id (int) */ function acf_maybe_get( $array = array(), $key = 0, $default = null ) { - - return isset( $array[$key] ) ? $array[$key] : $default; - + + return isset( $array[ $key ] ) ? $array[ $key ] : $default; + } function acf_maybe_get_POST( $key = '', $default = null ) { - - return isset( $_POST[$key] ) ? $_POST[$key] : $default; - + + return isset( $_POST[ $key ] ) ? acf_sanitize_request_args( $_POST[ $key ] ) : $default; // phpcs:ignore WordPress.Security.NonceVerification.Recommended, WordPress.Security.NonceVerification.Missing -- Checked elsewhere. + } function acf_maybe_get_GET( $key = '', $default = null ) { - - return isset( $_GET[$key] ) ? $_GET[$key] : $default; - + + return isset( $_GET[ $key ] ) ? acf_sanitize_request_args( $_GET[ $key ] ) : $default; // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Checked elsewhere. + } /** * Returns an array of attachment data. * - * @date 05/01/2015 - * @since 5.1.5 + * @date 05/01/2015 + * @since 5.1.5 * - * @param int|WP_Post The attachment ID or object. - * @return array|false + * @param int|WP_Post The attachment ID or object. + * @return array|false */ function acf_get_attachment( $attachment ) { - + // Allow filter to short-circuit load attachment logic. - // Alternatively, this filter may be used to switch blogs for multisite media functionality. - $response = apply_filters( "acf/pre_load_attachment", null, $attachment ); - if( $response !== null ) { + // Alternatively, this filter may be used to switch blogs for multisite media functionality. + $response = apply_filters( 'acf/pre_load_attachment', null, $attachment ); + if ( $response !== null ) { return $response; } // Get the attachment post object. $attachment = get_post( $attachment ); - if( !$attachment ) { + if ( ! $attachment ) { return false; } - if( $attachment->post_type !== 'attachment' ) { + if ( $attachment->post_type !== 'attachment' ) { return false; } - + // Load various attachment details. - $meta = wp_get_attachment_metadata( $attachment->ID ); + $meta = wp_get_attachment_metadata( $attachment->ID ); $attached_file = get_attached_file( $attachment->ID ); - if( strpos( $attachment->post_mime_type, '/' ) !== false ) { + if ( strpos( $attachment->post_mime_type, '/' ) !== false ) { list( $type, $subtype ) = explode( '/', $attachment->post_mime_type ); } else { list( $type, $subtype ) = array( $attachment->post_mime_type, '' ); @@ -3154,142 +3069,116 @@ function acf_get_attachment( $attachment ) { // Generate response. $response = array( - 'ID' => $attachment->ID, - 'id' => $attachment->ID, - 'title' => $attachment->post_title, - 'filename' => wp_basename( $attached_file ), - 'filesize' => 0, - 'url' => wp_get_attachment_url( $attachment->ID ), - 'link' => get_attachment_link( $attachment->ID ), - 'alt' => get_post_meta( $attachment->ID, '_wp_attachment_image_alt', true ), - 'author' => $attachment->post_author, - 'description' => $attachment->post_content, - 'caption' => $attachment->post_excerpt, - 'name' => $attachment->post_name, - 'status' => $attachment->post_status, - 'uploaded_to' => $attachment->post_parent, - 'date' => $attachment->post_date_gmt, - 'modified' => $attachment->post_modified_gmt, - 'menu_order' => $attachment->menu_order, - 'mime_type' => $attachment->post_mime_type, - 'type' => $type, - 'subtype' => $subtype, - 'icon' => wp_mime_type_icon( $attachment->ID ) + 'ID' => $attachment->ID, + 'id' => $attachment->ID, + 'title' => $attachment->post_title, + 'filename' => wp_basename( $attached_file ), + 'filesize' => 0, + 'url' => wp_get_attachment_url( $attachment->ID ), + 'link' => get_attachment_link( $attachment->ID ), + 'alt' => get_post_meta( $attachment->ID, '_wp_attachment_image_alt', true ), + 'author' => $attachment->post_author, + 'description' => $attachment->post_content, + 'caption' => $attachment->post_excerpt, + 'name' => $attachment->post_name, + 'status' => $attachment->post_status, + 'uploaded_to' => $attachment->post_parent, + 'date' => $attachment->post_date_gmt, + 'modified' => $attachment->post_modified_gmt, + 'menu_order' => $attachment->menu_order, + 'mime_type' => $attachment->post_mime_type, + 'type' => $type, + 'subtype' => $subtype, + 'icon' => wp_mime_type_icon( $attachment->ID ), ); - + // Append filesize data. - if( isset($meta['filesize']) ) { + if ( isset( $meta['filesize'] ) ) { $response['filesize'] = $meta['filesize']; - } elseif( file_exists($attached_file) ) { + } elseif ( file_exists( $attached_file ) ) { $response['filesize'] = filesize( $attached_file ); } - + // Restrict the loading of image "sizes". $sizes_id = 0; // Type specific logic. - switch( $type ) { + switch ( $type ) { case 'image': $sizes_id = $attachment->ID; - $src = wp_get_attachment_image_src( $attachment->ID, 'full' ); - $response['url'] = $src[0]; - $response['width'] = $src[1]; - $response['height'] = $src[2]; + $src = wp_get_attachment_image_src( $attachment->ID, 'full' ); + if ( $src ) { + $response['url'] = $src[0]; + $response['width'] = $src[1]; + $response['height'] = $src[2]; + } break; case 'video': - $response['width'] = acf_maybe_get( $meta, 'width', 0 ); + $response['width'] = acf_maybe_get( $meta, 'width', 0 ); $response['height'] = acf_maybe_get( $meta, 'height', 0 ); - if( $featured_id = get_post_thumbnail_id( $attachment->ID ) ) { + if ( $featured_id = get_post_thumbnail_id( $attachment->ID ) ) { $sizes_id = $featured_id; } break; case 'audio': - if( $featured_id = get_post_thumbnail_id( $attachment->ID ) ) { + if ( $featured_id = get_post_thumbnail_id( $attachment->ID ) ) { $sizes_id = $featured_id; - } + } break; } // Load array of image sizes. - if( $sizes_id ) { - $sizes = get_intermediate_image_sizes(); - $data = array(); - foreach( $sizes as $size ) { + if ( $sizes_id ) { + $sizes = get_intermediate_image_sizes(); + $sizes_data = array(); + foreach ( $sizes as $size ) { $src = wp_get_attachment_image_src( $sizes_id, $size ); - $data[ $size ] = $src[ 0 ]; - $data[ $size . '-width' ] = $src[ 1 ]; - $data[ $size . '-height' ] = $src[ 2 ]; + if ( $src ) { + $sizes_data[ $size ] = $src[0]; + $sizes_data[ $size . '-width' ] = $src[1]; + $sizes_data[ $size . '-height' ] = $src[2]; + } } - $response['sizes'] = $data; + $response['sizes'] = $sizes_data; } - + /** * Filters the attachment $response after it has been loaded. * - * @date 16/06/2020 - * @since 5.9.0 + * @date 16/06/2020 + * @since 5.9.0 * - * @param array $response Array of loaded attachment data. - * @param WP_Post $attachment Attachment object. - * @param array|false $meta Array of attachment meta data, or false if there is none. + * @param array $response Array of loaded attachment data. + * @param WP_Post $attachment Attachment object. + * @param array|false $meta Array of attachment meta data, or false if there is none. */ - return apply_filters( "acf/load_attachment", $response, $attachment, $meta ); + return apply_filters( 'acf/load_attachment', $response, $attachment, $meta ); } -/* -* acf_get_truncated -* -* This function will truncate and return a string -* -* @type function -* @date 8/08/2014 -* @since 5.0.0 -* -* @param $text (string) -* @param $length (int) -* @return (string) -*/ - +/** + * This function will truncate and return a string + * + * @date 8/08/2014 + * @since 5.0.0 + * + * @param string $text The text to truncate. + * @param int $length The number of characters to allow in the string. + * + * @return string + */ function acf_get_truncated( $text, $length = 64 ) { - - // vars - $text = trim($text); - $the_length = strlen( $text ); - - - // cut - $return = substr( $text, 0, ($length - 3) ); - - - // ... - if( $the_length > ($length - 3) ) { - + $text = trim( $text ); + $the_length = function_exists( 'mb_strlen' ) ? mb_strlen( $text ) : strlen( $text ); + + $cut_length = $length - 3; + $return = function_exists( 'mb_substr' ) ? mb_substr( $text, 0, $cut_length ) : substr( $text, 0, $cut_length ); + + if ( $the_length > $cut_length ) { $return .= '...'; - } - - - // return + return $return; - -} - - -/* -* acf_get_current_url -* -* This function will return the current URL. -* -* @date 23/01/2015 -* @since 5.1.5 -* -* @param void -* @return string -*/ - -function acf_get_current_url() { - return ( is_ssl() ? 'https' : 'http' ) . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; } /* @@ -3297,26 +3186,25 @@ function acf_get_current_url() { * * This function will return true if the current user can administrate the ACF field groups * -* @type function -* @date 9/02/2015 -* @since 5.1.5 +* @type function +* @date 9/02/2015 +* @since 5.1.5 * -* @param $post_id (int) -* @return $post_id (int) +* @param $post_id (int) +* @return $post_id (int) */ function acf_current_user_can_admin() { - - if( acf_get_setting('show_admin') && current_user_can(acf_get_setting('capability')) ) { - + + if ( acf_get_setting( 'show_admin' ) && current_user_can( acf_get_setting( 'capability' ) ) ) { + return true; - + } - - + // return return false; - + } @@ -3325,53 +3213,48 @@ function acf_current_user_can_admin() { * * This function will return a numeric value of bytes for a given filesize string * -* @type function -* @date 18/02/2015 -* @since 5.1.5 +* @type function +* @date 18/02/2015 +* @since 5.1.5 * -* @param $size (mixed) -* @return (int) +* @param $size (mixed) +* @return (int) */ function acf_get_filesize( $size = 1 ) { - + // vars - $unit = 'MB'; + $unit = 'MB'; $units = array( 'TB' => 4, 'GB' => 3, 'MB' => 2, 'KB' => 1, ); - - + // look for $unit within the $size parameter (123 KB) - if( is_string($size) ) { - + if ( is_string( $size ) ) { + // vars - $custom = strtoupper( substr($size, -2) ); - - foreach( $units as $k => $v ) { - - if( $custom === $k ) { - + $custom = strtoupper( substr( $size, -2 ) ); + + foreach ( $units as $k => $v ) { + + if ( $custom === $k ) { + $unit = $k; - $size = substr($size, 0, -2); - + $size = substr( $size, 0, -2 ); + } - } - } - - + // calc bytes - $bytes = floatval($size) * pow(1024, $units[$unit]); - - + $bytes = floatval( $size ) * pow( 1024, $units[ $unit ] ); + // return return $bytes; - + } @@ -3380,20 +3263,19 @@ function acf_get_filesize( $size = 1 ) { * * This function will return a formatted string containing the filesize and unit * -* @type function -* @date 18/02/2015 -* @since 5.1.5 +* @type function +* @date 18/02/2015 +* @since 5.1.5 * -* @param $size (mixed) -* @return (int) +* @param $size (mixed) +* @return (int) */ function acf_format_filesize( $size = 1 ) { - + // convert $bytes = acf_get_filesize( $size ); - - + // vars $units = array( 'TB' => 4, @@ -3401,25 +3283,22 @@ function acf_format_filesize( $size = 1 ) { 'MB' => 2, 'KB' => 1, ); - - + // loop through units - foreach( $units as $k => $v ) { - - $result = $bytes / pow(1024, $v); - - if( $result >= 1 ) { - + foreach ( $units as $k => $v ) { + + $result = $bytes / pow( 1024, $v ); + + if ( $result >= 1 ) { + return $result . ' ' . $k; - + } - } - - + // return return $bytes . ' B'; - + } @@ -3428,282 +3307,219 @@ function acf_format_filesize( $size = 1 ) { * * This function will replace old terms with new split term ids * -* @type function -* @date 27/02/2015 -* @since 5.1.5 +* @type function +* @date 27/02/2015 +* @since 5.1.5 * -* @param $terms (int|array) -* @param $taxonomy (string) -* @return $terms +* @param $terms (int|array) +* @param $taxonomy (string) +* @return $terms */ function acf_get_valid_terms( $terms = false, $taxonomy = 'category' ) { - + // force into array - $terms = acf_get_array($terms); - - + $terms = acf_get_array( $terms ); + // force ints - $terms = array_map('intval', $terms); - - + $terms = array_map( 'intval', $terms ); + // bail early if function does not yet exist or - if( !function_exists('wp_get_split_term') || empty($terms) ) { - + if ( ! function_exists( 'wp_get_split_term' ) || empty( $terms ) ) { + return $terms; - + } - - + // attempt to find new terms - foreach( $terms as $i => $term_id ) { - - $new_term_id = wp_get_split_term($term_id, $taxonomy); - - if( $new_term_id ) { - + foreach ( $terms as $i => $term_id ) { + + $new_term_id = wp_get_split_term( $term_id, $taxonomy ); + + if ( $new_term_id ) { + $terms[ $i ] = $new_term_id; - + } - } - - + // return return $terms; - -} - - -/* -* acf_esc_html_deep -* -* Navigates through an array and escapes html from the values. -* -* @type function -* @date 10/06/2015 -* @since 5.2.7 -* -* @param $value (mixed) -* @return $value -*/ - -/* -function acf_esc_html_deep( $value ) { - - // array - if( is_array($value) ) { - - $value = array_map('acf_esc_html_deep', $value); - - // object - } elseif( is_object($value) ) { - - $vars = get_object_vars( $value ); - - foreach( $vars as $k => $v ) { - - $value->{$k} = acf_esc_html_deep( $v ); - - } - - // string - } elseif( is_string($value) ) { - - $value = esc_html($value); - - } - - - // return - return $value; } -*/ /* * acf_validate_attachment * -* This function will validate an attachment based on a field's resrictions and return an array of errors +* This function will validate an attachment based on a field's restrictions and return an array of errors * -* @type function -* @date 3/07/2015 -* @since 5.2.3 +* @type function +* @date 3/07/2015 +* @since 5.2.3 * -* @param $attachment (array) attachment data. Cahnges based on context -* @param $field (array) field settings containing restrictions -* @param $context (string) $file is different when uploading / preparing -* @return $errors (array) +* @param $attachment (array) attachment data. Changes based on context +* @param $field (array) field settings containing restrictions +* @param $context (string) $file is different when uploading / preparing +* @return $errors (array) */ function acf_validate_attachment( $attachment, $field, $context = 'prepare' ) { - + // vars $errors = array(); - $file = array( - 'type' => '', - 'width' => 0, - 'height' => 0, - 'size' => 0 + $file = array( + 'type' => '', + 'width' => 0, + 'height' => 0, + 'size' => 0, ); - - + // upload - if( $context == 'upload' ) { - + if ( $context == 'upload' ) { + // vars - $file['type'] = pathinfo($attachment['name'], PATHINFO_EXTENSION); - $file['size'] = filesize($attachment['tmp_name']); - - if( strpos($attachment['type'], 'image') !== false ) { - - $size = getimagesize($attachment['tmp_name']); - $file['width'] = acf_maybe_get($size, 0); - $file['height'] = acf_maybe_get($size, 1); - + $file['type'] = pathinfo( $attachment['name'], PATHINFO_EXTENSION ); + $file['size'] = filesize( $attachment['tmp_name'] ); + + if ( strpos( $attachment['type'], 'image' ) !== false ) { + + $size = getimagesize( $attachment['tmp_name'] ); + $file['width'] = acf_maybe_get( $size, 0 ); + $file['height'] = acf_maybe_get( $size, 1 ); + } - - // prepare - } elseif( $context == 'prepare' ) { - - $file['type'] = pathinfo($attachment['url'], PATHINFO_EXTENSION); - $file['size'] = acf_maybe_get($attachment, 'filesizeInBytes', 0); - $file['width'] = acf_maybe_get($attachment, 'width', 0); - $file['height'] = acf_maybe_get($attachment, 'height', 0); - - // custom + + // prepare + } elseif ( $context == 'prepare' ) { + + $use_path = isset( $attachment['filename'] ) ? $attachment['filename'] : $attachment['url']; + $file['type'] = pathinfo( $use_path, PATHINFO_EXTENSION ); + $file['size'] = acf_maybe_get( $attachment, 'filesizeInBytes', 0 ); + $file['width'] = acf_maybe_get( $attachment, 'width', 0 ); + $file['height'] = acf_maybe_get( $attachment, 'height', 0 ); + + // custom } else { - - $file = array_merge($file, $attachment); - $file['type'] = pathinfo($attachment['url'], PATHINFO_EXTENSION); - + + $file = array_merge( $file, $attachment ); + $use_path = isset( $attachment['filename'] ) ? $attachment['filename'] : $attachment['url']; + $file['type'] = pathinfo( $use_path, PATHINFO_EXTENSION ); + } - - + // image - if( $file['width'] || $file['height'] ) { - + if ( $file['width'] || $file['height'] ) { + // width - $min_width = (int) acf_maybe_get($field, 'min_width', 0); - $max_width = (int) acf_maybe_get($field, 'max_width', 0); - - if( $file['width'] ) { - - if( $min_width && $file['width'] < $min_width ) { - + $min_width = (int) acf_maybe_get( $field, 'min_width', 0 ); + $max_width = (int) acf_maybe_get( $field, 'max_width', 0 ); + + if ( $file['width'] ) { + + if ( $min_width && $file['width'] < $min_width ) { + // min width - $errors['min_width'] = sprintf(__('Image width must be at least %dpx.', 'acf'), $min_width ); - - } elseif( $max_width && $file['width'] > $max_width ) { - + $errors['min_width'] = sprintf( __( 'Image width must be at least %dpx.', 'acf' ), $min_width ); + + } elseif ( $max_width && $file['width'] > $max_width ) { + // min width - $errors['max_width'] = sprintf(__('Image width must not exceed %dpx.', 'acf'), $max_width ); - + $errors['max_width'] = sprintf( __( 'Image width must not exceed %dpx.', 'acf' ), $max_width ); + } - } - - + // height - $min_height = (int) acf_maybe_get($field, 'min_height', 0); - $max_height = (int) acf_maybe_get($field, 'max_height', 0); - - if( $file['height'] ) { - - if( $min_height && $file['height'] < $min_height ) { - + $min_height = (int) acf_maybe_get( $field, 'min_height', 0 ); + $max_height = (int) acf_maybe_get( $field, 'max_height', 0 ); + + if ( $file['height'] ) { + + if ( $min_height && $file['height'] < $min_height ) { + // min height - $errors['min_height'] = sprintf(__('Image height must be at least %dpx.', 'acf'), $min_height ); - - } elseif( $max_height && $file['height'] > $max_height ) { - + $errors['min_height'] = sprintf( __( 'Image height must be at least %dpx.', 'acf' ), $min_height ); + + } elseif ( $max_height && $file['height'] > $max_height ) { + // min height - $errors['max_height'] = sprintf(__('Image height must not exceed %dpx.', 'acf'), $max_height ); - + $errors['max_height'] = sprintf( __( 'Image height must not exceed %dpx.', 'acf' ), $max_height ); + } - } - } - - + // file size - if( $file['size'] ) { - - $min_size = acf_maybe_get($field, 'min_size', 0); - $max_size = acf_maybe_get($field, 'max_size', 0); - - if( $min_size && $file['size'] < acf_get_filesize($min_size) ) { - + if ( $file['size'] ) { + + $min_size = acf_maybe_get( $field, 'min_size', 0 ); + $max_size = acf_maybe_get( $field, 'max_size', 0 ); + + if ( $min_size && $file['size'] < acf_get_filesize( $min_size ) ) { + // min width - $errors['min_size'] = sprintf(__('File size must be at least %s.', 'acf'), acf_format_filesize($min_size) ); - - } elseif( $max_size && $file['size'] > acf_get_filesize($max_size) ) { - + $errors['min_size'] = sprintf( __( 'File size must be at least %s.', 'acf' ), acf_format_filesize( $min_size ) ); + + } elseif ( $max_size && $file['size'] > acf_get_filesize( $max_size ) ) { + // min width - $errors['max_size'] = sprintf(__('File size must not exceed %s.', 'acf'), acf_format_filesize($max_size) ); - + $errors['max_size'] = sprintf( __( 'File size must not exceed %s.', 'acf' ), acf_format_filesize( $max_size ) ); + } - } - - + // file type - if( $file['type'] ) { - - $mime_types = acf_maybe_get($field, 'mime_types', ''); - + if ( $file['type'] ) { + + $mime_types = acf_maybe_get( $field, 'mime_types', '' ); + // lower case - $file['type'] = strtolower($file['type']); - $mime_types = strtolower($mime_types); - - + $file['type'] = strtolower( $file['type'] ); + $mime_types = strtolower( $mime_types ); + // explode - $mime_types = str_replace(array(' ', '.'), '', $mime_types); - $mime_types = explode(',', $mime_types); // split pieces - $mime_types = array_filter($mime_types); // remove empty pieces - - if( !empty($mime_types) && !in_array($file['type'], $mime_types) ) { - + $mime_types = str_replace( array( ' ', '.' ), '', $mime_types ); + $mime_types = explode( ',', $mime_types ); // split pieces + $mime_types = array_filter( $mime_types ); // remove empty pieces + + if ( ! empty( $mime_types ) && ! in_array( $file['type'], $mime_types ) ) { + // glue together last 2 types - if( count($mime_types) > 1 ) { - - $last1 = array_pop($mime_types); - $last2 = array_pop($mime_types); - - $mime_types[] = $last2 . ' ' . __('or', 'acf') . ' ' . $last1; - + if ( count( $mime_types ) > 1 ) { + + $last1 = array_pop( $mime_types ); + $last2 = array_pop( $mime_types ); + + $mime_types[] = $last2 . ' ' . __( 'or', 'acf' ) . ' ' . $last1; + } - - $errors['mime_types'] = sprintf(__('File type must be %s.', 'acf'), implode(', ', $mime_types) ); - + + $errors['mime_types'] = sprintf( __( 'File type must be %s.', 'acf' ), implode( ', ', $mime_types ) ); + } - } - - + /** * Filters the errors for a file before it is uploaded or displayed in the media modal. * - * @date 3/07/2015 - * @since 5.2.3 + * @date 3/07/2015 + * @since 5.2.3 * - * @param array $errors An array of errors. - * @param array $file An array of data for a single file. - * @param array $attachment An array of attachment data which differs based on the context. - * @param array $field The field array. - * @param string $context The curent context (uploading, preparing) + * @param array $errors An array of errors. + * @param array $file An array of data for a single file. + * @param array $attachment An array of attachment data which differs based on the context. + * @param array $field The field array. + * @param string $context The curent context (uploading, preparing) */ - $errors = apply_filters( "acf/validate_attachment/type={$field['type']}", $errors, $file, $attachment, $field, $context ); - $errors = apply_filters( "acf/validate_attachment/name={$field['_name']}", $errors, $file, $attachment, $field, $context ); - $errors = apply_filters( "acf/validate_attachment/key={$field['key']}", $errors, $file, $attachment, $field, $context ); - $errors = apply_filters( "acf/validate_attachment", $errors, $file, $attachment, $field, $context ); - - + $errors = apply_filters( "acf/validate_attachment/type={$field['type']}", $errors, $file, $attachment, $field, $context ); + $errors = apply_filters( "acf/validate_attachment/name={$field['_name']}", $errors, $file, $attachment, $field, $context ); + $errors = apply_filters( "acf/validate_attachment/key={$field['key']}", $errors, $file, $attachment, $field, $context ); + $errors = apply_filters( 'acf/validate_attachment', $errors, $file, $attachment, $field, $context ); + // return return $errors; - + } @@ -3712,26 +3528,25 @@ function acf_validate_attachment( $attachment, $field, $context = 'prepare' ) { * * Dynamic logic for uploader setting * -* @type function -* @date 7/05/2015 -* @since 5.2.3 +* @type function +* @date 7/05/2015 +* @since 5.2.3 * -* @param $uploader (string) -* @return $uploader +* @param $uploader (string) +* @return $uploader */ -add_filter('acf/settings/uploader', '_acf_settings_uploader'); +add_filter( 'acf/settings/uploader', '_acf_settings_uploader' ); function _acf_settings_uploader( $uploader ) { - + // if can't upload files - if( !current_user_can('upload_files') ) { - + if ( ! current_user_can( 'upload_files' ) ) { + $uploader = 'basic'; - + } - - + // return return $uploader; } @@ -3742,37 +3557,37 @@ function _acf_settings_uploader( $uploader ) { * * description * -* @type function -* @date 7/12/2015 -* @since 5.3.2 +* @type function +* @date 7/12/2015 +* @since 5.3.2 * -* @param $post_id (int) -* @return $post_id (int) +* @param $post_id (int) +* @return $post_id (int) */ /* function acf_translate_keys( $array, $keys ) { - + // bail early if no keys if( empty($keys) ) return $array; - - + + // translate foreach( $keys as $k ) { - - // bail ealry if not exists + + // bail early if not exists if( !isset($array[ $k ]) ) continue; - - + + // translate $array[ $k ] = acf_translate( $array[ $k ] ); - + } - - + + // return return $array; - + } */ @@ -3783,61 +3598,63 @@ function acf_translate_keys( $array, $keys ) { * This function will translate a string using the new 'l10n_textdomain' setting * Also works for arrays which is great for fields - select -> choices * -* @type function -* @date 4/12/2015 -* @since 5.3.2 +* @type function +* @date 4/12/2015 +* @since 5.3.2 * -* @param $string (mixed) string or array containins strings to be translated -* @return $string +* @param $string (mixed) string or array containins strings to be translated +* @return $string */ function acf_translate( $string ) { - + // vars - $l10n = acf_get_setting('l10n'); - $textdomain = acf_get_setting('l10n_textdomain'); - - + $l10n = acf_get_setting( 'l10n' ); + $textdomain = acf_get_setting( 'l10n_textdomain' ); + // bail early if not enabled - if( !$l10n ) return $string; - - + if ( ! $l10n ) { + return $string; + } + // bail early if no textdomain - if( !$textdomain ) return $string; - - + if ( ! $textdomain ) { + return $string; + } + // is array - if( is_array($string) ) { - - return array_map('acf_translate', $string); - + if ( is_array( $string ) ) { + + return array_map( 'acf_translate', $string ); + } - - + // bail early if not string - if( !is_string($string) ) return $string; - - - // bail early if empty - if( $string === '' ) return $string; - - - // allow for var_export export - if( acf_get_setting('l10n_var_export') ){ - - // bail early if already translated - if( substr($string, 0, 7) === '!!__(!!' ) return $string; - - - // return - return "!!__(!!'" . $string . "!!', !!'" . $textdomain . "!!')!!"; - + if ( ! is_string( $string ) ) { + return $string; } - - + + // bail early if empty + if ( $string === '' ) { + return $string; + } + + // allow for var_export export + if ( acf_get_setting( 'l10n_var_export' ) ) { + + // bail early if already translated + if ( substr( $string, 0, 7 ) === '!!__(!!' ) { + return $string; + } + + // return + return "!!__(!!'" . $string . "!!', !!'" . $textdomain . "!!')!!"; + + } + // vars return __( $string, $textdomain ); - + } @@ -3846,29 +3663,29 @@ function acf_translate( $string ) { * * This function will determine if the action has already run before adding / calling the function * -* @type function -* @date 13/01/2016 -* @since 5.3.2 +* @type function +* @date 13/01/2016 +* @since 5.3.2 * -* @param $post_id (int) -* @return $post_id (int) +* @param $post_id (int) +* @return $post_id (int) */ function acf_maybe_add_action( $tag, $function_to_add, $priority = 10, $accepted_args = 1 ) { - + // if action has already run, execute it // - if currently doing action, allow $tag to be added as per usual to allow $priority ordering needed for 3rd party asset compatibility - if( did_action($tag) && !doing_action($tag) ) { - + if ( did_action( $tag ) && ! doing_action( $tag ) ) { + call_user_func( $function_to_add ); - - // if action has not yet run, add it + + // if action has not yet run, add it } else { - + add_action( $tag, $function_to_add, $priority, $accepted_args ); - + } - + } @@ -3877,41 +3694,37 @@ function acf_maybe_add_action( $tag, $function_to_add, $priority = 10, $accepted * * This function will return true if the field's row is collapsed * -* @type function -* @date 2/03/2016 -* @since 5.3.2 +* @type function +* @date 2/03/2016 +* @since 5.3.2 * -* @param $post_id (int) -* @return $post_id (int) +* @param $post_id (int) +* @return $post_id (int) */ function acf_is_row_collapsed( $field_key = '', $row_index = 0 ) { - + // collapsed - $collapsed = acf_get_user_setting('collapsed_' . $field_key, ''); - - + $collapsed = acf_get_user_setting( 'collapsed_' . $field_key, '' ); + // cookie fallback ( version < 5.3.2 ) - if( $collapsed === '' ) { - - $collapsed = acf_extract_var($_COOKIE, "acf_collapsed_{$field_key}", ''); - $collapsed = str_replace('|', ',', $collapsed); - - + if ( $collapsed === '' ) { + + $collapsed = acf_extract_var( $_COOKIE, "acf_collapsed_{$field_key}", '' ); + $collapsed = str_replace( '|', ',', $collapsed ); + // update acf_update_user_setting( 'collapsed_' . $field_key, $collapsed ); - + } - - + // explode - $collapsed = explode(',', $collapsed); - $collapsed = array_filter($collapsed, 'is_numeric'); - - + $collapsed = explode( ',', $collapsed ); + $collapsed = array_filter( $collapsed, 'is_numeric' ); + // collapsed class - return in_array($row_index, $collapsed); - + return in_array( $row_index, $collapsed ); + } @@ -3920,28 +3733,28 @@ function acf_is_row_collapsed( $field_key = '', $row_index = 0 ) { * * description * -* @type function -* @date 24/10/16 -* @since 5.5.0 +* @type function +* @date 24/10/16 +* @since 5.5.0 * -* @param $post_id (int) -* @return $post_id (int) +* @param $post_id (int) +* @return $post_id (int) */ function acf_get_attachment_image( $attachment_id = 0, $size = 'thumbnail' ) { - + // vars - $url = wp_get_attachment_image_src($attachment_id, 'thumbnail'); - $alt = get_post_meta($attachment_id, '_wp_attachment_image_alt', true); - - + $url = wp_get_attachment_image_src( $attachment_id, 'thumbnail' ); + $alt = get_post_meta( $attachment_id, '_wp_attachment_image_alt', true ); + // bail early if no url - if( !$url ) return ''; - - + if ( ! $url ) { + return ''; + } + // return $value = '' . $alt . ''; - + } @@ -3950,77 +3763,71 @@ function acf_get_attachment_image( $attachment_id = 0, $size = 'thumbnail' ) { * * This function will return a thumbail image url for a given post * -* @type function -* @date 3/05/2016 -* @since 5.3.8 +* @type function +* @date 3/05/2016 +* @since 5.3.8 * -* @param $post (obj) -* @param $size (mixed) -* @return (string) +* @param $post (obj) +* @param $size (mixed) +* @return (string) */ function acf_get_post_thumbnail( $post = null, $size = 'thumbnail' ) { - + // vars $data = array( - 'url' => '', - 'type' => '', - 'html' => '' + 'url' => '', + 'type' => '', + 'html' => '', ); - - + // post - $post = get_post($post); - - + $post = get_post( $post ); + // bail early if no post - if( !$post ) return $data; - - + if ( ! $post ) { + return $data; + } + // vars - $thumb_id = $post->ID; - $mime_type = acf_maybe_get(explode('/', $post->post_mime_type), 0); - - + $thumb_id = $post->ID; + $mime_type = acf_maybe_get( explode( '/', $post->post_mime_type ), 0 ); + // attachment - if( $post->post_type === 'attachment' ) { - + if ( $post->post_type === 'attachment' ) { + // change $thumb_id - if( $mime_type === 'audio' || $mime_type === 'video' ) { - - $thumb_id = get_post_thumbnail_id($post->ID); - + if ( $mime_type === 'audio' || $mime_type === 'video' ) { + + $thumb_id = get_post_thumbnail_id( $post->ID ); + } - - // post + + // post } else { - - $thumb_id = get_post_thumbnail_id($post->ID); - + + $thumb_id = get_post_thumbnail_id( $post->ID ); + } - - + // try url - $data['url'] = wp_get_attachment_image_src($thumb_id, $size); - $data['url'] = acf_maybe_get($data['url'], 0); - - + $data['url'] = wp_get_attachment_image_src( $thumb_id, $size ); + $data['url'] = acf_maybe_get( $data['url'], 0 ); + // default icon - if( !$data['url'] && $post->post_type === 'attachment' ) { - - $data['url'] = wp_mime_type_icon($post->ID); + if ( ! $data['url'] && $post->post_type === 'attachment' ) { + + $data['url'] = wp_mime_type_icon( $post->ID ); $data['type'] = 'icon'; - + } - - + // html $data['html'] = ''; - - + // return return $data; - + } /** @@ -4028,34 +3835,34 @@ function acf_get_post_thumbnail( $post = null, $size = 'thumbnail' ) { * * Returns the name of the current browser. * - * @date 17/01/2014 - * @since 5.0.0 + * @date 17/01/2014 + * @since 5.0.0 * - * @param void - * @return string + * @param void + * @return string */ function acf_get_browser() { - + // Check server var. - if( isset($_SERVER['HTTP_USER_AGENT']) ) { - $agent = $_SERVER['HTTP_USER_AGENT']; - + if ( isset( $_SERVER['HTTP_USER_AGENT'] ) ) { + $agent = sanitize_text_field( $_SERVER['HTTP_USER_AGENT'] ); + // Loop over search terms. $browsers = array( - 'Firefox' => 'firefox', - 'Trident' => 'msie', - 'MSIE' => 'msie', - 'Edge' => 'edge', - 'Chrome' => 'chrome', - 'Safari' => 'safari', + 'Firefox' => 'firefox', + 'Trident' => 'msie', + 'MSIE' => 'msie', + 'Edge' => 'edge', + 'Chrome' => 'chrome', + 'Safari' => 'safari', ); - foreach( $browsers as $k => $v ) { - if( strpos($agent, $k) !== false ) { + foreach ( $browsers as $k => $v ) { + if ( strpos( $agent, $k ) !== false ) { return $v; } } } - + // Return default. return ''; } @@ -4066,39 +3873,37 @@ function acf_get_browser() { * * This function will reutrn true if performing a wp ajax call * -* @type function -* @date 7/06/2016 -* @since 5.3.8 +* @type function +* @date 7/06/2016 +* @since 5.3.8 * -* @param n/a -* @return (boolean) +* @param n/a +* @return (boolean) */ function acf_is_ajax( $action = '' ) { - + // vars $is_ajax = false; - - + // check if is doing ajax - if( defined('DOING_AJAX') && DOING_AJAX ) { - + if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) { + $is_ajax = true; - + } - - + + // phpcs:disable WordPress.Security.NonceVerification.Missing // check $action - if( $action && acf_maybe_get($_POST, 'action') !== $action ) { - + if ( $action && acf_maybe_get( $_POST, 'action' ) !== $action ) { + // phpcs:enable WordPress.Security.NonceVerification.Missing $is_ajax = false; - + } - - + // return return $is_ajax; - + } @@ -4109,39 +3914,38 @@ function acf_is_ajax( $action = '' ) { * * This function will accept a date value and return it in a formatted string * -* @type function -* @date 16/06/2016 -* @since 5.3.8 +* @type function +* @date 16/06/2016 +* @since 5.3.8 * -* @param $value (string) -* @return $format (string) +* @param $value (string) +* @return $format (string) */ function acf_format_date( $value, $format ) { - + // bail early if no value - if( !$value ) return $value; - - + if ( ! $value ) { + return $value; + } + // vars $unixtimestamp = 0; - - + // numeric (either unix or YYYYMMDD) - if( is_numeric($value) && strlen($value) !== 8 ) { - + if ( is_numeric( $value ) && strlen( $value ) !== 8 ) { + $unixtimestamp = $value; - + } else { - - $unixtimestamp = strtotime($value); - + + $unixtimestamp = strtotime( $value ); + } - - + // return - return date_i18n($format, $unixtimestamp); - + return date_i18n( $format, $unixtimestamp ); + } /** @@ -4149,11 +3953,11 @@ function acf_format_date( $value, $format ) { * * Deletes the debug.log file. * - * @date 21/1/19 - * @since 5.7.10 + * @date 21/1/19 + * @since 5.7.10 * - * @param type $var Description. Default. - * @return type Description. + * @param type $var Description. Default. + * @return type Description. */ function acf_clear_log() { unlink( WP_CONTENT_DIR . '/debug.log' ); @@ -4164,53 +3968,53 @@ function acf_clear_log() { * * description * -* @type function -* @date 24/06/2016 -* @since 5.3.8 +* @type function +* @date 24/06/2016 +* @since 5.3.8 * -* @param $post_id (int) -* @return $post_id (int) +* @param $post_id (int) +* @return $post_id (int) */ function acf_log() { - + // vars $args = func_get_args(); - + // loop - foreach( $args as $i => $arg ) { - + foreach ( $args as $i => $arg ) { + // array | object - if( is_array($arg) || is_object($arg) ) { - $arg = print_r($arg, true); - - // bool - } elseif( is_bool($arg) ) { + if ( is_array( $arg ) || is_object( $arg ) ) { + $arg = print_r( $arg, true ); + + // bool + } elseif ( is_bool( $arg ) ) { $arg = 'bool(' . ( $arg ? 'true' : 'false' ) . ')'; } - + // update $args[ $i ] = $arg; } - + // log - error_log( implode(' ', $args) ); + error_log( implode( ' ', $args ) ); } /** -* acf_dev_log -* -* Used to log variables only if ACF_DEV is defined -* -* @date 25/8/18 -* @since 5.7.4 -* -* @param mixed -* @return void -*/ + * acf_dev_log + * + * Used to log variables only if ACF_DEV is defined + * + * @date 25/8/18 + * @since 5.7.4 + * + * @param mixed + * @return void + */ function acf_dev_log() { - if( defined('ACF_DEV') && ACF_DEV ) { - call_user_func_array('acf_log', func_get_args()); + if ( defined( 'ACF_DEV' ) && ACF_DEV ) { + call_user_func_array( 'acf_log', func_get_args() ); } } @@ -4219,20 +4023,20 @@ function acf_dev_log() { * * This function will tell ACF what task it is doing * -* @type function -* @date 28/06/2016 -* @since 5.3.8 +* @type function +* @date 28/06/2016 +* @since 5.3.8 * -* @param $event (string) -* @param context (string) -* @return n/a +* @param $event (string) +* @param context (string) +* @return n/a */ function acf_doing( $event = '', $context = '' ) { - + acf_update_setting( 'doing', $event ); acf_update_setting( 'doing_context', $context ); - + } @@ -4241,40 +4045,37 @@ function acf_doing( $event = '', $context = '' ) { * * This function can be used to state what ACF is doing, or to check * -* @type function -* @date 28/06/2016 -* @since 5.3.8 +* @type function +* @date 28/06/2016 +* @since 5.3.8 * -* @param $event (string) -* @param context (string) -* @return (boolean) +* @param $event (string) +* @param context (string) +* @return (boolean) */ function acf_is_doing( $event = '', $context = '' ) { - + // vars $doing = false; - - + // task - if( acf_get_setting('doing') === $event ) { - + if ( acf_get_setting( 'doing' ) === $event ) { + $doing = true; - + } - - + // context - if( $context && acf_get_setting('doing_context') !== $context ) { - + if ( $context && acf_get_setting( 'doing_context' ) !== $context ) { + $doing = false; - + } - - + // return return $doing; - + } @@ -4284,32 +4085,30 @@ function acf_is_doing( $event = '', $context = '' ) { * This function will return true if the ACF plugin is active * - May be included within a theme or other plugin * -* @type function -* @date 13/07/2016 -* @since 5.4.0 +* @type function +* @date 13/07/2016 +* @since 5.4.0 * -* @param $basename (int) -* @return $post_id (int) +* @param $basename (int) +* @return $post_id (int) */ function acf_is_plugin_active() { - + // vars - $basename = acf_get_setting('basename'); - - + $basename = acf_get_setting( 'basename' ); + // ensure is_plugin_active() exists (not on frontend) - if( !function_exists('is_plugin_active') ) { - - include_once( ABSPATH . 'wp-admin/includes/plugin.php' ); - + if ( ! function_exists( 'is_plugin_active' ) ) { + + include_once ABSPATH . 'wp-admin/includes/plugin.php'; + } - - + // return - return is_plugin_active($basename); - + return is_plugin_active( $basename ); + } /* @@ -4317,59 +4116,56 @@ function acf_is_plugin_active() { * * This function will print JSON data for a Select2 AJAX query * -* @type function -* @date 19/07/2016 -* @since 5.4.0 +* @type function +* @date 19/07/2016 +* @since 5.4.0 * -* @param $response (array) -* @return n/a +* @param $response (array) +* @return n/a */ function acf_send_ajax_results( $response ) { - + // validate - $response = wp_parse_args($response, array( - 'results' => array(), - 'more' => false, - 'limit' => 0 - )); - - + $response = wp_parse_args( + $response, + array( + 'results' => array(), + 'more' => false, + 'limit' => 0, + ) + ); + // limit - if( $response['limit'] && $response['results']) { - + if ( $response['limit'] && $response['results'] ) { + // vars $total = 0; - - foreach( $response['results'] as $result ) { - + + foreach ( $response['results'] as $result ) { + // parent $total++; - - + // children - if( !empty($result['children']) ) { - + if ( ! empty( $result['children'] ) ) { + $total += count( $result['children'] ); - + } - } - - + // calc - if( $total >= $response['limit'] ) { - + if ( $total >= $response['limit'] ) { + $response['more'] = true; - + } - } - - + // return wp_send_json( $response ); - + } @@ -4378,33 +4174,34 @@ function acf_send_ajax_results( $response ) { * * This function will return true if the array contains only numeric keys * -* @source http://stackoverflow.com/questions/173400/how-to-check-if-php-array-is-associative-or-sequential -* @type function -* @date 9/09/2016 -* @since 5.4.0 +* @source http://stackoverflow.com/questions/173400/how-to-check-if-php-array-is-associative-or-sequential +* @type function +* @date 9/09/2016 +* @since 5.4.0 * -* @param $array (array) -* @return (boolean) +* @param $array (array) +* @return (boolean) */ function acf_is_sequential_array( $array ) { - - // bail ealry if not array - if( !is_array($array) ) return false; - - - // loop - foreach( $array as $key => $value ) { - - // bail ealry if is string - if( is_string($key) ) return false; - + + // bail early if not array + if ( ! is_array( $array ) ) { + return false; } - - + + // loop + foreach ( $array as $key => $value ) { + + // bail early if is string + if ( is_string( $key ) ) { + return false; + } + } + // return return true; - + } @@ -4413,33 +4210,34 @@ function acf_is_sequential_array( $array ) { * * This function will return true if the array contains one or more string keys * -* @source http://stackoverflow.com/questions/173400/how-to-check-if-php-array-is-associative-or-sequential -* @type function -* @date 9/09/2016 -* @since 5.4.0 +* @source http://stackoverflow.com/questions/173400/how-to-check-if-php-array-is-associative-or-sequential +* @type function +* @date 9/09/2016 +* @since 5.4.0 * -* @param $array (array) -* @return (boolean) +* @param $array (array) +* @return (boolean) */ function acf_is_associative_array( $array ) { - - // bail ealry if not array - if( !is_array($array) ) return false; - - - // loop - foreach( $array as $key => $value ) { - - // bail ealry if is string - if( is_string($key) ) return true; - + + // bail early if not array + if ( ! is_array( $array ) ) { + return false; } - - + + // loop + foreach ( $array as $key => $value ) { + + // bail early if is string + if ( is_string( $key ) ) { + return true; + } + } + // return return false; - + } @@ -4449,33 +4247,31 @@ function acf_is_associative_array( $array ) { * This function will add a prefix to all array keys * Useful to preserve numeric keys when performing array_multisort * -* @type function -* @date 15/09/2016 -* @since 5.4.0 +* @type function +* @date 15/09/2016 +* @since 5.4.0 * -* @param $array (array) -* @param $prefix (string) -* @return (array) +* @param $array (array) +* @param $prefix (string) +* @return (array) */ function acf_add_array_key_prefix( $array, $prefix ) { - + // vars $array2 = array(); - - + // loop - foreach( $array as $k => $v ) { - - $k2 = $prefix . $k; - $array2[ $k2 ] = $v; - + foreach ( $array as $k => $v ) { + + $k2 = $prefix . $k; + $array2[ $k2 ] = $v; + } - - + // return return $array2; - + } @@ -4485,56 +4281,54 @@ function acf_add_array_key_prefix( $array, $prefix ) { * This function will remove a prefix to all array keys * Useful to preserve numeric keys when performing array_multisort * -* @type function -* @date 15/09/2016 -* @since 5.4.0 +* @type function +* @date 15/09/2016 +* @since 5.4.0 * -* @param $array (array) -* @param $prefix (string) -* @return (array) +* @param $array (array) +* @param $prefix (string) +* @return (array) */ function acf_remove_array_key_prefix( $array, $prefix ) { - + // vars $array2 = array(); - $l = strlen($prefix); - - + $l = strlen( $prefix ); + // loop - foreach( $array as $k => $v ) { - - $k2 = (substr($k, 0, $l) === $prefix) ? substr($k, $l) : $k; - $array2[ $k2 ] = $v; - + foreach ( $array as $k => $v ) { + + $k2 = ( substr( $k, 0, $l ) === $prefix ) ? substr( $k, $l ) : $k; + $array2[ $k2 ] = $v; + } - - + // return return $array2; - + } /* * acf_strip_protocol * -* This function will remove the proticol from a url -* Used to allow licences to remain active if a site is switched to https +* This function will remove the proticol from a url +* Used to allow licenses to remain active if a site is switched to https * -* @type function -* @date 10/01/2017 -* @since 5.5.4 -* @author Aaron +* @type function +* @date 10/01/2017 +* @since 5.5.4 +* @author Aaron * -* @param $url (string) -* @return (string) +* @param $url (string) +* @return (string) */ function acf_strip_protocol( $url ) { - - // strip the protical - return str_replace(array('http://','https://'), '', $url); + + // strip the protical + return str_replace( array( 'http://', 'https://' ), '', $url ); } @@ -4542,57 +4336,62 @@ function acf_strip_protocol( $url ) { /* * acf_connect_attachment_to_post * -* This function will connect an attacment (image etc) to the post +* This function will connect an attacment (image etc) to the post * Used to connect attachements uploaded directly to media that have not been attaced to a post * -* @type function -* @date 11/01/2017 -* @since 5.8.0 Added filter to prevent connection. -* @since 5.5.4 +* @type function +* @date 11/01/2017 +* @since 5.8.0 Added filter to prevent connection. +* @since 5.5.4 * -* @param int $attachment_id The attachment ID. -* @param int $post_id The post ID. -* @return bool True if attachment was connected. +* @param int $attachment_id The attachment ID. +* @param int $post_id The post ID. +* @return bool True if attachment was connected. */ function acf_connect_attachment_to_post( $attachment_id = 0, $post_id = 0 ) { - - // Bail ealry if $attachment_id is not valid. - if( !$attachment_id || !is_numeric($attachment_id) ) { + + // bail early if $attachment_id is not valid. + if ( ! $attachment_id || ! is_numeric( $attachment_id ) ) { return false; } - - // Bail ealry if $post_id is not valid. - if( !$post_id || !is_numeric($post_id) ) { + + // bail early if $post_id is not valid. + if ( ! $post_id || ! is_numeric( $post_id ) ) { return false; } - + /** * Filters whether or not to connect the attachment. * - * @date 8/11/18 - * @since 5.8.0 + * @date 8/11/18 + * @since 5.8.0 * - * @param bool $bool Returning false will prevent the connection. Default true. - * @param int $attachment_id The attachment ID. - * @param int $post_id The post ID. + * @param bool $bool Returning false will prevent the connection. Default true. + * @param int $attachment_id The attachment ID. + * @param int $post_id The post ID. */ - if( !apply_filters('acf/connect_attachment_to_post', true, $attachment_id, $post_id) ) { + if ( ! apply_filters( 'acf/connect_attachment_to_post', true, $attachment_id, $post_id ) ) { return false; } - - // vars + + // vars $post = get_post( $attachment_id ); - + // Check if is valid post. - if( $post && $post->post_type == 'attachment' && $post->post_parent == 0 ) { - + if ( $post && $post->post_type == 'attachment' && $post->post_parent == 0 ) { + // update - wp_update_post( array('ID' => $post->ID, 'post_parent' => $post_id) ); - + wp_update_post( + array( + 'ID' => $post->ID, + 'post_parent' => $post_id, + ) + ); + // return return true; } - + // return return true; } @@ -4604,36 +4403,34 @@ function acf_connect_attachment_to_post( $attachment_id = 0, $post_id = 0 ) { * This function will encrypt a string using PHP * https://bhoover.com/using-php-openssl_encrypt-openssl_decrypt-encrypt-decrypt-data/ * -* @type function -* @date 27/2/17 -* @since 5.5.8 +* @type function +* @date 27/2/17 +* @since 5.5.8 * -* @param $data (string) -* @return (string) +* @param $data (string) +* @return (string) */ function acf_encrypt( $data = '' ) { - - // bail ealry if no encrypt function - if( !function_exists('openssl_encrypt') ) return base64_encode($data); - - + + // bail early if no encrypt function + if ( ! function_exists( 'openssl_encrypt' ) ) { + return base64_encode( $data ); + } + // generate a key - $key = wp_hash('acf_encrypt'); - - - // Generate an initialization vector - $iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('aes-256-cbc')); - - - // Encrypt the data using AES 256 encryption in CBC mode using our encryption key and initialization vector. - $encrypted_data = openssl_encrypt($data, 'aes-256-cbc', $key, 0, $iv); - - - // The $iv is just as important as the key for decrypting, so save it with our encrypted data using a unique separator (::) - return base64_encode($encrypted_data . '::' . $iv); - + $key = wp_hash( 'acf_encrypt' ); + + // Generate an initialization vector + $iv = openssl_random_pseudo_bytes( openssl_cipher_iv_length( 'aes-256-cbc' ) ); + + // Encrypt the data using AES 256 encryption in CBC mode using our encryption key and initialization vector. + $encrypted_data = openssl_encrypt( $data, 'aes-256-cbc', $key, 0, $iv ); + + // The $iv is just as important as the key for decrypting, so save it with our encrypted data using a unique separator (::) + return base64_encode( $encrypted_data . '::' . $iv ); + } @@ -4643,232 +4440,237 @@ function acf_encrypt( $data = '' ) { * This function will decrypt an encrypted string using PHP * https://bhoover.com/using-php-openssl_encrypt-openssl_decrypt-encrypt-decrypt-data/ * -* @type function -* @date 27/2/17 -* @since 5.5.8 +* @type function +* @date 27/2/17 +* @since 5.5.8 * -* @param $data (string) -* @return (string) +* @param $data (string) +* @return (string) */ function acf_decrypt( $data = '' ) { - - // bail ealry if no decrypt function - if( !function_exists('openssl_decrypt') ) return base64_decode($data); - - + + // bail early if no decrypt function + if ( ! function_exists( 'openssl_decrypt' ) ) { + return base64_decode( $data ); + } + // generate a key - $key = wp_hash('acf_encrypt'); - - - // To decrypt, split the encrypted data from our IV - our unique separator used was "::" - list($encrypted_data, $iv) = explode('::', base64_decode($data), 2); - - - // decrypt - return openssl_decrypt($encrypted_data, 'aes-256-cbc', $key, 0, $iv); - + $key = wp_hash( 'acf_encrypt' ); + + // To decrypt, split the encrypted data from our IV - our unique separator used was "::" + list($encrypted_data, $iv) = explode( '::', base64_decode( $data ), 2 ); + + // decrypt + return openssl_decrypt( $encrypted_data, 'aes-256-cbc', $key, 0, $iv ); + } /** -* acf_parse_markdown -* -* A very basic regex-based Markdown parser function based off [slimdown](https://gist.github.com/jbroadway/2836900). -* -* @date 6/8/18 -* @since 5.7.2 -* -* @param string $text The string to parse. -* @return string -*/ + * acf_parse_markdown + * + * A very basic regex-based Markdown parser function based off [slimdown](https://gist.github.com/jbroadway/2836900). + * + * @date 6/8/18 + * @since 5.7.2 + * + * @param string $text The string to parse. + * @return string + */ function acf_parse_markdown( $text = '' ) { - + // trim - $text = trim($text); - + $text = trim( $text ); + // rules - $rules = array ( - '/=== (.+?) ===/' => '

                                  $1

                                  ', // headings - '/== (.+?) ==/' => '

                                  $1

                                  ', // headings - '/= (.+?) =/' => '

                                  $1

                                  ', // headings - '/\[([^\[]+)\]\(([^\)]+)\)/' => '$1', // links - '/(\*\*)(.*?)\1/' => '$2', // bold - '/(\*)(.*?)\1/' => '$2', // intalic - '/`(.*?)`/' => '$1', // inline code - '/\n\*(.*)/' => "\n
                                    \n\t
                                  • $1
                                  • \n
                                  ", // ul lists - '/\n[0-9]+\.(.*)/' => "\n
                                    \n\t
                                  1. $1
                                  2. \n
                                  ", // ol lists - '/<\/ul>\s?
                                    /' => '', // fix extra ul - '/<\/ol>\s?
                                      /' => '', // fix extra ol + $rules = array( + '/=== (.+?) ===/' => '

                                      $1

                                      ', // headings + '/== (.+?) ==/' => '

                                      $1

                                      ', // headings + '/= (.+?) =/' => '

                                      $1

                                      ', // headings + '/\[([^\[]+)\]\(([^\)]+)\)/' => '$1', // links + '/(\*\*)(.*?)\1/' => '$2', // bold + '/(\*)(.*?)\1/' => '$2', // intalic + '/`(.*?)`/' => '$1', // inline code + '/\n\*(.*)/' => "\n
                                        \n\t
                                      • $1
                                      • \n
                                      ", // ul lists + '/\n[0-9]+\.(.*)/' => "\n
                                        \n\t
                                      1. $1
                                      2. \n
                                      ", // ol lists + '/<\/ul>\s?
                                        /' => '', // fix extra ul + '/<\/ol>\s?
                                          /' => '', // fix extra ol ); - foreach( $rules as $k => $v ) { - $text = preg_replace($k, $v, $text); + foreach ( $rules as $k => $v ) { + $text = preg_replace( $k, $v, $text ); } - + // autop - $text = wpautop($text); - + $text = wpautop( $text ); + // return return $text; } /** -* acf_get_sites -* -* Returns an array of sites for a network. -* -* @date 29/08/2016 -* @since 5.4.0 -* -* @param void -* @return array -*/ + * acf_get_sites + * + * Returns an array of sites for a network. + * + * @date 29/08/2016 + * @since 5.4.0 + * + * @param void + * @return array + */ function acf_get_sites() { $results = array(); - $sites = get_sites( array( 'number' => 0 ) ); - if( $sites ) { - foreach( $sites as $site ) { - $results[] = get_site( $site )->to_array(); - } + $sites = get_sites( array( 'number' => 0 ) ); + if ( $sites ) { + foreach ( $sites as $site ) { + $results[] = get_site( $site )->to_array(); + } } return $results; } /** -* acf_convert_rules_to_groups -* -* Converts an array of rules from ACF4 to an array of groups for ACF5 -* -* @date 25/8/18 -* @since 5.7.4 -* -* @param array $rules An array of rules. -* @param string $anyorall The anyorall setting used in ACF4. Defaults to 'any'. -* @return array -*/ + * acf_convert_rules_to_groups + * + * Converts an array of rules from ACF4 to an array of groups for ACF5 + * + * @date 25/8/18 + * @since 5.7.4 + * + * @param array $rules An array of rules. + * @param string $anyorall The anyorall setting used in ACF4. Defaults to 'any'. + * @return array + */ function acf_convert_rules_to_groups( $rules, $anyorall = 'any' ) { - + // vars $groups = array(); - $index = 0; - + $index = 0; + // loop - foreach( $rules as $rule ) { - + foreach ( $rules as $rule ) { + // extract vars $group = acf_extract_var( $rule, 'group_no' ); $order = acf_extract_var( $rule, 'order_no' ); - + // calculate group if not defined - if( $group === null ) { + if ( $group === null ) { $group = $index; - + // use $anyorall to determine if a new group is needed - if( $anyorall == 'any' ) { + if ( $anyorall == 'any' ) { $index++; } } - + // calculate order if not defined - if( $order === null ) { - $order = isset($groups[ $group ]) ? count($groups[ $group ]) : 0; + if ( $order === null ) { + $order = isset( $groups[ $group ] ) ? count( $groups[ $group ] ) : 0; } - + // append to group $groups[ $group ][ $order ] = $rule; - + // sort groups ksort( $groups[ $group ] ); } - + // sort groups ksort( $groups ); - + // return return $groups; } /** -* acf_register_ajax -* -* Regsiters an ajax callback. -* -* @date 5/10/18 -* @since 5.7.7 -* -* @param string $name The ajax action name. -* @param array $callback The callback function or array. -* @param bool $public Whether to allow access to non logged in users. -* @return void -*/ + * acf_register_ajax + * + * Regsiters an ajax callback. + * + * @date 5/10/18 + * @since 5.7.7 + * + * @param string $name The ajax action name. + * @param array $callback The callback function or array. + * @param bool $public Whether to allow access to non logged in users. + * @return void + */ function acf_register_ajax( $name = '', $callback = false, $public = false ) { - + // vars $action = "acf/ajax/$name"; - + // add action for logged-in users add_action( "wp_ajax_$action", $callback ); - + // add action for non logged-in users - if( $public ) { + if ( $public ) { add_action( "wp_ajax_nopriv_$action", $callback ); } } /** -* acf_str_camel_case -* -* Converts a string into camelCase. -* Thanks to https://stackoverflow.com/questions/31274782/convert-array-keys-from-underscore-case-to-camelcase-recursively -* -* @date 24/10/18 -* @since 5.8.0 -* -* @param string $string The string ot convert. -* @return string -*/ + * acf_str_camel_case + * + * Converts a string into camelCase. + * Thanks to https://stackoverflow.com/questions/31274782/convert-array-keys-from-underscore-case-to-camelcase-recursively + * + * @date 24/10/18 + * @since 5.8.0 + * + * @param string $string The string ot convert. + * @return string + */ function acf_str_camel_case( $string = '' ) { - return lcfirst(str_replace(' ', '', ucwords(str_replace('_', ' ', $string)))); + return lcfirst( str_replace( ' ', '', ucwords( str_replace( '_', ' ', $string ) ) ) ); } /** -* acf_array_camel_case -* -* Converts all aray keys to camelCase. -* -* @date 24/10/18 -* @since 5.8.0 -* -* @param array $array The array to convert. -* @return array -*/ + * acf_array_camel_case + * + * Converts all aray keys to camelCase. + * + * @date 24/10/18 + * @since 5.8.0 + * + * @param array $array The array to convert. + * @return array + */ function acf_array_camel_case( $array = array() ) { $array2 = array(); - foreach( $array as $k => $v ) { - $array2[ acf_str_camel_case($k) ] = $v; + foreach ( $array as $k => $v ) { + $array2[ acf_str_camel_case( $k ) ] = $v; } return $array2; } /** - * acf_is_block_editor + * Returns true if the current screen is using the block editor. * - * Returns true if the current screen uses the block editor. + * @date 13/12/18 + * @since 5.8.0 * - * @date 13/12/18 - * @since 5.8.0 - * - * @param void - * @return bool + * @return bool */ function acf_is_block_editor() { - if( function_exists('get_current_screen') ) { + if ( function_exists( 'get_current_screen' ) ) { $screen = get_current_screen(); - if( method_exists($screen, 'is_block_editor') ) { + if ( $screen && method_exists( $screen, 'is_block_editor' ) ) { return $screen->is_block_editor(); } } return false; } -?> \ No newline at end of file +/** + * Return an array of the WordPress reserved terms + * + * @since 6.1 + * + * @return array The WordPress reserved terms list. + */ +function acf_get_wp_reserved_terms() { + return array( 'action', 'attachment', 'attachment_id', 'author', 'author_name', 'calendar', 'cat', 'category', 'category__and', 'category__in', 'category__not_in', 'category_name', 'comments_per_page', 'comments_popup', 'custom', 'customize_messenger_channel', 'customized', 'cpage', 'day', 'debug', 'embed', 'error', 'exact', 'feed', 'fields', 'hour', 'link_category', 'm', 'minute', 'monthnum', 'more', 'name', 'nav_menu', 'nonce', 'nopaging', 'offset', 'order', 'orderby', 'p', 'page', 'page_id', 'paged', 'pagename', 'pb', 'perm', 'post', 'post__in', 'post__not_in', 'post_format', 'post_mime_type', 'post_status', 'post_tag', 'post_type', 'posts', 'posts_per_archive_page', 'posts_per_page', 'preview', 'robots', 's', 'search', 'second', 'sentence', 'showposts', 'static', 'status', 'subpost', 'subpost_id', 'tag', 'tag__and', 'tag__in', 'tag__not_in', 'tag_id', 'tag_slug__and', 'tag_slug__in', 'taxonomy', 'tb', 'term', 'terms', 'theme', 'title', 'type', 'types', 'w', 'withcomments', 'withoutcomments', 'year' ); +} diff --git a/includes/api/api-template.php b/includes/api/api-template.php index 7a4dea7..7ac9bfe 100644 --- a/includes/api/api-template.php +++ b/includes/api/api-template.php @@ -1,150 +1,117 @@ - $selector, - 'key' => '', - 'type' => '', - )); - - + if ( ! $field ) { + + $field = acf_get_valid_field( + array( + 'name' => $selector, + 'key' => '', + 'type' => '', + ) + ); + // prevent formatting $format_value = false; - + } - - + // get value for field $value = acf_get_value( $post_id, $field ); - - + // format value - if( $format_value ) { - + if ( $format_value ) { + // get value for field $value = acf_format_value( $value, $post_id, $field ); - + } - - + // return return $value; - + } - -/* -* the_field() -* -* This function is the same as echo get_field(). -* -* @type function -* @since 1.0.3 -* @date 29/01/13 -* -* @param $selector (string) the field name or key -* @param $post_id (mixed) the post_id of which the value is saved against -* @return n/a -*/ - +/** + * This function is the same as echo get_field(). + * + * @since 1.0.3 + * @date 29/01/13 + * + * @param string $selector The field name or key. + * @param mixed $post_id The post_id of which the value is saved against. + * @return void + */ function the_field( $selector, $post_id = false, $format_value = true ) { - - $value = get_field($selector, $post_id, $format_value); - - if( is_array($value) ) { - - $value = @implode( ', ', $value ); - + $value = get_field( $selector, $post_id, $format_value ); + + if ( is_array( $value ) ) { + $value = implode( ', ', $value ); } - + echo $value; - } - -/* -* get_field_object() -* -* This function will return an array containing all the field data for a given field_name -* -* @type function -* @since 3.6 -* @date 3/02/13 -* -* @param $selector (string) the field name or key -* @param $post_id (mixed) the post_id of which the value is saved against -* @param $format_value (boolean) whether or not to format the field value -* @param $load_value (boolean) whether or not to load the field value -* @return $field (array) -*/ - +/** + * This function will return an array containing all the field data for a given field_name. + * + * @since 3.6 + * @date 3/02/13 + * + * @param string $selector The field name or key. + * @param mixed $post_id The post_id of which the value is saved against. + * @param bool $format_value Whether to format the field value. + * @param bool $load_value Whether to load the field value. + * + * @return array|false $field + */ function get_field_object( $selector, $post_id = false, $format_value = true, $load_value = true ) { - - // compatibilty - if( is_array($format_value) ) extract( $format_value ); - - - // get valid post_id + // Compatibility with ACF ~4. + if ( is_array( $format_value ) && isset( $format_value['format_value'] ) ) { + $format_value = $format_value['format_value']; + } + $post_id = acf_get_valid_post_id( $post_id ); - - - // get field key - $field = acf_maybe_get_field( $selector, $post_id ); - - - // bail early if no field found - if( !$field ) return false; - - - // load value - if( $load_value ) { - + $field = acf_maybe_get_field( $selector, $post_id ); + + if ( ! $field ) { + return false; + } + + if ( $load_value ) { $field['value'] = acf_get_value( $post_id, $field ); - } - - - // format value - if( $format_value ) { - - // get value for field + + if ( $format_value ) { $field['value'] = acf_format_value( $field['value'], $post_id, $field ); - } - - - // return + return $field; - } /* @@ -153,37 +120,37 @@ function get_field_object( $selector, $post_id = false, $format_value = true, $l * This function will return a field for the given selector. * It will also review the field_reference to ensure the correct field is returned which makes it useful for the template API * -* @type function -* @date 4/08/2015 -* @since 5.2.3 +* @type function +* @date 4/08/2015 +* @since 5.2.3 * -* @param $selector (mixed) identifyer of field. Can be an ID, key, name or post object -* @param $post_id (mixed) the post_id of which the value is saved against -* @param $strict (boolean) if true, return a field only when a field key is found. -* @return $field (array) +* @param $selector (mixed) identifyer of field. Can be an ID, key, name or post object +* @param $post_id (mixed) the post_id of which the value is saved against +* @param $strict (boolean) if true, return a field only when a field key is found. +* @return $field (array) */ function acf_maybe_get_field( $selector, $post_id = false, $strict = true ) { - + // init acf_init(); - + // Check if field key was given. - if( acf_is_field_key($selector) ) { + if ( acf_is_field_key( $selector ) ) { return acf_get_field( $selector ); } - + // Lookup field via reference. $post_id = acf_get_valid_post_id( $post_id ); - $field = acf_get_meta_field( $selector, $post_id ); - if( $field ) { + $field = acf_get_meta_field( $selector, $post_id ); + if ( $field ) { return $field; } - + // Lookup field loosely via name. - if( !$strict ) { - return acf_get_field( $selector ); + if ( ! $strict ) { + return acf_get_field( $selector ); } - + // Return no result. return false; } @@ -193,57 +160,55 @@ function acf_maybe_get_field( $selector, $post_id = false, $strict = true ) { * * This function will attempt to find a sub field * -* @type function -* @date 3/10/2016 -* @since 5.4.0 +* @type function +* @date 3/10/2016 +* @since 5.4.0 * -* @param $post_id (int) -* @return $post_id (int) +* @param $post_id (int) +* @return $post_id (int) */ function acf_maybe_get_sub_field( $selectors, $post_id = false, $strict = true ) { - - // bail ealry if not enough selectors - if( !is_array($selectors) || count($selectors) < 3 ) return false; - - + + // bail early if not enough selectors + if ( ! is_array( $selectors ) || count( $selectors ) < 3 ) { + return false; + } + // vars - $offset = acf_get_setting('row_index_offset'); - $selector = acf_extract_var( $selectors, 0 ); + $offset = acf_get_setting( 'row_index_offset' ); + $selector = acf_extract_var( $selectors, 0 ); $selectors = array_values( $selectors ); // reset keys - - + // attempt get field $field = acf_maybe_get_field( $selector, $post_id, $strict ); - - + // bail early if no field - if( !$field ) return false; - - + if ( ! $field ) { + return false; + } + // loop - for( $j = 0; $j < count($selectors); $j+=2 ) { - + for ( $j = 0; $j < count( $selectors ); $j += 2 ) { + // vars - $sub_i = $selectors[ $j ]; - $sub_s = $selectors[ $j+1 ]; + $sub_i = $selectors[ $j ]; + $sub_s = $selectors[ $j + 1 ]; $field_name = $field['name']; - - + // find sub field $field = acf_get_sub_field( $sub_s, $field ); - - + // bail early if no sub field - if( !$field ) return false; - - + if ( ! $field ) { + return false; + } + // add to name - $field['name'] = $field_name . '_' . ($sub_i-$offset) . '_' . $field['name']; - + $field['name'] = $field_name . '_' . ( $sub_i - $offset ) . '_' . $field['name']; + } - - + // return return $field; } @@ -254,37 +219,36 @@ function acf_maybe_get_sub_field( $selectors, $post_id = false, $strict = true ) * This function will return an array containing all the custom field values for a specific post_id. * The function is not very elegant and wastes a lot of PHP memory / SQL queries if you are not using all the values. * -* @type function -* @since 3.6 -* @date 29/01/13 +* @type function +* @since 3.6 +* @date 29/01/13 * -* @param $post_id (mixed) the post_id of which the value is saved against -* @param $format_value (boolean) whether or not to format the field value -* @return (array) associative array where field name => field value +* @param $post_id (mixed) the post_id of which the value is saved against +* @param $format_value (boolean) whether or not to format the field value +* @return (array) associative array where field name => field value */ function get_fields( $post_id = false, $format_value = true ) { - + // vars $fields = get_field_objects( $post_id, $format_value ); - $meta = array(); - - + $meta = array(); + // bail early - if( !$fields ) return false; - - - // populate - foreach( $fields as $k => $field ) { - - $meta[ $k ] = $field['value']; - + if ( ! $fields ) { + return false; } - - + + // populate + foreach ( $fields as $k => $field ) { + + $meta[ $k ] = $field['value']; + + } + // return - return $meta; - + return $meta; + } @@ -294,61 +258,69 @@ function get_fields( $post_id = false, $format_value = true ) { * This function will return an array containing all the custom field objects for a specific post_id. * The function is not very elegant and wastes a lot of PHP memory / SQL queries if you are not using all the fields / values. * -* @type function -* @since 3.6 -* @date 29/01/13 +* @type function +* @since 3.6 +* @date 29/01/13 * -* @param $post_id (mixed) the post_id of which the value is saved against -* @param $format_value (boolean) whether or not to format the field value -* @param $load_value (boolean) whether or not to load the field value -* @return (array) associative array where field name => field +* @param $post_id (mixed) the post_id of which the value is saved against +* @param $format_value (boolean) whether or not to format the field value +* @param $load_value (boolean) whether or not to load the field value +* @return (array) associative array where field name => field */ function get_field_objects( $post_id = false, $format_value = true, $load_value = true ) { - + // init acf_init(); - + // validate post_id $post_id = acf_get_valid_post_id( $post_id ); - + // get meta $meta = acf_get_meta( $post_id ); - + // bail early if no meta - if( empty($meta) ) return false; - + if ( empty( $meta ) ) { + return false; + } + // populate vars $fields = array(); - foreach( $meta as $key => $value ) { - + foreach ( $meta as $key => $value ) { + // bail if reference key does not exist - if( !isset($meta["_$key"]) ) continue; - + if ( ! isset( $meta[ "_$key" ] ) || ( ! is_string( $meta[ "_$key" ] ) && ! is_numeric( $meta[ "_$key" ] ) ) ) { + continue; + } + // get field - $field = acf_get_field($meta["_$key"]); - + $field = acf_get_field( $meta[ "_$key" ] ); + // bail early if no field, or if the field's name is different to $key // - solves problem where sub fields (and clone fields) are incorrectly allowed - if( !$field || $field['name'] !== $key ) continue; - + if ( ! $field || $field['name'] !== $key ) { + continue; + } + // load value - if( $load_value ) { + if ( $load_value ) { $field['value'] = acf_get_value( $post_id, $field ); } - + // format value - if( $format_value ) { + if ( $format_value ) { $field['value'] = acf_format_value( $field['value'], $post_id, $field ); } - + // append to $value $fields[ $key ] = $field; } - + // no value - if( empty($fields) ) return false; - + if ( empty( $fields ) ) { + return false; + } + // return return $fields; } @@ -360,133 +332,133 @@ function get_field_objects( $post_id = false, $format_value = true, $load_value * Checks if a field (such as Repeater or Flexible Content) has any rows of data to loop over. * This function is intended to be used in conjunction with the_row() to step through available values. * - * @date 2/09/13 - * @since 4.3.0 + * @date 2/09/13 + * @since 4.3.0 * - * @param string $selector The field name or field key. - * @param mixed $post_id The post ID where the value is saved. Defaults to the current post. - * @return bool + * @param string $selector The field name or field key. + * @param mixed $post_id The post ID where the value is saved. Defaults to the current post. + * @return bool */ function have_rows( $selector, $post_id = false ) { - + // Validate and backup $post_id. $_post_id = $post_id; - $post_id = acf_get_valid_post_id( $post_id ); - + $post_id = acf_get_valid_post_id( $post_id ); + // Vars. - $key = "selector={$selector}/post_id={$post_id}"; - $active_loop = acf_get_loop('active'); - $prev_loop = acf_get_loop('previous'); - $new_loop = false; - $sub_field = false; - + $key = "selector={$selector}/post_id={$post_id}"; + $active_loop = acf_get_loop( 'active' ); + $prev_loop = acf_get_loop( 'previous' ); + $new_loop = false; + $sub_field = false; + // Check if no active loop. - if( !$active_loop ) { + if ( ! $active_loop ) { $new_loop = 'parent'; - - // Detect "change" compared to the active loop. - } elseif( $key !== $active_loop['key'] ) { - + + // Detect "change" compared to the active loop. + } elseif ( $key !== $active_loop['key'] ) { + // Find sub field and check if a sub value exists. $sub_field_exists = false; - $sub_field = acf_get_sub_field($selector, $active_loop['field']); - if( $sub_field ) { + $sub_field = acf_get_sub_field( $selector, $active_loop['field'] ); + if ( $sub_field ) { $sub_field_exists = isset( $active_loop['value'][ $active_loop['i'] ][ $sub_field['key'] ] ); } - + // Detect change in post_id. - if( $post_id != $active_loop['post_id'] ) { - + if ( $post_id != $active_loop['post_id'] ) { + // Case: Change in $post_id was due to this being a nested loop and not specifying the $post_id. // Action: Move down one level into a new loop. - if( empty($_post_id) && $sub_field_exists ) { + if ( empty( $_post_id ) && $sub_field_exists ) { $new_loop = 'child'; - - // Case: Change in $post_id was due to a nested loop ending. - // Action: move up one level through the loops. - } elseif( $prev_loop && $prev_loop['post_id'] == $post_id ) { - acf_remove_loop('active'); + + // Case: Change in $post_id was due to a nested loop ending. + // Action: move up one level through the loops. + } elseif ( $prev_loop && $prev_loop['post_id'] == $post_id ) { + acf_remove_loop( 'active' ); $active_loop = $prev_loop; - - // Case: Chang in $post_id is the most obvious, used in an WP_Query loop with multiple $post objects. - // Action: leave this current loop alone and create a new parent loop. + + // Case: Chang in $post_id is the most obvious, used in an WP_Query loop with multiple $post objects. + // Action: leave this current loop alone and create a new parent loop. } else { $new_loop = 'parent'; } - - // Detect change in selector. - } elseif( $selector != $active_loop['selector'] ) { - + + // Detect change in selector. + } elseif ( $selector != $active_loop['selector'] ) { + // Case: Change in $field_name was due to this being a nested loop. // Action: move down one level into a new loop. - if( $sub_field_exists ) { + if ( $sub_field_exists ) { $new_loop = 'child'; - - // Case: Change in $field_name was due to a nested loop ending. - // Action: move up one level through the loops. - } elseif( $prev_loop && $prev_loop['selector'] == $selector && $prev_loop['post_id'] == $post_id ) { - acf_remove_loop('active'); + + // Case: Change in $field_name was due to a nested loop ending. + // Action: move up one level through the loops. + } elseif ( $prev_loop && $prev_loop['selector'] == $selector && $prev_loop['post_id'] == $post_id ) { + acf_remove_loop( 'active' ); $active_loop = $prev_loop; - - // Case: Change in $field_name is the most obvious, this is a new loop for a different field within the $post. - // Action: leave this current loop alone and create a new parent loop. + + // Case: Change in $field_name is the most obvious, this is a new loop for a different field within the $post. + // Action: leave this current loop alone and create a new parent loop. } else { $new_loop = 'parent'; } } } - + // Add loop if required. - if( $new_loop ) { + if ( $new_loop ) { $args = array( - 'key' => $key, - 'selector' => $selector, - 'post_id' => $post_id, - 'name' => null, - 'value' => null, - 'field' => null, - 'i' => -1, + 'key' => $key, + 'selector' => $selector, + 'post_id' => $post_id, + 'name' => null, + 'value' => null, + 'field' => null, + 'i' => -1, ); - + // Case: Parent loop. - if( $new_loop === 'parent' ) { + if ( $new_loop === 'parent' ) { $field = get_field_object( $selector, $post_id, false ); - if( $field ) { + if ( $field ) { $args['field'] = $field; $args['value'] = $field['value']; - $args['name'] = $field['name']; + $args['name'] = $field['name']; unset( $args['field']['value'] ); } - - // Case: Child loop ($sub_field must exist). + + // Case: Child loop ($sub_field must exist). } else { - $args['field'] = $sub_field; - $args['value'] = $active_loop['value'][ $active_loop['i'] ][ $sub_field['key'] ]; - $args['name'] = "{$active_loop['name']}_{$active_loop['i']}_{$sub_field['name']}"; + $args['field'] = $sub_field; + $args['value'] = $active_loop['value'][ $active_loop['i'] ][ $sub_field['key'] ]; + $args['name'] = "{$active_loop['name']}_{$active_loop['i']}_{$sub_field['name']}"; $args['post_id'] = $active_loop['post_id']; } - + // Bail early if value is either empty or a non array. - if( !$args['value'] || !is_array($args['value']) ) { + if ( ! $args['value'] || ! is_array( $args['value'] ) ) { return false; } - + // Allow for non repeatable data for Group and Clone fields. - if( acf_get_field_type_prop($args['field']['type'], 'have_rows') === 'single' ) { + if ( acf_get_field_type_prop( $args['field']['type'], 'have_rows' ) === 'single' ) { $args['value'] = array( $args['value'] ); } - + // Add loop. - $active_loop = acf_add_loop($args); + $active_loop = acf_add_loop( $args ); } - + // Return true if next row exists. - if( $active_loop && isset($active_loop['value'][ $active_loop['i']+1 ]) ) { + if ( $active_loop && isset( $active_loop['value'][ $active_loop['i'] + 1 ] ) ) { return true; - } - + } + // Return false if no next row. - acf_remove_loop('active'); + acf_remove_loop( 'active' ); return false; } @@ -496,100 +468,93 @@ function have_rows( $selector, $post_id = false ) { * * This function will progress the global repeater or flexible content value 1 row * -* @type function -* @date 2/09/13 -* @since 4.3.0 +* @type function +* @date 2/09/13 +* @since 4.3.0 * -* @param N/A -* @return (array) the current row data +* @param N/A +* @return (array) the current row data */ function the_row( $format = false ) { - + // vars - $i = acf_get_loop('active', 'i'); - - + $i = acf_get_loop( 'active', 'i' ); + // increase $i++; - - + // update - acf_update_loop('active', 'i', $i); - - + acf_update_loop( 'active', 'i', $i ); + // return return get_row( $format ); - + } function get_row( $format = false ) { - + // vars - $loop = acf_get_loop('active'); - - + $loop = acf_get_loop( 'active' ); + // bail early if no loop - if( !$loop ) return false; - - + if ( ! $loop ) { + return false; + } + // get value $value = acf_maybe_get( $loop['value'], $loop['i'] ); - - + // bail early if no current value // possible if get_row_layout() is called before the_row() - if( !$value ) return false; - - + if ( ! $value ) { + return false; + } + // format - if( $format ) { - + if ( $format ) { + // vars $field = $loop['field']; - - + // single row - if( acf_get_field_type_prop($field['type'], 'have_rows') === 'single' ) { - + if ( acf_get_field_type_prop( $field['type'], 'have_rows' ) === 'single' ) { + // format value $value = acf_format_value( $value, $loop['post_id'], $field ); - - // multiple rows + + // multiple rows } else { - + // format entire value // - solves problem where cached value is incomplete // - no performance issues here thanks to cache $value = acf_format_value( $loop['value'], $loop['post_id'], $field ); $value = acf_maybe_get( $value, $loop['i'] ); - + } - } - - + // return return $value; - + } function get_row_index() { - + // vars - $i = acf_get_loop('active', 'i'); - $offset = acf_get_setting('row_index_offset'); - - + $i = acf_get_loop( 'active', 'i' ); + $offset = acf_get_setting( 'row_index_offset' ); + // return return $offset + $i; - + } function the_row_index() { - + echo get_row_index(); - + } @@ -598,39 +563,38 @@ function the_row_index() { * * This function is used inside a 'has_sub_field' while loop to return a sub field object * -* @type function -* @date 16/05/2016 -* @since 5.3.8 +* @type function +* @date 16/05/2016 +* @since 5.3.8 * -* @param $selector (string) -* @return (array) +* @param $selector (string) +* @return (array) */ function get_row_sub_field( $selector ) { - + // vars - $row = acf_get_loop('active'); - - + $row = acf_get_loop( 'active' ); + // bail early if no row - if( !$row ) return false; - - + if ( ! $row ) { + return false; + } + // attempt to find sub field - $sub_field = acf_get_sub_field($selector, $row['field']); - - + $sub_field = acf_get_sub_field( $selector, $row['field'] ); + // bail early if no field - if( !$sub_field ) return false; - - + if ( ! $sub_field ) { + return false; + } + // update field's name based on row data $sub_field['name'] = "{$row['name']}_{$row['i']}_{$sub_field['name']}"; - - + // return return $sub_field; - + } @@ -639,35 +603,34 @@ function get_row_sub_field( $selector ) { * * This function is used inside a 'has_sub_field' while loop to return a sub field value * -* @type function -* @date 16/05/2016 -* @since 5.3.8 +* @type function +* @date 16/05/2016 +* @since 5.3.8 * -* @param $selector (string) -* @return (mixed) +* @param $selector (string) +* @return (mixed) */ function get_row_sub_value( $selector ) { - + // vars - $row = acf_get_loop('active'); - - + $row = acf_get_loop( 'active' ); + // bail early if no row - if( !$row ) return null; - - - // return value - if( isset($row['value'][ $row['i'] ][ $selector ]) ) { - - return $row['value'][ $row['i'] ][ $selector ]; - + if ( ! $row ) { + return null; } - - + + // return value + if ( isset( $row['value'][ $row['i'] ][ $selector ] ) ) { + + return $row['value'][ $row['i'] ][ $selector ]; + + } + // return return null; - + } @@ -677,23 +640,22 @@ function get_row_sub_value( $selector ) { * This function will find the current loop and unset it from the global array. * To bo used when loop finishes or a break is used * -* @type function -* @date 26/10/13 -* @since 5.0.0 +* @type function +* @date 26/10/13 +* @since 5.0.0 * -* @param $hard_reset (boolean) completely wipe the global variable, or just unset the active row -* @return (boolean) +* @param $hard_reset (boolean) completely wipe the global variable, or just unset the active row +* @return (boolean) */ function reset_rows() { - + // remove last loop - acf_remove_loop('active'); - - + acf_remove_loop( 'active' ); + // return return true; - + } @@ -701,41 +663,39 @@ function reset_rows() { * has_sub_field() * * This function is used inside a while loop to return either true or false (loop again or stop). -* When using a repeater or flexible content field, it will loop through the rows until +* When using a repeater or flexible content field, it will loop through the rows until * there are none left or a break is detected * -* @type function -* @since 1.0.3 -* @date 29/01/13 +* @type function +* @since 1.0.3 +* @date 29/01/13 * -* @param $field_name (string) the field name -* @param $post_id (mixed) the post_id of which the value is saved against -* @return (boolean) +* @param $field_name (string) the field name +* @param $post_id (mixed) the post_id of which the value is saved against +* @return (boolean) */ function has_sub_field( $field_name, $post_id = false ) { - + // vars $r = have_rows( $field_name, $post_id ); - - + // if has rows, progress through 1 row for the while loop to work - if( $r ) { - + if ( $r ) { + the_row(); - + } - - + // return return $r; - + } function has_sub_fields( $field_name, $post_id = false ) { - + return has_sub_field( $field_name, $post_id ); - + } @@ -744,27 +704,27 @@ function has_sub_fields( $field_name, $post_id = false ) { * * This function is used inside a 'has_sub_field' while loop to return a sub field value * -* @type function -* @since 1.0.3 -* @date 29/01/13 +* @type function +* @since 1.0.3 +* @date 29/01/13 * -* @param $field_name (string) the field name -* @return (mixed) +* @param $field_name (string) the field name +* @return (mixed) */ function get_sub_field( $selector = '', $format_value = true ) { - + // get sub field $sub_field = get_sub_field_object( $selector, $format_value ); - - + // bail early if no sub field - if( !$sub_field ) return false; - - - // return + if ( ! $sub_field ) { + return false; + } + + // return return $sub_field['value']; - + } @@ -773,24 +733,24 @@ function get_sub_field( $selector = '', $format_value = true ) { * * This function is the same as echo get_sub_field * -* @type function -* @since 1.0.3 -* @date 29/01/13 +* @type function +* @since 1.0.3 +* @date 29/01/13 * -* @param $field_name (string) the field name -* @return n/a +* @param $field_name (string) the field name +* @return n/a */ function the_sub_field( $field_name, $format_value = true ) { - + $value = get_sub_field( $field_name, $format_value ); - - if( is_array($value) ) { - - $value = implode(', ',$value); - + + if ( is_array( $value ) ) { + + $value = implode( ', ', $value ); + } - + echo $value; } @@ -800,52 +760,50 @@ function the_sub_field( $field_name, $format_value = true ) { * * This function is used inside a 'has_sub_field' while loop to return a sub field object * -* @type function -* @since 3.5.8.1 -* @date 29/01/13 +* @type function +* @since 3.5.8.1 +* @date 29/01/13 * -* @param $child_name (string) the field name -* @return (array) +* @param $child_name (string) the field name +* @return (array) */ function get_sub_field_object( $selector, $format_value = true, $load_value = true ) { - + // vars - $row = acf_get_loop('active'); - - + $row = acf_get_loop( 'active' ); + // bail early if no row - if( !$row ) return false; - - - // attempt to find sub field - $sub_field = get_row_sub_field($selector); - - - // bail early if no sub field - if( !$sub_field ) return false; - - - // load value - if( $load_value ) { - - $sub_field['value'] = get_row_sub_value( $sub_field['key'] ); - + if ( ! $row ) { + return false; } - - + + // attempt to find sub field + $sub_field = get_row_sub_field( $selector ); + + // bail early if no sub field + if ( ! $sub_field ) { + return false; + } + + // load value + if ( $load_value ) { + + $sub_field['value'] = get_row_sub_value( $sub_field['key'] ); + + } + // format value - if( $format_value ) { - + if ( $format_value ) { + // get value for field $sub_field['value'] = acf_format_value( $sub_field['value'], $row['post_id'], $sub_field ); - + } - - + // return return $sub_field; - + } @@ -854,78 +812,99 @@ function get_sub_field_object( $selector, $format_value = true, $load_value = tr * * This function will return a string representation of the current row layout within a 'have_rows' loop * -* @type function -* @since 3.0.6 -* @date 29/01/13 +* @type function +* @since 3.0.6 +* @date 29/01/13 * -* @param n/a -* @return (string) +* @param n/a +* @return (string) */ function get_row_layout() { - + // vars $row = get_row(); - - + // return - if( isset($row['acf_fc_layout']) ) { - + if ( isset( $row['acf_fc_layout'] ) ) { + return $row['acf_fc_layout']; - + } - - + // return return false; - + } - -/* -* acf_shortcode() -* -* This function is used to add basic shortcode support for the ACF plugin -* eg. [acf field="heading" post_id="123" format_value="1"] -* -* @type function -* @since 1.1.1 -* @date 29/01/13 -* -* @param $field (string) the field name or key -* @param $post_id (mixed) the post_id of which the value is saved against -* @param $format_value (boolean) whether or not to format the field value -* @return (string) -*/ - +/** + * This function is used to add basic shortcode support for the ACF plugin + * eg. [acf field="heading" post_id="123" format_value="1"] + * + * @since 1.1.1 + * @date 29/01/13 + * + * @param array $atts The shortcode attributes. + * + * @return string + */ function acf_shortcode( $atts ) { - - // extract attributs - extract( shortcode_atts( array( - 'field' => '', - 'post_id' => false, - 'format_value' => true - ), $atts ) ); - - - // get value and return it - $value = get_field( $field, $post_id, $format_value ); - - - // array - if( is_array($value) ) { - - $value = @implode( ', ', $value ); - + // Return if the ACF shortcode is disabled. + if ( ! acf_get_setting( 'enable_shortcode' ) ) { + return; } - - - // return - return $value; - -} -add_shortcode('acf', 'acf_shortcode'); + if ( function_exists( 'wp_is_block_theme' ) && wp_is_block_theme() ) { + // Prevent the ACF shortcode in FSE block template parts by default. + if ( ! doing_filter( 'the_content' ) && ! apply_filters( 'acf/shortcode/allow_in_block_themes_outside_content', false ) ) { + return; + } + } + + // Limit previews of ACF shortcode data for users without publish_posts permissions. + $preview_capability = apply_filters( 'acf/shortcode/preview_capability', 'publish_posts' ); + if ( is_preview() && ! current_user_can( $preview_capability ) ) { + return apply_filters( 'acf/shortcode/preview_capability_message', __( '[ACF shortcode value disabled for preview]', 'acf' ) ); + } + + // Mitigate issue where some AJAX requests can return ACF field data. + $ajax_capability = apply_filters( 'acf/ajax/shortcode_capability', 'edit_posts' ); + if ( wp_doing_ajax() && ( $ajax_capability !== false ) && ! current_user_can( $ajax_capability ) ) { + return; + } + + $atts = shortcode_atts( + array( + 'field' => '', + 'post_id' => false, + 'format_value' => true, + ), + $atts, + 'acf' + ); + + $access_already_prevented = apply_filters( 'acf/prevent_access_to_unknown_fields', false ); + $filter_applied = false; + + if ( ! $access_already_prevented ) { + $filter_applied = true; + add_filter( 'acf/prevent_access_to_unknown_fields', '__return_true' ); + } + + // Try to get the field value. + $value = get_field( $atts['field'], $atts['post_id'], $atts['format_value'] ); + + if ( $filter_applied ) { + remove_filter( 'acf/prevent_access_to_unknown_fields', '__return_true' ); + } + + if ( is_array( $value ) ) { + $value = implode( ', ', $value ); + } + + return $value; +} +add_shortcode( 'acf', 'acf_shortcode' ); /* @@ -933,41 +912,40 @@ add_shortcode('acf', 'acf_shortcode'); * * This function will update a value in the database * -* @type function -* @since 3.1.9 -* @date 29/01/13 +* @type function +* @since 3.1.9 +* @date 29/01/13 * -* @param $selector (string) the field name or key -* @param $value (mixed) the value to save in the database -* @param $post_id (mixed) the post_id of which the value is saved against -* @return (boolean) +* @param $selector (string) the field name or key +* @param $value (mixed) the value to save in the database +* @param $post_id (mixed) the post_id of which the value is saved against +* @return (boolean) */ function update_field( $selector, $value, $post_id = false ) { - + // filter post_id $post_id = acf_get_valid_post_id( $post_id ); - - + // get field $field = acf_maybe_get_field( $selector, $post_id, false ); - - + // create dummy field - if( !$field ) { - - $field = acf_get_valid_field(array( - 'name' => $selector, - 'key' => '', - 'type' => '', - )); - + if ( ! $field ) { + + $field = acf_get_valid_field( + array( + 'name' => $selector, + 'key' => '', + 'type' => '', + ) + ); + } - - + // save return acf_update_value( $value, $post_id, $field ); - + } @@ -976,43 +954,42 @@ function update_field( $selector, $value, $post_id = false ) { * * This function will update a value of a sub field in the database * -* @type function -* @date 2/04/2014 -* @since 5.0.0 +* @type function +* @date 2/04/2014 +* @since 5.0.0 * -* @param $selector (mixed) the sub field name or key, or an array of ancestors -* @param $value (mixed) the value to save in the database -* @param $post_id (mixed) the post_id of which the value is saved against -* @return (boolean) +* @param $selector (mixed) the sub field name or key, or an array of ancestors +* @param $value (mixed) the value to save in the database +* @param $post_id (mixed) the post_id of which the value is saved against +* @return (boolean) */ function update_sub_field( $selector, $value, $post_id = false ) { - + // vars $sub_field = false; - - - // get sub field - if( is_array($selector) ) { - - $post_id = acf_get_valid_post_id( $post_id ); - $sub_field = acf_maybe_get_sub_field( $selector, $post_id, false ); - - } else { - - $post_id = acf_get_loop('active', 'post_id'); - $sub_field = get_row_sub_field( $selector ); - - } - - - // bail early if no sub field - if( !$sub_field ) return false; + // get sub field + if ( is_array( $selector ) ) { + + $post_id = acf_get_valid_post_id( $post_id ); + $sub_field = acf_maybe_get_sub_field( $selector, $post_id, false ); + + } else { + + $post_id = acf_get_loop( 'active', 'post_id' ); + $sub_field = get_row_sub_field( $selector ); + + } + + // bail early if no sub field + if ( ! $sub_field ) { + return false; + } // update return acf_update_value( $value, $post_id, $sub_field ); - + } @@ -1021,28 +998,26 @@ function update_sub_field( $selector, $value, $post_id = false ) { * * This function will remove a value from the database * -* @type function -* @since 3.1.9 -* @date 29/01/13 +* @type function +* @since 3.1.9 +* @date 29/01/13 * -* @param $selector (string) the field name or key -* @param $post_id (mixed) the post_id of which the value is saved against -* @return (boolean) +* @param $selector (string) the field name or key +* @param $post_id (mixed) the post_id of which the value is saved against +* @return (boolean) */ function delete_field( $selector, $post_id = false ) { - + // filter post_id $post_id = acf_get_valid_post_id( $post_id ); - - + // get field $field = acf_maybe_get_field( $selector, $post_id ); - - + // delete - return acf_delete_value( $post_id, $field ); - + return $field ? acf_delete_value( $post_id, $field ) : false; + } @@ -1051,20 +1026,20 @@ function delete_field( $selector, $post_id = false ) { * * This function will delete a value of a sub field in the database * -* @type function -* @date 2/04/2014 -* @since 5.0.0 +* @type function +* @date 2/04/2014 +* @since 5.0.0 * -* @param $selector (mixed) the sub field name or key, or an array of ancestors -* @param $value (mixed) the value to save in the database -* @param $post_id (mixed) the post_id of which the value is saved against -* @return (boolean) +* @param $selector (mixed) the sub field name or key, or an array of ancestors +* @param $value (mixed) the value to save in the database +* @param $post_id (mixed) the post_id of which the value is saved against +* @return (boolean) */ function delete_sub_field( $selector, $post_id = false ) { - + return update_sub_field( $selector, null, $post_id ); - + } @@ -1073,49 +1048,47 @@ function delete_sub_field( $selector, $post_id = false ) { * * This function will add a row of data to a field * -* @type function -* @date 16/10/2015 -* @since 5.2.3 +* @type function +* @date 16/10/2015 +* @since 5.2.3 * -* @param $selector (string) -* @param $row (array) -* @param $post_id (mixed) -* @return (boolean) +* @param $selector (string) +* @param $row (array) +* @param $post_id (mixed) +* @return (boolean) */ function add_row( $selector, $row = false, $post_id = false ) { - + // filter post_id $post_id = acf_get_valid_post_id( $post_id ); - - + // get field $field = acf_maybe_get_field( $selector, $post_id, false ); - - + // bail early if no field - if( !$field ) return false; - - + if ( ! $field ) { + return false; + } + // get raw value $value = acf_get_value( $post_id, $field ); - - + // ensure array - $value = acf_get_array($value); - - + $value = acf_get_array( $value ); + // append $value[] = $row; - - + + // Paginated repeaters should be saved normally. + $field['pagination'] = false; + // update value acf_update_value( $value, $post_id, $field ); - - + // return - return count($value); - + return count( $value ); + } @@ -1124,59 +1097,54 @@ function add_row( $selector, $row = false, $post_id = false ) { * * This function will add a row of data to a field * -* @type function -* @date 16/10/2015 -* @since 5.2.3 +* @type function +* @date 16/10/2015 +* @since 5.2.3 * -* @param $selector (string) -* @param $row (array) -* @param $post_id (mixed) -* @return (boolean) +* @param $selector (string) +* @param $row (array) +* @param $post_id (mixed) +* @return (boolean) */ function add_sub_row( $selector, $row = false, $post_id = false ) { - + // vars $sub_field = false; - - + // get sub field - if( is_array($selector) ) { - - $post_id = acf_get_valid_post_id( $post_id ); + if ( is_array( $selector ) ) { + + $post_id = acf_get_valid_post_id( $post_id ); $sub_field = acf_maybe_get_sub_field( $selector, $post_id, false ); - + } else { - - $post_id = acf_get_loop('active', 'post_id'); + + $post_id = acf_get_loop( 'active', 'post_id' ); $sub_field = get_row_sub_field( $selector ); - + } - - + // bail early if no sub field - if( !$sub_field ) return false; - - + if ( ! $sub_field ) { + return false; + } + // get raw value $value = acf_get_value( $post_id, $sub_field ); - - + // ensure array $value = acf_get_array( $value ); - - + // append $value[] = $row; - // update acf_update_value( $value, $post_id, $sub_field ); - - + // return - return count($value); - + return count( $value ); + } @@ -1185,55 +1153,49 @@ function add_sub_row( $selector, $row = false, $post_id = false ) { * * This function will update a row of data to a field * -* @type function -* @date 19/10/2015 -* @since 5.2.3 +* @type function +* @date 19/10/2015 +* @since 5.2.3 * -* @param $selector (string) -* @param $i (int) -* @param $row (array) -* @param $post_id (mixed) -* @return (boolean) +* @param $selector (string) +* @param $i (int) +* @param $row (array) +* @param $post_id (mixed) +* @return (boolean) */ function update_row( $selector, $i = 1, $row = false, $post_id = false ) { - + // vars - $offset = acf_get_setting('row_index_offset'); - $i = $i - $offset; - - + $offset = acf_get_setting( 'row_index_offset' ); + $i = $i - $offset; + // filter post_id $post_id = acf_get_valid_post_id( $post_id ); - - + // get field $field = acf_maybe_get_field( $selector, $post_id, false ); - - + // bail early if no field - if( !$field ) return false; - - + if ( ! $field ) { + return false; + } + // get raw value $value = acf_get_value( $post_id, $field ); - - + // ensure array - $value = acf_get_array($value); - - + $value = acf_get_array( $value ); + // update $value[ $i ] = $row; - - + // update value acf_update_value( $value, $post_id, $field ); - - + // return return true; - + } @@ -1242,61 +1204,56 @@ function update_row( $selector, $i = 1, $row = false, $post_id = false ) { * * This function will add a row of data to a field * -* @type function -* @date 16/10/2015 -* @since 5.2.3 +* @type function +* @date 16/10/2015 +* @since 5.2.3 * -* @param $selector (string) -* @param $row (array) -* @param $post_id (mixed) -* @return (boolean) +* @param $selector (string) +* @param $row (array) +* @param $post_id (mixed) +* @return (boolean) */ function update_sub_row( $selector, $i = 1, $row = false, $post_id = false ) { - + // vars $sub_field = false; - $offset = acf_get_setting('row_index_offset'); - $i = $i - $offset; - - + $offset = acf_get_setting( 'row_index_offset' ); + $i = $i - $offset; + // get sub field - if( is_array($selector) ) { - - $post_id = acf_get_valid_post_id( $post_id ); + if ( is_array( $selector ) ) { + + $post_id = acf_get_valid_post_id( $post_id ); $sub_field = acf_maybe_get_sub_field( $selector, $post_id, false ); - + } else { - - $post_id = acf_get_loop('active', 'post_id'); + + $post_id = acf_get_loop( 'active', 'post_id' ); $sub_field = get_row_sub_field( $selector ); - + } - - + // bail early if no sub field - if( !$sub_field ) return false; - - + if ( ! $sub_field ) { + return false; + } + // get raw value $value = acf_get_value( $post_id, $sub_field ); - - + // ensure array $value = acf_get_array( $value ); - - + // append $value[ $i ] = $row; - // update acf_update_value( $value, $post_id, $sub_field ); - - + // return return true; - + } @@ -1305,58 +1262,53 @@ function update_sub_row( $selector, $i = 1, $row = false, $post_id = false ) { * * This function will delete a row of data from a field * -* @type function -* @date 19/10/2015 -* @since 5.2.3 +* @type function +* @date 19/10/2015 +* @since 5.2.3 * -* @param $selector (string) -* @param $i (int) -* @param $post_id (mixed) -* @return (boolean) +* @param $selector (string) +* @param $i (int) +* @param $post_id (mixed) +* @return (boolean) */ function delete_row( $selector, $i = 1, $post_id = false ) { - + // vars - $offset = acf_get_setting('row_index_offset'); - $i = $i - $offset; - - + $offset = acf_get_setting( 'row_index_offset' ); + $i = $i - $offset; + // filter post_id $post_id = acf_get_valid_post_id( $post_id ); - - + // get field $field = acf_maybe_get_field( $selector, $post_id ); - - + // bail early if no field - if( !$field ) return false; - - + if ( ! $field ) { + return false; + } + // get value $value = acf_get_value( $post_id, $field ); - - + // ensure array - $value = acf_get_array($value); - - + $value = acf_get_array( $value ); + // bail early if index doesn't exist - if( !isset($value[ $i ]) ) return false; - - + if ( ! isset( $value[ $i ] ) ) { + return false; + } + // unset unset( $value[ $i ] ); - - + // update acf_update_value( $value, $post_id, $field ); - - + // return return true; - + } @@ -1365,65 +1317,61 @@ function delete_row( $selector, $i = 1, $post_id = false ) { * * This function will add a row of data to a field * -* @type function -* @date 16/10/2015 -* @since 5.2.3 +* @type function +* @date 16/10/2015 +* @since 5.2.3 * -* @param $selector (string) -* @param $row (array) -* @param $post_id (mixed) -* @return (boolean) +* @param $selector (string) +* @param $row (array) +* @param $post_id (mixed) +* @return (boolean) */ function delete_sub_row( $selector, $i = 1, $post_id = false ) { - + // vars $sub_field = false; - $offset = acf_get_setting('row_index_offset'); - $i = $i - $offset; - - + $offset = acf_get_setting( 'row_index_offset' ); + $i = $i - $offset; + // get sub field - if( is_array($selector) ) { - - $post_id = acf_get_valid_post_id( $post_id ); + if ( is_array( $selector ) ) { + + $post_id = acf_get_valid_post_id( $post_id ); $sub_field = acf_maybe_get_sub_field( $selector, $post_id, false ); - + } else { - - $post_id = acf_get_loop('active', 'post_id'); + + $post_id = acf_get_loop( 'active', 'post_id' ); $sub_field = get_row_sub_field( $selector ); - + } - - + // bail early if no sub field - if( !$sub_field ) return false; - - + if ( ! $sub_field ) { + return false; + } + // get raw value $value = acf_get_value( $post_id, $sub_field ); - - + // ensure array $value = acf_get_array( $value ); - - + // bail early if index doesn't exist - if( !isset($value[ $i ]) ) return false; - - + if ( ! isset( $value[ $i ] ) ) { + return false; + } + // append unset( $value[ $i ] ); - // update acf_update_value( $value, $post_id, $sub_field ); - - + // return return true; - + } @@ -1432,48 +1380,48 @@ function delete_sub_row( $selector, $i = 1, $post_id = false ) { * * These functions are outdated * -* @type function -* @date 4/03/2014 -* @since 1.0.0 +* @type function +* @date 4/03/2014 +* @since 1.0.0 * -* @param n/a -* @return n/a +* @param n/a +* @return n/a */ function create_field( $field ) { acf_render_field( $field ); - + } function render_field( $field ) { acf_render_field( $field ); - + } function reset_the_repeater_field() { - + return reset_rows(); - + } function the_repeater_field( $field_name, $post_id = false ) { - + return has_sub_field( $field_name, $post_id ); - + } function the_flexible_field( $field_name, $post_id = false ) { - + return has_sub_field( $field_name, $post_id ); - + } function acf_filter_post_id( $post_id ) { - + return acf_get_valid_post_id( $post_id ); - + } -?> + diff --git a/includes/api/api-term.php b/includes/api/api-term.php index e2c6a29..5cde29e 100644 --- a/includes/api/api-term.php +++ b/includes/api/api-term.php @@ -5,71 +5,73 @@ * * Returns an array of taxonomy names. * -* @date 7/10/13 -* @since 5.0.0 +* @date 7/10/13 +* @since 5.0.0 * -* @param array $args An array of args used in the get_taxonomies() function. -* @return array An array of taxonomy names. +* @param array $args An array of args used in the get_taxonomies() function. +* @return array An array of taxonomy names. */ function acf_get_taxonomies( $args = array() ) { // vars $taxonomies = array(); - + // get taxonomy objects $objects = get_taxonomies( $args, 'objects' ); - + // loop - foreach( $objects as $i => $object ) { - + foreach ( $objects as $i => $object ) { + // bail early if is builtin (WP) private post type // - nav_menu_item, revision, customize_changeset, etc - if( $object->_builtin && !$object->public ) continue; - + if ( $object->_builtin && ! $object->public ) { + continue; + } + // append $taxonomies[] = $i; } - + // custom post_type arg which does not yet exist in core - if( isset($args['post_type']) ) { - $taxonomies = acf_get_taxonomies_for_post_type($args['post_type']); + if ( isset( $args['post_type'] ) ) { + $taxonomies = acf_get_taxonomies_for_post_type( $args['post_type'] ); } - + // filter - $taxonomies = apply_filters('acf/get_taxonomies', $taxonomies, $args); - + $taxonomies = apply_filters( 'acf/get_taxonomies', $taxonomies, $args ); + // return return $taxonomies; } /** -* acf_get_taxonomies_for_post_type -* -* Returns an array of taxonomies for a given post type(s) -* -* @date 7/9/18 -* @since 5.7.5 -* -* @param string|array $post_types The post types to compare against. -* @return array -*/ + * acf_get_taxonomies_for_post_type + * + * Returns an array of taxonomies for a given post type(s) + * + * @date 7/9/18 + * @since 5.7.5 + * + * @param string|array $post_types The post types to compare against. + * @return array + */ function acf_get_taxonomies_for_post_type( $post_types = 'post' ) { - + // vars $taxonomies = array(); - + // loop - foreach( (array) $post_types as $post_type ) { + foreach ( (array) $post_types as $post_type ) { $object_taxonomies = get_object_taxonomies( $post_type ); - foreach( (array) $object_taxonomies as $taxonomy ) { - $taxonomies[] = $taxonomy; + foreach ( (array) $object_taxonomies as $taxonomy ) { + $taxonomies[] = $taxonomy; } } - + // remove duplicates - $taxonomies = array_unique($taxonomies); - + $taxonomies = array_unique( $taxonomies ); + // return return $taxonomies; } @@ -79,420 +81,442 @@ function acf_get_taxonomies_for_post_type( $post_types = 'post' ) { * * Returns an array of taxonomies in the format "name => label" for use in a select field. * -* @date 3/8/18 -* @since 5.7.2 +* @date 3/8/18 +* @since 5.7.2 * -* @param array $taxonomies Optional. An array of specific taxonomies to return. -* @return array +* @param array $taxonomies Optional. An array of specific taxonomies to return. +* @return array */ function acf_get_taxonomy_labels( $taxonomies = array() ) { - + // default - if( empty($taxonomies) ) { + if ( empty( $taxonomies ) ) { $taxonomies = acf_get_taxonomies(); } - + // vars - $ref = array(); + $ref = array(); $data = array(); - + // loop - foreach( $taxonomies as $taxonomy ) { - + foreach ( $taxonomies as $taxonomy ) { + // vars $object = get_taxonomy( $taxonomy ); - $label = $object->labels->singular_name; - + $label = $object->labels->singular_name; + // append $data[ $taxonomy ] = $label; - + // increase counter - if( !isset($ref[ $label ]) ) { + if ( ! isset( $ref[ $label ] ) ) { $ref[ $label ] = 0; } $ref[ $label ]++; } - + // show taxonomy name next to label for shared labels - foreach( $data as $taxonomy => $label ) { - if( $ref[$label] > 1 ) { + foreach ( $data as $taxonomy => $label ) { + if ( $ref[ $label ] > 1 ) { $data[ $taxonomy ] .= ' (' . $taxonomy . ')'; } } - + // return return $data; } /** -* acf_get_term_title -* -* Returns the title for this term object. -* -* @date 10/9/18 -* @since 5.0.0 -* -* @param object $term The WP_Term object. -* @return string -*/ + * acf_get_term_title + * + * Returns the title for this term object. + * + * @date 10/9/18 + * @since 5.0.0 + * + * @param object $term The WP_Term object. + * @return string + */ function acf_get_term_title( $term ) { - - // set to term name $title = $term->name; - - // allow for empty name - if( $title === '' ) { - $title = __('(no title)', 'acf'); + + // Allow for empty name. + if ( $title === '' ) { + $title = __( '(no title)', 'acf' ); } - - // prepent ancestors indentation - if( is_taxonomy_hierarchical($term->taxonomy) ) { + + // Prepend ancestors indentation. + if ( is_taxonomy_hierarchical( $term->taxonomy ) ) { $ancestors = get_ancestors( $term->term_id, $term->taxonomy ); - $title = str_repeat('- ', count($ancestors)) . $title; + $title = str_repeat( '- ', count( $ancestors ) ) . $title; } - - // return + return $title; } /** -* acf_get_grouped_terms -* -* Returns an array of terms for the given query $args and groups by taxonomy name. -* -* @date 2/8/18 -* @since 5.7.2 -* -* @param array $args An array of args used in the get_terms() function. -* @return array -*/ + * acf_get_grouped_terms + * + * Returns an array of terms for the given query $args and groups by taxonomy name. + * + * @date 2/8/18 + * @since 5.7.2 + * + * @param array $args An array of args used in the get_terms() function. + * @return array + */ function acf_get_grouped_terms( $args ) { - + // vars $data = array(); - + // defaults - $args = wp_parse_args($args, array( - 'taxonomy' => null, - 'hide_empty' => false, - 'update_term_meta_cache' => false, - )); - + $args = wp_parse_args( + $args, + array( + 'taxonomy' => null, + 'hide_empty' => false, + 'update_term_meta_cache' => false, + ) + ); + // vars - $taxonomies = acf_get_taxonomy_labels( acf_get_array($args['taxonomy']) ); - $is_single = (count($taxonomies) == 1); - + $taxonomies = acf_get_taxonomy_labels( acf_get_array( $args['taxonomy'] ) ); + $is_single = ( count( $taxonomies ) == 1 ); + // specify exact taxonomies required for _acf_terms_clauses() to work. - $args['taxonomy'] = array_keys($taxonomies); - + $args['taxonomy'] = array_keys( $taxonomies ); + // add filter to group results by taxonomy - if( !$is_single ) { - add_filter('terms_clauses', '_acf_terms_clauses', 10, 3); + if ( ! $is_single ) { + add_filter( 'terms_clauses', '_acf_terms_clauses', 10, 3 ); } - + // get terms $terms = get_terms( $args ); - + // remove this filter (only once) - if( !$is_single ) { - remove_filter('terms_clauses', '_acf_terms_clauses', 10, 3); + if ( ! $is_single ) { + remove_filter( 'terms_clauses', '_acf_terms_clauses', 10, 3 ); } - + // loop - foreach( $taxonomies as $taxonomy => $label ) { - + foreach ( $taxonomies as $taxonomy => $label ) { + // vars $this_terms = array(); - + // populate $this_terms - foreach( $terms as $term ) { - if( $term->taxonomy == $taxonomy ) { + foreach ( $terms as $term ) { + if ( $term->taxonomy == $taxonomy ) { $this_terms[] = $term; } } - + // bail early if no $items - if( empty($this_terms) ) continue; - + if ( empty( $this_terms ) ) { + continue; + } + // sort into hierachial order // this will fail if a search has taken place because parents wont exist - if( is_taxonomy_hierarchical($taxonomy) && empty($args['s'])) { - + if ( is_taxonomy_hierarchical( $taxonomy ) && empty( $args['s'] ) ) { + // get all terms from this taxonomy - $all_terms = get_terms(array_merge($args, array( - 'number' => 0, - 'offset' => 0, - 'taxonomy' => $taxonomy - ))); - + $all_terms = get_terms( + array_merge( + $args, + array( + 'number' => 0, + 'offset' => 0, + 'taxonomy' => $taxonomy, + ) + ) + ); + // vars - $length = count($this_terms); + $length = count( $this_terms ); $offset = 0; - + // find starting point (offset) - foreach( $all_terms as $i => $term ) { - if( $term->term_id == $this_terms[0]->term_id ) { + foreach ( $all_terms as $i => $term ) { + if ( $term->term_id == $this_terms[0]->term_id ) { $offset = $i; break; } } - + // order terms - $parent = acf_maybe_get( $args, 'parent', 0 ); - $parent = acf_maybe_get( $args, 'child_of', $parent ); + $parent = acf_maybe_get( $args, 'parent', 0 ); + $parent = acf_maybe_get( $args, 'child_of', $parent ); $ordered_terms = _get_term_children( $parent, $all_terms, $taxonomy ); - + // compare aray lengths // if $ordered_posts is smaller than $all_posts, WP has lost posts during the get_page_children() function // this is possible when get_post( $args ) filter out parents (via taxonomy, meta and other search parameters) - if( count($ordered_terms) == count($all_terms) ) { - $this_terms = array_slice($ordered_terms, $offset, $length); + if ( count( $ordered_terms ) == count( $all_terms ) ) { + $this_terms = array_slice( $ordered_terms, $offset, $length ); } } - + // populate group $data[ $label ] = array(); - foreach( $this_terms as $term ) { + foreach ( $this_terms as $term ) { $data[ $label ][ $term->term_id ] = $term; - } + } } - + // return return $data; } /** -* _acf_terms_clauses -* -* Used in the 'terms_clauses' filter to order terms by taxonomy name. -* -* @date 2/8/18 -* @since 5.7.2 -* -* @param array $pieces Terms query SQL clauses. -* @param array $taxonomies An array of taxonomies. -* @param array $args An array of terms query arguments. -* @return array $pieces -*/ + * _acf_terms_clauses + * + * Used in the 'terms_clauses' filter to order terms by taxonomy name. + * + * @date 2/8/18 + * @since 5.7.2 + * + * @param array $pieces Terms query SQL clauses. + * @param array $taxonomies An array of taxonomies. + * @param array $args An array of terms query arguments. + * @return array $pieces + */ function _acf_terms_clauses( $pieces, $taxonomies, $args ) { - + // prepend taxonomy to 'orderby' SQL - if( is_array($taxonomies) ) { - $sql = "FIELD(tt.taxonomy,'" . implode("', '", array_map('esc_sql', $taxonomies)) . "')"; - $pieces['orderby'] = str_replace("ORDER BY", "ORDER BY $sql,", $pieces['orderby']); + if ( is_array( $taxonomies ) ) { + $sql = "FIELD(tt.taxonomy,'" . implode( "', '", array_map( 'esc_sql', $taxonomies ) ) . "')"; + $pieces['orderby'] = str_replace( 'ORDER BY', "ORDER BY $sql,", $pieces['orderby'] ); } - - // return + + // return return $pieces; } /** -* acf_get_pretty_taxonomies -* -* Deprecated in favor of acf_get_taxonomy_labels() function. -* -* @date 7/10/13 -* @since 5.0.0 -* @deprecated 5.7.2 -*/ + * acf_get_pretty_taxonomies + * + * Deprecated in favor of acf_get_taxonomy_labels() function. + * + * @date 7/10/13 + * @since 5.0.0 + * @deprecated 5.7.2 + */ function acf_get_pretty_taxonomies( $taxonomies = array() ) { return acf_get_taxonomy_labels( $taxonomies ); } /** -* acf_get_term -* -* Similar to get_term() but with some extra functionality. -* -* @date 19/8/18 -* @since 5.7.3 -* -* @param mixed $term_id The term ID or a string of "taxonomy:slug". -* @param string $taxonomy The taxonomyname. -* @return WP_Term -*/ + * acf_get_term + * + * Similar to get_term() but with some extra functionality. + * + * @date 19/8/18 + * @since 5.7.3 + * + * @param mixed $term_id The term ID or a string of "taxonomy:slug". + * @param string $taxonomy The taxonomyname. + * @return WP_Term + */ function acf_get_term( $term_id, $taxonomy = '' ) { - + // allow $term_id parameter to be a string of "taxonomy:slug" or "taxonomy:id" - if( is_string($term_id) && strpos($term_id, ':') ) { - list( $taxonomy, $term_id ) = explode(':', $term_id); - $term = get_term_by( 'slug', $term_id, $taxonomy ); - if( $term ) return $term; + if ( is_string( $term_id ) && strpos( $term_id, ':' ) ) { + list( $taxonomy, $term_id ) = explode( ':', $term_id ); + $term = get_term_by( 'slug', $term_id, $taxonomy ); + if ( $term ) { + return $term; + } } - + // return return get_term( $term_id, $taxonomy ); } /** -* acf_encode_term -* -* Returns a "taxonomy:slug" string for a given WP_Term. -* -* @date 27/8/18 -* @since 5.7.4 -* -* @param WP_Term $term The term object. -* @return string -*/ + * acf_encode_term + * + * Returns a "taxonomy:slug" string for a given WP_Term. + * + * @date 27/8/18 + * @since 5.7.4 + * + * @param WP_Term $term The term object. + * @return string + */ function acf_encode_term( $term ) { return "{$term->taxonomy}:{$term->slug}"; } /** -* acf_decode_term -* -* Decodes a "taxonomy:slug" string into an array of taxonomy and slug. -* -* @date 27/8/18 -* @since 5.7.4 -* -* @param WP_Term $term The term object. -* @return string -*/ + * acf_decode_term + * + * Decodes a "taxonomy:slug" string into an array of taxonomy and slug. + * + * @date 27/8/18 + * @since 5.7.4 + * + * @param WP_Term $term The term object. + * @return string + */ function acf_decode_term( $string ) { - if( is_string($string) && strpos($string, ':') ) { - list( $taxonomy, $slug ) = explode(':', $string); + if ( is_string( $string ) && strpos( $string, ':' ) ) { + list( $taxonomy, $slug ) = explode( ':', $string ); return compact( 'taxonomy', 'slug' ); } return false; } /** -* acf_get_encoded_terms -* -* Returns an array of WP_Term objects from an array of encoded strings -* -* @date 9/9/18 -* @since 5.7.5 -* -* @param array $values The array of encoded strings. -* @return array -*/ + * acf_get_encoded_terms + * + * Returns an array of WP_Term objects from an array of encoded strings + * + * @date 9/9/18 + * @since 5.7.5 + * + * @param array $values The array of encoded strings. + * @return array + */ function acf_get_encoded_terms( $values ) { - + // vars $terms = array(); - + // loop over values - foreach( (array) $values as $value ) { - + foreach ( (array) $values as $value ) { + // find term from string $term = acf_get_term( $value ); - + // append - if( $term instanceof WP_Term ) { + if ( $term instanceof WP_Term ) { $terms[] = $term; } } - + // return return $terms; } /** -* acf_get_choices_from_terms -* -* Returns an array of choices from the terms provided. -* -* @date 8/9/18 -* @since 5.7.5 -* -* @param array $values and array of WP_Terms objects or encoded strings. -* @param string $format The value format (term_id, slug). -* @return array -*/ + * acf_get_choices_from_terms + * + * Returns an array of choices from the terms provided. + * + * @date 8/9/18 + * @since 5.7.5 + * + * @param array $values and array of WP_Terms objects or encoded strings. + * @param string $format The value format (term_id, slug). + * @return array + */ function acf_get_choices_from_terms( $terms, $format = 'term_id' ) { - + // vars $groups = array(); - + // get taxonomy lables $labels = acf_get_taxonomy_labels(); - + // convert array of encoded strings to terms - $term = reset($terms); - if( !$term instanceof WP_Term ) { + $term = reset( $terms ); + if ( ! $term instanceof WP_Term ) { $terms = acf_get_encoded_terms( $terms ); } - + // loop over terms - foreach( $terms as $term ) { - $group = $labels[ $term->taxonomy ]; - $choice = acf_get_choice_from_term( $term, $format ); + foreach ( $terms as $term ) { + $group = $labels[ $term->taxonomy ]; + $choice = acf_get_choice_from_term( $term, $format ); $groups[ $group ][ $choice['id'] ] = $choice['text']; } - + // return return $groups; } /** -* acf_get_choices_from_grouped_terms -* -* Returns an array of choices from the grouped terms provided. -* -* @date 8/9/18 -* @since 5.7.5 -* -* @param array $value A grouped array of WP_Terms objects. -* @param string $format The value format (term_id, slug). -* @return array -*/ + * acf_get_choices_from_grouped_terms + * + * Returns an array of choices from the grouped terms provided. + * + * @date 8/9/18 + * @since 5.7.5 + * + * @param array $value A grouped array of WP_Terms objects. + * @param string $format The value format (term_id, slug). + * @return array + */ function acf_get_choices_from_grouped_terms( $value, $format = 'term_id' ) { - + // vars $groups = array(); - + // loop over values - foreach( $value as $group => $terms ) { + foreach ( $value as $group => $terms ) { $groups[ $group ] = array(); - foreach( $terms as $term_id => $term ) { - $choice = acf_get_choice_from_term( $term, $format ); + foreach ( $terms as $term_id => $term ) { + $choice = acf_get_choice_from_term( $term, $format ); $groups[ $group ][ $choice['id'] ] = $choice['text']; } } - + // return return $groups; } /** -* acf_get_choice_from_term -* -* Returns an array containing the id and text for this item. -* -* @date 10/9/18 -* @since 5.7.6 -* -* @param object $item The item object such as WP_Post or WP_Term. -* @param string $format The value format (term_id, slug) -* @return array -*/ + * acf_get_choice_from_term + * + * Returns an array containing the id and text for this item. + * + * @date 10/9/18 + * @since 5.7.6 + * + * @param object $item The item object such as WP_Post or WP_Term. + * @param string $format The value format (term_id, slug) + * @return array + */ function acf_get_choice_from_term( $term, $format = 'term_id' ) { - + // vars - $id = $term->term_id; + $id = $term->term_id; $text = acf_get_term_title( $term ); - + // return format - if( $format == 'slug' ) { - $id = acf_encode_term($term); + if ( $format == 'slug' ) { + $id = acf_encode_term( $term ); } - + // return return array( - 'id' => $id, - 'text' => $text + 'id' => $id, + 'text' => $text, ); } - - -?> \ No newline at end of file +/** + * Returns a valid post_id string for a given term and taxonomy. + * No longer needed since WP introduced the termmeta table in WP 4.4. + * + * @date 6/2/17 + * @since 5.5.6 + * @deprecated 5.9.2 + * + * @param $taxonomy (string) The taxonomy type. + * @param $term_id (int) The term ID. + * @return (string) + */ +function acf_get_term_post_id( $taxonomy, $term_id ) { + _deprecated_function( __FUNCTION__, '5.9.2', 'string format term_%d' ); + return 'term_' . $term_id; +} diff --git a/includes/assets.php b/includes/assets.php index a8503c6..4b1400c 100644 --- a/includes/assets.php +++ b/includes/assets.php @@ -1,604 +1,616 @@ - $v ) { - $this->text[ $k ] = $v; - } - } - - /** - * Appends an array of l10n data. - * - * @date 13/4/18 - * @since 5.6.9 - * - * @param array $data An array of data for l10n. - * @return void - */ - public function add_data( $data ) { - foreach( (array) $data as $k => $v ) { - $this->data[ $k ] = $v; - } - } - - /** - * Registers the ACF scripts and styles. - * - * @date 10/4/18 - * @since 5.6.9 - * - * @param void - * @return void - */ - public function register_scripts() { - - // Extract vars. - $suffix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min'; - $version = acf_get_setting('version'); - - // Register scripts. - wp_register_script( 'acf', acf_get_url( 'assets/js/acf' . $suffix . '.js' ), array( 'jquery' ), $version ); - wp_register_script( 'acf-input', acf_get_url( 'assets/js/acf-input' . $suffix . '.js' ), array( 'jquery', 'jquery-ui-sortable', 'jquery-ui-resizable', 'acf' ), $version ); - wp_register_script( 'acf-field-group', acf_get_url( 'assets/js/acf-field-group' . $suffix . '.js' ), array( 'acf-input' ), $version ); - - // Register styles. - wp_register_style( 'acf-global', acf_get_url( 'assets/css/acf-global.css' ), array(), $version ); - wp_register_style( 'acf-input', acf_get_url( 'assets/css/acf-input.css' ), array('acf-global'), $version ); - wp_register_style( 'acf-field-group', acf_get_url( 'assets/css/acf-field-group.css' ), array('acf-input'), $version ); - /** - * Fires after core scripts and styles have been registered. + * Storage for i18n data. * - * @since 5.6.9 - * - * @param string $version The ACF version. - * @param string $suffix The potential ".min" filename suffix. + * @since 5.6.9 + * @var array */ - do_action( 'acf/register_scripts', $version, $suffix ); - } + public $text = array(); - /** - * Enqueues a script and sets up actions for priting supplemental scripts. - * - * @date 27/4/20 - * @since 5.9.0 - * - * @param string $name The script name. - * @return void - */ - public function enqueue_script( $name ) { - wp_enqueue_script( $name ); - $this->add_actions(); - } + /** + * Storage for l10n data. + * + * @since 5.6.9 + * @var array + */ + public $data = array(); - /** - * Enqueues a style. - * - * @date 27/4/20 - * @since 5.9.0 - * - * @param string $name The style name. - * @return void - */ - public function enqueue_style( $name ) { - wp_enqueue_style( $name ); - } - - /** - * Adds the actions needed to print supporting inline scripts. - * - * @date 27/4/20 - * @since 5.9.0 - * - * @param void - * @return void - */ - private function add_actions() { - - // Only run once. - if( acf_has_done('ACF_Assets::add_actions') ) { - return; + /** + * List of enqueue flags. + * + * @since 5.9.0 + * @var bool + */ + private $enqueue = array(); + + /** + * Constructor. + * + * @date 10/4/18 + * @since 5.6.9 + * + * @param void + * @return void + */ + public function __construct() { + add_action( 'init', array( $this, 'register_scripts' ) ); } - - // Add actions. - $this->add_action( 'admin_enqueue_scripts', 'enqueue_scripts' , 20 ); - $this->add_action( 'admin_print_scripts', 'print_scripts', 20 ); - $this->add_action( 'admin_print_footer_scripts', 'print_footer_scripts', 20 ); - } - - /** - * Extends the add_action() function with two additional features: - * 1. Renames $action depending on the current page (customizer, login, front-end). - * 2. Alters the priotiry or calls the method directly if the action has already passed. - * - * @date 28/4/20 - * @since 5.9.0 - * - * @param string $action The action name. - * @param string $method The method name. - * @param int $priority See add_action(). - * @param int $accepted_args See add_action(). - * @return void - */ - public function add_action( $action, $method, $priority = 10, $accepted_args = 1 ) { - - // Generate an array of action replacements. - $replacements = array( - 'customizer' => array( - 'admin_enqueue_scripts' => 'admin_enqueue_scripts', - 'admin_print_scripts' => 'customize_controls_print_scripts', - 'admin_head' => 'customize_controls_print_scripts', - 'admin_footer' => 'customize_controls_print_footer_scripts', - 'admin_print_footer_scripts' => 'customize_controls_print_footer_scripts' - ), - 'login' => array( - 'admin_enqueue_scripts' => 'login_enqueue_scripts', - 'admin_print_scripts' => 'login_head', - 'admin_head' => 'login_head', - 'admin_footer' => 'login_footer', - 'admin_print_footer_scripts' => 'login_footer' - ), - 'wp' => array( - 'admin_enqueue_scripts' => 'wp_enqueue_scripts', - 'admin_print_scripts' => 'wp_print_scripts', - 'admin_head' => 'wp_head', - 'admin_footer' => 'wp_footer', - 'admin_print_footer_scripts' => 'wp_print_footer_scripts' - ) - ); - - // Determine the current context. - if( did_action('customize_controls_init') ) { - $context = 'customizer'; - } elseif( did_action('login_form_register') ) { - $context = 'login'; - } elseif( is_admin() ) { - $context = 'admin'; - } else { - $context = 'wp'; - } - - // Replace action if possible. - if( isset( $replacements[ $context ][ $action ] ) ) { - $action = $replacements[ $context ][ $action ]; - } - - // Check if action is currently being or has already been run. - if( did_action($action) ) { - $doing = acf_doing_action( $action ); - if( $doing && $doing < $priority ) { - // Allow action to be added as per usual. - } else { - // Call method directly. - return call_user_func( array( $this, $method ) ); + + /** + * Magic __call method for backwards compatibility. + * + * @date 10/4/20 + * @since 5.9.0 + * + * @param string $name The method name. + * @param array $arguments The array of arguments. + * @return mixed + */ + public function __call( $name, $arguments ) { + switch ( $name ) { + case 'admin_enqueue_scripts': + case 'admin_print_scripts': + case 'admin_head': + case 'admin_footer': + case 'admin_print_footer_scripts': + _doing_it_wrong( __FUNCTION__, 'The ACF_Assets class should not be accessed directly.', '5.9.0' ); } } - - // Add action. - add_action( $action, array( $this, $method ), $priority, $accepted_args ); - } - - /** - * Generic controller for enqueuing scripts and styles. - * - * @date 28/4/20 - * @since 5.9.0 - * - * @param array $args { - * @type bool $uploader Whether or not to enqueue uploader scripts. - * } - * @return void - */ - public function enqueue( $args = array() ) { - - // Apply defaults. - $args = wp_parse_args($args, array( - 'input' => true, - 'uploader' => false - )); - - // Set enqueue flags and add actions. - if( $args['input'] ) { - $this->enqueue[] = 'input'; - } - if( $args['uploader'] ) { - $this->enqueue[] = 'uploader'; - } - $this->add_actions(); - } - - /** - * Enqueues the scripts and styles needed for the WP media uploader. - * - * @date 27/10/2014 - * @since 5.0.9 - * - * @param void - * @return void - */ - public function enqueue_uploader() { - - // Only run once. - if( acf_has_done('ACF_Assets::enqueue_uploader') ) { - return; - } - - // Enqueue media assets. - if( current_user_can('upload_files') ) { - wp_enqueue_media(); - } - - // Add actions. - $this->add_action( 'admin_footer', 'print_uploader_scripts', 1 ); /** - * Fires when enqueuing the uploader. + * Appends an array of i18n data. * - * @since 5.6.9 + * @date 13/4/18 + * @since 5.6.9 * - * @param void + * @param array $text An array of text for i18n. + * @return void */ - do_action( 'acf/enqueue_uploader' ); - } - - /** - * Enqueues and localizes scripts. - * - * @date 27/4/20 - * @since 5.9.0 - * - * @param void - * @return void - */ - public function enqueue_scripts() { - - // Enqueue input scripts. - if( in_array('input', $this->enqueue) ) { - wp_enqueue_script( 'acf-input' ); - wp_enqueue_style( 'acf-input' ); + public function add_text( $text ) { + foreach ( (array) $text as $k => $v ) { + $this->text[ $k ] = $v; + } } - // Enqueue media scripts. - if( in_array('uploader', $this->enqueue) ) { - $this->enqueue_uploader(); + /** + * Appends an array of l10n data. + * + * @date 13/4/18 + * @since 5.6.9 + * + * @param array $data An array of data for l10n. + * @return void + */ + public function add_data( $data ) { + foreach ( (array) $data as $k => $v ) { + $this->data[ $k ] = $v; + } } - // Localize text. - acf_localize_text(array( - - // Tooltip - 'Are you sure?' => __('Are you sure?','acf'), - 'Yes' => __('Yes','acf'), - 'No' => __('No','acf'), - 'Remove' => __('Remove','acf'), - 'Cancel' => __('Cancel','acf'), - )); - - // Localize "input" text. - if( wp_script_is('acf-input') ) { - acf_localize_text(array( - - // Unload - 'The changes you made will be lost if you navigate away from this page' => __('The changes you made will be lost if you navigate away from this page', 'acf'), - - // Validation - 'Validation successful' => __('Validation successful', 'acf'), - 'Validation failed' => __('Validation failed', 'acf'), - '1 field requires attention' => __('1 field requires attention', 'acf'), - '%d fields require attention' => __('%d fields require attention', 'acf'), - - // Other - 'Edit field group' => __('Edit field group', 'acf'), - )); - + /** + * Registers the ACF scripts and styles. + * + * @date 10/4/18 + * @since 5.6.9 + * + * @param void + * @return void + */ + public function register_scripts() { + // Extract vars. + $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min'; + $version = acf_get_setting( 'version' ); + + // Register scripts. + wp_register_script( 'acf', acf_get_url( 'assets/build/js/acf' . $suffix . '.js' ), array( 'jquery' ), $version ); + wp_register_script( 'acf-input', acf_get_url( 'assets/build/js/acf-input' . $suffix . '.js' ), array( 'jquery', 'jquery-ui-sortable', 'jquery-ui-resizable', 'acf' ), $version ); + wp_register_script( 'acf-field-group', acf_get_url( 'assets/build/js/acf-field-group' . $suffix . '.js' ), array( 'acf-input' ), $version ); + wp_register_script( 'acf-internal-post-type', acf_get_url( 'assets/build/js/acf-internal-post-type' . $suffix . '.js' ), array( 'acf-input' ), $version ); + + // Register styles. + wp_register_style( 'acf-global', acf_get_url( 'assets/build/css/acf-global.css' ), array( 'dashicons' ), $version ); + wp_register_style( 'acf-input', acf_get_url( 'assets/build/css/acf-input.css' ), array( 'acf-global' ), $version ); + wp_register_style( 'acf-field-group', acf_get_url( 'assets/build/css/acf-field-group.css' ), array( 'acf-input' ), $version ); + + /** + * Fires after core scripts and styles have been registered. + * + * @since 5.6.9 + * + * @param string $version The ACF version. + * @param string $suffix The potential ".min" filename suffix. + */ + do_action( 'acf/register_scripts', $version, $suffix ); + } + + /** + * Enqueues a script and sets up actions for priting supplemental scripts. + * + * @date 27/4/20 + * @since 5.9.0 + * + * @param string $name The script name. + * @return void + */ + public function enqueue_script( $name ) { + wp_enqueue_script( $name ); + $this->add_actions(); + } + + /** + * Enqueues a style. + * + * @date 27/4/20 + * @since 5.9.0 + * + * @param string $name The style name. + * @return void + */ + public function enqueue_style( $name ) { + wp_enqueue_style( $name ); + } + + /** + * Adds the actions needed to print supporting inline scripts. + * + * @date 27/4/20 + * @since 5.9.0 + * + * @param void + * @return void + */ + private function add_actions() { + + // Only run once. + if ( acf_has_done( 'ACF_Assets::add_actions' ) ) { + return; + } + + // Add actions. + $this->add_action( 'admin_enqueue_scripts', 'enqueue_scripts', 20 ); + $this->add_action( 'admin_print_scripts', 'print_scripts', 20 ); + $this->add_action( 'admin_print_footer_scripts', 'print_footer_scripts', 20 ); + } + + /** + * Extends the add_action() function with two additional features: + * 1. Renames $action depending on the current page (customizer, login, front-end). + * 2. Alters the priotiry or calls the method directly if the action has already passed. + * + * @date 28/4/20 + * @since 5.9.0 + * + * @param string $action The action name. + * @param string $method The method name. + * @param int $priority See add_action(). + * @param int $accepted_args See add_action(). + * @return void + */ + public function add_action( $action, $method, $priority = 10, $accepted_args = 1 ) { + + // Generate an array of action replacements. + $replacements = array( + 'customizer' => array( + 'admin_enqueue_scripts' => 'admin_enqueue_scripts', + 'admin_print_scripts' => 'customize_controls_print_scripts', + 'admin_head' => 'customize_controls_print_scripts', + 'admin_footer' => 'customize_controls_print_footer_scripts', + 'admin_print_footer_scripts' => 'customize_controls_print_footer_scripts', + ), + 'login' => array( + 'admin_enqueue_scripts' => 'login_enqueue_scripts', + 'admin_print_scripts' => 'login_head', + 'admin_head' => 'login_head', + 'admin_footer' => 'login_footer', + 'admin_print_footer_scripts' => 'login_footer', + ), + 'wp' => array( + 'admin_enqueue_scripts' => 'wp_enqueue_scripts', + 'admin_print_scripts' => 'wp_print_scripts', + 'admin_head' => 'wp_head', + 'admin_footer' => 'wp_footer', + 'admin_print_footer_scripts' => 'wp_print_footer_scripts', + ), + ); + + // Determine the current context. + if ( did_action( 'customize_controls_init' ) ) { + $context = 'customizer'; + } elseif ( did_action( 'login_form_register' ) ) { + $context = 'login'; + } elseif ( is_admin() ) { + $context = 'admin'; + } else { + $context = 'wp'; + } + + // Replace action if possible. + if ( isset( $replacements[ $context ][ $action ] ) ) { + $action = $replacements[ $context ][ $action ]; + } + + // Check if action is currently being or has already been run. + if ( did_action( $action ) ) { + $doing = acf_doing_action( $action ); + if ( $doing && $doing < $priority ) { + // Allow action to be added as per usual. + } else { + // Call method directly. + return call_user_func( array( $this, $method ) ); + } + } + + // Add action. + add_action( $action, array( $this, $method ), $priority, $accepted_args ); + } + + /** + * Generic controller for enqueuing scripts and styles. + * + * @date 28/4/20 + * @since 5.9.0 + * + * @param array $args { + * @type bool $uploader Whether or not to enqueue uploader scripts. + * } + * @return void + */ + public function enqueue( $args = array() ) { + + // Apply defaults. + $args = wp_parse_args( + $args, + array( + 'input' => true, + 'uploader' => false, + ) + ); + + // Set enqueue flags and add actions. + if ( $args['input'] ) { + $this->enqueue[] = 'input'; + } + if ( $args['uploader'] ) { + $this->enqueue[] = 'uploader'; + } + $this->add_actions(); + } + + /** + * Enqueues the scripts and styles needed for the WP media uploader. + * + * @date 27/10/2014 + * @since 5.0.9 + * + * @param void + * @return void + */ + public function enqueue_uploader() { + + // Only run once. + if ( acf_has_done( 'ACF_Assets::enqueue_uploader' ) ) { + return; + } + + // Enqueue media assets. + if ( current_user_can( 'upload_files' ) ) { + wp_enqueue_media(); + } + + // Add actions. + $this->add_action( 'admin_footer', 'print_uploader_scripts', 1 ); + + /** + * Fires when enqueuing the uploader. + * + * @since 5.6.9 + * + * @param void + */ + do_action( 'acf/enqueue_uploader' ); + } + + /** + * Enqueues and localizes scripts. + * + * @date 27/4/20 + * @since 5.9.0 + * + * @param void + * @return void + */ + public function enqueue_scripts() { + + // Enqueue input scripts. + if ( in_array( 'input', $this->enqueue ) ) { + wp_enqueue_script( 'acf-input' ); + wp_enqueue_style( 'acf-input' ); + } + + // Enqueue media scripts. + if ( in_array( 'uploader', $this->enqueue ) ) { + $this->enqueue_uploader(); + } + + // Localize text. + acf_localize_text( + array( + + // Tooltip + 'Are you sure?' => __( 'Are you sure?', 'acf' ), + 'Yes' => __( 'Yes', 'acf' ), + 'No' => __( 'No', 'acf' ), + 'Remove' => __( 'Remove', 'acf' ), + 'Cancel' => __( 'Cancel', 'acf' ), + ) + ); + + // Localize "input" text. + if ( wp_script_is( 'acf-input' ) ) { + acf_localize_text( + array( + + // Unload + 'The changes you made will be lost if you navigate away from this page' => __( 'The changes you made will be lost if you navigate away from this page', 'acf' ), + + // Validation + 'Validation successful' => __( 'Validation successful', 'acf' ), + 'Validation failed' => __( 'Validation failed', 'acf' ), + '1 field requires attention' => __( '1 field requires attention', 'acf' ), + '%d fields require attention' => __( '%d fields require attention', 'acf' ), + + // Other + 'Edit field group' => __( 'Edit field group', 'acf' ), + ) + ); + + /** + * Fires during "admin_enqueue_scripts" when ACF scripts are enqueued. + * + * @since 5.6.9 + * + * @param void + */ + do_action( 'acf/input/admin_enqueue_scripts' ); + } + /** * Fires during "admin_enqueue_scripts" when ACF scripts are enqueued. * - * @since 5.6.9 + * @since 5.6.9 * - * @param void + * @param void */ - do_action( 'acf/input/admin_enqueue_scripts' ); - } - - /** - * Fires during "admin_enqueue_scripts" when ACF scripts are enqueued. - * - * @since 5.6.9 - * - * @param void - */ - do_action( 'acf/admin_enqueue_scripts' ); - do_action( 'acf/enqueue_scripts' ); + do_action( 'acf/admin_enqueue_scripts' ); + do_action( 'acf/enqueue_scripts' ); - // Filter i18n translations that differ from English and localize script. - $text = array(); - foreach( $this->text as $k => $v ) { - if( str_replace('.verb', '', $k) !== $v ) { - $text[ $k ] = $v; + // Filter i18n translations that differ from English and localize script. + $text = array(); + foreach ( $this->text as $k => $v ) { + if ( str_replace( '.verb', '', $k ) !== $v ) { + $text[ $k ] = $v; + } + } + if ( $text ) { + wp_localize_script( 'acf', 'acfL10n', $text ); } } - if( $text ) { - wp_localize_script( 'acf', 'acfL10n', $text ); - } - } - - /** - * Prints scripts in head. - * - * @date 27/4/20 - * @since 5.9.0 - * - * @param void - * @return void - */ - public function print_scripts() { - if( wp_script_is('acf-input') ) { - + + /** + * Prints scripts in head. + * + * @date 27/4/20 + * @since 5.9.0 + * + * @param void + * @return void + */ + public function print_scripts() { + if ( wp_script_is( 'acf-input' ) ) { + + /** + * Fires during "admin_head" when ACF scripts are enqueued. + * + * @since 5.6.9 + * + * @param void + */ + do_action( 'acf/input/admin_head' ); + do_action( 'acf/input/admin_print_scripts' ); + } + /** * Fires during "admin_head" when ACF scripts are enqueued. * - * @since 5.6.9 + * @since 5.6.9 * - * @param void + * @param void */ - do_action( 'acf/input/admin_head' ); - do_action( 'acf/input/admin_print_scripts' ); + do_action( 'acf/admin_head' ); + do_action( 'acf/admin_print_scripts' ); } /** - * Fires during "admin_head" when ACF scripts are enqueued. + * Prints scripts in footer. * - * @since 5.6.9 + * @date 27/4/20 + * @since 5.9.0 * - * @param void + * @param void + * @return void */ - do_action( 'acf/admin_head' ); - do_action( 'acf/admin_print_scripts' ); - } - - /** - * Prints scripts in footer. - * - * @date 27/4/20 - * @since 5.9.0 - * - * @param void - * @return void - */ - public function print_footer_scripts() { - global $wp_version; - - // Bail early if 'acf' script was never enqueued (fixes Elementor enqueue reset conflict). - if( !wp_script_is('acf') ) { - return; - } - - // Localize data. - acf_localize_data(array( - 'admin_url' => admin_url(), - 'ajaxurl' => admin_url( 'admin-ajax.php' ), - 'nonce' => wp_create_nonce( 'acf_nonce' ), - 'acf_version' => acf_get_setting('version'), - 'wp_version' => $wp_version, - 'browser' => acf_get_browser(), - 'locale' => acf_get_locale(), - 'rtl' => is_rtl(), - 'screen' => acf_get_form_data('screen'), - 'post_id' => acf_get_form_data('post_id'), - 'validation' => acf_get_form_data('validation'), - 'editor' => acf_is_block_editor() ? 'block' : 'classic' - )); - - // Print inline script. - printf( "\n", 'acf.data = ' . wp_json_encode( $this->data ) . ';' ); - - if( wp_script_is('acf-input') ) { - - /** - * Filters an empty array for compat l10n data. - * - * @since 5.0.0 - * - * @param array $data An array of data to append to. - */ - $compat_l10n = apply_filters( 'acf/input/admin_l10n', array() ); - if( $compat_l10n ) { - printf( "\n", 'acf.l10n = ' . wp_json_encode( $compat_l10n ) . ';' ); + public function print_footer_scripts() { + global $wp_version; + + // Bail early if 'acf' script was never enqueued (fixes Elementor enqueue reset conflict). + if ( ! wp_script_is( 'acf' ) ) { + return; } - + + // Localize data. + acf_localize_data( + array( + 'admin_url' => admin_url(), + 'ajaxurl' => admin_url( 'admin-ajax.php' ), + 'nonce' => wp_create_nonce( 'acf_nonce' ), + 'acf_version' => acf_get_setting( 'version' ), + 'wp_version' => $wp_version, + 'browser' => acf_get_browser(), + 'locale' => acf_get_locale(), + 'rtl' => is_rtl(), + 'screen' => acf_get_form_data( 'screen' ), + 'post_id' => acf_get_form_data( 'post_id' ), + 'validation' => acf_get_form_data( 'validation' ), + 'editor' => acf_is_block_editor() ? 'block' : 'classic', + 'is_pro' => defined( 'ACF_PRO' ) && ACF_PRO, + ) + ); + + // Print inline script. + printf( "\n", 'acf.data = ' . wp_json_encode( $this->data ) . ';' ); + + if ( wp_script_is( 'acf-input' ) ) { + + /** + * Filters an empty array for compat l10n data. + * + * @since 5.0.0 + * + * @param array $data An array of data to append to. + */ + $compat_l10n = apply_filters( 'acf/input/admin_l10n', array() ); + if ( $compat_l10n ) { + printf( "\n", 'acf.l10n = ' . wp_json_encode( $compat_l10n ) . ';' ); + } + + /** + * Fires during "admin_footer" when ACF scripts are enqueued. + * + * @since 5.6.9 + * + * @param void + */ + do_action( 'acf/input/admin_footer' ); + do_action( 'acf/input/admin_print_footer_scripts' ); + } + /** * Fires during "admin_footer" when ACF scripts are enqueued. * - * @since 5.6.9 + * @since 5.6.9 * - * @param void + * @param void */ - do_action( 'acf/input/admin_footer' ); - do_action( 'acf/input/admin_print_footer_scripts' ); + do_action( 'acf/admin_footer' ); + do_action( 'acf/admin_print_footer_scripts' ); + + // Once all data is localized, trigger acf.prepare() to execute functionality before DOM ready. + printf( "\n", "acf.doAction( 'prepare' );" ); } - + /** - * Fires during "admin_footer" when ACF scripts are enqueued. + * Prints uploader scripts in footer. * - * @since 5.6.9 + * @date 11/06/2020 + * @since 5.9.0 * - * @param void + * @param void + * @return void */ - do_action( 'acf/admin_footer' ); - do_action( 'acf/admin_print_footer_scripts' ); - - // Once all data is localized, trigger acf.prepare() to execute functionality before DOM ready. - printf( "\n", "acf.doAction( 'prepare' );" ); - } - - /** - * Prints uploader scripts in footer. - * - * @date 11/06/2020 - * @since 5.9.0 - * - * @param void - * @return void - */ - public function print_uploader_scripts() { - // Todo: investigate output-buffer to hide HTML. - ?> + public function print_uploader_scripts() { + // Todo: investigate output-buffer to hide HTML. + ?> - add_text( $text ); + return acf_get_instance( 'ACF_Assets' )->add_text( $text ); } /** * Appends an array of l10n data for localization. * - * @date 13/4/18 - * @since 5.6.9 + * @date 13/4/18 + * @since 5.6.9 * - * @param array $data An array of data for l10n. - * @return void + * @param array $data An array of data for l10n. + * @return void */ function acf_localize_data( $data ) { - return acf_get_instance('ACF_Assets')->add_data( $data ); + return acf_get_instance( 'ACF_Assets' )->add_data( $data ); } /** * Enqueues a script with support for supplemental inline scripts. * - * @date 27/4/20 - * @since 5.9.0 + * @date 27/4/20 + * @since 5.9.0 * - * @param string $name The script name. - * @return void + * @param string $name The script name. + * @return void */ function acf_enqueue_script( $name ) { - return acf_get_instance('ACF_Assets')->enqueue_script( $name ); + return acf_get_instance( 'ACF_Assets' )->enqueue_script( $name ); } /** * Enqueues the input scripts required for fields. * - * @date 13/4/18 - * @since 5.6.9 + * @date 13/4/18 + * @since 5.6.9 * - * @param array $args See ACF_Assets::enqueue_scripts() for a list of args. - * @return void + * @param array $args See ACF_Assets::enqueue_scripts() for a list of args. + * @return void */ function acf_enqueue_scripts( $args = array() ) { - return acf_get_instance('ACF_Assets')->enqueue( $args ); + return acf_get_instance( 'ACF_Assets' )->enqueue( $args ); } /** * Enqueues the WP media uploader scripts and styles. * - * @date 27/10/2014 - * @since 5.0.9 + * @date 27/10/2014 + * @since 5.0.9 * - * @param void - * @return void + * @param void + * @return void */ function acf_enqueue_uploader() { - return acf_get_instance('ACF_Assets')->enqueue_uploader(); + return acf_get_instance( 'ACF_Assets' )->enqueue_uploader(); } diff --git a/includes/class-acf-data.php b/includes/class-acf-data.php index 455410b..eea5ad9 100644 --- a/includes/class-acf-data.php +++ b/includes/class-acf-data.php @@ -1,354 +1,357 @@ -cid = acf_uniqid(); - - // Set data. - if( $data ) { - $this->set( $data ); - } - - // Initialize. - $this->initialize(); - } - - /** - * initialize - * - * Called during constructor to setup class functionality. - * - * @date 9/1/19 - * @since 5.7.10 - * - * @param void - * @return void - */ - function initialize() { - // Do nothing. - } - - /** - * prop - * - * Sets a property for the given name and returns $this for chaining. - * - * @date 9/1/19 - * @since 5.7.10 - * - * @param (string|array) $name The data name or an array of data. - * @param mixed $value The data value. - * @return ACF_Data - */ - function prop( $name = '', $value = null ) { - - // Update property. - $this->{$name} = $value; - - // Return this for chaining. - return $this; - } - - /** - * _key - * - * Returns a key for the given name allowing aliasses to work. - * - * @date 18/1/19 - * @since 5.7.10 - * - * @param type $var Description. Default. - * @return type Description. - */ - function _key( $name = '' ) { - return isset($this->aliases[ $name ]) ? $this->aliases[ $name ] : $name; - } - - /** - * has - * - * Returns true if this has data for the given name. - * - * @date 9/1/19 - * @since 5.7.10 - * - * @param string $name The data name. - * @return boolean - */ - function has( $name = '' ) { - $key = $this->_key($name); - return isset($this->data[ $key ]); - } - - /** - * is - * - * Similar to has() but does not check aliases. - * - * @date 7/2/19 - * @since 5.7.11 - * - * @param type $var Description. Default. - * @return type Description. - */ - function is( $key = '' ) { - return isset($this->data[ $key ]); - } - - /** - * get - * - * Returns data for the given name of null if doesn't exist. - * - * @date 9/1/19 - * @since 5.7.10 - * - * @param string $name The data name. - * @return mixed - */ - function get( $name = false ) { - - // Get all. - if( $name === false ) { - return $this->data; - - // Get specific. - } else { - $key = $this->_key($name); - return isset($this->data[ $key ]) ? $this->data[ $key ] : null; - } - } - - /** - * get_data - * - * Returns an array of all data. - * - * @date 9/1/19 - * @since 5.7.10 - * - * @param void - * @return array - */ - function get_data() { - return $this->data; - } - - /** - * set - * - * Sets data for the given name and returns $this for chaining. - * - * @date 9/1/19 - * @since 5.7.10 - * - * @param (string|array) $name The data name or an array of data. - * @param mixed $value The data value. - * @return ACF_Data - */ - function set( $name = '', $value = null ) { - - // Set multiple. - if( is_array($name) ) { - $this->data = array_merge($this->data, $name); - - // Set single. - } else { - $this->data[ $name ] = $value; - } - - // Return this for chaining. - return $this; - } - - /** - * append - * - * Appends data for the given name and returns $this for chaining. - * - * @date 9/1/19 - * @since 5.7.10 - * - * @param mixed $value The data value. - * @return ACF_Data - */ - function append( $value = null ) { - - // Append. - $this->data[] = $value; - - // Return this for chaining. - return $this; - } - - /** - * remove - * - * Removes data for the given name. - * - * @date 9/1/19 - * @since 5.7.10 - * - * @param string $name The data name. - * @return ACF_Data - */ - function remove( $name = '' ) { - - // Remove data. - unset( $this->data[ $name ] ); - - // Return this for chaining. - return $this; - } - - /** - * reset - * - * Resets the data. - * - * @date 22/1/19 - * @since 5.7.10 - * - * @param void - * @return void - */ - function reset() { - $this->data = array(); - $this->aliases = array(); - } - - /** - * count - * - * Returns the data count. - * - * @date 23/1/19 - * @since 5.7.10 - * - * @param void - * @return int - */ - function count() { - return count( $this->data ); - } - - /** - * query - * - * Returns a filtered array of data based on the set of key => value arguments. - * - * @date 23/1/19 - * @since 5.7.10 - * - * @param void - * @return int - */ - function query( $args, $operator = 'AND' ) { - return wp_list_filter( $this->data, $args, $operator ); - } - - /** - * alias - * - * Sets an alias for the given name allowing data to be found via multiple identifiers. - * - * @date 18/1/19 - * @since 5.7.10 - * - * @param type $var Description. Default. - * @return type Description. - */ - function alias( $name = '' /*, $alias, $alias2, etc */ ) { - - // Get all aliases. - $args = func_get_args(); - array_shift( $args ); - - // Loop over aliases and add to data. - foreach( $args as $alias ) { - $this->aliases[ $alias ] = $name; - } - - // Return this for chaining. - return $this; - } - - /** - * switch_site - * - * Triggered when switching between sites on a multisite installation. - * - * @date 13/2/19 - * @since 5.7.11 - * - * @param int $site_id New blog ID. - * @param int prev_blog_id Prev blog ID. - * @return void - */ - function switch_site( $site_id, $prev_site_id ) { - - // Bail early if not multisite compatible. - if( !$this->multisite ) { - return; - } - - // Bail early if no change in blog ID. - if( $site_id === $prev_site_id ) { - return; - } - - // Create storage. - if( !isset($this->site_data) ) { - $this->site_data = array(); - $this->site_aliases = array(); - } - - // Save state. - $this->site_data[ $prev_site_id ] = $this->data; - $this->site_aliases[ $prev_site_id ] = $this->aliases; - - // Reset state. - $this->data = array(); - $this->aliases = array(); - - // Load state. - if( isset($this->site_data[ $site_id ]) ) { - $this->data = $this->site_data[ $site_id ]; - $this->aliases = $this->site_aliases[ $site_id ]; - unset( $this->site_data[ $site_id ] ); - unset( $this->site_aliases[ $site_id ] ); - } - } +if ( ! defined( 'ABSPATH' ) ) { + exit; // Exit if accessed directly. } +if ( ! class_exists( 'ACF_Data' ) ) : + + #[AllowDynamicProperties] + class ACF_Data { + + /** @var string Unique identifier. */ + var $cid = ''; + + /** @var array Storage for data. */ + var $data = array(); + + /** @var array Storage for data aliases. */ + var $aliases = array(); + + /** @var bool Enables unique data per site. */ + var $multisite = false; + + /** + * __construct + * + * Sets up the class functionality. + * + * @date 9/1/19 + * @since 5.7.10 + * + * @param array $data Optional data to set. + * @return void + */ + function __construct( $data = false ) { + + // Set cid. + $this->cid = acf_uniqid(); + + // Set data. + if ( $data ) { + $this->set( $data ); + } + + // Initialize. + $this->initialize(); + } + + /** + * initialize + * + * Called during constructor to setup class functionality. + * + * @date 9/1/19 + * @since 5.7.10 + * + * @param void + * @return void + */ + function initialize() { + // Do nothing. + } + + /** + * prop + * + * Sets a property for the given name and returns $this for chaining. + * + * @date 9/1/19 + * @since 5.7.10 + * + * @param (string|array) $name The data name or an array of data. + * @param mixed $value The data value. + * @return ACF_Data + */ + function prop( $name = '', $value = null ) { + + // Update property. + $this->{$name} = $value; + + // Return this for chaining. + return $this; + } + + /** + * _key + * + * Returns a key for the given name allowing aliasses to work. + * + * @date 18/1/19 + * @since 5.7.10 + * + * @param type $var Description. Default. + * @return type Description. + */ + function _key( $name = '' ) { + return isset( $this->aliases[ $name ] ) ? $this->aliases[ $name ] : $name; + } + + /** + * has + * + * Returns true if this has data for the given name. + * + * @date 9/1/19 + * @since 5.7.10 + * + * @param string $name The data name. + * @return boolean + */ + function has( $name = '' ) { + $key = $this->_key( $name ); + return isset( $this->data[ $key ] ); + } + + /** + * is + * + * Similar to has() but does not check aliases. + * + * @date 7/2/19 + * @since 5.7.11 + * + * @param type $var Description. Default. + * @return type Description. + */ + function is( $key = '' ) { + return isset( $this->data[ $key ] ); + } + + /** + * get + * + * Returns data for the given name of null if doesn't exist. + * + * @date 9/1/19 + * @since 5.7.10 + * + * @param string $name The data name. + * @return mixed + */ + function get( $name = false ) { + + // Get all. + if ( $name === false ) { + return $this->data; + + // Get specific. + } else { + $key = $this->_key( $name ); + return isset( $this->data[ $key ] ) ? $this->data[ $key ] : null; + } + } + + /** + * get_data + * + * Returns an array of all data. + * + * @date 9/1/19 + * @since 5.7.10 + * + * @param void + * @return array + */ + function get_data() { + return $this->data; + } + + /** + * set + * + * Sets data for the given name and returns $this for chaining. + * + * @date 9/1/19 + * @since 5.7.10 + * + * @param (string|array) $name The data name or an array of data. + * @param mixed $value The data value. + * @return ACF_Data + */ + function set( $name = '', $value = null ) { + + // Set multiple. + if ( is_array( $name ) ) { + $this->data = array_merge( $this->data, $name ); + + // Set single. + } else { + $this->data[ $name ] = $value; + } + + // Return this for chaining. + return $this; + } + + /** + * append + * + * Appends data for the given name and returns $this for chaining. + * + * @date 9/1/19 + * @since 5.7.10 + * + * @param mixed $value The data value. + * @return ACF_Data + */ + function append( $value = null ) { + + // Append. + $this->data[] = $value; + + // Return this for chaining. + return $this; + } + + /** + * remove + * + * Removes data for the given name. + * + * @date 9/1/19 + * @since 5.7.10 + * + * @param string $name The data name. + * @return ACF_Data + */ + function remove( $name = '' ) { + + // Remove data. + unset( $this->data[ $name ] ); + + // Return this for chaining. + return $this; + } + + /** + * reset + * + * Resets the data. + * + * @date 22/1/19 + * @since 5.7.10 + * + * @param void + * @return void + */ + function reset() { + $this->data = array(); + $this->aliases = array(); + } + + /** + * count + * + * Returns the data count. + * + * @date 23/1/19 + * @since 5.7.10 + * + * @param void + * @return int + */ + function count() { + return count( $this->data ); + } + + /** + * query + * + * Returns a filtered array of data based on the set of key => value arguments. + * + * @date 23/1/19 + * @since 5.7.10 + * + * @param void + * @return int + */ + function query( $args, $operator = 'AND' ) { + return wp_list_filter( $this->data, $args, $operator ); + } + + /** + * alias + * + * Sets an alias for the given name allowing data to be found via multiple identifiers. + * + * @date 18/1/19 + * @since 5.7.10 + * + * @param type $var Description. Default. + * @return type Description. + */ + function alias( $name = '' /*, $alias, $alias2, etc */ ) { + + // Get all aliases. + $args = func_get_args(); + array_shift( $args ); + + // Loop over aliases and add to data. + foreach ( $args as $alias ) { + $this->aliases[ $alias ] = $name; + } + + // Return this for chaining. + return $this; + } + + /** + * switch_site + * + * Triggered when switching between sites on a multisite installation. + * + * @date 13/2/19 + * @since 5.7.11 + * + * @param int $site_id New blog ID. + * @param int prev_blog_id Prev blog ID. + * @return void + */ + function switch_site( $site_id, $prev_site_id ) { + + // Bail early if not multisite compatible. + if ( ! $this->multisite ) { + return; + } + + // Bail early if no change in blog ID. + if ( $site_id === $prev_site_id ) { + return; + } + + // Create storage. + if ( ! isset( $this->site_data ) ) { + $this->site_data = array(); + $this->site_aliases = array(); + } + + // Save state. + $this->site_data[ $prev_site_id ] = $this->data; + $this->site_aliases[ $prev_site_id ] = $this->aliases; + + // Reset state. + $this->data = array(); + $this->aliases = array(); + + // Load state. + if ( isset( $this->site_data[ $site_id ] ) ) { + $this->data = $this->site_data[ $site_id ]; + $this->aliases = $this->site_aliases[ $site_id ]; + unset( $this->site_data[ $site_id ] ); + unset( $this->site_aliases[ $site_id ] ); + } + } + } + endif; // class_exists check diff --git a/includes/class-acf-internal-post-type.php b/includes/class-acf-internal-post-type.php new file mode 100644 index 0000000..232005f --- /dev/null +++ b/includes/class-acf-internal-post-type.php @@ -0,0 +1,931 @@ +store )->prop( 'multisite', true ); + + $internal_post_types_store = acf_get_store( 'internal-post-types' ); + + if ( ! $internal_post_types_store ) { + $internal_post_types_store = acf_register_store( 'internal-post-types' ); + } + + $internal_post_types_store->set( $this->post_type, get_class( $this ) ); + + add_action( "acf/validate_{$this->hook_name}", array( $this, 'translate_post' ) ); + + add_filter( 'wp_unique_post_slug', array( $this, 'apply_unique_post_slug' ), 999, 6 ); + add_action( 'wp_untrash_post_status', array( $this, 'untrash_post_status' ), 10, 3 ); + } + + /** + * Get an ACF CPT object as an array. + * + * @since 6.1 + * + * @param int|WP_Post $id The post ID being queried. + * @return array|bool The main ACF array for the post, or false on failure. + */ + public function get_post( $id = 0 ) { + // Allow WP_Post to be passed. + if ( is_object( $id ) ) { + $id = $id->ID; + } + + // Check store. + $store = acf_get_store( $this->store ); + if ( $store->has( $id ) ) { + return $store->get( $id ); + } + + if ( acf_is_local_internal_post_type( $id, $this->post_type ) ) { + $post = acf_get_local_internal_post_type( $id, $this->post_type ); + } else { + $post = $this->get_raw_post( $id ); + } + + // Bail early if no post. + if ( ! $post ) { + return false; + } + + $post = $this->validate_post( $post ); + + /** + * Filters the post array after it has been loaded. + * + * @date 12/02/2014 + * @since 5.0.0 + * + * @param array $post The post array. + */ + $post = apply_filters( "acf/load_{$this->hook_name}", $post ); + + // Store field group using aliases to also find via key, ID and name. + $store->set( $post['key'], $post ); + $store->alias( $post['key'], $post['ID'] ); + + return $post; + } + + /** + * Retrieves raw post data for the given identifier. + * + * @since 6.1 + * + * @param int|string $id The field ID, key or name. + * @return array|false The field group array, or false on failure. + */ + public function get_raw_post( $id = 0 ) { + // Get raw internal post from database. + $post = $this->get_post_object( $id ); + if ( ! $post ) { + return false; + } + + // Bail early if incorrect post type. + if ( $post->post_type !== $this->post_type ) { + return false; + } + + // Unserialize post_content. + $raw_post = (array) acf_maybe_unserialize( $post->post_content ); + + // Update attributes. + $raw_post['ID'] = $post->ID; + $raw_post['title'] = $post->post_title; + $raw_post['key'] = $post->post_name; + $raw_post['menu_order'] = $post->menu_order; + $raw_post['active'] = in_array( $post->post_status, array( 'publish', 'auto-draft' ) ); + + return $raw_post; + } + + /** + * Retrieves the WP_Post object for an ACF internal CPT. + * + * @since 6.1 + * + * @param int|string $id The post ID, key, or name. + * @return WP_Post|bool The post object, or false on failure. + */ + public function get_post_object( $id = 0 ) { + if ( is_numeric( $id ) ) { + $post_object = get_post( $id ); + + if ( $post_object && $post_object->post_type === $this->post_type ) { + return $post_object; + } + + return false; + } + + if ( is_string( $id ) ) { + // Try cache. + $cache_key = $this->cache_key . $id; + $post_id = wp_cache_get( $cache_key, 'acf' ); + + if ( $post_id === false ) { + $query_key = 'acf_' . $this->post_key_prefix . 'key'; + + // Query posts. + $posts = get_posts( + array( + 'posts_per_page' => 1, + 'post_type' => $this->post_type, + 'post_status' => array( 'publish', 'acf-disabled', 'trash' ), + 'orderby' => 'menu_order title', + 'order' => 'ASC', + 'suppress_filters' => false, + 'cache_results' => true, + 'update_post_meta_cache' => false, + 'update_post_term_cache' => false, + $query_key => $id, // Used to check post_name for field group/post type/taxonomy key. + ) + ); + + // Update $post_id with a non-false value. + $post_id = $posts ? $posts[0]->ID : 0; + + // Update cache. + wp_cache_set( $cache_key, $post_id, 'acf' ); + } + + // Check $post_id and return the post when possible. + if ( $post_id ) { + return get_post( $post_id ); + } + } + + return false; + } + + /** + * Returns true if the given identifier is an ACF post key. + * + * @since 6.1 + * + * @param string $id The identifier. + * @return bool + */ + public function is_post_key( $id = '' ) { + // Check if $id is a string starting with $this->post_key. + if ( is_string( $id ) && substr( $id, 0, strlen( $this->post_key_prefix ) ) === $this->post_key_prefix ) { + return true; + } + + /** + * Filters whether the $id is an ACF post key. + * + * @date 23/1/19 + * @since 5.7.10 + * + * @param bool $bool The result. + * @param string $id The identifier. + */ + return apply_filters( "acf/is_{$this->hook_name}_key", false, $id, $this->post_type ); + } + + /** + * Validates an ACF internal post type. + * + * @since 6.1 + * + * @param array $post The main post array. + * @return array + */ + public function validate_post( $post = array() ) { + // Bail early if already valid. + if ( is_array( $post ) && ! empty( $post['_valid'] ) ) { + return $post; + } + + $post = wp_parse_args( + $post, + $this->get_settings_array() + ); + + // Convert types. + $post['ID'] = (int) $post['ID']; + $post['menu_order'] = (int) $post['menu_order']; + $post['active'] = (bool) $post['active']; + + // Post is now valid. + $post['_valid'] = true; + + /** + * Filters the ACF post array to validate settings. + * + * @date 12/02/2014 + * @since 5.0.0 + * + * @param array $post The post array. + */ + return apply_filters( "acf/validate_{$this->hook_name}", $post ); + } + + /** + * Validates post type values before allowing save from the global $_POST object. + * Errors are added to the form using acf_add_internal_post_type_validation_error(). + * + * @since 6.1 + * + * @return bool + */ + public function ajax_validate_values() {} + + /** + * Ensures the given ACF post is valid. + * + * @since 6.1 + * + * @param array $post The main post array. + * @return array + */ + public function get_valid_post( $post = false ) { + return $this->validate_post( $post ); + } + + /** + * Gets the default settings array for an ACF post type. + * + * @return array + */ + public function get_settings_array() { + return array(); + } + + /** + * Translates an ACF post. + * + * @since 6.1 + * + * @param array $post The field group array. + * @return array + */ + public function translate_post( $post = array() ) { + // Get settings. + $l10n = acf_get_setting( 'l10n' ); + $l10n_textdomain = acf_get_setting( 'l10n_textdomain' ); + + // Translate field settings if textdomain is set. + if ( $l10n && $l10n_textdomain ) { + $post['title'] = acf_translate( $post['title'] ); + + /** + * Filters the post array to translate strings. + * + * @date 12/02/2014 + * @since 5.0.0 + * + * @param array $post The post array. + */ + $post = apply_filters( "acf/translate_{$this->hook_name}", $post ); + } + + return $post; + } + + /** + * Returns an array of ACF posts for the given $filter. + * + * @since 6.1 + * + * @param array $filter An array of args to filter by. + * @return array + */ + public function get_posts( $filter = array() ) { + $posts = array(); + + // Check database. + $raw_posts = $this->get_raw_posts(); + if ( $raw_posts ) { + foreach ( $raw_posts as $raw_post ) { + $posts[] = $this->get_post( $raw_post['ID'] ); + } + } + + /** + * Filters the posts array. + * + * @date 12/02/2014 + * @since 5.0.0 + * + * @param array $posts The array of ACF posts. + */ + $posts = apply_filters( "acf/load_{$this->hook_name_plural}", $posts, $this->post_type ); + + // Filter results. + if ( $filter && $posts ) { + return $this->filter_posts( $posts, $filter ); + } + + return $posts; + } + + /** + * Returns an array of raw ACF post data. + * + * @since 6.1 + * + * @return array + */ + public function get_raw_posts() { + // Try cache. + $cache_key = acf_cache_key( $this->cache_key_plural ); + $post_ids = wp_cache_get( $cache_key, 'acf' ); // TODO: Do we need to change the group at all? + + if ( $post_ids === false ) { + + // Query posts. + $posts = get_posts( + array( + 'posts_per_page' => -1, + 'post_type' => $this->post_type, + 'orderby' => 'menu_order title', + 'order' => 'ASC', + 'suppress_filters' => false, // Allow WPML to modify the query. + 'cache_results' => true, + 'update_post_meta_cache' => false, + 'update_post_term_cache' => false, + 'post_status' => array( 'publish', 'acf-disabled' ), + ) + ); + + // Update $post_ids with a non-false value. + $post_ids = array(); + foreach ( $posts as $post ) { + $post_ids[] = $post->ID; + } + + // Update cache. + wp_cache_set( $cache_key, $post_ids, 'acf' ); + } + + // Loop over ids and populate array of ACF posts. + $return = array(); + foreach ( $post_ids as $post_id ) { + $raw_post = $this->get_raw_post( $post_id ); + if ( $raw_post ) { + $return[] = $raw_post; + } + } + + return $return; + } + + /** + * Filter the posts returned by $this->get_posts(). + * + * @since 6.1 + * + * @param array $posts An array of posts to filter. + * @param array $args An array of args to filter by. + * @return array + */ + public function filter_posts( $posts, $args = array() ) { + if ( ! empty( $args['active'] ) ) { + $posts = array_filter( + $posts, + function( $post ) { + return $post['active']; + } + ); + } + + return $posts; + } + + /** + * Updates an ACF post. + * + * @since 6.1 + * + * @param array $post The ACF post to update. + * @return array + */ + public function update_post( $post ) { + // Validate internal post type. + $post = $this->validate_post( $post ); + + // May have been posted. Remove slashes. + $post = wp_unslash( $post ); + + // Parse types (converts string '0' to int 0). + $post = acf_parse_types( $post ); + + /** + * Fires before updating an ACF post in the database. + * + * @since 6.1 + * + * @param array $post The main ACF post array. + */ + $post = apply_filters( "acf/pre_update_{$this->hook_name}", $post ); + + // Make a backup of internal post type data and remove some args. + $_post = $post; + acf_extract_vars( $_post, array( 'ID', 'key', 'title', 'menu_order', 'fields', 'active', '_valid' ) ); + + // Create array of data to save. + $save = array( + 'ID' => $post['ID'], + 'post_status' => $post['active'] ? 'publish' : 'acf-disabled', + 'post_type' => $this->post_type, + 'post_title' => $post['title'], + 'post_name' => $post['key'], + 'post_excerpt' => sanitize_title( $post['title'] ), + 'post_content' => maybe_serialize( $_post ), + 'menu_order' => $post['menu_order'], + 'comment_status' => 'closed', + 'ping_status' => 'closed', + ); + + // Unhook wp_targeted_link_rel() filter from WP 5.1 corrupting serialized data. + remove_filter( 'content_save_pre', 'wp_targeted_link_rel' ); + + // Slash data. + // WP expects all data to be slashed and will unslash it (fixes '\' character issues). + $save = wp_slash( $save ); + + // Update or Insert. + if ( $post['ID'] ) { + wp_update_post( $save ); + } else { + $post['ID'] = wp_insert_post( $save ); + } + + $this->flush_post_cache( $post ); + + /** + * Fires immediately after an ACF post has been updated. + * + * @since 6.1 + * + * @param array $post The main ACF post array. + */ + do_action( "acf/update_{$this->hook_name}", $post ); + + return $post; + } + + /** + * Allows full control over ACF post slugs. + * + * @since 6.1 + * + * @param string $slug The post slug. + * @param int $post_ID Post ID. + * @param string $post_status The post status. + * @param string $post_type Post type. + * @param int $post_parent Post parent ID. + * @param string $original_slug The original post slug. + * @return string + */ + public function apply_unique_post_slug( $slug, $post_ID, $post_status, $post_type, $post_parent, $original_slug ) { + // Check post type and reset to original value. + if ( $post_type === $this->post_type ) { + return $original_slug; + } + + return $slug; + } + + /** + * Deletes all caches for this ACF post. + * + * @since 6.1 + * + * @param array $post The ACF post array. + * @return void + */ + public function flush_post_cache( $post ) { + // Delete stored data. + acf_get_store( $this->store )->remove( $post['key'] ); + + // Flush cached post_id for this field group's key. + wp_cache_delete( acf_cache_key( $this->cache_key . $post['key'] ), 'acf' ); + + // Flush cached array of post_ids for collection of field groups. + wp_cache_delete( acf_cache_key( $this->cache_key_plural ), 'acf' ); + } + + /** + * Deletes an ACF post. + * + * @since 6.1 + * + * @param int|string $id The ID of the ACF post to delete. + * @return bool + */ + public function delete_post( $id = 0 ) { + // Disable filters to ensure ACF loads data from DB. + acf_disable_filters(); + + // Get the post. + $post = $this->get_post( $id ); + + // Bail early if post was not found. + if ( ! $post || ! $post['ID'] ) { + return false; + } + + // Delete post and flush cache. + wp_delete_post( $post['ID'], true ); + $this->flush_post_cache( $post ); + + /** + * Fires immediately after an ACF post has been deleted. + * + * @date 12/02/2014 + * @since 5.0.0 + * + * @param array $post The ACF post array. + */ + do_action( "acf/delete_{$this->hook_name}", $post ); + + return true; + } + + /** + * Trashes an ACF post. + * + * @since 6.1 + * + * @param int|string $id The ID of the ACF post to trash. + * @return bool + */ + public function trash_post( $id = 0 ) { + // Disable filters to ensure ACF loads data from DB. + acf_disable_filters(); + + $post = $this->get_post( $id ); + if ( ! $post || ! $post['ID'] ) { + return false; + } + + wp_trash_post( $post['ID'] ); + $this->flush_post_cache( $post ); + + /** + * Fires immediately after a field_group has been trashed. + * + * @date 12/02/2014 + * @since 5.0.0 + * + * @param array $post The ACF post array. + */ + do_action( "acf/trash_{$this->hook_name}", $post ); + + return true; + } + + /** + * Restores an ACF post from the trash. + * + * @since 6.1 + * + * @param int|string $id The ID of the ACF post to untrash. + * @return bool + */ + public function untrash_post( $id = 0 ) { + // Disable filters to ensure ACF loads data from DB. + acf_disable_filters(); + + $post = $this->get_post( $id ); + if ( ! $post || ! $post['ID'] ) { + return false; + } + + wp_untrash_post( $post['ID'] ); + $this->flush_post_cache( $post ); + + /** + * Fires immediately after an ACF post has been untrashed. + * + * @date 12/02/2014 + * @since 5.0.0 + * + * @param array $post The ACF post array. + */ + do_action( "acf/untrash_{$this->hook_name}", $post ); + + return true; + } + + /** + * Returns the previous post_status instead of "draft" for the ACF internal post types. + * Prior to WordPress 5.6.0, this filter was not needed as restored posts were always assigned their original status. + * + * @since 6.1 + * + * @param string $new_status The new status of the post being restored. + * @param int $post_id The ID of the post being restored. + * @param string $previous_status The status of the post at the point where it was trashed. + * @return string + */ + public function untrash_post_status( $new_status, $post_id, $previous_status ) { + return ( get_post_type( $post_id ) === $this->post_type ) ? $previous_status : $new_status; + } + + /** + * Returns true if the given params match an ACF post. + * + * @since 6.1 + * + * @param array $post The post array to check. + * @return bool + */ + public function is_post( $post = false ) { + return ( + is_array( $post ) + && isset( $post['key'] ) + && isset( $post['title'] ) + ); + } + + /** + * Duplicates an ACF post. + * + * @since 6.1 + * + * @param int|string $id The ID of the post to duplicate. + * @param int $new_post_id Optional post ID to override. + * @return array The new ACF post array. + */ + public function duplicate_post( $id = 0, $new_post_id = 0 ) { + // Disable filters to ensure ACF loads data from DB. + acf_disable_filters(); + + $post = $this->get_post( $id ); + if ( ! $post || ! $post['ID'] ) { + return false; + } + + // Update attributes. + $post['ID'] = $new_post_id; + $post['key'] = uniqid( 'group_' ); + + // Add (copy) to title when appropriate. + if ( ! $new_post_id ) { + $post['title'] .= ' (' . __( 'copy', 'acf' ) . ')'; + } + + // When importing a new field group, insert a temporary post and set the field group's ID. + // This allows fields to be updated before the field group (field group ID is needed for field parent setting). + if ( ! $post['ID'] ) { + $post['ID'] = wp_insert_post( array( 'post_title' => $post['key'] ) ); + } + + $post = $this->update_post( $post ); + + /** + * Fires immediately after an ACF post has been duplicated. + * + * @date 12/02/2014 + * @since 5.0.0 + * + * @param array $post The ACF post array. + */ + do_action( "acf/duplicate_{$this->hook_name}", $post ); + + return $post; + } + + /** + * Activates or deactivates an ACF post. + * + * @since 6.1 + * + * @param int|string $id The ID of the ACF post to activate/deactivate. + * @param bool $activate True if the post should be activated. + * @return bool + */ + public function update_post_active_status( $id, $activate = true ) { + // Disable filters to ensure ACF loads data from DB. + acf_disable_filters(); + + $post = $this->get_post( $id ); + if ( ! $post || ! $post['ID'] ) { + return false; + } + + $post['active'] = (bool) $activate; + $updated_post = $this->update_post( $post ); + + /** + * Fires immediately after an ACF post has been made active/inactive. + * + * @since 6.0.0 + * + * @param array $updated_post The updated ACF post array. + */ + do_action( "acf/update_{$this->hook_name}_active_status", $updated_post ); + + if ( ! isset( $updated_post['active'] ) || $activate !== $updated_post['active'] ) { + return false; + } + + return true; + } + + /** + * Checks if the current user can edit ACF posts and returns the edit url. + * + * @since 6.1 + * + * @param int $post_id The ACF post ID. + * @return string + */ + public function get_post_edit_link( $post_id ) { + if ( $post_id && acf_current_user_can_admin() ) { + return admin_url( 'post.php?post=' . $post_id . '&action=edit' ); + } + + return ''; + } + + /** + * Returns a modified ACF post array ready for export. + * + * @since 6.1 + * + * @param array $post The ACF post array. + * @return array + */ + public function prepare_post_for_export( $post = array() ) { + // Remove args. + acf_extract_vars( $post, array( 'ID', 'local', '_valid' ) ); + + /** + * Filters the ACF post array before being returned to the export tool. + * + * @date 12/02/2014 + * @since 5.0.0 + * + * @param array $post The ACF post array. + */ + return apply_filters( "acf/prepare_{$this->hook_name}_for_export", $post ); + } + + /** + * Returns a string containing PHP code that can be used to create the post in ACF. + * + * @since 6.1 + * + * @param array $post The post being exported. + * @return string + */ + public function export_post_as_php( $post = array() ) { + return ''; + } + + /** + * Formats code used for PHP exports. + * + * @since 6.1 + * + * @param string $code The code being formatted. + * @return string + */ + public function format_code_for_export( $code = '' ) { + if ( ! is_string( $code ) ) { + return ''; + } + + $str_replace = array( + ' ' => "\t", + "'!!__(!!\'" => "__('", + "!!\', !!\'" => "', '", + "!!\')!!'" => "')", + 'array (' => 'array(', + ); + $preg_replace = array( + '/([\t\r\n]+?)array/' => 'array', + '/[0-9]+ => array/' => 'array', + ); + + $code = str_replace( array_keys( $str_replace ), array_values( $str_replace ), $code ); + $code = preg_replace( array_keys( $preg_replace ), array_values( $preg_replace ), $code ); + + return $code; + } + + /** + * Prepares an ACF post for import. + * + * @since 6.1 + * + * @param array $post The ACF post array. + * @return array + */ + public function prepare_post_for_import( $post ) { + /** + * Filters the ACF post array before being returned to the import tool. + * + * @date 21/11/19 + * @since 5.8.8 + * + * @param array $post The ACF post array. + */ + return apply_filters( "acf/prepare_{$this->hook_name}_for_import", $post ); + } + + /** + * Imports an ACF post into the database. + * + * @since 6.1 + * + * @param array $post The ACF post array. + * @return array + */ + public function import_post( $post ) { + // Disable filters to ensure data is not modified by local, clone, etc. + $filters = acf_disable_filters(); + + // Validate the post (ensures all settings exist). + $post = $this->get_valid_post( $post ); + + // Prepare post for import (modifies settings). + $post = $this->prepare_post_for_import( $post ); + + // Save field group. + $post = $this->update_post( $post ); + + // Enable filters again. + acf_enable_filters( $filters ); + + /** + * Fires immediately after an ACF post has been imported. + * + * @date 12/02/2014 + * @since 5.0.0 + * + * @param array $post The ACF post array. + */ + do_action( "acf/import_{$this->hook_name}", $post ); + + return $post; + } + + } + +} diff --git a/includes/compatibility.php b/includes/compatibility.php index 8078133..d6edd1c 100644 --- a/includes/compatibility.php +++ b/includes/compatibility.php @@ -1,470 +1,474 @@ 'post_taxonomy', - 'ef_media' => 'attachment', - 'ef_taxonomy' => 'taxonomy', - 'ef_user' => 'user_role', - 'user_type' => 'current_user_role' // 5.2.0 - ); - - // only replace 'taxonomy' rule if is an ACF4 field group - if( $version > 4 ) { - unset($replace['taxonomy']); - } - - // loop over location groups - if( $field_group['location'] ) { - foreach( $field_group['location'] as $i => $group ) { - - // loop over group rules - if( $group ) { - foreach( $group as $j => $rule ) { - - // migrate param - if( isset($replace[ $rule['param'] ]) ) { - $field_group['location'][ $i ][ $j ]['param'] = $replace[ $rule['param'] ]; - } - }} - }} - - // change layout to style (v5.0.0) - if( isset($field_group['layout']) ) { - $field_group['style'] = acf_extract_var($field_group, 'layout'); - } - - // change no_box to seamless (v5.0.0) - if( $field_group['style'] === 'no_box' ) { - $field_group['style'] = 'seamless'; - } - - //return - return $field_group; - } - - /** - * validate_post_taxonomy_location_rule - * - * description - * - * @date 27/8/18 - * @since 5.7.4 - * - * @param type $var Description. Default. - * @return type Description. - */ - function validate_post_taxonomy_location_rule( $rule ) { - - // previous versions of ACF (v4.4.12) saved value as term_id - // convert term_id into "taxonomy:slug" string - if( is_numeric($rule['value']) ) { - $term = acf_get_term( $rule['value'] ); - if( $term ) { - $rule['value'] = acf_encode_term($term); - } - } - - // return - return $rule; - } - +if ( ! defined( 'ABSPATH' ) ) { + exit; // Exit if accessed directly } -acf_new_instance('ACF_Compatibility'); +if ( ! class_exists( 'ACF_Compatibility' ) ) : + + class ACF_Compatibility { + + /** + * __construct + * + * Sets up the class functionality. + * + * @date 30/04/2014 + * @since 5.0.0 + * + * @param void + * @return void + */ + function __construct() { + + // actions + add_filter( 'acf/validate_field', array( $this, 'validate_field' ), 20, 1 ); + add_filter( 'acf/validate_field/type=textarea', array( $this, 'validate_textarea_field' ), 20, 1 ); + add_filter( 'acf/validate_field/type=relationship', array( $this, 'validate_relationship_field' ), 20, 1 ); + add_filter( 'acf/validate_field/type=post_object', array( $this, 'validate_relationship_field' ), 20, 1 ); + add_filter( 'acf/validate_field/type=page_link', array( $this, 'validate_relationship_field' ), 20, 1 ); + add_filter( 'acf/validate_field/type=image', array( $this, 'validate_image_field' ), 20, 1 ); + add_filter( 'acf/validate_field/type=file', array( $this, 'validate_image_field' ), 20, 1 ); + add_filter( 'acf/validate_field/type=wysiwyg', array( $this, 'validate_wysiwyg_field' ), 20, 1 ); + add_filter( 'acf/validate_field/type=date_picker', array( $this, 'validate_date_picker_field' ), 20, 1 ); + add_filter( 'acf/validate_field/type=taxonomy', array( $this, 'validate_taxonomy_field' ), 20, 1 ); + add_filter( 'acf/validate_field/type=date_time_picker', array( $this, 'validate_date_time_picker_field' ), 20, 1 ); + add_filter( 'acf/validate_field/type=user', array( $this, 'validate_user_field' ), 20, 1 ); + add_filter( 'acf/validate_field_group', array( $this, 'validate_field_group' ), 20, 1 ); + + // Modify field wrapper attributes + add_filter( 'acf/field_wrapper_attributes', array( $this, 'field_wrapper_attributes' ), 20, 2 ); + + // location + add_filter( 'acf/location/validate_rule/type=post_taxonomy', array( $this, 'validate_post_taxonomy_location_rule' ), 20, 1 ); + add_filter( 'acf/location/validate_rule/type=post_category', array( $this, 'validate_post_taxonomy_location_rule' ), 20, 1 ); + + // Update settings + add_action( 'acf/init', array( $this, 'init' ) ); + } + + /** + * init + * + * Adds compatibility for deprecated settings. + * + * @date 10/6/19 + * @since 5.8.1 + * + * @param void + * @return void + */ + function init() { + + // Update "show_admin" setting based on defined constant. + if ( defined( 'ACF_LITE' ) && ACF_LITE ) { + acf_update_setting( 'show_admin', false ); + } + } + + /** + * field_wrapper_attributes + * + * Adds compatibility with deprecated field wrap attributes. + * + * @date 21/1/19 + * @since 5.7.10 + * + * @param array $wrapper The wrapper attributes array. + * @param array $field The field array. + */ + function field_wrapper_attributes( $wrapper, $field ) { + + // Check compatibility setting. + if ( acf_get_compatibility( 'field_wrapper_class' ) ) { + $wrapper['class'] .= " field_type-{$field['type']}"; + if ( $field['key'] ) { + $wrapper['class'] .= " field_key-{$field['key']}"; + } + } + + // Return wrapper. + return $wrapper; + } + + /** + * validate_field + * + * Adds compatibility with deprecated settings + * + * @date 23/04/2014 + * @since 5.0.0 + * + * @param array $field The field array. + * @return array $field + */ + function validate_field( $field ) { + + // conditional logic data structure changed to groups in version 5.0.0 + // convert previous data (status, rules, allorany) into groups + if ( isset( $field['conditional_logic']['status'] ) ) { + + // check status + if ( $field['conditional_logic']['status'] ) { + $field['conditional_logic'] = acf_convert_rules_to_groups( $field['conditional_logic']['rules'], $field['conditional_logic']['allorany'] ); + } else { + $field['conditional_logic'] = 0; + } + } + + // return + return $field; + } + + /** + * validate_textarea_field + * + * Adds compatibility with deprecated settings + * + * @date 23/04/2014 + * @since 5.0.0 + * + * @param array $field The field array. + * @return array $field + */ + function validate_textarea_field( $field ) { + + // formatting has been removed + $formatting = acf_extract_var( $field, 'formatting' ); + if ( $formatting === 'br' ) { + $field['new_lines'] = 'br'; + } + + // return + return $field; + } + + /** + * validate_relationship_field + * + * Adds compatibility with deprecated settings + * + * @date 23/04/2014 + * @since 5.0.0 + * + * @param array $field The field array. + * @return array $field + */ + function validate_relationship_field( $field ) { + + // remove 'all' from post_type + if ( acf_in_array( 'all', $field['post_type'] ) ) { + $field['post_type'] = array(); + } + + // remove 'all' from taxonomy + if ( acf_in_array( 'all', $field['taxonomy'] ) ) { + $field['taxonomy'] = array(); + } + + // result_elements is now elements + if ( isset( $field['result_elements'] ) ) { + $field['elements'] = acf_extract_var( $field, 'result_elements' ); + } + + // return + return $field; + } + + /** + * validate_image_field + * + * Adds compatibility with deprecated settings + * + * @date 23/04/2014 + * @since 5.0.0 + * + * @param array $field The field array. + * @return array $field + */ + function validate_image_field( $field ) { + + // save_format is now return_format + if ( isset( $field['save_format'] ) ) { + $field['return_format'] = acf_extract_var( $field, 'save_format' ); + } + + // object is now array + if ( $field['return_format'] == 'object' ) { + $field['return_format'] = 'array'; + } + + // return + return $field; + } + + /** + * validate_wysiwyg_field + * + * Adds compatibility with deprecated settings + * + * @date 23/04/2014 + * @since 5.0.0 + * + * @param array $field The field array. + * @return array $field + */ + function validate_wysiwyg_field( $field ) { + + // media_upload is now numeric + if ( $field['media_upload'] === 'yes' ) { + $field['media_upload'] = 1; + } elseif ( $field['media_upload'] === 'no' ) { + $field['media_upload'] = 0; + } + + // return + return $field; + } + + /** + * validate_date_picker_field + * + * Adds compatibility with deprecated settings + * + * @date 23/04/2014 + * @since 5.0.0 + * + * @param array $field The field array. + * @return array $field + */ + function validate_date_picker_field( $field ) { + + // date_format has changed to display_format + if ( isset( $field['date_format'] ) ) { + + // extract vars + $date_format = $field['date_format']; + $display_format = $field['display_format']; + + // convert from js to php + $display_format = acf_convert_date_to_php( $display_format ); + + // append settings + $field['display_format'] = $display_format; + $field['save_format'] = $date_format; + + // clean up + unset( $field['date_format'] ); + } + + // return + return $field; + } + + /** + * validate_taxonomy_field + * + * Adds compatibility with deprecated settings + * + * @date 23/04/2014 + * @since 5.2.7 + * + * @param array $field The field array. + * @return array $field + */ + function validate_taxonomy_field( $field ) { + + // load_save_terms deprecated in favour of separate save_terms + if ( isset( $field['load_save_terms'] ) ) { + $field['save_terms'] = acf_extract_var( $field, 'load_save_terms' ); + } + + // return + return $field; + } + + /** + * validate_date_time_picker_field + * + * Adds compatibility with deprecated settings + * + * @date 23/04/2014 + * @since 5.2.7 + * + * @param array $field The field array. + * @return array $field + */ + function validate_date_time_picker_field( $field ) { + + // 3rd party date time picker + // https://github.com/soderlind/acf-field-date-time-picker + if ( ! empty( $field['time_format'] ) ) { + + // extract vars + $time_format = acf_extract_var( $field, 'time_format' ); + $date_format = acf_extract_var( $field, 'date_format' ); + $get_as_timestamp = acf_extract_var( $field, 'get_as_timestamp' ); + + // convert from js to php + $time_format = acf_convert_time_to_php( $time_format ); + $date_format = acf_convert_date_to_php( $date_format ); + + // append settings + $field['return_format'] = $date_format . ' ' . $time_format; + $field['display_format'] = $date_format . ' ' . $time_format; + + // timestamp + if ( $get_as_timestamp === 'true' ) { + $field['return_format'] = 'U'; + } + } + + // return + return $field; + } + + /** + * validate_user_field + * + * Adds compatibility with deprecated settings + * + * @date 23/04/2014 + * @since 5.2.7 + * + * @param array $field The field array. + * @return array $field + */ + function validate_user_field( $field ) { + + // remove 'all' from roles + if ( acf_in_array( 'all', $field['role'] ) ) { + $field['role'] = ''; + } + + // field_type removed in favour of multiple + if ( isset( $field['field_type'] ) ) { + + // extract vars + $field_type = acf_extract_var( $field, 'field_type' ); + + // multiple + if ( $field_type === 'multi_select' ) { + $field['multiple'] = true; + } + } + + // return + return $field; + } + + /* + * validate_field_group + * + * This function will provide compatibility with ACF4 field groups + * + * @type function + * @date 23/04/2014 + * @since 5.0.0 + * + * @param $field_group (array) + * @return $field_group + */ + function validate_field_group( $field_group ) { + + // vars + $version = 5; + + // field group key was added in version 5.0.0 + // detect ACF4 data and generate key + if ( ! $field_group['key'] ) { + $version = 4; + $field_group['key'] = isset( $field_group['id'] ) ? "group_{$field_group['id']}" : uniqid( 'group_' ); + } + + // prior to version 5.0.0, settings were saved in an 'options' array + // extract and merge options into the field group + if ( isset( $field_group['options'] ) ) { + $options = acf_extract_var( $field_group, 'options' ); + $field_group = array_merge( $field_group, $options ); + } + + // location data structure changed to groups in version 4.1.0 + // convert previous data (rules, allorany) into groups + if ( isset( $field_group['location']['rules'] ) ) { + $field_group['location'] = acf_convert_rules_to_groups( $field_group['location']['rules'], $field_group['location']['allorany'] ); + } + + // some location rule names have changed in version 5.0.0 + // loop over location data and modify rules + $replace = array( + 'taxonomy' => 'post_taxonomy', + 'ef_media' => 'attachment', + 'ef_taxonomy' => 'taxonomy', + 'ef_user' => 'user_role', + 'user_type' => 'current_user_role', // 5.2.0 + ); + + // only replace 'taxonomy' rule if is an ACF4 field group + if ( $version > 4 ) { + unset( $replace['taxonomy'] ); + } + + // loop over location groups + if ( $field_group['location'] ) { + foreach ( $field_group['location'] as $i => $group ) { + + // loop over group rules + if ( $group ) { + foreach ( $group as $j => $rule ) { + + // migrate param + if ( isset( $replace[ $rule['param'] ] ) ) { + $field_group['location'][ $i ][ $j ]['param'] = $replace[ $rule['param'] ]; + } + } + } + } + } + + // change layout to style (v5.0.0) + if ( isset( $field_group['layout'] ) ) { + $field_group['style'] = acf_extract_var( $field_group, 'layout' ); + } + + // change no_box to seamless (v5.0.0) + if ( $field_group['style'] === 'no_box' ) { + $field_group['style'] = 'seamless'; + } + + // return + return $field_group; + } + + /** + * validate_post_taxonomy_location_rule + * + * description + * + * @date 27/8/18 + * @since 5.7.4 + * + * @param type $var Description. Default. + * @return type Description. + */ + function validate_post_taxonomy_location_rule( $rule ) { + + // previous versions of ACF (v4.4.12) saved value as term_id + // convert term_id into "taxonomy:slug" string + if ( is_numeric( $rule['value'] ) ) { + $term = acf_get_term( $rule['value'] ); + if ( $term ) { + $rule['value'] = acf_encode_term( $term ); + } + } + + // return + return $rule; + } + + } + + acf_new_instance( 'ACF_Compatibility' ); endif; // class_exists check @@ -473,12 +477,12 @@ endif; // class_exists check * * Returns true if compatibility is enabled for the given component. * - * @date 20/1/15 - * @since 5.1.5 + * @date 20/1/15 + * @since 5.1.5 * - * @param string $name The name of the component to check. - * @return bool + * @param string $name The name of the component to check. + * @return bool */ function acf_get_compatibility( $name ) { return apply_filters( "acf/compatibility/{$name}", false ); -} \ No newline at end of file +} diff --git a/includes/deprecated.php b/includes/deprecated.php index 8137580..ca73619 100644 --- a/includes/deprecated.php +++ b/includes/deprecated.php @@ -1,38 +1,38 @@ - $parent_id, 'key' => "group_$parent_id" )); + return acf_get_fields( + array( + 'ID' => $parent_id, + 'key' => "group_$parent_id", + ) + ); } /** @@ -84,23 +89,23 @@ function acf_get_fields_by_id( $parent_id = 0 ) { * * A wrapper for the WP update_option but provides logic for a 'no' autoload * - * @date 4/01/2014 - * @since 5.0.0 - * @deprecated 5.7.11 + * @date 4/01/2014 + * @since 5.0.0 + * @deprecated 5.7.11 * - * @param string $option The option name. - * @param string $value The option value. - * @param string $autoload An optional autoload value. - * @return bool + * @param string $option The option name. + * @param string $value The option value. + * @param string $autoload An optional autoload value. + * @return bool */ function acf_update_option( $option = '', $value = '', $autoload = null ) { - + // Warning. _deprecated_function( __FUNCTION__, '5.7.11', 'update_option()' ); - + // Update. - if( $autoload === null ) { - $autoload = (bool) acf_get_setting('autoload'); + if ( $autoload === null ) { + $autoload = (bool) acf_get_setting( 'autoload' ); } return update_option( $option, $value, $autoload ); } @@ -110,19 +115,19 @@ function acf_update_option( $option = '', $value = '', $autoload = null ) { * * Finds the field key for a given field name and post_id. * - * @date 26/1/18 - * @since 5.6.5 - * @deprecated 5.6.8 + * @date 26/1/18 + * @since 5.6.5 + * @deprecated 5.6.8 * - * @param string $field_name The name of the field. eg 'sub_heading' - * @param mixed $post_id The post_id of which the value is saved against - * @return string $reference The field key + * @param string $field_name The name of the field. eg 'sub_heading' + * @param mixed $post_id The post_id of which the value is saved against + * @return string $reference The field key */ function acf_get_field_reference( $field_name, $post_id ) { - + // Warning. _deprecated_function( __FUNCTION__, '5.6.8', 'acf_get_reference()' ); - + // Return reference. return acf_get_reference( $field_name, $post_id ); } @@ -132,18 +137,18 @@ function acf_get_field_reference( $field_name, $post_id ) { * * Returns the plugin url to a specified file. * - * @date 28/09/13 - * @since 5.0.0 - * @deprecated 5.6.8 + * @date 28/09/13 + * @since 5.0.0 + * @deprecated 5.6.8 * - * @param string $filename The specified file. - * @return string + * @param string $filename The specified file. + * @return string */ function acf_get_dir( $filename = '' ) { - + // Warning. _deprecated_function( __FUNCTION__, '5.6.8', 'acf_get_url()' ); - + // Return. return acf_get_url( $filename ); } diff --git a/includes/fields.php b/includes/fields.php old mode 100644 new mode 100755 index 2aa9424..20e3026 --- a/includes/fields.php +++ b/includes/fields.php @@ -1,139 +1,141 @@ -types[ $class->name ] = $class; - - // allow class name - } else { - $instance = new $class(); - $this->types[ $instance->name ] = $instance; - } - } - - - /* - * get_field_type - * - * This function will return a field type instance - * - * @type function - * @date 6/07/2016 - * @since 5.4.0 - * - * @param $name (string) - * @return (mixed) - */ - - function get_field_type( $name ) { - return isset( $this->types[$name] ) ? $this->types[$name] : null; - } - - - /* - * is_field_type - * - * This function will return true if a field type exists - * - * @type function - * @date 6/07/2016 - * @since 5.4.0 - * - * @param $name (string) - * @return (mixed) - */ - - function is_field_type( $name ) { - return isset( $this->types[$name] ); - } - - - /* - * register_field_type_info - * - * This function will store a basic array of info about the field type - * to later be overriden by the above register_field_type function - * - * @type function - * @date 29/5/17 - * @since 5.6.0 - * - * @param $info (array) - * @return n/a - */ - - function register_field_type_info( $info ) { - - // convert to object - $instance = (object) $info; - $this->types[ $instance->name ] = $instance; - } - - - /* - * get_field_types - * - * This function will return an array of all field types - * - * @type function - * @date 6/07/2016 - * @since 5.4.0 - * - * @param $name (string) - * @return (mixed) - */ - - function get_field_types() { - return $this->types; - } +if ( ! defined( 'ABSPATH' ) ) { + exit; // Exit if accessed directly } +if ( ! class_exists( 'acf_fields' ) ) : + #[AllowDynamicProperties] + class acf_fields { -// initialize -acf()->fields = new acf_fields(); + /** @var array Contains an array of field type instances */ + var $types = array(); + + + /* + * __construct + * + * This function will setup the class functionality + * + * @type function + * @date 5/03/2014 + * @since 5.4.0 + * + * @param n/a + * @return n/a + */ + + function __construct() { + /* do nothing */ + } + + + /* + * register_field_type + * + * This function will register a field type instance + * + * @type function + * @date 6/07/2016 + * @since 5.4.0 + * + * @param $class (string) + * @return n/a + */ + + function register_field_type( $class ) { + + // allow instance + if ( $class instanceof acf_field ) { + $this->types[ $class->name ] = $class; + + // allow class name + } else { + $instance = new $class(); + $this->types[ $instance->name ] = $instance; + } + } + + + /* + * get_field_type + * + * This function will return a field type instance + * + * @type function + * @date 6/07/2016 + * @since 5.4.0 + * + * @param $name (string) + * @return (mixed) + */ + + function get_field_type( $name ) { + return isset( $this->types[ $name ] ) ? $this->types[ $name ] : null; + } + + + /* + * is_field_type + * + * This function will return true if a field type exists + * + * @type function + * @date 6/07/2016 + * @since 5.4.0 + * + * @param $name (string) + * @return (mixed) + */ + + function is_field_type( $name ) { + return isset( $this->types[ $name ] ); + } + + + /* + * register_field_type_info + * + * This function will store a basic array of info about the field type + * to later be overriden by the above register_field_type function + * + * @type function + * @date 29/5/17 + * @since 5.6.0 + * + * @param $info (array) + * @return n/a + */ + + function register_field_type_info( $info ) { + + // convert to object + $instance = (object) $info; + $this->types[ $instance->name ] = $instance; + } + + + /* + * get_field_types + * + * This function will return an array of all field types + * + * @type function + * @date 6/07/2016 + * @since 5.4.0 + * + * @param $name (string) + * @return (mixed) + */ + + function get_field_types() { + return $this->types; + } + } + + + // initialize + acf()->fields = new acf_fields(); endif; // class_exists check @@ -143,12 +145,12 @@ endif; // class_exists check * * alias of acf()->fields->register_field_type() * -* @type function -* @date 31/5/17 -* @since 5.6.0 +* @type function +* @date 31/5/17 +* @since 5.6.0 * -* @param n/a -* @return n/a +* @param n/a +* @return n/a */ function acf_register_field_type( $class ) { @@ -161,12 +163,12 @@ function acf_register_field_type( $class ) { * * alias of acf()->fields->register_field_type_info() * -* @type function -* @date 31/5/17 -* @since 5.6.0 +* @type function +* @date 31/5/17 +* @since 5.6.0 * -* @param n/a -* @return n/a +* @param n/a +* @return n/a */ function acf_register_field_type_info( $info ) { @@ -179,12 +181,12 @@ function acf_register_field_type_info( $info ) { * * alias of acf()->fields->get_field_type() * -* @type function -* @date 31/5/17 -* @since 5.6.0 +* @type function +* @date 31/5/17 +* @since 5.6.0 * -* @param n/a -* @return n/a +* @param n/a +* @return n/a */ function acf_get_field_type( $name ) { @@ -197,57 +199,67 @@ function acf_get_field_type( $name ) { * * alias of acf()->fields->get_field_types() * -* @type function -* @date 31/5/17 -* @since 5.6.0 +* @type function +* @date 31/5/17 +* @since 5.6.0 * -* @param n/a -* @return n/a +* @param n/a +* @return n/a */ function acf_get_field_types( $args = array() ) { - + // default - $args = wp_parse_args($args, array( - 'public' => true, // true, false - )); - + $args = wp_parse_args( + $args, + array( + 'public' => true, // true, false + ) + ); + // get field types $field_types = acf()->fields->get_field_types(); - + // filter - return wp_filter_object_list( $field_types, $args ); + return wp_filter_object_list( $field_types, $args ); } /** -* acf_get_field_types_info -* -* Returns an array containing information about each field type -* -* @date 18/6/18 -* @since 5.6.9 -* -* @param type $var Description. Default. -* @return type Description. -*/ + * acf_get_field_types_info + * + * Returns an array containing information about each field type + * + * @date 18/6/18 + * @since 5.6.9 + * + * @param type $var Description. Default. + * @return type Description. + */ function acf_get_field_types_info( $args = array() ) { - + // vars - $data = array(); + $data = array(); $field_types = acf_get_field_types(); - + // loop - foreach( $field_types as $type ) { - $data[ $type->name ] = array( - 'label' => $type->label, - 'name' => $type->name, - 'category' => $type->category, - 'public' => $type->public + foreach ( $field_types as $type ) { + $data[ $type->name ] = array_filter( + array( + 'label' => $type->label, + 'name' => $type->name, + 'description' => $type->description, + 'category' => $type->category, + 'public' => $type->public, + 'doc_url' => $type->doc_url, + 'tutorial_url' => $type->tutorial_url, + 'preview_image' => $type->preview_image, + 'pro' => $type->pro, + ) ); } - + // return return $data; } @@ -258,12 +270,12 @@ function acf_get_field_types_info( $args = array() ) { * * alias of acf()->fields->is_field_type() * -* @type function -* @date 31/5/17 -* @since 5.6.0 +* @type function +* @date 31/5/17 +* @since 5.6.0 * -* @param n/a -* @return n/a +* @param n/a +* @return n/a */ function acf_is_field_type( $name = '' ) { @@ -276,17 +288,17 @@ function acf_is_field_type( $name = '' ) { * * This function will return a field type's property * -* @type function -* @date 1/10/13 -* @since 5.0.0 +* @type function +* @date 1/10/13 +* @since 5.0.0 * -* @param n/a -* @return (array) +* @param n/a +* @return (array) */ function acf_get_field_type_prop( $name = '', $prop = '' ) { $type = acf_get_field_type( $name ); - return ($type && isset($type->$prop)) ? $type->$prop : null; + return ( $type && isset( $type->$prop ) ) ? $type->$prop : null; } @@ -295,17 +307,17 @@ function acf_get_field_type_prop( $name = '', $prop = '' ) { * * This function will return the label of a field type * -* @type function -* @date 1/10/13 -* @since 5.0.0 +* @type function +* @date 1/10/13 +* @since 5.0.0 * -* @param n/a -* @return (array) +* @param n/a +* @return (array) */ function acf_get_field_type_label( $name = '' ) { $label = acf_get_field_type_prop( $name, 'label' ); - return $label ? $label : ''.__('Unknown', 'acf').''; + return $label ? $label : '' . __( 'Unknown', 'acf' ) . ''; } @@ -314,65 +326,155 @@ function acf_get_field_type_label( $name = '' ) { * * deprecated in favour of acf_is_field_type() * -* @type function -* @date 1/10/13 -* @since 5.0.0 +* @type function +* @date 1/10/13 +* @since 5.0.0 * -* @param $type (string) -* @return (boolean) +* @param $type (string) +* @return (boolean) */ function acf_field_type_exists( $type = '' ) { return acf_is_field_type( $type ); } +/** + * Returns an array of localised field categories. + * + * @since 6.1 + * + * @return array + */ +function acf_get_field_categories_i18n() { -/* -* acf_get_grouped_field_types -* -* Returns an multi-dimentional array of field types "name => label" grouped by category -* -* @type function -* @date 1/10/13 -* @since 5.0.0 -* -* @param n/a -* @return (array) -*/ - -function acf_get_grouped_field_types() { - - // vars - $types = acf_get_field_types(); - $groups = array(); - $l10n = array( - 'basic' => __('Basic', 'acf'), - 'content' => __('Content', 'acf'), - 'choice' => __('Choice', 'acf'), - 'relational' => __('Relational', 'acf'), - 'jquery' => __('jQuery', 'acf'), - 'layout' => __('Layout', 'acf'), + $categories_i18n = array( + 'basic' => __( 'Basic', 'acf' ), + 'content' => __( 'Content', 'acf' ), + 'choice' => __( 'Choice', 'acf' ), + 'relational' => __( 'Relational', 'acf' ), + 'advanced' => __( 'Advanced', 'acf' ), + 'layout' => __( 'Layout', 'acf' ), + 'pro' => __( 'PRO', 'acf' ), ); - - + + return apply_filters( 'acf/localized_field_categories', $categories_i18n ); +} + + +/** + * Returns an multi-dimentional array of field types "name => label" grouped by category + * + * @since 5.0.0 + * + * @return array + */ +function acf_get_grouped_field_types() { + + // vars + $types = acf_get_field_types(); + $groups = array(); + $l10n = acf_get_field_categories_i18n(); + // loop - foreach( $types as $type ) { - + foreach ( $types as $type ) { + // translate $cat = $type->category; - $cat = isset( $l10n[$cat] ) ? $l10n[$cat] : $cat; - + $cat = isset( $l10n[ $cat ] ) ? $l10n[ $cat ] : $cat; + // append $groups[ $cat ][ $type->name ] = $type->label; } - - + // filter - $groups = apply_filters('acf/get_field_types', $groups); - - + $groups = apply_filters( 'acf/get_field_types', $groups ); + // return return $groups; } -?> \ No newline at end of file +/** + * Returns an array of tabs for a field type. + * We combine a list of default tabs with filtered tabs. + * I.E. Default tabs should be static and should not be changed by the + * filtered tabs. + * + * @since 6.1 + * + * @return array Key/value array of the default settings tabs for field type settings. + */ +function acf_get_combined_field_type_settings_tabs() { + $default_field_type_settings_tabs = array( + 'general' => __( 'General', 'acf' ), + 'validation' => __( 'Validation', 'acf' ), + 'presentation' => __( 'Presentation', 'acf' ), + 'conditional_logic' => __( 'Conditional Logic', 'acf' ), + ); + + $field_type_settings_tabs = (array) apply_filters( 'acf/field_group/additional_field_settings_tabs', array() ); + + // remove any default tab values from filter tabs. + foreach ( $field_type_settings_tabs as $key => $tab ) { + if ( isset( $default_field_type_settings_tabs[ $key ] ) ) { + unset( $field_type_settings_tabs[ $key ] ); + } + } + + $combined_field_type_settings_tabs = array_merge( $default_field_type_settings_tabs, $field_type_settings_tabs ); + + return $combined_field_type_settings_tabs; +} + + + +/** + * Get the PRO only fields and their core metadata. + * + * @since 6.1 + * + * @return array An array of all the pro field types and their field type selection required meta data. + */ +function acf_get_pro_field_types() { + return array( + 'clone' => array( + 'name' => 'clone', + 'label' => _x( 'Clone', 'noun', 'acf' ), + 'doc_url' => acf_add_url_utm_tags( 'https://www.advancedcustomfields.com/resources/clone/', 'docs', 'field-type-selection' ), + 'preview_image' => acf_get_url() . '/assets/images/field-type-previews/field-preview-clone.png', + 'description' => __( 'This allows you to select and display existing fields. It does not duplicate any fields in the database, but loads and displays the selected fields at run-time. The Clone field can either replace itself with the selected fields or display the selected fields as a group of subfields.', 'acf' ), + 'tutorial_url' => acf_add_url_utm_tags( 'https://www.advancedcustomfields.com/resources/how-to-use-the-clone-field/', 'docs', 'field-type-selection' ), + 'category' => 'layout', + 'pro' => true, + ), + 'flexible_content' => array( + 'name' => 'flexible_content', + 'label' => __( 'Flexible Content', 'acf' ), + 'doc_url' => acf_add_url_utm_tags( 'https://www.advancedcustomfields.com/resources/flexible-content/', 'docs', 'field-type-selection' ), + 'preview_image' => acf_get_url() . '/assets/images/field-type-previews/field-preview-flexible-content.png', + 'description' => __( 'This provides a simple, structured, layout-based editor. The Flexible Content field allows you to define, create and manage content with total control by using layouts and subfields to design the available blocks.', 'acf' ), + 'tutorial_url' => acf_add_url_utm_tags( 'https://www.advancedcustomfields.com/resources/building-layouts-with-the-flexible-content-field-in-a-theme/', 'docs', 'field-type-selection' ), + 'category' => 'layout', + 'pro' => true, + ), + 'gallery' => array( + 'name' => 'gallery', + 'label' => __( 'Gallery', 'acf' ), + 'doc_url' => acf_add_url_utm_tags( 'https://www.advancedcustomfields.com/resources/gallery/', 'docs', 'field-type-selection' ), + 'preview_image' => acf_get_url() . '/assets/images/field-type-previews/field-preview-gallery.png', + 'description' => __( 'This provides an interactive interface for managing a collection of attachments. Most settings are similar to the Image field type. Additional settings allow you to specify where new attachments are added in the gallery and the minimum/maximum number of attachments allowed.', 'acf' ), + 'tutorial_url' => acf_add_url_utm_tags( 'https://www.advancedcustomfields.com/resources/how-to-use-the-gallery-field/', 'docs', 'field-type-selection' ), + 'category' => 'content', + 'pro' => true, + ), + 'repeater' => array( + 'name' => 'repeater', + 'label' => __( 'Repeater', 'acf' ), + 'doc_url' => acf_add_url_utm_tags( 'https://www.advancedcustomfields.com/resources/repeater/', 'docs', 'field-type-selection' ), + 'preview_image' => acf_get_url() . '/assets/images/field-type-previews/field-preview-repeater.png', + 'description' => __( 'This provides a solution for repeating content such as slides, team members, and call-to-action tiles, by acting as a parent to a set of subfields which can be repeated again and again.', 'acf' ), + 'tutorial_url' => acf_add_url_utm_tags( 'https://www.advancedcustomfields.com/resources/repeater/how-to-use-the-repeater-field/', 'docs', 'field-type-selection' ), + 'category' => 'layout', + 'pro' => true, + ), + ); +} diff --git a/includes/fields/class-acf-field-accordion.php b/includes/fields/class-acf-field-accordion.php index e149e04..2eee56a 100644 --- a/includes/fields/class-acf-field-accordion.php +++ b/includes/fields/class-acf-field-accordion.php @@ -1,167 +1,152 @@ name = 'accordion'; - $this->label = __("Accordion",'acf'); - $this->category = 'layout'; - $this->defaults = array( - 'open' => 0, - 'multi_expand' => 0, - 'endpoint' => 0 - ); - - } - - - /** - * render_field - * - * Create the HTML interface for your field - * - * @date 30/10/17 - * @since 5.6.3 - * - * @param array $field - * @return n/a - */ - - function render_field( $field ) { - - // vars - $atts = array( - 'class' => 'acf-fields', - 'data-open' => $field['open'], - 'data-multi_expand' => $field['multi_expand'], - 'data-endpoint' => $field['endpoint'] - ); - - ?> -
                                          >
                                          - ' . __( 'Accordions help you organize fields into panels that open and close.', 'acf') . '

                                          '; - $message .= '

                                          ' . __( 'All fields following this accordion (or until another accordion is defined) will be grouped together.','acf') . '

                                          '; - - - // default_value - acf_render_field_setting( $field, array( - 'label' => __('Instructions','acf'), - 'instructions' => '', - 'name' => 'notes', - 'type' => 'message', - 'message' => $message, - )); -*/ - - // active - acf_render_field_setting( $field, array( - 'label' => __('Open','acf'), - 'instructions' => __('Display this accordion as open on page load.','acf'), - 'name' => 'open', - 'type' => 'true_false', - 'ui' => 1, - )); - - - // multi_expand - acf_render_field_setting( $field, array( - 'label' => __('Multi-expand','acf'), - 'instructions' => __('Allow this accordion to open without closing others.','acf'), - 'name' => 'multi_expand', - 'type' => 'true_false', - 'ui' => 1, - )); - - - // endpoint - acf_render_field_setting( $field, array( - 'label' => __('Endpoint','acf'), - 'instructions' => __('Define an endpoint for the previous accordion to stop. This accordion will not be visible.','acf'), - 'name' => 'endpoint', - 'type' => 'true_false', - 'ui' => 1, - )); - - } - - - /* - * load_field() - * - * This filter is appied to the $field after it is loaded from the database - * - * @type filter - * @since 3.6 - * @date 23/01/13 - * - * @param $field - the field array holding all the field options - * - * @return $field - the field array holding all the field options - */ - - function load_field( $field ) { - - // remove name to avoid caching issue - $field['name'] = ''; - - // remove required to avoid JS issues - $field['required'] = 0; - - // set value other than 'null' to avoid ACF loading / caching issue - $field['value'] = false; - - // return - return $field; - - } - -} + class acf_field__accordion extends acf_field { + + public $show_in_rest = false; + + /** + * initialize + * + * This function will setup the field type data + * + * @date 30/10/17 + * @since 5.6.3 + * + * @param n/a + * @return n/a + */ + + function initialize() { + + // vars + $this->name = 'accordion'; + $this->label = __( 'Accordion', 'acf' ); + $this->category = 'layout'; + $this->description = __( 'Allows you to group and organize custom fields into collapsable panels that are shown while editing content. Useful for keeping large datasets tidy.', 'acf' ); + $this->preview_image = acf_get_url() . '/assets/images/field-type-previews/field-preview-accordion.png'; + $this->doc_url = acf_add_url_utm_tags( 'https://www.advancedcustomfields.com/resources/accordion/', 'docs', 'field-type-selection' ); + $this->defaults = array( + 'open' => 0, + 'multi_expand' => 0, + 'endpoint' => 0, + ); + } -// initialize -acf_register_field_type( 'acf_field__accordion' ); + /** + * render_field + * + * Create the HTML interface for your field + * + * @date 30/10/17 + * @since 5.6.3 + * + * @param array $field + * @return n/a + */ + function render_field( $field ) { + + // vars + $atts = array( + 'class' => 'acf-fields', + 'data-open' => $field['open'], + 'data-multi_expand' => $field['multi_expand'], + 'data-endpoint' => $field['endpoint'], + ); + + ?> +
                                          >
                                          + __( 'Open', 'acf' ), + 'instructions' => __( 'Display this accordion as open on page load.', 'acf' ), + 'name' => 'open', + 'type' => 'true_false', + 'ui' => 1, + ) + ); + + acf_render_field_setting( + $field, + array( + 'label' => __( 'Multi-Expand', 'acf' ), + 'instructions' => __( 'Allow this accordion to open without closing others.', 'acf' ), + 'name' => 'multi_expand', + 'type' => 'true_false', + 'ui' => 1, + ) + ); + + acf_render_field_setting( + $field, + array( + 'label' => __( 'Endpoint', 'acf' ), + 'instructions' => __( 'Define an endpoint for the previous accordion to stop. This accordion will not be visible.', 'acf' ), + 'name' => 'endpoint', + 'type' => 'true_false', + 'ui' => 1, + ) + ); + } + + + /* + * load_field() + * + * This filter is appied to the $field after it is loaded from the database + * + * @type filter + * @since 3.6 + * @date 23/01/13 + * + * @param $field - the field array holding all the field options + * + * @return $field - the field array holding all the field options + */ + + function load_field( $field ) { + + // remove name to avoid caching issue + $field['name'] = ''; + + // remove required to avoid JS issues + $field['required'] = 0; + + // set value other than 'null' to avoid ACF loading / caching issue + $field['value'] = false; + + // return + return $field; + } + + } + + + // initialize + acf_register_field_type( 'acf_field__accordion' ); endif; // class_exists check -?> \ No newline at end of file +?> diff --git a/includes/fields/class-acf-field-button-group.php b/includes/fields/class-acf-field-button-group.php index db1dd95..3e33142 100644 --- a/includes/fields/class-acf-field-button-group.php +++ b/includes/fields/class-acf-field-button-group.php @@ -1,292 +1,348 @@ name = 'button_group'; - $this->label = __("Button Group",'acf'); - $this->category = 'choice'; - $this->defaults = array( - 'choices' => array(), - 'default_value' => '', - 'allow_null' => 0, - 'return_format' => 'value', - 'layout' => 'horizontal', - ); - - } - - - /** - * render_field() - * - * Creates the field's input HTML - * - * @date 18/9/17 - * @since 5.6.3 - * - * @param array $field The field settings array - * @return n/a - */ - - function render_field( $field ) { - - // vars - $html = ''; - $selected = null; - $buttons = array(); - $value = esc_attr( $field['value'] ); - - - // bail ealrly if no choices - if( empty($field['choices']) ) return; - - - // buttons - foreach( $field['choices'] as $_value => $_label ) { - - // checked - $checked = ( $value === esc_attr($_value) ); - if( $checked ) $selected = true; - - - // append - $buttons[] = array( - 'name' => $field['name'], - 'value' => $_value, - 'label' => $_label, - 'checked' => $checked + class acf_field_button_group extends acf_field { + + + /** + * initialize() + * + * This function will setup the field type data + * + * @date 18/9/17 + * @since 5.6.3 + * + * @param n/a + * @return n/a + */ + + function initialize() { + + // vars + $this->name = 'button_group'; + $this->label = __( 'Button Group', 'acf' ); + $this->category = 'choice'; + $this->description = __( 'A group of buttons with values that you specify, users can choose one option from the values provided.', 'acf' ); + $this->preview_image = acf_get_url() . '/assets/images/field-type-previews/field-preview-button-group.png'; + $this->doc_url = acf_add_url_utm_tags( 'https://www.advancedcustomfields.com/resources/button-group/', 'docs', 'field-type-selection' ); + $this->defaults = array( + 'choices' => array(), + 'default_value' => '', + 'allow_null' => 0, + 'return_format' => 'value', + 'layout' => 'horizontal', ); - + } - - - // maybe select initial value - if( !$field['allow_null'] && $selected === null ) { - $buttons[0]['checked'] = true; - } - - - // div - $div = array( 'class' => 'acf-button-group' ); - - if( $field['layout'] == 'vertical' ) { $div['class'] .= ' -vertical'; } - if( $field['class'] ) { $div['class'] .= ' ' . $field['class']; } - if( $field['allow_null'] ) { $div['data-allow_null'] = 1; } - - - // hdden input - $html .= acf_get_hidden_input( array('name' => $field['name']) ); - - - // open - $html .= '
                                          '; - - // loop - foreach( $buttons as $button ) { - + + + /** + * render_field() + * + * Creates the field's input HTML + * + * @date 18/9/17 + * @since 5.6.3 + * + * @param array $field The field settings array + * @return n/a + */ + + function render_field( $field ) { + + // vars + $html = ''; + $selected = null; + $buttons = array(); + $value = esc_attr( $field['value'] ); + + // bail ealrly if no choices + if ( empty( $field['choices'] ) ) { + return; + } + + // buttons + foreach ( $field['choices'] as $_value => $_label ) { + // checked - if( $button['checked'] ) { + $checked = ( $value === esc_attr( $_value ) ); + if ( $checked ) { + $selected = true; + } + + // append + $buttons[] = array( + 'name' => $field['name'], + 'value' => $_value, + 'label' => $_label, + 'checked' => $checked, + ); + + } + + // maybe select initial value + if ( ! $field['allow_null'] && $selected === null ) { + $buttons[0]['checked'] = true; + } + + // div + $div = array( 'class' => 'acf-button-group' ); + + if ( $field['layout'] == 'vertical' ) { + $div['class'] .= ' -vertical'; } + if ( $field['class'] ) { + $div['class'] .= ' ' . $field['class']; } + if ( $field['allow_null'] ) { + $div['data-allow_null'] = 1; } + + // hdden input + $html .= acf_get_hidden_input( array( 'name' => $field['name'] ) ); + + // open + $html .= '
                                          '; + + // loop + foreach ( $buttons as $button ) { + + // checked + if ( $button['checked'] ) { $button['checked'] = 'checked'; } else { - unset($button['checked']); + unset( $button['checked'] ); } - - + // append $html .= acf_get_radio_input( $button ); - + } - - - // close - $html .= '
                                          '; - - - // return - echo $html; - - } - - - /** - * render_field_settings() - * - * Creates the field's settings HTML - * - * @date 18/9/17 - * @since 5.6.3 - * - * @param array $field The field settings array - * @return n/a - */ - - function render_field_settings( $field ) { - - // encode choices (convert from array) - $field['choices'] = acf_encode_choices($field['choices']); - - - // choices - acf_render_field_setting( $field, array( - 'label' => __('Choices','acf'), - 'instructions' => __('Enter each choice on a new line.','acf') . '

                                          ' . __('For more control, you may specify both a value and label like this:','acf'). '

                                          ' . __('red : Red','acf'), - 'type' => 'textarea', - 'name' => 'choices', - )); - - - // allow_null - acf_render_field_setting( $field, array( - 'label' => __('Allow Null?','acf'), - 'instructions' => '', - 'name' => 'allow_null', - 'type' => 'true_false', - 'ui' => 1, - )); - - - // default_value - acf_render_field_setting( $field, array( - 'label' => __('Default Value','acf'), - 'instructions' => __('Appears when creating a new post','acf'), - 'type' => 'text', - 'name' => 'default_value', - )); - - - // layout - acf_render_field_setting( $field, array( - 'label' => __('Layout','acf'), - 'instructions' => '', - 'type' => 'radio', - 'name' => 'layout', - 'layout' => 'horizontal', - 'choices' => array( - 'horizontal' => __("Horizontal",'acf'), - 'vertical' => __("Vertical",'acf'), - ) - )); - - - // return_format - acf_render_field_setting( $field, array( - 'label' => __('Return Value','acf'), - 'instructions' => __('Specify the returned value on front end','acf'), - 'type' => 'radio', - 'name' => 'return_format', - 'layout' => 'horizontal', - 'choices' => array( - 'value' => __('Value','acf'), - 'label' => __('Label','acf'), - 'array' => __('Both (Array)','acf') - ) - )); - - } - - - /* - * update_field() - * - * This filter is appied to the $field before it is saved to the database - * - * @date 18/9/17 - * @since 5.6.3 - * - * @param array $field The field array holding all the field options - * @return $field - */ - function update_field( $field ) { - - return acf_get_field_type('radio')->update_field( $field ); - } - - - /* - * load_value() - * - * This filter is appied to the $value after it is loaded from the db - * - * @date 18/9/17 - * @since 5.6.3 - * - * @param mixed $value The value found in the database - * @param mixed $post_id The post ID from which the value was loaded from - * @param array $field The field array holding all the field options - * @return $value - */ - - function load_value( $value, $post_id, $field ) { - - return acf_get_field_type('radio')->load_value( $value, $post_id, $field ); - - } - - - /* - * translate_field - * - * This function will translate field settings - * - * @date 18/9/17 - * @since 5.6.3 - * - * @param array $field The field array holding all the field options - * @return $field - */ - - function translate_field( $field ) { - - return acf_get_field_type('radio')->translate_field( $field ); - - } - - - /* - * format_value() - * - * This filter is appied to the $value after it is loaded from the db and before it is returned to the template - * - * @date 18/9/17 - * @since 5.6.3 - * - * @param mixed $value The value found in the database - * @param mixed $post_id The post ID from which the value was loaded from - * @param array $field The field array holding all the field options - * @return $value - */ - - function format_value( $value, $post_id, $field ) { - - return acf_get_field_type('radio')->format_value( $value, $post_id, $field ); - - } - -} + // close + $html .= '
                                          '; + + // return + echo $html; + + } -// initialize -acf_register_field_type( 'acf_field_button_group' ); + /** + * render_field_settings() + * + * Creates the field's settings HTML + * + * @date 18/9/17 + * @since 5.6.3 + * + * @param array $field The field settings array + * @return n/a + */ + function render_field_settings( $field ) { + // Encode choices (convert from array). + $field['choices'] = acf_encode_choices( $field['choices'] ); + + acf_render_field_setting( + $field, + array( + 'label' => __( 'Choices', 'acf' ), + 'instructions' => __( 'Enter each choice on a new line.', 'acf' ) . '
                                          ' . __( 'For more control, you may specify both a value and label like this:', 'acf' ) . '
                                          ' . __( 'red : Red', 'acf' ) . '', + 'type' => 'textarea', + 'name' => 'choices', + ) + ); + + acf_render_field_setting( + $field, + array( + 'label' => __( 'Default Value', 'acf' ), + 'instructions' => __( 'Appears when creating a new post', 'acf' ), + 'type' => 'text', + 'name' => 'default_value', + ) + ); + + acf_render_field_setting( + $field, + array( + 'label' => __( 'Return Value', 'acf' ), + 'instructions' => __( 'Specify the returned value on front end', 'acf' ), + 'type' => 'radio', + 'name' => 'return_format', + 'layout' => 'horizontal', + 'choices' => array( + 'value' => __( 'Value', 'acf' ), + 'label' => __( 'Label', 'acf' ), + 'array' => __( 'Both (Array)', 'acf' ), + ), + ) + ); + + } + + /** + * Renders the field settings used in the "Validation" tab. + * + * @since 6.0 + * + * @param array $field The field settings array. + * @return void + */ + function render_field_validation_settings( $field ) { + acf_render_field_setting( + $field, + array( + 'label' => __( 'Allow Null', 'acf' ), + 'instructions' => '', + 'name' => 'allow_null', + 'type' => 'true_false', + 'ui' => 1, + ) + ); + } + + /** + * Renders the field settings used in the "Presentation" tab. + * + * @since 6.0 + * + * @param array $field The field settings array. + * @return void + */ + function render_field_presentation_settings( $field ) { + acf_render_field_setting( + $field, + array( + 'label' => __( 'Layout', 'acf' ), + 'instructions' => '', + 'type' => 'radio', + 'name' => 'layout', + 'layout' => 'horizontal', + 'choices' => array( + 'horizontal' => __( 'Horizontal', 'acf' ), + 'vertical' => __( 'Vertical', 'acf' ), + ), + ) + ); + } + + /* + * update_field() + * + * This filter is appied to the $field before it is saved to the database + * + * @date 18/9/17 + * @since 5.6.3 + * + * @param array $field The field array holding all the field options + * @return $field + */ + + function update_field( $field ) { + + return acf_get_field_type( 'radio' )->update_field( $field ); + } + + + /* + * load_value() + * + * This filter is appied to the $value after it is loaded from the db + * + * @date 18/9/17 + * @since 5.6.3 + * + * @param mixed $value The value found in the database + * @param mixed $post_id The post ID from which the value was loaded from + * @param array $field The field array holding all the field options + * @return $value + */ + + function load_value( $value, $post_id, $field ) { + + return acf_get_field_type( 'radio' )->load_value( $value, $post_id, $field ); + + } + + + /* + * translate_field + * + * This function will translate field settings + * + * @date 18/9/17 + * @since 5.6.3 + * + * @param array $field The field array holding all the field options + * @return $field + */ + + function translate_field( $field ) { + + return acf_get_field_type( 'radio' )->translate_field( $field ); + + } + + + /* + * format_value() + * + * This filter is appied to the $value after it is loaded from the db and before it is returned to the template + * + * @date 18/9/17 + * @since 5.6.3 + * + * @param mixed $value The value found in the database + * @param mixed $post_id The post ID from which the value was loaded from + * @param array $field The field array holding all the field options + * @return $value + */ + + function format_value( $value, $post_id, $field ) { + + return acf_get_field_type( 'radio' )->format_value( $value, $post_id, $field ); + + } + + /** + * Return the schema array for the REST API. + * + * @param array $field + * @return array + */ + function get_rest_schema( array $field ) { + $schema = parent::get_rest_schema( $field ); + + if ( isset( $field['default_value'] ) && '' !== $field['default_value'] ) { + $schema['default'] = $field['default_value']; + } + + /** + * If a user has defined keys for the buttons, + * we should use the keys for the available options to POST to, + * since they are what is displayed in GET requests. + */ + $button_keys = array_diff( + array_keys( $field['choices'] ), + array_values( $field['choices'] ) + ); + + $schema['enum'] = empty( $button_keys ) ? $field['choices'] : $button_keys; + $schema['enum'][] = null; + + // Allow null via UI will value to empty string. + if ( ! empty( $field['allow_null'] ) ) { + $schema['enum'][] = ''; + } + + return $schema; + } + + } + + + // initialize + acf_register_field_type( 'acf_field_button_group' ); endif; // class_exists check -?> \ No newline at end of file + diff --git a/includes/fields/class-acf-field-checkbox.php b/includes/fields/class-acf-field-checkbox.php index b47b889..63f9af5 100644 --- a/includes/fields/class-acf-field-checkbox.php +++ b/includes/fields/class-acf-field-checkbox.php @@ -1,585 +1,658 @@ name = 'checkbox'; - $this->label = __("Checkbox",'acf'); - $this->category = 'choice'; - $this->defaults = array( - 'layout' => 'vertical', - 'choices' => array(), - 'default_value' => '', - 'allow_custom' => 0, - 'save_custom' => 0, - 'toggle' => 0, - 'return_format' => 'value' - ); - - } - - - /* - * render_field() - * - * Create the HTML interface for your field - * - * @param $field (array) the $field being rendered - * - * @type action - * @since 3.6 - * @date 23/01/13 - * - * @param $field (array) the $field being edited - * @return n/a - */ - - function render_field( $field ) { - - // reset vars - $this->_values = array(); - $this->_all_checked = true; - - - // ensure array - $field['value'] = acf_get_array($field['value']); - $field['choices'] = acf_get_array($field['choices']); - - - // hiden input - acf_hidden_input( array('name' => $field['name']) ); - - - // vars - $li = ''; - $ul = array( - 'class' => 'acf-checkbox-list', - ); - - - // append to class - $ul['class'] .= ' ' . ($field['layout'] == 'horizontal' ? 'acf-hl' : 'acf-bl'); - $ul['class'] .= ' ' . $field['class']; - - - // checkbox saves an array - $field['name'] .= '[]'; - - - // choices - if( !empty($field['choices']) ) { - - // choices - $li .= $this->render_field_choices( $field ); - - - // toggle - if( $field['toggle'] ) { - $li = $this->render_field_toggle( $field ) . $li; - } - - } - - - // custom - if( $field['allow_custom'] ) { - $li .= $this->render_field_custom( $field ); - } - - - // return - echo '
                                            ' . "\n" . $li . '
                                          ' . "\n"; - - } - - - /* - * render_field_choices - * - * description - * - * @type function - * @date 15/7/17 - * @since 5.6.0 - * - * @param $post_id (int) - * @return $post_id (int) - */ - - function render_field_choices( $field ) { - - // walk - return $this->walk( $field['choices'], $field ); - - } - - - /* - * render_field_toggle - * - * description - * - * @type function - * @date 15/7/17 - * @since 5.6.0 - * - * @param $post_id (int) - * @return $post_id (int) - */ - - function render_field_toggle( $field ) { - - // vars - $atts = array( - 'type' => 'checkbox', - 'class' => 'acf-checkbox-toggle', - 'label' => __("Toggle All", 'acf') - ); - - - // custom label - if( is_string($field['toggle']) ) { - $atts['label'] = $field['toggle']; - } - - - // checked - if( $this->_all_checked ) { - $atts['checked'] = 'checked'; - } - - - // return - return '
                                        1. ' . acf_get_checkbox_input($atts) . '
                                        2. ' . "\n"; - - } - - - /* - * render_field_custom - * - * description - * - * @type function - * @date 15/7/17 - * @since 5.6.0 - * - * @param $post_id (int) - * @return $post_id (int) - */ - - function render_field_custom( $field ) { - - // vars - $html = ''; - - - // loop - foreach( $field['value'] as $value ) { - - // ignore if already eixsts - if( isset($field['choices'][ $value ]) ) continue; - - // vars - $esc_value = esc_attr($value); - $text_input = array( - 'name' => $field['name'], - 'value' => $value, + $this->name = 'checkbox'; + $this->label = __( 'Checkbox', 'acf' ); + $this->category = 'choice'; + $this->description = __( 'A group of checkbox inputs that allow the user to select one, or multiple values that you specify.', 'acf' ); + $this->preview_image = acf_get_url() . '/assets/images/field-type-previews/field-preview-checkbox.png'; + $this->doc_url = acf_add_url_utm_tags( 'https://www.advancedcustomfields.com/resources/checkbox/', 'docs', 'field-type-selection' ); + $this->defaults = array( + 'layout' => 'vertical', + 'choices' => array(), + 'default_value' => '', + 'allow_custom' => 0, + 'save_custom' => 0, + 'toggle' => 0, + 'return_format' => 'value', + 'custom_choice_button_text' => __( 'Add new choice', 'acf' ), ); - - - // bail ealry if choice already exists - if( in_array( $esc_value, $this->_values ) ) continue; - - - // append - $html .= '
                                        3. ' . acf_get_text_input($text_input) . '
                                        4. ' . "\n"; - - } - - - // append button - $html .= '
                                        5. ' . esc_attr__('Add new choice', 'acf') . '
                                        6. ' . "\n"; - - - // return - return $html; - - } - - - function walk( $choices = array(), $args = array(), $depth = 0 ) { - - // bail ealry if no choices - if( empty($choices) ) return ''; - - - // defaults - $args = wp_parse_args($args, array( - 'id' => '', - 'type' => 'checkbox', - 'name' => '', - 'value' => array(), - 'disabled' => array(), - )); - - - // vars - $html = ''; - - - // sanitize values for 'selected' matching - if( $depth == 0 ) { - $args['value'] = array_map('esc_attr', $args['value']); - $args['disabled'] = array_map('esc_attr', $args['disabled']); - } - - - // loop - foreach( $choices as $value => $label ) { - - // open - $html .= '
                                        7. '; - - - // optgroup - if( is_array($label) ){ - - $html .= '
                                            ' . "\n"; - $html .= $this->walk( $label, $args, $depth+1 ); - $html .= '
                                          '; - - // option - } else { - - // vars - $esc_value = esc_attr($value); - $atts = array( - 'id' => $args['id'] . '-' . str_replace(' ', '-', $value), - 'type' => $args['type'], - 'name' => $args['name'], - 'value' => $value, - 'label' => $label, - ); - - - // selected - if( in_array( $esc_value, $args['value'] ) ) { - $atts['checked'] = 'checked'; - } else { - $this->_all_checked = false; - } - - - // disabled - if( in_array( $esc_value, $args['disabled'] ) ) { - $atts['disabled'] = 'disabled'; - } - - - // store value added - $this->_values[] = $esc_value; - - - // append - $html .= acf_get_checkbox_input($atts); - - } - - - // close - $html .= '
                                        8. ' . "\n"; - - } - - - // return - return $html; - - } - - - - /* - * render_field_settings() - * - * Create extra options for your field. This is rendered when editing a field. - * The value of $field['name'] can be used (like bellow) to save extra data to the $field - * - * @type action - * @since 3.6 - * @date 23/01/13 - * - * @param $field - an array holding all the field's data - */ - - function render_field_settings( $field ) { - - // encode choices (convert from array) - $field['choices'] = acf_encode_choices($field['choices']); - $field['default_value'] = acf_encode_choices($field['default_value'], false); - - - // choices - acf_render_field_setting( $field, array( - 'label' => __('Choices','acf'), - 'instructions' => __('Enter each choice on a new line.','acf') . '

                                          ' . __('For more control, you may specify both a value and label like this:','acf'). '

                                          ' . __('red : Red','acf'), - 'type' => 'textarea', - 'name' => 'choices', - )); - - - // other_choice - acf_render_field_setting( $field, array( - 'label' => __('Allow Custom','acf'), - 'instructions' => '', - 'name' => 'allow_custom', - 'type' => 'true_false', - 'ui' => 1, - 'message' => __("Allow 'custom' values to be added", 'acf'), - )); - - - // save_other_choice - acf_render_field_setting( $field, array( - 'label' => __('Save Custom','acf'), - 'instructions' => '', - 'name' => 'save_custom', - 'type' => 'true_false', - 'ui' => 1, - 'message' => __("Save 'custom' values to the field's choices", 'acf'), - 'conditions' => array( - 'field' => 'allow_custom', - 'operator' => '==', - 'value' => 1 - ) - )); - - - // default_value - acf_render_field_setting( $field, array( - 'label' => __('Default Value','acf'), - 'instructions' => __('Enter each default value on a new line','acf'), - 'type' => 'textarea', - 'name' => 'default_value', - )); - - - // layout - acf_render_field_setting( $field, array( - 'label' => __('Layout','acf'), - 'instructions' => '', - 'type' => 'radio', - 'name' => 'layout', - 'layout' => 'horizontal', - 'choices' => array( - 'vertical' => __("Vertical",'acf'), - 'horizontal' => __("Horizontal",'acf') - ) - )); - - - // layout - acf_render_field_setting( $field, array( - 'label' => __('Toggle','acf'), - 'instructions' => __('Prepend an extra checkbox to toggle all choices','acf'), - 'name' => 'toggle', - 'type' => 'true_false', - 'ui' => 1, - )); - - - // return_format - acf_render_field_setting( $field, array( - 'label' => __('Return Value','acf'), - 'instructions' => __('Specify the returned value on front end','acf'), - 'type' => 'radio', - 'name' => 'return_format', - 'layout' => 'horizontal', - 'choices' => array( - 'value' => __('Value','acf'), - 'label' => __('Label','acf'), - 'array' => __('Both (Array)','acf') - ) - )); - - } - - - /* - * update_field() - * - * This filter is appied to the $field before it is saved to the database - * - * @type filter - * @since 3.6 - * @date 23/01/13 - * - * @param $field - the field array holding all the field options - * @param $post_id - the field group ID (post_type = acf) - * - * @return $field - the modified field - */ - function update_field( $field ) { - - // Decode choices (convert to array). - $field['choices'] = acf_decode_choices( $field['choices'] ); - $field['default_value'] = acf_decode_choices( $field['default_value'], true ); - return $field; - } - - - /* - * update_value() - * - * This filter is appied to the $value before it is updated in the db - * - * @type filter - * @since 3.6 - * @date 23/01/13 - * - * @param $value - the value which will be saved in the database - * @param $post_id - the $post_id of which the value will be saved - * @param $field - the field array holding all the field options - * - * @return $value - the modified value - */ - - function update_value( $value, $post_id, $field ) { - - // bail early if is empty - if( empty($value) ) return $value; - - - // select -> update_value() - $value = acf_get_field_type('select')->update_value( $value, $post_id, $field ); - - - // save_other_choice - if( $field['save_custom'] ) { - - // get raw $field (may have been changed via repeater field) - // if field is local, it won't have an ID - $selector = $field['ID'] ? $field['ID'] : $field['key']; - $field = acf_get_field( $selector ); - if( !$field ) { - return false; + } + + + /* + * render_field() + * + * Create the HTML interface for your field + * + * @param $field (array) the $field being rendered + * + * @type action + * @since 3.6 + * @date 23/01/13 + * + * @param $field (array) the $field being edited + * @return n/a + */ + + function render_field( $field ) { + + // reset vars + $this->_values = array(); + $this->_all_checked = true; + + // ensure array + $field['value'] = acf_get_array( $field['value'] ); + $field['choices'] = acf_get_array( $field['choices'] ); + + // hiden input + acf_hidden_input( array( 'name' => $field['name'] ) ); + + // vars + $li = ''; + $ul = array( + 'class' => 'acf-checkbox-list', + ); + + // append to class + $ul['class'] .= ' ' . ( $field['layout'] == 'horizontal' ? 'acf-hl' : 'acf-bl' ); + $ul['class'] .= ' ' . $field['class']; + + // checkbox saves an array + $field['name'] .= '[]'; + + // choices + if ( ! empty( $field['choices'] ) ) { + + // choices + $li .= $this->render_field_choices( $field ); + + // toggle + if ( $field['toggle'] ) { + $li = $this->render_field_toggle( $field ) . $li; + } } - - - // bail early if no ID (JSON only) - if( !$field['ID'] ) return $value; - - + + // custom + if ( $field['allow_custom'] ) { + $li .= $this->render_field_custom( $field ); + } + + // return + echo '
                                            ' . "\n" . $li . '
                                          ' . "\n"; + + } + + + /* + * render_field_choices + * + * description + * + * @type function + * @date 15/7/17 + * @since 5.6.0 + * + * @param $post_id (int) + * @return $post_id (int) + */ + + function render_field_choices( $field ) { + + // walk + return $this->walk( $field['choices'], $field ); + + } + + /** + * Validates values for the checkbox field + * + * @date 09/12/2022 + * @since 6.0.0 + * + * @param bool $valid If the field is valid. + * @param mixed $value The value to validate. + * @param array $field The main field array. + * @param string $input The input element's name attribute. + * + * @return bool + */ + function validate_value( $valid, $value, $field, $input ) { + if ( ! is_array( $value ) || empty( $field['allow_custom'] ) ) { + return $valid; + } + + foreach ( $value as $value ) { + if ( empty( $value ) && $value !== '0' ) { + return __( 'Checkbox custom values cannot be empty. Uncheck any empty values.', 'acf' ); + } + } + + return $valid; + } + + /* + * render_field_toggle + * + * description + * + * @type function + * @date 15/7/17 + * @since 5.6.0 + * + * @param $post_id (int) + * @return $post_id (int) + */ + + function render_field_toggle( $field ) { + + // vars + $atts = array( + 'type' => 'checkbox', + 'class' => 'acf-checkbox-toggle', + 'label' => __( 'Toggle All', 'acf' ), + ); + + // custom label + if ( is_string( $field['toggle'] ) ) { + $atts['label'] = $field['toggle']; + } + + // checked + if ( $this->_all_checked ) { + $atts['checked'] = 'checked'; + } + + // return + return '
                                        9. ' . acf_get_checkbox_input( $atts ) . '
                                        10. ' . "\n"; + + } + + + /* + * render_field_custom + * + * description + * + * @type function + * @date 15/7/17 + * @since 5.6.0 + * + * @param $post_id (int) + * @return $post_id (int) + */ + + function render_field_custom( $field ) { + + // vars + $html = ''; + // loop - foreach( $value as $v ) { - + foreach ( $field['value'] as $value ) { + // ignore if already eixsts - if( isset($field['choices'][ $v ]) ) continue; - - - // unslash (fixes serialize single quote issue) - $v = wp_unslash($v); - - - // sanitize (remove tags) - $v = sanitize_text_field($v); - - + if ( isset( $field['choices'][ $value ] ) ) { + continue; + } + + // vars + $esc_value = esc_attr( $value ); + $text_input = array( + 'name' => $field['name'], + 'value' => $value, + ); + + // bail early if choice already exists + if ( in_array( $esc_value, $this->_values ) ) { + continue; + } + // append - $field['choices'][ $v ] = $v; - + $html .= '
                                        11. ' . acf_get_text_input( $text_input ) . '
                                        12. ' . "\n"; + } - - - // save - acf_update_field( $field ); - - } - - - // return - return $value; - - } - - - /* - * translate_field - * - * This function will translate field settings - * - * @type function - * @date 8/03/2016 - * @since 5.3.2 - * - * @param $field (array) - * @return $field - */ - - function translate_field( $field ) { - - return acf_get_field_type('select')->translate_field( $field ); - - } - - - /* - * format_value() - * - * This filter is appied to the $value after it is loaded from the db and before it is returned to the template - * - * @type filter - * @since 3.6 - * @date 23/01/13 - * - * @param $value (mixed) the value which was loaded from the database - * @param $post_id (mixed) the $post_id from which the value was loaded - * @param $field (array) the field array holding all the field options - * - * @return $value (mixed) the modified value - */ - - function format_value( $value, $post_id, $field ) { - - // Bail early if is empty. - if( acf_is_empty($value) ) { - return array(); + + // append button + $html .= '
                                        13. ' . esc_attr( $field['custom_choice_button_text'] ) . '
                                        14. ' . "\n"; + + // return + return $html; + } - - // Always convert to array of items. - $value = acf_array($value); - - // Return. - return acf_get_field_type('select')->format_value( $value, $post_id, $field ); + + + function walk( $choices = array(), $args = array(), $depth = 0 ) { + + // bail early if no choices + if ( empty( $choices ) ) { + return ''; + } + + // defaults + $args = wp_parse_args( + $args, + array( + 'id' => '', + 'type' => 'checkbox', + 'name' => '', + 'value' => array(), + 'disabled' => array(), + ) + ); + + // vars + $html = ''; + + // sanitize values for 'selected' matching + if ( $depth == 0 ) { + $args['value'] = array_map( 'esc_attr', $args['value'] ); + $args['disabled'] = array_map( 'esc_attr', $args['disabled'] ); + } + + // loop + foreach ( $choices as $value => $label ) { + + // open + $html .= '
                                        15. '; + + // optgroup + if ( is_array( $label ) ) { + + $html .= '
                                            ' . "\n"; + $html .= $this->walk( $label, $args, $depth + 1 ); + $html .= '
                                          '; + + // option + } else { + + // vars + $esc_value = esc_attr( $value ); + $atts = array( + 'id' => $args['id'] . '-' . str_replace( ' ', '-', $value ), + 'type' => $args['type'], + 'name' => $args['name'], + 'value' => $value, + 'label' => $label, + ); + + // selected + if ( in_array( $esc_value, $args['value'] ) ) { + $atts['checked'] = 'checked'; + } else { + $this->_all_checked = false; + } + + // disabled + if ( in_array( $esc_value, $args['disabled'] ) ) { + $atts['disabled'] = 'disabled'; + } + + // store value added + $this->_values[] = $esc_value; + + // append + $html .= acf_get_checkbox_input( $atts ); + + } + + // close + $html .= '
                                        16. ' . "\n"; + + } + + // return + return $html; + + } + + + + /* + * render_field_settings() + * + * Create extra options for your field. This is rendered when editing a field. + * The value of $field['name'] can be used (like bellow) to save extra data to the $field + * + * @type action + * @since 3.6 + * @date 23/01/13 + * + * @param $field - an array holding all the field's data + */ + function render_field_settings( $field ) { + // Encode choices (convert from array). + $field['choices'] = acf_encode_choices( $field['choices'] ); + $field['default_value'] = acf_encode_choices( $field['default_value'], false ); + + acf_render_field_setting( + $field, + array( + 'label' => __( 'Choices', 'acf' ), + 'instructions' => __( 'Enter each choice on a new line.', 'acf' ) . '
                                          ' . __( 'For more control, you may specify both a value and label like this:', 'acf' ) . '
                                          ' . __( 'red : Red', 'acf' ) . '', + 'type' => 'textarea', + 'name' => 'choices', + ) + ); + + acf_render_field_setting( + $field, + array( + 'label' => __( 'Default Value', 'acf' ), + 'instructions' => __( 'Enter each default value on a new line', 'acf' ), + 'type' => 'textarea', + 'name' => 'default_value', + ) + ); + + acf_render_field_setting( + $field, + array( + 'label' => __( 'Return Value', 'acf' ), + 'instructions' => __( 'Specify the returned value on front end', 'acf' ), + 'type' => 'radio', + 'name' => 'return_format', + 'layout' => 'horizontal', + 'choices' => array( + 'value' => __( 'Value', 'acf' ), + 'label' => __( 'Label', 'acf' ), + 'array' => __( 'Both (Array)', 'acf' ), + ), + ) + ); + + } + + /** + * Renders the field settings used in the "Validation" tab. + * + * @since 6.0 + * + * @param array $field The field settings array. + * @return void + */ + function render_field_validation_settings( $field ) { + acf_render_field_setting( + $field, + array( + 'label' => __( 'Allow Custom Values', 'acf' ), + 'name' => 'allow_custom', + 'type' => 'true_false', + 'ui' => 1, + 'instructions' => __( "Allow 'custom' values to be added", 'acf' ), + ) + ); + + acf_render_field_setting( + $field, + array( + 'label' => __( 'Save Custom Values', 'acf' ), + 'name' => 'save_custom', + 'type' => 'true_false', + 'ui' => 1, + 'instructions' => __( "Save 'custom' values to the field's choices", 'acf' ), + 'conditions' => array( + 'field' => 'allow_custom', + 'operator' => '==', + 'value' => 1, + ), + ) + ); + } + + /** + * Renders the field settings used in the "Presentation" tab. + * + * @since 6.0 + * + * @param array $field The field settings array. + * @return void + */ + function render_field_presentation_settings( $field ) { + acf_render_field_setting( + $field, + array( + 'label' => __( 'Layout', 'acf' ), + 'instructions' => '', + 'type' => 'radio', + 'name' => 'layout', + 'layout' => 'horizontal', + 'choices' => array( + 'vertical' => __( 'Vertical', 'acf' ), + 'horizontal' => __( 'Horizontal', 'acf' ), + ), + ) + ); + + acf_render_field_setting( + $field, + array( + 'label' => __( 'Add Toggle All', 'acf' ), + 'instructions' => __( 'Prepend an extra checkbox to toggle all choices', 'acf' ), + 'name' => 'toggle', + 'type' => 'true_false', + 'ui' => 1, + ) + ); + } + + /* + * update_field() + * + * This filter is appied to the $field before it is saved to the database + * + * @type filter + * @since 3.6 + * @date 23/01/13 + * + * @param $field - the field array holding all the field options + * @param $post_id - the field group ID (post_type = acf) + * + * @return $field - the modified field + */ + + function update_field( $field ) { + + // Decode choices (convert to array). + $field['choices'] = acf_decode_choices( $field['choices'] ); + $field['default_value'] = acf_decode_choices( $field['default_value'], true ); + return $field; + } + + + /* + * update_value() + * + * This filter is appied to the $value before it is updated in the db + * + * @type filter + * @since 3.6 + * @date 23/01/13 + * + * @param $value - the value which will be saved in the database + * @param $post_id - the $post_id of which the value will be saved + * @param $field - the field array holding all the field options + * + * @return $value - the modified value + */ + + function update_value( $value, $post_id, $field ) { + + // bail early if is empty + if ( empty( $value ) ) { + return $value; + } + + // select -> update_value() + $value = acf_get_field_type( 'select' )->update_value( $value, $post_id, $field ); + + // save_other_choice + if ( $field['save_custom'] ) { + + // get raw $field (may have been changed via repeater field) + // if field is local, it won't have an ID + $selector = $field['ID'] ? $field['ID'] : $field['key']; + $field = acf_get_field( $selector ); + if ( ! $field ) { + return false; + } + + // bail early if no ID (JSON only) + if ( ! $field['ID'] ) { + return $value; + } + + // loop + foreach ( $value as $v ) { + + // ignore if already eixsts + if ( isset( $field['choices'][ $v ] ) ) { + continue; + } + + // unslash (fixes serialize single quote issue) + $v = wp_unslash( $v ); + + // sanitize (remove tags) + $v = sanitize_text_field( $v ); + + // append + $field['choices'][ $v ] = $v; + + } + + // save + acf_update_field( $field ); + + } + + // return + return $value; + + } + + + /* + * translate_field + * + * This function will translate field settings + * + * @type function + * @date 8/03/2016 + * @since 5.3.2 + * + * @param $field (array) + * @return $field + */ + + function translate_field( $field ) { + + return acf_get_field_type( 'select' )->translate_field( $field ); + + } + + + /* + * format_value() + * + * This filter is appied to the $value after it is loaded from the db and before it is returned to the template + * + * @type filter + * @since 3.6 + * @date 23/01/13 + * + * @param $value (mixed) the value which was loaded from the database + * @param $post_id (mixed) the $post_id from which the value was loaded + * @param $field (array) the field array holding all the field options + * + * @return $value (mixed) the modified value + */ + + function format_value( $value, $post_id, $field ) { + + // Bail early if is empty. + if ( acf_is_empty( $value ) ) { + return array(); + } + + // Always convert to array of items. + $value = acf_array( $value ); + + // Return. + return acf_get_field_type( 'select' )->format_value( $value, $post_id, $field ); + } + + /** + * Return the schema array for the REST API. + * + * @param array $field + * @return array + */ + public function get_rest_schema( array $field ) { + $schema = array( + 'type' => array( 'integer', 'string', 'array', 'null' ), + 'required' => isset( $field['required'] ) && $field['required'], + 'items' => array( + 'type' => array( 'string', 'integer' ), + ), + ); + + if ( isset( $field['default_value'] ) && '' !== $field['default_value'] ) { + $schema['default'] = $field['default_value']; + } + + // If we allow custom values, nothing else to do here. + if ( ! empty( $field['allow_custom'] ) ) { + return $schema; + } + + /** + * If a user has defined keys for the checkboxes, + * we should use the keys for the available options to POST to, + * since they are what is displayed in GET requests. + */ + $checkbox_keys = array_map( + 'strval', + array_diff( + array_keys( $field['choices'] ), + array_values( $field['choices'] ) + ) + ); + + // Support users passing integers for the keys as well. + $checkbox_keys = array_merge( $checkbox_keys, array_map( 'intval', array_keys( $field['choices'] ) ) ); + + $schema['items']['enum'] = empty( $checkbox_keys ) ? $field['choices'] : $checkbox_keys; + + return $schema; + } + } - -} -// initialize -acf_register_field_type( 'acf_field_checkbox' ); + // initialize + acf_register_field_type( 'acf_field_checkbox' ); endif; // class_exists check -?> \ No newline at end of file + diff --git a/includes/fields/class-acf-field-color_picker.php b/includes/fields/class-acf-field-color_picker.php index e5a7aa8..e2c9b2f 100644 --- a/includes/fields/class-acf-field-color_picker.php +++ b/includes/fields/class-acf-field-color_picker.php @@ -1,128 +1,298 @@ name = 'color_picker'; - $this->label = __("Color Picker",'acf'); - $this->category = 'jquery'; - $this->defaults = array( - 'default_value' => '', - ); - - } - - - /* - * input_admin_enqueue_scripts - * - * description - * - * @type function - * @date 16/12/2015 - * @since 5.3.2 - * - * @param $post_id (int) - * @return $post_id (int) - */ - - function input_admin_enqueue_scripts() { + class acf_field_color_picker extends acf_field { + + + /* + * __construct + * + * This function will setup the field type data + * + * @type function + * @date 5/03/2014 + * @since 5.0.0 + * + * @param n/a + * @return n/a + */ + + function initialize() { + + // vars + $this->name = 'color_picker'; + $this->label = __( 'Color Picker', 'acf' ); + $this->category = 'advanced'; + $this->description = __( 'An interactive UI for selecting a color, or specifying a Hex value.', 'acf' ); + $this->preview_image = acf_get_url() . '/assets/images/field-type-previews/field-preview-color-picker.png'; + $this->doc_url = acf_add_url_utm_tags( 'https://www.advancedcustomfields.com/resources/color-picker/', 'docs', 'field-type-selection' ); + $this->defaults = array( + 'default_value' => '', + 'enable_opacity' => false, + 'return_format' => 'string', // 'string'|'array' + ); - // Register scripts for non-admin. - // Applies logic from wp_default_scripts() function. - if( !is_admin() ) { - $suffix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min'; - $scripts = wp_scripts(); - $scripts->add( 'iris', '/wp-admin/js/iris.min.js', array( 'jquery-ui-draggable', 'jquery-ui-slider', 'jquery-touch-punch' ), '1.0.7', 1 ); - $scripts->add( 'wp-color-picker', "/wp-admin/js/color-picker$suffix.js", array( 'iris' ), false, 1 ); - $scripts->set_translations( 'wp-color-picker' ); } - - // Enqueue. - wp_enqueue_style( 'wp-color-picker' ); - wp_enqueue_script( 'wp-color-picker' ); - } - - - /* - * render_field() - * - * Create the HTML interface for your field - * - * @param $field - an array holding all the field's data - * - * @type action - * @since 3.6 - * @date 23/01/13 - */ - - function render_field( $field ) { - - // vars - $text_input = acf_get_sub_array( $field, array('id', 'class', 'name', 'value') ); - $hidden_input = acf_get_sub_array( $field, array('name', 'value') ); - - - // html - ?> + + + /* + * input_admin_enqueue_scripts + * + * description + * + * @type function + * @date 16/12/2015 + * @since 5.3.2 + * + * @param $post_id (int) + * @return $post_id (int) + */ + + function input_admin_enqueue_scripts() { + + // Register scripts for non-admin. + // Applies logic from wp_default_scripts() function defined in "wp-includes/script-loader.php". + if ( ! is_admin() ) { + $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min'; + $scripts = wp_scripts(); + $scripts->add( 'iris', '/wp-admin/js/iris.min.js', array( 'jquery-ui-draggable', 'jquery-ui-slider', 'jquery-touch-punch' ), '1.0.7', 1 ); + $scripts->add( 'wp-color-picker', "/wp-admin/js/color-picker$suffix.js", array( 'iris' ), false, 1 ); + + // Handle localisation across multiple WP versions. + // WP 5.0+ + if ( method_exists( $scripts, 'set_translations' ) ) { + $scripts->set_translations( 'wp-color-picker' ); + // WP 4.9 + } else { + $scripts->localize( + 'wp-color-picker', + 'wpColorPickerL10n', + array( + 'clear' => __( 'Clear', 'acf' ), + 'clearAriaLabel' => __( 'Clear color', 'acf' ), + 'defaultString' => __( 'Default', 'acf' ), + 'defaultAriaLabel' => __( 'Select default color', 'acf' ), + 'pick' => __( 'Select Color', 'acf' ), + 'defaultLabel' => __( 'Color value', 'acf' ), + ) + ); + } + } + + // Enqueue alpha color picker assets. + wp_enqueue_script( + 'acf-color-picker-alpha', + acf_get_url( 'assets/inc/color-picker-alpha/wp-color-picker-alpha.js' ), + array( 'jquery', 'wp-color-picker' ), + '3.0.0' + ); + + // Enqueue. + wp_enqueue_style( 'wp-color-picker' ); + wp_enqueue_script( 'wp-color-picker' ); + + acf_localize_data( + array( + 'colorPickerL10n' => array( + 'hex_string' => __( 'Hex String', 'acf' ), + 'rgba_string' => __( 'RGBA String', 'acf' ), + ), + ) + ); + } + + + /* + * render_field() + * + * Create the HTML interface for your field + * + * @param $field - an array holding all the field's data + * + * @type action + * @since 3.6 + * @date 23/01/13 + */ + + function render_field( $field ) { + + // vars + $text_input = acf_get_sub_array( $field, array( 'id', 'class', 'name', 'value' ) ); + $hidden_input = acf_get_sub_array( $field, array( 'name', 'value' ) ); + + // Color picker alpha library requires a specific data attribute to exist. + if ( $field['enable_opacity'] ) { + $text_input['data-alpha-enabled'] = true; + } + + // html + ?>
                                          - __('Default Value','acf'), - 'instructions' => '', - 'type' => 'text', - 'name' => 'default_value', - 'placeholder' => '#FFFFFF' - )); - - } - -} + __( 'Default Value', 'acf' ), + 'instructions' => '', + 'type' => 'text', + 'name' => 'default_value', + 'placeholder' => '#FFFFFF', + ) + ); + + // Toggle opacity control. + acf_render_field_setting( + $field, + array( + 'label' => __( 'Enable Transparency', 'acf' ), + 'instructions' => '', + 'type' => 'true_false', + 'name' => 'enable_opacity', + 'ui' => 1, + ) + ); + + // Return format control. + acf_render_field_setting( + $field, + array( + 'label' => __( 'Return Format', 'acf' ), + 'instructions' => '', + 'type' => 'radio', + 'name' => 'return_format', + 'layout' => 'horizontal', + 'choices' => array( + 'string' => __( 'Hex String', 'acf' ), + 'array' => __( 'RGBA Array', 'acf' ), + ), + ) + ); + + } + + /** + * Format the value for use in templates. At this stage, the value has been loaded from the + * database and is being returned by an API function such as get_field(), the_field(), etc. + * + * @since 5.10 + * @date 15/12/20 + * + * @param mixed $value + * @param int $post_id + * @param array $field + * + * @return string|array + */ + public function format_value( $value, $post_id, $field ) { + if ( isset( $field['return_format'] ) && $field['return_format'] === 'array' ) { + $value = $this->string_to_array( $value ); + } + + return $value; + } + + /** + * Convert either a Hexadecimal or RGBA string to an RGBA array. + * + * @since 5.10 + * @date 15/12/20 + * + * @param string $value + * @return array + */ + private function string_to_array( $value ) { + $value = is_string( $value ) ? trim( $value ) : ''; + + // Match and collect r,g,b values from 6 digit hex code. If there are 4 + // match-results, we have the values we need to build an r,g,b,a array. + preg_match( '/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i', $value, $matches ); + if ( count( $matches ) === 4 ) { + return array( + 'red' => hexdec( $matches[1] ), + 'green' => hexdec( $matches[2] ), + 'blue' => hexdec( $matches[3] ), + 'alpha' => (float) 1, + ); + } + + // Match and collect r,g,b values from 3 digit hex code. If there are 4 + // match-results, we have the values we need to build an r,g,b,a array. + // We have to duplicate the matched hex digit for 3 digit hex codes. + preg_match( '/^#([0-9a-f])([0-9a-f])([0-9a-f])$/i', $value, $matches ); + if ( count( $matches ) === 4 ) { + return array( + 'red' => hexdec( $matches[1] . $matches[1] ), + 'green' => hexdec( $matches[2] . $matches[2] ), + 'blue' => hexdec( $matches[3] . $matches[3] ), + 'alpha' => (float) 1, + ); + } + + // Attempt to match an rgba(…) or rgb(…) string (case-insensitive), capturing the decimals + // as a string. If there are two match results, we have the RGBA decimal values as a + // comma-separated string. Break it apart and, depending on the number of values, return + // our formatted r,g,b,a array. + preg_match( '/^rgba?\(([0-9,.]+)\)/i', $value, $matches ); + if ( count( $matches ) === 2 ) { + $decimals = explode( ',', $matches[1] ); + + // Handle rgba() format. + if ( count( $decimals ) === 4 ) { + return array( + 'red' => (int) $decimals[0], + 'green' => (int) $decimals[1], + 'blue' => (int) $decimals[2], + 'alpha' => (float) $decimals[3], + ); + } + + // Handle rgb() format. + if ( count( $decimals ) === 3 ) { + return array( + 'red' => (int) $decimals[0], + 'green' => (int) $decimals[1], + 'blue' => (int) $decimals[2], + 'alpha' => (float) 1, + ); + } + } + + return array( + 'red' => 0, + 'green' => 0, + 'blue' => 0, + 'alpha' => (float) 0, + ); + } + + } + + // initialize + acf_register_field_type( 'acf_field_color_picker' ); endif; // class_exists check -?> \ No newline at end of file +?> diff --git a/includes/fields/class-acf-field-date_picker.php b/includes/fields/class-acf-field-date_picker.php index 7f2e43c..551a2a7 100644 --- a/includes/fields/class-acf-field-date_picker.php +++ b/includes/fields/class-acf-field-date_picker.php @@ -1,276 +1,334 @@ name = 'date_picker'; - $this->label = __("Date Picker",'acf'); - $this->category = 'jquery'; - $this->defaults = array( - 'display_format' => 'd/m/Y', - 'return_format' => 'd/m/Y', - 'first_day' => 1 - ); - } - - - /* - * input_admin_enqueue_scripts - * - * description - * - * @type function - * @date 16/12/2015 - * @since 5.3.2 - * - * @param $post_id (int) - * @return $post_id (int) - */ - - function input_admin_enqueue_scripts() { - - // bail ealry if no enqueue - if( !acf_get_setting('enqueue_datepicker') ) { - return; - } - - // localize - global $wp_locale; - acf_localize_data(array( - 'datePickerL10n' => array( - 'closeText' => _x('Done', 'Date Picker JS closeText', 'acf'), - 'currentText' => _x('Today', 'Date Picker JS currentText', 'acf'), - 'nextText' => _x('Next', 'Date Picker JS nextText', 'acf'), - 'prevText' => _x('Prev', 'Date Picker JS prevText', 'acf'), - 'weekHeader' => _x('Wk', 'Date Picker JS weekHeader', 'acf'), - 'monthNames' => array_values( $wp_locale->month ), - 'monthNamesShort' => array_values( $wp_locale->month_abbrev ), - 'dayNames' => array_values( $wp_locale->weekday ), - 'dayNamesMin' => array_values( $wp_locale->weekday_initial ), - 'dayNamesShort' => array_values( $wp_locale->weekday_abbrev ) - ) - )); - - // script - wp_enqueue_script('jquery-ui-datepicker'); - - // style - wp_enqueue_style('acf-datepicker', acf_get_url('assets/inc/datepicker/jquery-ui.min.css'), array(), '1.11.4' ); - } - - - /* - * render_field() - * - * Create the HTML interface for your field - * - * @param $field - an array holding all the field's data - * - * @type action - * @since 3.6 - * @date 23/01/13 - */ - - function render_field( $field ) { - - // vars - $hidden_value = ''; - $display_value = ''; - - // format value - if( $field['value'] ) { - $hidden_value = acf_format_date( $field['value'], 'Ymd' ); - $display_value = acf_format_date( $field['value'], $field['display_format'] ); + class acf_field_date_picker extends acf_field { + + + /* + * __construct + * + * This function will setup the field type data + * + * @type function + * @date 5/03/2014 + * @since 5.0.0 + * + * @param n/a + * @return n/a + */ + + function initialize() { + + // vars + $this->name = 'date_picker'; + $this->label = __( 'Date Picker', 'acf' ); + $this->category = 'advanced'; + $this->description = __( 'An interactive UI for picking a date. The date return format can be customized using the field settings.', 'acf' ); + $this->preview_image = acf_get_url() . '/assets/images/field-type-previews/field-preview-date-picker.png'; + $this->doc_url = acf_add_url_utm_tags( 'https://www.advancedcustomfields.com/resources/date-picker/', 'docs', 'field-type-selection' ); + $this->defaults = array( + 'display_format' => 'd/m/Y', + 'return_format' => 'd/m/Y', + 'first_day' => 1, + ); } - - // elements - $div = array( - 'class' => 'acf-date-picker acf-input-wrap', - 'data-date_format' => acf_convert_date_to_js($field['display_format']), - 'data-first_day' => $field['first_day'], - ); - $hidden_input = array( - 'id' => $field['id'], - 'name' => $field['name'], - 'value' => $hidden_value, - ); - $text_input = array( - 'class' => 'input', - 'value' => $display_value, - ); - - // special attributes - foreach( array( 'readonly', 'disabled' ) as $k ) { - if( !empty($field[ $k ]) ) { - $text_input[ $k ] = $k; + + + /* + * input_admin_enqueue_scripts + * + * description + * + * @type function + * @date 16/12/2015 + * @since 5.3.2 + * + * @param $post_id (int) + * @return $post_id (int) + */ + + function input_admin_enqueue_scripts() { + + // bail early if no enqueue + if ( ! acf_get_setting( 'enqueue_datepicker' ) ) { + return; } + + // localize + global $wp_locale; + acf_localize_data( + array( + 'datePickerL10n' => array( + 'closeText' => _x( 'Done', 'Date Picker JS closeText', 'acf' ), + 'currentText' => _x( 'Today', 'Date Picker JS currentText', 'acf' ), + 'nextText' => _x( 'Next', 'Date Picker JS nextText', 'acf' ), + 'prevText' => _x( 'Prev', 'Date Picker JS prevText', 'acf' ), + 'weekHeader' => _x( 'Wk', 'Date Picker JS weekHeader', 'acf' ), + 'monthNames' => array_values( $wp_locale->month ), + 'monthNamesShort' => array_values( $wp_locale->month_abbrev ), + 'dayNames' => array_values( $wp_locale->weekday ), + 'dayNamesMin' => array_values( $wp_locale->weekday_initial ), + 'dayNamesShort' => array_values( $wp_locale->weekday_abbrev ), + ), + ) + ); + + // script + wp_enqueue_script( 'jquery-ui-datepicker' ); + + // style + wp_enqueue_style( 'acf-datepicker', acf_get_url( 'assets/inc/datepicker/jquery-ui.min.css' ), array(), '1.11.4' ); } - - // save_format - compatibility with ACF < 5.0.0 - if( !empty($field['save_format']) ) { - - // add custom JS save format - $div['data-save_format'] = $field['save_format']; - - // revert hidden input value to raw DB value - $hidden_input['value'] = $field['value']; - - // remove formatted value (will do this via JS) - $text_input['value'] = ''; - } - - // html - ?> -
                                          > + + + /* + * render_field() + * + * Create the HTML interface for your field + * + * @param $field - an array holding all the field's data + * + * @type action + * @since 3.6 + * @date 23/01/13 + */ + + function render_field( $field ) { + + // vars + $hidden_value = ''; + $display_value = ''; + + // format value + if ( $field['value'] ) { + $hidden_value = acf_format_date( $field['value'], 'Ymd' ); + $display_value = acf_format_date( $field['value'], $field['display_format'] ); + } + + // elements + $div = array( + 'class' => 'acf-date-picker acf-input-wrap', + 'data-date_format' => acf_convert_date_to_js( $field['display_format'] ), + 'data-first_day' => $field['first_day'], + ); + $hidden_input = array( + 'id' => $field['id'], + 'name' => $field['name'], + 'value' => $hidden_value, + ); + $text_input = array( + 'class' => $field['class'] . ' input', + 'value' => $display_value, + ); + + // special attributes + foreach ( array( 'readonly', 'disabled' ) as $k ) { + if ( ! empty( $field[ $k ] ) ) { + $hidden_input[ $k ] = $k; + $text_input[ $k ] = $k; + } + } + + // save_format - compatibility with ACF < 5.0.0 + if ( ! empty( $field['save_format'] ) ) { + + // add custom JS save format + $div['data-save_format'] = $field['save_format']; + + // revert hidden input value to raw DB value + $hidden_input['value'] = $field['value']; + + // remove formatted value (will do this via JS) + $text_input['value'] = ''; + } + + // html + ?> +
                                          >
                                          - __('Display Format','acf'), - 'instructions' => __('The format displayed when editing a post','acf'), - 'type' => 'radio', - 'name' => 'display_format', - 'other_choice' => 1, - 'choices' => array( - 'd/m/Y' => '' . $d_m_Y . 'd/m/Y', - 'm/d/Y' => '' . $m_d_Y . 'm/d/Y', - 'F j, Y' => '' . $F_j_Y . 'F j, Y', - 'other' => '' . __('Custom:','acf') . '' - ) - )); - - - // save_format - compatibility with ACF < 5.0.0 - if( !empty($field['save_format']) ) { - - // save_format - acf_render_field_setting( $field, array( - 'label' => __('Save Format','acf'), - 'instructions' => __('The format used when saving a value','acf'), - 'type' => 'text', - 'name' => 'save_format', - //'readonly' => 1 // this setting was not readonly in v4 - )); - - } else { - - // return_format - acf_render_field_setting( $field, array( - 'label' => __('Return Format','acf'), - 'instructions' => __('The format returned via template functions','acf'), - 'type' => 'radio', - 'name' => 'return_format', - 'other_choice' => 1, - 'choices' => array( - 'd/m/Y' => '' . $d_m_Y . 'd/m/Y', - 'm/d/Y' => '' . $m_d_Y . 'm/d/Y', - 'F j, Y' => '' . $F_j_Y . 'F j, Y', - 'Ymd' => '' . $Ymd . 'Ymd', - 'other' => '' . __('Custom:','acf') . '' + '; + + acf_render_field_setting( + $field, + array( + 'label' => __( 'Display Format', 'acf' ), + 'hint' => __( 'The format displayed when editing a post', 'acf' ), + 'type' => 'radio', + 'name' => 'display_format', + 'other_choice' => 1, + 'choices' => array( + 'd/m/Y' => '' . $d_m_Y . 'd/m/Y', + 'm/d/Y' => '' . $m_d_Y . 'm/d/Y', + 'F j, Y' => '' . $F_j_Y . 'F j, Y', + 'other' => '' . __( 'Custom:', 'acf' ) . '', + ), ) - )); - + ); + + // save_format - compatibility with ACF < 5.0.0 + if ( ! empty( $field['save_format'] ) ) { + acf_render_field_setting( + $field, + array( + 'label' => __( 'Save Format', 'acf' ), + 'hint' => __( 'The format used when saving a value', 'acf' ), + 'type' => 'text', + 'name' => 'save_format', + // 'readonly' => 1 // this setting was not readonly in v4 + ) + ); + } else { + acf_render_field_setting( + $field, + array( + 'label' => __( 'Return Format', 'acf' ), + 'hint' => __( 'The format returned via template functions', 'acf' ), + 'type' => 'radio', + 'name' => 'return_format', + 'other_choice' => 1, + 'choices' => array( + 'd/m/Y' => '' . $d_m_Y . 'd/m/Y', + 'm/d/Y' => '' . $m_d_Y . 'm/d/Y', + 'F j, Y' => '' . $F_j_Y . 'F j, Y', + 'Ymd' => '' . $Ymd . 'Ymd', + 'other' => '' . __( 'Custom:', 'acf' ) . '', + ), + ) + ); + } + + echo '
                                          '; + + acf_render_field_setting( + $field, + array( + 'label' => __( 'Week Starts On', 'acf' ), + 'instructions' => '', + 'type' => 'select', + 'name' => 'first_day', + 'choices' => array_values( $wp_locale->weekday ), + ) + ); } - - - // first_day - acf_render_field_setting( $field, array( - 'label' => __('Week Starts On','acf'), - 'instructions' => '', - 'type' => 'select', - 'name' => 'first_day', - 'choices' => array_values( $wp_locale->weekday ) - )); - - } - - - /* - * format_value() - * - * This filter is appied to the $value after it is loaded from the db and before it is returned to the template - * - * @type filter - * @since 3.6 - * @date 23/01/13 - * - * @param $value (mixed) the value which was loaded from the database - * @param $post_id (mixed) the $post_id from which the value was loaded - * @param $field (array) the field array holding all the field options - * - * @return $value (mixed) the modified value - */ - - function format_value( $value, $post_id, $field ) { - - // save_format - compatibility with ACF < 5.0.0 - if( !empty($field['save_format']) ) { - - return $value; - + + /* + * format_value() + * + * This filter is appied to the $value after it is loaded from the db and before it is returned to the template + * + * @type filter + * @since 3.6 + * @date 23/01/13 + * + * @param $value (mixed) the value which was loaded from the database + * @param $post_id (mixed) the $post_id from which the value was loaded + * @param $field (array) the field array holding all the field options + * + * @return $value (mixed) the modified value + */ + + function format_value( $value, $post_id, $field ) { + + // save_format - compatibility with ACF < 5.0.0 + if ( ! empty( $field['save_format'] ) ) { + + return $value; + + } + + // return + return acf_format_date( $value, $field['return_format'] ); + } - - - // return - return acf_format_date( $value, $field['return_format'] ); - - } - -} -// initialize -acf_register_field_type( 'acf_field_date_picker' ); + /** + * This filter is applied to the $field after it is loaded from the database + * and ensures the return and display values are set. + * + * @type filter + * @since 5.11.0 + * @date 28/09/21 + * + * @param array $field The field array holding all the field options. + * + * @return array + */ + function load_field( $field ) { + if ( empty( $field['display_format'] ) ) { + $field['display_format'] = $this->defaults['display_format']; + } + + if ( empty( $field['return_format'] ) ) { + $field['return_format'] = $this->defaults['return_format']; + } + + return $field; + } + + /** + * Return the schema array for the REST API. + * + * @param array $field + * @return array + */ + public function get_rest_schema( array $field ) { + return array( + 'type' => array( 'string', 'null' ), + 'description' => 'A `Ymd` formatted date string.', + 'required' => ! empty( $field['required'] ), + ); + } + + /** + * Apply basic formatting to prepare the value for default REST output. + * + * @param mixed $value + * @param string|int $post_id + * @param array $field + * @return mixed + */ + public function format_value_for_rest( $value, $post_id, array $field ) { + if ( ! $value ) { + return null; + } + + return (string) $value; + } + + } + + + // initialize + acf_register_field_type( 'acf_field_date_picker' ); endif; // class_exists check -?> \ No newline at end of file +?> diff --git a/includes/fields/class-acf-field-date_time_picker.php b/includes/fields/class-acf-field-date_time_picker.php index 06b4415..8c7338e 100644 --- a/includes/fields/class-acf-field-date_time_picker.php +++ b/includes/fields/class-acf-field-date_time_picker.php @@ -1,257 +1,298 @@ name = 'date_time_picker'; - $this->label = __("Date Time Picker",'acf'); - $this->category = 'jquery'; - $this->defaults = array( - 'display_format' => 'd/m/Y g:i a', - 'return_format' => 'd/m/Y g:i a', - 'first_day' => 1 - ); - } - - - /* - * input_admin_enqueue_scripts - * - * description - * - * @type function - * @date 16/12/2015 - * @since 5.3.2 - * - * @param $post_id (int) - * @return $post_id (int) - */ - - function input_admin_enqueue_scripts() { - - // bail ealry if no enqueue - if( !acf_get_setting('enqueue_datetimepicker') ) return; - - - // vars - $version = '1.6.1'; - - - // script - wp_enqueue_script('acf-timepicker', acf_get_url('assets/inc/timepicker/jquery-ui-timepicker-addon.min.js'), array('jquery-ui-datepicker'), $version); - - - // style - wp_enqueue_style('acf-timepicker', acf_get_url('assets/inc/timepicker/jquery-ui-timepicker-addon.min.css'), '', $version); - - // localize - acf_localize_data(array( - 'dateTimePickerL10n' => array( - 'timeOnlyTitle' => _x('Choose Time', 'Date Time Picker JS timeOnlyTitle', 'acf'), - 'timeText' => _x('Time', 'Date Time Picker JS timeText', 'acf'), - 'hourText' => _x('Hour', 'Date Time Picker JS hourText', 'acf'), - 'minuteText' => _x('Minute', 'Date Time Picker JS minuteText', 'acf'), - 'secondText' => _x('Second', 'Date Time Picker JS secondText', 'acf'), - 'millisecText' => _x('Millisecond', 'Date Time Picker JS millisecText', 'acf'), - 'microsecText' => _x('Microsecond', 'Date Time Picker JS microsecText', 'acf'), - 'timezoneText' => _x('Time Zone', 'Date Time Picker JS timezoneText', 'acf'), - 'currentText' => _x('Now', 'Date Time Picker JS currentText', 'acf'), - 'closeText' => _x('Done', 'Date Time Picker JS closeText', 'acf'), - 'selectText' => _x('Select', 'Date Time Picker JS selectText', 'acf'), - 'amNames' => array( - _x('AM', 'Date Time Picker JS amText', 'acf'), - _x('A', 'Date Time Picker JS amTextShort', 'acf'), - ), - 'pmNames' => array( - _x('PM', 'Date Time Picker JS pmText', 'acf'), - _x('P', 'Date Time Picker JS pmTextShort', 'acf'), - ) - ) - )); - } - - - /* - * render_field() - * - * Create the HTML interface for your field - * - * @param $field - an array holding all the field's data - * - * @type action - * @since 3.6 - * @date 23/01/13 - */ - - function render_field( $field ) { - - // format value - $hidden_value = ''; - $display_value = ''; - - if( $field['value'] ) { - - $hidden_value = acf_format_date( $field['value'], 'Y-m-d H:i:s' ); - $display_value = acf_format_date( $field['value'], $field['display_format'] ); - + class acf_field_date_and_time_picker extends acf_field { + + + /* + * __construct + * + * This function will setup the field type data + * + * @type function + * @date 5/03/2014 + * @since 5.0.0 + * + * @param n/a + * @return n/a + */ + + function initialize() { + + // vars + $this->name = 'date_time_picker'; + $this->label = __( 'Date Time Picker', 'acf' ); + $this->category = 'advanced'; + $this->description = __( 'An interactive UI for picking a date and time. The date return format can be customized using the field settings.', 'acf' ); + $this->preview_image = acf_get_url() . '/assets/images/field-type-previews/field-preview-date-time.png'; + $this->doc_url = acf_add_url_utm_tags( 'https://www.advancedcustomfields.com/resources/date-time-picker/', 'docs', 'field-type-selection' ); + $this->defaults = array( + 'display_format' => 'd/m/Y g:i a', + 'return_format' => 'd/m/Y g:i a', + 'first_day' => 1, + ); } - - - // convert display_format to date and time - // the letter 'm' is used for date and minute in JS, so this must be done here in PHP - $formats = acf_split_date_time($field['display_format']); - - - // vars - $div = array( - 'class' => 'acf-date-time-picker acf-input-wrap', - 'data-date_format' => acf_convert_date_to_js($formats['date']), - 'data-time_format' => acf_convert_time_to_js($formats['time']), - 'data-first_day' => $field['first_day'], - ); - - $hidden_input = array( - 'id' => $field['id'], - 'class' => 'input-alt', - 'name' => $field['name'], - 'value' => $hidden_value, - ); - - $text_input = array( - 'class' => 'input', - 'value' => $display_value, - ); - - - // html - ?> -
                                          > + + + /* + * input_admin_enqueue_scripts + * + * description + * + * @type function + * @date 16/12/2015 + * @since 5.3.2 + * + * @param $post_id (int) + * @return $post_id (int) + */ + + function input_admin_enqueue_scripts() { + + // bail early if no enqueue + if ( ! acf_get_setting( 'enqueue_datetimepicker' ) ) { + return; + } + + // vars + $version = '1.6.1'; + + // script + wp_enqueue_script( 'acf-timepicker', acf_get_url( 'assets/inc/timepicker/jquery-ui-timepicker-addon.min.js' ), array( 'jquery-ui-datepicker' ), $version ); + + // style + wp_enqueue_style( 'acf-timepicker', acf_get_url( 'assets/inc/timepicker/jquery-ui-timepicker-addon.min.css' ), '', $version ); + + // localize + acf_localize_data( + array( + 'dateTimePickerL10n' => array( + 'timeOnlyTitle' => _x( 'Choose Time', 'Date Time Picker JS timeOnlyTitle', 'acf' ), + 'timeText' => _x( 'Time', 'Date Time Picker JS timeText', 'acf' ), + 'hourText' => _x( 'Hour', 'Date Time Picker JS hourText', 'acf' ), + 'minuteText' => _x( 'Minute', 'Date Time Picker JS minuteText', 'acf' ), + 'secondText' => _x( 'Second', 'Date Time Picker JS secondText', 'acf' ), + 'millisecText' => _x( 'Millisecond', 'Date Time Picker JS millisecText', 'acf' ), + 'microsecText' => _x( 'Microsecond', 'Date Time Picker JS microsecText', 'acf' ), + 'timezoneText' => _x( 'Time Zone', 'Date Time Picker JS timezoneText', 'acf' ), + 'currentText' => _x( 'Now', 'Date Time Picker JS currentText', 'acf' ), + 'closeText' => _x( 'Done', 'Date Time Picker JS closeText', 'acf' ), + 'selectText' => _x( 'Select', 'Date Time Picker JS selectText', 'acf' ), + 'amNames' => array( + _x( 'AM', 'Date Time Picker JS amText', 'acf' ), + _x( 'A', 'Date Time Picker JS amTextShort', 'acf' ), + ), + 'pmNames' => array( + _x( 'PM', 'Date Time Picker JS pmText', 'acf' ), + _x( 'P', 'Date Time Picker JS pmTextShort', 'acf' ), + ), + ), + ) + ); + } + + + /* + * render_field() + * + * Create the HTML interface for your field + * + * @param $field - an array holding all the field's data + * + * @type action + * @since 3.6 + * @date 23/01/13 + */ + + function render_field( $field ) { + + // Set value. + $hidden_value = ''; + $display_value = ''; + + if ( $field['value'] ) { + $hidden_value = acf_format_date( $field['value'], 'Y-m-d H:i:s' ); + $display_value = acf_format_date( $field['value'], $field['display_format'] ); + } + + // Convert "display_format" setting to individual date and time formats. + $formats = acf_split_date_time( $field['display_format'] ); + + // Elements. + $div = array( + 'class' => 'acf-date-time-picker acf-input-wrap', + 'data-date_format' => acf_convert_date_to_js( $formats['date'] ), + 'data-time_format' => acf_convert_time_to_js( $formats['time'] ), + 'data-first_day' => $field['first_day'], + ); + $hidden_input = array( + 'id' => $field['id'], + 'class' => 'input-alt', + 'name' => $field['name'], + 'value' => $hidden_value, + ); + $text_input = array( + 'class' => $field['class'] . ' input', + 'value' => $display_value, + ); + foreach ( array( 'readonly', 'disabled' ) as $k ) { + if ( ! empty( $field[ $k ] ) ) { + $hidden_input[ $k ] = $k; + $text_input[ $k ] = $k; + } + } + + // Output. + ?> +
                                          >
                                          - __('Display Format','acf'), - 'instructions' => __('The format displayed when editing a post','acf'), - 'type' => 'radio', - 'name' => 'display_format', - 'other_choice' => 1, - 'choices' => array( - 'd/m/Y g:i a' => '' . $d_m_Y . 'd/m/Y g:i a', - 'm/d/Y g:i a' => '' . $m_d_Y . 'm/d/Y g:i a', - 'F j, Y g:i a' => '' . $F_j_Y . 'F j, Y g:i a', - 'Y-m-d H:i:s' => '' . $Ymd . 'Y-m-d H:i:s', - 'other' => '' . __('Custom:','acf') . '' - ) - )); - - - // return_format - acf_render_field_setting( $field, array( - 'label' => __('Return Format','acf'), - 'instructions' => __('The format returned via template functions','acf'), - 'type' => 'radio', - 'name' => 'return_format', - 'other_choice' => 1, - 'choices' => array( - 'd/m/Y g:i a' => '' . $d_m_Y . 'd/m/Y g:i a', - 'm/d/Y g:i a' => '' . $m_d_Y . 'm/d/Y g:i a', - 'F j, Y g:i a' => '' . $F_j_Y . 'F j, Y g:i a', - 'Y-m-d H:i:s' => '' . $Ymd . 'Y-m-d H:i:s', - 'other' => '' . __('Custom:','acf') . '' - ) - )); - - - // first_day - acf_render_field_setting( $field, array( - 'label' => __('Week Starts On','acf'), - 'instructions' => '', - 'type' => 'select', - 'name' => 'first_day', - 'choices' => array_values( $wp_locale->weekday ) - )); - - } - - - /* - * format_value() - * - * This filter is appied to the $value after it is loaded from the db and before it is returned to the template - * - * @type filter - * @since 3.6 - * @date 23/01/13 - * - * @param $value (mixed) the value which was loaded from the database - * @param $post_id (mixed) the $post_id from which the value was loaded - * @param $field (array) the field array holding all the field options - * - * @return $value (mixed) the modified value - */ - - function format_value( $value, $post_id, $field ) { - - return acf_format_date( $value, $field['return_format'] ); - - } - -} + '; + + acf_render_field_setting( + $field, + array( + 'label' => __( 'Display Format', 'acf' ), + 'hint' => __( 'The format displayed when editing a post', 'acf' ), + 'type' => 'radio', + 'name' => 'display_format', + 'other_choice' => 1, + 'choices' => array( + 'd/m/Y g:i a' => '' . $d_m_Y . 'd/m/Y g:i a', + 'm/d/Y g:i a' => '' . $m_d_Y . 'm/d/Y g:i a', + 'F j, Y g:i a' => '' . $F_j_Y . 'F j, Y g:i a', + 'Y-m-d H:i:s' => '' . $Ymd . 'Y-m-d H:i:s', + 'other' => '' . __( 'Custom:', 'acf' ) . '', + ), + ) + ); + + acf_render_field_setting( + $field, + array( + 'label' => __( 'Return Format', 'acf' ), + 'hint' => __( 'The format returned via template functions', 'acf' ), + 'type' => 'radio', + 'name' => 'return_format', + 'other_choice' => 1, + 'choices' => array( + 'd/m/Y g:i a' => '' . $d_m_Y . 'd/m/Y g:i a', + 'm/d/Y g:i a' => '' . $m_d_Y . 'm/d/Y g:i a', + 'F j, Y g:i a' => '' . $F_j_Y . 'F j, Y g:i a', + 'Y-m-d H:i:s' => '' . $Ymd . 'Y-m-d H:i:s', + 'other' => '' . __( 'Custom:', 'acf' ) . '', + ), + ) + ); + + echo '
                                          '; + + acf_render_field_setting( + $field, + array( + 'label' => __( 'Week Starts On', 'acf' ), + 'instructions' => '', + 'type' => 'select', + 'name' => 'first_day', + 'choices' => array_values( $wp_locale->weekday ), + ) + ); + } + + /* + * format_value() + * + * This filter is appied to the $value after it is loaded from the db and before it is returned to the template + * + * @type filter + * @since 3.6 + * @date 23/01/13 + * + * @param $value (mixed) the value which was loaded from the database + * @param $post_id (mixed) the $post_id from which the value was loaded + * @param $field (array) the field array holding all the field options + * + * @return $value (mixed) the modified value + */ + + function format_value( $value, $post_id, $field ) { + + return acf_format_date( $value, $field['return_format'] ); + + } + + + /** + * This filter is applied to the $field after it is loaded from the database + * and ensures the return and display values are set. + * + * @type filter + * @since 5.11.0 + * @date 28/09/21 + * + * @param array $field The field array holding all the field options. + * + * @return array + */ + function load_field( $field ) { + if ( empty( $field['display_format'] ) ) { + $field['display_format'] = $this->defaults['display_format']; + } + + if ( empty( $field['return_format'] ) ) { + $field['return_format'] = $this->defaults['return_format']; + } + + return $field; + } + + /** + * Return the schema array for the REST API. + * + * @param array $field + * @return array + */ + public function get_rest_schema( array $field ) { + return array( + 'type' => array( 'string', 'null' ), + 'description' => 'A `Y-m-d H:i:s` formatted date string.', + 'required' => ! empty( $field['required'] ), + ); + } + + } + + + // initialize + acf_register_field_type( 'acf_field_date_and_time_picker' ); endif; // class_exists check -?> \ No newline at end of file +?> diff --git a/includes/fields/class-acf-field-email.php b/includes/fields/class-acf-field-email.php index ee3c264..d639e83 100644 --- a/includes/fields/class-acf-field-email.php +++ b/includes/fields/class-acf-field-email.php @@ -1,161 +1,208 @@ name = 'email'; + $this->label = __( 'Email', 'acf' ); + $this->description = __( 'A text input specifically designed for storing email addresses.', 'acf' ); + $this->preview_image = acf_get_url() . '/assets/images/field-type-previews/field-preview-email.png'; + $this->doc_url = acf_add_url_utm_tags( 'https://www.advancedcustomfields.com/resources/email/', 'docs', 'field-type-selection' ); + $this->defaults = array( + 'default_value' => '', + 'placeholder' => '', + 'prepend' => '', + 'append' => '', + ); + + } + + + /* + * render_field() + * + * Create the HTML interface for your field + * + * @param $field - an array holding all the field's data + * + * @type action + * @since 3.6 + * @date 23/01/13 + */ + + function render_field( $field ) { + + // vars + $atts = array(); + $keys = array( 'type', 'id', 'class', 'name', 'value', 'placeholder', 'pattern' ); + $keys2 = array( 'readonly', 'disabled', 'required', 'multiple' ); + $html = ''; + + // prepend + if ( $field['prepend'] !== '' ) { + + $field['class'] .= ' acf-is-prepended'; + $html .= '
                                          ' . acf_esc_html( $field['prepend'] ) . '
                                          '; + + } + + // append + if ( $field['append'] !== '' ) { + + $field['class'] .= ' acf-is-appended'; + $html .= '
                                          ' . acf_esc_html( $field['append'] ) . '
                                          '; + + } + + // atts (value="123") + foreach ( $keys as $k ) { + if ( isset( $field[ $k ] ) ) { + $atts[ $k ] = $field[ $k ]; + } + } + + // atts2 (disabled="disabled") + foreach ( $keys2 as $k ) { + if ( ! empty( $field[ $k ] ) ) { + $atts[ $k ] = $k; + } + } + + // remove empty atts + $atts = acf_clean_atts( $atts ); + + // render + $html .= '
                                          ' . acf_get_text_input( $atts ) . '
                                          '; + + // return + echo $html; + + } + + + /* + * render_field_settings() + * + * Create extra options for your field. This is rendered when editing a field. + * The value of $field['name'] can be used (like bellow) to save extra data to the $field + * + * @type action + * @since 3.6 + * @date 23/01/13 + * + * @param $field - an array holding all the field's data + */ + function render_field_settings( $field ) { + acf_render_field_setting( + $field, + array( + 'label' => __( 'Default Value', 'acf' ), + 'instructions' => __( 'Appears when creating a new post', 'acf' ), + 'type' => 'text', + 'name' => 'default_value', + ) + ); + } + + /** + * Renders the field settings used in the "Presentation" tab. + * + * @since 6.0 + * + * @param array $field The field settings array. + * @return void + */ + function render_field_presentation_settings( $field ) { + acf_render_field_setting( + $field, + array( + 'label' => __( 'Placeholder Text', 'acf' ), + 'instructions' => __( 'Appears within the input', 'acf' ), + 'type' => 'text', + 'name' => 'placeholder', + ) + ); + + acf_render_field_setting( + $field, + array( + 'label' => __( 'Prepend', 'acf' ), + 'instructions' => __( 'Appears before the input', 'acf' ), + 'type' => 'text', + 'name' => 'prepend', + ) + ); + + acf_render_field_setting( + $field, + array( + 'label' => __( 'Append', 'acf' ), + 'instructions' => __( 'Appears after the input', 'acf' ), + 'type' => 'text', + 'name' => 'append', + ) + ); + } + + /** + * Validate the email value. If this method returns TRUE, the input value is valid. If + * FALSE or a string is returned, the input value is invalid and the user is shown a + * notice. If a string is returned, the string is show as the message text. + * + * @param bool $valid Whether the value is valid. + * @param mixed $value The field value. + * @param array $field The field array. + * @param string $input The request variable name for the inbound field. + * + * @return bool|string + */ + public function validate_value( $valid, $value, $field, $input ) { + $flags = defined( 'FILTER_FLAG_EMAIL_UNICODE' ) ? FILTER_FLAG_EMAIL_UNICODE : 0; + + if ( $value && filter_var( wp_unslash( $value ), FILTER_VALIDATE_EMAIL, $flags ) === false ) { + return sprintf( __( "'%s' is not a valid email address", 'acf' ), esc_html( $value ) ); + } + + return $valid; + } + + /** + * Return the schema array for the REST API. + * + * @param array $field + * @return array + */ + public function get_rest_schema( array $field ) { + $schema = parent::get_rest_schema( $field ); + $schema['format'] = 'email'; + + return $schema; + } -class acf_field_email extends acf_field { - - - /* - * initialize - * - * This function will setup the field type data - * - * @type function - * @date 5/03/2014 - * @since 5.0.0 - * - * @param n/a - * @return n/a - */ - - function initialize() { - - // vars - $this->name = 'email'; - $this->label = __("Email",'acf'); - $this->defaults = array( - 'default_value' => '', - 'placeholder' => '', - 'prepend' => '', - 'append' => '' - ); - } - - - /* - * render_field() - * - * Create the HTML interface for your field - * - * @param $field - an array holding all the field's data - * - * @type action - * @since 3.6 - * @date 23/01/13 - */ - - function render_field( $field ) { - - // vars - $atts = array(); - $keys = array( 'type', 'id', 'class', 'name', 'value', 'placeholder', 'pattern' ); - $keys2 = array( 'readonly', 'disabled', 'required', 'multiple' ); - $html = ''; - - - // prepend - if( $field['prepend'] !== '' ) { - - $field['class'] .= ' acf-is-prepended'; - $html .= '
                                          ' . acf_esc_html($field['prepend']) . '
                                          '; - - } - - - // append - if( $field['append'] !== '' ) { - - $field['class'] .= ' acf-is-appended'; - $html .= '
                                          ' . acf_esc_html($field['append']) . '
                                          '; - - } - - - // atts (value="123") - foreach( $keys as $k ) { - if( isset($field[ $k ]) ) $atts[ $k ] = $field[ $k ]; - } - - - // atts2 (disabled="disabled") - foreach( $keys2 as $k ) { - if( !empty($field[ $k ]) ) $atts[ $k ] = $k; - } - - - // remove empty atts - $atts = acf_clean_atts( $atts ); - - - // render - $html .= '
                                          ' . acf_get_text_input( $atts ) . '
                                          '; - - - // return - echo $html; - - } - - - /* - * render_field_settings() - * - * Create extra options for your field. This is rendered when editing a field. - * The value of $field['name'] can be used (like bellow) to save extra data to the $field - * - * @type action - * @since 3.6 - * @date 23/01/13 - * - * @param $field - an array holding all the field's data - */ - - function render_field_settings( $field ) { - - // default_value - acf_render_field_setting( $field, array( - 'label' => __('Default Value','acf'), - 'instructions' => __('Appears when creating a new post','acf'), - 'type' => 'text', - 'name' => 'default_value', - )); - - - // placeholder - acf_render_field_setting( $field, array( - 'label' => __('Placeholder Text','acf'), - 'instructions' => __('Appears within the input','acf'), - 'type' => 'text', - 'name' => 'placeholder', - )); - - - // prepend - acf_render_field_setting( $field, array( - 'label' => __('Prepend','acf'), - 'instructions' => __('Appears before the input','acf'), - 'type' => 'text', - 'name' => 'prepend', - )); - - - // append - acf_render_field_setting( $field, array( - 'label' => __('Append','acf'), - 'instructions' => __('Appears after the input','acf'), - 'type' => 'text', - 'name' => 'append', - )); - - } - -} -// initialize -acf_register_field_type( 'acf_field_email' ); + // initialize + acf_register_field_type( 'acf_field_email' ); endif; // class_exists check -?> \ No newline at end of file + diff --git a/includes/fields/class-acf-field-file.php b/includes/fields/class-acf-field-file.php index bee1a06..dabced1 100644 --- a/includes/fields/class-acf-field-file.php +++ b/includes/fields/class-acf-field-file.php @@ -1,437 +1,552 @@ name = 'file'; - $this->label = __("File",'acf'); - $this->category = 'content'; - $this->defaults = array( - 'return_format' => 'array', - 'library' => 'all', - 'min_size' => 0, - 'max_size' => 0, - 'mime_types' => '' - ); - - // filters - add_filter('get_media_item_args', array($this, 'get_media_item_args')); - } - - - /* - * input_admin_enqueue_scripts - * - * description - * - * @type function - * @date 16/12/2015 - * @since 5.3.2 - * - * @param $post_id (int) - * @return $post_id (int) - */ - - function input_admin_enqueue_scripts() { - - // localize - acf_localize_text(array( - 'Select File' => __('Select File', 'acf'), - 'Edit File' => __('Edit File', 'acf'), - 'Update File' => __('Update File', 'acf'), - )); - } - - - /* - * render_field() - * - * Create the HTML interface for your field - * - * @param $field - an array holding all the field's data - * - * @type action - * @since 3.6 - * @date 23/01/13 - */ - - function render_field( $field ) { - - // vars - $uploader = acf_get_setting('uploader'); - - - // allow custom uploader - $uploader = acf_maybe_get($field, 'uploader', $uploader); - - - // enqueue - if( $uploader == 'wp' ) { - acf_enqueue_uploader(); + class acf_field_file extends acf_field { + + + /* + * __construct + * + * This function will setup the field type data + * + * @type function + * @date 5/03/2014 + * @since 5.0.0 + * + * @param n/a + * @return n/a + */ + + function initialize() { + + // vars + $this->name = 'file'; + $this->label = __( 'File', 'acf' ); + $this->category = 'content'; + $this->description = __( 'Uses the native WordPress media picker to upload, or choose files.', 'acf' ); + $this->preview_image = acf_get_url() . '/assets/images/field-type-previews/field-preview-file.png'; + $this->doc_url = acf_add_url_utm_tags( 'https://www.advancedcustomfields.com/resources/file/', 'docs', 'field-type-selection' ); + $this->defaults = array( + 'return_format' => 'array', + 'library' => 'all', + 'min_size' => 0, + 'max_size' => 0, + 'mime_types' => '', + ); + + // filters + add_filter( 'get_media_item_args', array( $this, 'get_media_item_args' ) ); } - - - // vars - $o = array( - 'icon' => '', - 'title' => '', - 'url' => '', - 'filename' => '', - 'filesize' => '' - ); - - $div = array( - 'class' => 'acf-file-uploader', - 'data-library' => $field['library'], - 'data-mime_types' => $field['mime_types'], - 'data-uploader' => $uploader - ); - - - // has value? - if( $field['value'] ) { - - $attachment = acf_get_attachment($field['value']); - if( $attachment ) { - - // has value - $div['class'] .= ' has-value'; - - // update - $o['icon'] = $attachment['icon']; - $o['title'] = $attachment['title']; - $o['url'] = $attachment['url']; - $o['filename'] = $attachment['filename']; - if( $attachment['filesize'] ) { - $o['filesize'] = size_format($attachment['filesize']); + + + /* + * input_admin_enqueue_scripts + * + * description + * + * @type function + * @date 16/12/2015 + * @since 5.3.2 + * + * @param $post_id (int) + * @return $post_id (int) + */ + + function input_admin_enqueue_scripts() { + + // localize + acf_localize_text( + array( + 'Select File' => __( 'Select File', 'acf' ), + 'Edit File' => __( 'Edit File', 'acf' ), + 'Update File' => __( 'Update File', 'acf' ), + ) + ); + } + + + /* + * render_field() + * + * Create the HTML interface for your field + * + * @param $field - an array holding all the field's data + * + * @type action + * @since 3.6 + * @date 23/01/13 + */ + + function render_field( $field ) { + + // vars + $uploader = acf_get_setting( 'uploader' ); + + // allow custom uploader + $uploader = acf_maybe_get( $field, 'uploader', $uploader ); + + // enqueue + if ( $uploader == 'wp' ) { + acf_enqueue_uploader(); + } + + // vars + $o = array( + 'icon' => '', + 'title' => '', + 'url' => '', + 'filename' => '', + 'filesize' => '', + ); + + $div = array( + 'class' => 'acf-file-uploader', + 'data-library' => $field['library'], + 'data-mime_types' => $field['mime_types'], + 'data-uploader' => $uploader, + ); + + // has value? + if ( $field['value'] ) { + + $attachment = acf_get_attachment( $field['value'] ); + if ( $attachment ) { + + // has value + $div['class'] .= ' has-value'; + + // update + $o['icon'] = $attachment['icon']; + $o['title'] = $attachment['title']; + $o['url'] = $attachment['url']; + $o['filename'] = $attachment['filename']; + if ( $attachment['filesize'] ) { + $o['filesize'] = size_format( $attachment['filesize'] ); + } } - } - } - -?> -
                                          > - $field['name'], 'value' => $field['value'], 'data-name' => 'id' )); ?> + } + + ?> +
                                          > + $field['name'], + 'value' => $field['value'], + 'data-name' => 'id', + ) + ); + ?>
                                          - +

                                          - +

                                          - : - + : +

                                          - : - + : +

                                          - - + + - +
                                          - + - -

                                          + +

                                          - + -

                                          +

                                          - __( 'Return Value', 'acf' ), + 'instructions' => __( 'Specify the returned value on front end', 'acf' ), + 'type' => 'radio', + 'name' => 'return_format', + 'layout' => 'horizontal', + 'choices' => array( + 'array' => __( 'File Array', 'acf' ), + 'url' => __( 'File URL', 'acf' ), + 'id' => __( 'File ID', 'acf' ), + ), + ) + ); + + acf_render_field_setting( + $field, + array( + 'label' => __( 'Library', 'acf' ), + 'instructions' => __( 'Limit the media library choice', 'acf' ), + 'type' => 'radio', + 'name' => 'library', + 'layout' => 'horizontal', + 'choices' => array( + 'all' => __( 'All', 'acf' ), + 'uploadedTo' => __( 'Uploaded to post', 'acf' ), + ), + ) + ); + } + + /** + * Renders the field settings used in the "Validation" tab. + * + * @since 6.0 + * + * @param array $field The field settings array. + * @return void + */ + function render_field_validation_settings( $field ) { + // Clear numeric settings. + $clear = array( + 'min_size', + 'max_size', + ); + + foreach ( $clear as $k ) { + + if ( empty( $field[ $k ] ) ) { + $field[ $k ] = ''; + } } - + + acf_render_field_setting( + $field, + array( + 'label' => __( 'Minimum', 'acf' ), + 'instructions' => __( 'Restrict which files can be uploaded', 'acf' ), + 'type' => 'text', + 'name' => 'min_size', + 'prepend' => __( 'File size', 'acf' ), + 'append' => 'MB', + ) + ); + + acf_render_field_setting( + $field, + array( + 'label' => __( 'Maximum', 'acf' ), + 'instructions' => __( 'Restrict which files can be uploaded', 'acf' ), + 'type' => 'text', + 'name' => 'max_size', + 'prepend' => __( 'File size', 'acf' ), + 'append' => 'MB', + ) + ); + + acf_render_field_setting( + $field, + array( + 'label' => __( 'Allowed File Types', 'acf' ), + 'hint' => __( 'Comma separated list. Leave blank for all types', 'acf' ), + 'type' => 'text', + 'name' => 'mime_types', + ) + ); } - - - // return_format - acf_render_field_setting( $field, array( - 'label' => __('Return Value','acf'), - 'instructions' => __('Specify the returned value on front end','acf'), - 'type' => 'radio', - 'name' => 'return_format', - 'layout' => 'horizontal', - 'choices' => array( - 'array' => __("File Array",'acf'), - 'url' => __("File URL",'acf'), - 'id' => __("File ID",'acf') - ) - )); - - - // library - acf_render_field_setting( $field, array( - 'label' => __('Library','acf'), - 'instructions' => __('Limit the media library choice','acf'), - 'type' => 'radio', - 'name' => 'library', - 'layout' => 'horizontal', - 'choices' => array( - 'all' => __('All', 'acf'), - 'uploadedTo' => __('Uploaded to post', 'acf') - ) - )); - - - // min - acf_render_field_setting( $field, array( - 'label' => __('Minimum','acf'), - 'instructions' => __('Restrict which files can be uploaded','acf'), - 'type' => 'text', - 'name' => 'min_size', - 'prepend' => __('File size', 'acf'), - 'append' => 'MB', - )); - - - // max - acf_render_field_setting( $field, array( - 'label' => __('Maximum','acf'), - 'instructions' => __('Restrict which files can be uploaded','acf'), - 'type' => 'text', - 'name' => 'max_size', - 'prepend' => __('File size', 'acf'), - 'append' => 'MB', - )); - - - // allowed type - acf_render_field_setting( $field, array( - 'label' => __('Allowed file types','acf'), - 'instructions' => __('Comma separated list. Leave blank for all types','acf'), - 'type' => 'text', - 'name' => 'mime_types', - )); - - } - - - /* - * format_value() - * - * This filter is appied to the $value after it is loaded from the db and before it is returned to the template - * - * @type filter - * @since 3.6 - * @date 23/01/13 - * - * @param $value (mixed) the value which was loaded from the database - * @param $post_id (mixed) the $post_id from which the value was loaded - * @param $field (array) the field array holding all the field options - * - * @return $value (mixed) the modified value - */ - - function format_value( $value, $post_id, $field ) { - - // bail early if no value - if( empty($value) ) return false; - - - // bail early if not numeric (error message) - if( !is_numeric($value) ) return false; - - - // convert to int - $value = intval($value); - - - // format - if( $field['return_format'] == 'url' ) { - - return wp_get_attachment_url($value); - - } elseif( $field['return_format'] == 'array' ) { - - return acf_get_attachment( $value ); - } - - - // return - return $value; - } - - - /* - * get_media_item_args - * - * description - * - * @type function - * @date 27/01/13 - * @since 3.6.0 - * - * @param $vars (array) - * @return $vars - */ - - function get_media_item_args( $vars ) { - - $vars['send'] = true; - return($vars); - - } - - - /* - * update_value() - * - * This filter is appied to the $value before it is updated in the db - * - * @type filter - * @since 3.6 - * @date 23/01/13 - * - * @param $value - the value which will be saved in the database - * @param $post_id - the $post_id of which the value will be saved - * @param $field - the field array holding all the field options - * - * @return $value - the modified value - */ - - function update_value( $value, $post_id, $field ) { - - // Bail early if no value. - if( empty($value) ) { + + /* + * format_value() + * + * This filter is appied to the $value after it is loaded from the db and before it is returned to the template + * + * @type filter + * @since 3.6 + * @date 23/01/13 + * + * @param $value (mixed) the value which was loaded from the database + * @param $post_id (mixed) the $post_id from which the value was loaded + * @param $field (array) the field array holding all the field options + * + * @return $value (mixed) the modified value + */ + + function format_value( $value, $post_id, $field ) { + + // bail early if no value + if ( empty( $value ) ) { + return false; + } + + // bail early if not numeric (error message) + if ( ! is_numeric( $value ) ) { + return false; + } + + // convert to int + $value = intval( $value ); + + // format + if ( $field['return_format'] == 'url' ) { + + return wp_get_attachment_url( $value ); + + } elseif ( $field['return_format'] == 'array' ) { + + return acf_get_attachment( $value ); + } + + // return return $value; } - - // Parse value for id. - $attachment_id = acf_idval( $value ); - - // Connect attacment to post. - acf_connect_attachment_to_post( $attachment_id, $post_id ); - - // Return id. - return $attachment_id; - } - - - - /* - * validate_value - * - * This function will validate a basic file input - * - * @type function - * @date 11/02/2014 - * @since 5.0.0 - * - * @param $post_id (int) - * @return $post_id (int) - */ - - function validate_value( $valid, $value, $field, $input ){ - - // bail early if empty - if( empty($value) ) return $valid; - - - // bail ealry if is numeric - if( is_numeric($value) ) return $valid; - - - // bail ealry if not basic string - if( !is_string($value) ) return $valid; - - - // decode value - $file = null; - parse_str($value, $file); - - - // bail early if no attachment - if( empty($file) ) return $valid; - - - // get errors - $errors = acf_validate_attachment( $file, $field, 'basic_upload' ); - - - // append error - if( !empty($errors) ) { - - $valid = implode("\n", $errors); - + + + /* + * get_media_item_args + * + * description + * + * @type function + * @date 27/01/13 + * @since 3.6.0 + * + * @param $vars (array) + * @return $vars + */ + + function get_media_item_args( $vars ) { + + $vars['send'] = true; + return( $vars ); + } - - - // return - return $valid; - + + + /* + * update_value() + * + * This filter is appied to the $value before it is updated in the db + * + * @type filter + * @since 3.6 + * @date 23/01/13 + * + * @param $value - the value which will be saved in the database + * @param $post_id - the $post_id of which the value will be saved + * @param $field - the field array holding all the field options + * + * @return $value - the modified value + */ + + function update_value( $value, $post_id, $field ) { + + // Bail early if no value. + if ( empty( $value ) ) { + return $value; + } + + // Parse value for id. + $attachment_id = acf_idval( $value ); + + // Connect attacment to post. + acf_connect_attachment_to_post( $attachment_id, $post_id ); + + // Return id. + return $attachment_id; + } + + /** + * validate_value + * + * This function will validate a basic file input + * + * @type function + * @date 11/02/2014 + * @since 5.0.0 + * + * @param $post_id (int) + * @return $post_id (int) + */ + function validate_value( $valid, $value, $field, $input ) { + + // bail early if empty + if ( empty( $value ) ) { + return $valid; + } + + // bail early if is numeric + if ( is_numeric( $value ) ) { + return $valid; + } + + // bail early if not basic string + if ( ! is_string( $value ) ) { + return $valid; + } + + // decode value + $file = null; + parse_str( $value, $file ); + + // bail early if no attachment + if ( empty( $file ) ) { + return $valid; + } + + // get errors + $errors = acf_validate_attachment( $file, $field, 'basic_upload' ); + + // append error + if ( ! empty( $errors ) ) { + $valid = implode( "\n", $errors ); + } + + // return + return $valid; + } + + /** + * Validates file fields updated via the REST API. + * + * @param bool $valid + * @param int $value + * @param array $field + * + * @return bool|WP_Error + */ + public function validate_rest_value( $valid, $value, $field ) { + if ( is_null( $value ) && empty( $field['required'] ) ) { + return $valid; + } + + /** + * A bit of a hack, but we use `wp_prepare_attachment_for_js()` here + * since it returns all the data we need to validate the file, and we use this anyways + * to validate fields updated via UI. + */ + $attachment = wp_prepare_attachment_for_js( $value ); + $param = sprintf( '%s[%s]', $field['prefix'], $field['name'] ); + $data = array( + 'param' => $param, + 'value' => (int) $value, + ); + + if ( ! $attachment ) { + $error = sprintf( __( '%s requires a valid attachment ID.', 'acf' ), $param ); + return new WP_Error( 'rest_invalid_param', $error, $data ); + } + + $errors = acf_validate_attachment( $attachment, $field, 'prepare' ); + + if ( ! empty( $errors ) ) { + $error = $param . ' - ' . implode( ' ', $errors ); + return new WP_Error( 'rest_invalid_param', $error, $data ); + } + + return $valid; + } + + /** + * Return the schema array for the REST API. + * + * @param array $field + * @return array + */ + public function get_rest_schema( array $field ) { + $schema = array( + 'type' => array( 'integer', 'null' ), + 'required' => isset( $field['required'] ) && $field['required'], + ); + + if ( ! empty( $field['min_width'] ) ) { + $schema['minWidth'] = (int) $field['min_width']; + } + + if ( ! empty( $field['min_height'] ) ) { + $schema['minHeight'] = (int) $field['min_height']; + } + + if ( ! empty( $field['min_size'] ) ) { + $schema['minSize'] = $field['min_size']; + } + + if ( ! empty( $field['max_width'] ) ) { + $schema['maxWidth'] = (int) $field['max_width']; + } + + if ( ! empty( $field['max_height'] ) ) { + $schema['maxHeight'] = (int) $field['max_height']; + } + + if ( ! empty( $field['max_size'] ) ) { + $schema['maxSize'] = $field['max_size']; + } + + if ( ! empty( $field['mime_types'] ) ) { + $schema['mimeTypes'] = $field['mime_types']; + } + + return $schema; + } + + /** + * Apply basic formatting to prepare the value for default REST output. + * + * @param mixed $value + * @param string|int $post_id + * @param array $field + * @return mixed + */ + public function format_value_for_rest( $value, $post_id, array $field ) { + return acf_format_numerics( $value ); + } + } - -} -// initialize -acf_register_field_type( 'acf_field_file' ); + // initialize + acf_register_field_type( 'acf_field_file' ); endif; // class_exists check -?> \ No newline at end of file +?> diff --git a/includes/fields/class-acf-field-google-map.php b/includes/fields/class-acf-field-google-map.php index 3cb2599..31fdc66 100644 --- a/includes/fields/class-acf-field-google-map.php +++ b/includes/fields/class-acf-field-google-map.php @@ -1,291 +1,391 @@ name = 'google_map'; - $this->label = __("Google Map",'acf'); - $this->category = 'jquery'; - $this->defaults = array( - 'height' => '', - 'center_lat' => '', - 'center_lng' => '', - 'zoom' => '' - ); - $this->default_values = array( - 'height' => '400', - 'center_lat' => '-37.81411', - 'center_lng' => '144.96328', - 'zoom' => '14' - ); - } - - - /* - * input_admin_enqueue_scripts - * - * description - * - * @type function - * @date 16/12/2015 - * @since 5.3.2 - * - * @param $post_id (int) - * @return $post_id (int) - */ - - function input_admin_enqueue_scripts() { - - // localize - acf_localize_text(array( - 'Sorry, this browser does not support geolocation' => __('Sorry, this browser does not support geolocation', 'acf'), - )); - - - // bail ealry if no enqueue - if( !acf_get_setting('enqueue_google_maps') ) { - return; - } - - - // vars - $api = array( - 'key' => acf_get_setting('google_api_key'), - 'client' => acf_get_setting('google_api_client'), - 'libraries' => 'places', - 'ver' => 3, - 'callback' => '', - 'language' => acf_get_locale() - ); - - - // filter - $api = apply_filters('acf/fields/google_map/api', $api); - - - // remove empty - if( empty($api['key']) ) unset($api['key']); - if( empty($api['client']) ) unset($api['client']); - - - // construct url - $url = add_query_arg($api, 'https://maps.googleapis.com/maps/api/js'); - - - // localize - acf_localize_data(array( - 'google_map_api' => $url - )); - } - - - /* - * render_field() - * - * Create the HTML interface for your field - * - * @param $field - an array holding all the field's data - * - * @type action - * @since 3.6 - * @date 23/01/13 - */ - - function render_field( $field ) { - - // Apply defaults. - foreach( $this->default_values as $k => $v ) { - if( !$field[ $k ] ) { - $field[ $k ] = $v; - } + + /* + * __construct + * + * This function will setup the field type data + * + * @type function + * @date 5/03/2014 + * @since 5.0.0 + * + * @param n/a + * @return n/a + */ + + function initialize() { + + // vars + $this->name = 'google_map'; + $this->label = __( 'Google Map', 'acf' ); + $this->category = 'advanced'; + $this->description = __( 'An interactive UI for selecting a location using Google Maps. Requires a Google Maps API key and additional configuration to display correctly.', 'acf' ); + $this->preview_image = acf_get_url() . '/assets/images/field-type-previews/field-preview-google-map.png'; + $this->doc_url = acf_add_url_utm_tags( 'https://www.advancedcustomfields.com/resources/google-map/', 'docs', 'field-type-selection' ); + $this->defaults = array( + 'height' => '', + 'center_lat' => '', + 'center_lng' => '', + 'zoom' => '', + ); + $this->default_values = array( + 'height' => '400', + 'center_lat' => '-37.81411', + 'center_lng' => '144.96328', + 'zoom' => '14', + ); } - - // Attrs. - $attrs = array( - 'id' => $field['id'], - 'class' => "acf-google-map {$field['class']}", - 'data-lat' => $field['center_lat'], - 'data-lng' => $field['center_lng'], - 'data-zoom' => $field['zoom'], - ); - - $search = ''; - if( $field['value'] ) { - $attrs['class'] .= ' -value'; - $search = $field['value']['address']; - } else { - $field['value'] = ''; + + + /* + * input_admin_enqueue_scripts + * + * description + * + * @type function + * @date 16/12/2015 + * @since 5.3.2 + * + * @param $post_id (int) + * @return $post_id (int) + */ + + function input_admin_enqueue_scripts() { + + // localize + acf_localize_text( + array( + 'Sorry, this browser does not support geolocation' => __( 'Sorry, this browser does not support geolocation', 'acf' ), + ) + ); + + // bail early if no enqueue + if ( ! acf_get_setting( 'enqueue_google_maps' ) ) { + return; + } + + // vars + $api = array( + 'key' => acf_get_setting( 'google_api_key' ), + 'client' => acf_get_setting( 'google_api_client' ), + 'libraries' => 'places', + 'ver' => 3, + 'callback' => 'Function.prototype', + 'language' => acf_get_locale(), + ); + + // filter + $api = apply_filters( 'acf/fields/google_map/api', $api ); + + // remove empty + if ( empty( $api['key'] ) ) { + unset( $api['key'] ); + } + if ( empty( $api['client'] ) ) { + unset( $api['client'] ); + } + + // construct url + $url = add_query_arg( $api, 'https://maps.googleapis.com/maps/api/js' ); + + // localize + acf_localize_data( + array( + 'google_map_api' => $url, + ) + ); } - -?> -
                                          > + + + /* + * render_field() + * + * Create the HTML interface for your field + * + * @param $field - an array holding all the field's data + * + * @type action + * @since 3.6 + * @date 23/01/13 + */ + + function render_field( $field ) { + + // Apply defaults. + foreach ( $this->default_values as $k => $v ) { + if ( ! $field[ $k ] ) { + $field[ $k ] = $v; + } + } + + // Attrs. + $attrs = array( + 'id' => $field['id'], + 'class' => "acf-google-map {$field['class']}", + 'data-lat' => $field['center_lat'], + 'data-lng' => $field['center_lng'], + 'data-zoom' => $field['zoom'], + ); + + $search = ''; + if ( $field['value'] ) { + $attrs['class'] .= ' -value'; + $search = $field['value']['address']; + } else { + $field['value'] = ''; + } + + ?> +
                                          > - $field['name'], 'value' => $field['value']) ); ?> + $field['name'], + 'value' => $field['value'], + ) + ); + ?>
                                          - "> - "> - "> + + +
                                          - " value="" /> +
                                          -
                                          +
                                          - __('Center','acf'), - 'instructions' => __('Center the initial map','acf'), - 'type' => 'text', - 'name' => 'center_lat', - 'prepend' => 'lat', - 'placeholder' => $this->default_values['center_lat'] - )); - - - // center_lng - acf_render_field_setting( $field, array( - 'label' => __('Center','acf'), - 'instructions' => __('Center the initial map','acf'), - 'type' => 'text', - 'name' => 'center_lng', - 'prepend' => 'lng', - 'placeholder' => $this->default_values['center_lng'], - '_append' => 'center_lat' - )); - - - // zoom - acf_render_field_setting( $field, array( - 'label' => __('Zoom','acf'), - 'instructions' => __('Set the initial zoom level','acf'), - 'type' => 'text', - 'name' => 'zoom', - 'placeholder' => $this->default_values['zoom'] - )); - - - // allow_null - acf_render_field_setting( $field, array( - 'label' => __('Height','acf'), - 'instructions' => __('Customize the map height','acf'), - 'type' => 'text', - 'name' => 'height', - 'append' => 'px', - 'placeholder' => $this->default_values['height'] - )); - - } - - /** - * load_value - * - * Filters the value loaded from the database. - * - * @date 16/10/19 - * @since 5.8.1 - * - * @param mixed $value The value loaded from the database. - * @param mixed $post_id The post ID where the value is saved. - * @param array $field The field settings array. - * @return (array|false) - */ - function load_value( $value, $post_id, $field ) { - - // Ensure value is an array. - if( $value ) { - return wp_parse_args($value, array( - 'address' => '', - 'lat' => 0, - 'lng' => 0 - )); + __( 'Center', 'acf' ), + 'hint' => __( 'Center the initial map', 'acf' ), + 'type' => 'text', + 'name' => 'center_lat', + 'prepend' => 'lat', + 'placeholder' => $this->default_values['center_lat'], + ) + ); + + // center_lng + acf_render_field_setting( + $field, + array( + 'label' => __( 'Center', 'acf' ), + 'hint' => __( 'Center the initial map', 'acf' ), + 'type' => 'text', + 'name' => 'center_lng', + 'prepend' => 'lng', + 'placeholder' => $this->default_values['center_lng'], + '_append' => 'center_lat', + ) + ); + + // zoom + acf_render_field_setting( + $field, + array( + 'label' => __( 'Zoom', 'acf' ), + 'instructions' => __( 'Set the initial zoom level', 'acf' ), + 'type' => 'text', + 'name' => 'zoom', + 'placeholder' => $this->default_values['zoom'], + ) + ); + + // allow_null + acf_render_field_setting( + $field, + array( + 'label' => __( 'Height', 'acf' ), + 'instructions' => __( 'Customize the map height', 'acf' ), + 'type' => 'text', + 'name' => 'height', + 'append' => 'px', + 'placeholder' => $this->default_values['height'], + ) + ); + + } + + /** + * load_value + * + * Filters the value loaded from the database. + * + * @date 16/10/19 + * @since 5.8.1 + * + * @param mixed $value The value loaded from the database. + * @param mixed $post_id The post ID where the value is saved. + * @param array $field The field settings array. + * @return (array|false) + */ + function load_value( $value, $post_id, $field ) { + + // Ensure value is an array. + if ( $value ) { + return wp_parse_args( + $value, + array( + 'address' => '', + 'lat' => 0, + 'lng' => 0, + ) + ); + } + + // Return default. + return false; + } + + + /* + * update_value() + * + * This filter is appied to the $value before it is updated in the db + * + * @type filter + * @since 3.6 + * @date 23/01/13 + * + * @param $value - the value which will be saved in the database + * @param $post_id - the $post_id of which the value will be saved + * @param $field - the field array holding all the field options + * + * @return $value - the modified value + */ + function update_value( $value, $post_id, $field ) { + + // decode JSON string. + if ( is_string( $value ) ) { + $value = json_decode( wp_unslash( $value ), true ); + } + + // Ensure value is an array. + if ( $value ) { + return (array) $value; + } + + // Return default. + return false; + } + + /** + * Return the schema array for the REST API. + * + * @param array $field + * @return array + */ + public function get_rest_schema( array $field ) { + return array( + 'type' => array( 'object', 'null' ), + 'required' => ! empty( $field['required'] ), + 'properties' => array( + 'address' => array( + 'type' => 'string', + ), + 'lat' => array( + 'type' => array( 'string', 'float' ), + ), + 'lng' => array( + 'type' => array( 'string', 'float' ), + ), + 'zoom' => array( + 'type' => array( 'string', 'int' ), + ), + 'place_id' => array( + 'type' => 'string', + ), + 'name' => array( + 'type' => 'string', + ), + 'street_number' => array( + 'type' => array( 'string', 'int' ), + ), + 'street_name' => array( + 'type' => 'string', + ), + 'street_name_short' => array( + 'type' => 'string', + ), + 'city' => array( + 'type' => 'string', + ), + 'state' => array( + 'type' => 'string', + ), + 'state_short' => array( + 'type' => 'string', + ), + 'post_code' => array( + 'type' => array( 'string', 'int' ), + ), + 'country' => array( + 'type' => 'string', + ), + 'country_short' => array( + 'type' => 'string', + ), + ), + ); + } + + /** + * Apply basic formatting to prepare the value for default REST output. + * + * @param mixed $value + * @param string|int $post_id + * @param array $field + * @return mixed + */ + public function format_value_for_rest( $value, $post_id, array $field ) { + if ( ! $value ) { + return null; + } + + return acf_format_numerics( $value ); + } + } + + + // initialize + acf_register_field_type( 'acf_field_google_map' ); endif; // class_exists check -?> \ No newline at end of file +?> diff --git a/includes/fields/class-acf-field-group.php b/includes/fields/class-acf-field-group.php index 13c7f04..d7d6290 100644 --- a/includes/fields/class-acf-field-group.php +++ b/includes/fields/class-acf-field-group.php @@ -1,682 +1,724 @@ name = 'group'; - $this->label = __("Group",'acf'); - $this->category = 'layout'; - $this->defaults = array( - 'sub_fields' => array(), - 'layout' => 'block' - ); - $this->have_rows = 'single'; - - - // field filters - $this->add_field_filter('acf/prepare_field_for_export', array($this, 'prepare_field_for_export')); - $this->add_field_filter('acf/prepare_field_for_import', array($this, 'prepare_field_for_import')); - - } - - - /* - * load_field() - * - * This filter is appied to the $field after it is loaded from the database - * - * @type filter - * @since 3.6 - * @date 23/01/13 - * - * @param $field - the field array holding all the field options - * - * @return $field - the field array holding all the field options - */ - - function load_field( $field ) { - - // vars - $sub_fields = acf_get_fields( $field ); - - - // append - if( $sub_fields ) { - - $field['sub_fields'] = $sub_fields; - - } - - - // return - return $field; - - } - - - /* - * load_value() - * - * This filter is applied to the $value after it is loaded from the db - * - * @type filter - * @since 3.6 - * @date 23/01/13 - * - * @param $value (mixed) the value found in the database - * @param $post_id (mixed) the $post_id from which the value was loaded - * @param $field (array) the field array holding all the field options - * @return $value - */ - - function load_value( $value, $post_id, $field ) { - - // bail early if no sub fields - if( empty($field['sub_fields']) ) return $value; - - - // modify names - $field = $this->prepare_field_for_db( $field ); - - - // load sub fields - $value = array(); - - - // loop - foreach( $field['sub_fields'] as $sub_field ) { - - // load - $value[ $sub_field['key'] ] = acf_get_value( $post_id, $sub_field ); - - } - - - // return - return $value; - - } - - - /* - * format_value() - * - * This filter is appied to the $value after it is loaded from the db and before it is returned to the template - * - * @type filter - * @since 3.6 - * @date 23/01/13 - * - * @param $value (mixed) the value which was loaded from the database - * @param $post_id (mixed) the $post_id from which the value was loaded - * @param $field (array) the field array holding all the field options - * - * @return $value (mixed) the modified value - */ - - function format_value( $value, $post_id, $field ) { - - // bail early if no value - if( empty($value) ) return false; - - - // modify names - $field = $this->prepare_field_for_db( $field ); - - - // loop - foreach( $field['sub_fields'] as $sub_field ) { - - // extract value - $sub_value = acf_extract_var( $value, $sub_field['key'] ); - - - // format value - $sub_value = acf_format_value( $sub_value, $post_id, $sub_field ); - - - // append to $row - $value[ $sub_field['_name'] ] = $sub_value; - - } - - - // return - return $value; - - } - - - /* - * update_value() - * - * This filter is appied to the $value before it is updated in the db - * - * @type filter - * @since 3.6 - * @date 23/01/13 - * - * @param $value - the value which will be saved in the database - * @param $field - the field array holding all the field options - * @param $post_id - the $post_id of which the value will be saved - * - * @return $value - the modified value - */ - - function update_value( $value, $post_id, $field ) { - - // bail early if no value - if( !acf_is_array($value) ) return null; - - - // bail ealry if no sub fields - if( empty($field['sub_fields']) ) return null; - - - // modify names - $field = $this->prepare_field_for_db( $field ); - - - // loop - foreach( $field['sub_fields'] as $sub_field ) { - // vars - $v = false; - - - // key (backend) - if( isset($value[ $sub_field['key'] ]) ) { - - $v = $value[ $sub_field['key'] ]; - - // name (frontend) - } elseif( isset($value[ $sub_field['_name'] ]) ) { - - $v = $value[ $sub_field['_name'] ]; - - // empty - } else { - - // input is not set (hidden by conditioanl logic) - continue; - - } - - - // update value - acf_update_value( $v, $post_id, $sub_field ); - - } - - - // return - return ''; - - } - - - /* - * prepare_field_for_db - * - * This function will modify sub fields ready for update / load - * - * @type function - * @date 4/11/16 - * @since 5.5.0 - * - * @param $field (array) - * @return $field - */ - - function prepare_field_for_db( $field ) { - - // bail early if no sub fields - if( empty($field['sub_fields']) ) return $field; - - - // loop - foreach( $field['sub_fields'] as &$sub_field ) { - - // prefix name - $sub_field['name'] = $field['name'] . '_' . $sub_field['_name']; - - } - - - // return - return $field; + $this->name = 'group'; + $this->label = __( 'Group', 'acf' ); + $this->category = 'layout'; + $this->description = __( 'Provides a way to structure fields into groups to better organize the data and the edit screen.', 'acf' ); + $this->preview_image = acf_get_url() . '/assets/images/field-type-previews/field-preview-group.png'; + $this->doc_url = acf_add_url_utm_tags( 'https://www.advancedcustomfields.com/resources/group/', 'docs', 'field-type-selection' ); + $this->defaults = array( + 'sub_fields' => array(), + 'layout' => 'block', + ); + $this->have_rows = 'single'; + + // field filters + $this->add_field_filter( 'acf/prepare_field_for_export', array( $this, 'prepare_field_for_export' ) ); + $this->add_field_filter( 'acf/prepare_field_for_import', array( $this, 'prepare_field_for_import' ) ); + + } + + + /* + * load_field() + * + * This filter is appied to the $field after it is loaded from the database + * + * @type filter + * @since 3.6 + * @date 23/01/13 + * + * @param $field - the field array holding all the field options + * + * @return $field - the field array holding all the field options + */ + + function load_field( $field ) { + + // vars + $sub_fields = acf_get_fields( $field ); + + // append + if ( $sub_fields ) { + + $field['sub_fields'] = $sub_fields; - } - - - /* - * render_field() - * - * Create the HTML interface for your field - * - * @param $field - an array holding all the field's data - * - * @type action - * @since 3.6 - * @date 23/01/13 - */ - - function render_field( $field ) { - - // bail early if no sub fields - if( empty($field['sub_fields']) ) return; - - - // load values - foreach( $field['sub_fields'] as &$sub_field ) { - - // add value - if( isset($field['value'][ $sub_field['key'] ]) ) { - - // this is a normal value - $sub_field['value'] = $field['value'][ $sub_field['key'] ]; - - } elseif( isset($sub_field['default_value']) ) { - - // no value, but this sub field has a default value - $sub_field['value'] = $sub_field['default_value']; - } - - - // update prefix to allow for nested values - $sub_field['prefix'] = $field['name']; - - - // restore required - if( $field['required'] ) $sub_field['required'] = 0; - + + // return + return $field; + } - - - // render - if( $field['layout'] == 'table' ) { - - $this->render_field_table( $field ); - - } else { - - $this->render_field_block( $field ); - + + + /* + * load_value() + * + * This filter is applied to the $value after it is loaded from the db + * + * @type filter + * @since 3.6 + * @date 23/01/13 + * + * @param $value (mixed) the value found in the database + * @param $post_id (mixed) the $post_id from which the value was loaded + * @param $field (array) the field array holding all the field options + * @return $value + */ + + function load_value( $value, $post_id, $field ) { + + // bail early if no sub fields + if ( empty( $field['sub_fields'] ) ) { + return $value; + } + + // modify names + $field = $this->prepare_field_for_db( $field ); + + // load sub fields + $value = array(); + + // loop + foreach ( $field['sub_fields'] as $sub_field ) { + + // load + $value[ $sub_field['key'] ] = acf_get_value( $post_id, $sub_field ); + + } + + // return + return $value; + } - - } - - - /* - * render_field_block - * - * description - * - * @type function - * @date 12/07/2016 - * @since 5.4.0 - * - * @param $post_id (int) - * @return $post_id (int) - */ - - function render_field_block( $field ) { - - // vars - $label_placement = ($field['layout'] == 'block') ? 'top' : 'left'; - - - // html - echo '
                                          '; - - foreach( $field['sub_fields'] as $sub_field ) { - - acf_render_field_wrap( $sub_field ); - + + + /* + * format_value() + * + * This filter is appied to the $value after it is loaded from the db and before it is returned to the template + * + * @type filter + * @since 3.6 + * @date 23/01/13 + * + * @param $value (mixed) the value which was loaded from the database + * @param $post_id (mixed) the $post_id from which the value was loaded + * @param $field (array) the field array holding all the field options + * + * @return $value (mixed) the modified value + */ + + function format_value( $value, $post_id, $field ) { + + // bail early if no value + if ( empty( $value ) ) { + return false; + } + + // modify names + $field = $this->prepare_field_for_db( $field ); + + // loop + foreach ( $field['sub_fields'] as $sub_field ) { + + // extract value + $sub_value = acf_extract_var( $value, $sub_field['key'] ); + + // format value + $sub_value = acf_format_value( $sub_value, $post_id, $sub_field ); + + // append to $row + $value[ $sub_field['_name'] ] = $sub_value; + + } + + // return + return $value; + } - - echo '
                                          '; - - } - - - /* - * render_field_table - * - * description - * - * @type function - * @date 12/07/2016 - * @since 5.4.0 - * - * @param $post_id (int) - * @return $post_id (int) - */ - - function render_field_table( $field ) { - -?> + + + /* + * update_value() + * + * This filter is appied to the $value before it is updated in the db + * + * @type filter + * @since 3.6 + * @date 23/01/13 + * + * @param $value - the value which will be saved in the database + * @param $field - the field array holding all the field options + * @param $post_id - the $post_id of which the value will be saved + * + * @return $value - the modified value + */ + + function update_value( $value, $post_id, $field ) { + + // bail early if no value + if ( ! acf_is_array( $value ) ) { + return null; + } + + // bail early if no sub fields + if ( empty( $field['sub_fields'] ) ) { + return null; + } + + // modify names + $field = $this->prepare_field_for_db( $field ); + + // loop + foreach ( $field['sub_fields'] as $sub_field ) { + + // vars + $v = false; + + // key (backend) + if ( isset( $value[ $sub_field['key'] ] ) ) { + + $v = $value[ $sub_field['key'] ]; + + // name (frontend) + } elseif ( isset( $value[ $sub_field['_name'] ] ) ) { + + $v = $value[ $sub_field['_name'] ]; + + // empty + } else { + + // input is not set (hidden by conditioanl logic) + continue; + + } + + // update value + acf_update_value( $v, $post_id, $sub_field ); + + } + + // return + return ''; + + } + + + /* + * prepare_field_for_db + * + * This function will modify sub fields ready for update / load + * + * @type function + * @date 4/11/16 + * @since 5.5.0 + * + * @param $field (array) + * @return $field + */ + + function prepare_field_for_db( $field ) { + + // bail early if no sub fields + if ( empty( $field['sub_fields'] ) ) { + return $field; + } + + // loop + foreach ( $field['sub_fields'] as &$sub_field ) { + + // prefix name + $sub_field['name'] = $field['name'] . '_' . $sub_field['_name']; + + } + + // return + return $field; + + } + + + /* + * render_field() + * + * Create the HTML interface for your field + * + * @param $field - an array holding all the field's data + * + * @type action + * @since 3.6 + * @date 23/01/13 + */ + + function render_field( $field ) { + + // bail early if no sub fields + if ( empty( $field['sub_fields'] ) ) { + return; + } + + // load values + foreach ( $field['sub_fields'] as &$sub_field ) { + + // add value + if ( isset( $field['value'][ $sub_field['key'] ] ) ) { + + // this is a normal value + $sub_field['value'] = $field['value'][ $sub_field['key'] ]; + + } elseif ( isset( $sub_field['default_value'] ) ) { + + // no value, but this sub field has a default value + $sub_field['value'] = $sub_field['default_value']; + + } + + // update prefix to allow for nested values + $sub_field['prefix'] = $field['name']; + + // restore required + if ( $field['required'] ) { + $sub_field['required'] = 0; + } + } + + // render + if ( $field['layout'] == 'table' ) { + + $this->render_field_table( $field ); + + } else { + + $this->render_field_block( $field ); + + } + + } + + + /* + * render_field_block + * + * description + * + * @type function + * @date 12/07/2016 + * @since 5.4.0 + * + * @param $post_id (int) + * @return $post_id (int) + */ + + function render_field_block( $field ) { + + // vars + $label_placement = ( $field['layout'] == 'block' ) ? 'top' : 'left'; + + // html + echo '
                                          '; + + foreach ( $field['sub_fields'] as $sub_field ) { + + acf_render_field_wrap( $sub_field ); + + } + + echo '
                                          '; + + } + + + /* + * render_field_table + * + * description + * + * @type function + * @date 12/07/2016 + * @since 5.4.0 + * + * @param $post_id (int) + * @return $post_id (int) + */ + + function render_field_table( $field ) { + + ?> - - - + - +
                                          > + + >
                                          - $field['sub_fields'], - 'parent' => $field['ID'] - ); - - - ?> - - - - - - - - __('Layout','acf'), - 'instructions' => __('Specify the style used to render the selected fields', 'acf'), - 'type' => 'radio', - 'name' => 'layout', - 'layout' => 'horizontal', - 'choices' => array( - 'block' => __('Block','acf'), - 'table' => __('Table','acf'), - 'row' => __('Row','acf') - ) - )); - - } - - - /* - * validate_value - * - * description - * - * @type function - * @date 11/02/2014 - * @since 5.0.0 - * - * @param $post_id (int) - * @return $post_id (int) - */ - - function validate_value( $valid, $value, $field, $input ){ - - // bail early if no $value - if( empty($value) ) return $valid; - - - // bail early if no sub fields - if( empty($field['sub_fields']) ) return $valid; - - - // loop - foreach( $field['sub_fields'] as $sub_field ) { - - // get sub field - $k = $sub_field['key']; - - - // bail early if value not set (conditional logic?) - if( !isset($value[ $k ]) ) continue; - - - // required - if( $field['required'] ) { - $sub_field['required'] = 1; - } - - - // validate - acf_validate_value( $value[ $k ], $sub_field, "{$input}[{$k}]" ); - - } - - - // return - return $valid; - - } - - - /* - * duplicate_field() - * - * This filter is appied to the $field before it is duplicated and saved to the database - * - * @type filter - * @since 3.6 - * @date 23/01/13 - * - * @param $field - the field array holding all the field options - * - * @return $field - the modified field - */ + $field['sub_fields'], + 'parent' => $field['ID'], + 'is_subfield' => true, + ); + + ?> +
                                          +
                                          + +
                                          +
                                          + +
                                          +
                                          + __( 'Layout', 'acf' ), + 'instructions' => __( 'Specify the style used to render the selected fields', 'acf' ), + 'type' => 'radio', + 'name' => 'layout', + 'layout' => 'horizontal', + 'choices' => array( + 'block' => __( 'Block', 'acf' ), + 'table' => __( 'Table', 'acf' ), + 'row' => __( 'Row', 'acf' ), + ), + ) + ); + + } + + + /* + * validate_value + * + * description + * + * @type function + * @date 11/02/2014 + * @since 5.0.0 + * + * @param $post_id (int) + * @return $post_id (int) + */ + + function validate_value( $valid, $value, $field, $input ) { + + // bail early if no $value + if ( empty( $value ) ) { + return $valid; + } + + // bail early if no sub fields + if ( empty( $field['sub_fields'] ) ) { + return $valid; + } + + // loop + foreach ( $field['sub_fields'] as $sub_field ) { + + // get sub field + $k = $sub_field['key']; + + // bail early if value not set (conditional logic?) + if ( ! isset( $value[ $k ] ) ) { + continue; + } + + // required + if ( $field['required'] ) { + $sub_field['required'] = 1; + } + + // validate + acf_validate_value( $value[ $k ], $sub_field, "{$input}[{$k}]" ); + + } + + // return + return $valid; + + } + + + /* + * duplicate_field() + * + * This filter is appied to the $field before it is duplicated and saved to the database + * + * @type filter + * @since 3.6 + * @date 23/01/13 + * + * @param $field - the field array holding all the field options + * + * @return $field - the modified field + */ + + function duplicate_field( $field ) { + + // get sub fields $sub_fields = acf_extract_var( $field, 'sub_fields' ); - - // Modify sub fields. - foreach( $sub_fields as $i => $sub_field ) { - $sub_fields[ $i ]['parent'] = $field['key']; - $sub_fields[ $i ]['menu_order'] = $i; + + // save field to get ID + $field = acf_update_field( $field ); + + // duplicate sub fields + acf_duplicate_fields( $sub_fields, $field['ID'] ); + + // return + return $field; + + } + + /** + * prepare_field_for_export + * + * Prepares the field for export. + * + * @date 11/03/2014 + * @since 5.0.0 + * + * @param array $field The field settings. + * @return array + */ + function prepare_field_for_export( $field ) { + + // Check for sub fields. + if ( ! empty( $field['sub_fields'] ) ) { + $field['sub_fields'] = acf_prepare_fields_for_export( $field['sub_fields'] ); } - - // Return array of [field, sub_1, sub_2, ...]. - return array_merge( array($field), $sub_fields ); - + return $field; } - return $field; - } - - - /* - * delete_value - * - * Called when deleting this field's value. - * - * @date 1/07/2015 - * @since 5.2.3 - * - * @param mixed $post_id The post ID being saved - * @param string $meta_key The field name as seen by the DB - * @param array $field The field settings - * @return void - */ - - function delete_value( $post_id, $meta_key, $field ) { - - // bail ealry if no sub fields - if( empty($field['sub_fields']) ) return null; - - // modify names - $field = $this->prepare_field_for_db( $field ); - - // loop - foreach( $field['sub_fields'] as $sub_field ) { - acf_delete_value( $post_id, $sub_field ); - } - } - - /** - * delete_field - * - * Called when deleting a field of this type. - * - * @date 8/11/18 - * @since 5.8.0 - * - * @param arra $field The field settings. - * @return void - */ - function delete_field( $field ) { - - // loop over sub fields and delete them - if( $field['sub_fields'] ) { - foreach( $field['sub_fields'] as $sub_field ) { - acf_delete_field( $sub_field['ID'] ); + + /** + * prepare_field_for_import + * + * Returns a flat array of fields containing all sub fields ready for import. + * + * @date 11/03/2014 + * @since 5.0.0 + * + * @param array $field The field settings. + * @return array + */ + function prepare_field_for_import( $field ) { + + // Check for sub fields. + if ( ! empty( $field['sub_fields'] ) ) { + $sub_fields = acf_extract_var( $field, 'sub_fields' ); + + // Modify sub fields. + foreach ( $sub_fields as $i => $sub_field ) { + $sub_fields[ $i ]['parent'] = $field['key']; + $sub_fields[ $i ]['menu_order'] = $i; + } + + // Return array of [field, sub_1, sub_2, ...]. + return array_merge( array( $field ), $sub_fields ); + } + return $field; } - } - -} -// initialize -acf_register_field_type( 'acf_field__group' ); + /* + * delete_value + * + * Called when deleting this field's value. + * + * @date 1/07/2015 + * @since 5.2.3 + * + * @param mixed $post_id The post ID being saved + * @param string $meta_key The field name as seen by the DB + * @param array $field The field settings + * @return void + */ + + function delete_value( $post_id, $meta_key, $field ) { + + // bail early if no sub fields + if ( empty( $field['sub_fields'] ) ) { + return null; + } + + // modify names + $field = $this->prepare_field_for_db( $field ); + + // loop + foreach ( $field['sub_fields'] as $sub_field ) { + acf_delete_value( $post_id, $sub_field ); + } + } + + /** + * delete_field + * + * Called when deleting a field of this type. + * + * @date 8/11/18 + * @since 5.8.0 + * + * @param arra $field The field settings. + * @return void + */ + function delete_field( $field ) { + + // loop over sub fields and delete them + if ( $field['sub_fields'] ) { + foreach ( $field['sub_fields'] as $sub_field ) { + acf_delete_field( $sub_field['ID'] ); + } + } + } + + /** + * Return the schema array for the REST API. + * + * @param array $field + * @return array + */ + public function get_rest_schema( array $field ) { + $schema = array( + 'type' => array( 'object', 'null' ), + 'properties' => array(), + 'required' => ! empty( $field['required'] ), + ); + + foreach ( $field['sub_fields'] as $sub_field ) { + if ( $sub_field_schema = acf_get_field_rest_schema( $sub_field ) ) { + $schema['properties'][ $sub_field['name'] ] = $sub_field_schema; + } + } + + return $schema; + } + + /** + * Apply basic formatting to prepare the value for default REST output. + * + * @param mixed $value + * @param int|string $post_id + * @param array $field + * @return array|mixed + */ + public function format_value_for_rest( $value, $post_id, array $field ) { + if ( empty( $value ) || ! is_array( $value ) || empty( $field['sub_fields'] ) ) { + return $value; + } + + // Loop through each row and within that, each sub field to process sub fields individually. + foreach ( $field['sub_fields'] as $sub_field ) { + + // Extract the sub field 'field_key'=>'value' pair from the $value and format it. + $sub_value = acf_extract_var( $value, $sub_field['key'] ); + $sub_value = acf_format_value_for_rest( $sub_value, $post_id, $sub_field ); + + // Add the sub field value back to the $value but mapped to the field name instead + // of the key reference. + $value[ $sub_field['name'] ] = $sub_value; + } + + return $value; + } + + } + + + // initialize + acf_register_field_type( 'acf_field__group' ); endif; // class_exists check -?> \ No newline at end of file +?> diff --git a/includes/fields/class-acf-field-image.php b/includes/fields/class-acf-field-image.php index 5bc93c0..93e6f5d 100644 --- a/includes/fields/class-acf-field-image.php +++ b/includes/fields/class-acf-field-image.php @@ -1,419 +1,496 @@ name = 'image'; + $this->label = __( 'Image', 'acf' ); + $this->category = 'content'; + $this->description = __( 'Uses the native WordPress media picker to upload, or choose images.', 'acf' ); + $this->preview_image = acf_get_url() . '/assets/images/field-type-previews/field-preview-image.png'; + $this->doc_url = acf_add_url_utm_tags( 'https://www.advancedcustomfields.com/resources/image/', 'docs', 'field-type-selection' ); + $this->defaults = array( + 'return_format' => 'array', + 'preview_size' => 'medium', + 'library' => 'all', + 'min_width' => 0, + 'min_height' => 0, + 'min_size' => 0, + 'max_width' => 0, + 'max_height' => 0, + 'max_size' => 0, + 'mime_types' => '', + ); + + // filters + add_filter( 'get_media_item_args', array( $this, 'get_media_item_args' ) ); -class acf_field_image extends acf_field { - - - /* - * __construct - * - * This function will setup the field type data - * - * @type function - * @date 5/03/2014 - * @since 5.0.0 - * - * @param n/a - * @return n/a - */ - - function initialize() { - - // vars - $this->name = 'image'; - $this->label = __("Image",'acf'); - $this->category = 'content'; - $this->defaults = array( - 'return_format' => 'array', - 'preview_size' => 'medium', - 'library' => 'all', - 'min_width' => 0, - 'min_height' => 0, - 'min_size' => 0, - 'max_width' => 0, - 'max_height' => 0, - 'max_size' => 0, - 'mime_types' => '' - ); - - // filters - add_filter('get_media_item_args', array($this, 'get_media_item_args')); - - } - - - /* - * input_admin_enqueue_scripts - * - * description - * - * @type function - * @date 16/12/2015 - * @since 5.3.2 - * - * @param $post_id (int) - * @return $post_id (int) - */ - - function input_admin_enqueue_scripts() { - - // localize - acf_localize_text(array( - 'Select Image' => __('Select Image', 'acf'), - 'Edit Image' => __('Edit Image', 'acf'), - 'Update Image' => __('Update Image', 'acf'), - 'All images' => __('All images', 'acf'), - )); - } - - /** - * Renders the field HTML. - * - * @date 23/01/13 - * @since 3.6.0 - * - * @param array $field The field settings. - * @return void - */ - function render_field( $field ) { - $uploader = acf_get_setting('uploader'); - - // Enqueue uploader scripts - if( $uploader === 'wp' ) { - acf_enqueue_uploader(); } - // Elements and attributes. - $value = ''; - $div_attrs = array( - 'class' => 'acf-image-uploader', - 'data-preview_size' => $field['preview_size'], - 'data-library' => $field['library'], - 'data-mime_types' => $field['mime_types'], - 'data-uploader' => $uploader - ); - $img_attrs = array( - 'src' => '', - 'alt' => '', - 'data-name' => 'image' - ); - - // Detect value. - if( $field['value'] && is_numeric($field['value']) ) { - $image = wp_get_attachment_image_src( $field['value'], $field['preview_size'] ); - if( $image ) { - $value = $field['value']; - $img_attrs['src'] = $image[0]; - $img_attrs['alt'] = get_post_meta( $field['value'], '_wp_attachment_image_alt', true ); - $div_attrs['class'] .= ' has-value'; - } - } - - // Add "preview size" max width and height style. - // Apply max-width to wrap, and max-height to img for max compatibility with field widths. - $size = acf_get_image_size( $field['preview_size'] ); - $size_w = $size['width'] ? $size['width'] . 'px' : '100%'; - $size_h = $size['height'] ? $size['height'] . 'px' : '100%'; - $img_attrs['style'] = sprintf( 'max-height: %s;', $size_h ); - // Render HTML. - ?> + /* + * input_admin_enqueue_scripts + * + * description + * + * @type function + * @date 16/12/2015 + * @since 5.3.2 + * + * @param $post_id (int) + * @return $post_id (int) + */ + + function input_admin_enqueue_scripts() { + + // localize + acf_localize_text( + array( + 'Select Image' => __( 'Select Image', 'acf' ), + 'Edit Image' => __( 'Edit Image', 'acf' ), + 'Update Image' => __( 'Update Image', 'acf' ), + 'All images' => __( 'All images', 'acf' ), + ) + ); + } + + /** + * Renders the field HTML. + * + * @date 23/01/13 + * @since 3.6.0 + * + * @param array $field The field settings. + * @return void + */ + function render_field( $field ) { + $uploader = acf_get_setting( 'uploader' ); + + // Enqueue uploader scripts + if ( $uploader === 'wp' ) { + acf_enqueue_uploader(); + } + + // Elements and attributes. + $value = ''; + $div_attrs = array( + 'class' => 'acf-image-uploader', + 'data-preview_size' => $field['preview_size'], + 'data-library' => $field['library'], + 'data-mime_types' => $field['mime_types'], + 'data-uploader' => $uploader, + ); + $img_attrs = array( + 'src' => '', + 'alt' => '', + 'data-name' => 'image', + ); + + // Detect value. + if ( $field['value'] && is_numeric( $field['value'] ) ) { + $image = wp_get_attachment_image_src( $field['value'], $field['preview_size'] ); + if ( $image ) { + $value = $field['value']; + $img_attrs['src'] = $image[0]; + $img_attrs['alt'] = get_post_meta( $field['value'], '_wp_attachment_image_alt', true ); + $div_attrs['class'] .= ' has-value'; + } + } + + // Add "preview size" max width and height style. + // Apply max-width to wrap, and max-height to img for max compatibility with field widths. + $size = acf_get_image_size( $field['preview_size'] ); + $size_w = $size['width'] ? $size['width'] . 'px' : '100%'; + $size_h = $size['height'] ? $size['height'] . 'px' : '100%'; + $img_attrs['style'] = sprintf( 'max-height: %s;', $size_h ); + + // Render HTML. + ?>
                                          > - $field['name'], - 'value' => $value - )); ?> + $field['name'], + 'value' => $value, + ) + ); + ?>
                                          />
                                          - +
                                          - - + +

                                          - +

                                          - __( 'Return Format', 'acf' ), + 'instructions' => '', + 'type' => 'radio', + 'name' => 'return_format', + 'layout' => 'horizontal', + 'choices' => array( + 'array' => __( 'Image Array', 'acf' ), + 'url' => __( 'Image URL', 'acf' ), + 'id' => __( 'Image ID', 'acf' ), + ), + ) + ); + + acf_render_field_setting( + $field, + array( + 'label' => __( 'Library', 'acf' ), + 'instructions' => __( 'Limit the media library choice', 'acf' ), + 'type' => 'radio', + 'name' => 'library', + 'layout' => 'horizontal', + 'choices' => array( + 'all' => __( 'All', 'acf' ), + 'uploadedTo' => __( 'Uploaded to post', 'acf' ), + ), + ) + ); + } + + /** + * Renders the field settings used in the "Validation" tab. + * + * @since 6.0 + * + * @param array $field The field settings array. + * @return void + */ + function render_field_validation_settings( $field ) { + // Clear numeric settings. + $clear = array( + 'min_width', + 'min_height', + 'min_size', + 'max_width', + 'max_height', + 'max_size', + ); + + foreach ( $clear as $k ) { + if ( empty( $field[ $k ] ) ) { + $field[ $k ] = ''; + } } - + + acf_render_field_setting( + $field, + array( + 'label' => __( 'Minimum', 'acf' ), + 'hint' => __( 'Restrict which images can be uploaded', 'acf' ), + 'type' => 'text', + 'name' => 'min_width', + 'prepend' => __( 'Width', 'acf' ), + 'append' => 'px', + ) + ); + + acf_render_field_setting( + $field, + array( + 'label' => '', + 'type' => 'text', + 'name' => 'min_height', + 'prepend' => __( 'Height', 'acf' ), + 'append' => 'px', + '_append' => 'min_width', + ) + ); + + acf_render_field_setting( + $field, + array( + 'label' => '', + 'type' => 'text', + 'name' => 'min_size', + 'prepend' => __( 'File size', 'acf' ), + 'append' => 'MB', + '_append' => 'min_width', + ) + ); + + acf_render_field_setting( + $field, + array( + 'label' => __( 'Maximum', 'acf' ), + 'hint' => __( 'Restrict which images can be uploaded', 'acf' ), + 'type' => 'text', + 'name' => 'max_width', + 'prepend' => __( 'Width', 'acf' ), + 'append' => 'px', + ) + ); + + acf_render_field_setting( + $field, + array( + 'label' => '', + 'type' => 'text', + 'name' => 'max_height', + 'prepend' => __( 'Height', 'acf' ), + 'append' => 'px', + '_append' => 'max_width', + ) + ); + + acf_render_field_setting( + $field, + array( + 'label' => '', + 'type' => 'text', + 'name' => 'max_size', + 'prepend' => __( 'File size', 'acf' ), + 'append' => 'MB', + '_append' => 'max_width', + ) + ); + + acf_render_field_setting( + $field, + array( + 'label' => __( 'Allowed File Types', 'acf' ), + 'instructions' => __( 'Comma separated list. Leave blank for all types', 'acf' ), + 'type' => 'text', + 'name' => 'mime_types', + ) + ); } - - - // return_format - acf_render_field_setting( $field, array( - 'label' => __('Return Format','acf'), - 'instructions' => '', - 'type' => 'radio', - 'name' => 'return_format', - 'layout' => 'horizontal', - 'choices' => array( - 'array' => __("Image Array",'acf'), - 'url' => __("Image URL",'acf'), - 'id' => __("Image ID",'acf') - ) - )); - - - // preview_size - acf_render_field_setting( $field, array( - 'label' => __('Preview Size','acf'), - 'instructions' => '', - 'type' => 'select', - 'name' => 'preview_size', - 'choices' => acf_get_image_sizes() - )); - - - // library - acf_render_field_setting( $field, array( - 'label' => __('Library','acf'), - 'instructions' => __('Limit the media library choice','acf'), - 'type' => 'radio', - 'name' => 'library', - 'layout' => 'horizontal', - 'choices' => array( - 'all' => __('All', 'acf'), - 'uploadedTo' => __('Uploaded to post', 'acf') - ) - )); - - - // min - acf_render_field_setting( $field, array( - 'label' => __('Minimum','acf'), - 'instructions' => __('Restrict which images can be uploaded','acf'), - 'type' => 'text', - 'name' => 'min_width', - 'prepend' => __('Width', 'acf'), - 'append' => 'px', - )); - - acf_render_field_setting( $field, array( - 'label' => '', - 'type' => 'text', - 'name' => 'min_height', - 'prepend' => __('Height', 'acf'), - 'append' => 'px', - '_append' => 'min_width' - )); - - acf_render_field_setting( $field, array( - 'label' => '', - 'type' => 'text', - 'name' => 'min_size', - 'prepend' => __('File size', 'acf'), - 'append' => 'MB', - '_append' => 'min_width' - )); - - - // max - acf_render_field_setting( $field, array( - 'label' => __('Maximum','acf'), - 'instructions' => __('Restrict which images can be uploaded','acf'), - 'type' => 'text', - 'name' => 'max_width', - 'prepend' => __('Width', 'acf'), - 'append' => 'px', - )); - - acf_render_field_setting( $field, array( - 'label' => '', - 'type' => 'text', - 'name' => 'max_height', - 'prepend' => __('Height', 'acf'), - 'append' => 'px', - '_append' => 'max_width' - )); - - acf_render_field_setting( $field, array( - 'label' => '', - 'type' => 'text', - 'name' => 'max_size', - 'prepend' => __('File size', 'acf'), - 'append' => 'MB', - '_append' => 'max_width' - )); - - - // allowed type - acf_render_field_setting( $field, array( - 'label' => __('Allowed file types','acf'), - 'instructions' => __('Comma separated list. Leave blank for all types','acf'), - 'type' => 'text', - 'name' => 'mime_types', - )); - - } - - - /* - * format_value() - * - * This filter is appied to the $value after it is loaded from the db and before it is returned to the template - * - * @type filter - * @since 3.6 - * @date 23/01/13 - * - * @param $value (mixed) the value which was loaded from the database - * @param $post_id (mixed) the $post_id from which the value was loaded - * @param $field (array) the field array holding all the field options - * - * @return $value (mixed) the modified value - */ - - function format_value( $value, $post_id, $field ) { - - // bail early if no value - if( empty($value) ) return false; - - - // bail early if not numeric (error message) - if( !is_numeric($value) ) return false; - - - // convert to int - $value = intval($value); - - - // format - if( $field['return_format'] == 'url' ) { - - return wp_get_attachment_url( $value ); - - } elseif( $field['return_format'] == 'array' ) { - - return acf_get_attachment( $value ); - + + /** + * Renders the field settings used in the "Presentation" tab. + * + * @since 6.0 + * + * @param array $field The field settings array. + * @return void + */ + function render_field_presentation_settings( $field ) { + acf_render_field_setting( + $field, + array( + 'label' => __( 'Preview Size', 'acf' ), + 'instructions' => '', + 'type' => 'select', + 'name' => 'preview_size', + 'choices' => acf_get_image_sizes(), + ) + ); + } + + /* + * format_value() + * + * This filter is appied to the $value after it is loaded from the db and before it is returned to the template + * + * @type filter + * @since 3.6 + * @date 23/01/13 + * + * @param $value (mixed) the value which was loaded from the database + * @param $post_id (mixed) the $post_id from which the value was loaded + * @param $field (array) the field array holding all the field options + * + * @return $value (mixed) the modified value + */ + + function format_value( $value, $post_id, $field ) { + + // bail early if no value + if ( empty( $value ) ) { + return false; + } + + // bail early if not numeric (error message) + if ( ! is_numeric( $value ) ) { + return false; + } + + // convert to int + $value = intval( $value ); + + // format + if ( $field['return_format'] == 'url' ) { + + return wp_get_attachment_url( $value ); + + } elseif ( $field['return_format'] == 'array' ) { + + return acf_get_attachment( $value ); + + } + + // return + return $value; + } - - - // return - return $value; - - } - - - /* - * get_media_item_args - * - * description - * - * @type function - * @date 27/01/13 - * @since 3.6.0 - * - * @param $vars (array) - * @return $vars - */ - - function get_media_item_args( $vars ) { - - $vars['send'] = true; - return($vars); - - } - - - /* - * update_value() - * - * This filter is appied to the $value before it is updated in the db - * - * @type filter - * @since 3.6 - * @date 23/01/13 - * - * @param $value - the value which will be saved in the database - * @param $post_id - the $post_id of which the value will be saved - * @param $field - the field array holding all the field options - * - * @return $value - the modified value - */ - - function update_value( $value, $post_id, $field ) { - - return acf_get_field_type('file')->update_value( $value, $post_id, $field ); - - } - - - /* - * validate_value - * - * This function will validate a basic file input - * - * @type function - * @date 11/02/2014 - * @since 5.0.0 - * - * @param $post_id (int) - * @return $post_id (int) - */ - - function validate_value( $valid, $value, $field, $input ){ - - return acf_get_field_type('file')->validate_value( $valid, $value, $field, $input ); - - } - -} -// initialize -acf_register_field_type( 'acf_field_image' ); + /* + * get_media_item_args + * + * description + * + * @type function + * @date 27/01/13 + * @since 3.6.0 + * + * @param $vars (array) + * @return $vars + */ + + function get_media_item_args( $vars ) { + + $vars['send'] = true; + return( $vars ); + + } + + + /* + * update_value() + * + * This filter is appied to the $value before it is updated in the db + * + * @type filter + * @since 3.6 + * @date 23/01/13 + * + * @param $value - the value which will be saved in the database + * @param $post_id - the $post_id of which the value will be saved + * @param $field - the field array holding all the field options + * + * @return $value - the modified value + */ + + function update_value( $value, $post_id, $field ) { + + return acf_get_field_type( 'file' )->update_value( $value, $post_id, $field ); + + } + + + /** + * validate_value + * + * This function will validate a basic file input + * + * @type function + * @date 11/02/2014 + * @since 5.0.0 + * + * @param $post_id (int) + * @return $post_id (int) + */ + function validate_value( $valid, $value, $field, $input ) { + return acf_get_field_type( 'file' )->validate_value( $valid, $value, $field, $input ); + } + + /** + * Additional validation for the image field when submitted via REST. + * + * @param bool $valid + * @param int $value + * @param array $field + * + * @return bool|WP_Error + */ + public function validate_rest_value( $valid, $value, $field ) { + return acf_get_field_type( 'file' )->validate_rest_value( $valid, $value, $field ); + } + + /** + * Return the schema array for the REST API. + * + * @param array $field + * @return array + */ + public function get_rest_schema( array $field ) { + return acf_get_field_type( 'file' )->get_rest_schema( $field ); + } + + /** + * Apply basic formatting to prepare the value for default REST output. + * + * @param mixed $value + * @param string|int $post_id + * @param array $field + * @return mixed + */ + public function format_value_for_rest( $value, $post_id, array $field ) { + return acf_format_numerics( $value ); + } + + } + + + // initialize + acf_register_field_type( 'acf_field_image' ); endif; // class_exists check -?> \ No newline at end of file +?> diff --git a/includes/fields/class-acf-field-link.php b/includes/fields/class-acf-field-link.php index d5bfb55..314363b 100644 --- a/includes/fields/class-acf-field-link.php +++ b/includes/fields/class-acf-field-link.php @@ -1,287 +1,316 @@ name = 'link'; - $this->label = __("Link",'acf'); - $this->category = 'relational'; - $this->defaults = array( - 'return_format' => 'array', - ); - - } - - - /* - * get_link - * - * description - * - * @type function - * @date 16/5/17 - * @since 5.5.13 - * - * @param $post_id (int) - * @return $post_id (int) - */ - - function get_link( $value = '' ) { - - // vars - $link = array( - 'title' => '', - 'url' => '', - 'target' => '' - ); - - - // array (ACF 5.6.0) - if( is_array($value) ) { - - $link = array_merge($link, $value); - - // post id (ACF < 5.6.0) - } elseif( is_numeric($value) ) { - - $link['title'] = get_the_title( $value ); - $link['url'] = get_permalink( $value ); - - // string (ACF < 5.6.0) - } elseif( is_string($value) ) { - - $link['url'] = $value; - - } - - - // return - return $link; - - } - + class acf_field_link extends acf_field { + + + /* + * __construct + * + * This function will setup the field type data + * + * @type function + * @date 5/03/2014 + * @since 5.0.0 + * + * @param n/a + * @return n/a + */ + + function initialize() { + + // vars + $this->name = 'link'; + $this->label = __( 'Link', 'acf' ); + $this->category = 'relational'; + $this->description = __( 'Allows you to specify a link and its properties such as title and target using the WordPress native link picker.', 'acf' ); + $this->preview_image = acf_get_url() . '/assets/images/field-type-previews/field-preview-link.png'; + $this->doc_url = acf_add_url_utm_tags( 'https://www.advancedcustomfields.com/resources/link/', 'docs', 'field-type-selection' ); + $this->defaults = array( + 'return_format' => 'array', + ); - /* - * render_field() - * - * Create the HTML interface for your field - * - * @param $field - an array holding all the field's data - * - * @type action - * @since 3.6 - * @date 23/01/13 - */ - - function render_field( $field ){ - - // vars - $div = array( - 'id' => $field['id'], - 'class' => $field['class'] . ' acf-link', - ); - - - // render scripts/styles - acf_enqueue_uploader(); - - - // get link - $link = $this->get_link( $field['value'] ); - - - // classes - if( $link['url'] ) { - $div['class'] .= ' -value'; } - - if( $link['target'] === '_blank' ) { - $div['class'] .= ' -external'; + + + /* + * get_link + * + * description + * + * @type function + * @date 16/5/17 + * @since 5.5.13 + * + * @param $post_id (int) + * @return $post_id (int) + */ + + function get_link( $value = '' ) { + + // vars + $link = array( + 'title' => '', + 'url' => '', + 'target' => '', + ); + + // array (ACF 5.6.0) + if ( is_array( $value ) ) { + + $link = array_merge( $link, $value ); + + // post id (ACF < 5.6.0) + } elseif ( is_numeric( $value ) ) { + + $link['title'] = get_the_title( $value ); + $link['url'] = get_permalink( $value ); + + // string (ACF < 5.6.0) + } elseif ( is_string( $value ) ) { + + $link['url'] = $value; + + } + + // return + return $link; + } - - /**/ -?> -
                                          > + ?>*/ + ?> +
                                          >
                                          - - $v ): ?> - "input-$k", 'name' => $field['name'] . "[$k]", 'value' => $v )); ?> + + $v ) : ?> + "input-$k", + 'name' => $field['name'] . "[$k]", + 'value' => $v, + ) + ); + ?>
                                          - +
                                          - __('Return Value','acf'), - 'instructions' => __('Specify the returned value on front end','acf'), - 'type' => 'radio', - 'name' => 'return_format', - 'layout' => 'horizontal', - 'choices' => array( - 'array' => __("Link Array",'acf'), - 'url' => __("Link URL",'acf'), - ) - )); - - } - - - /* - * format_value() - * - * This filter is appied to the $value after it is loaded from the db and before it is returned to the template - * - * @type filter - * @since 3.6 - * @date 23/01/13 - * - * @param $value (mixed) the value which was loaded from the database - * @param $post_id (mixed) the $post_id from which the value was loaded - * @param $field (array) the field array holding all the field options - * - * @return $value (mixed) the modified value - */ - - function format_value( $value, $post_id, $field ) { - - // bail early if no value - if( empty($value) ) return $value; - - - // get link - $link = $this->get_link( $value ); - - - // format value - if( $field['return_format'] == 'url' ) { - - return $link['url']; - + __( 'Return Value', 'acf' ), + 'instructions' => __( 'Specify the returned value on front end', 'acf' ), + 'type' => 'radio', + 'name' => 'return_format', + 'layout' => 'horizontal', + 'choices' => array( + 'array' => __( 'Link Array', 'acf' ), + 'url' => __( 'Link URL', 'acf' ), + ), + ) + ); + + } + + /* + * format_value() + * + * This filter is appied to the $value after it is loaded from the db and before it is returned to the template + * + * @type filter + * @since 3.6 + * @date 23/01/13 + * + * @param $value (mixed) the value which was loaded from the database + * @param $post_id (mixed) the $post_id from which the value was loaded + * @param $field (array) the field array holding all the field options + * + * @return $value (mixed) the modified value + */ + + function format_value( $value, $post_id, $field ) { + + // bail early if no value + if ( empty( $value ) ) { + return $value; + } + + // get link + $link = $this->get_link( $value ); + + // format value + if ( $field['return_format'] == 'url' ) { + + return $link['url']; + + } + + // return link + return $link; + + } + + + /* + * validate_value + * + * description + * + * @type function + * @date 11/02/2014 + * @since 5.0.0 + * + * @param $post_id (int) + * @return $post_id (int) + */ + + function validate_value( $valid, $value, $field, $input ) { + + // bail early if not required + if ( ! $field['required'] ) { + return $valid; + } + + // URL is required + if ( empty( $value ) || empty( $value['url'] ) ) { + + return false; + + } + + // return + return $valid; + + } + + + /* + * update_value() + * + * This filter is appied to the $value before it is updated in the db + * + * @type filter + * @since 3.6 + * @date 23/01/13 + * + * @param $value - the value which will be saved in the database + * @param $post_id - the $post_id of which the value will be saved + * @param $field - the field array holding all the field options + * + * @return $value - the modified value + */ + + function update_value( $value, $post_id, $field ) { + + // Check if value is an empty array and convert to empty string. + if ( empty( $value ) || empty( $value['url'] ) ) { + $value = ''; + } + + // return + return $value; + } + + /** + * Return the schema array for the REST API. + * + * @param array $field + * @return array + */ + public function get_rest_schema( array $field ) { + return array( + 'type' => array( 'object', 'null' ), + 'required' => ! empty( $field['required'] ), + 'properties' => array( + 'title' => array( + 'type' => 'string', + ), + 'url' => array( + 'type' => 'string', + 'required' => true, + 'format' => 'uri', + ), + 'target' => array( + 'type' => 'string', + ), + ), + ); + } + } + + + // initialize + acf_register_field_type( 'acf_field_link' ); endif; // class_exists check -?> \ No newline at end of file +?> diff --git a/includes/fields/class-acf-field-message.php b/includes/fields/class-acf-field-message.php index 3fd2118..dfe6c05 100644 --- a/includes/fields/class-acf-field-message.php +++ b/includes/fields/class-acf-field-message.php @@ -1,198 +1,196 @@ name = 'message'; + $this->label = __( 'Message', 'acf' ); + $this->category = 'layout'; + $this->description = __( 'Used to display a message to editors alongside other fields. Useful for providing additional context or instructions around your fields.', 'acf' ); + $this->preview_image = acf_get_url() . '/assets/images/field-type-previews/field-preview-message.png'; + $this->defaults = array( + 'message' => '', + 'esc_html' => 0, + 'new_lines' => 'wpautop', + ); -class acf_field_message extends acf_field { - - - /* - * __construct - * - * This function will setup the field type data - * - * @type function - * @date 5/03/2014 - * @since 5.0.0 - * - * @param n/a - * @return n/a - */ - - function initialize() { - - // vars - $this->name = 'message'; - $this->label = __("Message",'acf'); - $this->category = 'layout'; - $this->defaults = array( - 'message' => '', - 'esc_html' => 0, - 'new_lines' => 'wpautop', - ); - - } - - - /* - * render_field() - * - * Create the HTML interface for your field - * - * @param $field - an array holding all the field's data - * - * @type action - * @since 3.6 - * @date 23/01/13 - */ - - function render_field( $field ) { - - // vars - $m = $field['message']; - - - // wptexturize (improves "quotes") - $m = wptexturize( $m ); - - - // esc_html - if( $field['esc_html'] ) { - - $m = esc_html( $m ); - } - - - // new lines - if( $field['new_lines'] == 'wpautop' ) { - - $m = wpautop($m); - - } elseif( $field['new_lines'] == 'br' ) { - - $m = nl2br($m); - + + + /* + * render_field() + * + * Create the HTML interface for your field + * + * @param $field - an array holding all the field's data + * + * @type action + * @since 3.6 + * @date 23/01/13 + */ + + function render_field( $field ) { + + // vars + $m = $field['message']; + + // wptexturize (improves "quotes") + $m = wptexturize( $m ); + + // esc_html + if ( $field['esc_html'] ) { + + $m = esc_html( $m ); + + } + + // new lines + if ( $field['new_lines'] == 'wpautop' ) { + + $m = wpautop( $m ); + + } elseif ( $field['new_lines'] == 'br' ) { + + $m = nl2br( $m ); + + } + + // return + echo acf_esc_html( $m ); + } - - - // return - echo acf_esc_html( $m ); - - } - - - /* - * render_field_settings() - * - * Create extra options for your field. This is rendered when editing a field. - * The value of $field['name'] can be used (like bellow) to save extra data to the $field - * - * @param $field - an array holding all the field's data - * - * @type action - * @since 3.6 - * @date 23/01/13 - */ - - function render_field_settings( $field ) { - - // default_value - acf_render_field_setting( $field, array( - 'label' => __('Message','acf'), - 'instructions' => '', - 'type' => 'textarea', - 'name' => 'message', - )); - - - // formatting - acf_render_field_setting( $field, array( - 'label' => __('New Lines','acf'), - 'instructions' => __('Controls how new lines are rendered','acf'), - 'type' => 'select', - 'name' => 'new_lines', - 'choices' => array( - 'wpautop' => __("Automatically add paragraphs",'acf'), - 'br' => __("Automatically add <br>",'acf'), - '' => __("No Formatting",'acf') - ) - )); - - - // HTML - acf_render_field_setting( $field, array( - 'label' => __('Escape HTML','acf'), - 'instructions' => __('Allow HTML markup to display as visible text instead of rendering','acf'), - 'name' => 'esc_html', - 'type' => 'true_false', - 'ui' => 1, - )); - - } - - - /* - * translate_field - * - * This function will translate field settings - * - * @type function - * @date 8/03/2016 - * @since 5.3.2 - * - * @param $field (array) - * @return $field - */ - - function translate_field( $field ) { - - // translate - $field['message'] = acf_translate( $field['message'] ); - - - // return - return $field; - - } - - - /* - * load_field() - * - * This filter is appied to the $field after it is loaded from the database - * - * @type filter - * @since 3.6 - * @date 23/01/13 - * - * @param $field - the field array holding all the field options - * - * @return $field - the field array holding all the field options - */ - function load_field( $field ) { - - // remove name to avoid caching issue - $field['name'] = ''; - - // remove instructions - $field['instructions'] = ''; - - // remove required to avoid JS issues - $field['required'] = 0; - - // set value other than 'null' to avoid ACF loading / caching issue - $field['value'] = false; - - // return - return $field; - } - -} -// initialize -acf_register_field_type( 'acf_field_message' ); + /* + * render_field_settings() + * + * Create extra options for your field. This is rendered when editing a field. + * The value of $field['name'] can be used (like bellow) to save extra data to the $field + * + * @param $field - an array holding all the field's data + * + * @type action + * @since 3.6 + * @date 23/01/13 + */ + function render_field_settings( $field ) { + acf_render_field_setting( + $field, + array( + 'label' => __( 'Message', 'acf' ), + 'instructions' => '', + 'type' => 'textarea', + 'name' => 'message', + ) + ); + + acf_render_field_setting( + $field, + array( + 'label' => __( 'New Lines', 'acf' ), + 'instructions' => __( 'Controls how new lines are rendered', 'acf' ), + 'type' => 'select', + 'name' => 'new_lines', + 'choices' => array( + 'wpautop' => __( 'Automatically add paragraphs', 'acf' ), + 'br' => __( 'Automatically add <br>', 'acf' ), + '' => __( 'No Formatting', 'acf' ), + ), + ) + ); + + acf_render_field_setting( + $field, + array( + 'label' => __( 'Escape HTML', 'acf' ), + 'instructions' => __( 'Allow HTML markup to display as visible text instead of rendering', 'acf' ), + 'name' => 'esc_html', + 'type' => 'true_false', + 'ui' => 1, + ) + ); + } + + /* + * translate_field + * + * This function will translate field settings + * + * @type function + * @date 8/03/2016 + * @since 5.3.2 + * + * @param $field (array) + * @return $field + */ + + function translate_field( $field ) { + + // translate + $field['message'] = acf_translate( $field['message'] ); + + // return + return $field; + + } + + + /* + * load_field() + * + * This filter is appied to the $field after it is loaded from the database + * + * @type filter + * @since 3.6 + * @date 23/01/13 + * + * @param $field - the field array holding all the field options + * + * @return $field - the field array holding all the field options + */ + function load_field( $field ) { + + // remove name to avoid caching issue + $field['name'] = ''; + + // remove instructions + $field['instructions'] = ''; + + // remove required to avoid JS issues + $field['required'] = 0; + + // set value other than 'null' to avoid ACF loading / caching issue + $field['value'] = false; + + // return + return $field; + } + + } + + + // initialize + acf_register_field_type( 'acf_field_message' ); endif; // class_exists check -?> \ No newline at end of file + diff --git a/includes/fields/class-acf-field-number.php b/includes/fields/class-acf-field-number.php index 0395471..1d35cf1 100644 --- a/includes/fields/class-acf-field-number.php +++ b/includes/fields/class-acf-field-number.php @@ -1,304 +1,360 @@ name = 'number'; + $this->label = __( 'Number', 'acf' ); + $this->description = __( 'An input limited to numerical values.', 'acf' ); + $this->preview_image = acf_get_url() . '/assets/images/field-type-previews/field-preview-number.png'; + $this->doc_url = acf_add_url_utm_tags( 'https://www.advancedcustomfields.com/resources/number/', 'docs', 'field-type-selection' ); + $this->defaults = array( + 'default_value' => '', + 'min' => '', + 'max' => '', + 'step' => '', + 'placeholder' => '', + 'prepend' => '', + 'append' => '', + ); -class acf_field_number extends acf_field { - - - /* - * initialize - * - * This function will setup the field type data - * - * @type function - * @date 5/03/2014 - * @since 5.0.0 - * - * @param n/a - * @return n/a - */ - - function initialize() { - - // vars - $this->name = 'number'; - $this->label = __("Number",'acf'); - $this->defaults = array( - 'default_value' => '', - 'min' => '', - 'max' => '', - 'step' => '', - 'placeholder' => '', - 'prepend' => '', - 'append' => '' - ); - - } - - - /* - * render_field() - * - * Create the HTML interface for your field - * - * @param $field - an array holding all the field's data - * - * @type action - * @since 3.6 - * @date 23/01/13 - */ - - function render_field( $field ) { - - // vars - $atts = array(); - $keys = array( 'type', 'id', 'class', 'name', 'value', 'min', 'max', 'step', 'placeholder', 'pattern' ); - $keys2 = array( 'readonly', 'disabled', 'required' ); - $html = ''; - - - // step - if( !$field['step'] ) { - $field['step'] = 'any'; } - - - // prepend - if( $field['prepend'] !== '' ) { - - $field['class'] .= ' acf-is-prepended'; - $html .= '
                                          ' . acf_esc_html($field['prepend']) . '
                                          '; - - } - - - // append - if( $field['append'] !== '' ) { - - $field['class'] .= ' acf-is-appended'; - $html .= '
                                          ' . acf_esc_html($field['append']) . '
                                          '; - - } - - - // atts (value="123") - foreach( $keys as $k ) { - if( isset($field[ $k ]) ) $atts[ $k ] = $field[ $k ]; - } - - - // atts2 (disabled="disabled") - foreach( $keys2 as $k ) { - if( !empty($field[ $k ]) ) $atts[ $k ] = $k; - } - - - // remove empty atts - $atts = acf_clean_atts( $atts ); - - - // render - $html .= '
                                          ' . acf_get_text_input( $atts ) . '
                                          '; - - - // return - echo $html; - - } - - - /* - * render_field_settings() - * - * Create extra options for your field. This is rendered when editing a field. - * The value of $field['name'] can be used (like bellow) to save extra data to the $field - * - * @type action - * @since 3.6 - * @date 23/01/13 - * - * @param $field - an array holding all the field's data - */ - - function render_field_settings( $field ) { - - // default_value - acf_render_field_setting( $field, array( - 'label' => __('Default Value','acf'), - 'instructions' => __('Appears when creating a new post','acf'), - 'type' => 'text', - 'name' => 'default_value', - )); - - - // placeholder - acf_render_field_setting( $field, array( - 'label' => __('Placeholder Text','acf'), - 'instructions' => __('Appears within the input','acf'), - 'type' => 'text', - 'name' => 'placeholder', - )); - - - // prepend - acf_render_field_setting( $field, array( - 'label' => __('Prepend','acf'), - 'instructions' => __('Appears before the input','acf'), - 'type' => 'text', - 'name' => 'prepend', - )); - - - // append - acf_render_field_setting( $field, array( - 'label' => __('Append','acf'), - 'instructions' => __('Appears after the input','acf'), - 'type' => 'text', - 'name' => 'append', - )); - - - // min - acf_render_field_setting( $field, array( - 'label' => __('Minimum Value','acf'), - 'instructions' => '', - 'type' => 'number', - 'name' => 'min', - )); - - - // max - acf_render_field_setting( $field, array( - 'label' => __('Maximum Value','acf'), - 'instructions' => '', - 'type' => 'number', - 'name' => 'max', - )); - - - // max - acf_render_field_setting( $field, array( - 'label' => __('Step Size','acf'), - 'instructions' => '', - 'type' => 'number', - 'name' => 'step', - )); - - } - - - /* - * validate_value - * - * description - * - * @type function - * @date 11/02/2014 - * @since 5.0.0 - * - * @param $post_id (int) - * @return $post_id (int) - */ - - function validate_value( $valid, $value, $field, $input ){ - - // remove ',' - if( acf_str_exists(',', $value) ) { - - $value = str_replace(',', '', $value); - - } - - - // if value is not numeric... - if( !is_numeric($value) ) { - - // allow blank to be saved - if( !empty($value) ) { - - $valid = __('Value must be a number', 'acf'); - + + + /* + * render_field() + * + * Create the HTML interface for your field + * + * @param $field - an array holding all the field's data + * + * @type action + * @since 3.6 + * @date 23/01/13 + */ + + function render_field( $field ) { + + // vars + $atts = array(); + $keys = array( 'type', 'id', 'class', 'name', 'value', 'min', 'max', 'step', 'placeholder', 'pattern' ); + $keys2 = array( 'readonly', 'disabled', 'required' ); + $html = ''; + + // step + if ( ! $field['step'] ) { + $field['step'] = 'any'; } - - - // return early + + // prepend + if ( $field['prepend'] !== '' ) { + + $field['class'] .= ' acf-is-prepended'; + $html .= '
                                          ' . acf_esc_html( $field['prepend'] ) . '
                                          '; + + } + + // append + if ( $field['append'] !== '' ) { + + $field['class'] .= ' acf-is-appended'; + $html .= '
                                          ' . acf_esc_html( $field['append'] ) . '
                                          '; + + } + + // atts (value="123") + foreach ( $keys as $k ) { + if ( isset( $field[ $k ] ) ) { + $atts[ $k ] = $field[ $k ]; + } + } + + // atts2 (disabled="disabled") + foreach ( $keys2 as $k ) { + if ( ! empty( $field[ $k ] ) ) { + $atts[ $k ] = $k; + } + } + + // remove empty atts + $atts = acf_clean_atts( $atts ); + + // render + $html .= '
                                          ' . acf_get_text_input( $atts ) . '
                                          '; + + // return + echo $html; + + } + + + /* + * render_field_settings() + * + * Create extra options for your field. This is rendered when editing a field. + * The value of $field['name'] can be used (like bellow) to save extra data to the $field + * + * @type action + * @since 3.6 + * @date 23/01/13 + * + * @param $field - an array holding all the field's data + */ + + function render_field_settings( $field ) { + + // default_value + acf_render_field_setting( + $field, + array( + 'label' => __( 'Default Value', 'acf' ), + 'instructions' => __( 'Appears when creating a new post', 'acf' ), + 'type' => 'text', + 'name' => 'default_value', + ) + ); + } + + /** + * Renders the field settings used in the "Validation" tab. + * + * @since 6.0 + * + * @param array $field The field settings array. + * @return void + */ + function render_field_validation_settings( $field ) { + acf_render_field_setting( + $field, + array( + 'label' => __( 'Minimum Value', 'acf' ), + 'instructions' => '', + 'type' => 'number', + 'name' => 'min', + ) + ); + + acf_render_field_setting( + $field, + array( + 'label' => __( 'Maximum Value', 'acf' ), + 'instructions' => '', + 'type' => 'number', + 'name' => 'max', + ) + ); + } + + /** + * Renders the field settings used in the "Presentation" tab. + * + * @since 6.0 + * + * @param array $field The field settings array. + * @return void + */ + function render_field_presentation_settings( $field ) { + acf_render_field_setting( + $field, + array( + 'label' => __( 'Placeholder Text', 'acf' ), + 'instructions' => __( 'Appears within the input', 'acf' ), + 'type' => 'text', + 'name' => 'placeholder', + ) + ); + + acf_render_field_setting( + $field, + array( + 'label' => __( 'Step Size', 'acf' ), + 'instructions' => '', + 'type' => 'number', + 'name' => 'step', + ) + ); + + acf_render_field_setting( + $field, + array( + 'label' => __( 'Prepend', 'acf' ), + 'instructions' => __( 'Appears before the input', 'acf' ), + 'type' => 'text', + 'name' => 'prepend', + ) + ); + + acf_render_field_setting( + $field, + array( + 'label' => __( 'Append', 'acf' ), + 'instructions' => __( 'Appears after the input', 'acf' ), + 'type' => 'text', + 'name' => 'append', + ) + ); + } + + /* + * validate_value + * + * description + * + * @type function + * @date 11/02/2014 + * @since 5.0.0 + * + * @param $post_id (int) + * @return $post_id (int) + */ + + function validate_value( $valid, $value, $field, $input ) { + + // remove ',' + if ( acf_str_exists( ',', $value ) ) { + + $value = str_replace( ',', '', $value ); + + } + + // if value is not numeric... + if ( ! is_numeric( $value ) ) { + + // allow blank to be saved + if ( ! empty( $value ) ) { + + $valid = __( 'Value must be a number', 'acf' ); + + } + + // return early + return $valid; + + } + + // convert + $value = floatval( $value ); + + // min + if ( is_numeric( $field['min'] ) && $value < floatval( $field['min'] ) ) { + + $valid = sprintf( __( 'Value must be equal to or higher than %d', 'acf' ), $field['min'] ); + + } + + // max + if ( is_numeric( $field['max'] ) && $value > floatval( $field['max'] ) ) { + + $valid = sprintf( __( 'Value must be equal to or lower than %d', 'acf' ), $field['max'] ); + + } + + // return return $valid; - + } - - - // convert - $value = floatval($value); - - - // min - if( is_numeric($field['min']) && $value < floatval($field['min'])) { - - $valid = sprintf(__('Value must be equal to or higher than %d', 'acf'), $field['min'] ); - - } - - - // max - if( is_numeric($field['max']) && $value > floatval($field['max']) ) { - - $valid = sprintf(__('Value must be equal to or lower than %d', 'acf'), $field['max'] ); - - } - - - // return - return $valid; - - } - - - /* - * update_value() - * - * This filter is appied to the $value before it is updated in the db - * - * @type filter - * @since 3.6 - * @date 23/01/13 - * - * @param $value - the value which will be saved in the database - * @param $field - the field array holding all the field options - * @param $post_id - the $post_id of which the value will be saved - * - * @return $value - the modified value - */ - - function update_value( $value, $post_id, $field ) { - - // no formatting needed for empty value - if( empty($value) ) { - + + + /* + * update_value() + * + * This filter is appied to the $value before it is updated in the db + * + * @type filter + * @since 3.6 + * @date 23/01/13 + * + * @param $value - the value which will be saved in the database + * @param $field - the field array holding all the field options + * @param $post_id - the $post_id of which the value will be saved + * + * @return $value - the modified value + */ + + function update_value( $value, $post_id, $field ) { + + // no formatting needed for empty value + if ( empty( $value ) ) { + + return $value; + + } + + // remove ',' + if ( acf_str_exists( ',', $value ) ) { + + $value = str_replace( ',', '', $value ); + + } + + // return return $value; - + } - - - // remove ',' - if( acf_str_exists(',', $value) ) { - - $value = str_replace(',', '', $value); - + + /** + * Return the schema array for the REST API. + * + * @param array $field + * @return array + */ + public function get_rest_schema( array $field ) { + $schema = array( + 'type' => array( 'number', 'null' ), + 'required' => ! empty( $field['required'] ), + ); + + if ( ! empty( $field['min'] ) ) { + $schema['minimum'] = (float) $field['min']; + } + + if ( ! empty( $field['max'] ) ) { + $schema['maximum'] = (float) $field['max']; + } + + if ( isset( $field['default_value'] ) && is_numeric( $field['default_value'] ) ) { + $schema['default'] = (float) $field['default_value']; + } + + return $schema; } - - - // return - return $value; - + + /** + * Apply basic formatting to prepare the value for default REST output. + * + * @param mixed $value + * @param string|int $post_id + * @param array $field + * @return mixed + */ + public function format_value_for_rest( $value, $post_id, array $field ) { + return acf_format_numerics( $value ); + } + } - - -} -// initialize -acf_register_field_type( 'acf_field_number' ); + // initialize + acf_register_field_type( 'acf_field_number' ); endif; // class_exists check -?> \ No newline at end of file + diff --git a/includes/fields/class-acf-field-oembed.php b/includes/fields/class-acf-field-oembed.php index 6e59465..cd0c6f2 100644 --- a/includes/fields/class-acf-field-oembed.php +++ b/includes/fields/class-acf-field-oembed.php @@ -1,219 +1,229 @@ name = 'oembed'; + $this->label = __( 'oEmbed', 'acf' ); + $this->category = 'content'; + $this->description = __( 'An interactive component for embedding videos, images, tweets, audio and other content by making use of the native WordPress oEmbed functionality.', 'acf' ); + $this->preview_image = acf_get_url() . '/assets/images/field-type-previews/field-preview-oembed.png'; + $this->doc_url = acf_add_url_utm_tags( 'https://www.advancedcustomfields.com/resources/oembed/', 'docs', 'field-type-selection' ); + $this->defaults = array( + 'width' => '', + 'height' => '', + ); + $this->width = 640; + $this->height = 390; + + // extra + add_action( 'wp_ajax_acf/fields/oembed/search', array( $this, 'ajax_query' ) ); + add_action( 'wp_ajax_nopriv_acf/fields/oembed/search', array( $this, 'ajax_query' ) ); -class acf_field_oembed extends acf_field { - - - /* - * __construct - * - * This function will setup the field type data - * - * @type function - * @date 5/03/2014 - * @since 5.0.0 - * - * @param n/a - * @return n/a - */ - - function initialize() { - - // vars - $this->name = 'oembed'; - $this->label = __("oEmbed",'acf'); - $this->category = 'content'; - $this->defaults = array( - 'width' => '', - 'height' => '', - ); - $this->width = 640; - $this->height = 390; - - - // extra - add_action('wp_ajax_acf/fields/oembed/search', array($this, 'ajax_query')); - add_action('wp_ajax_nopriv_acf/fields/oembed/search', array($this, 'ajax_query')); - - } - - - /* - * prepare_field - * - * This function will prepare the field for input - * - * @type function - * @date 14/2/17 - * @since 5.5.8 - * - * @param $field (array) - * @return (int) - */ - - function prepare_field( $field ) { - - // defaults - if( !$field['width'] ) $field['width'] = $this->width; - if( !$field['height'] ) $field['height'] = $this->height; - - - // return - return $field; - - } - - - /* - * wp_oembed_get - * - * description - * - * @type function - * @date 24/01/2014 - * @since 5.0.0 - * - * @param $post_id (int) - * @return $post_id (int) - */ - - function wp_oembed_get( $url = '', $width = 0, $height = 0 ) { - - // vars - $embed = ''; - $res = array( - 'width' => $width, - 'height' => $height - ); - - - // get emebed - $embed = @wp_oembed_get( $url, $res ); - - - // try shortcode - if( !$embed ) { - - // global - global $wp_embed; - - - // get emebed - $embed = $wp_embed->shortcode($res, $url); - } - - - // return - return $embed; - } + + + /* + * prepare_field + * + * This function will prepare the field for input + * + * @type function + * @date 14/2/17 + * @since 5.5.8 + * + * @param $field (array) + * @return (int) + */ + + function prepare_field( $field ) { + + // defaults + if ( ! $field['width'] ) { + $field['width'] = $this->width; + } + if ( ! $field['height'] ) { + $field['height'] = $this->height; + } + + // return + return $field; + + } + + /** + * Attempts to fetch the HTML for the provided URL using oEmbed. + * + * @date 24/01/2014 + * @since 5.0.0 + * + * @param string $url The URL that should be embedded. + * @param int|string $width Optional maxwidth value passed to the provider URL. + * @param int|string $height Optional maxheight value passed to the provider URL. + * @return string|false The embedded HTML on success, false on failure. + */ + function wp_oembed_get( $url = '', $width = 0, $height = 0 ) { + $embed = false; + $res = array( + 'width' => $width, + 'height' => $height, + ); + + if ( function_exists( 'wp_oembed_get' ) ) { + $embed = wp_oembed_get( $url, $res ); + } + + // try shortcode + if ( ! $embed ) { + global $wp_embed; + $embed = $wp_embed->shortcode( $res, $url ); + } + + return $embed; + } + + /* + * ajax_query + * + * description + * + * @type function + * @date 24/10/13 + * @since 5.0.0 + * + * @param $post_id (int) + * @return $post_id (int) + */ + + function ajax_query() { + + // validate + if ( ! acf_verify_ajax() ) { + die(); + } + + // get choices + $response = $this->get_ajax_query( $_POST ); + + // return + wp_send_json( $response ); + + } + + + /* + * get_ajax_query + * + * This function will return an array of data formatted for use in a select2 AJAX response + * + * @type function + * @date 15/10/2014 + * @since 5.0.9 + * + * @param $options (array) + * @return (array) + */ + + function get_ajax_query( $args = array() ) { + + // defaults + $args = acf_parse_args( + $args, + array( + 's' => '', + 'field_key' => '', + ) + ); + + // load field + $field = acf_get_field( $args['field_key'] ); + if ( ! $field ) { + return false; + } + + // prepare field to correct width and height + $field = $this->prepare_field( $field ); + + // vars + $response = array( + 'url' => $args['s'], + 'html' => $this->wp_oembed_get( $args['s'], $field['width'], $field['height'] ), + ); + + // return + return $response; + + } + + + /* + * render_field() + * + * Create the HTML interface for your field + * + * @param $field - an array holding all the field's data + * + * @type action + * @since 3.6 + * @date 23/01/13 + */ + + function render_field( $field ) { + + // atts + $atts = array( + 'class' => 'acf-oembed', + ); + + // _e("No embed found for the given URL.", 'acf'); + + // value + if ( $field['value'] ) { + $atts['class'] .= ' has-value'; + } + + ?> +
                                          > - - /* - * ajax_query - * - * description - * - * @type function - * @date 24/10/13 - * @since 5.0.0 - * - * @param $post_id (int) - * @return $post_id (int) - */ - - function ajax_query() { - - // validate - if( !acf_verify_ajax() ) die(); - - - // get choices - $response = $this->get_ajax_query( $_POST ); - - - // return - wp_send_json($response); - - } - - - /* - * get_ajax_query - * - * This function will return an array of data formatted for use in a select2 AJAX response - * - * @type function - * @date 15/10/2014 - * @since 5.0.9 - * - * @param $options (array) - * @return (array) - */ - - function get_ajax_query( $args = array() ) { - - // defaults - $args = acf_parse_args($args, array( - 's' => '', - 'field_key' => '', - )); - - - // load field - $field = acf_get_field( $args['field_key'] ); - if( !$field ) return false; - - - // prepare field to correct width and height - $field = $this->prepare_field($field); - - - // vars - $response = array( - 'url' => $args['s'], - 'html' => $this->wp_oembed_get($args['s'], $field['width'], $field['height']) - ); - - - // return - return $response; - - } - - - /* - * render_field() - * - * Create the HTML interface for your field - * - * @param $field - an array holding all the field's data - * - * @type action - * @since 3.6 - * @date 23/01/13 - */ - - function render_field( $field ) { - - // atts - $atts = array( - 'class' => 'acf-oembed', - ); - - // _e("No embed found for the given URL.", 'acf'); - - // value - if( $field['value'] ) $atts['class'] .= ' has-value'; - -?> -
                                          > - - 'input-value', 'name' => $field['name'], 'value' => $field['value'] )); ?> + 'input-value', + 'name' => $field['name'], + 'value' => $field['value'], + ) + ); + ?>
                                          - 'input-search', 'value' => $field['value'], 'placeholder' => __("Enter URL", 'acf'), 'autocomplete' => 'off' )); ?> + 'input-search', + 'value' => $field['value'], + 'placeholder' => __( 'Enter URL', 'acf' ), + 'autocomplete' => 'off', + ) + ); + ?>
                                          @@ -221,100 +231,109 @@ class acf_field_oembed extends acf_field {
                                          - wp_oembed_get($field['value'], $field['width'], $field['height']); - } ?> + wp_oembed_get( $field['value'], $field['width'], $field['height'] ); + } + ?>
                                          - __('Embed Size','acf'), - 'type' => 'text', - 'name' => 'width', - 'prepend' => __('Width', 'acf'), - 'append' => 'px', - 'placeholder' => $this->width - )); - - - // height - acf_render_field_setting( $field, array( - 'label' => __('Embed Size','acf'), - 'type' => 'text', - 'name' => 'height', - 'prepend' => __('Height', 'acf'), - 'append' => 'px', - 'placeholder' => $this->height, - '_append' => 'width' - )); - - } - - - /* - * format_value() - * - * This filter is appied to the $value after it is loaded from the db and before it is returned to the template - * - * @type filter - * @since 3.6 - * @date 23/01/13 - * - * @param $value (mixed) the value which was loaded from the database - * @param $post_id (mixed) the $post_id from which the value was loaded - * @param $field (array) the field array holding all the field options - * - * @return $value (mixed) the modified value - */ - - function format_value( $value, $post_id, $field ) { - - // bail early if no value - if( empty($value) ) return $value; - - - // prepare field to correct width and height - $field = $this->prepare_field($field); - - - // get oembed - $value = $this->wp_oembed_get($value, $field['width'], $field['height']); - - - // return - return $value; - - } - -} + __( 'Embed Size', 'acf' ), + 'type' => 'text', + 'name' => 'width', + 'prepend' => __( 'Width', 'acf' ), + 'append' => 'px', + 'placeholder' => $this->width, + ) + ); + + acf_render_field_setting( + $field, + array( + 'label' => __( 'Embed Size', 'acf' ), + 'type' => 'text', + 'name' => 'height', + 'prepend' => __( 'Height', 'acf' ), + 'append' => 'px', + 'placeholder' => $this->height, + '_append' => 'width', + ) + ); + } + + /** + * format_value() + * + * This filter is appied to the $value after it is loaded from the db and before it is returned to the template + * + * @type filter + * @since 3.6 + * @date 23/01/13 + * + * @param $value (mixed) the value which was loaded from the database + * @param $post_id (mixed) the post_id from which the value was loaded + * @param $field (array) the field array holding all the field options + * + * @return $value (mixed) the modified value + */ + function format_value( $value, $post_id, $field ) { + // bail early if no value + if ( empty( $value ) ) { + return $value; + } + + // prepare field to correct width and height + $field = $this->prepare_field( $field ); + + // get oembed + $value = $this->wp_oembed_get( $value, $field['width'], $field['height'] ); + + // return + return $value; + } + + /** + * Return the schema array for the REST API. + * + * @param array $field + * @return array + */ + public function get_rest_schema( array $field ) { + $schema = parent::get_rest_schema( $field ); + $schema['format'] = 'uri'; + + return $schema; + } + } + + + // initialize + acf_register_field_type( 'acf_field_oembed' ); endif; // class_exists check -?> \ No newline at end of file +?> diff --git a/includes/fields/class-acf-field-output.php b/includes/fields/class-acf-field-output.php index 25ff37c..43b6c4c 100644 --- a/includes/fields/class-acf-field-output.php +++ b/includes/fields/class-acf-field-output.php @@ -1,77 +1,78 @@ name = 'output'; + $this->label = 'output'; + $this->public = false; + $this->defaults = array( + 'html' => false, + ); -class acf_field_output extends acf_field { - - - /* - * __construct - * - * This function will setup the field type data - * - * @type function - * @date 5/03/2014 - * @since 5.0.0 - * - * @param n/a - * @return n/a - */ - - function initialize() { - - // vars - $this->name = 'output'; - $this->label = 'output'; - $this->public = false; - $this->defaults = array( - 'html' => false - ); - - } - - - /* - * render_field() - * - * Create the HTML interface for your field - * - * @param $field (array) the $field being rendered - * - * @type action - * @since 3.6 - * @date 23/01/13 - * - * @param $field (array) the $field being edited - * @return n/a - */ - - function render_field( $field ) { - - // bail early if no html - if( !$field['html'] ) return; - - - // html - if( is_string($field['html']) && !function_exists($field['html']) ) { - - echo $field['html']; - - // function - } else { - - call_user_func_array($field['html'], array($field)); - } - + + + /* + * render_field() + * + * Create the HTML interface for your field + * + * @param $field (array) the $field being rendered + * + * @type action + * @since 3.6 + * @date 23/01/13 + * + * @param $field (array) the $field being edited + * @return n/a + */ + + function render_field( $field ) { + + // bail early if no html + if ( ! $field['html'] ) { + return; + } + + // html + if ( is_string( $field['html'] ) && ! function_exists( $field['html'] ) ) { + + echo $field['html']; + + // function + } else { + + call_user_func_array( $field['html'], array( $field ) ); + + } + + } + } - -} -// initialize -acf_register_field_type( 'acf_field_output' ); + // initialize + acf_register_field_type( 'acf_field_output' ); endif; // class_exists check -?> \ No newline at end of file + diff --git a/includes/fields/class-acf-field-page_link.php b/includes/fields/class-acf-field-page_link.php index 2cf62be..38843ed 100644 --- a/includes/fields/class-acf-field-page_link.php +++ b/includes/fields/class-acf-field-page_link.php @@ -1,656 +1,745 @@ name = 'page_link'; + $this->label = __( 'Page Link', 'acf' ); + $this->category = 'relational'; + $this->description = __( 'An interactive dropdown to select one or more posts, pages, custom post type items or archive URLs, with the option to search.', 'acf' ); + $this->preview_image = acf_get_url() . '/assets/images/field-type-previews/field-preview-page-link.png'; + $this->doc_url = acf_add_url_utm_tags( 'https://www.advancedcustomfields.com/resources/page-link/', 'docs', 'field-type-selection' ); + $this->defaults = array( + 'post_type' => array(), + 'taxonomy' => array(), + 'allow_null' => 0, + 'multiple' => 0, + 'allow_archives' => 1, + ); + + // extra + add_action( 'wp_ajax_acf/fields/page_link/query', array( $this, 'ajax_query' ) ); + add_action( 'wp_ajax_nopriv_acf/fields/page_link/query', array( $this, 'ajax_query' ) ); -class acf_field_page_link extends acf_field { - - - /* - * __construct - * - * This function will setup the field type data - * - * @type function - * @date 5/03/2014 - * @since 5.0.0 - * - * @param n/a - * @return n/a - */ - - function initialize() { - - // vars - $this->name = 'page_link'; - $this->label = __("Page Link",'acf'); - $this->category = 'relational'; - $this->defaults = array( - 'post_type' => array(), - 'taxonomy' => array(), - 'allow_null' => 0, - 'multiple' => 0, - 'allow_archives' => 1 - ); - - - // extra - add_action('wp_ajax_acf/fields/page_link/query', array($this, 'ajax_query')); - add_action('wp_ajax_nopriv_acf/fields/page_link/query', array($this, 'ajax_query')); - - } - - - /* - * ajax_query - * - * description - * - * @type function - * @date 24/10/13 - * @since 5.0.0 - * - * @param $post_id (int) - * @return $post_id (int) - */ - - function ajax_query() { - - // validate - if( !acf_verify_ajax() ) die(); - - - // defaults - $options = acf_parse_args($_POST, array( - 'post_id' => 0, - 's' => '', - 'field_key' => '', - 'paged' => 1 - )); - - - // vars - $results = array(); - $args = array(); - $s = false; - $is_search = false; - - - // paged - $args['posts_per_page'] = 20; - $args['paged'] = $options['paged']; - - - // search - if( $options['s'] !== '' ) { - - // strip slashes (search may be integer) - $s = wp_unslash( strval($options['s']) ); - - - // update vars - $args['s'] = $s; - $is_search = true; - } - - - // load field - $field = acf_get_field( $options['field_key'] ); - if( !$field ) die(); - - - // update $args - if( !empty($field['post_type']) ) { - - $args['post_type'] = acf_get_array( $field['post_type'] ); - - } else { - - $args['post_type'] = acf_get_post_types(); - - } - - // create tax queries - if( !empty($field['taxonomy']) ) { - - // append to $args - $args['tax_query'] = array(); - - - // decode terms - $taxonomies = acf_decode_taxonomy_terms( $field['taxonomy'] ); - - - // now create the tax queries - foreach( $taxonomies as $taxonomy => $terms ) { - - $args['tax_query'][] = array( - 'taxonomy' => $taxonomy, - 'field' => 'slug', - 'terms' => $terms, - ); - + + + /* + * ajax_query + * + * description + * + * @type function + * @date 24/10/13 + * @since 5.0.0 + * + * @param $post_id (int) + * @return $post_id (int) + */ + + function ajax_query() { + + // validate + if ( ! acf_verify_ajax() ) { + die(); } + + // defaults + $options = acf_parse_args( + $_POST, + array( + 'post_id' => 0, + 's' => '', + 'field_key' => '', + 'paged' => 1, + ) + ); + + // vars + $results = array(); + $args = array(); + $s = false; + $is_search = false; + + // paged + $args['posts_per_page'] = 20; + $args['paged'] = $options['paged']; + + // search + if ( $options['s'] !== '' ) { + + // strip slashes (search may be integer) + $s = wp_unslash( strval( $options['s'] ) ); + + // update vars + $args['s'] = $s; + $is_search = true; + + } + + // load field + $field = acf_get_field( $options['field_key'] ); + if ( ! $field ) { + die(); + } + + // update $args + if ( ! empty( $field['post_type'] ) ) { + + $args['post_type'] = acf_get_array( $field['post_type'] ); + + } else { + + $args['post_type'] = acf_get_post_types(); + + } + + // post status + if ( ! empty( $options['post_status'] ) ) { + + $args['post_status'] = acf_get_array( $options['post_status'] ); + + } elseif ( ! empty( $field['post_status'] ) ) { + + $args['post_status'] = acf_get_array( $field['post_status'] ); + + } + + // create tax queries + if ( ! empty( $field['taxonomy'] ) ) { + + // append to $args + $args['tax_query'] = array(); + + // decode terms + $taxonomies = acf_decode_taxonomy_terms( $field['taxonomy'] ); + + // now create the tax queries + foreach ( $taxonomies as $taxonomy => $terms ) { + + $args['tax_query'][] = array( + 'taxonomy' => $taxonomy, + 'field' => 'slug', + 'terms' => $terms, + ); + + } + } + + // filters + $args = apply_filters( 'acf/fields/page_link/query', $args, $field, $options['post_id'] ); + $args = apply_filters( 'acf/fields/page_link/query/name=' . $field['name'], $args, $field, $options['post_id'] ); + $args = apply_filters( 'acf/fields/page_link/query/key=' . $field['key'], $args, $field, $options['post_id'] ); + + // add archives to $results + if ( $field['allow_archives'] && $args['paged'] == 1 ) { + + // Generate unique list of URLs. + $links = array(); + $links[] = home_url(); + foreach ( $args['post_type'] as $post_type ) { + $links[] = get_post_type_archive_link( $post_type ); + } + $links = array_filter( $links ); + $links = array_unique( $links ); + + // Convert list into choices. + $children = array(); + foreach ( $links as $link ) { + + // Ignore if search does not match. + if ( $is_search && stripos( $link, $s ) === false ) { + continue; + } + $children[] = array( + 'id' => $link, + 'text' => $link, + ); + } + if ( $children ) { + $results[] = array( + 'text' => __( 'Archives', 'acf' ), + 'children' => $children, + ); + } + } + + // get posts grouped by post type + $groups = acf_get_grouped_posts( $args ); + + // loop + if ( ! empty( $groups ) ) { + + foreach ( array_keys( $groups ) as $group_title ) { + + // vars + $posts = acf_extract_var( $groups, $group_title ); + + // data + $data = array( + 'text' => $group_title, + 'children' => array(), + ); + + // convert post objects to post titles + foreach ( array_keys( $posts ) as $post_id ) { + + $posts[ $post_id ] = $this->get_post_title( $posts[ $post_id ], $field, $options['post_id'], $is_search ); + + } + + // order posts by search + if ( $is_search && empty( $args['orderby'] ) && isset( $args['s'] ) ) { + + $posts = acf_order_by_search( $posts, $args['s'] ); + + } + + // append to $data + foreach ( array_keys( $posts ) as $post_id ) { + + $data['children'][] = $this->get_post_result( $post_id, $posts[ $post_id ] ); + + } + + // append to $results + $results[] = $data; + + } + } + + // return + acf_send_ajax_results( + array( + 'results' => $results, + 'limit' => $args['posts_per_page'], + ) + ); + } - - - // filters - $args = apply_filters('acf/fields/page_link/query', $args, $field, $options['post_id']); - $args = apply_filters('acf/fields/page_link/query/name=' . $field['name'], $args, $field, $options['post_id'] ); - $args = apply_filters('acf/fields/page_link/query/key=' . $field['key'], $args, $field, $options['post_id'] ); - - - // add archives to $results - if( $field['allow_archives'] && $args['paged'] == 1 ) { - - // Generate unique list of URLs. + + + /* + * get_post_result + * + * This function will return an array containing id, text and maybe description data + * + * @type function + * @date 7/07/2016 + * @since 5.4.0 + * + * @param $id (mixed) + * @param $text (string) + * @return (array) + */ + + function get_post_result( $id, $text ) { + + // vars + $result = array( + 'id' => $id, + 'text' => $text, + ); + + // look for parent + $search = '| ' . __( 'Parent', 'acf' ) . ':'; + $pos = strpos( $text, $search ); + + if ( $pos !== false ) { + + $result['description'] = substr( $text, $pos + 2 ); + $result['text'] = substr( $text, 0, $pos ); + + } + + // return + return $result; + + } + + + /* + * get_post_title + * + * This function returns the HTML for a result + * + * @type function + * @date 1/11/2013 + * @since 5.0.0 + * + * @param $post (object) + * @param $field (array) + * @param $post_id (int) the post_id to which this value is saved to + * @return (string) + */ + + function get_post_title( $post, $field, $post_id = 0, $is_search = 0 ) { + + // get post_id + if ( ! $post_id ) { + $post_id = acf_get_form_data( 'post_id' ); + } + + // vars + $title = acf_get_post_title( $post, $is_search ); + + // filters + $title = apply_filters( 'acf/fields/page_link/result', $title, $post, $field, $post_id ); + $title = apply_filters( 'acf/fields/page_link/result/name=' . $field['_name'], $title, $post, $field, $post_id ); + $title = apply_filters( 'acf/fields/page_link/result/key=' . $field['key'], $title, $post, $field, $post_id ); + + // return + return $title; + + } + + + /* + * get_posts + * + * This function will return an array of posts for a given field value + * + * @type function + * @date 13/06/2014 + * @since 5.0.0 + * + * @param $value (array) + * @return $value + */ + + function get_posts( $value, $field ) { + + // force value to array + $value = acf_get_array( $value ); + + // get selected post ID's + $post__in = array(); + + foreach ( $value as $k => $v ) { + + if ( is_numeric( $v ) ) { + + // append to $post__in + $post__in[] = (int) $v; + + } + } + + // bail early if no posts + if ( empty( $post__in ) ) { + + return $value; + + } + + // get posts + $posts = acf_get_posts( + array( + 'post__in' => $post__in, + 'post_type' => $field['post_type'], + ) + ); + + // override value with post + $return = array(); + + // append to $return + foreach ( $value as $k => $v ) { + + if ( is_numeric( $v ) ) { + + // extract first post + $post = array_shift( $posts ); + + // append + if ( $post ) { + + $return[] = $post; + + } + } else { + + $return[] = $v; + + } + } + + // return + return $return; + + } + + + /* + * render_field() + * + * Create the HTML interface for your field + * + * @param $field - an array holding all the field's data + * + * @type action + * @since 3.6 + * @date 23/01/13 + */ + + function render_field( $field ) { + + // Change Field into a select + $field['type'] = 'select'; + $field['ui'] = 1; + $field['ajax'] = 1; + $field['choices'] = array(); + + // populate choices if value exists + if ( ! empty( $field['value'] ) ) { + + // get posts + $posts = $this->get_posts( $field['value'], $field ); + + // set choices + if ( ! empty( $posts ) ) { + + foreach ( array_keys( $posts ) as $i ) { + + // vars + $post = acf_extract_var( $posts, $i ); + + if ( is_object( $post ) ) { + + // append to choices + $field['choices'][ $post->ID ] = $this->get_post_title( $post, $field ); + + } else { + + // append to choices + $field['choices'][ $post ] = $post; + + } + } + } + } + + // render + acf_render_field( $field ); + } + + + /* + * render_field_settings() + * + * Create extra options for your field. This is rendered when editing a field. + * The value of $field['name'] can be used (like bellow) to save extra data to the $field + * + * @type action + * @since 3.6 + * @date 23/01/13 + * + * @param $field - an array holding all the field's data + */ + function render_field_settings( $field ) { + acf_render_field_setting( + $field, + array( + 'label' => __( 'Filter by Post Type', 'acf' ), + 'instructions' => '', + 'type' => 'select', + 'name' => 'post_type', + 'choices' => acf_get_pretty_post_types(), + 'multiple' => 1, + 'ui' => 1, + 'allow_null' => 1, + 'placeholder' => __( 'All post types', 'acf' ), + ) + ); + + acf_render_field_setting( + $field, + array( + 'label' => __( 'Filter by Post Status', 'acf' ), + 'instructions' => '', + 'type' => 'select', + 'name' => 'post_status', + 'choices' => acf_get_pretty_post_statuses(), + 'multiple' => 1, + 'ui' => 1, + 'allow_null' => 1, + 'placeholder' => __( 'Any post status', 'acf' ), + ) + ); + + acf_render_field_setting( + $field, + array( + 'label' => __( 'Filter by Taxonomy', 'acf' ), + 'instructions' => '', + 'type' => 'select', + 'name' => 'taxonomy', + 'choices' => acf_get_taxonomy_terms(), + 'multiple' => 1, + 'ui' => 1, + 'allow_null' => 1, + 'placeholder' => __( 'All taxonomies', 'acf' ), + ) + ); + + acf_render_field_setting( + $field, + array( + 'label' => __( 'Allow Archives URLs', 'acf' ), + 'instructions' => '', + 'name' => 'allow_archives', + 'type' => 'true_false', + 'ui' => 1, + ) + ); + + acf_render_field_setting( + $field, + array( + 'label' => __( 'Select Multiple', 'acf' ), + 'instructions' => 'Allow content editors to select multiple values', + 'name' => 'multiple', + 'type' => 'true_false', + 'ui' => 1, + ) + ); + } + + /** + * Renders the field settings used in the "Validation" tab. + * + * @since 6.0 + * + * @param array $field The field settings array. + * @return void + */ + function render_field_validation_settings( $field ) { + acf_render_field_setting( + $field, + array( + 'label' => __( 'Allow Null', 'acf' ), + 'instructions' => '', + 'name' => 'allow_null', + 'type' => 'true_false', + 'ui' => 1, + ) + ); + } + + /* + * format_value() + * + * This filter is appied to the $value after it is loaded from the db and before it is returned to the template + * + * @type filter + * @since 3.6 + * @date 23/01/13 + * + * @param $value (mixed) the value which was loaded from the database + * @param $post_id (mixed) the $post_id from which the value was loaded + * @param $field (array) the field array holding all the field options + * + * @return $value (mixed) the modified value + */ + + function format_value( $value, $post_id, $field ) { + + // ACF4 null + if ( $value === 'null' ) { + + return false; + + } + + // bail early if no value + if ( empty( $value ) ) { + + return $value; + + } + + // get posts + $value = $this->get_posts( $value, $field ); + + // set choices + foreach ( array_keys( $value ) as $i ) { + + // vars + $post = acf_extract_var( $value, $i ); + + // convert $post to permalink + if ( is_object( $post ) ) { + + $post = get_permalink( $post ); + + } + + // append back to $value + $value[ $i ] = $post; + + } + + // convert back from array if neccessary + if ( ! $field['multiple'] ) { + + $value = array_shift( $value ); + + } + + // return value + return $value; + + } + + + /* + * update_value() + * + * This filter is appied to the $value before it is updated in the db + * + * @type filter + * @since 3.6 + * @date 23/01/13 + * + * @param $value - the value which will be saved in the database + * @param $post_id - the $post_id of which the value will be saved + * @param $field - the field array holding all the field options + * + * @return $value - the modified value + */ + + function update_value( $value, $post_id, $field ) { + + // Bail early if no value. + if ( empty( $value ) ) { + return $value; + } + + // Format array of values. + // - ensure each value is an id. + // - Parse each id as string for SQL LIKE queries. + if ( acf_is_sequential_array( $value ) ) { + $value = array_map( 'acf_maybe_idval', $value ); + $value = array_map( 'strval', $value ); + + // Parse single value for id. + } else { + $value = acf_maybe_idval( $value ); + } + + // Return value. + return $value; + } + + /** + * Validates page link fields updated via the REST API. + * + * @param bool $valid + * @param int $value + * @param array $field + * + * @return bool|WP_Error + */ + public function validate_rest_value( $valid, $value, $field ) { + return acf_get_field_type( 'post_object' )->validate_rest_value( $valid, $value, $field ); + } + + /** + * Return the schema array for the REST API. + * + * @param array $field + * @return array + */ + public function get_rest_schema( array $field ) { + $schema = array( + 'type' => array( 'integer', 'array', 'null' ), + 'required' => ! empty( $field['required'] ), + 'items' => array( + 'type' => array( 'integer' ), + ), + ); + + if ( empty( $field['allow_null'] ) ) { + $schema['minItems'] = 1; + } + + if ( ! empty( $field['allow_archives'] ) ) { + $schema['type'][] = 'string'; + $schema['items']['type'][] = 'string'; + } + + if ( empty( $field['multiple'] ) ) { + $schema['maxItems'] = 1; + } + + return $schema; + } + + /** + * @see \acf_field::get_rest_links() + * @param mixed $value The raw (unformatted) field value. + * @param int|string $post_id + * @param array $field + * @return array + */ + public function get_rest_links( $value, $post_id, array $field ) { $links = array(); - $links[] = home_url(); - foreach( $args['post_type'] as $post_type ) { - $links[] = get_post_type_archive_link( $post_type ); + + if ( empty( $value ) ) { + return $links; } - $links = array_filter( $links ); - $links = array_unique( $links ); - // Convert list into choices. - $children = array(); - foreach( $links as $link ) { - - // Ignore if search does not match. - if( $is_search && stripos($link, $s) === false ) { + foreach ( (array) $value as $object_id ) { + if ( ! $post_type = get_post_type( $object_id ) or ! $post_type = get_post_type_object( $post_type ) ) { continue; } - $children[] = array( - 'id' => $link, - 'text' => $link - ); - } - if( $children ) { - $results[] = array( - 'text' => __('Archives', 'acf'), - 'children' => $children + $rest_base = acf_get_object_type_rest_base( $post_type ); + $links[] = array( + 'rel' => $post_type->name === 'attachment' ? 'acf:attachment' : 'acf:post', + 'href' => rest_url( sprintf( '/wp/v2/%s/%s', $rest_base, $object_id ) ), + 'embeddable' => true, ); } + + return $links; } - - - // get posts grouped by post type - $groups = acf_get_grouped_posts( $args ); - - - // loop - if( !empty($groups) ) { - - foreach( array_keys($groups) as $group_title ) { - - // vars - $posts = acf_extract_var( $groups, $group_title ); - - - // data - $data = array( - 'text' => $group_title, - 'children' => array() - ); - - - // convert post objects to post titles - foreach( array_keys($posts) as $post_id ) { - - $posts[ $post_id ] = $this->get_post_title( $posts[ $post_id ], $field, $options['post_id'], $is_search ); - - } - - - // order posts by search - if( $is_search && empty($args['orderby']) ) { - - $posts = acf_order_by_search( $posts, $args['s'] ); - - } - - - // append to $data - foreach( array_keys($posts) as $post_id ) { - - $data['children'][] = $this->get_post_result( $post_id, $posts[ $post_id ]); - - } - - - // append to $results - $results[] = $data; - - } - + + /** + * Apply basic formatting to prepare the value for default REST output. + * + * @param mixed $value + * @param string|int $post_id + * @param array $field + * @return mixed + */ + public function format_value_for_rest( $value, $post_id, array $field ) { + return acf_format_numerics( $value ); } - - - // return - acf_send_ajax_results(array( - 'results' => $results, - 'limit' => $args['posts_per_page'] - )); - + } - - - /* - * get_post_result - * - * This function will return an array containing id, text and maybe description data - * - * @type function - * @date 7/07/2016 - * @since 5.4.0 - * - * @param $id (mixed) - * @param $text (string) - * @return (array) - */ - - function get_post_result( $id, $text ) { - - // vars - $result = array( - 'id' => $id, - 'text' => $text - ); - - - // look for parent - $search = '| ' . __('Parent', 'acf') . ':'; - $pos = strpos($text, $search); - - if( $pos !== false ) { - - $result['description'] = substr($text, $pos+2); - $result['text'] = substr($text, 0, $pos); - - } - - - // return - return $result; - - } - - - /* - * get_post_title - * - * This function returns the HTML for a result - * - * @type function - * @date 1/11/2013 - * @since 5.0.0 - * - * @param $post (object) - * @param $field (array) - * @param $post_id (int) the post_id to which this value is saved to - * @return (string) - */ - - function get_post_title( $post, $field, $post_id = 0, $is_search = 0 ) { - - // get post_id - if( !$post_id ) $post_id = acf_get_form_data('post_id'); - - - // vars - $title = acf_get_post_title( $post, $is_search ); - - - // filters - $title = apply_filters('acf/fields/page_link/result', $title, $post, $field, $post_id); - $title = apply_filters('acf/fields/page_link/result/name=' . $field['_name'], $title, $post, $field, $post_id); - $title = apply_filters('acf/fields/page_link/result/key=' . $field['key'], $title, $post, $field, $post_id); - - - // return - return $title; - - } - - - /* - * get_posts - * - * This function will return an array of posts for a given field value - * - * @type function - * @date 13/06/2014 - * @since 5.0.0 - * - * @param $value (array) - * @return $value - */ - - function get_posts( $value, $field ) { - - // force value to array - $value = acf_get_array( $value ); - - - // get selected post ID's - $post__in = array(); - - foreach( $value as $k => $v ) { - - if( is_numeric($v) ) { - - // append to $post__in - $post__in[] = (int) $v; - - } - - } - - - // bail early if no posts - if( empty($post__in) ) { - - return $value; - - } - - - // get posts - $posts = acf_get_posts(array( - 'post__in' => $post__in, - 'post_type' => $field['post_type'] - )); - - - // override value with post - $return = array(); - - - // append to $return - foreach( $value as $k => $v ) { - - if( is_numeric($v) ) { - - // extract first post - $post = array_shift( $posts ); - - - // append - if( $post ) { - - $return[] = $post; - - } - - } else { - - $return[] = $v; - - } - - } - - - // return - return $return; - - } - - - /* - * render_field() - * - * Create the HTML interface for your field - * - * @param $field - an array holding all the field's data - * - * @type action - * @since 3.6 - * @date 23/01/13 - */ - - function render_field( $field ){ - - // Change Field into a select - $field['type'] = 'select'; - $field['ui'] = 1; - $field['ajax'] = 1; - $field['choices'] = array(); - - - // populate choices if value exists - if( !empty($field['value']) ) { - - // get posts - $posts = $this->get_posts( $field['value'], $field ); - - - // set choices - if( !empty($posts) ) { - - foreach( array_keys($posts) as $i ) { - - // vars - $post = acf_extract_var( $posts, $i ); - - - if( is_object($post) ) { - - // append to choices - $field['choices'][ $post->ID ] = $this->get_post_title( $post, $field ); - - } else { - - // append to choices - $field['choices'][ $post ] = $post; - - } - - } - - } - - } - - - // render - acf_render_field( $field ); - } - - - /* - * render_field_settings() - * - * Create extra options for your field. This is rendered when editing a field. - * The value of $field['name'] can be used (like bellow) to save extra data to the $field - * - * @type action - * @since 3.6 - * @date 23/01/13 - * - * @param $field - an array holding all the field's data - */ - - function render_field_settings( $field ) { - - // post_type - acf_render_field_setting( $field, array( - 'label' => __('Filter by Post Type','acf'), - 'instructions' => '', - 'type' => 'select', - 'name' => 'post_type', - 'choices' => acf_get_pretty_post_types(), - 'multiple' => 1, - 'ui' => 1, - 'allow_null' => 1, - 'placeholder' => __("All post types",'acf'), - )); - - - // taxonomy - acf_render_field_setting( $field, array( - 'label' => __('Filter by Taxonomy','acf'), - 'instructions' => '', - 'type' => 'select', - 'name' => 'taxonomy', - 'choices' => acf_get_taxonomy_terms(), - 'multiple' => 1, - 'ui' => 1, - 'allow_null' => 1, - 'placeholder' => __("All taxonomies",'acf'), - )); - - - // allow_null - acf_render_field_setting( $field, array( - 'label' => __('Allow Null?','acf'), - 'instructions' => '', - 'name' => 'allow_null', - 'type' => 'true_false', - 'ui' => 1, - )); - - - // allow_archives - acf_render_field_setting( $field, array( - 'label' => __('Allow Archives URLs','acf'), - 'instructions' => '', - 'name' => 'allow_archives', - 'type' => 'true_false', - 'ui' => 1, - )); - - - // multiple - acf_render_field_setting( $field, array( - 'label' => __('Select multiple values?','acf'), - 'instructions' => '', - 'name' => 'multiple', - 'type' => 'true_false', - 'ui' => 1, - )); - - } - - - /* - * format_value() - * - * This filter is appied to the $value after it is loaded from the db and before it is returned to the template - * - * @type filter - * @since 3.6 - * @date 23/01/13 - * - * @param $value (mixed) the value which was loaded from the database - * @param $post_id (mixed) the $post_id from which the value was loaded - * @param $field (array) the field array holding all the field options - * - * @return $value (mixed) the modified value - */ - - function format_value( $value, $post_id, $field ) { - - // ACF4 null - if( $value === 'null' ) { - - return false; - - } - - - // bail early if no value - if( empty($value) ) { - - return $value; - - } - - - // get posts - $value = $this->get_posts( $value, $field ); - - - // set choices - foreach( array_keys($value) as $i ) { - - // vars - $post = acf_extract_var( $value, $i ); - - - // convert $post to permalink - if( is_object($post) ) { - - $post = get_permalink( $post ); - - } - - - // append back to $value - $value[ $i ] = $post; - - } - - - // convert back from array if neccessary - if( !$field['multiple'] ) { - - $value = array_shift($value); - - } - - - // return value - return $value; - - } - - - /* - * update_value() - * - * This filter is appied to the $value before it is updated in the db - * - * @type filter - * @since 3.6 - * @date 23/01/13 - * - * @param $value - the value which will be saved in the database - * @param $post_id - the $post_id of which the value will be saved - * @param $field - the field array holding all the field options - * - * @return $value - the modified value - */ - - function update_value( $value, $post_id, $field ) { - - // Bail early if no value. - if( empty($value) ) { - return $value; - } - - // Format array of values. - // - ensure each value is an id. - // - Parse each id as string for SQL LIKE queries. - if( acf_is_sequential_array($value) ) { - $value = array_map('acf_maybe_idval', $value); - $value = array_map('strval', $value); - - // Parse single value for id. - } else { - $value = acf_maybe_idval( $value ); - } - - // Return value. - return $value; - } - -} -// initialize -acf_register_field_type( 'acf_field_page_link' ); + // initialize + acf_register_field_type( 'acf_field_page_link' ); endif; // class_exists check -?> \ No newline at end of file + diff --git a/includes/fields/class-acf-field-password.php b/includes/fields/class-acf-field-password.php index cb0efe2..e27afe8 100644 --- a/includes/fields/class-acf-field-password.php +++ b/includes/fields/class-acf-field-password.php @@ -1,104 +1,120 @@ name = 'password'; - $this->label = __("Password",'acf'); - $this->defaults = array( - 'placeholder' => '', - 'prepend' => '', - 'append' => '', - ); - - } - - - /* - * render_field() - * - * Create the HTML interface for your field - * - * @param $field - an array holding all the field's data - * - * @type action - * @since 3.6 - * @date 23/01/13 - */ - - function render_field( $field ) { - - acf_get_field_type('text')->render_field( $field ); - - } - - - /* - * render_field_settings() - * - * Create extra options for your field. This is rendered when editing a field. - * The value of $field['name'] can be used (like bellow) to save extra data to the $field - * - * @type action - * @since 3.6 - * @date 23/01/13 - * - * @param $field - an array holding all the field's data - */ - - function render_field_settings( $field ) { - - // placeholder - acf_render_field_setting( $field, array( - 'label' => __('Placeholder Text','acf'), - 'instructions' => __('Appears within the input','acf'), - 'type' => 'text', - 'name' => 'placeholder', - )); - - - // prepend - acf_render_field_setting( $field, array( - 'label' => __('Prepend','acf'), - 'instructions' => __('Appears before the input','acf'), - 'type' => 'text', - 'name' => 'prepend', - )); - - - // append - acf_render_field_setting( $field, array( - 'label' => __('Append','acf'), - 'instructions' => __('Appears after the input','acf'), - 'type' => 'text', - 'name' => 'append', - )); - } - -} + class acf_field_password extends acf_field { -// initialize -acf_register_field_type( 'acf_field_password' ); + /* + * initialize + * + * This function will setup the field type data + * + * @type function + * @date 5/03/2014 + * @since 5.0.0 + * + * @param n/a + * @return n/a + */ + + function initialize() { + + // vars + $this->name = 'password'; + $this->label = __( 'Password', 'acf' ); + $this->description = __( 'An input for providing a password using a masked field.', 'acf' ); + $this->preview_image = acf_get_url() . '/assets/images/field-type-previews/field-preview-password.png'; + $this->doc_url = acf_add_url_utm_tags( 'https://www.advancedcustomfields.com/resources/password/', 'docs', 'field-type-selection' ); + $this->defaults = array( + 'placeholder' => '', + 'prepend' => '', + 'append' => '', + ); + + } + + + /* + * render_field() + * + * Create the HTML interface for your field + * + * @param $field - an array holding all the field's data + * + * @type action + * @since 3.6 + * @date 23/01/13 + */ + + function render_field( $field ) { + + acf_get_field_type( 'text' )->render_field( $field ); + + } + + /* + * render_field_settings() + * + * Create extra options for your field. This is rendered when editing a field. + * The value of $field['name'] can be used (like bellow) to save extra data to the $field + * + * @type action + * @since 3.6 + * @date 23/01/13 + * + * @param $field - an array holding all the field's data + */ + function render_field_settings( $field ) { + // TODO: Delete this method? + } + + /** + * Renders the field settings used in the "Presentation" tab. + * + * @since 6.0 + * + * @param array $field The field settings array. + * @return void + */ + function render_field_presentation_settings( $field ) { + acf_render_field_setting( + $field, + array( + 'label' => __( 'Placeholder Text', 'acf' ), + 'instructions' => __( 'Appears within the input', 'acf' ), + 'type' => 'text', + 'name' => 'placeholder', + ) + ); + + acf_render_field_setting( + $field, + array( + 'label' => __( 'Prepend', 'acf' ), + 'instructions' => __( 'Appears before the input', 'acf' ), + 'type' => 'text', + 'name' => 'prepend', + ) + ); + + acf_render_field_setting( + $field, + array( + 'label' => __( 'Append', 'acf' ), + 'instructions' => __( 'Appears after the input', 'acf' ), + 'type' => 'text', + 'name' => 'append', + ) + ); + } + + } + + + // initialize + acf_register_field_type( 'acf_field_password' ); endif; // class_exists check -?> \ No newline at end of file + diff --git a/includes/fields/class-acf-field-post_object.php b/includes/fields/class-acf-field-post_object.php index 529b943..d4d93d7 100644 --- a/includes/fields/class-acf-field-post_object.php +++ b/includes/fields/class-acf-field-post_object.php @@ -1,603 +1,795 @@ name = 'post_object'; - $this->label = __("Post Object",'acf'); - $this->category = 'relational'; - $this->defaults = array( - 'post_type' => array(), - 'taxonomy' => array(), - 'allow_null' => 0, - 'multiple' => 0, - 'return_format' => 'object', - 'ui' => 1, - ); - - - // extra - add_action('wp_ajax_acf/fields/post_object/query', array($this, 'ajax_query')); - add_action('wp_ajax_nopriv_acf/fields/post_object/query', array($this, 'ajax_query')); - - } - - - /* - * ajax_query - * - * description - * - * @type function - * @date 24/10/13 - * @since 5.0.0 - * - * @param $post_id (int) - * @return $post_id (int) - */ - - function ajax_query() { - - // validate - if( !acf_verify_ajax() ) die(); - - - // get choices - $response = $this->get_ajax_query( $_POST ); - - - // return - acf_send_ajax_results($response); - - } - - - /* - * get_ajax_query - * - * This function will return an array of data formatted for use in a select2 AJAX response - * - * @type function - * @date 15/10/2014 - * @since 5.0.9 - * - * @param $options (array) - * @return (array) - */ - - function get_ajax_query( $options = array() ) { - - // defaults - $options = acf_parse_args($options, array( - 'post_id' => 0, - 's' => '', - 'field_key' => '', - 'paged' => 1 - )); - - - // load field - $field = acf_get_field( $options['field_key'] ); - if( !$field ) return false; - - - // vars - $results = array(); - $args = array(); - $s = false; - $is_search = false; - - - // paged - $args['posts_per_page'] = 20; - $args['paged'] = $options['paged']; - - - // search - if( $options['s'] !== '' ) { - - // strip slashes (search may be integer) - $s = wp_unslash( strval($options['s']) ); - - - // update vars - $args['s'] = $s; - $is_search = true; - - } - - - // post_type - if( !empty($field['post_type']) ) { - - $args['post_type'] = acf_get_array( $field['post_type'] ); - - } else { - - $args['post_type'] = acf_get_post_types(); - - } - - - // taxonomy - if( !empty($field['taxonomy']) ) { - // vars - $terms = acf_decode_taxonomy_terms( $field['taxonomy'] ); - - - // append to $args - $args['tax_query'] = array(); - - - // now create the tax queries - foreach( $terms as $k => $v ) { - - $args['tax_query'][] = array( - 'taxonomy' => $k, - 'field' => 'slug', - 'terms' => $v, - ); - - } - - } - - - // filters - $args = apply_filters('acf/fields/post_object/query', $args, $field, $options['post_id']); - $args = apply_filters('acf/fields/post_object/query/name=' . $field['name'], $args, $field, $options['post_id'] ); - $args = apply_filters('acf/fields/post_object/query/key=' . $field['key'], $args, $field, $options['post_id'] ); - - - // get posts grouped by post type - $groups = acf_get_grouped_posts( $args ); - - - // bail early if no posts - if( empty($groups) ) return false; - - - // loop - foreach( array_keys($groups) as $group_title ) { - - // vars - $posts = acf_extract_var( $groups, $group_title ); - - - // data - $data = array( - 'text' => $group_title, - 'children' => array() + $this->name = 'post_object'; + $this->label = __( 'Post Object', 'acf' ); + $this->category = 'relational'; + $this->description = __( 'An interactive and customizable UI for picking one or many posts, pages or post type items with the option to search. ', 'acf' ); + $this->preview_image = acf_get_url() . '/assets/images/field-type-previews/field-preview-post-object.png'; + $this->doc_url = acf_add_url_utm_tags( 'https://www.advancedcustomfields.com/resources/post-object/', 'docs', 'field-type-selection' ); + $this->defaults = array( + 'post_type' => array(), + 'taxonomy' => array(), + 'allow_null' => 0, + 'multiple' => 0, + 'return_format' => 'object', + 'ui' => 1, ); - - - // convert post objects to post titles - foreach( array_keys($posts) as $post_id ) { - - $posts[ $post_id ] = $this->get_post_title( $posts[ $post_id ], $field, $options['post_id'], $is_search ); - - } - - - // order posts by search - if( $is_search && empty($args['orderby']) ) { - - $posts = acf_order_by_search( $posts, $args['s'] ); - - } - - - // append to $data - foreach( array_keys($posts) as $post_id ) { - - $data['children'][] = $this->get_post_result( $post_id, $posts[ $post_id ]); - - } - - - // append to $results - $results[] = $data; - - } - - - // optgroup or single - $post_type = acf_get_array( $args['post_type'] ); - if( count($post_type) == 1 ) { - $results = $results[0]['children']; - } - - - // vars - $response = array( - 'results' => $results, - 'limit' => $args['posts_per_page'] - ); - - - // return - return $response; - - } - - - /* - * get_post_result - * - * This function will return an array containing id, text and maybe description data - * - * @type function - * @date 7/07/2016 - * @since 5.4.0 - * - * @param $id (mixed) - * @param $text (string) - * @return (array) - */ - - function get_post_result( $id, $text ) { - - // vars - $result = array( - 'id' => $id, - 'text' => $text - ); - - - // look for parent - $search = '| ' . __('Parent', 'acf') . ':'; - $pos = strpos($text, $search); - - if( $pos !== false ) { - - $result['description'] = substr($text, $pos+2); - $result['text'] = substr($text, 0, $pos); - - } - - - // return - return $result; - - } - - - /* - * get_post_title - * - * This function returns the HTML for a result - * - * @type function - * @date 1/11/2013 - * @since 5.0.0 - * - * @param $post (object) - * @param $field (array) - * @param $post_id (int) the post_id to which this value is saved to - * @return (string) - */ - - function get_post_title( $post, $field, $post_id = 0, $is_search = 0 ) { - - // get post_id - if( !$post_id ) $post_id = acf_get_form_data('post_id'); - - - // vars - $title = acf_get_post_title( $post, $is_search ); - - - // filters - $title = apply_filters('acf/fields/post_object/result', $title, $post, $field, $post_id); - $title = apply_filters('acf/fields/post_object/result/name=' . $field['_name'], $title, $post, $field, $post_id); - $title = apply_filters('acf/fields/post_object/result/key=' . $field['key'], $title, $post, $field, $post_id); - - - // return - return $title; - } - - - /* - * render_field() - * - * Create the HTML interface for your field - * - * @param $field - an array holding all the field's data - * - * @type action - * @since 3.6 - * @date 23/01/13 - */ - - function render_field( $field ) { - - // Change Field into a select - $field['type'] = 'select'; - $field['ui'] = 1; - $field['ajax'] = 1; - $field['choices'] = array(); - - - // load posts - $posts = $this->get_posts( $field['value'], $field ); - - if( $posts ) { - - foreach( array_keys($posts) as $i ) { - - // vars - $post = acf_extract_var( $posts, $i ); - - - // append to choices - $field['choices'][ $post->ID ] = $this->get_post_title( $post, $field ); - - } - + + // extra + add_action( 'wp_ajax_acf/fields/post_object/query', array( $this, 'ajax_query' ) ); + add_action( 'wp_ajax_nopriv_acf/fields/post_object/query', array( $this, 'ajax_query' ) ); + } - - // render - acf_render_field( $field ); - - } - - - /* - * render_field_settings() - * - * Create extra options for your field. This is rendered when editing a field. - * The value of $field['name'] can be used (like bellow) to save extra data to the $field - * - * @type action - * @since 3.6 - * @date 23/01/13 - * - * @param $field - an array holding all the field's data - */ - - function render_field_settings( $field ) { - - // default_value - acf_render_field_setting( $field, array( - 'label' => __('Filter by Post Type','acf'), - 'instructions' => '', - 'type' => 'select', - 'name' => 'post_type', - 'choices' => acf_get_pretty_post_types(), - 'multiple' => 1, - 'ui' => 1, - 'allow_null' => 1, - 'placeholder' => __("All post types",'acf'), - )); - - - // default_value - acf_render_field_setting( $field, array( - 'label' => __('Filter by Taxonomy','acf'), - 'instructions' => '', - 'type' => 'select', - 'name' => 'taxonomy', - 'choices' => acf_get_taxonomy_terms(), - 'multiple' => 1, - 'ui' => 1, - 'allow_null' => 1, - 'placeholder' => __("All taxonomies",'acf'), - )); - - - // allow_null - acf_render_field_setting( $field, array( - 'label' => __('Allow Null?','acf'), - 'instructions' => '', - 'name' => 'allow_null', - 'type' => 'true_false', - 'ui' => 1, - )); - - - // multiple - acf_render_field_setting( $field, array( - 'label' => __('Select multiple values?','acf'), - 'instructions' => '', - 'name' => 'multiple', - 'type' => 'true_false', - 'ui' => 1, - )); - - - // return_format - acf_render_field_setting( $field, array( - 'label' => __('Return Format','acf'), - 'instructions' => '', - 'type' => 'radio', - 'name' => 'return_format', - 'choices' => array( - 'object' => __("Post Object",'acf'), - 'id' => __("Post ID",'acf'), - ), - 'layout' => 'horizontal', - )); - - } - - - /* - * load_value() - * - * This filter is applied to the $value after it is loaded from the db - * - * @type filter - * @since 3.6 - * @date 23/01/13 - * - * @param $value (mixed) the value found in the database - * @param $post_id (mixed) the $post_id from which the value was loaded - * @param $field (array) the field array holding all the field options - * @return $value - */ - - function load_value( $value, $post_id, $field ) { - - // ACF4 null - if( $value === 'null' ) return false; - - - // return - return $value; - - } - - - /* - * format_value() - * - * This filter is appied to the $value after it is loaded from the db and before it is returned to the template - * - * @type filter - * @since 3.6 - * @date 23/01/13 - * - * @param $value (mixed) the value which was loaded from the database - * @param $post_id (mixed) the $post_id from which the value was loaded - * @param $field (array) the field array holding all the field options - * - * @return $value (mixed) the modified value - */ - - function format_value( $value, $post_id, $field ) { - - // numeric - $value = acf_get_numeric($value); - - - // bail early if no value - if( empty($value) ) return false; - - - // load posts if needed - if( $field['return_format'] == 'object' ) { - - $value = $this->get_posts( $value, $field ); - + + /* + * ajax_query + * + * description + * + * @type function + * @date 24/10/13 + * @since 5.0.0 + * + * @param $post_id (int) + * @return $post_id (int) + */ + + function ajax_query() { + + // validate + if ( ! acf_verify_ajax() ) { + die(); + } + + // get choices + $response = $this->get_ajax_query( $_POST ); + + // return + acf_send_ajax_results( $response ); + } - - - // convert back from array if neccessary - if( !$field['multiple'] && is_array($value) ) { - - $value = current($value); - + + + /* + * get_ajax_query + * + * This function will return an array of data formatted for use in a select2 AJAX response + * + * @type function + * @date 15/10/2014 + * @since 5.0.9 + * + * @param $options (array) + * @return (array) + */ + + function get_ajax_query( $options = array() ) { + + // defaults + $options = acf_parse_args( + $options, + array( + 'post_id' => 0, + 's' => '', + 'field_key' => '', + 'paged' => 1, + ) + ); + + // load field + $field = acf_get_field( $options['field_key'] ); + if ( ! $field ) { + return false; + } + + // vars + $results = array(); + $args = array(); + $s = false; + $is_search = false; + + // paged + $args['posts_per_page'] = 20; + $args['paged'] = $options['paged']; + + // search + if ( $options['s'] !== '' ) { + + // strip slashes (search may be integer) + $s = wp_unslash( strval( $options['s'] ) ); + + // update vars + $args['s'] = $s; + $is_search = true; + + } + + // post_type + if ( ! empty( $field['post_type'] ) ) { + + $args['post_type'] = acf_get_array( $field['post_type'] ); + + } else { + + $args['post_type'] = acf_get_post_types(); + + } + + // post status + if ( ! empty( $options['post_status'] ) ) { + + $args['post_status'] = acf_get_array( $options['post_status'] ); + + } elseif ( ! empty( $field['post_status'] ) ) { + + $args['post_status'] = acf_get_array( $field['post_status'] ); + + } + + // taxonomy + if ( ! empty( $field['taxonomy'] ) ) { + + // vars + $terms = acf_decode_taxonomy_terms( $field['taxonomy'] ); + + // append to $args + $args['tax_query'] = array(); + + // now create the tax queries + foreach ( $terms as $k => $v ) { + + $args['tax_query'][] = array( + 'taxonomy' => $k, + 'field' => 'slug', + 'terms' => $v, + ); + + } + } + + // filters + $args = apply_filters( 'acf/fields/post_object/query', $args, $field, $options['post_id'] ); + $args = apply_filters( 'acf/fields/post_object/query/name=' . $field['name'], $args, $field, $options['post_id'] ); + $args = apply_filters( 'acf/fields/post_object/query/key=' . $field['key'], $args, $field, $options['post_id'] ); + + // get posts grouped by post type + $groups = acf_get_grouped_posts( $args ); + + // bail early if no posts + if ( empty( $groups ) ) { + return false; + } + + // loop + foreach ( array_keys( $groups ) as $group_title ) { + + // vars + $posts = acf_extract_var( $groups, $group_title ); + + // data + $data = array( + 'text' => $group_title, + 'children' => array(), + ); + + // convert post objects to post titles + foreach ( array_keys( $posts ) as $post_id ) { + + $posts[ $post_id ] = $this->get_post_title( $posts[ $post_id ], $field, $options['post_id'], $is_search ); + + } + + // order posts by search + if ( $is_search && empty( $args['orderby'] ) && isset( $args['s'] ) ) { + + $posts = acf_order_by_search( $posts, $args['s'] ); + + } + + // append to $data + foreach ( array_keys( $posts ) as $post_id ) { + + $data['children'][] = $this->get_post_result( $post_id, $posts[ $post_id ] ); + + } + + // append to $results + $results[] = $data; + + } + + // optgroup or single + $post_type = acf_get_array( $args['post_type'] ); + if ( count( $post_type ) == 1 ) { + $results = $results[0]['children']; + } + + // vars + $response = array( + 'results' => $results, + 'limit' => $args['posts_per_page'], + ); + + // return + return $response; + } - - - // return value - return $value; - - } - - - /* - * update_value() - * - * This filter is appied to the $value before it is updated in the db - * - * @type filter - * @since 3.6 - * @date 23/01/13 - * - * @param $value - the value which will be saved in the database - * @param $post_id - the $post_id of which the value will be saved - * @param $field - the field array holding all the field options - * - * @return $value - the modified value - */ - - function update_value( $value, $post_id, $field ) { - - // Bail early if no value. - if( empty($value) ) { + + + /* + * get_post_result + * + * This function will return an array containing id, text and maybe description data + * + * @type function + * @date 7/07/2016 + * @since 5.4.0 + * + * @param $id (mixed) + * @param $text (string) + * @return (array) + */ + + function get_post_result( $id, $text ) { + + // vars + $result = array( + 'id' => $id, + 'text' => $text, + ); + + // look for parent + $search = '| ' . __( 'Parent', 'acf' ) . ':'; + $pos = strpos( $text, $search ); + + if ( $pos !== false ) { + + $result['description'] = substr( $text, $pos + 2 ); + $result['text'] = substr( $text, 0, $pos ); + + } + + // return + return $result; + + } + + + /* + * get_post_title + * + * This function returns the HTML for a result + * + * @type function + * @date 1/11/2013 + * @since 5.0.0 + * + * @param $post (object) + * @param $field (array) + * @param $post_id (int) the post_id to which this value is saved to + * @return (string) + */ + + function get_post_title( $post, $field, $post_id = 0, $is_search = 0 ) { + + // get post_id + if ( ! $post_id ) { + $post_id = acf_get_form_data( 'post_id' ); + } + + // vars + $title = acf_get_post_title( $post, $is_search ); + + // filters + $title = apply_filters( 'acf/fields/post_object/result', $title, $post, $field, $post_id ); + $title = apply_filters( 'acf/fields/post_object/result/name=' . $field['_name'], $title, $post, $field, $post_id ); + $title = apply_filters( 'acf/fields/post_object/result/key=' . $field['key'], $title, $post, $field, $post_id ); + + // return + return $title; + } + + + /* + * render_field() + * + * Create the HTML interface for your field + * + * @param $field - an array holding all the field's data + * + * @type action + * @since 3.6 + * @date 23/01/13 + */ + + function render_field( $field ) { + + // Change Field into a select + $field['type'] = 'select'; + $field['ui'] = 1; + $field['ajax'] = 1; + $field['choices'] = array(); + + // load posts + $posts = $this->get_posts( $field['value'], $field ); + + if ( $posts ) { + + foreach ( array_keys( $posts ) as $i ) { + + // vars + $post = acf_extract_var( $posts, $i ); + + // append to choices + $field['choices'][ $post->ID ] = $this->get_post_title( $post, $field ); + + } + } + + // render + acf_render_field( $field ); + + } + + + /* + * render_field_settings() + * + * Create extra options for your field. This is rendered when editing a field. + * The value of $field['name'] can be used (like bellow) to save extra data to the $field + * + * @type action + * @since 3.6 + * @date 23/01/13 + * + * @param $field - an array holding all the field's data + */ + function render_field_settings( $field ) { + acf_render_field_setting( + $field, + array( + 'label' => __( 'Filter by Post Type', 'acf' ), + 'instructions' => '', + 'type' => 'select', + 'name' => 'post_type', + 'choices' => acf_get_pretty_post_types(), + 'multiple' => 1, + 'ui' => 1, + 'allow_null' => 1, + 'placeholder' => __( 'All post types', 'acf' ), + ) + ); + + acf_render_field_setting( + $field, + array( + 'label' => __( 'Filter by Post Status', 'acf' ), + 'instructions' => '', + 'type' => 'select', + 'name' => 'post_status', + 'choices' => acf_get_pretty_post_statuses(), + 'multiple' => 1, + 'ui' => 1, + 'allow_null' => 1, + 'placeholder' => __( 'Any post status', 'acf' ), + ) + ); + + acf_render_field_setting( + $field, + array( + 'label' => __( 'Filter by Taxonomy', 'acf' ), + 'instructions' => '', + 'type' => 'select', + 'name' => 'taxonomy', + 'choices' => acf_get_taxonomy_terms(), + 'multiple' => 1, + 'ui' => 1, + 'allow_null' => 1, + 'placeholder' => __( 'All taxonomies', 'acf' ), + ) + ); + + acf_render_field_setting( + $field, + array( + 'label' => __( 'Return Format', 'acf' ), + 'instructions' => '', + 'type' => 'radio', + 'name' => 'return_format', + 'choices' => array( + 'object' => __( 'Post Object', 'acf' ), + 'id' => __( 'Post ID', 'acf' ), + ), + 'layout' => 'horizontal', + ) + ); + + acf_render_field_setting( + $field, + array( + 'label' => __( 'Select Multiple', 'acf' ), + 'instructions' => 'Allow content editors to select multiple values', + 'name' => 'multiple', + 'type' => 'true_false', + 'ui' => 1, + ) + ); + + } + + /** + * Renders the field settings used in the "Validation" tab. + * + * @since 6.0 + * + * @param array $field The field settings array. + * @return void + */ + function render_field_validation_settings( $field ) { + acf_render_field_setting( + $field, + array( + 'label' => __( 'Allow Null', 'acf' ), + 'instructions' => '', + 'name' => 'allow_null', + 'type' => 'true_false', + 'ui' => 1, + ) + ); + } + + /* + * load_value() + * + * This filter is applied to the $value after it is loaded from the db + * + * @type filter + * @since 3.6 + * @date 23/01/13 + * + * @param $value (mixed) the value found in the database + * @param $post_id (mixed) the $post_id from which the value was loaded + * @param $field (array) the field array holding all the field options + * @return $value + */ + + function load_value( $value, $post_id, $field ) { + + // ACF4 null + if ( $value === 'null' ) { + return false; + } + + // return + return $value; + + } + + + /* + * format_value() + * + * This filter is appied to the $value after it is loaded from the db and before it is returned to the template + * + * @type filter + * @since 3.6 + * @date 23/01/13 + * + * @param $value (mixed) the value which was loaded from the database + * @param $post_id (mixed) the $post_id from which the value was loaded + * @param $field (array) the field array holding all the field options + * + * @return $value (mixed) the modified value + */ + + function format_value( $value, $post_id, $field ) { + + // numeric + $value = acf_get_numeric( $value ); + + // bail early if no value + if ( empty( $value ) ) { + return false; + } + + // load posts if needed + if ( $field['return_format'] == 'object' ) { + + $value = $this->get_posts( $value, $field ); + + } + + // convert back from array if neccessary + if ( ! $field['multiple'] && is_array( $value ) ) { + + $value = current( $value ); + + } + + // return value + return $value; + + } + + + /* + * update_value() + * + * This filter is appied to the $value before it is updated in the db + * + * @type filter + * @since 3.6 + * @date 23/01/13 + * + * @param $value - the value which will be saved in the database + * @param $post_id - the $post_id of which the value will be saved + * @param $field - the field array holding all the field options + * + * @return $value - the modified value + */ + + function update_value( $value, $post_id, $field ) { + + // Bail early if no value. + if ( empty( $value ) ) { + return $value; + } + + // Format array of values. + // - ensure each value is an id. + // - Parse each id as string for SQL LIKE queries. + if ( acf_is_sequential_array( $value ) ) { + $value = array_map( 'acf_idval', $value ); + $value = array_map( 'strval', $value ); + + // Parse single value for id. + } else { + $value = acf_idval( $value ); + } + + // Return value. return $value; } - - // Format array of values. - // - ensure each value is an id. - // - Parse each id as string for SQL LIKE queries. - if( acf_is_sequential_array($value) ) { - $value = array_map('acf_idval', $value); - $value = array_map('strval', $value); - - // Parse single value for id. - } else { - $value = acf_idval( $value ); + + + /* + * get_posts + * + * This function will return an array of posts for a given field value + * + * @type function + * @date 13/06/2014 + * @since 5.0.0 + * + * @param $value (array) + * @return $value + */ + + function get_posts( $value, $field ) { + + // numeric + $value = acf_get_numeric( $value ); + + // bail early if no value + if ( empty( $value ) ) { + return false; + } + + // get posts + $posts = acf_get_posts( + array( + 'post__in' => $value, + 'post_type' => $field['post_type'], + ) + ); + + // return + return $posts; + } - - // Return value. - return $value; + + /** + * Validates post object fields updated via the REST API. + * + * @param bool $valid + * @param int $value + * @param array $field + * + * @return bool|WP_Error + */ + public function validate_rest_value( $valid, $value, $field ) { + if ( is_null( $value ) ) { + return $valid; + } + + $param = sprintf( '%s[%s]', $field['prefix'], $field['name'] ); + $data = array( 'param' => $param ); + $value = is_array( $value ) ? $value : array( $value ); + + $invalid_posts = array(); + $post_type_errors = array(); + $taxonomy_errors = array(); + + foreach ( $value as $post_id ) { + if ( is_string( $post_id ) ) { + continue; + } + + $post_type = get_post_type( $post_id ); + if ( ! $post_type ) { + $invalid_posts[] = $post_id; + continue; + } + + if ( + is_array( $field['post_type'] ) && + ! empty( $field['post_type'] ) && + ! in_array( $post_type, $field['post_type'] ) + ) { + $post_type_errors[] = $post_id; + } + + if ( is_array( $field['taxonomy'] ) && ! empty( $field['taxonomy'] ) ) { + $found = false; + foreach ( $field['taxonomy'] as $taxonomy_term ) { + $decoded = acf_decode_taxonomy_term( $taxonomy_term ); + if ( $decoded && is_object_in_term( $post_id, $decoded['taxonomy'], $decoded['term'] ) ) { + $found = true; + break; + } + } + + if ( ! $found ) { + $taxonomy_errors[] = $post_id; + } + } + } + + if ( count( $invalid_posts ) ) { + $error = sprintf( + __( '%1$s must have a valid post ID.', 'acf' ), + $param + ); + $data['value'] = $invalid_posts; + return new WP_Error( 'rest_invalid_param', $error, $data ); + } + + if ( count( $post_type_errors ) ) { + $error = sprintf( + _n( + '%1$s must be of post type %2$s.', + '%1$s must be of one of the following post types: %2$s', + count( $field['post_type'] ), + 'acf' + ), + $param, + count( $field['post_type'] ) > 1 ? implode( ', ', $field['post_type'] ) : $field['post_type'][0] + ); + $data['value'] = $post_type_errors; + + return new WP_Error( 'rest_invalid_param', $error, $data ); + } + + if ( count( $taxonomy_errors ) ) { + $error = sprintf( + _n( + '%1$s must have term %2$s.', + '%1$s must have one of the following terms: %2$s', + count( $field['taxonomy'] ), + 'acf' + ), + $param, + count( $field['taxonomy'] ) > 1 ? implode( ', ', $field['taxonomy'] ) : $field['taxonomy'][0] + ); + $data['value'] = $taxonomy_errors; + + return new WP_Error( 'rest_invalid_param', $error, $data ); + } + + return $valid; + } + + /** + * Return the schema array for the REST API. + * + * @param array $field + * @return array + */ + public function get_rest_schema( array $field ) { + $schema = array( + 'type' => array( 'integer', 'array', 'null' ), + 'required' => ! empty( $field['required'] ), + 'items' => array( + 'type' => 'integer', + ), + ); + + if ( empty( $field['allow_null'] ) ) { + $schema['minItems'] = 1; + } + + if ( empty( $field['multiple'] ) ) { + $schema['maxItems'] = 1; + } + + return $schema; + } + + /** + * @see \acf_field::get_rest_links() + * @param mixed $value The raw (unformatted) field value. + * @param int|string $post_id + * @param array $field + * @return array + */ + public function get_rest_links( $value, $post_id, array $field ) { + $links = array(); + + if ( empty( $value ) ) { + return $links; + } + + foreach ( (array) $value as $object_id ) { + if ( ! $post_type = get_post_type( $object_id ) ) { + continue; + } + + if ( ! $post_type_object = get_post_type_object( $post_type ) ) { + continue; + } + + $rest_base = acf_get_object_type_rest_base( $post_type_object ); + $links[] = array( + 'rel' => $post_type_object->name === 'attachment' ? 'acf:attachment' : 'acf:post', + 'href' => rest_url( sprintf( '/wp/v2/%s/%s', $rest_base, $object_id ) ), + 'embeddable' => true, + ); + } + + return $links; + } + + /** + * Apply basic formatting to prepare the value for default REST output. + * + * @param mixed $value + * @param string|int $post_id + * @param array $field + * @return mixed + */ + public function format_value_for_rest( $value, $post_id, array $field ) { + return acf_format_numerics( $value ); + } + } - - - /* - * get_posts - * - * This function will return an array of posts for a given field value - * - * @type function - * @date 13/06/2014 - * @since 5.0.0 - * - * @param $value (array) - * @return $value - */ - - function get_posts( $value, $field ) { - - // numeric - $value = acf_get_numeric($value); - - - // bail early if no value - if( empty($value) ) return false; - - - // get posts - $posts = acf_get_posts(array( - 'post__in' => $value, - 'post_type' => $field['post_type'] - )); - - - // return - return $posts; - - } - -} -// initialize -acf_register_field_type( 'acf_field_post_object' ); + // initialize + acf_register_field_type( 'acf_field_post_object' ); endif; // class_exists check -?> \ No newline at end of file + diff --git a/includes/fields/class-acf-field-radio.php b/includes/fields/class-acf-field-radio.php index 8b7905f..80e6cac 100644 --- a/includes/fields/class-acf-field-radio.php +++ b/includes/fields/class-acf-field-radio.php @@ -1,491 +1,501 @@ name = 'radio'; - $this->label = __("Radio Button",'acf'); - $this->category = 'choice'; - $this->defaults = array( - 'layout' => 'vertical', - 'choices' => array(), - 'default_value' => '', - 'other_choice' => 0, - 'save_other_choice' => 0, - 'allow_null' => 0, - 'return_format' => 'value' - ); - - } - - - /* - * render_field() - * - * Create the HTML interface for your field - * - * @param $field (array) the $field being rendered - * - * @type action - * @since 3.6 - * @date 23/01/13 - * - * @param $field (array) the $field being edited - * @return n/a - */ - - function render_field( $field ) { + class acf_field_radio extends acf_field { + + + /* + * __construct + * + * This function will setup the field type data + * + * @type function + * @date 5/03/2014 + * @since 5.0.0 + * + * @param n/a + * @return n/a + */ + + function initialize() { - // vars - $i = 0; - $e = ''; - $ul = array( - 'class' => 'acf-radio-list', - 'data-allow_null' => $field['allow_null'], - 'data-other_choice' => $field['other_choice'] - ); - - - // append to class - $ul['class'] .= ' ' . ($field['layout'] == 'horizontal' ? 'acf-hl' : 'acf-bl'); - $ul['class'] .= ' ' . $field['class']; - - - // select value - $checked = ''; - $value = strval($field['value']); - - - // selected choice - if( isset($field['choices'][ $value ]) ) { - - $checked = $value; - - // custom choice - } elseif( $field['other_choice'] && $value !== '' ) { - - $checked = 'other'; - - // allow null - } elseif( $field['allow_null'] ) { - - // do nothing - - // select first input by default - } else { - - $checked = key($field['choices']); - - } - - - // ensure $checked is a string (could be an int) - $checked = strval($checked); - - - // other choice - if( $field['other_choice'] ) { - // vars - $input = array( - 'type' => 'text', - 'name' => $field['name'], - 'value' => '', - 'disabled' => 'disabled', - 'class' => 'acf-disabled' + $this->name = 'radio'; + $this->label = __( 'Radio Button', 'acf' ); + $this->category = 'choice'; + $this->description = __( 'A group of radio button inputs that allows the user to make a single selection from values that you specify.', 'acf' ); + $this->preview_image = acf_get_url() . '/assets/images/field-type-previews/field-preview-radio-button.png'; + $this->doc_url = acf_add_url_utm_tags( 'https://www.advancedcustomfields.com/resources/radio-button/', 'docs', 'field-type-selection' ); + $this->defaults = array( + 'layout' => 'vertical', + 'choices' => array(), + 'default_value' => '', + 'other_choice' => 0, + 'save_other_choice' => 0, + 'allow_null' => 0, + 'return_format' => 'value', ); - - - // select other choice if value is not a valid choice - if( $checked === 'other' ) { - - unset($input['disabled']); - $input['value'] = $field['value']; - - } - - - // allow custom 'other' choice to be defined - if( !isset($field['choices']['other']) ) { - - $field['choices']['other'] = ''; - - } - - - // append other choice - $field['choices']['other'] .= '