Version Description
Release Date - 24th November 2021 * Fix - Fixed a bug when accessing field values for options pages registered with a custom post_id
Download this release
Release Info
Developer | deliciousbrains |
Plugin | Advanced Custom Fields |
Version | 5.11.3 |
Comparing to | |
See all releases |
Code changes from version 5.11.2 to 5.11.3
- acf.php +2 -2
- assets/build/css/acf-dark.css.js +6 -0
- assets/build/css/acf-field-group.css.js +6 -0
- assets/build/css/acf-global.css.js +6 -0
- assets/build/css/acf-input.css.js +6 -0
- assets/build/js/acf.js +2 -6
- assets/build/js/acf.js.map +1 -1
- includes/acf-value-functions.php +5 -1
- includes/acf-wp-functions.php +2 -2
- readme.txt +5 -1
acf.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: Advanced Custom Fields
|
4 |
Plugin URI: https://www.advancedcustomfields.com
|
5 |
Description: Customize WordPress with powerful, professional and intuitive fields.
|
6 |
-
Version: 5.11.
|
7 |
Author: Delicious Brains
|
8 |
Author URI: https://www.advancedcustomfields.com
|
9 |
Text Domain: acf
|
@@ -19,7 +19,7 @@ if ( ! class_exists( 'ACF' ) ) :
|
|
19 |
class ACF {
|
20 |
|
21 |
/** @var string The plugin version number. */
|
22 |
-
var $version = '5.11.
|
23 |
|
24 |
/** @var array The plugin settings array. */
|
25 |
var $settings = array();
|
3 |
Plugin Name: Advanced Custom Fields
|
4 |
Plugin URI: https://www.advancedcustomfields.com
|
5 |
Description: Customize WordPress with powerful, professional and intuitive fields.
|
6 |
+
Version: 5.11.3
|
7 |
Author: Delicious Brains
|
8 |
Author URI: https://www.advancedcustomfields.com
|
9 |
Text Domain: acf
|
19 |
class ACF {
|
20 |
|
21 |
/** @var string The plugin version number. */
|
22 |
+
var $version = '5.11.3';
|
23 |
|
24 |
/** @var array The plugin settings array. */
|
25 |
var $settings = array();
|
assets/build/css/acf-dark.css.js
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/******/ (function() { // webpackBootstrap
|
2 |
+
/******/ "use strict";
|
3 |
+
/******/
|
4 |
+
/******/
|
5 |
+
/******/ })()
|
6 |
+
;
|
assets/build/css/acf-field-group.css.js
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/******/ (function() { // webpackBootstrap
|
2 |
+
/******/ "use strict";
|
3 |
+
/******/
|
4 |
+
/******/
|
5 |
+
/******/ })()
|
6 |
+
;
|
assets/build/css/acf-global.css.js
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/******/ (function() { // webpackBootstrap
|
2 |
+
/******/ "use strict";
|
3 |
+
/******/
|
4 |
+
/******/
|
5 |
+
/******/ })()
|
6 |
+
;
|
assets/build/css/acf-input.css.js
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/******/ (function() { // webpackBootstrap
|
2 |
+
/******/ "use strict";
|
3 |
+
/******/
|
4 |
+
/******/
|
5 |
+
/******/ })()
|
6 |
+
;
|
assets/build/js/acf.js
CHANGED
@@ -65,9 +65,7 @@
|
|
65 |
*/
|
66 |
|
67 |
|
68 |
-
function
|
69 |
-
/* action, arg1, arg2, ... */
|
70 |
-
doAction() {
|
71 |
var args = Array.prototype.slice.call(arguments);
|
72 |
var action = args.shift();
|
73 |
|
@@ -117,9 +115,7 @@
|
|
117 |
*/
|
118 |
|
119 |
|
120 |
-
function
|
121 |
-
/* filter, filtered arg, arg2, ... */
|
122 |
-
applyFilters() {
|
123 |
var args = Array.prototype.slice.call(arguments);
|
124 |
var filter = args.shift();
|
125 |
|
65 |
*/
|
66 |
|
67 |
|
68 |
+
function doAction() {
|
|
|
|
|
69 |
var args = Array.prototype.slice.call(arguments);
|
70 |
var action = args.shift();
|
71 |
|
115 |
*/
|
116 |
|
117 |
|
118 |
+
function applyFilters() {
|
|
|
|
|
119 |
var args = Array.prototype.slice.call(arguments);
|
120 |
var filter = args.shift();
|
121 |
|
assets/build/js/acf.js.map
CHANGED
@@ -1 +1 @@
|
|
1 |
-
{"version":3,"file":"acf.js","mappings":"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","sources":["webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_acf-hooks.js","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_acf-modal.js","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_acf-model.js","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_acf-notice.js","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_acf-panel.js","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_acf-popup.js","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_acf-tooltip.js","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_acf.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.js"],"sourcesContent":["( function ( window, undefined ) {\n\t'use strict';\n\n\t/**\n\t * Handles managing all events for whatever you plug it into. Priorities for hooks are based on lowest to highest in\n\t * that, lowest priority hooks are fired first.\n\t */\n\tvar EventManager = function () {\n\t\t/**\n\t\t * Maintain a reference to the object scope so our public methods never get confusing.\n\t\t */\n\t\tvar MethodsAvailable = {\n\t\t\tremoveFilter: removeFilter,\n\t\t\tapplyFilters: applyFilters,\n\t\t\taddFilter: addFilter,\n\t\t\tremoveAction: removeAction,\n\t\t\tdoAction: doAction,\n\t\t\taddAction: addAction,\n\t\t\tstorage: getStorage,\n\t\t};\n\n\t\t/**\n\t\t * Contains the hooks that get registered with this EventManager. The array for storage utilizes a \"flat\"\n\t\t * object literal such that looking up the hook utilizes the native object literal hash.\n\t\t */\n\t\tvar STORAGE = {\n\t\t\tactions: {},\n\t\t\tfilters: {},\n\t\t};\n\n\t\tfunction getStorage() {\n\t\t\treturn STORAGE;\n\t\t}\n\n\t\t/**\n\t\t * Adds an action to the event manager.\n\t\t *\n\t\t * @param action Must contain namespace.identifier\n\t\t * @param callback Must be a valid callback function before this action is added\n\t\t * @param [priority=10] Used to control when the function is executed in relation to other callbacks bound to the same hook\n\t\t * @param [context] Supply a value to be used for this\n\t\t */\n\t\tfunction addAction( action, callback, priority, context ) {\n\t\t\tif (\n\t\t\t\ttypeof action === 'string' &&\n\t\t\t\ttypeof callback === 'function'\n\t\t\t) {\n\t\t\t\tpriority = parseInt( priority || 10, 10 );\n\t\t\t\t_addHook( 'actions', action, callback, priority, context );\n\t\t\t}\n\n\t\t\treturn MethodsAvailable;\n\t\t}\n\n\t\t/**\n\t\t * Performs an action if it exists. You can pass as many arguments as you want to this function; the only rule is\n\t\t * that the first argument must always be the action.\n\t\t */\n\t\tfunction doAction(/* action, arg1, arg2, ... */) {\n\t\t\tvar args = Array.prototype.slice.call( arguments );\n\t\t\tvar action = args.shift();\n\n\t\t\tif ( typeof action === 'string' ) {\n\t\t\t\t_runHook( 'actions', action, args );\n\t\t\t}\n\n\t\t\treturn MethodsAvailable;\n\t\t}\n\n\t\t/**\n\t\t * Removes the specified action if it contains a namespace.identifier & exists.\n\t\t *\n\t\t * @param action The action to remove\n\t\t * @param [callback] Callback function to remove\n\t\t */\n\t\tfunction removeAction( action, callback ) {\n\t\t\tif ( typeof action === 'string' ) {\n\t\t\t\t_removeHook( 'actions', action, callback );\n\t\t\t}\n\n\t\t\treturn MethodsAvailable;\n\t\t}\n\n\t\t/**\n\t\t * Adds a filter to the event manager.\n\t\t *\n\t\t * @param filter Must contain namespace.identifier\n\t\t * @param callback Must be a valid callback function before this action is added\n\t\t * @param [priority=10] Used to control when the function is executed in relation to other callbacks bound to the same hook\n\t\t * @param [context] Supply a value to be used for this\n\t\t */\n\t\tfunction addFilter( filter, callback, priority, context ) {\n\t\t\tif (\n\t\t\t\ttypeof filter === 'string' &&\n\t\t\t\ttypeof callback === 'function'\n\t\t\t) {\n\t\t\t\tpriority = parseInt( priority || 10, 10 );\n\t\t\t\t_addHook( 'filters', filter, callback, priority, context );\n\t\t\t}\n\n\t\t\treturn MethodsAvailable;\n\t\t}\n\n\t\t/**\n\t\t * Performs a filter if it exists. You should only ever pass 1 argument to be filtered. The only rule is that\n\t\t * the first argument must always be the filter.\n\t\t */\n\t\tfunction applyFilters(/* filter, filtered arg, arg2, ... */) {\n\t\t\tvar args = Array.prototype.slice.call( arguments );\n\t\t\tvar filter = args.shift();\n\n\t\t\tif ( typeof filter === 'string' ) {\n\t\t\t\treturn _runHook( 'filters', filter, args );\n\t\t\t}\n\n\t\t\treturn MethodsAvailable;\n\t\t}\n\n\t\t/**\n\t\t * Removes the specified filter if it contains a namespace.identifier & exists.\n\t\t *\n\t\t * @param filter The action to remove\n\t\t * @param [callback] Callback function to remove\n\t\t */\n\t\tfunction removeFilter( filter, callback ) {\n\t\t\tif ( typeof filter === 'string' ) {\n\t\t\t\t_removeHook( 'filters', filter, callback );\n\t\t\t}\n\n\t\t\treturn MethodsAvailable;\n\t\t}\n\n\t\t/**\n\t\t * Removes the specified hook by resetting the value of it.\n\t\t *\n\t\t * @param type Type of hook, either 'actions' or 'filters'\n\t\t * @param hook The hook (namespace.identifier) to remove\n\t\t * @private\n\t\t */\n\t\tfunction _removeHook( type, hook, callback, context ) {\n\t\t\tif ( ! STORAGE[ type ][ hook ] ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( ! callback ) {\n\t\t\t\tSTORAGE[ type ][ hook ] = [];\n\t\t\t} else {\n\t\t\t\tvar handlers = STORAGE[ type ][ hook ];\n\t\t\t\tvar i;\n\t\t\t\tif ( ! context ) {\n\t\t\t\t\tfor ( i = handlers.length; i--; ) {\n\t\t\t\t\t\tif ( handlers[ i ].callback === callback ) {\n\t\t\t\t\t\t\thandlers.splice( i, 1 );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tfor ( i = handlers.length; i--; ) {\n\t\t\t\t\t\tvar handler = handlers[ i ];\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\thandler.callback === callback &&\n\t\t\t\t\t\t\thandler.context === context\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\thandlers.splice( i, 1 );\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\t/**\n\t\t * Adds the hook to the appropriate storage container\n\t\t *\n\t\t * @param type 'actions' or 'filters'\n\t\t * @param hook The hook (namespace.identifier) to add to our event manager\n\t\t * @param callback The function that will be called when the hook is executed.\n\t\t * @param priority The priority of this hook. Must be an integer.\n\t\t * @param [context] A value to be used for this\n\t\t * @private\n\t\t */\n\t\tfunction _addHook( type, hook, callback, priority, context ) {\n\t\t\tvar hookObject = {\n\t\t\t\tcallback: callback,\n\t\t\t\tpriority: priority,\n\t\t\t\tcontext: context,\n\t\t\t};\n\n\t\t\t// Utilize 'prop itself' : http://jsperf.com/hasownproperty-vs-in-vs-undefined/19\n\t\t\tvar hooks = STORAGE[ type ][ hook ];\n\t\t\tif ( hooks ) {\n\t\t\t\thooks.push( hookObject );\n\t\t\t\thooks = _hookInsertSort( hooks );\n\t\t\t} else {\n\t\t\t\thooks = [ hookObject ];\n\t\t\t}\n\n\t\t\tSTORAGE[ type ][ hook ] = hooks;\n\t\t}\n\n\t\t/**\n\t\t * Use an insert sort for keeping our hooks organized based on priority. This function is ridiculously faster\n\t\t * than bubble sort, etc: http://jsperf.com/javascript-sort\n\t\t *\n\t\t * @param hooks The custom array containing all of the appropriate hooks to perform an insert sort on.\n\t\t * @private\n\t\t */\n\t\tfunction _hookInsertSort( hooks ) {\n\t\t\tvar tmpHook, j, prevHook;\n\t\t\tfor ( var i = 1, len = hooks.length; i < len; i++ ) {\n\t\t\t\ttmpHook = hooks[ i ];\n\t\t\t\tj = i;\n\t\t\t\twhile (\n\t\t\t\t\t( prevHook = hooks[ j - 1 ] ) &&\n\t\t\t\t\tprevHook.priority > tmpHook.priority\n\t\t\t\t) {\n\t\t\t\t\thooks[ j ] = hooks[ j - 1 ];\n\t\t\t\t\t--j;\n\t\t\t\t}\n\t\t\t\thooks[ j ] = tmpHook;\n\t\t\t}\n\n\t\t\treturn hooks;\n\t\t}\n\n\t\t/**\n\t\t * Runs the specified hook. If it is an action, the value is not modified but if it is a filter, it is.\n\t\t *\n\t\t * @param type 'actions' or 'filters'\n\t\t * @param hook The hook ( namespace.identifier ) to be ran.\n\t\t * @param args Arguments to pass to the action/filter. If it's a filter, args is actually a single parameter.\n\t\t * @private\n\t\t */\n\t\tfunction _runHook( type, hook, args ) {\n\t\t\tvar handlers = STORAGE[ type ][ hook ];\n\n\t\t\tif ( ! handlers ) {\n\t\t\t\treturn type === 'filters' ? args[ 0 ] : false;\n\t\t\t}\n\n\t\t\tvar i = 0,\n\t\t\t\tlen = handlers.length;\n\t\t\tif ( type === 'filters' ) {\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\targs[ 0 ] = handlers[ i ].callback.apply(\n\t\t\t\t\t\thandlers[ i ].context,\n\t\t\t\t\t\targs\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\thandlers[ i ].callback.apply( handlers[ i ].context, args );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn type === 'filters' ? args[ 0 ] : true;\n\t\t}\n\n\t\t// return all of the publicly available methods\n\t\treturn MethodsAvailable;\n\t};\n\n\t// instantiate\n\tacf.hooks = new EventManager();\n} )( window );\n","( function ( $, undefined ) {\n\tacf.models.Modal = acf.Model.extend( {\n\t\tdata: {\n\t\t\ttitle: '',\n\t\t\tcontent: '',\n\t\t\ttoolbar: '',\n\t\t},\n\t\tevents: {\n\t\t\t'click .acf-modal-close': 'onClickClose',\n\t\t},\n\t\tsetup: function ( props ) {\n\t\t\t$.extend( this.data, props );\n\t\t\tthis.$el = $();\n\t\t\tthis.render();\n\t\t},\n\t\tinitialize: function () {\n\t\t\tthis.open();\n\t\t},\n\t\trender: function () {\n\t\t\t// Extract vars.\n\t\t\tvar title = this.get( 'title' );\n\t\t\tvar content = this.get( 'content' );\n\t\t\tvar toolbar = this.get( 'toolbar' );\n\n\t\t\t// Create element.\n\t\t\tvar $el = $(\n\t\t\t\t[\n\t\t\t\t\t'<div>',\n\t\t\t\t\t'<div class=\"acf-modal\">',\n\t\t\t\t\t'<div class=\"acf-modal-title\">',\n\t\t\t\t\t'<h2>' + title + '</h2>',\n\t\t\t\t\t'<button class=\"acf-modal-close\" type=\"button\"><span class=\"dashicons dashicons-no\"></span></button>',\n\t\t\t\t\t'</div>',\n\t\t\t\t\t'<div class=\"acf-modal-content\">' + content + '</div>',\n\t\t\t\t\t'<div class=\"acf-modal-toolbar\">' + toolbar + '</div>',\n\t\t\t\t\t'</div>',\n\t\t\t\t\t'<div class=\"acf-modal-backdrop acf-modal-close\"></div>',\n\t\t\t\t\t'</div>',\n\t\t\t\t].join( '' )\n\t\t\t);\n\n\t\t\t// Update DOM.\n\t\t\tif ( this.$el ) {\n\t\t\t\tthis.$el.replaceWith( $el );\n\t\t\t}\n\t\t\tthis.$el = $el;\n\n\t\t\t// Trigger action.\n\t\t\tacf.doAction( 'append', $el );\n\t\t},\n\t\tupdate: function ( props ) {\n\t\t\tthis.data = acf.parseArgs( props, this.data );\n\t\t\tthis.render();\n\t\t},\n\t\ttitle: function ( title ) {\n\t\t\tthis.$( '.acf-modal-title h2' ).html( title );\n\t\t},\n\t\tcontent: function ( content ) {\n\t\t\tthis.$( '.acf-modal-content' ).html( content );\n\t\t},\n\t\ttoolbar: function ( toolbar ) {\n\t\t\tthis.$( '.acf-modal-toolbar' ).html( toolbar );\n\t\t},\n\t\topen: function () {\n\t\t\t$( 'body' ).append( this.$el );\n\t\t},\n\t\tclose: function () {\n\t\t\tthis.remove();\n\t\t},\n\t\tonClickClose: function ( e, $el ) {\n\t\t\te.preventDefault();\n\t\t\tthis.close();\n\t\t},\n\t} );\n\n\t/**\n\t * Returns a new modal.\n\t *\n\t * @date\t21/4/20\n\t * @since\t5.9.0\n\t *\n\t * @param\tobject props The modal props.\n\t * @return\tobject\n\t */\n\tacf.newModal = function ( props ) {\n\t\treturn new acf.models.Modal( props );\n\t};\n} )( jQuery );\n","( function ( $, undefined ) {\n\t// Cached regex to split keys for `addEvent`.\n\tvar delegateEventSplitter = /^(\\S+)\\s*(.*)$/;\n\n\t/**\n\t * extend\n\t *\n\t * Helper function to correctly set up the prototype chain for subclasses\n\t * Heavily inspired by backbone.js\n\t *\n\t * @date\t14/12/17\n\t * @since\t5.6.5\n\t *\n\t * @param\tobject protoProps New properties for this object.\n\t * @return\tfunction.\n\t */\n\n\tvar extend = function ( protoProps ) {\n\t\t// vars\n\t\tvar Parent = this;\n\t\tvar Child;\n\n\t\t// The constructor function for the new subclass is either defined by you\n\t\t// (the \"constructor\" property in your `extend` definition), or defaulted\n\t\t// by us to simply call the parent constructor.\n\t\tif ( protoProps && protoProps.hasOwnProperty( 'constructor' ) ) {\n\t\t\tChild = protoProps.constructor;\n\t\t} else {\n\t\t\tChild = function () {\n\t\t\t\treturn Parent.apply( this, arguments );\n\t\t\t};\n\t\t}\n\n\t\t// Add static properties to the constructor function, if supplied.\n\t\t$.extend( Child, Parent );\n\n\t\t// Set the prototype chain to inherit from `parent`, without calling\n\t\t// `parent`'s constructor function and add the prototype properties.\n\t\tChild.prototype = Object.create( Parent.prototype );\n\t\t$.extend( Child.prototype, protoProps );\n\t\tChild.prototype.constructor = Child;\n\n\t\t// Set a convenience property in case the parent's prototype is needed later.\n\t\t//Child.prototype.__parent__ = Parent.prototype;\n\n\t\t// return\n\t\treturn Child;\n\t};\n\n\t/**\n\t * Model\n\t *\n\t * Base class for all inheritence\n\t *\n\t * @date\t14/12/17\n\t * @since\t5.6.5\n\t *\n\t * @param\tobject props\n\t * @return\tfunction.\n\t */\n\n\tvar Model = ( acf.Model = function () {\n\t\t// generate uique client id\n\t\tthis.cid = acf.uniqueId( 'acf' );\n\n\t\t// set vars to avoid modifying prototype\n\t\tthis.data = $.extend( true, {}, this.data );\n\n\t\t// pass props to setup function\n\t\tthis.setup.apply( this, arguments );\n\n\t\t// store on element (allow this.setup to create this.$el)\n\t\tif ( this.$el && ! this.$el.data( 'acf' ) ) {\n\t\t\tthis.$el.data( 'acf', this );\n\t\t}\n\n\t\t// initialize\n\t\tvar initialize = function () {\n\t\t\tthis.initialize();\n\t\t\tthis.addEvents();\n\t\t\tthis.addActions();\n\t\t\tthis.addFilters();\n\t\t};\n\n\t\t// initialize on action\n\t\tif ( this.wait && ! acf.didAction( this.wait ) ) {\n\t\t\tthis.addAction( this.wait, initialize );\n\n\t\t\t// initialize now\n\t\t} else {\n\t\t\tinitialize.apply( this );\n\t\t}\n\t} );\n\n\t// Attach all inheritable methods to the Model prototype.\n\t$.extend( Model.prototype, {\n\t\t// Unique model id\n\t\tid: '',\n\n\t\t// Unique client id\n\t\tcid: '',\n\n\t\t// jQuery element\n\t\t$el: null,\n\n\t\t// Data specific to this instance\n\t\tdata: {},\n\n\t\t// toggle used when changing data\n\t\tbusy: false,\n\t\tchanged: false,\n\n\t\t// Setup events hooks\n\t\tevents: {},\n\t\tactions: {},\n\t\tfilters: {},\n\n\t\t// class used to avoid nested event triggers\n\t\teventScope: '',\n\n\t\t// action to wait until initialize\n\t\twait: false,\n\n\t\t// action priority default\n\t\tpriority: 10,\n\n\t\t/**\n\t\t * get\n\t\t *\n\t\t * Gets a specific data value\n\t\t *\n\t\t * @date\t14/12/17\n\t\t * @since\t5.6.5\n\t\t *\n\t\t * @param\tstring name\n\t\t * @return\tmixed\n\t\t */\n\n\t\tget: function ( name ) {\n\t\t\treturn this.data[ name ];\n\t\t},\n\n\t\t/**\n\t\t * has\n\t\t *\n\t\t * Returns `true` if the data exists and is not null\n\t\t *\n\t\t * @date\t14/12/17\n\t\t * @since\t5.6.5\n\t\t *\n\t\t * @param\tstring name\n\t\t * @return\tboolean\n\t\t */\n\n\t\thas: function ( name ) {\n\t\t\treturn this.get( name ) != null;\n\t\t},\n\n\t\t/**\n\t\t * set\n\t\t *\n\t\t * Sets a specific data value\n\t\t *\n\t\t * @date\t14/12/17\n\t\t * @since\t5.6.5\n\t\t *\n\t\t * @param\tstring name\n\t\t * @param\tmixed value\n\t\t * @return\tthis\n\t\t */\n\n\t\tset: function ( name, value, silent ) {\n\t\t\t// bail if unchanged\n\t\t\tvar prevValue = this.get( name );\n\t\t\tif ( prevValue == value ) {\n\t\t\t\treturn this;\n\t\t\t}\n\n\t\t\t// set data\n\t\t\tthis.data[ name ] = value;\n\n\t\t\t// trigger events\n\t\t\tif ( ! silent ) {\n\t\t\t\tthis.changed = true;\n\t\t\t\tthis.trigger( 'changed:' + name, [ value, prevValue ] );\n\t\t\t\tthis.trigger( 'changed', [ name, value, prevValue ] );\n\t\t\t}\n\n\t\t\t// return\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * inherit\n\t\t *\n\t\t * Inherits the data from a jQuery element\n\t\t *\n\t\t * @date\t14/12/17\n\t\t * @since\t5.6.5\n\t\t *\n\t\t * @param\tjQuery $el\n\t\t * @return\tthis\n\t\t */\n\n\t\tinherit: function ( data ) {\n\t\t\t// allow jQuery\n\t\t\tif ( data instanceof jQuery ) {\n\t\t\t\tdata = data.data();\n\t\t\t}\n\n\t\t\t// extend\n\t\t\t$.extend( this.data, data );\n\n\t\t\t// return\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * prop\n\t\t *\n\t\t * mimics the jQuery prop function\n\t\t *\n\t\t * @date\t4/6/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\tprop: function () {\n\t\t\treturn this.$el.prop.apply( this.$el, arguments );\n\t\t},\n\n\t\t/**\n\t\t * setup\n\t\t *\n\t\t * Run during constructor function\n\t\t *\n\t\t * @date\t14/12/17\n\t\t * @since\t5.6.5\n\t\t *\n\t\t * @param\tn/a\n\t\t * @return\tn/a\n\t\t */\n\n\t\tsetup: function ( props ) {\n\t\t\t$.extend( this, props );\n\t\t},\n\n\t\t/**\n\t\t * initialize\n\t\t *\n\t\t * Also run during constructor function\n\t\t *\n\t\t * @date\t14/12/17\n\t\t * @since\t5.6.5\n\t\t *\n\t\t * @param\tn/a\n\t\t * @return\tn/a\n\t\t */\n\n\t\tinitialize: function () {},\n\n\t\t/**\n\t\t * addElements\n\t\t *\n\t\t * Adds multiple jQuery elements to this object\n\t\t *\n\t\t * @date\t9/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\taddElements: function ( elements ) {\n\t\t\telements = elements || this.elements || null;\n\t\t\tif ( ! elements || ! Object.keys( elements ).length ) return false;\n\t\t\tfor ( var i in elements ) {\n\t\t\t\tthis.addElement( i, elements[ i ] );\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * addElement\n\t\t *\n\t\t * description\n\t\t *\n\t\t * @date\t9/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\taddElement: function ( name, selector ) {\n\t\t\tthis[ '$' + name ] = this.$( selector );\n\t\t},\n\n\t\t/**\n\t\t * addEvents\n\t\t *\n\t\t * Adds multiple event handlers\n\t\t *\n\t\t * @date\t14/12/17\n\t\t * @since\t5.6.5\n\t\t *\n\t\t * @param\tobject events {event1 : callback, event2 : callback, etc }\n\t\t * @return\tn/a\n\t\t */\n\n\t\taddEvents: function ( events ) {\n\t\t\tevents = events || this.events || null;\n\t\t\tif ( ! events ) return false;\n\t\t\tfor ( var key in events ) {\n\t\t\t\tvar match = key.match( delegateEventSplitter );\n\t\t\t\tthis.on( match[ 1 ], match[ 2 ], events[ key ] );\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * removeEvents\n\t\t *\n\t\t * Removes multiple event handlers\n\t\t *\n\t\t * @date\t14/12/17\n\t\t * @since\t5.6.5\n\t\t *\n\t\t * @param\tobject events {event1 : callback, event2 : callback, etc }\n\t\t * @return\tn/a\n\t\t */\n\n\t\tremoveEvents: function ( events ) {\n\t\t\tevents = events || this.events || null;\n\t\t\tif ( ! events ) return false;\n\t\t\tfor ( var key in events ) {\n\t\t\t\tvar match = key.match( delegateEventSplitter );\n\t\t\t\tthis.off( match[ 1 ], match[ 2 ], events[ key ] );\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * getEventTarget\n\t\t *\n\t\t * Returns a jQUery element to tigger an event on\n\t\t *\n\t\t * @date\t5/6/18\n\t\t * @since\t5.6.9\n\t\t *\n\t\t * @param\tjQuery $el\t\tThe default jQuery element. Optional.\n\t\t * @param\tstring event\tThe event name. Optional.\n\t\t * @return\tjQuery\n\t\t */\n\n\t\tgetEventTarget: function ( $el, event ) {\n\t\t\treturn $el || this.$el || $( document );\n\t\t},\n\n\t\t/**\n\t\t * validateEvent\n\t\t *\n\t\t * Returns true if the event target's closest $el is the same as this.$el\n\t\t * Requires both this.el and this.$el to be defined\n\t\t *\n\t\t * @date\t5/6/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\tvalidateEvent: function ( e ) {\n\t\t\tif ( this.eventScope ) {\n\t\t\t\treturn $( e.target ).closest( this.eventScope ).is( this.$el );\n\t\t\t} else {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * proxyEvent\n\t\t *\n\t\t * Returns a new event callback function scoped to this model\n\t\t *\n\t\t * @date\t29/3/18\n\t\t * @since\t5.6.9\n\t\t *\n\t\t * @param\tfunction callback\n\t\t * @return\tfunction\n\t\t */\n\n\t\tproxyEvent: function ( callback ) {\n\t\t\treturn this.proxy( function ( e ) {\n\t\t\t\t// validate\n\t\t\t\tif ( ! this.validateEvent( e ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// construct args\n\t\t\t\tvar args = acf.arrayArgs( arguments );\n\t\t\t\tvar extraArgs = args.slice( 1 );\n\t\t\t\tvar eventArgs = [ e, $( e.currentTarget ) ].concat( extraArgs );\n\n\t\t\t\t// callback\n\t\t\t\tcallback.apply( this, eventArgs );\n\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * on\n\t\t *\n\t\t * Adds an event handler similar to jQuery\n\t\t * Uses the instance 'cid' to namespace event\n\t\t *\n\t\t * @date\t14/12/17\n\t\t * @since\t5.6.5\n\t\t *\n\t\t * @param\tstring name\n\t\t * @param\tstring callback\n\t\t * @return\tn/a\n\t\t */\n\n\t\ton: function ( a1, a2, a3, a4 ) {\n\t\t\t// vars\n\t\t\tvar $el, event, selector, callback, args;\n\n\t\t\t// find args\n\t\t\tif ( a1 instanceof jQuery ) {\n\t\t\t\t// 1. args( $el, event, selector, callback )\n\t\t\t\tif ( a4 ) {\n\t\t\t\t\t$el = a1;\n\t\t\t\t\tevent = a2;\n\t\t\t\t\tselector = a3;\n\t\t\t\t\tcallback = a4;\n\n\t\t\t\t\t// 2. args( $el, event, callback )\n\t\t\t\t} else {\n\t\t\t\t\t$el = a1;\n\t\t\t\t\tevent = a2;\n\t\t\t\t\tcallback = a3;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// 3. args( event, selector, callback )\n\t\t\t\tif ( a3 ) {\n\t\t\t\t\tevent = a1;\n\t\t\t\t\tselector = a2;\n\t\t\t\t\tcallback = a3;\n\n\t\t\t\t\t// 4. args( event, callback )\n\t\t\t\t} else {\n\t\t\t\t\tevent = a1;\n\t\t\t\t\tcallback = a2;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// element\n\t\t\t$el = this.getEventTarget( $el );\n\n\t\t\t// modify callback\n\t\t\tif ( typeof callback === 'string' ) {\n\t\t\t\tcallback = this.proxyEvent( this[ callback ] );\n\t\t\t}\n\n\t\t\t// modify event\n\t\t\tevent = event + '.' + this.cid;\n\n\t\t\t// args\n\t\t\tif ( selector ) {\n\t\t\t\targs = [ event, selector, callback ];\n\t\t\t} else {\n\t\t\t\targs = [ event, callback ];\n\t\t\t}\n\n\t\t\t// on()\n\t\t\t$el.on.apply( $el, args );\n\t\t},\n\n\t\t/**\n\t\t * off\n\t\t *\n\t\t * Removes an event handler similar to jQuery\n\t\t *\n\t\t * @date\t14/12/17\n\t\t * @since\t5.6.5\n\t\t *\n\t\t * @param\tstring name\n\t\t * @param\tstring callback\n\t\t * @return\tn/a\n\t\t */\n\n\t\toff: function ( a1, a2, a3 ) {\n\t\t\t// vars\n\t\t\tvar $el, event, selector, args;\n\n\t\t\t// find args\n\t\t\tif ( a1 instanceof jQuery ) {\n\t\t\t\t// 1. args( $el, event, selector )\n\t\t\t\tif ( a3 ) {\n\t\t\t\t\t$el = a1;\n\t\t\t\t\tevent = a2;\n\t\t\t\t\tselector = a3;\n\n\t\t\t\t\t// 2. args( $el, event )\n\t\t\t\t} else {\n\t\t\t\t\t$el = a1;\n\t\t\t\t\tevent = a2;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// 3. args( event, selector )\n\t\t\t\tif ( a2 ) {\n\t\t\t\t\tevent = a1;\n\t\t\t\t\tselector = a2;\n\n\t\t\t\t\t// 4. args( event )\n\t\t\t\t} else {\n\t\t\t\t\tevent = a1;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// element\n\t\t\t$el = this.getEventTarget( $el );\n\n\t\t\t// modify event\n\t\t\tevent = event + '.' + this.cid;\n\n\t\t\t// args\n\t\t\tif ( selector ) {\n\t\t\t\targs = [ event, selector ];\n\t\t\t} else {\n\t\t\t\targs = [ event ];\n\t\t\t}\n\n\t\t\t// off()\n\t\t\t$el.off.apply( $el, args );\n\t\t},\n\n\t\t/**\n\t\t * trigger\n\t\t *\n\t\t * Triggers an event similar to jQuery\n\t\t *\n\t\t * @date\t14/12/17\n\t\t * @since\t5.6.5\n\t\t *\n\t\t * @param\tstring name\n\t\t * @param\tstring callback\n\t\t * @return\tn/a\n\t\t */\n\n\t\ttrigger: function ( name, args, bubbles ) {\n\t\t\tvar $el = this.getEventTarget();\n\t\t\tif ( bubbles ) {\n\t\t\t\t$el.trigger.apply( $el, arguments );\n\t\t\t} else {\n\t\t\t\t$el.triggerHandler.apply( $el, arguments );\n\t\t\t}\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * addActions\n\t\t *\n\t\t * Adds multiple action handlers\n\t\t *\n\t\t * @date\t14/12/17\n\t\t * @since\t5.6.5\n\t\t *\n\t\t * @param\tobject actions {action1 : callback, action2 : callback, etc }\n\t\t * @return\tn/a\n\t\t */\n\n\t\taddActions: function ( actions ) {\n\t\t\tactions = actions || this.actions || null;\n\t\t\tif ( ! actions ) return false;\n\t\t\tfor ( var i in actions ) {\n\t\t\t\tthis.addAction( i, actions[ i ] );\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * removeActions\n\t\t *\n\t\t * Removes multiple action handlers\n\t\t *\n\t\t * @date\t14/12/17\n\t\t * @since\t5.6.5\n\t\t *\n\t\t * @param\tobject actions {action1 : callback, action2 : callback, etc }\n\t\t * @return\tn/a\n\t\t */\n\n\t\tremoveActions: function ( actions ) {\n\t\t\tactions = actions || this.actions || null;\n\t\t\tif ( ! actions ) return false;\n\t\t\tfor ( var i in actions ) {\n\t\t\t\tthis.removeAction( i, actions[ i ] );\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * addAction\n\t\t *\n\t\t * Adds an action using the wp.hooks library\n\t\t *\n\t\t * @date\t14/12/17\n\t\t * @since\t5.6.5\n\t\t *\n\t\t * @param\tstring name\n\t\t * @param\tstring callback\n\t\t * @return\tn/a\n\t\t */\n\n\t\taddAction: function ( name, callback, priority ) {\n\t\t\t//console.log('addAction', name, priority);\n\t\t\t// defaults\n\t\t\tpriority = priority || this.priority;\n\n\t\t\t// modify callback\n\t\t\tif ( typeof callback === 'string' ) {\n\t\t\t\tcallback = this[ callback ];\n\t\t\t}\n\n\t\t\t// add\n\t\t\tacf.addAction( name, callback, priority, this );\n\t\t},\n\n\t\t/**\n\t\t * removeAction\n\t\t *\n\t\t * Remove an action using the wp.hooks library\n\t\t *\n\t\t * @date\t14/12/17\n\t\t * @since\t5.6.5\n\t\t *\n\t\t * @param\tstring name\n\t\t * @param\tstring callback\n\t\t * @return\tn/a\n\t\t */\n\n\t\tremoveAction: function ( name, callback ) {\n\t\t\tacf.removeAction( name, this[ callback ] );\n\t\t},\n\n\t\t/**\n\t\t * addFilters\n\t\t *\n\t\t * Adds multiple filter handlers\n\t\t *\n\t\t * @date\t14/12/17\n\t\t * @since\t5.6.5\n\t\t *\n\t\t * @param\tobject filters {filter1 : callback, filter2 : callback, etc }\n\t\t * @return\tn/a\n\t\t */\n\n\t\taddFilters: function ( filters ) {\n\t\t\tfilters = filters || this.filters || null;\n\t\t\tif ( ! filters ) return false;\n\t\t\tfor ( var i in filters ) {\n\t\t\t\tthis.addFilter( i, filters[ i ] );\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * addFilter\n\t\t *\n\t\t * Adds a filter using the wp.hooks library\n\t\t *\n\t\t * @date\t14/12/17\n\t\t * @since\t5.6.5\n\t\t *\n\t\t * @param\tstring name\n\t\t * @param\tstring callback\n\t\t * @return\tn/a\n\t\t */\n\n\t\taddFilter: function ( name, callback, priority ) {\n\t\t\t// defaults\n\t\t\tpriority = priority || this.priority;\n\n\t\t\t// modify callback\n\t\t\tif ( typeof callback === 'string' ) {\n\t\t\t\tcallback = this[ callback ];\n\t\t\t}\n\n\t\t\t// add\n\t\t\tacf.addFilter( name, callback, priority, this );\n\t\t},\n\n\t\t/**\n\t\t * removeFilters\n\t\t *\n\t\t * Removes multiple filter handlers\n\t\t *\n\t\t * @date\t14/12/17\n\t\t * @since\t5.6.5\n\t\t *\n\t\t * @param\tobject filters {filter1 : callback, filter2 : callback, etc }\n\t\t * @return\tn/a\n\t\t */\n\n\t\tremoveFilters: function ( filters ) {\n\t\t\tfilters = filters || this.filters || null;\n\t\t\tif ( ! filters ) return false;\n\t\t\tfor ( var i in filters ) {\n\t\t\t\tthis.removeFilter( i, filters[ i ] );\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * removeFilter\n\t\t *\n\t\t * Remove a filter using the wp.hooks library\n\t\t *\n\t\t * @date\t14/12/17\n\t\t * @since\t5.6.5\n\t\t *\n\t\t * @param\tstring name\n\t\t * @param\tstring callback\n\t\t * @return\tn/a\n\t\t */\n\n\t\tremoveFilter: function ( name, callback ) {\n\t\t\tacf.removeFilter( name, this[ callback ] );\n\t\t},\n\n\t\t/**\n\t\t * $\n\t\t *\n\t\t * description\n\t\t *\n\t\t * @date\t16/12/17\n\t\t * @since\t5.6.5\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 ( selector ) {\n\t\t\treturn this.$el.find( selector );\n\t\t},\n\n\t\t/**\n\t\t * remove\n\t\t *\n\t\t * Removes the element and listenters\n\t\t *\n\t\t * @date\t19/12/17\n\t\t * @since\t5.6.5\n\t\t *\n\t\t * @param\ttype $var Description. Default.\n\t\t * @return\ttype Description.\n\t\t */\n\n\t\tremove: function () {\n\t\t\tthis.removeEvents();\n\t\t\tthis.removeActions();\n\t\t\tthis.removeFilters();\n\t\t\tthis.$el.remove();\n\t\t},\n\n\t\t/**\n\t\t * setTimeout\n\t\t *\n\t\t * description\n\t\t *\n\t\t * @date\t16/1/18\n\t\t * @since\t5.6.5\n\t\t *\n\t\t * @param\ttype $var Description. Default.\n\t\t * @return\ttype Description.\n\t\t */\n\n\t\tsetTimeout: function ( callback, milliseconds ) {\n\t\t\treturn setTimeout( this.proxy( callback ), milliseconds );\n\t\t},\n\n\t\t/**\n\t\t * time\n\t\t *\n\t\t * used for debugging\n\t\t *\n\t\t * @date\t7/3/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\ttime: function () {\n\t\t\tconsole.time( this.id || this.cid );\n\t\t},\n\n\t\t/**\n\t\t * timeEnd\n\t\t *\n\t\t * used for debugging\n\t\t *\n\t\t * @date\t7/3/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\ttimeEnd: function () {\n\t\t\tconsole.timeEnd( this.id || this.cid );\n\t\t},\n\n\t\t/**\n\t\t * show\n\t\t *\n\t\t * description\n\t\t *\n\t\t * @date\t15/3/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\tshow: function () {\n\t\t\tacf.show( this.$el );\n\t\t},\n\n\t\t/**\n\t\t * hide\n\t\t *\n\t\t * description\n\t\t *\n\t\t * @date\t15/3/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\thide: function () {\n\t\t\tacf.hide( this.$el );\n\t\t},\n\n\t\t/**\n\t\t * proxy\n\t\t *\n\t\t * Returns a new function scoped to this model\n\t\t *\n\t\t * @date\t29/3/18\n\t\t * @since\t5.6.9\n\t\t *\n\t\t * @param\tfunction callback\n\t\t * @return\tfunction\n\t\t */\n\n\t\tproxy: function ( callback ) {\n\t\t\treturn $.proxy( callback, this );\n\t\t},\n\t} );\n\n\t// Set up inheritance for the model\n\tModel.extend = extend;\n\n\t// Global model storage\n\tacf.models = {};\n\n\t/**\n\t * acf.getInstance\n\t *\n\t * This function will get an instance from an element\n\t *\n\t * @date\t5/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.getInstance = function ( $el ) {\n\t\treturn $el.data( 'acf' );\n\t};\n\n\t/**\n\t * acf.getInstances\n\t *\n\t * This function will get an array of instances from multiple elements\n\t *\n\t * @date\t5/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.getInstances = function ( $el ) {\n\t\tvar instances = [];\n\t\t$el.each( function () {\n\t\t\tinstances.push( acf.getInstance( $( this ) ) );\n\t\t} );\n\t\treturn instances;\n\t};\n} )( jQuery );\n","( function ( $, undefined ) {\n\tvar Notice = acf.Model.extend( {\n\t\tdata: {\n\t\t\ttext: '',\n\t\t\ttype: '',\n\t\t\ttimeout: 0,\n\t\t\tdismiss: true,\n\t\t\ttarget: false,\n\t\t\tclose: function () {},\n\t\t},\n\n\t\tevents: {\n\t\t\t'click .acf-notice-dismiss': 'onClickClose',\n\t\t},\n\n\t\ttmpl: function () {\n\t\t\treturn '<div class=\"acf-notice\"></div>';\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},\n\n\t\tinitialize: function () {\n\t\t\t// render\n\t\t\tthis.render();\n\n\t\t\t// show\n\t\t\tthis.show();\n\t\t},\n\n\t\trender: function () {\n\t\t\t// class\n\t\t\tthis.type( this.get( 'type' ) );\n\n\t\t\t// text\n\t\t\tthis.html( '<p>' + this.get( 'text' ) + '</p>' );\n\n\t\t\t// close\n\t\t\tif ( this.get( 'dismiss' ) ) {\n\t\t\t\tthis.$el.append(\n\t\t\t\t\t'<a href=\"#\" class=\"acf-notice-dismiss acf-icon -cancel small\"></a>'\n\t\t\t\t);\n\t\t\t\tthis.$el.addClass( '-dismiss' );\n\t\t\t}\n\n\t\t\t// timeout\n\t\t\tvar timeout = this.get( 'timeout' );\n\t\t\tif ( timeout ) {\n\t\t\t\tthis.away( timeout );\n\t\t\t}\n\t\t},\n\n\t\tupdate: function ( props ) {\n\t\t\t// update\n\t\t\t$.extend( this.data, props );\n\n\t\t\t// re-initialize\n\t\t\tthis.initialize();\n\n\t\t\t// refresh events\n\t\t\tthis.removeEvents();\n\t\t\tthis.addEvents();\n\t\t},\n\n\t\tshow: function () {\n\t\t\tvar $target = this.get( 'target' );\n\t\t\tif ( $target ) {\n\t\t\t\t$target.prepend( this.$el );\n\t\t\t}\n\t\t},\n\n\t\thide: function () {\n\t\t\tthis.$el.remove();\n\t\t},\n\n\t\taway: function ( timeout ) {\n\t\t\tthis.setTimeout( function () {\n\t\t\t\tacf.remove( this.$el );\n\t\t\t}, timeout );\n\t\t},\n\n\t\ttype: function ( type ) {\n\t\t\t// remove prev type\n\t\t\tvar prevType = this.get( 'type' );\n\t\t\tif ( prevType ) {\n\t\t\t\tthis.$el.removeClass( '-' + prevType );\n\t\t\t}\n\n\t\t\t// add new type\n\t\t\tthis.$el.addClass( '-' + type );\n\n\t\t\t// backwards compatibility\n\t\t\tif ( type == 'error' ) {\n\t\t\t\tthis.$el.addClass( 'acf-error-message' );\n\t\t\t}\n\t\t},\n\n\t\thtml: function ( html ) {\n\t\t\tthis.$el.html( acf.escHtml( html ) );\n\t\t},\n\n\t\ttext: function ( text ) {\n\t\t\tthis.$( 'p' ).html( acf.escHtml( text ) );\n\t\t},\n\n\t\tonClickClose: function ( e, $el ) {\n\t\t\te.preventDefault();\n\t\t\tthis.get( 'close' ).apply( this, arguments );\n\t\t\tthis.remove();\n\t\t},\n\t} );\n\n\tacf.newNotice = function ( props ) {\n\t\t// ensure object\n\t\tif ( typeof props !== 'object' ) {\n\t\t\tprops = { text: props };\n\t\t}\n\n\t\t// instantiate\n\t\treturn new Notice( props );\n\t};\n\n\tvar noticeManager = new acf.Model( {\n\t\twait: 'prepare',\n\t\tpriority: 1,\n\t\tinitialize: function () {\n\t\t\t// vars\n\t\t\tvar $notice = $( '.acf-admin-notice' );\n\n\t\t\t// move to avoid WP flicker\n\t\t\tif ( $notice.length ) {\n\t\t\t\t$( 'h1:first' ).after( $notice );\n\t\t\t}\n\t\t},\n\t} );\n} )( jQuery );\n","( function ( $, undefined ) {\n\tvar panel = new acf.Model( {\n\t\tevents: {\n\t\t\t'click .acf-panel-title': 'onClick',\n\t\t},\n\n\t\tonClick: function ( e, $el ) {\n\t\t\te.preventDefault();\n\t\t\tthis.toggle( $el.parent() );\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\tthis.isOpen( $el ) ? this.close( $el ) : this.open( $el );\n\t\t},\n\n\t\topen: function ( $el ) {\n\t\t\t$el.addClass( '-open' );\n\t\t\t$el.find( '.acf-panel-title i' ).attr(\n\t\t\t\t'class',\n\t\t\t\t'dashicons dashicons-arrow-down'\n\t\t\t);\n\t\t},\n\n\t\tclose: function ( $el ) {\n\t\t\t$el.removeClass( '-open' );\n\t\t\t$el.find( '.acf-panel-title i' ).attr(\n\t\t\t\t'class',\n\t\t\t\t'dashicons dashicons-arrow-right'\n\t\t\t);\n\t\t},\n\t} );\n} )( jQuery );\n","( function ( $, undefined ) {\n\tacf.models.Popup = acf.Model.extend( {\n\t\tdata: {\n\t\t\ttitle: '',\n\t\t\tcontent: '',\n\t\t\twidth: 0,\n\t\t\theight: 0,\n\t\t\tloading: false,\n\t\t},\n\n\t\tevents: {\n\t\t\t'click [data-event=\"close\"]': 'onClickClose',\n\t\t\t'click .acf-close-popup': 'onClickClose',\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},\n\n\t\tinitialize: function () {\n\t\t\tthis.render();\n\t\t\tthis.open();\n\t\t},\n\n\t\ttmpl: function () {\n\t\t\treturn [\n\t\t\t\t'<div id=\"acf-popup\">',\n\t\t\t\t'<div class=\"acf-popup-box acf-box\">',\n\t\t\t\t'<div class=\"title\"><h3></h3><a href=\"#\" class=\"acf-icon -cancel grey\" data-event=\"close\"></a></div>',\n\t\t\t\t'<div class=\"inner\"></div>',\n\t\t\t\t'<div class=\"loading\"><i class=\"acf-loading\"></i></div>',\n\t\t\t\t'</div>',\n\t\t\t\t'<div class=\"bg\" data-event=\"close\"></div>',\n\t\t\t\t'</div>',\n\t\t\t].join( '' );\n\t\t},\n\n\t\trender: function () {\n\t\t\t// Extract Vars.\n\t\t\tvar title = this.get( 'title' );\n\t\t\tvar content = this.get( 'content' );\n\t\t\tvar loading = this.get( 'loading' );\n\t\t\tvar width = this.get( 'width' );\n\t\t\tvar height = this.get( 'height' );\n\n\t\t\t// Update.\n\t\t\tthis.title( title );\n\t\t\tthis.content( content );\n\t\t\tif ( width ) {\n\t\t\t\tthis.$( '.acf-popup-box' ).css( 'width', width );\n\t\t\t}\n\t\t\tif ( height ) {\n\t\t\t\tthis.$( '.acf-popup-box' ).css( 'min-height', height );\n\t\t\t}\n\t\t\tthis.loading( loading );\n\n\t\t\t// Trigger action.\n\t\t\tacf.doAction( 'append', this.$el );\n\t\t},\n\n\t\tupdate: function ( props ) {\n\t\t\tthis.data = acf.parseArgs( props, this.data );\n\t\t\tthis.render();\n\t\t},\n\n\t\ttitle: function ( title ) {\n\t\t\tthis.$( '.title:first h3' ).html( title );\n\t\t},\n\n\t\tcontent: function ( content ) {\n\t\t\tthis.$( '.inner:first' ).html( content );\n\t\t},\n\n\t\tloading: function ( show ) {\n\t\t\tvar $loading = this.$( '.loading:first' );\n\t\t\tshow ? $loading.show() : $loading.hide();\n\t\t},\n\n\t\topen: function () {\n\t\t\t$( 'body' ).append( this.$el );\n\t\t},\n\n\t\tclose: function () {\n\t\t\tthis.remove();\n\t\t},\n\n\t\tonClickClose: function ( e, $el ) {\n\t\t\te.preventDefault();\n\t\t\tthis.close();\n\t\t},\n\t} );\n\n\t/**\n\t * newPopup\n\t *\n\t * Creates a new Popup with the supplied props\n\t *\n\t * @date\t17/12/17\n\t * @since\t5.6.5\n\t *\n\t * @param\tobject props\n\t * @return\tobject\n\t */\n\n\tacf.newPopup = function ( props ) {\n\t\treturn new acf.models.Popup( props );\n\t};\n} )( jQuery );\n","( function ( $, undefined ) {\n\tacf.newTooltip = function ( props ) {\n\t\t// ensure object\n\t\tif ( typeof props !== 'object' ) {\n\t\t\tprops = { text: props };\n\t\t}\n\n\t\t// confirmRemove\n\t\tif ( props.confirmRemove !== undefined ) {\n\t\t\tprops.textConfirm = acf.__( 'Remove' );\n\t\t\tprops.textCancel = acf.__( 'Cancel' );\n\t\t\treturn new TooltipConfirm( props );\n\n\t\t\t// confirm\n\t\t} else if ( props.confirm !== undefined ) {\n\t\t\treturn new TooltipConfirm( props );\n\n\t\t\t// default\n\t\t} else {\n\t\t\treturn new Tooltip( props );\n\t\t}\n\t};\n\n\tvar Tooltip = acf.Model.extend( {\n\t\tdata: {\n\t\t\ttext: '',\n\t\t\ttimeout: 0,\n\t\t\ttarget: null,\n\t\t},\n\n\t\ttmpl: function () {\n\t\t\treturn '<div class=\"acf-tooltip\"></div>';\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},\n\n\t\tinitialize: function () {\n\t\t\t// render\n\t\t\tthis.render();\n\n\t\t\t// append\n\t\t\tthis.show();\n\n\t\t\t// position\n\t\t\tthis.position();\n\n\t\t\t// timeout\n\t\t\tvar timeout = this.get( 'timeout' );\n\t\t\tif ( timeout ) {\n\t\t\t\tsetTimeout( $.proxy( this.fade, this ), timeout );\n\t\t\t}\n\t\t},\n\n\t\tupdate: function ( props ) {\n\t\t\t$.extend( this.data, props );\n\t\t\tthis.initialize();\n\t\t},\n\n\t\trender: function () {\n\t\t\tthis.html( this.get( 'text' ) );\n\t\t},\n\n\t\tshow: function () {\n\t\t\t$( 'body' ).append( this.$el );\n\t\t},\n\n\t\thide: function () {\n\t\t\tthis.$el.remove();\n\t\t},\n\n\t\tfade: function () {\n\t\t\t// add class\n\t\t\tthis.$el.addClass( 'acf-fade-up' );\n\n\t\t\t// remove\n\t\t\tthis.setTimeout( function () {\n\t\t\t\tthis.remove();\n\t\t\t}, 250 );\n\t\t},\n\n\t\thtml: function ( html ) {\n\t\t\tthis.$el.html( html );\n\t\t},\n\n\t\tposition: function () {\n\t\t\t// vars\n\t\t\tvar $tooltip = this.$el;\n\t\t\tvar $target = this.get( 'target' );\n\t\t\tif ( ! $target ) return;\n\n\t\t\t// Reset position.\n\t\t\t$tooltip\n\t\t\t\t.removeClass( 'right left bottom top' )\n\t\t\t\t.css( { top: 0, left: 0 } );\n\n\t\t\t// Declare tollerance to edge of screen.\n\t\t\tvar tolerance = 10;\n\n\t\t\t// Find target position.\n\t\t\tvar targetWidth = $target.outerWidth();\n\t\t\tvar targetHeight = $target.outerHeight();\n\t\t\tvar targetTop = $target.offset().top;\n\t\t\tvar targetLeft = $target.offset().left;\n\n\t\t\t// Find tooltip position.\n\t\t\tvar tooltipWidth = $tooltip.outerWidth();\n\t\t\tvar tooltipHeight = $tooltip.outerHeight();\n\t\t\tvar tooltipTop = $tooltip.offset().top; // Should be 0, but WP media grid causes this to be 32 (toolbar padding).\n\n\t\t\t// Assume default top alignment.\n\t\t\tvar top = targetTop - tooltipHeight - tooltipTop;\n\t\t\tvar left = targetLeft + targetWidth / 2 - tooltipWidth / 2;\n\n\t\t\t// Check if too far left.\n\t\t\tif ( left < tolerance ) {\n\t\t\t\t$tooltip.addClass( 'right' );\n\t\t\t\tleft = targetLeft + targetWidth;\n\t\t\t\ttop =\n\t\t\t\t\ttargetTop +\n\t\t\t\t\ttargetHeight / 2 -\n\t\t\t\t\ttooltipHeight / 2 -\n\t\t\t\t\ttooltipTop;\n\n\t\t\t\t// Check if too far right.\n\t\t\t} else if (\n\t\t\t\tleft + tooltipWidth + tolerance >\n\t\t\t\t$( window ).width()\n\t\t\t) {\n\t\t\t\t$tooltip.addClass( 'left' );\n\t\t\t\tleft = targetLeft - tooltipWidth;\n\t\t\t\ttop =\n\t\t\t\t\ttargetTop +\n\t\t\t\t\ttargetHeight / 2 -\n\t\t\t\t\ttooltipHeight / 2 -\n\t\t\t\t\ttooltipTop;\n\n\t\t\t\t// Check if too far up.\n\t\t\t} else if ( top - $( window ).scrollTop() < tolerance ) {\n\t\t\t\t$tooltip.addClass( 'bottom' );\n\t\t\t\ttop = targetTop + targetHeight - tooltipTop;\n\n\t\t\t\t// No colision with edges.\n\t\t\t} else {\n\t\t\t\t$tooltip.addClass( 'top' );\n\t\t\t}\n\n\t\t\t// update css\n\t\t\t$tooltip.css( { top: top, left: left } );\n\t\t},\n\t} );\n\n\tvar TooltipConfirm = Tooltip.extend( {\n\t\tdata: {\n\t\t\ttext: '',\n\t\t\ttextConfirm: '',\n\t\t\ttextCancel: '',\n\t\t\ttarget: null,\n\t\t\ttargetConfirm: true,\n\t\t\tconfirm: function () {},\n\t\t\tcancel: function () {},\n\t\t\tcontext: false,\n\t\t},\n\n\t\tevents: {\n\t\t\t'click [data-event=\"cancel\"]': 'onCancel',\n\t\t\t'click [data-event=\"confirm\"]': 'onConfirm',\n\t\t},\n\n\t\taddEvents: function () {\n\t\t\t// add events\n\t\t\tacf.Model.prototype.addEvents.apply( this );\n\n\t\t\t// vars\n\t\t\tvar $document = $( document );\n\t\t\tvar $target = this.get( 'target' );\n\n\t\t\t// add global 'cancel' click event\n\t\t\t// - use timeout to avoid the current 'click' event triggering the onCancel function\n\t\t\tthis.setTimeout( function () {\n\t\t\t\tthis.on( $document, 'click', 'onCancel' );\n\t\t\t} );\n\n\t\t\t// add target 'confirm' click event\n\t\t\t// - allow setting to control this feature\n\t\t\tif ( this.get( 'targetConfirm' ) ) {\n\t\t\t\tthis.on( $target, 'click', 'onConfirm' );\n\t\t\t}\n\t\t},\n\n\t\tremoveEvents: function () {\n\t\t\t// remove events\n\t\t\tacf.Model.prototype.removeEvents.apply( this );\n\n\t\t\t// vars\n\t\t\tvar $document = $( document );\n\t\t\tvar $target = this.get( 'target' );\n\n\t\t\t// remove custom events\n\t\t\tthis.off( $document, 'click' );\n\t\t\tthis.off( $target, 'click' );\n\t\t},\n\n\t\trender: function () {\n\t\t\t// defaults\n\t\t\tvar text = this.get( 'text' ) || acf.__( 'Are you sure?' );\n\t\t\tvar textConfirm = this.get( 'textConfirm' ) || acf.__( 'Yes' );\n\t\t\tvar textCancel = this.get( 'textCancel' ) || acf.__( 'No' );\n\n\t\t\t// html\n\t\t\tvar html = [\n\t\t\t\ttext,\n\t\t\t\t'<a href=\"#\" data-event=\"confirm\">' + textConfirm + '</a>',\n\t\t\t\t'<a href=\"#\" data-event=\"cancel\">' + textCancel + '</a>',\n\t\t\t].join( ' ' );\n\n\t\t\t// html\n\t\t\tthis.html( html );\n\n\t\t\t// class\n\t\t\tthis.$el.addClass( '-confirm' );\n\t\t},\n\n\t\tonCancel: function ( e, $el ) {\n\t\t\t// prevent default\n\t\t\te.preventDefault();\n\t\t\te.stopImmediatePropagation();\n\n\t\t\t// callback\n\t\t\tvar callback = this.get( 'cancel' );\n\t\t\tvar context = this.get( 'context' ) || this;\n\t\t\tcallback.apply( context, arguments );\n\n\t\t\t//remove\n\t\t\tthis.remove();\n\t\t},\n\n\t\tonConfirm: function ( e, $el ) {\n\t\t\t// Prevent event from propagating completely to allow \"targetConfirm\" to be clicked.\n\t\t\te.preventDefault();\n\t\t\te.stopImmediatePropagation();\n\n\t\t\t// callback\n\t\t\tvar callback = this.get( 'confirm' );\n\t\t\tvar context = this.get( 'context' ) || this;\n\t\t\tcallback.apply( context, arguments );\n\n\t\t\t//remove\n\t\t\tthis.remove();\n\t\t},\n\t} );\n\n\t// storage\n\tacf.models.Tooltip = Tooltip;\n\tacf.models.TooltipConfirm = TooltipConfirm;\n\n\t/**\n\t * tooltipManager\n\t *\n\t * description\n\t *\n\t * @date\t17/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 tooltipHoverHelper = new acf.Model( {\n\t\ttooltip: false,\n\n\t\tevents: {\n\t\t\t'mouseenter .acf-js-tooltip': 'showTitle',\n\t\t\t'mouseup .acf-js-tooltip': 'hideTitle',\n\t\t\t'mouseleave .acf-js-tooltip': 'hideTitle',\n\t\t},\n\n\t\tshowTitle: function ( e, $el ) {\n\t\t\t// vars\n\t\t\tvar title = $el.attr( 'title' );\n\n\t\t\t// bail ealry if no title\n\t\t\tif ( ! title ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// clear title to avoid default browser tooltip\n\t\t\t$el.attr( 'title', '' );\n\n\t\t\t// create\n\t\t\tif ( ! this.tooltip ) {\n\t\t\t\tthis.tooltip = acf.newTooltip( {\n\t\t\t\t\ttext: title,\n\t\t\t\t\ttarget: $el,\n\t\t\t\t} );\n\n\t\t\t\t// update\n\t\t\t} else {\n\t\t\t\tthis.tooltip.update( {\n\t\t\t\t\ttext: title,\n\t\t\t\t\ttarget: $el,\n\t\t\t\t} );\n\t\t\t}\n\t\t},\n\n\t\thideTitle: function ( e, $el ) {\n\t\t\t// hide tooltip\n\t\t\tthis.tooltip.hide();\n\n\t\t\t// restore title\n\t\t\t$el.attr( 'title', this.tooltip.get( 'text' ) );\n\t\t},\n\t} );\n} )( jQuery );\n","( function ( $, undefined ) {\n\t/**\n\t * acf\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\t// The global acf object\n\tvar acf = {};\n\n\t// Set as a browser global\n\twindow.acf = acf;\n\n\t/** @var object Data sent from PHP */\n\tacf.data = {};\n\n\t/**\n\t * get\n\t *\n\t * Gets a specific data value\n\t *\n\t * @date\t14/12/17\n\t * @since\t5.6.5\n\t *\n\t * @param\tstring name\n\t * @return\tmixed\n\t */\n\n\tacf.get = function ( name ) {\n\t\treturn this.data[ name ] || null;\n\t};\n\n\t/**\n\t * has\n\t *\n\t * Returns `true` if the data exists and is not null\n\t *\n\t * @date\t14/12/17\n\t * @since\t5.6.5\n\t *\n\t * @param\tstring name\n\t * @return\tboolean\n\t */\n\n\tacf.has = function ( name ) {\n\t\treturn this.get( name ) !== null;\n\t};\n\n\t/**\n\t * set\n\t *\n\t * Sets a specific data value\n\t *\n\t * @date\t14/12/17\n\t * @since\t5.6.5\n\t *\n\t * @param\tstring name\n\t * @param\tmixed value\n\t * @return\tthis\n\t */\n\n\tacf.set = function ( name, value ) {\n\t\tthis.data[ name ] = value;\n\t\treturn this;\n\t};\n\n\t/**\n\t * uniqueId\n\t *\n\t * Returns a unique ID\n\t *\n\t * @date\t9/11/17\n\t * @since\t5.6.3\n\t *\n\t * @param\tstring prefix Optional prefix.\n\t * @return\tstring\n\t */\n\n\tvar idCounter = 0;\n\tacf.uniqueId = function ( prefix ) {\n\t\tvar id = ++idCounter + '';\n\t\treturn prefix ? prefix + id : id;\n\t};\n\n\t/**\n\t * acf.uniqueArray\n\t *\n\t * Returns a new array with only unique values\n\t * Credit: https://stackoverflow.com/questions/1960473/get-all-unique-values-in-an-array-remove-duplicates\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.uniqueArray = function ( array ) {\n\t\tfunction onlyUnique( value, index, self ) {\n\t\t\treturn self.indexOf( value ) === index;\n\t\t}\n\t\treturn array.filter( onlyUnique );\n\t};\n\n\t/**\n\t * uniqid\n\t *\n\t * Returns a unique ID (PHP version)\n\t *\n\t * @date\t9/11/17\n\t * @since\t5.6.3\n\t * @source\thttp://locutus.io/php/misc/uniqid/\n\t *\n\t * @param\tstring prefix Optional prefix.\n\t * @return\tstring\n\t */\n\n\tvar uniqidSeed = '';\n\tacf.uniqid = function ( prefix, moreEntropy ) {\n\t\t// discuss at: http://locutus.io/php/uniqid/\n\t\t// original by: Kevin van Zonneveld (http://kvz.io)\n\t\t// revised by: Kankrelune (http://www.webfaktory.info/)\n\t\t// note 1: Uses an internal counter (in locutus global) to avoid collision\n\t\t// example 1: var $id = uniqid()\n\t\t// example 1: var $result = $id.length === 13\n\t\t// returns 1: true\n\t\t// example 2: var $id = uniqid('foo')\n\t\t// example 2: var $result = $id.length === (13 + 'foo'.length)\n\t\t// returns 2: true\n\t\t// example 3: var $id = uniqid('bar', true)\n\t\t// example 3: var $result = $id.length === (23 + 'bar'.length)\n\t\t// returns 3: true\n\t\tif ( typeof prefix === 'undefined' ) {\n\t\t\tprefix = '';\n\t\t}\n\n\t\tvar retId;\n\t\tvar formatSeed = function ( seed, reqWidth ) {\n\t\t\tseed = parseInt( seed, 10 ).toString( 16 ); // to hex str\n\t\t\tif ( reqWidth < seed.length ) {\n\t\t\t\t// so long we split\n\t\t\t\treturn seed.slice( seed.length - reqWidth );\n\t\t\t}\n\t\t\tif ( reqWidth > seed.length ) {\n\t\t\t\t// so short we pad\n\t\t\t\treturn (\n\t\t\t\t\tArray( 1 + ( reqWidth - seed.length ) ).join( '0' ) + seed\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn seed;\n\t\t};\n\n\t\tif ( ! uniqidSeed ) {\n\t\t\t// init seed with big random int\n\t\t\tuniqidSeed = Math.floor( Math.random() * 0x75bcd15 );\n\t\t}\n\t\tuniqidSeed++;\n\n\t\tretId = prefix; // start with prefix, add current milliseconds hex string\n\t\tretId += formatSeed( parseInt( new Date().getTime() / 1000, 10 ), 8 );\n\t\tretId += formatSeed( uniqidSeed, 5 ); // add seed hex string\n\t\tif ( moreEntropy ) {\n\t\t\t// for more entropy we add a float lower to 10\n\t\t\tretId += ( Math.random() * 10 ).toFixed( 8 ).toString();\n\t\t}\n\n\t\treturn retId;\n\t};\n\n\t/**\n\t * strReplace\n\t *\n\t * Performs a string replace\n\t *\n\t * @date\t14/12/17\n\t * @since\t5.6.5\n\t *\n\t * @param\tstring search\n\t * @param\tstring replace\n\t * @param\tstring subject\n\t * @return\tstring\n\t */\n\n\tacf.strReplace = function ( search, replace, subject ) {\n\t\treturn subject.split( search ).join( replace );\n\t};\n\n\t/**\n\t * strCamelCase\n\t *\n\t * Converts a string into camelCase\n\t * Thanks to https://stackoverflow.com/questions/2970525/converting-any-string-into-camel-case\n\t *\n\t * @date\t14/12/17\n\t * @since\t5.6.5\n\t *\n\t * @param\tstring str\n\t * @return\tstring\n\t */\n\n\tacf.strCamelCase = function ( str ) {\n\t\tvar matches = str.match( /([a-zA-Z0-9]+)/g );\n\t\treturn matches\n\t\t\t? matches\n\t\t\t\t\t.map( function ( s, i ) {\n\t\t\t\t\t\tvar c = s.charAt( 0 );\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t( i === 0 ? c.toLowerCase() : c.toUpperCase() ) +\n\t\t\t\t\t\t\ts.slice( 1 )\n\t\t\t\t\t\t);\n\t\t\t\t\t} )\n\t\t\t\t\t.join( '' )\n\t\t\t: '';\n\t};\n\n\t/**\n\t * strPascalCase\n\t *\n\t * Converts a string into PascalCase\n\t * Thanks to https://stackoverflow.com/questions/1026069/how-do-i-make-the-first-letter-of-a-string-uppercase-in-javascript\n\t *\n\t * @date\t14/12/17\n\t * @since\t5.6.5\n\t *\n\t * @param\tstring str\n\t * @return\tstring\n\t */\n\n\tacf.strPascalCase = function ( str ) {\n\t\tvar camel = acf.strCamelCase( str );\n\t\treturn camel.charAt( 0 ).toUpperCase() + camel.slice( 1 );\n\t};\n\n\t/**\n\t * acf.strSlugify\n\t *\n\t * Converts a string into a HTML class friendly slug\n\t *\n\t * @date\t21/3/18\n\t * @since\t5.6.9\n\t *\n\t * @param\tstring str\n\t * @return\tstring\n\t */\n\n\tacf.strSlugify = function ( str ) {\n\t\treturn acf.strReplace( '_', '-', str.toLowerCase() );\n\t};\n\n\tacf.strSanitize = function ( str ) {\n\t\t// chars (https://jsperf.com/replace-foreign-characters)\n\t\tvar map = {\n\t\t\tÀ: 'A',\n\t\t\tÁ: 'A',\n\t\t\tÂ: 'A',\n\t\t\tÃ: 'A',\n\t\t\tÄ: 'A',\n\t\t\tÅ: 'A',\n\t\t\tÆ: 'AE',\n\t\t\tÇ: 'C',\n\t\t\tÈ: 'E',\n\t\t\tÉ: 'E',\n\t\t\tÊ: 'E',\n\t\t\tË: 'E',\n\t\t\tÌ: 'I',\n\t\t\tÍ: 'I',\n\t\t\tÎ: 'I',\n\t\t\tÏ: 'I',\n\t\t\tÐ: 'D',\n\t\t\tÑ: 'N',\n\t\t\tÒ: 'O',\n\t\t\tÓ: 'O',\n\t\t\tÔ: 'O',\n\t\t\tÕ: 'O',\n\t\t\tÖ: 'O',\n\t\t\tØ: 'O',\n\t\t\tÙ: 'U',\n\t\t\tÚ: 'U',\n\t\t\tÛ: 'U',\n\t\t\tÜ: 'U',\n\t\t\tÝ: 'Y',\n\t\t\tß: 's',\n\t\t\tà: 'a',\n\t\t\tá: 'a',\n\t\t\tâ: 'a',\n\t\t\tã: 'a',\n\t\t\tä: 'a',\n\t\t\tå: 'a',\n\t\t\tæ: 'ae',\n\t\t\tç: 'c',\n\t\t\tè: 'e',\n\t\t\té: 'e',\n\t\t\tê: 'e',\n\t\t\të: 'e',\n\t\t\tì: 'i',\n\t\t\tí: 'i',\n\t\t\tî: 'i',\n\t\t\tï: 'i',\n\t\t\tñ: 'n',\n\t\t\tò: 'o',\n\t\t\tó: 'o',\n\t\t\tô: 'o',\n\t\t\tõ: 'o',\n\t\t\tö: 'o',\n\t\t\tø: 'o',\n\t\t\tù: 'u',\n\t\t\tú: 'u',\n\t\t\tû: 'u',\n\t\t\tü: 'u',\n\t\t\tý: 'y',\n\t\t\tÿ: 'y',\n\t\t\tĀ: 'A',\n\t\t\tā: 'a',\n\t\t\tĂ: 'A',\n\t\t\tă: 'a',\n\t\t\tĄ: 'A',\n\t\t\tą: 'a',\n\t\t\tĆ: 'C',\n\t\t\tć: 'c',\n\t\t\tĈ: 'C',\n\t\t\tĉ: 'c',\n\t\t\tĊ: 'C',\n\t\t\tċ: 'c',\n\t\t\tČ: 'C',\n\t\t\tč: 'c',\n\t\t\tĎ: 'D',\n\t\t\tď: 'd',\n\t\t\tĐ: 'D',\n\t\t\tđ: 'd',\n\t\t\tĒ: 'E',\n\t\t\tē: 'e',\n\t\t\tĔ: 'E',\n\t\t\tĕ: 'e',\n\t\t\tĖ: 'E',\n\t\t\tė: 'e',\n\t\t\tĘ: 'E',\n\t\t\tę: 'e',\n\t\t\tĚ: 'E',\n\t\t\tě: 'e',\n\t\t\tĜ: 'G',\n\t\t\tĝ: 'g',\n\t\t\tĞ: 'G',\n\t\t\tğ: 'g',\n\t\t\tĠ: 'G',\n\t\t\tġ: 'g',\n\t\t\tĢ: 'G',\n\t\t\tģ: 'g',\n\t\t\tĤ: 'H',\n\t\t\tĥ: 'h',\n\t\t\tĦ: 'H',\n\t\t\tħ: 'h',\n\t\t\tĨ: 'I',\n\t\t\tĩ: 'i',\n\t\t\tĪ: 'I',\n\t\t\tī: 'i',\n\t\t\tĬ: 'I',\n\t\t\tĭ: 'i',\n\t\t\tĮ: 'I',\n\t\t\tį: 'i',\n\t\t\tİ: 'I',\n\t\t\tı: 'i',\n\t\t\tIJ: 'IJ',\n\t\t\tij: 'ij',\n\t\t\tĴ: 'J',\n\t\t\tĵ: 'j',\n\t\t\tĶ: 'K',\n\t\t\tķ: 'k',\n\t\t\tĹ: 'L',\n\t\t\tĺ: 'l',\n\t\t\tĻ: 'L',\n\t\t\tļ: 'l',\n\t\t\tĽ: 'L',\n\t\t\tľ: 'l',\n\t\t\tĿ: 'L',\n\t\t\tŀ: 'l',\n\t\t\tŁ: 'l',\n\t\t\tł: 'l',\n\t\t\tŃ: 'N',\n\t\t\tń: 'n',\n\t\t\tŅ: 'N',\n\t\t\tņ: 'n',\n\t\t\tŇ: 'N',\n\t\t\tň: 'n',\n\t\t\tʼn: 'n',\n\t\t\tŌ: 'O',\n\t\t\tō: 'o',\n\t\t\tŎ: 'O',\n\t\t\tŏ: 'o',\n\t\t\tŐ: 'O',\n\t\t\tő: 'o',\n\t\t\tŒ: 'OE',\n\t\t\tœ: 'oe',\n\t\t\tŔ: 'R',\n\t\t\tŕ: 'r',\n\t\t\tŖ: 'R',\n\t\t\tŗ: 'r',\n\t\t\tŘ: 'R',\n\t\t\tř: 'r',\n\t\t\tŚ: 'S',\n\t\t\tś: 's',\n\t\t\tŜ: 'S',\n\t\t\tŝ: 's',\n\t\t\tŞ: 'S',\n\t\t\tş: 's',\n\t\t\tŠ: 'S',\n\t\t\tš: 's',\n\t\t\tŢ: 'T',\n\t\t\tţ: 't',\n\t\t\tŤ: 'T',\n\t\t\tť: 't',\n\t\t\tŦ: 'T',\n\t\t\tŧ: 't',\n\t\t\tŨ: 'U',\n\t\t\tũ: 'u',\n\t\t\tŪ: 'U',\n\t\t\tū: 'u',\n\t\t\tŬ: 'U',\n\t\t\tŭ: 'u',\n\t\t\tŮ: 'U',\n\t\t\tů: 'u',\n\t\t\tŰ: 'U',\n\t\t\tű: 'u',\n\t\t\tŲ: 'U',\n\t\t\tų: 'u',\n\t\t\tŴ: 'W',\n\t\t\tŵ: 'w',\n\t\t\tŶ: 'Y',\n\t\t\tŷ: 'y',\n\t\t\tŸ: 'Y',\n\t\t\tŹ: 'Z',\n\t\t\tź: 'z',\n\t\t\tŻ: 'Z',\n\t\t\tż: 'z',\n\t\t\tŽ: 'Z',\n\t\t\tž: 'z',\n\t\t\tſ: 's',\n\t\t\tƒ: 'f',\n\t\t\tƠ: 'O',\n\t\t\tơ: 'o',\n\t\t\tƯ: 'U',\n\t\t\tư: 'u',\n\t\t\tǍ: 'A',\n\t\t\tǎ: 'a',\n\t\t\tǏ: 'I',\n\t\t\tǐ: 'i',\n\t\t\tǑ: 'O',\n\t\t\tǒ: 'o',\n\t\t\tǓ: 'U',\n\t\t\tǔ: 'u',\n\t\t\tǕ: 'U',\n\t\t\tǖ: 'u',\n\t\t\tǗ: 'U',\n\t\t\tǘ: 'u',\n\t\t\tǙ: 'U',\n\t\t\tǚ: 'u',\n\t\t\tǛ: 'U',\n\t\t\tǜ: 'u',\n\t\t\tǺ: 'A',\n\t\t\tǻ: 'a',\n\t\t\tǼ: 'AE',\n\t\t\tǽ: 'ae',\n\t\t\tǾ: 'O',\n\t\t\tǿ: 'o',\n\n\t\t\t// extra\n\t\t\t' ': '_',\n\t\t\t\"'\": '',\n\t\t\t'?': '',\n\t\t\t'/': '',\n\t\t\t'\\\\': '',\n\t\t\t'.': '',\n\t\t\t',': '',\n\t\t\t'`': '',\n\t\t\t'>': '',\n\t\t\t'<': '',\n\t\t\t'\"': '',\n\t\t\t'[': '',\n\t\t\t']': '',\n\t\t\t'|': '',\n\t\t\t'{': '',\n\t\t\t'}': '',\n\t\t\t'(': '',\n\t\t\t')': '',\n\t\t};\n\n\t\t// vars\n\t\tvar nonWord = /\\W/g;\n\t\tvar mapping = function ( c ) {\n\t\t\treturn map[ c ] !== undefined ? map[ c ] : c;\n\t\t};\n\n\t\t// replace\n\t\tstr = str.replace( nonWord, mapping );\n\n\t\t// lowercase\n\t\tstr = str.toLowerCase();\n\n\t\t// return\n\t\treturn str;\n\t};\n\n\t/**\n\t * acf.strMatch\n\t *\n\t * Returns the number of characters that match between two strings\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.strMatch = function ( s1, s2 ) {\n\t\t// vars\n\t\tvar val = 0;\n\t\tvar min = Math.min( s1.length, s2.length );\n\n\t\t// loop\n\t\tfor ( var i = 0; i < min; i++ ) {\n\t\t\tif ( s1[ i ] !== s2[ i ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tval++;\n\t\t}\n\n\t\t// return\n\t\treturn val;\n\t};\n\n\t/**\n\t * Escapes HTML entities from a string.\n\t *\n\t * @date\t08/06/2020\n\t * @since\t5.9.0\n\t *\n\t * @param\tstring string The input string.\n\t * @return\tstring\n\t */\n\tacf.strEscape = function ( string ) {\n\t\tvar htmlEscapes = {\n\t\t\t'&': '&',\n\t\t\t'<': '<',\n\t\t\t'>': '>',\n\t\t\t'\"': '"',\n\t\t\t\"'\": ''',\n\t\t};\n\t\treturn ( '' + string ).replace( /[&<>\"']/g, function ( chr ) {\n\t\t\treturn htmlEscapes[ chr ];\n\t\t} );\n\t};\n\n\t// Tests.\n\t//console.log( acf.strEscape('Test 1') );\n\t//console.log( acf.strEscape('Test & 1') );\n\t//console.log( acf.strEscape('Test\\'s & 1') );\n\t//console.log( acf.strEscape('<script>js</script>') );\n\n\t/**\n\t * Unescapes HTML entities from a string.\n\t *\n\t * @date\t08/06/2020\n\t * @since\t5.9.0\n\t *\n\t * @param\tstring string The input string.\n\t * @return\tstring\n\t */\n\tacf.strUnescape = function ( string ) {\n\t\tvar htmlUnescapes = {\n\t\t\t'&': '&',\n\t\t\t'<': '<',\n\t\t\t'>': '>',\n\t\t\t'"': '\"',\n\t\t\t''': \"'\",\n\t\t};\n\t\treturn ( '' + string ).replace(\n\t\t\t/&|<|>|"|'/g,\n\t\t\tfunction ( entity ) {\n\t\t\t\treturn htmlUnescapes[ entity ];\n\t\t\t}\n\t\t);\n\t};\n\n\t// Tests.\n\t//console.log( acf.strUnescape( acf.strEscape('Test 1') ) );\n\t//console.log( acf.strUnescape( acf.strEscape('Test & 1') ) );\n\t//console.log( acf.strUnescape( acf.strEscape('Test\\'s & 1') ) );\n\t//console.log( acf.strUnescape( acf.strEscape('<script>js</script>') ) );\n\n\t/**\n\t * Escapes HTML entities from a string.\n\t *\n\t * @date\t08/06/2020\n\t * @since\t5.9.0\n\t *\n\t * @param\tstring string The input string.\n\t * @return\tstring\n\t */\n\tacf.escAttr = acf.strEscape;\n\n\t/**\n\t * Encodes <script> tags for safe HTML output.\n\t *\n\t * @date\t08/06/2020\n\t * @since\t5.9.0\n\t *\n\t * @param\tstring string The input string.\n\t * @return\tstring\n\t */\n\tacf.escHtml = function ( string ) {\n\t\treturn ( '' + string ).replace(\n\t\t\t/<script|<\\/script/g,\n\t\t\tfunction ( html ) {\n\t\t\t\treturn acf.strEscape( html );\n\t\t\t}\n\t\t);\n\t};\n\n\t// Tests.\n\t//console.log( acf.escHtml('<script>js</script>') );\n\t//console.log( acf.escHtml( acf.strEscape('<script>js</script>') ) );\n\t//console.log( acf.escHtml( '<script>js1</script><script>js2</script>' ) );\n\n\t/**\n\t * acf.decode\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.decode = function ( string ) {\n\t\treturn $( '<textarea/>' ).html( string ).text();\n\t};\n\n\t/**\n\t * parseArgs\n\t *\n\t * Merges together defaults and args much like the WP wp_parse_args function\n\t *\n\t * @date\t14/12/17\n\t * @since\t5.6.5\n\t *\n\t * @param\tobject args\n\t * @param\tobject defaults\n\t * @return\tobject\n\t */\n\n\tacf.parseArgs = function ( args, defaults ) {\n\t\tif ( typeof args !== 'object' ) args = {};\n\t\tif ( typeof defaults !== 'object' ) defaults = {};\n\t\treturn $.extend( {}, defaults, args );\n\t};\n\n\t/**\n\t * __\n\t *\n\t * Retrieve the translation of $text.\n\t *\n\t * @date\t16/4/18\n\t * @since\t5.6.9\n\t *\n\t * @param\tstring text Text to translate.\n\t * @return\tstring Translated text.\n\t */\n\n\tif ( window.acfL10n == undefined ) {\n\t\tacfL10n = {};\n\t}\n\n\tacf.__ = function ( text ) {\n\t\treturn acfL10n[ text ] || text;\n\t};\n\n\t/**\n\t * _x\n\t *\n\t * Retrieve translated string with gettext context.\n\t *\n\t * @date\t16/4/18\n\t * @since\t5.6.9\n\t *\n\t * @param\tstring text Text to translate.\n\t * @param\tstring context Context information for the translators.\n\t * @return\tstring Translated text.\n\t */\n\n\tacf._x = function ( text, context ) {\n\t\treturn acfL10n[ text + '.' + context ] || acfL10n[ text ] || text;\n\t};\n\n\t/**\n\t * _n\n\t *\n\t * Retrieve the plural or single form based on the amount.\n\t *\n\t * @date\t16/4/18\n\t * @since\t5.6.9\n\t *\n\t * @param\tstring single Single text to translate.\n\t * @param\tstring plural Plural text to translate.\n\t * @param\tint number The number to compare against.\n\t * @return\tstring Translated text.\n\t */\n\n\tacf._n = function ( single, plural, number ) {\n\t\tif ( number == 1 ) {\n\t\t\treturn acf.__( single );\n\t\t} else {\n\t\t\treturn acf.__( plural );\n\t\t}\n\t};\n\n\tacf.isArray = function ( a ) {\n\t\treturn Array.isArray( a );\n\t};\n\n\tacf.isObject = function ( a ) {\n\t\treturn typeof a === 'object';\n\t};\n\n\t/**\n\t * serialize\n\t *\n\t * description\n\t *\n\t * @date\t24/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 buildObject = function ( obj, name, value ) {\n\t\t// replace [] with placeholder\n\t\tname = name.replace( '[]', '[%%index%%]' );\n\n\t\t// vars\n\t\tvar keys = name.match( /([^\\[\\]])+/g );\n\t\tif ( ! keys ) return;\n\t\tvar length = keys.length;\n\t\tvar ref = obj;\n\n\t\t// loop\n\t\tfor ( var i = 0; i < length; i++ ) {\n\t\t\t// vars\n\t\t\tvar key = String( keys[ i ] );\n\n\t\t\t// value\n\t\t\tif ( i == length - 1 ) {\n\t\t\t\t// %%index%%\n\t\t\t\tif ( key === '%%index%%' ) {\n\t\t\t\t\tref.push( value );\n\n\t\t\t\t\t// default\n\t\t\t\t} else {\n\t\t\t\t\tref[ key ] = value;\n\t\t\t\t}\n\n\t\t\t\t// path\n\t\t\t} else {\n\t\t\t\t// array\n\t\t\t\tif ( keys[ i + 1 ] === '%%index%%' ) {\n\t\t\t\t\tif ( ! acf.isArray( ref[ key ] ) ) {\n\t\t\t\t\t\tref[ key ] = [];\n\t\t\t\t\t}\n\n\t\t\t\t\t// object\n\t\t\t\t} else {\n\t\t\t\t\tif ( ! acf.isObject( ref[ key ] ) ) {\n\t\t\t\t\t\tref[ key ] = {};\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// crawl\n\t\t\t\tref = ref[ key ];\n\t\t\t}\n\t\t}\n\t};\n\n\tacf.serialize = function ( $el, prefix ) {\n\t\t// vars\n\t\tvar obj = {};\n\t\tvar inputs = acf.serializeArray( $el );\n\n\t\t// prefix\n\t\tif ( prefix !== undefined ) {\n\t\t\t// filter and modify\n\t\t\tinputs = inputs\n\t\t\t\t.filter( function ( item ) {\n\t\t\t\t\treturn item.name.indexOf( prefix ) === 0;\n\t\t\t\t} )\n\t\t\t\t.map( function ( item ) {\n\t\t\t\t\titem.name = item.name.slice( prefix.length );\n\t\t\t\t\treturn item;\n\t\t\t\t} );\n\t\t}\n\n\t\t// loop\n\t\tfor ( var i = 0; i < inputs.length; i++ ) {\n\t\t\tbuildObject( obj, inputs[ i ].name, inputs[ i ].value );\n\t\t}\n\n\t\t// return\n\t\treturn obj;\n\t};\n\n\t/**\n\t * acf.serializeArray\n\t *\n\t * Similar to $.serializeArray() but works with a parent wrapping element.\n\t *\n\t * @date\t19/8/18\n\t * @since\t5.7.3\n\t *\n\t * @param\tjQuery $el The element or form to serialize.\n\t * @return\tarray\n\t */\n\n\tacf.serializeArray = function ( $el ) {\n\t\treturn $el.find( 'select, textarea, input' ).serializeArray();\n\t};\n\n\t/**\n\t * acf.serializeForAjax\n\t *\n\t * Returns an object containing name => value data ready to be encoded for Ajax.\n\t *\n\t * @date\t17/12/18\n\t * @since\t5.8.0\n\t *\n\t * @param\tjQUery $el The element or form to serialize.\n\t * @return\tobject\n\t */\n\tacf.serializeForAjax = function ( $el ) {\n\t\t// vars\n\t\tvar data = {};\n\t\tvar index = {};\n\n\t\t// Serialize inputs.\n\t\tvar inputs = acf.serializeArray( $el );\n\n\t\t// Loop over inputs and build data.\n\t\tinputs.map( function ( item ) {\n\t\t\t// Append to array.\n\t\t\tif ( item.name.slice( -2 ) === '[]' ) {\n\t\t\t\tdata[ item.name ] = data[ item.name ] || [];\n\t\t\t\tdata[ item.name ].push( item.value );\n\t\t\t\t// Append\n\t\t\t} else {\n\t\t\t\tdata[ item.name ] = item.value;\n\t\t\t}\n\t\t} );\n\n\t\t// return\n\t\treturn data;\n\t};\n\n\t/**\n\t * addAction\n\t *\n\t * Wrapper for acf.hooks.addAction\n\t *\n\t * @date\t14/12/17\n\t * @since\t5.6.5\n\t *\n\t * @param\tn/a\n\t * @return\tthis\n\t */\n\n\t/*\n\tvar prefixAction = function( action ){\n\t\treturn 'acf_' + action;\n\t}\n*/\n\n\tacf.addAction = function ( action, callback, priority, context ) {\n\t\t//action = prefixAction(action);\n\t\tacf.hooks.addAction.apply( this, arguments );\n\t\treturn this;\n\t};\n\n\t/**\n\t * removeAction\n\t *\n\t * Wrapper for acf.hooks.removeAction\n\t *\n\t * @date\t14/12/17\n\t * @since\t5.6.5\n\t *\n\t * @param\tn/a\n\t * @return\tthis\n\t */\n\n\tacf.removeAction = function ( action, callback ) {\n\t\t//action = prefixAction(action);\n\t\tacf.hooks.removeAction.apply( this, arguments );\n\t\treturn this;\n\t};\n\n\t/**\n\t * doAction\n\t *\n\t * Wrapper for acf.hooks.doAction\n\t *\n\t * @date\t14/12/17\n\t * @since\t5.6.5\n\t *\n\t * @param\tn/a\n\t * @return\tthis\n\t */\n\n\tvar actionHistory = {};\n\t//var currentAction = false;\n\tacf.doAction = function ( action ) {\n\t\t//action = prefixAction(action);\n\t\t//currentAction = action;\n\t\tactionHistory[ action ] = 1;\n\t\tacf.hooks.doAction.apply( this, arguments );\n\t\tactionHistory[ action ] = 0;\n\t\treturn this;\n\t};\n\n\t/**\n\t * doingAction\n\t *\n\t * Return true if doing action\n\t *\n\t * @date\t14/12/17\n\t * @since\t5.6.5\n\t *\n\t * @param\tn/a\n\t * @return\tthis\n\t */\n\n\tacf.doingAction = function ( action ) {\n\t\t//action = prefixAction(action);\n\t\treturn actionHistory[ action ] === 1;\n\t};\n\n\t/**\n\t * didAction\n\t *\n\t * Wrapper for acf.hooks.doAction\n\t *\n\t * @date\t14/12/17\n\t * @since\t5.6.5\n\t *\n\t * @param\tn/a\n\t * @return\tthis\n\t */\n\n\tacf.didAction = function ( action ) {\n\t\t//action = prefixAction(action);\n\t\treturn actionHistory[ action ] !== undefined;\n\t};\n\n\t/**\n\t * currentAction\n\t *\n\t * Wrapper for acf.hooks.doAction\n\t *\n\t * @date\t14/12/17\n\t * @since\t5.6.5\n\t *\n\t * @param\tn/a\n\t * @return\tthis\n\t */\n\n\tacf.currentAction = function () {\n\t\tfor ( var k in actionHistory ) {\n\t\t\tif ( actionHistory[ k ] ) {\n\t\t\t\treturn k;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t};\n\n\t/**\n\t * addFilter\n\t *\n\t * Wrapper for acf.hooks.addFilter\n\t *\n\t * @date\t14/12/17\n\t * @since\t5.6.5\n\t *\n\t * @param\tn/a\n\t * @return\tthis\n\t */\n\n\tacf.addFilter = function ( action ) {\n\t\t//action = prefixAction(action);\n\t\tacf.hooks.addFilter.apply( this, arguments );\n\t\treturn this;\n\t};\n\n\t/**\n\t * removeFilter\n\t *\n\t * Wrapper for acf.hooks.removeFilter\n\t *\n\t * @date\t14/12/17\n\t * @since\t5.6.5\n\t *\n\t * @param\tn/a\n\t * @return\tthis\n\t */\n\n\tacf.removeFilter = function ( action ) {\n\t\t//action = prefixAction(action);\n\t\tacf.hooks.removeFilter.apply( this, arguments );\n\t\treturn this;\n\t};\n\n\t/**\n\t * applyFilters\n\t *\n\t * Wrapper for acf.hooks.applyFilters\n\t *\n\t * @date\t14/12/17\n\t * @since\t5.6.5\n\t *\n\t * @param\tn/a\n\t * @return\tthis\n\t */\n\n\tacf.applyFilters = function ( action ) {\n\t\t//action = prefixAction(action);\n\t\treturn acf.hooks.applyFilters.apply( this, arguments );\n\t};\n\n\t/**\n\t * getArgs\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\tacf.arrayArgs = function ( args ) {\n\t\treturn Array.prototype.slice.call( args );\n\t};\n\n\t/**\n\t * extendArgs\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\t/*\n\tacf.extendArgs = function( ){\n\t\tvar args = Array.prototype.slice.call( arguments );\n\t\tvar realArgs = args.shift();\n\t\t\t\n\t\tArray.prototype.push.call(arguments, 'bar')\n\t\treturn Array.prototype.push.apply( args, arguments );\n\t};\n*/\n\n\t// Preferences\n\t// - use try/catch to avoid JS error if cookies are disabled on front-end form\n\ttry {\n\t\tvar preferences = JSON.parse( localStorage.getItem( 'acf' ) ) || {};\n\t} catch ( e ) {\n\t\tvar preferences = {};\n\t}\n\n\t/**\n\t * getPreferenceName\n\t *\n\t * Gets the true preference name.\n\t * Converts \"this.thing\" to \"thing-123\" if editing post 123.\n\t *\n\t * @date\t11/11/17\n\t * @since\t5.6.5\n\t *\n\t * @param\tstring name\n\t * @return\tstring\n\t */\n\n\tvar getPreferenceName = function ( name ) {\n\t\tif ( name.substr( 0, 5 ) === 'this.' ) {\n\t\t\tname = name.substr( 5 ) + '-' + acf.get( 'post_id' );\n\t\t}\n\t\treturn name;\n\t};\n\n\t/**\n\t * acf.getPreference\n\t *\n\t * Gets a preference setting or null if not set.\n\t *\n\t * @date\t11/11/17\n\t * @since\t5.6.5\n\t *\n\t * @param\tstring name\n\t * @return\tmixed\n\t */\n\n\tacf.getPreference = function ( name ) {\n\t\tname = getPreferenceName( name );\n\t\treturn preferences[ name ] || null;\n\t};\n\n\t/**\n\t * acf.setPreference\n\t *\n\t * Sets a preference setting.\n\t *\n\t * @date\t11/11/17\n\t * @since\t5.6.5\n\t *\n\t * @param\tstring name\n\t * @param\tmixed value\n\t * @return\tn/a\n\t */\n\n\tacf.setPreference = function ( name, value ) {\n\t\tname = getPreferenceName( name );\n\t\tif ( value === null ) {\n\t\t\tdelete preferences[ name ];\n\t\t} else {\n\t\t\tpreferences[ name ] = value;\n\t\t}\n\t\tlocalStorage.setItem( 'acf', JSON.stringify( preferences ) );\n\t};\n\n\t/**\n\t * acf.removePreference\n\t *\n\t * Removes a preference setting.\n\t *\n\t * @date\t11/11/17\n\t * @since\t5.6.5\n\t *\n\t * @param\tstring name\n\t * @return\tn/a\n\t */\n\n\tacf.removePreference = function ( name ) {\n\t\tacf.setPreference( name, null );\n\t};\n\n\t/**\n\t * remove\n\t *\n\t * Removes an element with fade effect\n\t *\n\t * @date\t1/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.remove = function ( props ) {\n\t\t// allow jQuery\n\t\tif ( props instanceof jQuery ) {\n\t\t\tprops = {\n\t\t\t\ttarget: props,\n\t\t\t};\n\t\t}\n\n\t\t// defaults\n\t\tprops = acf.parseArgs( props, {\n\t\t\ttarget: false,\n\t\t\tendHeight: 0,\n\t\t\tcomplete: function () {},\n\t\t} );\n\n\t\t// action\n\t\tacf.doAction( 'remove', props.target );\n\n\t\t// tr\n\t\tif ( props.target.is( 'tr' ) ) {\n\t\t\tremoveTr( props );\n\n\t\t\t// div\n\t\t} else {\n\t\t\tremoveDiv( props );\n\t\t}\n\t};\n\n\t/**\n\t * removeDiv\n\t *\n\t * description\n\t *\n\t * @date\t16/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 removeDiv = function ( props ) {\n\t\t// vars\n\t\tvar $el = props.target;\n\t\tvar height = $el.height();\n\t\tvar width = $el.width();\n\t\tvar margin = $el.css( 'margin' );\n\t\tvar outerHeight = $el.outerHeight( true );\n\t\tvar style = $el.attr( 'style' ) + ''; // needed to copy\n\n\t\t// wrap\n\t\t$el.wrap(\n\t\t\t'<div class=\"acf-temp-remove\" style=\"height:' +\n\t\t\t\touterHeight +\n\t\t\t\t'px\"></div>'\n\t\t);\n\t\tvar $wrap = $el.parent();\n\n\t\t// set pos\n\t\t$el.css( {\n\t\t\theight: height,\n\t\t\twidth: width,\n\t\t\tmargin: margin,\n\t\t\tposition: 'absolute',\n\t\t} );\n\n\t\t// fade wrap\n\t\tsetTimeout( function () {\n\t\t\t$wrap.css( {\n\t\t\t\topacity: 0,\n\t\t\t\theight: props.endHeight,\n\t\t\t} );\n\t\t}, 50 );\n\n\t\t// remove\n\t\tsetTimeout( function () {\n\t\t\t$el.attr( 'style', style );\n\t\t\t$wrap.remove();\n\t\t\tprops.complete();\n\t\t}, 301 );\n\t};\n\n\t/**\n\t * removeTr\n\t *\n\t * description\n\t *\n\t * @date\t16/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 removeTr = function ( props ) {\n\t\t// vars\n\t\tvar $tr = props.target;\n\t\tvar height = $tr.height();\n\t\tvar children = $tr.children().length;\n\n\t\t// create dummy td\n\t\tvar $td = $(\n\t\t\t'<td class=\"acf-temp-remove\" style=\"padding:0; height:' +\n\t\t\t\theight +\n\t\t\t\t'px\" colspan=\"' +\n\t\t\t\tchildren +\n\t\t\t\t'\"></td>'\n\t\t);\n\n\t\t// fade away tr\n\t\t$tr.addClass( 'acf-remove-element' );\n\n\t\t// update HTML after fade animation\n\t\tsetTimeout( function () {\n\t\t\t$tr.html( $td );\n\t\t}, 251 );\n\n\t\t// allow .acf-temp-remove to exist before changing CSS\n\t\tsetTimeout( function () {\n\t\t\t// remove class\n\t\t\t$tr.removeClass( 'acf-remove-element' );\n\n\t\t\t// collapse\n\t\t\t$td.css( {\n\t\t\t\theight: props.endHeight,\n\t\t\t} );\n\t\t}, 300 );\n\n\t\t// remove\n\t\tsetTimeout( function () {\n\t\t\t$tr.remove();\n\t\t\tprops.complete();\n\t\t}, 451 );\n\t};\n\n\t/**\n\t * duplicate\n\t *\n\t * description\n\t *\n\t * @date\t3/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.duplicate = function ( args ) {\n\t\t// allow jQuery\n\t\tif ( args instanceof jQuery ) {\n\t\t\targs = {\n\t\t\t\ttarget: args,\n\t\t\t};\n\t\t}\n\n\t\t// defaults\n\t\targs = acf.parseArgs( args, {\n\t\t\ttarget: false,\n\t\t\tsearch: '',\n\t\t\treplace: '',\n\t\t\trename: true,\n\t\t\tbefore: function ( $el ) {},\n\t\t\tafter: function ( $el, $el2 ) {},\n\t\t\tappend: function ( $el, $el2 ) {\n\t\t\t\t$el.after( $el2 );\n\t\t\t},\n\t\t} );\n\n\t\t// compatibility\n\t\targs.target = args.target || args.$el;\n\n\t\t// vars\n\t\tvar $el = args.target;\n\n\t\t// search\n\t\targs.search = args.search || $el.attr( 'data-id' );\n\t\targs.replace = args.replace || acf.uniqid();\n\n\t\t// before\n\t\t// - allow acf to modify DOM\n\t\t// - fixes bug where select field option is not selected\n\t\targs.before( $el );\n\t\tacf.doAction( 'before_duplicate', $el );\n\n\t\t// clone\n\t\tvar $el2 = $el.clone();\n\n\t\t// rename\n\t\tif ( args.rename ) {\n\t\t\tacf.rename( {\n\t\t\t\ttarget: $el2,\n\t\t\t\tsearch: args.search,\n\t\t\t\treplace: args.replace,\n\t\t\t\treplacer:\n\t\t\t\t\ttypeof args.rename === 'function' ? args.rename : null,\n\t\t\t} );\n\t\t}\n\n\t\t// remove classes\n\t\t$el2.removeClass( 'acf-clone' );\n\t\t$el2.find( '.ui-sortable' ).removeClass( 'ui-sortable' );\n\n\t\t// after\n\t\t// - allow acf to modify DOM\n\t\targs.after( $el, $el2 );\n\t\tacf.doAction( 'after_duplicate', $el, $el2 );\n\n\t\t// append\n\t\targs.append( $el, $el2 );\n\n\t\t/**\n\t\t * Fires after an element has been duplicated and appended to the DOM.\n\t\t *\n\t\t * @date\t30/10/19\n\t\t * @since\t5.8.7\n\t\t *\n\t\t * @param\tjQuery $el The original element.\n\t\t * @param\tjQuery $el2 The duplicated element.\n\t\t */\n\t\tacf.doAction( 'duplicate', $el, $el2 );\n\n\t\t// append\n\t\tacf.doAction( 'append', $el2 );\n\n\t\t// return\n\t\treturn $el2;\n\t};\n\n\t/**\n\t * rename\n\t *\n\t * description\n\t *\n\t * @date\t7/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.rename = function ( args ) {\n\t\t// Allow jQuery param.\n\t\tif ( args instanceof jQuery ) {\n\t\t\targs = {\n\t\t\t\ttarget: args,\n\t\t\t};\n\t\t}\n\n\t\t// Apply default args.\n\t\targs = acf.parseArgs( args, {\n\t\t\ttarget: false,\n\t\t\tdestructive: false,\n\t\t\tsearch: '',\n\t\t\treplace: '',\n\t\t\treplacer: null,\n\t\t} );\n\n\t\t// Extract args.\n\t\tvar $el = args.target;\n\n\t\t// Provide backup for empty args.\n\t\tif ( ! args.search ) {\n\t\t\targs.search = $el.attr( 'data-id' );\n\t\t}\n\t\tif ( ! args.replace ) {\n\t\t\targs.replace = acf.uniqid( 'acf' );\n\t\t}\n\t\tif ( ! args.replacer ) {\n\t\t\targs.replacer = function ( name, value, search, replace ) {\n\t\t\t\treturn value.replace( search, replace );\n\t\t\t};\n\t\t}\n\n\t\t// Callback function for jQuery replacing.\n\t\tvar withReplacer = function ( name ) {\n\t\t\treturn function ( i, value ) {\n\t\t\t\treturn args.replacer( name, value, args.search, args.replace );\n\t\t\t};\n\t\t};\n\n\t\t// Destructive Replace.\n\t\tif ( args.destructive ) {\n\t\t\tvar html = acf.strReplace(\n\t\t\t\targs.search,\n\t\t\t\targs.replace,\n\t\t\t\t$el.outerHTML()\n\t\t\t);\n\t\t\t$el.replaceWith( html );\n\n\t\t\t// Standard Replace.\n\t\t} else {\n\t\t\t$el.attr( 'data-id', args.replace );\n\t\t\t$el.find( '[id*=\"' + args.search + '\"]' ).attr(\n\t\t\t\t'id',\n\t\t\t\twithReplacer( 'id' )\n\t\t\t);\n\t\t\t$el.find( '[for*=\"' + args.search + '\"]' ).attr(\n\t\t\t\t'for',\n\t\t\t\twithReplacer( 'for' )\n\t\t\t);\n\t\t\t$el.find( '[name*=\"' + args.search + '\"]' ).attr(\n\t\t\t\t'name',\n\t\t\t\twithReplacer( 'name' )\n\t\t\t);\n\t\t}\n\n\t\t// return\n\t\treturn $el;\n\t};\n\n\t/**\n\t * acf.prepareForAjax\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\tacf.prepareForAjax = function ( data ) {\n\t\t// required\n\t\tdata.nonce = acf.get( 'nonce' );\n\t\tdata.post_id = acf.get( 'post_id' );\n\n\t\t// language\n\t\tif ( acf.has( 'language' ) ) {\n\t\t\tdata.lang = acf.get( 'language' );\n\t\t}\n\n\t\t// filter for 3rd party customization\n\t\tdata = acf.applyFilters( 'prepare_for_ajax', data );\n\n\t\t// return\n\t\treturn data;\n\t};\n\n\t/**\n\t * acf.startButtonLoading\n\t *\n\t * description\n\t *\n\t * @date\t5/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.startButtonLoading = function ( $el ) {\n\t\t$el.prop( 'disabled', true );\n\t\t$el.after( ' <i class=\"acf-loading\"></i>' );\n\t};\n\n\tacf.stopButtonLoading = function ( $el ) {\n\t\t$el.prop( 'disabled', false );\n\t\t$el.next( '.acf-loading' ).remove();\n\t};\n\n\t/**\n\t * acf.showLoading\n\t *\n\t * description\n\t *\n\t * @date\t12/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.showLoading = function ( $el ) {\n\t\t$el.append(\n\t\t\t'<div class=\"acf-loading-overlay\"><i class=\"acf-loading\"></i></div>'\n\t\t);\n\t};\n\n\tacf.hideLoading = function ( $el ) {\n\t\t$el.children( '.acf-loading-overlay' ).remove();\n\t};\n\n\t/**\n\t * acf.updateUserSetting\n\t *\n\t * description\n\t *\n\t * @date\t5/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.updateUserSetting = function ( name, value ) {\n\t\tvar ajaxData = {\n\t\t\taction: 'acf/ajax/user_setting',\n\t\t\tname: name,\n\t\t\tvalue: value,\n\t\t};\n\n\t\t$.ajax( {\n\t\t\turl: acf.get( 'ajaxurl' ),\n\t\t\tdata: acf.prepareForAjax( ajaxData ),\n\t\t\ttype: 'post',\n\t\t\tdataType: 'html',\n\t\t} );\n\t};\n\n\t/**\n\t * acf.val\n\t *\n\t * description\n\t *\n\t * @date\t8/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.val = function ( $input, value, silent ) {\n\t\t// vars\n\t\tvar prevValue = $input.val();\n\n\t\t// bail if no change\n\t\tif ( value === prevValue ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// update value\n\t\t$input.val( value );\n\n\t\t// prevent select elements displaying blank value if option doesn't exist\n\t\tif ( $input.is( 'select' ) && $input.val() === null ) {\n\t\t\t$input.val( prevValue );\n\t\t\treturn false;\n\t\t}\n\n\t\t// update with trigger\n\t\tif ( silent !== true ) {\n\t\t\t$input.trigger( 'change' );\n\t\t}\n\n\t\t// return\n\t\treturn true;\n\t};\n\n\t/**\n\t * acf.show\n\t *\n\t * description\n\t *\n\t * @date\t9/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.show = function ( $el, lockKey ) {\n\t\t// unlock\n\t\tif ( lockKey ) {\n\t\t\tacf.unlock( $el, 'hidden', lockKey );\n\t\t}\n\n\t\t// bail early if $el is still locked\n\t\tif ( acf.isLocked( $el, 'hidden' ) ) {\n\t\t\t//console.log( 'still locked', getLocks( $el, 'hidden' ));\n\t\t\treturn false;\n\t\t}\n\n\t\t// $el is hidden, remove class and return true due to change in visibility\n\t\tif ( $el.hasClass( 'acf-hidden' ) ) {\n\t\t\t$el.removeClass( 'acf-hidden' );\n\t\t\treturn true;\n\n\t\t\t// $el is visible, return false due to no change in visibility\n\t\t} else {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\t/**\n\t * acf.hide\n\t *\n\t * description\n\t *\n\t * @date\t9/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.hide = function ( $el, lockKey ) {\n\t\t// lock\n\t\tif ( lockKey ) {\n\t\t\tacf.lock( $el, 'hidden', lockKey );\n\t\t}\n\n\t\t// $el is hidden, return false due to no change in visibility\n\t\tif ( $el.hasClass( 'acf-hidden' ) ) {\n\t\t\treturn false;\n\n\t\t\t// $el is visible, add class and return true due to change in visibility\n\t\t} else {\n\t\t\t$el.addClass( 'acf-hidden' );\n\t\t\treturn true;\n\t\t}\n\t};\n\n\t/**\n\t * acf.isHidden\n\t *\n\t * description\n\t *\n\t * @date\t9/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.isHidden = function ( $el ) {\n\t\treturn $el.hasClass( 'acf-hidden' );\n\t};\n\n\t/**\n\t * acf.isVisible\n\t *\n\t * description\n\t *\n\t * @date\t9/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.isVisible = function ( $el ) {\n\t\treturn ! acf.isHidden( $el );\n\t};\n\n\t/**\n\t * enable\n\t *\n\t * description\n\t *\n\t * @date\t12/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 enable = function ( $el, lockKey ) {\n\t\t// check class. Allow .acf-disabled to overrule all JS\n\t\tif ( $el.hasClass( 'acf-disabled' ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// unlock\n\t\tif ( lockKey ) {\n\t\t\tacf.unlock( $el, 'disabled', lockKey );\n\t\t}\n\n\t\t// bail early if $el is still locked\n\t\tif ( acf.isLocked( $el, 'disabled' ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// $el is disabled, remove prop and return true due to change\n\t\tif ( $el.prop( 'disabled' ) ) {\n\t\t\t$el.prop( 'disabled', false );\n\t\t\treturn true;\n\n\t\t\t// $el is enabled, return false due to no change\n\t\t} else {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\t/**\n\t * acf.enable\n\t *\n\t * description\n\t *\n\t * @date\t9/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.enable = function ( $el, lockKey ) {\n\t\t// enable single input\n\t\tif ( $el.attr( 'name' ) ) {\n\t\t\treturn enable( $el, lockKey );\n\t\t}\n\n\t\t// find and enable child inputs\n\t\t// return true if any inputs have changed\n\t\tvar results = false;\n\t\t$el.find( '[name]' ).each( function () {\n\t\t\tvar result = enable( $( this ), lockKey );\n\t\t\tif ( result ) {\n\t\t\t\tresults = true;\n\t\t\t}\n\t\t} );\n\t\treturn results;\n\t};\n\n\t/**\n\t * disable\n\t *\n\t * description\n\t *\n\t * @date\t12/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 disable = function ( $el, lockKey ) {\n\t\t// lock\n\t\tif ( lockKey ) {\n\t\t\tacf.lock( $el, 'disabled', lockKey );\n\t\t}\n\n\t\t// $el is disabled, return false due to no change\n\t\tif ( $el.prop( 'disabled' ) ) {\n\t\t\treturn false;\n\n\t\t\t// $el is enabled, add prop and return true due to change\n\t\t} else {\n\t\t\t$el.prop( 'disabled', true );\n\t\t\treturn true;\n\t\t}\n\t};\n\n\t/**\n\t * acf.disable\n\t *\n\t * description\n\t *\n\t * @date\t9/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.disable = function ( $el, lockKey ) {\n\t\t// disable single input\n\t\tif ( $el.attr( 'name' ) ) {\n\t\t\treturn disable( $el, lockKey );\n\t\t}\n\n\t\t// find and enable child inputs\n\t\t// return true if any inputs have changed\n\t\tvar results = false;\n\t\t$el.find( '[name]' ).each( function () {\n\t\t\tvar result = disable( $( this ), lockKey );\n\t\t\tif ( result ) {\n\t\t\t\tresults = true;\n\t\t\t}\n\t\t} );\n\t\treturn results;\n\t};\n\n\t/**\n\t * acf.isset\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.isset = function ( obj /*, level1, level2, ... */ ) {\n\t\tfor ( var i = 1; i < arguments.length; i++ ) {\n\t\t\tif ( ! obj || ! obj.hasOwnProperty( arguments[ i ] ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tobj = obj[ arguments[ i ] ];\n\t\t}\n\t\treturn true;\n\t};\n\n\t/**\n\t * acf.isget\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.isget = function ( obj /*, level1, level2, ... */ ) {\n\t\tfor ( var i = 1; i < arguments.length; i++ ) {\n\t\t\tif ( ! obj || ! obj.hasOwnProperty( arguments[ i ] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tobj = obj[ arguments[ i ] ];\n\t\t}\n\t\treturn obj;\n\t};\n\n\t/**\n\t * acf.getFileInputData\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.getFileInputData = function ( $input, callback ) {\n\t\t// vars\n\t\tvar value = $input.val();\n\n\t\t// bail early if no value\n\t\tif ( ! value ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// data\n\t\tvar data = {\n\t\t\turl: value,\n\t\t};\n\n\t\t// modern browsers\n\t\tvar file = $input[ 0 ].files.length\n\t\t\t? acf.isget( $input[ 0 ].files, 0 )\n\t\t\t: false;\n\t\tif ( file ) {\n\t\t\t// update data\n\t\t\tdata.size = file.size;\n\t\t\tdata.type = file.type;\n\n\t\t\t// image\n\t\t\tif ( file.type.indexOf( 'image' ) > -1 ) {\n\t\t\t\t// vars\n\t\t\t\tvar windowURL = window.URL || window.webkitURL;\n\t\t\t\tvar img = new Image();\n\n\t\t\t\timg.onload = function () {\n\t\t\t\t\t// update\n\t\t\t\t\tdata.width = this.width;\n\t\t\t\t\tdata.height = this.height;\n\n\t\t\t\t\tcallback( data );\n\t\t\t\t};\n\t\t\t\timg.src = windowURL.createObjectURL( file );\n\t\t\t} else {\n\t\t\t\tcallback( data );\n\t\t\t}\n\t\t} else {\n\t\t\tcallback( data );\n\t\t}\n\t};\n\n\t/**\n\t * acf.isAjaxSuccess\n\t *\n\t * description\n\t *\n\t * @date\t18/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.isAjaxSuccess = function ( json ) {\n\t\treturn json && json.success;\n\t};\n\n\t/**\n\t * acf.getAjaxMessage\n\t *\n\t * description\n\t *\n\t * @date\t18/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.getAjaxMessage = function ( json ) {\n\t\treturn acf.isget( json, 'data', 'message' );\n\t};\n\n\t/**\n\t * acf.getAjaxError\n\t *\n\t * description\n\t *\n\t * @date\t18/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.getAjaxError = function ( json ) {\n\t\treturn acf.isget( json, 'data', 'error' );\n\t};\n\n\t/**\n\t * Returns the error message from an XHR object.\n\t *\n\t * @date\t17/3/20\n\t * @since\t5.8.9\n\t *\n\t * @param\tobject xhr The XHR object.\n\t * @return\t(string)\n\t */\n\tacf.getXhrError = function ( xhr ) {\n\t\tif ( xhr.responseJSON && xhr.responseJSON.message ) {\n\t\t\treturn xhr.responseJSON.message;\n\t\t} else if ( xhr.statusText ) {\n\t\t\treturn xhr.statusText;\n\t\t}\n\t\treturn '';\n\t};\n\n\t/**\n\t * acf.renderSelect\n\t *\n\t * Renders the innter html for a select field.\n\t *\n\t * @date\t19/2/18\n\t * @since\t5.6.9\n\t *\n\t * @param\tjQuery $select The select element.\n\t * @param\tarray choices An array of choices.\n\t * @return\tvoid\n\t */\n\n\tacf.renderSelect = function ( $select, choices ) {\n\t\t// vars\n\t\tvar value = $select.val();\n\t\tvar values = [];\n\n\t\t// callback\n\t\tvar crawl = function ( items ) {\n\t\t\t// vars\n\t\t\tvar itemsHtml = '';\n\n\t\t\t// loop\n\t\t\titems.map( function ( item ) {\n\t\t\t\t// vars\n\t\t\t\tvar text = item.text || item.label || '';\n\t\t\t\tvar id = item.id || item.value || '';\n\n\t\t\t\t// append\n\t\t\t\tvalues.push( id );\n\n\t\t\t\t// optgroup\n\t\t\t\tif ( item.children ) {\n\t\t\t\t\titemsHtml +=\n\t\t\t\t\t\t'<optgroup label=\"' +\n\t\t\t\t\t\tacf.escAttr( text ) +\n\t\t\t\t\t\t'\">' +\n\t\t\t\t\t\tcrawl( item.children ) +\n\t\t\t\t\t\t'</optgroup>';\n\n\t\t\t\t\t// option\n\t\t\t\t} else {\n\t\t\t\t\titemsHtml +=\n\t\t\t\t\t\t'<option value=\"' +\n\t\t\t\t\t\tacf.escAttr( id ) +\n\t\t\t\t\t\t'\"' +\n\t\t\t\t\t\t( item.disabled ? ' disabled=\"disabled\"' : '' ) +\n\t\t\t\t\t\t'>' +\n\t\t\t\t\t\tacf.strEscape( text ) +\n\t\t\t\t\t\t'</option>';\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t// return\n\t\t\treturn itemsHtml;\n\t\t};\n\n\t\t// update HTML\n\t\t$select.html( crawl( choices ) );\n\n\t\t// update value\n\t\tif ( values.indexOf( value ) > -1 ) {\n\t\t\t$select.val( value );\n\t\t}\n\n\t\t// return selected value\n\t\treturn $select.val();\n\t};\n\n\t/**\n\t * acf.lock\n\t *\n\t * Creates a \"lock\" on an element for a given type and key\n\t *\n\t * @date\t22/2/18\n\t * @since\t5.6.9\n\t *\n\t * @param\tjQuery $el The element to lock.\n\t * @param\tstring type The type of lock such as \"condition\" or \"visibility\".\n\t * @param\tstring key The key that will be used to unlock.\n\t * @return\tvoid\n\t */\n\n\tvar getLocks = function ( $el, type ) {\n\t\treturn $el.data( 'acf-lock-' + type ) || [];\n\t};\n\n\tvar setLocks = function ( $el, type, locks ) {\n\t\t$el.data( 'acf-lock-' + type, locks );\n\t};\n\n\tacf.lock = function ( $el, type, key ) {\n\t\tvar locks = getLocks( $el, type );\n\t\tvar i = locks.indexOf( key );\n\t\tif ( i < 0 ) {\n\t\t\tlocks.push( key );\n\t\t\tsetLocks( $el, type, locks );\n\t\t}\n\t};\n\n\t/**\n\t * acf.unlock\n\t *\n\t * Unlocks a \"lock\" on an element for a given type and key\n\t *\n\t * @date\t22/2/18\n\t * @since\t5.6.9\n\t *\n\t * @param\tjQuery $el The element to lock.\n\t * @param\tstring type The type of lock such as \"condition\" or \"visibility\".\n\t * @param\tstring key The key that will be used to unlock.\n\t * @return\tvoid\n\t */\n\n\tacf.unlock = function ( $el, type, key ) {\n\t\tvar locks = getLocks( $el, type );\n\t\tvar i = locks.indexOf( key );\n\t\tif ( i > -1 ) {\n\t\t\tlocks.splice( i, 1 );\n\t\t\tsetLocks( $el, type, locks );\n\t\t}\n\n\t\t// return true if is unlocked (no locks)\n\t\treturn locks.length === 0;\n\t};\n\n\t/**\n\t * acf.isLocked\n\t *\n\t * Returns true if a lock exists for a given type\n\t *\n\t * @date\t22/2/18\n\t * @since\t5.6.9\n\t *\n\t * @param\tjQuery $el The element to lock.\n\t * @param\tstring type The type of lock such as \"condition\" or \"visibility\".\n\t * @return\tvoid\n\t */\n\n\tacf.isLocked = function ( $el, type ) {\n\t\treturn getLocks( $el, type ).length > 0;\n\t};\n\n\t/**\n\t * acf.isGutenberg\n\t *\n\t * Returns true if the Gutenberg editor is being used.\n\t *\n\t * @date\t14/11/18\n\t * @since\t5.8.0\n\t *\n\t * @param\tvois\n\t * @return\tbool\n\t */\n\tacf.isGutenberg = function () {\n\t\treturn !! (\n\t\t\twindow.wp &&\n\t\t\twp.data &&\n\t\t\twp.data.select &&\n\t\t\twp.data.select( 'core/editor' )\n\t\t);\n\t};\n\n\t/**\n\t * acf.objectToArray\n\t *\n\t * Returns an array of items from the given object.\n\t *\n\t * @date\t20/11/18\n\t * @since\t5.8.0\n\t *\n\t * @param\tobject obj The object of items.\n\t * @return\tarray\n\t */\n\tacf.objectToArray = function ( obj ) {\n\t\treturn Object.keys( obj ).map( function ( key ) {\n\t\t\treturn obj[ key ];\n\t\t} );\n\t};\n\n\t/**\n\t * acf.debounce\n\t *\n\t * Returns a debounced version of the passed function which will postpone its execution until after `wait` milliseconds have elapsed since the last time it was invoked.\n\t *\n\t * @date\t28/8/19\n\t * @since\t5.8.1\n\t *\n\t * @param\tfunction callback The callback function.\n\t * @return\tint wait The number of milliseconds to wait.\n\t */\n\tacf.debounce = function ( callback, wait ) {\n\t\tvar timeout;\n\t\treturn function () {\n\t\t\tvar context = this;\n\t\t\tvar args = arguments;\n\t\t\tvar later = function () {\n\t\t\t\tcallback.apply( context, args );\n\t\t\t};\n\t\t\tclearTimeout( timeout );\n\t\t\ttimeout = setTimeout( later, wait );\n\t\t};\n\t};\n\n\t/**\n\t * acf.throttle\n\t *\n\t * Returns a throttled version of the passed function which will allow only one execution per `limit` time period.\n\t *\n\t * @date\t28/8/19\n\t * @since\t5.8.1\n\t *\n\t * @param\tfunction callback The callback function.\n\t * @return\tint wait The number of milliseconds to wait.\n\t */\n\tacf.throttle = function ( callback, limit ) {\n\t\tvar busy = false;\n\t\treturn function () {\n\t\t\tif ( busy ) return;\n\t\t\tbusy = true;\n\t\t\tsetTimeout( function () {\n\t\t\t\tbusy = false;\n\t\t\t}, limit );\n\t\t\tcallback.apply( this, arguments );\n\t\t};\n\t};\n\n\t/**\n\t * acf.isInView\n\t *\n\t * Returns true if the given element is in view.\n\t *\n\t * @date\t29/8/19\n\t * @since\t5.8.1\n\t *\n\t * @param\telem el The dom element to inspect.\n\t * @return\tbool\n\t */\n\tacf.isInView = function ( el ) {\n\t\tif ( el instanceof jQuery ) {\n\t\t\tel = el[ 0 ];\n\t\t}\n\t\tvar rect = el.getBoundingClientRect();\n\t\treturn (\n\t\t\trect.top !== rect.bottom &&\n\t\t\trect.top >= 0 &&\n\t\t\trect.left >= 0 &&\n\t\t\trect.bottom <=\n\t\t\t\t( window.innerHeight ||\n\t\t\t\t\tdocument.documentElement.clientHeight ) &&\n\t\t\trect.right <=\n\t\t\t\t( window.innerWidth || document.documentElement.clientWidth )\n\t\t);\n\t};\n\n\t/**\n\t * acf.onceInView\n\t *\n\t * Watches for a dom element to become visible in the browser and then excecutes the passed callback.\n\t *\n\t * @date\t28/8/19\n\t * @since\t5.8.1\n\t *\n\t * @param\tdom el The dom element to inspect.\n\t * @param\tfunction callback The callback function.\n\t */\n\tacf.onceInView = ( function () {\n\t\t// Define list.\n\t\tvar items = [];\n\t\tvar id = 0;\n\n\t\t// Define check function.\n\t\tvar check = function () {\n\t\t\titems.forEach( function ( item ) {\n\t\t\t\tif ( acf.isInView( item.el ) ) {\n\t\t\t\t\titem.callback.apply( this );\n\t\t\t\t\tpop( item.id );\n\t\t\t\t}\n\t\t\t} );\n\t\t};\n\n\t\t// And create a debounced version.\n\t\tvar debounced = acf.debounce( check, 300 );\n\n\t\t// Define add function.\n\t\tvar push = function ( el, callback ) {\n\t\t\t// Add event listener.\n\t\t\tif ( ! items.length ) {\n\t\t\t\t$( window )\n\t\t\t\t\t.on( 'scroll resize', debounced )\n\t\t\t\t\t.on( 'acfrefresh orientationchange', check );\n\t\t\t}\n\n\t\t\t// Append to list.\n\t\t\titems.push( { id: id++, el: el, callback: callback } );\n\t\t};\n\n\t\t// Define remove function.\n\t\tvar pop = function ( id ) {\n\t\t\t// Remove from list.\n\t\t\titems = items.filter( function ( item ) {\n\t\t\t\treturn item.id !== id;\n\t\t\t} );\n\n\t\t\t// Clean up listener.\n\t\t\tif ( ! items.length ) {\n\t\t\t\t$( window )\n\t\t\t\t\t.off( 'scroll resize', debounced )\n\t\t\t\t\t.off( 'acfrefresh orientationchange', check );\n\t\t\t}\n\t\t};\n\n\t\t// Define returned function.\n\t\treturn function ( el, callback ) {\n\t\t\t// Allow jQuery object.\n\t\t\tif ( el instanceof jQuery ) el = el[ 0 ];\n\n\t\t\t// Execute callback if already in view or add to watch list.\n\t\t\tif ( acf.isInView( el ) ) {\n\t\t\t\tcallback.apply( this );\n\t\t\t} else {\n\t\t\t\tpush( el, callback );\n\t\t\t}\n\t\t};\n\t} )();\n\n\t/**\n\t * acf.once\n\t *\n\t * Creates a function that is restricted to invoking `func` once.\n\t *\n\t * @date\t2/9/19\n\t * @since\t5.8.1\n\t *\n\t * @param\tfunction func The function to restrict.\n\t * @return\tfunction\n\t */\n\tacf.once = function ( func ) {\n\t\tvar i = 0;\n\t\treturn function () {\n\t\t\tif ( i++ > 0 ) {\n\t\t\t\treturn ( func = undefined );\n\t\t\t}\n\t\t\treturn func.apply( this, arguments );\n\t\t};\n\t};\n\n\t/**\n\t * Focuses attention to a specific element.\n\t *\n\t * @date\t05/05/2020\n\t * @since\t5.9.0\n\t *\n\t * @param\tjQuery $el The jQuery element to focus.\n\t * @return\tvoid\n\t */\n\tacf.focusAttention = function ( $el ) {\n\t\tvar wait = 1000;\n\n\t\t// Apply class to focus attention.\n\t\t$el.addClass( 'acf-attention -focused' );\n\n\t\t// Scroll to element if needed.\n\t\tvar scrollTime = 500;\n\t\tif ( ! acf.isInView( $el ) ) {\n\t\t\t$( 'body, html' ).animate(\n\t\t\t\t{\n\t\t\t\t\tscrollTop: $el.offset().top - $( window ).height() / 2,\n\t\t\t\t},\n\t\t\t\tscrollTime\n\t\t\t);\n\t\t\twait += scrollTime;\n\t\t}\n\n\t\t// Remove class after $wait amount of time.\n\t\tvar fadeTime = 250;\n\t\tsetTimeout( function () {\n\t\t\t$el.removeClass( '-focused' );\n\t\t\tsetTimeout( function () {\n\t\t\t\t$el.removeClass( 'acf-attention' );\n\t\t\t}, fadeTime );\n\t\t}, wait );\n\t};\n\n\t/**\n\t * Description\n\t *\n\t * @date\t05/05/2020\n\t * @since\t5.9.0\n\t *\n\t * @param\ttype Var Description.\n\t * @return\ttype Description.\n\t */\n\tacf.onFocus = function ( $el, callback ) {\n\t\t// Only run once per element.\n\t\t// if( $el.data('acf.onFocus') ) {\n\t\t// \treturn false;\n\t\t// }\n\n\t\t// Vars.\n\t\tvar ignoreBlur = false;\n\t\tvar focus = false;\n\n\t\t// Functions.\n\t\tvar onFocus = function () {\n\t\t\tignoreBlur = true;\n\t\t\tsetTimeout( function () {\n\t\t\t\tignoreBlur = false;\n\t\t\t}, 1 );\n\t\t\tsetFocus( true );\n\t\t};\n\t\tvar onBlur = function () {\n\t\t\tif ( ! ignoreBlur ) {\n\t\t\t\tsetFocus( false );\n\t\t\t}\n\t\t};\n\t\tvar addEvents = function () {\n\t\t\t$( document ).on( 'click', onBlur );\n\t\t\t//$el.on('acfBlur', onBlur);\n\t\t\t$el.on( 'blur', 'input, select, textarea', onBlur );\n\t\t};\n\t\tvar removeEvents = function () {\n\t\t\t$( document ).off( 'click', onBlur );\n\t\t\t//$el.off('acfBlur', onBlur);\n\t\t\t$el.off( 'blur', 'input, select, textarea', onBlur );\n\t\t};\n\t\tvar setFocus = function ( value ) {\n\t\t\tif ( focus === value ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( value ) {\n\t\t\t\taddEvents();\n\t\t\t} else {\n\t\t\t\tremoveEvents();\n\t\t\t}\n\t\t\tfocus = value;\n\t\t\tcallback( value );\n\t\t};\n\n\t\t// Add events and set data.\n\t\t$el.on( 'click', onFocus );\n\t\t//$el.on('acfFocus', onFocus);\n\t\t$el.on( 'focus', 'input, select, textarea', onFocus );\n\t\t//$el.data('acf.onFocus', true);\n\t};\n\n\t/*\n\t * exists\n\t *\n\t * This function will return true if a jQuery selection exists\n\t *\n\t * @type\tfunction\n\t * @date\t8/09/2014\n\t * @since\t5.0.0\n\t *\n\t * @param\tn/a\n\t * @return\t(boolean)\n\t */\n\n\t$.fn.exists = function () {\n\t\treturn $( this ).length > 0;\n\t};\n\n\t/*\n\t * outerHTML\n\t *\n\t * This function will return a string containing the HTML of the selected element\n\t *\n\t * @type\tfunction\n\t * @date\t19/11/2013\n\t * @since\t5.0.0\n\t *\n\t * @param\t$.fn\n\t * @return\t(string)\n\t */\n\n\t$.fn.outerHTML = function () {\n\t\treturn $( this ).get( 0 ).outerHTML;\n\t};\n\n\t/*\n\t * indexOf\n\t *\n\t * This function will provide compatibility for ie8\n\t *\n\t * @type\tfunction\n\t * @date\t5/3/17\n\t * @since\t5.5.10\n\t *\n\t * @param\tn/a\n\t * @return\tn/a\n\t */\n\n\tif ( ! Array.prototype.indexOf ) {\n\t\tArray.prototype.indexOf = function ( val ) {\n\t\t\treturn $.inArray( val, this );\n\t\t};\n\t}\n\n\t/**\n\t * Returns true if value is a number or a numeric string.\n\t *\n\t * @date\t30/11/20\n\t * @since\t5.9.4\n\t * @link\thttps://stackoverflow.com/questions/9716468/pure-javascript-a-function-like-jquerys-isnumeric/9716488#9716488\n\t *\n\t * @param\tmixed n The variable being evaluated.\n\t * @return\tbool.\n\t */\n\tacf.isNumeric = function ( n ) {\n\t\treturn ! isNaN( parseFloat( n ) ) && isFinite( n );\n\t};\n\n\t/**\n\t * Triggers a \"refresh\" action used by various Components to redraw the DOM.\n\t *\n\t * @date\t26/05/2020\n\t * @since\t5.9.0\n\t *\n\t * @param\tvoid\n\t * @return\tvoid\n\t */\n\tacf.refresh = acf.debounce( function () {\n\t\t$( window ).trigger( 'acfrefresh' );\n\t\tacf.doAction( 'refresh' );\n\t}, 0 );\n\n\t// Set up actions from events\n\t$( document ).ready( function () {\n\t\tacf.doAction( 'ready' );\n\t} );\n\n\t$( window ).on( 'load', function () {\n\t\t// Use timeout to ensure action runs after Gutenberg has modified DOM elements during \"DOMContentLoaded\".\n\t\tsetTimeout( function () {\n\t\t\tacf.doAction( 'load' );\n\t\t} );\n\t} );\n\n\t$( window ).on( 'beforeunload', function () {\n\t\tacf.doAction( 'unload' );\n\t} );\n\n\t$( window ).on( 'resize', function () {\n\t\tacf.doAction( 'resize' );\n\t} );\n\n\t$( document ).on( 'sortstart', function ( event, ui ) {\n\t\tacf.doAction( 'sortstart', ui.item, ui.placeholder );\n\t} );\n\n\t$( document ).on( 'sortstop', function ( event, ui ) {\n\t\tacf.doAction( 'sortstop', ui.item, ui.placeholder );\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.js';\nimport './_acf-hooks.js';\nimport './_acf-model.js';\nimport './_acf-popup.js';\nimport './_acf-modal.js';\nimport './_acf-panel.js';\nimport './_acf-notice.js';\nimport './_acf-tooltip.js';\n"],"names":["window","undefined","EventManager","MethodsAvailable","removeFilter","applyFilters","addFilter","removeAction","doAction","addAction","storage","getStorage","STORAGE","actions","filters","action","callback","priority","context","parseInt","_addHook","args","Array","prototype","slice","call","arguments","shift","_runHook","_removeHook","filter","type","hook","handlers","i","length","splice","handler","hookObject","hooks","push","_hookInsertSort","tmpHook","j","prevHook","len","apply","acf","$","models","Modal","Model","extend","data","title","content","toolbar","events","setup","props","$el","render","initialize","open","get","join","replaceWith","update","parseArgs","html","append","close","remove","onClickClose","e","preventDefault","newModal","jQuery","delegateEventSplitter","protoProps","Parent","Child","hasOwnProperty","constructor","Object","create","cid","uniqueId","addEvents","addActions","addFilters","wait","didAction","id","busy","changed","eventScope","name","has","set","value","silent","prevValue","trigger","inherit","prop","addElements","elements","keys","addElement","selector","key","match","on","removeEvents","off","getEventTarget","event","document","validateEvent","target","closest","is","proxyEvent","proxy","arrayArgs","extraArgs","eventArgs","currentTarget","concat","a1","a2","a3","a4","bubbles","triggerHandler","removeActions","removeFilters","find","setTimeout","milliseconds","time","console","timeEnd","show","hide","getInstance","getInstances","instances","each","Notice","text","timeout","dismiss","tmpl","addClass","away","$target","prepend","prevType","removeClass","escHtml","newNotice","noticeManager","$notice","after","panel","onClick","toggle","parent","isOpen","hasClass","attr","Popup","width","height","loading","css","$loading","newPopup","newTooltip","confirmRemove","textConfirm","__","textCancel","TooltipConfirm","confirm","Tooltip","position","fade","$tooltip","top","left","tolerance","targetWidth","outerWidth","targetHeight","outerHeight","targetTop","offset","targetLeft","tooltipWidth","tooltipHeight","tooltipTop","scrollTop","targetConfirm","cancel","$document","onCancel","stopImmediatePropagation","onConfirm","tooltipHoverHelper","tooltip","showTitle","hideTitle","idCounter","prefix","uniqueArray","array","onlyUnique","index","self","indexOf","uniqidSeed","uniqid","moreEntropy","retId","formatSeed","seed","reqWidth","toString","Math","floor","random","Date","getTime","toFixed","strReplace","search","replace","subject","split","strCamelCase","str","matches","map","s","c","charAt","toLowerCase","toUpperCase","strPascalCase","camel","strSlugify","strSanitize","À","Á","Â","Ã","Ä","Å","Æ","Ç","È","É","Ê","Ë","Ì","Í","Î","Ï","Ð","Ñ","Ò","Ó","Ô","Õ","Ö","Ø","Ù","Ú","Û","Ü","Ý","ß","à","á","â","ã","ä","å","æ","ç","è","é","ê","ë","ì","í","î","ï","ñ","ò","ó","ô","õ","ö","ø","ù","ú","û","ü","ý","ÿ","Ā","ā","Ă","ă","Ą","ą","Ć","ć","Ĉ","ĉ","Ċ","ċ","Č","č","Ď","ď","Đ","đ","Ē","ē","Ĕ","ĕ","Ė","ė","Ę","ę","Ě","ě","Ĝ","ĝ","Ğ","ğ","Ġ","ġ","Ģ","ģ","Ĥ","ĥ","Ħ","ħ","Ĩ","ĩ","Ī","ī","Ĭ","ĭ","Į","į","İ","ı","IJ","ij","Ĵ","ĵ","Ķ","ķ","Ĺ","ĺ","Ļ","ļ","Ľ","ľ","Ŀ","ŀ","Ł","ł","Ń","ń","Ņ","ņ","Ň","ň","ʼn","Ō","ō","Ŏ","ŏ","Ő","ő","Œ","œ","Ŕ","ŕ","Ŗ","ŗ","Ř","ř","Ś","ś","Ŝ","ŝ","Ş","ş","Š","š","Ţ","ţ","Ť","ť","Ŧ","ŧ","Ũ","ũ","Ū","ū","Ŭ","ŭ","Ů","ů","Ű","ű","Ų","ų","Ŵ","ŵ","Ŷ","ŷ","Ÿ","Ź","ź","Ż","ż","Ž","ž","ſ","ƒ","Ơ","ơ","Ư","ư","Ǎ","ǎ","Ǐ","ǐ","Ǒ","ǒ","Ǔ","ǔ","Ǖ","ǖ","Ǘ","ǘ","Ǚ","ǚ","Ǜ","ǜ","Ǻ","ǻ","Ǽ","ǽ","Ǿ","ǿ","nonWord","mapping","strMatch","s1","s2","val","min","strEscape","string","htmlEscapes","chr","strUnescape","htmlUnescapes","entity","escAttr","decode","defaults","acfL10n","_x","_n","single","plural","number","isArray","a","isObject","buildObject","obj","ref","String","serialize","inputs","serializeArray","item","serializeForAjax","actionHistory","doingAction","currentAction","k","preferences","JSON","parse","localStorage","getItem","getPreferenceName","substr","getPreference","setPreference","setItem","stringify","removePreference","endHeight","complete","removeTr","removeDiv","margin","style","wrap","$wrap","opacity","$tr","children","$td","duplicate","rename","before","$el2","clone","replacer","destructive","withReplacer","outerHTML","prepareForAjax","nonce","post_id","lang","startButtonLoading","stopButtonLoading","next","showLoading","hideLoading","updateUserSetting","ajaxData","ajax","url","dataType","$input","lockKey","unlock","isLocked","lock","isHidden","isVisible","enable","results","result","disable","isset","isget","getFileInputData","file","files","size","windowURL","URL","webkitURL","img","Image","onload","src","createObjectURL","isAjaxSuccess","json","success","getAjaxMessage","getAjaxError","getXhrError","xhr","responseJSON","message","statusText","renderSelect","$select","choices","values","crawl","items","itemsHtml","label","disabled","getLocks","setLocks","locks","isGutenberg","wp","select","objectToArray","debounce","later","clearTimeout","throttle","limit","isInView","el","rect","getBoundingClientRect","bottom","innerHeight","documentElement","clientHeight","right","innerWidth","clientWidth","onceInView","check","forEach","pop","debounced","once","func","focusAttention","scrollTime","animate","fadeTime","onFocus","ignoreBlur","focus","setFocus","onBlur","fn","exists","inArray","isNumeric","n","isNaN","parseFloat","isFinite","refresh","ready","ui","placeholder"],"sourceRoot":""}
|
1 |
+
{"version":3,"file":"acf.js","mappings":"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","sources":["webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_acf-hooks.js","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_acf-modal.js","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_acf-model.js","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_acf-notice.js","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_acf-panel.js","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_acf-popup.js","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_acf-tooltip.js","webpack://advanced-custom-fields-pro/./src/advanced-custom-fields-pro/assets/src/js/_acf.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.js"],"sourcesContent":["( function ( window, undefined ) {\n\t'use strict';\n\n\t/**\n\t * Handles managing all events for whatever you plug it into. Priorities for hooks are based on lowest to highest in\n\t * that, lowest priority hooks are fired first.\n\t */\n\tvar EventManager = function () {\n\t\t/**\n\t\t * Maintain a reference to the object scope so our public methods never get confusing.\n\t\t */\n\t\tvar MethodsAvailable = {\n\t\t\tremoveFilter: removeFilter,\n\t\t\tapplyFilters: applyFilters,\n\t\t\taddFilter: addFilter,\n\t\t\tremoveAction: removeAction,\n\t\t\tdoAction: doAction,\n\t\t\taddAction: addAction,\n\t\t\tstorage: getStorage,\n\t\t};\n\n\t\t/**\n\t\t * Contains the hooks that get registered with this EventManager. The array for storage utilizes a \"flat\"\n\t\t * object literal such that looking up the hook utilizes the native object literal hash.\n\t\t */\n\t\tvar STORAGE = {\n\t\t\tactions: {},\n\t\t\tfilters: {},\n\t\t};\n\n\t\tfunction getStorage() {\n\t\t\treturn STORAGE;\n\t\t}\n\n\t\t/**\n\t\t * Adds an action to the event manager.\n\t\t *\n\t\t * @param action Must contain namespace.identifier\n\t\t * @param callback Must be a valid callback function before this action is added\n\t\t * @param [priority=10] Used to control when the function is executed in relation to other callbacks bound to the same hook\n\t\t * @param [context] Supply a value to be used for this\n\t\t */\n\t\tfunction addAction( action, callback, priority, context ) {\n\t\t\tif (\n\t\t\t\ttypeof action === 'string' &&\n\t\t\t\ttypeof callback === 'function'\n\t\t\t) {\n\t\t\t\tpriority = parseInt( priority || 10, 10 );\n\t\t\t\t_addHook( 'actions', action, callback, priority, context );\n\t\t\t}\n\n\t\t\treturn MethodsAvailable;\n\t\t}\n\n\t\t/**\n\t\t * Performs an action if it exists. You can pass as many arguments as you want to this function; the only rule is\n\t\t * that the first argument must always be the action.\n\t\t */\n\t\tfunction doAction(/* action, arg1, arg2, ... */) {\n\t\t\tvar args = Array.prototype.slice.call( arguments );\n\t\t\tvar action = args.shift();\n\n\t\t\tif ( typeof action === 'string' ) {\n\t\t\t\t_runHook( 'actions', action, args );\n\t\t\t}\n\n\t\t\treturn MethodsAvailable;\n\t\t}\n\n\t\t/**\n\t\t * Removes the specified action if it contains a namespace.identifier & exists.\n\t\t *\n\t\t * @param action The action to remove\n\t\t * @param [callback] Callback function to remove\n\t\t */\n\t\tfunction removeAction( action, callback ) {\n\t\t\tif ( typeof action === 'string' ) {\n\t\t\t\t_removeHook( 'actions', action, callback );\n\t\t\t}\n\n\t\t\treturn MethodsAvailable;\n\t\t}\n\n\t\t/**\n\t\t * Adds a filter to the event manager.\n\t\t *\n\t\t * @param filter Must contain namespace.identifier\n\t\t * @param callback Must be a valid callback function before this action is added\n\t\t * @param [priority=10] Used to control when the function is executed in relation to other callbacks bound to the same hook\n\t\t * @param [context] Supply a value to be used for this\n\t\t */\n\t\tfunction addFilter( filter, callback, priority, context ) {\n\t\t\tif (\n\t\t\t\ttypeof filter === 'string' &&\n\t\t\t\ttypeof callback === 'function'\n\t\t\t) {\n\t\t\t\tpriority = parseInt( priority || 10, 10 );\n\t\t\t\t_addHook( 'filters', filter, callback, priority, context );\n\t\t\t}\n\n\t\t\treturn MethodsAvailable;\n\t\t}\n\n\t\t/**\n\t\t * Performs a filter if it exists. You should only ever pass 1 argument to be filtered. The only rule is that\n\t\t * the first argument must always be the filter.\n\t\t */\n\t\tfunction applyFilters(/* filter, filtered arg, arg2, ... */) {\n\t\t\tvar args = Array.prototype.slice.call( arguments );\n\t\t\tvar filter = args.shift();\n\n\t\t\tif ( typeof filter === 'string' ) {\n\t\t\t\treturn _runHook( 'filters', filter, args );\n\t\t\t}\n\n\t\t\treturn MethodsAvailable;\n\t\t}\n\n\t\t/**\n\t\t * Removes the specified filter if it contains a namespace.identifier & exists.\n\t\t *\n\t\t * @param filter The action to remove\n\t\t * @param [callback] Callback function to remove\n\t\t */\n\t\tfunction removeFilter( filter, callback ) {\n\t\t\tif ( typeof filter === 'string' ) {\n\t\t\t\t_removeHook( 'filters', filter, callback );\n\t\t\t}\n\n\t\t\treturn MethodsAvailable;\n\t\t}\n\n\t\t/**\n\t\t * Removes the specified hook by resetting the value of it.\n\t\t *\n\t\t * @param type Type of hook, either 'actions' or 'filters'\n\t\t * @param hook The hook (namespace.identifier) to remove\n\t\t * @private\n\t\t */\n\t\tfunction _removeHook( type, hook, callback, context ) {\n\t\t\tif ( ! STORAGE[ type ][ hook ] ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( ! callback ) {\n\t\t\t\tSTORAGE[ type ][ hook ] = [];\n\t\t\t} else {\n\t\t\t\tvar handlers = STORAGE[ type ][ hook ];\n\t\t\t\tvar i;\n\t\t\t\tif ( ! context ) {\n\t\t\t\t\tfor ( i = handlers.length; i--; ) {\n\t\t\t\t\t\tif ( handlers[ i ].callback === callback ) {\n\t\t\t\t\t\t\thandlers.splice( i, 1 );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tfor ( i = handlers.length; i--; ) {\n\t\t\t\t\t\tvar handler = handlers[ i ];\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\thandler.callback === callback &&\n\t\t\t\t\t\t\thandler.context === context\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\thandlers.splice( i, 1 );\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\t/**\n\t\t * Adds the hook to the appropriate storage container\n\t\t *\n\t\t * @param type 'actions' or 'filters'\n\t\t * @param hook The hook (namespace.identifier) to add to our event manager\n\t\t * @param callback The function that will be called when the hook is executed.\n\t\t * @param priority The priority of this hook. Must be an integer.\n\t\t * @param [context] A value to be used for this\n\t\t * @private\n\t\t */\n\t\tfunction _addHook( type, hook, callback, priority, context ) {\n\t\t\tvar hookObject = {\n\t\t\t\tcallback: callback,\n\t\t\t\tpriority: priority,\n\t\t\t\tcontext: context,\n\t\t\t};\n\n\t\t\t// Utilize 'prop itself' : http://jsperf.com/hasownproperty-vs-in-vs-undefined/19\n\t\t\tvar hooks = STORAGE[ type ][ hook ];\n\t\t\tif ( hooks ) {\n\t\t\t\thooks.push( hookObject );\n\t\t\t\thooks = _hookInsertSort( hooks );\n\t\t\t} else {\n\t\t\t\thooks = [ hookObject ];\n\t\t\t}\n\n\t\t\tSTORAGE[ type ][ hook ] = hooks;\n\t\t}\n\n\t\t/**\n\t\t * Use an insert sort for keeping our hooks organized based on priority. This function is ridiculously faster\n\t\t * than bubble sort, etc: http://jsperf.com/javascript-sort\n\t\t *\n\t\t * @param hooks The custom array containing all of the appropriate hooks to perform an insert sort on.\n\t\t * @private\n\t\t */\n\t\tfunction _hookInsertSort( hooks ) {\n\t\t\tvar tmpHook, j, prevHook;\n\t\t\tfor ( var i = 1, len = hooks.length; i < len; i++ ) {\n\t\t\t\ttmpHook = hooks[ i ];\n\t\t\t\tj = i;\n\t\t\t\twhile (\n\t\t\t\t\t( prevHook = hooks[ j - 1 ] ) &&\n\t\t\t\t\tprevHook.priority > tmpHook.priority\n\t\t\t\t) {\n\t\t\t\t\thooks[ j ] = hooks[ j - 1 ];\n\t\t\t\t\t--j;\n\t\t\t\t}\n\t\t\t\thooks[ j ] = tmpHook;\n\t\t\t}\n\n\t\t\treturn hooks;\n\t\t}\n\n\t\t/**\n\t\t * Runs the specified hook. If it is an action, the value is not modified but if it is a filter, it is.\n\t\t *\n\t\t * @param type 'actions' or 'filters'\n\t\t * @param hook The hook ( namespace.identifier ) to be ran.\n\t\t * @param args Arguments to pass to the action/filter. If it's a filter, args is actually a single parameter.\n\t\t * @private\n\t\t */\n\t\tfunction _runHook( type, hook, args ) {\n\t\t\tvar handlers = STORAGE[ type ][ hook ];\n\n\t\t\tif ( ! handlers ) {\n\t\t\t\treturn type === 'filters' ? args[ 0 ] : false;\n\t\t\t}\n\n\t\t\tvar i = 0,\n\t\t\t\tlen = handlers.length;\n\t\t\tif ( type === 'filters' ) {\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\targs[ 0 ] = handlers[ i ].callback.apply(\n\t\t\t\t\t\thandlers[ i ].context,\n\t\t\t\t\t\targs\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\thandlers[ i ].callback.apply( handlers[ i ].context, args );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn type === 'filters' ? args[ 0 ] : true;\n\t\t}\n\n\t\t// return all of the publicly available methods\n\t\treturn MethodsAvailable;\n\t};\n\n\t// instantiate\n\tacf.hooks = new EventManager();\n} )( window );\n","( function ( $, undefined ) {\n\tacf.models.Modal = acf.Model.extend( {\n\t\tdata: {\n\t\t\ttitle: '',\n\t\t\tcontent: '',\n\t\t\ttoolbar: '',\n\t\t},\n\t\tevents: {\n\t\t\t'click .acf-modal-close': 'onClickClose',\n\t\t},\n\t\tsetup: function ( props ) {\n\t\t\t$.extend( this.data, props );\n\t\t\tthis.$el = $();\n\t\t\tthis.render();\n\t\t},\n\t\tinitialize: function () {\n\t\t\tthis.open();\n\t\t},\n\t\trender: function () {\n\t\t\t// Extract vars.\n\t\t\tvar title = this.get( 'title' );\n\t\t\tvar content = this.get( 'content' );\n\t\t\tvar toolbar = this.get( 'toolbar' );\n\n\t\t\t// Create element.\n\t\t\tvar $el = $(\n\t\t\t\t[\n\t\t\t\t\t'<div>',\n\t\t\t\t\t'<div class=\"acf-modal\">',\n\t\t\t\t\t'<div class=\"acf-modal-title\">',\n\t\t\t\t\t'<h2>' + title + '</h2>',\n\t\t\t\t\t'<button class=\"acf-modal-close\" type=\"button\"><span class=\"dashicons dashicons-no\"></span></button>',\n\t\t\t\t\t'</div>',\n\t\t\t\t\t'<div class=\"acf-modal-content\">' + content + '</div>',\n\t\t\t\t\t'<div class=\"acf-modal-toolbar\">' + toolbar + '</div>',\n\t\t\t\t\t'</div>',\n\t\t\t\t\t'<div class=\"acf-modal-backdrop acf-modal-close\"></div>',\n\t\t\t\t\t'</div>',\n\t\t\t\t].join( '' )\n\t\t\t);\n\n\t\t\t// Update DOM.\n\t\t\tif ( this.$el ) {\n\t\t\t\tthis.$el.replaceWith( $el );\n\t\t\t}\n\t\t\tthis.$el = $el;\n\n\t\t\t// Trigger action.\n\t\t\tacf.doAction( 'append', $el );\n\t\t},\n\t\tupdate: function ( props ) {\n\t\t\tthis.data = acf.parseArgs( props, this.data );\n\t\t\tthis.render();\n\t\t},\n\t\ttitle: function ( title ) {\n\t\t\tthis.$( '.acf-modal-title h2' ).html( title );\n\t\t},\n\t\tcontent: function ( content ) {\n\t\t\tthis.$( '.acf-modal-content' ).html( content );\n\t\t},\n\t\ttoolbar: function ( toolbar ) {\n\t\t\tthis.$( '.acf-modal-toolbar' ).html( toolbar );\n\t\t},\n\t\topen: function () {\n\t\t\t$( 'body' ).append( this.$el );\n\t\t},\n\t\tclose: function () {\n\t\t\tthis.remove();\n\t\t},\n\t\tonClickClose: function ( e, $el ) {\n\t\t\te.preventDefault();\n\t\t\tthis.close();\n\t\t},\n\t} );\n\n\t/**\n\t * Returns a new modal.\n\t *\n\t * @date\t21/4/20\n\t * @since\t5.9.0\n\t *\n\t * @param\tobject props The modal props.\n\t * @return\tobject\n\t */\n\tacf.newModal = function ( props ) {\n\t\treturn new acf.models.Modal( props );\n\t};\n} )( jQuery );\n","( function ( $, undefined ) {\n\t// Cached regex to split keys for `addEvent`.\n\tvar delegateEventSplitter = /^(\\S+)\\s*(.*)$/;\n\n\t/**\n\t * extend\n\t *\n\t * Helper function to correctly set up the prototype chain for subclasses\n\t * Heavily inspired by backbone.js\n\t *\n\t * @date\t14/12/17\n\t * @since\t5.6.5\n\t *\n\t * @param\tobject protoProps New properties for this object.\n\t * @return\tfunction.\n\t */\n\n\tvar extend = function ( protoProps ) {\n\t\t// vars\n\t\tvar Parent = this;\n\t\tvar Child;\n\n\t\t// The constructor function for the new subclass is either defined by you\n\t\t// (the \"constructor\" property in your `extend` definition), or defaulted\n\t\t// by us to simply call the parent constructor.\n\t\tif ( protoProps && protoProps.hasOwnProperty( 'constructor' ) ) {\n\t\t\tChild = protoProps.constructor;\n\t\t} else {\n\t\t\tChild = function () {\n\t\t\t\treturn Parent.apply( this, arguments );\n\t\t\t};\n\t\t}\n\n\t\t// Add static properties to the constructor function, if supplied.\n\t\t$.extend( Child, Parent );\n\n\t\t// Set the prototype chain to inherit from `parent`, without calling\n\t\t// `parent`'s constructor function and add the prototype properties.\n\t\tChild.prototype = Object.create( Parent.prototype );\n\t\t$.extend( Child.prototype, protoProps );\n\t\tChild.prototype.constructor = Child;\n\n\t\t// Set a convenience property in case the parent's prototype is needed later.\n\t\t//Child.prototype.__parent__ = Parent.prototype;\n\n\t\t// return\n\t\treturn Child;\n\t};\n\n\t/**\n\t * Model\n\t *\n\t * Base class for all inheritence\n\t *\n\t * @date\t14/12/17\n\t * @since\t5.6.5\n\t *\n\t * @param\tobject props\n\t * @return\tfunction.\n\t */\n\n\tvar Model = ( acf.Model = function () {\n\t\t// generate uique client id\n\t\tthis.cid = acf.uniqueId( 'acf' );\n\n\t\t// set vars to avoid modifying prototype\n\t\tthis.data = $.extend( true, {}, this.data );\n\n\t\t// pass props to setup function\n\t\tthis.setup.apply( this, arguments );\n\n\t\t// store on element (allow this.setup to create this.$el)\n\t\tif ( this.$el && ! this.$el.data( 'acf' ) ) {\n\t\t\tthis.$el.data( 'acf', this );\n\t\t}\n\n\t\t// initialize\n\t\tvar initialize = function () {\n\t\t\tthis.initialize();\n\t\t\tthis.addEvents();\n\t\t\tthis.addActions();\n\t\t\tthis.addFilters();\n\t\t};\n\n\t\t// initialize on action\n\t\tif ( this.wait && ! acf.didAction( this.wait ) ) {\n\t\t\tthis.addAction( this.wait, initialize );\n\n\t\t\t// initialize now\n\t\t} else {\n\t\t\tinitialize.apply( this );\n\t\t}\n\t} );\n\n\t// Attach all inheritable methods to the Model prototype.\n\t$.extend( Model.prototype, {\n\t\t// Unique model id\n\t\tid: '',\n\n\t\t// Unique client id\n\t\tcid: '',\n\n\t\t// jQuery element\n\t\t$el: null,\n\n\t\t// Data specific to this instance\n\t\tdata: {},\n\n\t\t// toggle used when changing data\n\t\tbusy: false,\n\t\tchanged: false,\n\n\t\t// Setup events hooks\n\t\tevents: {},\n\t\tactions: {},\n\t\tfilters: {},\n\n\t\t// class used to avoid nested event triggers\n\t\teventScope: '',\n\n\t\t// action to wait until initialize\n\t\twait: false,\n\n\t\t// action priority default\n\t\tpriority: 10,\n\n\t\t/**\n\t\t * get\n\t\t *\n\t\t * Gets a specific data value\n\t\t *\n\t\t * @date\t14/12/17\n\t\t * @since\t5.6.5\n\t\t *\n\t\t * @param\tstring name\n\t\t * @return\tmixed\n\t\t */\n\n\t\tget: function ( name ) {\n\t\t\treturn this.data[ name ];\n\t\t},\n\n\t\t/**\n\t\t * has\n\t\t *\n\t\t * Returns `true` if the data exists and is not null\n\t\t *\n\t\t * @date\t14/12/17\n\t\t * @since\t5.6.5\n\t\t *\n\t\t * @param\tstring name\n\t\t * @return\tboolean\n\t\t */\n\n\t\thas: function ( name ) {\n\t\t\treturn this.get( name ) != null;\n\t\t},\n\n\t\t/**\n\t\t * set\n\t\t *\n\t\t * Sets a specific data value\n\t\t *\n\t\t * @date\t14/12/17\n\t\t * @since\t5.6.5\n\t\t *\n\t\t * @param\tstring name\n\t\t * @param\tmixed value\n\t\t * @return\tthis\n\t\t */\n\n\t\tset: function ( name, value, silent ) {\n\t\t\t// bail if unchanged\n\t\t\tvar prevValue = this.get( name );\n\t\t\tif ( prevValue == value ) {\n\t\t\t\treturn this;\n\t\t\t}\n\n\t\t\t// set data\n\t\t\tthis.data[ name ] = value;\n\n\t\t\t// trigger events\n\t\t\tif ( ! silent ) {\n\t\t\t\tthis.changed = true;\n\t\t\t\tthis.trigger( 'changed:' + name, [ value, prevValue ] );\n\t\t\t\tthis.trigger( 'changed', [ name, value, prevValue ] );\n\t\t\t}\n\n\t\t\t// return\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * inherit\n\t\t *\n\t\t * Inherits the data from a jQuery element\n\t\t *\n\t\t * @date\t14/12/17\n\t\t * @since\t5.6.5\n\t\t *\n\t\t * @param\tjQuery $el\n\t\t * @return\tthis\n\t\t */\n\n\t\tinherit: function ( data ) {\n\t\t\t// allow jQuery\n\t\t\tif ( data instanceof jQuery ) {\n\t\t\t\tdata = data.data();\n\t\t\t}\n\n\t\t\t// extend\n\t\t\t$.extend( this.data, data );\n\n\t\t\t// return\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * prop\n\t\t *\n\t\t * mimics the jQuery prop function\n\t\t *\n\t\t * @date\t4/6/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\tprop: function () {\n\t\t\treturn this.$el.prop.apply( this.$el, arguments );\n\t\t},\n\n\t\t/**\n\t\t * setup\n\t\t *\n\t\t * Run during constructor function\n\t\t *\n\t\t * @date\t14/12/17\n\t\t * @since\t5.6.5\n\t\t *\n\t\t * @param\tn/a\n\t\t * @return\tn/a\n\t\t */\n\n\t\tsetup: function ( props ) {\n\t\t\t$.extend( this, props );\n\t\t},\n\n\t\t/**\n\t\t * initialize\n\t\t *\n\t\t * Also run during constructor function\n\t\t *\n\t\t * @date\t14/12/17\n\t\t * @since\t5.6.5\n\t\t *\n\t\t * @param\tn/a\n\t\t * @return\tn/a\n\t\t */\n\n\t\tinitialize: function () {},\n\n\t\t/**\n\t\t * addElements\n\t\t *\n\t\t * Adds multiple jQuery elements to this object\n\t\t *\n\t\t * @date\t9/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\taddElements: function ( elements ) {\n\t\t\telements = elements || this.elements || null;\n\t\t\tif ( ! elements || ! Object.keys( elements ).length ) return false;\n\t\t\tfor ( var i in elements ) {\n\t\t\t\tthis.addElement( i, elements[ i ] );\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * addElement\n\t\t *\n\t\t * description\n\t\t *\n\t\t * @date\t9/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\taddElement: function ( name, selector ) {\n\t\t\tthis[ '$' + name ] = this.$( selector );\n\t\t},\n\n\t\t/**\n\t\t * addEvents\n\t\t *\n\t\t * Adds multiple event handlers\n\t\t *\n\t\t * @date\t14/12/17\n\t\t * @since\t5.6.5\n\t\t *\n\t\t * @param\tobject events {event1 : callback, event2 : callback, etc }\n\t\t * @return\tn/a\n\t\t */\n\n\t\taddEvents: function ( events ) {\n\t\t\tevents = events || this.events || null;\n\t\t\tif ( ! events ) return false;\n\t\t\tfor ( var key in events ) {\n\t\t\t\tvar match = key.match( delegateEventSplitter );\n\t\t\t\tthis.on( match[ 1 ], match[ 2 ], events[ key ] );\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * removeEvents\n\t\t *\n\t\t * Removes multiple event handlers\n\t\t *\n\t\t * @date\t14/12/17\n\t\t * @since\t5.6.5\n\t\t *\n\t\t * @param\tobject events {event1 : callback, event2 : callback, etc }\n\t\t * @return\tn/a\n\t\t */\n\n\t\tremoveEvents: function ( events ) {\n\t\t\tevents = events || this.events || null;\n\t\t\tif ( ! events ) return false;\n\t\t\tfor ( var key in events ) {\n\t\t\t\tvar match = key.match( delegateEventSplitter );\n\t\t\t\tthis.off( match[ 1 ], match[ 2 ], events[ key ] );\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * getEventTarget\n\t\t *\n\t\t * Returns a jQUery element to tigger an event on\n\t\t *\n\t\t * @date\t5/6/18\n\t\t * @since\t5.6.9\n\t\t *\n\t\t * @param\tjQuery $el\t\tThe default jQuery element. Optional.\n\t\t * @param\tstring event\tThe event name. Optional.\n\t\t * @return\tjQuery\n\t\t */\n\n\t\tgetEventTarget: function ( $el, event ) {\n\t\t\treturn $el || this.$el || $( document );\n\t\t},\n\n\t\t/**\n\t\t * validateEvent\n\t\t *\n\t\t * Returns true if the event target's closest $el is the same as this.$el\n\t\t * Requires both this.el and this.$el to be defined\n\t\t *\n\t\t * @date\t5/6/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\tvalidateEvent: function ( e ) {\n\t\t\tif ( this.eventScope ) {\n\t\t\t\treturn $( e.target ).closest( this.eventScope ).is( this.$el );\n\t\t\t} else {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * proxyEvent\n\t\t *\n\t\t * Returns a new event callback function scoped to this model\n\t\t *\n\t\t * @date\t29/3/18\n\t\t * @since\t5.6.9\n\t\t *\n\t\t * @param\tfunction callback\n\t\t * @return\tfunction\n\t\t */\n\n\t\tproxyEvent: function ( callback ) {\n\t\t\treturn this.proxy( function ( e ) {\n\t\t\t\t// validate\n\t\t\t\tif ( ! this.validateEvent( e ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// construct args\n\t\t\t\tvar args = acf.arrayArgs( arguments );\n\t\t\t\tvar extraArgs = args.slice( 1 );\n\t\t\t\tvar eventArgs = [ e, $( e.currentTarget ) ].concat( extraArgs );\n\n\t\t\t\t// callback\n\t\t\t\tcallback.apply( this, eventArgs );\n\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * on\n\t\t *\n\t\t * Adds an event handler similar to jQuery\n\t\t * Uses the instance 'cid' to namespace event\n\t\t *\n\t\t * @date\t14/12/17\n\t\t * @since\t5.6.5\n\t\t *\n\t\t * @param\tstring name\n\t\t * @param\tstring callback\n\t\t * @return\tn/a\n\t\t */\n\n\t\ton: function ( a1, a2, a3, a4 ) {\n\t\t\t// vars\n\t\t\tvar $el, event, selector, callback, args;\n\n\t\t\t// find args\n\t\t\tif ( a1 instanceof jQuery ) {\n\t\t\t\t// 1. args( $el, event, selector, callback )\n\t\t\t\tif ( a4 ) {\n\t\t\t\t\t$el = a1;\n\t\t\t\t\tevent = a2;\n\t\t\t\t\tselector = a3;\n\t\t\t\t\tcallback = a4;\n\n\t\t\t\t\t// 2. args( $el, event, callback )\n\t\t\t\t} else {\n\t\t\t\t\t$el = a1;\n\t\t\t\t\tevent = a2;\n\t\t\t\t\tcallback = a3;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// 3. args( event, selector, callback )\n\t\t\t\tif ( a3 ) {\n\t\t\t\t\tevent = a1;\n\t\t\t\t\tselector = a2;\n\t\t\t\t\tcallback = a3;\n\n\t\t\t\t\t// 4. args( event, callback )\n\t\t\t\t} else {\n\t\t\t\t\tevent = a1;\n\t\t\t\t\tcallback = a2;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// element\n\t\t\t$el = this.getEventTarget( $el );\n\n\t\t\t// modify callback\n\t\t\tif ( typeof callback === 'string' ) {\n\t\t\t\tcallback = this.proxyEvent( this[ callback ] );\n\t\t\t}\n\n\t\t\t// modify event\n\t\t\tevent = event + '.' + this.cid;\n\n\t\t\t// args\n\t\t\tif ( selector ) {\n\t\t\t\targs = [ event, selector, callback ];\n\t\t\t} else {\n\t\t\t\targs = [ event, callback ];\n\t\t\t}\n\n\t\t\t// on()\n\t\t\t$el.on.apply( $el, args );\n\t\t},\n\n\t\t/**\n\t\t * off\n\t\t *\n\t\t * Removes an event handler similar to jQuery\n\t\t *\n\t\t * @date\t14/12/17\n\t\t * @since\t5.6.5\n\t\t *\n\t\t * @param\tstring name\n\t\t * @param\tstring callback\n\t\t * @return\tn/a\n\t\t */\n\n\t\toff: function ( a1, a2, a3 ) {\n\t\t\t// vars\n\t\t\tvar $el, event, selector, args;\n\n\t\t\t// find args\n\t\t\tif ( a1 instanceof jQuery ) {\n\t\t\t\t// 1. args( $el, event, selector )\n\t\t\t\tif ( a3 ) {\n\t\t\t\t\t$el = a1;\n\t\t\t\t\tevent = a2;\n\t\t\t\t\tselector = a3;\n\n\t\t\t\t\t// 2. args( $el, event )\n\t\t\t\t} else {\n\t\t\t\t\t$el = a1;\n\t\t\t\t\tevent = a2;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// 3. args( event, selector )\n\t\t\t\tif ( a2 ) {\n\t\t\t\t\tevent = a1;\n\t\t\t\t\tselector = a2;\n\n\t\t\t\t\t// 4. args( event )\n\t\t\t\t} else {\n\t\t\t\t\tevent = a1;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// element\n\t\t\t$el = this.getEventTarget( $el );\n\n\t\t\t// modify event\n\t\t\tevent = event + '.' + this.cid;\n\n\t\t\t// args\n\t\t\tif ( selector ) {\n\t\t\t\targs = [ event, selector ];\n\t\t\t} else {\n\t\t\t\targs = [ event ];\n\t\t\t}\n\n\t\t\t// off()\n\t\t\t$el.off.apply( $el, args );\n\t\t},\n\n\t\t/**\n\t\t * trigger\n\t\t *\n\t\t * Triggers an event similar to jQuery\n\t\t *\n\t\t * @date\t14/12/17\n\t\t * @since\t5.6.5\n\t\t *\n\t\t * @param\tstring name\n\t\t * @param\tstring callback\n\t\t * @return\tn/a\n\t\t */\n\n\t\ttrigger: function ( name, args, bubbles ) {\n\t\t\tvar $el = this.getEventTarget();\n\t\t\tif ( bubbles ) {\n\t\t\t\t$el.trigger.apply( $el, arguments );\n\t\t\t} else {\n\t\t\t\t$el.triggerHandler.apply( $el, arguments );\n\t\t\t}\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * addActions\n\t\t *\n\t\t * Adds multiple action handlers\n\t\t *\n\t\t * @date\t14/12/17\n\t\t * @since\t5.6.5\n\t\t *\n\t\t * @param\tobject actions {action1 : callback, action2 : callback, etc }\n\t\t * @return\tn/a\n\t\t */\n\n\t\taddActions: function ( actions ) {\n\t\t\tactions = actions || this.actions || null;\n\t\t\tif ( ! actions ) return false;\n\t\t\tfor ( var i in actions ) {\n\t\t\t\tthis.addAction( i, actions[ i ] );\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * removeActions\n\t\t *\n\t\t * Removes multiple action handlers\n\t\t *\n\t\t * @date\t14/12/17\n\t\t * @since\t5.6.5\n\t\t *\n\t\t * @param\tobject actions {action1 : callback, action2 : callback, etc }\n\t\t * @return\tn/a\n\t\t */\n\n\t\tremoveActions: function ( actions ) {\n\t\t\tactions = actions || this.actions || null;\n\t\t\tif ( ! actions ) return false;\n\t\t\tfor ( var i in actions ) {\n\t\t\t\tthis.removeAction( i, actions[ i ] );\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * addAction\n\t\t *\n\t\t * Adds an action using the wp.hooks library\n\t\t *\n\t\t * @date\t14/12/17\n\t\t * @since\t5.6.5\n\t\t *\n\t\t * @param\tstring name\n\t\t * @param\tstring callback\n\t\t * @return\tn/a\n\t\t */\n\n\t\taddAction: function ( name, callback, priority ) {\n\t\t\t//console.log('addAction', name, priority);\n\t\t\t// defaults\n\t\t\tpriority = priority || this.priority;\n\n\t\t\t// modify callback\n\t\t\tif ( typeof callback === 'string' ) {\n\t\t\t\tcallback = this[ callback ];\n\t\t\t}\n\n\t\t\t// add\n\t\t\tacf.addAction( name, callback, priority, this );\n\t\t},\n\n\t\t/**\n\t\t * removeAction\n\t\t *\n\t\t * Remove an action using the wp.hooks library\n\t\t *\n\t\t * @date\t14/12/17\n\t\t * @since\t5.6.5\n\t\t *\n\t\t * @param\tstring name\n\t\t * @param\tstring callback\n\t\t * @return\tn/a\n\t\t */\n\n\t\tremoveAction: function ( name, callback ) {\n\t\t\tacf.removeAction( name, this[ callback ] );\n\t\t},\n\n\t\t/**\n\t\t * addFilters\n\t\t *\n\t\t * Adds multiple filter handlers\n\t\t *\n\t\t * @date\t14/12/17\n\t\t * @since\t5.6.5\n\t\t *\n\t\t * @param\tobject filters {filter1 : callback, filter2 : callback, etc }\n\t\t * @return\tn/a\n\t\t */\n\n\t\taddFilters: function ( filters ) {\n\t\t\tfilters = filters || this.filters || null;\n\t\t\tif ( ! filters ) return false;\n\t\t\tfor ( var i in filters ) {\n\t\t\t\tthis.addFilter( i, filters[ i ] );\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * addFilter\n\t\t *\n\t\t * Adds a filter using the wp.hooks library\n\t\t *\n\t\t * @date\t14/12/17\n\t\t * @since\t5.6.5\n\t\t *\n\t\t * @param\tstring name\n\t\t * @param\tstring callback\n\t\t * @return\tn/a\n\t\t */\n\n\t\taddFilter: function ( name, callback, priority ) {\n\t\t\t// defaults\n\t\t\tpriority = priority || this.priority;\n\n\t\t\t// modify callback\n\t\t\tif ( typeof callback === 'string' ) {\n\t\t\t\tcallback = this[ callback ];\n\t\t\t}\n\n\t\t\t// add\n\t\t\tacf.addFilter( name, callback, priority, this );\n\t\t},\n\n\t\t/**\n\t\t * removeFilters\n\t\t *\n\t\t * Removes multiple filter handlers\n\t\t *\n\t\t * @date\t14/12/17\n\t\t * @since\t5.6.5\n\t\t *\n\t\t * @param\tobject filters {filter1 : callback, filter2 : callback, etc }\n\t\t * @return\tn/a\n\t\t */\n\n\t\tremoveFilters: function ( filters ) {\n\t\t\tfilters = filters || this.filters || null;\n\t\t\tif ( ! filters ) return false;\n\t\t\tfor ( var i in filters ) {\n\t\t\t\tthis.removeFilter( i, filters[ i ] );\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * removeFilter\n\t\t *\n\t\t * Remove a filter using the wp.hooks library\n\t\t *\n\t\t * @date\t14/12/17\n\t\t * @since\t5.6.5\n\t\t *\n\t\t * @param\tstring name\n\t\t * @param\tstring callback\n\t\t * @return\tn/a\n\t\t */\n\n\t\tremoveFilter: function ( name, callback ) {\n\t\t\tacf.removeFilter( name, this[ callback ] );\n\t\t},\n\n\t\t/**\n\t\t * $\n\t\t *\n\t\t * description\n\t\t *\n\t\t * @date\t16/12/17\n\t\t * @since\t5.6.5\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 ( selector ) {\n\t\t\treturn this.$el.find( selector );\n\t\t},\n\n\t\t/**\n\t\t * remove\n\t\t *\n\t\t * Removes the element and listenters\n\t\t *\n\t\t * @date\t19/12/17\n\t\t * @since\t5.6.5\n\t\t *\n\t\t * @param\ttype $var Description. Default.\n\t\t * @return\ttype Description.\n\t\t */\n\n\t\tremove: function () {\n\t\t\tthis.removeEvents();\n\t\t\tthis.removeActions();\n\t\t\tthis.removeFilters();\n\t\t\tthis.$el.remove();\n\t\t},\n\n\t\t/**\n\t\t * setTimeout\n\t\t *\n\t\t * description\n\t\t *\n\t\t * @date\t16/1/18\n\t\t * @since\t5.6.5\n\t\t *\n\t\t * @param\ttype $var Description. Default.\n\t\t * @return\ttype Description.\n\t\t */\n\n\t\tsetTimeout: function ( callback, milliseconds ) {\n\t\t\treturn setTimeout( this.proxy( callback ), milliseconds );\n\t\t},\n\n\t\t/**\n\t\t * time\n\t\t *\n\t\t * used for debugging\n\t\t *\n\t\t * @date\t7/3/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\ttime: function () {\n\t\t\tconsole.time( this.id || this.cid );\n\t\t},\n\n\t\t/**\n\t\t * timeEnd\n\t\t *\n\t\t * used for debugging\n\t\t *\n\t\t * @date\t7/3/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\ttimeEnd: function () {\n\t\t\tconsole.timeEnd( this.id || this.cid );\n\t\t},\n\n\t\t/**\n\t\t * show\n\t\t *\n\t\t * description\n\t\t *\n\t\t * @date\t15/3/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\tshow: function () {\n\t\t\tacf.show( this.$el );\n\t\t},\n\n\t\t/**\n\t\t * hide\n\t\t *\n\t\t * description\n\t\t *\n\t\t * @date\t15/3/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\thide: function () {\n\t\t\tacf.hide( this.$el );\n\t\t},\n\n\t\t/**\n\t\t * proxy\n\t\t *\n\t\t * Returns a new function scoped to this model\n\t\t *\n\t\t * @date\t29/3/18\n\t\t * @since\t5.6.9\n\t\t *\n\t\t * @param\tfunction callback\n\t\t * @return\tfunction\n\t\t */\n\n\t\tproxy: function ( callback ) {\n\t\t\treturn $.proxy( callback, this );\n\t\t},\n\t} );\n\n\t// Set up inheritance for the model\n\tModel.extend = extend;\n\n\t// Global model storage\n\tacf.models = {};\n\n\t/**\n\t * acf.getInstance\n\t *\n\t * This function will get an instance from an element\n\t *\n\t * @date\t5/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.getInstance = function ( $el ) {\n\t\treturn $el.data( 'acf' );\n\t};\n\n\t/**\n\t * acf.getInstances\n\t *\n\t * This function will get an array of instances from multiple elements\n\t *\n\t * @date\t5/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.getInstances = function ( $el ) {\n\t\tvar instances = [];\n\t\t$el.each( function () {\n\t\t\tinstances.push( acf.getInstance( $( this ) ) );\n\t\t} );\n\t\treturn instances;\n\t};\n} )( jQuery );\n","( function ( $, undefined ) {\n\tvar Notice = acf.Model.extend( {\n\t\tdata: {\n\t\t\ttext: '',\n\t\t\ttype: '',\n\t\t\ttimeout: 0,\n\t\t\tdismiss: true,\n\t\t\ttarget: false,\n\t\t\tclose: function () {},\n\t\t},\n\n\t\tevents: {\n\t\t\t'click .acf-notice-dismiss': 'onClickClose',\n\t\t},\n\n\t\ttmpl: function () {\n\t\t\treturn '<div class=\"acf-notice\"></div>';\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},\n\n\t\tinitialize: function () {\n\t\t\t// render\n\t\t\tthis.render();\n\n\t\t\t// show\n\t\t\tthis.show();\n\t\t},\n\n\t\trender: function () {\n\t\t\t// class\n\t\t\tthis.type( this.get( 'type' ) );\n\n\t\t\t// text\n\t\t\tthis.html( '<p>' + this.get( 'text' ) + '</p>' );\n\n\t\t\t// close\n\t\t\tif ( this.get( 'dismiss' ) ) {\n\t\t\t\tthis.$el.append(\n\t\t\t\t\t'<a href=\"#\" class=\"acf-notice-dismiss acf-icon -cancel small\"></a>'\n\t\t\t\t);\n\t\t\t\tthis.$el.addClass( '-dismiss' );\n\t\t\t}\n\n\t\t\t// timeout\n\t\t\tvar timeout = this.get( 'timeout' );\n\t\t\tif ( timeout ) {\n\t\t\t\tthis.away( timeout );\n\t\t\t}\n\t\t},\n\n\t\tupdate: function ( props ) {\n\t\t\t// update\n\t\t\t$.extend( this.data, props );\n\n\t\t\t// re-initialize\n\t\t\tthis.initialize();\n\n\t\t\t// refresh events\n\t\t\tthis.removeEvents();\n\t\t\tthis.addEvents();\n\t\t},\n\n\t\tshow: function () {\n\t\t\tvar $target = this.get( 'target' );\n\t\t\tif ( $target ) {\n\t\t\t\t$target.prepend( this.$el );\n\t\t\t}\n\t\t},\n\n\t\thide: function () {\n\t\t\tthis.$el.remove();\n\t\t},\n\n\t\taway: function ( timeout ) {\n\t\t\tthis.setTimeout( function () {\n\t\t\t\tacf.remove( this.$el );\n\t\t\t}, timeout );\n\t\t},\n\n\t\ttype: function ( type ) {\n\t\t\t// remove prev type\n\t\t\tvar prevType = this.get( 'type' );\n\t\t\tif ( prevType ) {\n\t\t\t\tthis.$el.removeClass( '-' + prevType );\n\t\t\t}\n\n\t\t\t// add new type\n\t\t\tthis.$el.addClass( '-' + type );\n\n\t\t\t// backwards compatibility\n\t\t\tif ( type == 'error' ) {\n\t\t\t\tthis.$el.addClass( 'acf-error-message' );\n\t\t\t}\n\t\t},\n\n\t\thtml: function ( html ) {\n\t\t\tthis.$el.html( acf.escHtml( html ) );\n\t\t},\n\n\t\ttext: function ( text ) {\n\t\t\tthis.$( 'p' ).html( acf.escHtml( text ) );\n\t\t},\n\n\t\tonClickClose: function ( e, $el ) {\n\t\t\te.preventDefault();\n\t\t\tthis.get( 'close' ).apply( this, arguments );\n\t\t\tthis.remove();\n\t\t},\n\t} );\n\n\tacf.newNotice = function ( props ) {\n\t\t// ensure object\n\t\tif ( typeof props !== 'object' ) {\n\t\t\tprops = { text: props };\n\t\t}\n\n\t\t// instantiate\n\t\treturn new Notice( props );\n\t};\n\n\tvar noticeManager = new acf.Model( {\n\t\twait: 'prepare',\n\t\tpriority: 1,\n\t\tinitialize: function () {\n\t\t\t// vars\n\t\t\tvar $notice = $( '.acf-admin-notice' );\n\n\t\t\t// move to avoid WP flicker\n\t\t\tif ( $notice.length ) {\n\t\t\t\t$( 'h1:first' ).after( $notice );\n\t\t\t}\n\t\t},\n\t} );\n} )( jQuery );\n","( function ( $, undefined ) {\n\tvar panel = new acf.Model( {\n\t\tevents: {\n\t\t\t'click .acf-panel-title': 'onClick',\n\t\t},\n\n\t\tonClick: function ( e, $el ) {\n\t\t\te.preventDefault();\n\t\t\tthis.toggle( $el.parent() );\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\tthis.isOpen( $el ) ? this.close( $el ) : this.open( $el );\n\t\t},\n\n\t\topen: function ( $el ) {\n\t\t\t$el.addClass( '-open' );\n\t\t\t$el.find( '.acf-panel-title i' ).attr(\n\t\t\t\t'class',\n\t\t\t\t'dashicons dashicons-arrow-down'\n\t\t\t);\n\t\t},\n\n\t\tclose: function ( $el ) {\n\t\t\t$el.removeClass( '-open' );\n\t\t\t$el.find( '.acf-panel-title i' ).attr(\n\t\t\t\t'class',\n\t\t\t\t'dashicons dashicons-arrow-right'\n\t\t\t);\n\t\t},\n\t} );\n} )( jQuery );\n","( function ( $, undefined ) {\n\tacf.models.Popup = acf.Model.extend( {\n\t\tdata: {\n\t\t\ttitle: '',\n\t\t\tcontent: '',\n\t\t\twidth: 0,\n\t\t\theight: 0,\n\t\t\tloading: false,\n\t\t},\n\n\t\tevents: {\n\t\t\t'click [data-event=\"close\"]': 'onClickClose',\n\t\t\t'click .acf-close-popup': 'onClickClose',\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},\n\n\t\tinitialize: function () {\n\t\t\tthis.render();\n\t\t\tthis.open();\n\t\t},\n\n\t\ttmpl: function () {\n\t\t\treturn [\n\t\t\t\t'<div id=\"acf-popup\">',\n\t\t\t\t'<div class=\"acf-popup-box acf-box\">',\n\t\t\t\t'<div class=\"title\"><h3></h3><a href=\"#\" class=\"acf-icon -cancel grey\" data-event=\"close\"></a></div>',\n\t\t\t\t'<div class=\"inner\"></div>',\n\t\t\t\t'<div class=\"loading\"><i class=\"acf-loading\"></i></div>',\n\t\t\t\t'</div>',\n\t\t\t\t'<div class=\"bg\" data-event=\"close\"></div>',\n\t\t\t\t'</div>',\n\t\t\t].join( '' );\n\t\t},\n\n\t\trender: function () {\n\t\t\t// Extract Vars.\n\t\t\tvar title = this.get( 'title' );\n\t\t\tvar content = this.get( 'content' );\n\t\t\tvar loading = this.get( 'loading' );\n\t\t\tvar width = this.get( 'width' );\n\t\t\tvar height = this.get( 'height' );\n\n\t\t\t// Update.\n\t\t\tthis.title( title );\n\t\t\tthis.content( content );\n\t\t\tif ( width ) {\n\t\t\t\tthis.$( '.acf-popup-box' ).css( 'width', width );\n\t\t\t}\n\t\t\tif ( height ) {\n\t\t\t\tthis.$( '.acf-popup-box' ).css( 'min-height', height );\n\t\t\t}\n\t\t\tthis.loading( loading );\n\n\t\t\t// Trigger action.\n\t\t\tacf.doAction( 'append', this.$el );\n\t\t},\n\n\t\tupdate: function ( props ) {\n\t\t\tthis.data = acf.parseArgs( props, this.data );\n\t\t\tthis.render();\n\t\t},\n\n\t\ttitle: function ( title ) {\n\t\t\tthis.$( '.title:first h3' ).html( title );\n\t\t},\n\n\t\tcontent: function ( content ) {\n\t\t\tthis.$( '.inner:first' ).html( content );\n\t\t},\n\n\t\tloading: function ( show ) {\n\t\t\tvar $loading = this.$( '.loading:first' );\n\t\t\tshow ? $loading.show() : $loading.hide();\n\t\t},\n\n\t\topen: function () {\n\t\t\t$( 'body' ).append( this.$el );\n\t\t},\n\n\t\tclose: function () {\n\t\t\tthis.remove();\n\t\t},\n\n\t\tonClickClose: function ( e, $el ) {\n\t\t\te.preventDefault();\n\t\t\tthis.close();\n\t\t},\n\t} );\n\n\t/**\n\t * newPopup\n\t *\n\t * Creates a new Popup with the supplied props\n\t *\n\t * @date\t17/12/17\n\t * @since\t5.6.5\n\t *\n\t * @param\tobject props\n\t * @return\tobject\n\t */\n\n\tacf.newPopup = function ( props ) {\n\t\treturn new acf.models.Popup( props );\n\t};\n} )( jQuery );\n","( function ( $, undefined ) {\n\tacf.newTooltip = function ( props ) {\n\t\t// ensure object\n\t\tif ( typeof props !== 'object' ) {\n\t\t\tprops = { text: props };\n\t\t}\n\n\t\t// confirmRemove\n\t\tif ( props.confirmRemove !== undefined ) {\n\t\t\tprops.textConfirm = acf.__( 'Remove' );\n\t\t\tprops.textCancel = acf.__( 'Cancel' );\n\t\t\treturn new TooltipConfirm( props );\n\n\t\t\t// confirm\n\t\t} else if ( props.confirm !== undefined ) {\n\t\t\treturn new TooltipConfirm( props );\n\n\t\t\t// default\n\t\t} else {\n\t\t\treturn new Tooltip( props );\n\t\t}\n\t};\n\n\tvar Tooltip = acf.Model.extend( {\n\t\tdata: {\n\t\t\ttext: '',\n\t\t\ttimeout: 0,\n\t\t\ttarget: null,\n\t\t},\n\n\t\ttmpl: function () {\n\t\t\treturn '<div class=\"acf-tooltip\"></div>';\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},\n\n\t\tinitialize: function () {\n\t\t\t// render\n\t\t\tthis.render();\n\n\t\t\t// append\n\t\t\tthis.show();\n\n\t\t\t// position\n\t\t\tthis.position();\n\n\t\t\t// timeout\n\t\t\tvar timeout = this.get( 'timeout' );\n\t\t\tif ( timeout ) {\n\t\t\t\tsetTimeout( $.proxy( this.fade, this ), timeout );\n\t\t\t}\n\t\t},\n\n\t\tupdate: function ( props ) {\n\t\t\t$.extend( this.data, props );\n\t\t\tthis.initialize();\n\t\t},\n\n\t\trender: function () {\n\t\t\tthis.html( this.get( 'text' ) );\n\t\t},\n\n\t\tshow: function () {\n\t\t\t$( 'body' ).append( this.$el );\n\t\t},\n\n\t\thide: function () {\n\t\t\tthis.$el.remove();\n\t\t},\n\n\t\tfade: function () {\n\t\t\t// add class\n\t\t\tthis.$el.addClass( 'acf-fade-up' );\n\n\t\t\t// remove\n\t\t\tthis.setTimeout( function () {\n\t\t\t\tthis.remove();\n\t\t\t}, 250 );\n\t\t},\n\n\t\thtml: function ( html ) {\n\t\t\tthis.$el.html( html );\n\t\t},\n\n\t\tposition: function () {\n\t\t\t// vars\n\t\t\tvar $tooltip = this.$el;\n\t\t\tvar $target = this.get( 'target' );\n\t\t\tif ( ! $target ) return;\n\n\t\t\t// Reset position.\n\t\t\t$tooltip\n\t\t\t\t.removeClass( 'right left bottom top' )\n\t\t\t\t.css( { top: 0, left: 0 } );\n\n\t\t\t// Declare tollerance to edge of screen.\n\t\t\tvar tolerance = 10;\n\n\t\t\t// Find target position.\n\t\t\tvar targetWidth = $target.outerWidth();\n\t\t\tvar targetHeight = $target.outerHeight();\n\t\t\tvar targetTop = $target.offset().top;\n\t\t\tvar targetLeft = $target.offset().left;\n\n\t\t\t// Find tooltip position.\n\t\t\tvar tooltipWidth = $tooltip.outerWidth();\n\t\t\tvar tooltipHeight = $tooltip.outerHeight();\n\t\t\tvar tooltipTop = $tooltip.offset().top; // Should be 0, but WP media grid causes this to be 32 (toolbar padding).\n\n\t\t\t// Assume default top alignment.\n\t\t\tvar top = targetTop - tooltipHeight - tooltipTop;\n\t\t\tvar left = targetLeft + targetWidth / 2 - tooltipWidth / 2;\n\n\t\t\t// Check if too far left.\n\t\t\tif ( left < tolerance ) {\n\t\t\t\t$tooltip.addClass( 'right' );\n\t\t\t\tleft = targetLeft + targetWidth;\n\t\t\t\ttop =\n\t\t\t\t\ttargetTop +\n\t\t\t\t\ttargetHeight / 2 -\n\t\t\t\t\ttooltipHeight / 2 -\n\t\t\t\t\ttooltipTop;\n\n\t\t\t\t// Check if too far right.\n\t\t\t} else if (\n\t\t\t\tleft + tooltipWidth + tolerance >\n\t\t\t\t$( window ).width()\n\t\t\t) {\n\t\t\t\t$tooltip.addClass( 'left' );\n\t\t\t\tleft = targetLeft - tooltipWidth;\n\t\t\t\ttop =\n\t\t\t\t\ttargetTop +\n\t\t\t\t\ttargetHeight / 2 -\n\t\t\t\t\ttooltipHeight / 2 -\n\t\t\t\t\ttooltipTop;\n\n\t\t\t\t// Check if too far up.\n\t\t\t} else if ( top - $( window ).scrollTop() < tolerance ) {\n\t\t\t\t$tooltip.addClass( 'bottom' );\n\t\t\t\ttop = targetTop + targetHeight - tooltipTop;\n\n\t\t\t\t// No colision with edges.\n\t\t\t} else {\n\t\t\t\t$tooltip.addClass( 'top' );\n\t\t\t}\n\n\t\t\t// update css\n\t\t\t$tooltip.css( { top: top, left: left } );\n\t\t},\n\t} );\n\n\tvar TooltipConfirm = Tooltip.extend( {\n\t\tdata: {\n\t\t\ttext: '',\n\t\t\ttextConfirm: '',\n\t\t\ttextCancel: '',\n\t\t\ttarget: null,\n\t\t\ttargetConfirm: true,\n\t\t\tconfirm: function () {},\n\t\t\tcancel: function () {},\n\t\t\tcontext: false,\n\t\t},\n\n\t\tevents: {\n\t\t\t'click [data-event=\"cancel\"]': 'onCancel',\n\t\t\t'click [data-event=\"confirm\"]': 'onConfirm',\n\t\t},\n\n\t\taddEvents: function () {\n\t\t\t// add events\n\t\t\tacf.Model.prototype.addEvents.apply( this );\n\n\t\t\t// vars\n\t\t\tvar $document = $( document );\n\t\t\tvar $target = this.get( 'target' );\n\n\t\t\t// add global 'cancel' click event\n\t\t\t// - use timeout to avoid the current 'click' event triggering the onCancel function\n\t\t\tthis.setTimeout( function () {\n\t\t\t\tthis.on( $document, 'click', 'onCancel' );\n\t\t\t} );\n\n\t\t\t// add target 'confirm' click event\n\t\t\t// - allow setting to control this feature\n\t\t\tif ( this.get( 'targetConfirm' ) ) {\n\t\t\t\tthis.on( $target, 'click', 'onConfirm' );\n\t\t\t}\n\t\t},\n\n\t\tremoveEvents: function () {\n\t\t\t// remove events\n\t\t\tacf.Model.prototype.removeEvents.apply( this );\n\n\t\t\t// vars\n\t\t\tvar $document = $( document );\n\t\t\tvar $target = this.get( 'target' );\n\n\t\t\t// remove custom events\n\t\t\tthis.off( $document, 'click' );\n\t\t\tthis.off( $target, 'click' );\n\t\t},\n\n\t\trender: function () {\n\t\t\t// defaults\n\t\t\tvar text = this.get( 'text' ) || acf.__( 'Are you sure?' );\n\t\t\tvar textConfirm = this.get( 'textConfirm' ) || acf.__( 'Yes' );\n\t\t\tvar textCancel = this.get( 'textCancel' ) || acf.__( 'No' );\n\n\t\t\t// html\n\t\t\tvar html = [\n\t\t\t\ttext,\n\t\t\t\t'<a href=\"#\" data-event=\"confirm\">' + textConfirm + '</a>',\n\t\t\t\t'<a href=\"#\" data-event=\"cancel\">' + textCancel + '</a>',\n\t\t\t].join( ' ' );\n\n\t\t\t// html\n\t\t\tthis.html( html );\n\n\t\t\t// class\n\t\t\tthis.$el.addClass( '-confirm' );\n\t\t},\n\n\t\tonCancel: function ( e, $el ) {\n\t\t\t// prevent default\n\t\t\te.preventDefault();\n\t\t\te.stopImmediatePropagation();\n\n\t\t\t// callback\n\t\t\tvar callback = this.get( 'cancel' );\n\t\t\tvar context = this.get( 'context' ) || this;\n\t\t\tcallback.apply( context, arguments );\n\n\t\t\t//remove\n\t\t\tthis.remove();\n\t\t},\n\n\t\tonConfirm: function ( e, $el ) {\n\t\t\t// Prevent event from propagating completely to allow \"targetConfirm\" to be clicked.\n\t\t\te.preventDefault();\n\t\t\te.stopImmediatePropagation();\n\n\t\t\t// callback\n\t\t\tvar callback = this.get( 'confirm' );\n\t\t\tvar context = this.get( 'context' ) || this;\n\t\t\tcallback.apply( context, arguments );\n\n\t\t\t//remove\n\t\t\tthis.remove();\n\t\t},\n\t} );\n\n\t// storage\n\tacf.models.Tooltip = Tooltip;\n\tacf.models.TooltipConfirm = TooltipConfirm;\n\n\t/**\n\t * tooltipManager\n\t *\n\t * description\n\t *\n\t * @date\t17/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 tooltipHoverHelper = new acf.Model( {\n\t\ttooltip: false,\n\n\t\tevents: {\n\t\t\t'mouseenter .acf-js-tooltip': 'showTitle',\n\t\t\t'mouseup .acf-js-tooltip': 'hideTitle',\n\t\t\t'mouseleave .acf-js-tooltip': 'hideTitle',\n\t\t},\n\n\t\tshowTitle: function ( e, $el ) {\n\t\t\t// vars\n\t\t\tvar title = $el.attr( 'title' );\n\n\t\t\t// bail ealry if no title\n\t\t\tif ( ! title ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// clear title to avoid default browser tooltip\n\t\t\t$el.attr( 'title', '' );\n\n\t\t\t// create\n\t\t\tif ( ! this.tooltip ) {\n\t\t\t\tthis.tooltip = acf.newTooltip( {\n\t\t\t\t\ttext: title,\n\t\t\t\t\ttarget: $el,\n\t\t\t\t} );\n\n\t\t\t\t// update\n\t\t\t} else {\n\t\t\t\tthis.tooltip.update( {\n\t\t\t\t\ttext: title,\n\t\t\t\t\ttarget: $el,\n\t\t\t\t} );\n\t\t\t}\n\t\t},\n\n\t\thideTitle: function ( e, $el ) {\n\t\t\t// hide tooltip\n\t\t\tthis.tooltip.hide();\n\n\t\t\t// restore title\n\t\t\t$el.attr( 'title', this.tooltip.get( 'text' ) );\n\t\t},\n\t} );\n} )( jQuery );\n","( function ( $, undefined ) {\n\t/**\n\t * acf\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\t// The global acf object\n\tvar acf = {};\n\n\t// Set as a browser global\n\twindow.acf = acf;\n\n\t/** @var object Data sent from PHP */\n\tacf.data = {};\n\n\t/**\n\t * get\n\t *\n\t * Gets a specific data value\n\t *\n\t * @date\t14/12/17\n\t * @since\t5.6.5\n\t *\n\t * @param\tstring name\n\t * @return\tmixed\n\t */\n\n\tacf.get = function ( name ) {\n\t\treturn this.data[ name ] || null;\n\t};\n\n\t/**\n\t * has\n\t *\n\t * Returns `true` if the data exists and is not null\n\t *\n\t * @date\t14/12/17\n\t * @since\t5.6.5\n\t *\n\t * @param\tstring name\n\t * @return\tboolean\n\t */\n\n\tacf.has = function ( name ) {\n\t\treturn this.get( name ) !== null;\n\t};\n\n\t/**\n\t * set\n\t *\n\t * Sets a specific data value\n\t *\n\t * @date\t14/12/17\n\t * @since\t5.6.5\n\t *\n\t * @param\tstring name\n\t * @param\tmixed value\n\t * @return\tthis\n\t */\n\n\tacf.set = function ( name, value ) {\n\t\tthis.data[ name ] = value;\n\t\treturn this;\n\t};\n\n\t/**\n\t * uniqueId\n\t *\n\t * Returns a unique ID\n\t *\n\t * @date\t9/11/17\n\t * @since\t5.6.3\n\t *\n\t * @param\tstring prefix Optional prefix.\n\t * @return\tstring\n\t */\n\n\tvar idCounter = 0;\n\tacf.uniqueId = function ( prefix ) {\n\t\tvar id = ++idCounter + '';\n\t\treturn prefix ? prefix + id : id;\n\t};\n\n\t/**\n\t * acf.uniqueArray\n\t *\n\t * Returns a new array with only unique values\n\t * Credit: https://stackoverflow.com/questions/1960473/get-all-unique-values-in-an-array-remove-duplicates\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.uniqueArray = function ( array ) {\n\t\tfunction onlyUnique( value, index, self ) {\n\t\t\treturn self.indexOf( value ) === index;\n\t\t}\n\t\treturn array.filter( onlyUnique );\n\t};\n\n\t/**\n\t * uniqid\n\t *\n\t * Returns a unique ID (PHP version)\n\t *\n\t * @date\t9/11/17\n\t * @since\t5.6.3\n\t * @source\thttp://locutus.io/php/misc/uniqid/\n\t *\n\t * @param\tstring prefix Optional prefix.\n\t * @return\tstring\n\t */\n\n\tvar uniqidSeed = '';\n\tacf.uniqid = function ( prefix, moreEntropy ) {\n\t\t// discuss at: http://locutus.io/php/uniqid/\n\t\t// original by: Kevin van Zonneveld (http://kvz.io)\n\t\t// revised by: Kankrelune (http://www.webfaktory.info/)\n\t\t// note 1: Uses an internal counter (in locutus global) to avoid collision\n\t\t// example 1: var $id = uniqid()\n\t\t// example 1: var $result = $id.length === 13\n\t\t// returns 1: true\n\t\t// example 2: var $id = uniqid('foo')\n\t\t// example 2: var $result = $id.length === (13 + 'foo'.length)\n\t\t// returns 2: true\n\t\t// example 3: var $id = uniqid('bar', true)\n\t\t// example 3: var $result = $id.length === (23 + 'bar'.length)\n\t\t// returns 3: true\n\t\tif ( typeof prefix === 'undefined' ) {\n\t\t\tprefix = '';\n\t\t}\n\n\t\tvar retId;\n\t\tvar formatSeed = function ( seed, reqWidth ) {\n\t\t\tseed = parseInt( seed, 10 ).toString( 16 ); // to hex str\n\t\t\tif ( reqWidth < seed.length ) {\n\t\t\t\t// so long we split\n\t\t\t\treturn seed.slice( seed.length - reqWidth );\n\t\t\t}\n\t\t\tif ( reqWidth > seed.length ) {\n\t\t\t\t// so short we pad\n\t\t\t\treturn (\n\t\t\t\t\tArray( 1 + ( reqWidth - seed.length ) ).join( '0' ) + seed\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn seed;\n\t\t};\n\n\t\tif ( ! uniqidSeed ) {\n\t\t\t// init seed with big random int\n\t\t\tuniqidSeed = Math.floor( Math.random() * 0x75bcd15 );\n\t\t}\n\t\tuniqidSeed++;\n\n\t\tretId = prefix; // start with prefix, add current milliseconds hex string\n\t\tretId += formatSeed( parseInt( new Date().getTime() / 1000, 10 ), 8 );\n\t\tretId += formatSeed( uniqidSeed, 5 ); // add seed hex string\n\t\tif ( moreEntropy ) {\n\t\t\t// for more entropy we add a float lower to 10\n\t\t\tretId += ( Math.random() * 10 ).toFixed( 8 ).toString();\n\t\t}\n\n\t\treturn retId;\n\t};\n\n\t/**\n\t * strReplace\n\t *\n\t * Performs a string replace\n\t *\n\t * @date\t14/12/17\n\t * @since\t5.6.5\n\t *\n\t * @param\tstring search\n\t * @param\tstring replace\n\t * @param\tstring subject\n\t * @return\tstring\n\t */\n\n\tacf.strReplace = function ( search, replace, subject ) {\n\t\treturn subject.split( search ).join( replace );\n\t};\n\n\t/**\n\t * strCamelCase\n\t *\n\t * Converts a string into camelCase\n\t * Thanks to https://stackoverflow.com/questions/2970525/converting-any-string-into-camel-case\n\t *\n\t * @date\t14/12/17\n\t * @since\t5.6.5\n\t *\n\t * @param\tstring str\n\t * @return\tstring\n\t */\n\n\tacf.strCamelCase = function ( str ) {\n\t\tvar matches = str.match( /([a-zA-Z0-9]+)/g );\n\t\treturn matches\n\t\t\t? matches\n\t\t\t\t\t.map( function ( s, i ) {\n\t\t\t\t\t\tvar c = s.charAt( 0 );\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t( i === 0 ? c.toLowerCase() : c.toUpperCase() ) +\n\t\t\t\t\t\t\ts.slice( 1 )\n\t\t\t\t\t\t);\n\t\t\t\t\t} )\n\t\t\t\t\t.join( '' )\n\t\t\t: '';\n\t};\n\n\t/**\n\t * strPascalCase\n\t *\n\t * Converts a string into PascalCase\n\t * Thanks to https://stackoverflow.com/questions/1026069/how-do-i-make-the-first-letter-of-a-string-uppercase-in-javascript\n\t *\n\t * @date\t14/12/17\n\t * @since\t5.6.5\n\t *\n\t * @param\tstring str\n\t * @return\tstring\n\t */\n\n\tacf.strPascalCase = function ( str ) {\n\t\tvar camel = acf.strCamelCase( str );\n\t\treturn camel.charAt( 0 ).toUpperCase() + camel.slice( 1 );\n\t};\n\n\t/**\n\t * acf.strSlugify\n\t *\n\t * Converts a string into a HTML class friendly slug\n\t *\n\t * @date\t21/3/18\n\t * @since\t5.6.9\n\t *\n\t * @param\tstring str\n\t * @return\tstring\n\t */\n\n\tacf.strSlugify = function ( str ) {\n\t\treturn acf.strReplace( '_', '-', str.toLowerCase() );\n\t};\n\n\tacf.strSanitize = function ( str ) {\n\t\t// chars (https://jsperf.com/replace-foreign-characters)\n\t\tvar map = {\n\t\t\tÀ: 'A',\n\t\t\tÁ: 'A',\n\t\t\tÂ: 'A',\n\t\t\tÃ: 'A',\n\t\t\tÄ: 'A',\n\t\t\tÅ: 'A',\n\t\t\tÆ: 'AE',\n\t\t\tÇ: 'C',\n\t\t\tÈ: 'E',\n\t\t\tÉ: 'E',\n\t\t\tÊ: 'E',\n\t\t\tË: 'E',\n\t\t\tÌ: 'I',\n\t\t\tÍ: 'I',\n\t\t\tÎ: 'I',\n\t\t\tÏ: 'I',\n\t\t\tÐ: 'D',\n\t\t\tÑ: 'N',\n\t\t\tÒ: 'O',\n\t\t\tÓ: 'O',\n\t\t\tÔ: 'O',\n\t\t\tÕ: 'O',\n\t\t\tÖ: 'O',\n\t\t\tØ: 'O',\n\t\t\tÙ: 'U',\n\t\t\tÚ: 'U',\n\t\t\tÛ: 'U',\n\t\t\tÜ: 'U',\n\t\t\tÝ: 'Y',\n\t\t\tß: 's',\n\t\t\tà: 'a',\n\t\t\tá: 'a',\n\t\t\tâ: 'a',\n\t\t\tã: 'a',\n\t\t\tä: 'a',\n\t\t\tå: 'a',\n\t\t\tæ: 'ae',\n\t\t\tç: 'c',\n\t\t\tè: 'e',\n\t\t\té: 'e',\n\t\t\tê: 'e',\n\t\t\të: 'e',\n\t\t\tì: 'i',\n\t\t\tí: 'i',\n\t\t\tî: 'i',\n\t\t\tï: 'i',\n\t\t\tñ: 'n',\n\t\t\tò: 'o',\n\t\t\tó: 'o',\n\t\t\tô: 'o',\n\t\t\tõ: 'o',\n\t\t\tö: 'o',\n\t\t\tø: 'o',\n\t\t\tù: 'u',\n\t\t\tú: 'u',\n\t\t\tû: 'u',\n\t\t\tü: 'u',\n\t\t\tý: 'y',\n\t\t\tÿ: 'y',\n\t\t\tĀ: 'A',\n\t\t\tā: 'a',\n\t\t\tĂ: 'A',\n\t\t\tă: 'a',\n\t\t\tĄ: 'A',\n\t\t\tą: 'a',\n\t\t\tĆ: 'C',\n\t\t\tć: 'c',\n\t\t\tĈ: 'C',\n\t\t\tĉ: 'c',\n\t\t\tĊ: 'C',\n\t\t\tċ: 'c',\n\t\t\tČ: 'C',\n\t\t\tč: 'c',\n\t\t\tĎ: 'D',\n\t\t\tď: 'd',\n\t\t\tĐ: 'D',\n\t\t\tđ: 'd',\n\t\t\tĒ: 'E',\n\t\t\tē: 'e',\n\t\t\tĔ: 'E',\n\t\t\tĕ: 'e',\n\t\t\tĖ: 'E',\n\t\t\tė: 'e',\n\t\t\tĘ: 'E',\n\t\t\tę: 'e',\n\t\t\tĚ: 'E',\n\t\t\tě: 'e',\n\t\t\tĜ: 'G',\n\t\t\tĝ: 'g',\n\t\t\tĞ: 'G',\n\t\t\tğ: 'g',\n\t\t\tĠ: 'G',\n\t\t\tġ: 'g',\n\t\t\tĢ: 'G',\n\t\t\tģ: 'g',\n\t\t\tĤ: 'H',\n\t\t\tĥ: 'h',\n\t\t\tĦ: 'H',\n\t\t\tħ: 'h',\n\t\t\tĨ: 'I',\n\t\t\tĩ: 'i',\n\t\t\tĪ: 'I',\n\t\t\tī: 'i',\n\t\t\tĬ: 'I',\n\t\t\tĭ: 'i',\n\t\t\tĮ: 'I',\n\t\t\tį: 'i',\n\t\t\tİ: 'I',\n\t\t\tı: 'i',\n\t\t\tIJ: 'IJ',\n\t\t\tij: 'ij',\n\t\t\tĴ: 'J',\n\t\t\tĵ: 'j',\n\t\t\tĶ: 'K',\n\t\t\tķ: 'k',\n\t\t\tĹ: 'L',\n\t\t\tĺ: 'l',\n\t\t\tĻ: 'L',\n\t\t\tļ: 'l',\n\t\t\tĽ: 'L',\n\t\t\tľ: 'l',\n\t\t\tĿ: 'L',\n\t\t\tŀ: 'l',\n\t\t\tŁ: 'l',\n\t\t\tł: 'l',\n\t\t\tŃ: 'N',\n\t\t\tń: 'n',\n\t\t\tŅ: 'N',\n\t\t\tņ: 'n',\n\t\t\tŇ: 'N',\n\t\t\tň: 'n',\n\t\t\tʼn: 'n',\n\t\t\tŌ: 'O',\n\t\t\tō: 'o',\n\t\t\tŎ: 'O',\n\t\t\tŏ: 'o',\n\t\t\tŐ: 'O',\n\t\t\tő: 'o',\n\t\t\tŒ: 'OE',\n\t\t\tœ: 'oe',\n\t\t\tŔ: 'R',\n\t\t\tŕ: 'r',\n\t\t\tŖ: 'R',\n\t\t\tŗ: 'r',\n\t\t\tŘ: 'R',\n\t\t\tř: 'r',\n\t\t\tŚ: 'S',\n\t\t\tś: 's',\n\t\t\tŜ: 'S',\n\t\t\tŝ: 's',\n\t\t\tŞ: 'S',\n\t\t\tş: 's',\n\t\t\tŠ: 'S',\n\t\t\tš: 's',\n\t\t\tŢ: 'T',\n\t\t\tţ: 't',\n\t\t\tŤ: 'T',\n\t\t\tť: 't',\n\t\t\tŦ: 'T',\n\t\t\tŧ: 't',\n\t\t\tŨ: 'U',\n\t\t\tũ: 'u',\n\t\t\tŪ: 'U',\n\t\t\tū: 'u',\n\t\t\tŬ: 'U',\n\t\t\tŭ: 'u',\n\t\t\tŮ: 'U',\n\t\t\tů: 'u',\n\t\t\tŰ: 'U',\n\t\t\tű: 'u',\n\t\t\tŲ: 'U',\n\t\t\tų: 'u',\n\t\t\tŴ: 'W',\n\t\t\tŵ: 'w',\n\t\t\tŶ: 'Y',\n\t\t\tŷ: 'y',\n\t\t\tŸ: 'Y',\n\t\t\tŹ: 'Z',\n\t\t\tź: 'z',\n\t\t\tŻ: 'Z',\n\t\t\tż: 'z',\n\t\t\tŽ: 'Z',\n\t\t\tž: 'z',\n\t\t\tſ: 's',\n\t\t\tƒ: 'f',\n\t\t\tƠ: 'O',\n\t\t\tơ: 'o',\n\t\t\tƯ: 'U',\n\t\t\tư: 'u',\n\t\t\tǍ: 'A',\n\t\t\tǎ: 'a',\n\t\t\tǏ: 'I',\n\t\t\tǐ: 'i',\n\t\t\tǑ: 'O',\n\t\t\tǒ: 'o',\n\t\t\tǓ: 'U',\n\t\t\tǔ: 'u',\n\t\t\tǕ: 'U',\n\t\t\tǖ: 'u',\n\t\t\tǗ: 'U',\n\t\t\tǘ: 'u',\n\t\t\tǙ: 'U',\n\t\t\tǚ: 'u',\n\t\t\tǛ: 'U',\n\t\t\tǜ: 'u',\n\t\t\tǺ: 'A',\n\t\t\tǻ: 'a',\n\t\t\tǼ: 'AE',\n\t\t\tǽ: 'ae',\n\t\t\tǾ: 'O',\n\t\t\tǿ: 'o',\n\n\t\t\t// extra\n\t\t\t' ': '_',\n\t\t\t\"'\": '',\n\t\t\t'?': '',\n\t\t\t'/': '',\n\t\t\t'\\\\': '',\n\t\t\t'.': '',\n\t\t\t',': '',\n\t\t\t'`': '',\n\t\t\t'>': '',\n\t\t\t'<': '',\n\t\t\t'\"': '',\n\t\t\t'[': '',\n\t\t\t']': '',\n\t\t\t'|': '',\n\t\t\t'{': '',\n\t\t\t'}': '',\n\t\t\t'(': '',\n\t\t\t')': '',\n\t\t};\n\n\t\t// vars\n\t\tvar nonWord = /\\W/g;\n\t\tvar mapping = function ( c ) {\n\t\t\treturn map[ c ] !== undefined ? map[ c ] : c;\n\t\t};\n\n\t\t// replace\n\t\tstr = str.replace( nonWord, mapping );\n\n\t\t// lowercase\n\t\tstr = str.toLowerCase();\n\n\t\t// return\n\t\treturn str;\n\t};\n\n\t/**\n\t * acf.strMatch\n\t *\n\t * Returns the number of characters that match between two strings\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.strMatch = function ( s1, s2 ) {\n\t\t// vars\n\t\tvar val = 0;\n\t\tvar min = Math.min( s1.length, s2.length );\n\n\t\t// loop\n\t\tfor ( var i = 0; i < min; i++ ) {\n\t\t\tif ( s1[ i ] !== s2[ i ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tval++;\n\t\t}\n\n\t\t// return\n\t\treturn val;\n\t};\n\n\t/**\n\t * Escapes HTML entities from a string.\n\t *\n\t * @date\t08/06/2020\n\t * @since\t5.9.0\n\t *\n\t * @param\tstring string The input string.\n\t * @return\tstring\n\t */\n\tacf.strEscape = function ( string ) {\n\t\tvar htmlEscapes = {\n\t\t\t'&': '&',\n\t\t\t'<': '<',\n\t\t\t'>': '>',\n\t\t\t'\"': '"',\n\t\t\t\"'\": ''',\n\t\t};\n\t\treturn ( '' + string ).replace( /[&<>\"']/g, function ( chr ) {\n\t\t\treturn htmlEscapes[ chr ];\n\t\t} );\n\t};\n\n\t// Tests.\n\t//console.log( acf.strEscape('Test 1') );\n\t//console.log( acf.strEscape('Test & 1') );\n\t//console.log( acf.strEscape('Test\\'s & 1') );\n\t//console.log( acf.strEscape('<script>js</script>') );\n\n\t/**\n\t * Unescapes HTML entities from a string.\n\t *\n\t * @date\t08/06/2020\n\t * @since\t5.9.0\n\t *\n\t * @param\tstring string The input string.\n\t * @return\tstring\n\t */\n\tacf.strUnescape = function ( string ) {\n\t\tvar htmlUnescapes = {\n\t\t\t'&': '&',\n\t\t\t'<': '<',\n\t\t\t'>': '>',\n\t\t\t'"': '\"',\n\t\t\t''': \"'\",\n\t\t};\n\t\treturn ( '' + string ).replace(\n\t\t\t/&|<|>|"|'/g,\n\t\t\tfunction ( entity ) {\n\t\t\t\treturn htmlUnescapes[ entity ];\n\t\t\t}\n\t\t);\n\t};\n\n\t// Tests.\n\t//console.log( acf.strUnescape( acf.strEscape('Test 1') ) );\n\t//console.log( acf.strUnescape( acf.strEscape('Test & 1') ) );\n\t//console.log( acf.strUnescape( acf.strEscape('Test\\'s & 1') ) );\n\t//console.log( acf.strUnescape( acf.strEscape('<script>js</script>') ) );\n\n\t/**\n\t * Escapes HTML entities from a string.\n\t *\n\t * @date\t08/06/2020\n\t * @since\t5.9.0\n\t *\n\t * @param\tstring string The input string.\n\t * @return\tstring\n\t */\n\tacf.escAttr = acf.strEscape;\n\n\t/**\n\t * Encodes <script> tags for safe HTML output.\n\t *\n\t * @date\t08/06/2020\n\t * @since\t5.9.0\n\t *\n\t * @param\tstring string The input string.\n\t * @return\tstring\n\t */\n\tacf.escHtml = function ( string ) {\n\t\treturn ( '' + string ).replace(\n\t\t\t/<script|<\\/script/g,\n\t\t\tfunction ( html ) {\n\t\t\t\treturn acf.strEscape( html );\n\t\t\t}\n\t\t);\n\t};\n\n\t// Tests.\n\t//console.log( acf.escHtml('<script>js</script>') );\n\t//console.log( acf.escHtml( acf.strEscape('<script>js</script>') ) );\n\t//console.log( acf.escHtml( '<script>js1</script><script>js2</script>' ) );\n\n\t/**\n\t * acf.decode\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.decode = function ( string ) {\n\t\treturn $( '<textarea/>' ).html( string ).text();\n\t};\n\n\t/**\n\t * parseArgs\n\t *\n\t * Merges together defaults and args much like the WP wp_parse_args function\n\t *\n\t * @date\t14/12/17\n\t * @since\t5.6.5\n\t *\n\t * @param\tobject args\n\t * @param\tobject defaults\n\t * @return\tobject\n\t */\n\n\tacf.parseArgs = function ( args, defaults ) {\n\t\tif ( typeof args !== 'object' ) args = {};\n\t\tif ( typeof defaults !== 'object' ) defaults = {};\n\t\treturn $.extend( {}, defaults, args );\n\t};\n\n\t/**\n\t * __\n\t *\n\t * Retrieve the translation of $text.\n\t *\n\t * @date\t16/4/18\n\t * @since\t5.6.9\n\t *\n\t * @param\tstring text Text to translate.\n\t * @return\tstring Translated text.\n\t */\n\n\tif ( window.acfL10n == undefined ) {\n\t\tacfL10n = {};\n\t}\n\n\tacf.__ = function ( text ) {\n\t\treturn acfL10n[ text ] || text;\n\t};\n\n\t/**\n\t * _x\n\t *\n\t * Retrieve translated string with gettext context.\n\t *\n\t * @date\t16/4/18\n\t * @since\t5.6.9\n\t *\n\t * @param\tstring text Text to translate.\n\t * @param\tstring context Context information for the translators.\n\t * @return\tstring Translated text.\n\t */\n\n\tacf._x = function ( text, context ) {\n\t\treturn acfL10n[ text + '.' + context ] || acfL10n[ text ] || text;\n\t};\n\n\t/**\n\t * _n\n\t *\n\t * Retrieve the plural or single form based on the amount.\n\t *\n\t * @date\t16/4/18\n\t * @since\t5.6.9\n\t *\n\t * @param\tstring single Single text to translate.\n\t * @param\tstring plural Plural text to translate.\n\t * @param\tint number The number to compare against.\n\t * @return\tstring Translated text.\n\t */\n\n\tacf._n = function ( single, plural, number ) {\n\t\tif ( number == 1 ) {\n\t\t\treturn acf.__( single );\n\t\t} else {\n\t\t\treturn acf.__( plural );\n\t\t}\n\t};\n\n\tacf.isArray = function ( a ) {\n\t\treturn Array.isArray( a );\n\t};\n\n\tacf.isObject = function ( a ) {\n\t\treturn typeof a === 'object';\n\t};\n\n\t/**\n\t * serialize\n\t *\n\t * description\n\t *\n\t * @date\t24/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 buildObject = function ( obj, name, value ) {\n\t\t// replace [] with placeholder\n\t\tname = name.replace( '[]', '[%%index%%]' );\n\n\t\t// vars\n\t\tvar keys = name.match( /([^\\[\\]])+/g );\n\t\tif ( ! keys ) return;\n\t\tvar length = keys.length;\n\t\tvar ref = obj;\n\n\t\t// loop\n\t\tfor ( var i = 0; i < length; i++ ) {\n\t\t\t// vars\n\t\t\tvar key = String( keys[ i ] );\n\n\t\t\t// value\n\t\t\tif ( i == length - 1 ) {\n\t\t\t\t// %%index%%\n\t\t\t\tif ( key === '%%index%%' ) {\n\t\t\t\t\tref.push( value );\n\n\t\t\t\t\t// default\n\t\t\t\t} else {\n\t\t\t\t\tref[ key ] = value;\n\t\t\t\t}\n\n\t\t\t\t// path\n\t\t\t} else {\n\t\t\t\t// array\n\t\t\t\tif ( keys[ i + 1 ] === '%%index%%' ) {\n\t\t\t\t\tif ( ! acf.isArray( ref[ key ] ) ) {\n\t\t\t\t\t\tref[ key ] = [];\n\t\t\t\t\t}\n\n\t\t\t\t\t// object\n\t\t\t\t} else {\n\t\t\t\t\tif ( ! acf.isObject( ref[ key ] ) ) {\n\t\t\t\t\t\tref[ key ] = {};\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// crawl\n\t\t\t\tref = ref[ key ];\n\t\t\t}\n\t\t}\n\t};\n\n\tacf.serialize = function ( $el, prefix ) {\n\t\t// vars\n\t\tvar obj = {};\n\t\tvar inputs = acf.serializeArray( $el );\n\n\t\t// prefix\n\t\tif ( prefix !== undefined ) {\n\t\t\t// filter and modify\n\t\t\tinputs = inputs\n\t\t\t\t.filter( function ( item ) {\n\t\t\t\t\treturn item.name.indexOf( prefix ) === 0;\n\t\t\t\t} )\n\t\t\t\t.map( function ( item ) {\n\t\t\t\t\titem.name = item.name.slice( prefix.length );\n\t\t\t\t\treturn item;\n\t\t\t\t} );\n\t\t}\n\n\t\t// loop\n\t\tfor ( var i = 0; i < inputs.length; i++ ) {\n\t\t\tbuildObject( obj, inputs[ i ].name, inputs[ i ].value );\n\t\t}\n\n\t\t// return\n\t\treturn obj;\n\t};\n\n\t/**\n\t * acf.serializeArray\n\t *\n\t * Similar to $.serializeArray() but works with a parent wrapping element.\n\t *\n\t * @date\t19/8/18\n\t * @since\t5.7.3\n\t *\n\t * @param\tjQuery $el The element or form to serialize.\n\t * @return\tarray\n\t */\n\n\tacf.serializeArray = function ( $el ) {\n\t\treturn $el.find( 'select, textarea, input' ).serializeArray();\n\t};\n\n\t/**\n\t * acf.serializeForAjax\n\t *\n\t * Returns an object containing name => value data ready to be encoded for Ajax.\n\t *\n\t * @date\t17/12/18\n\t * @since\t5.8.0\n\t *\n\t * @param\tjQUery $el The element or form to serialize.\n\t * @return\tobject\n\t */\n\tacf.serializeForAjax = function ( $el ) {\n\t\t// vars\n\t\tvar data = {};\n\t\tvar index = {};\n\n\t\t// Serialize inputs.\n\t\tvar inputs = acf.serializeArray( $el );\n\n\t\t// Loop over inputs and build data.\n\t\tinputs.map( function ( item ) {\n\t\t\t// Append to array.\n\t\t\tif ( item.name.slice( -2 ) === '[]' ) {\n\t\t\t\tdata[ item.name ] = data[ item.name ] || [];\n\t\t\t\tdata[ item.name ].push( item.value );\n\t\t\t\t// Append\n\t\t\t} else {\n\t\t\t\tdata[ item.name ] = item.value;\n\t\t\t}\n\t\t} );\n\n\t\t// return\n\t\treturn data;\n\t};\n\n\t/**\n\t * addAction\n\t *\n\t * Wrapper for acf.hooks.addAction\n\t *\n\t * @date\t14/12/17\n\t * @since\t5.6.5\n\t *\n\t * @param\tn/a\n\t * @return\tthis\n\t */\n\n\t/*\n\tvar prefixAction = function( action ){\n\t\treturn 'acf_' + action;\n\t}\n*/\n\n\tacf.addAction = function ( action, callback, priority, context ) {\n\t\t//action = prefixAction(action);\n\t\tacf.hooks.addAction.apply( this, arguments );\n\t\treturn this;\n\t};\n\n\t/**\n\t * removeAction\n\t *\n\t * Wrapper for acf.hooks.removeAction\n\t *\n\t * @date\t14/12/17\n\t * @since\t5.6.5\n\t *\n\t * @param\tn/a\n\t * @return\tthis\n\t */\n\n\tacf.removeAction = function ( action, callback ) {\n\t\t//action = prefixAction(action);\n\t\tacf.hooks.removeAction.apply( this, arguments );\n\t\treturn this;\n\t};\n\n\t/**\n\t * doAction\n\t *\n\t * Wrapper for acf.hooks.doAction\n\t *\n\t * @date\t14/12/17\n\t * @since\t5.6.5\n\t *\n\t * @param\tn/a\n\t * @return\tthis\n\t */\n\n\tvar actionHistory = {};\n\t//var currentAction = false;\n\tacf.doAction = function ( action ) {\n\t\t//action = prefixAction(action);\n\t\t//currentAction = action;\n\t\tactionHistory[ action ] = 1;\n\t\tacf.hooks.doAction.apply( this, arguments );\n\t\tactionHistory[ action ] = 0;\n\t\treturn this;\n\t};\n\n\t/**\n\t * doingAction\n\t *\n\t * Return true if doing action\n\t *\n\t * @date\t14/12/17\n\t * @since\t5.6.5\n\t *\n\t * @param\tn/a\n\t * @return\tthis\n\t */\n\n\tacf.doingAction = function ( action ) {\n\t\t//action = prefixAction(action);\n\t\treturn actionHistory[ action ] === 1;\n\t};\n\n\t/**\n\t * didAction\n\t *\n\t * Wrapper for acf.hooks.doAction\n\t *\n\t * @date\t14/12/17\n\t * @since\t5.6.5\n\t *\n\t * @param\tn/a\n\t * @return\tthis\n\t */\n\n\tacf.didAction = function ( action ) {\n\t\t//action = prefixAction(action);\n\t\treturn actionHistory[ action ] !== undefined;\n\t};\n\n\t/**\n\t * currentAction\n\t *\n\t * Wrapper for acf.hooks.doAction\n\t *\n\t * @date\t14/12/17\n\t * @since\t5.6.5\n\t *\n\t * @param\tn/a\n\t * @return\tthis\n\t */\n\n\tacf.currentAction = function () {\n\t\tfor ( var k in actionHistory ) {\n\t\t\tif ( actionHistory[ k ] ) {\n\t\t\t\treturn k;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t};\n\n\t/**\n\t * addFilter\n\t *\n\t * Wrapper for acf.hooks.addFilter\n\t *\n\t * @date\t14/12/17\n\t * @since\t5.6.5\n\t *\n\t * @param\tn/a\n\t * @return\tthis\n\t */\n\n\tacf.addFilter = function ( action ) {\n\t\t//action = prefixAction(action);\n\t\tacf.hooks.addFilter.apply( this, arguments );\n\t\treturn this;\n\t};\n\n\t/**\n\t * removeFilter\n\t *\n\t * Wrapper for acf.hooks.removeFilter\n\t *\n\t * @date\t14/12/17\n\t * @since\t5.6.5\n\t *\n\t * @param\tn/a\n\t * @return\tthis\n\t */\n\n\tacf.removeFilter = function ( action ) {\n\t\t//action = prefixAction(action);\n\t\tacf.hooks.removeFilter.apply( this, arguments );\n\t\treturn this;\n\t};\n\n\t/**\n\t * applyFilters\n\t *\n\t * Wrapper for acf.hooks.applyFilters\n\t *\n\t * @date\t14/12/17\n\t * @since\t5.6.5\n\t *\n\t * @param\tn/a\n\t * @return\tthis\n\t */\n\n\tacf.applyFilters = function ( action ) {\n\t\t//action = prefixAction(action);\n\t\treturn acf.hooks.applyFilters.apply( this, arguments );\n\t};\n\n\t/**\n\t * getArgs\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\tacf.arrayArgs = function ( args ) {\n\t\treturn Array.prototype.slice.call( args );\n\t};\n\n\t/**\n\t * extendArgs\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\t/*\n\tacf.extendArgs = function( ){\n\t\tvar args = Array.prototype.slice.call( arguments );\n\t\tvar realArgs = args.shift();\n\t\t\t\n\t\tArray.prototype.push.call(arguments, 'bar')\n\t\treturn Array.prototype.push.apply( args, arguments );\n\t};\n*/\n\n\t// Preferences\n\t// - use try/catch to avoid JS error if cookies are disabled on front-end form\n\ttry {\n\t\tvar preferences = JSON.parse( localStorage.getItem( 'acf' ) ) || {};\n\t} catch ( e ) {\n\t\tvar preferences = {};\n\t}\n\n\t/**\n\t * getPreferenceName\n\t *\n\t * Gets the true preference name.\n\t * Converts \"this.thing\" to \"thing-123\" if editing post 123.\n\t *\n\t * @date\t11/11/17\n\t * @since\t5.6.5\n\t *\n\t * @param\tstring name\n\t * @return\tstring\n\t */\n\n\tvar getPreferenceName = function ( name ) {\n\t\tif ( name.substr( 0, 5 ) === 'this.' ) {\n\t\t\tname = name.substr( 5 ) + '-' + acf.get( 'post_id' );\n\t\t}\n\t\treturn name;\n\t};\n\n\t/**\n\t * acf.getPreference\n\t *\n\t * Gets a preference setting or null if not set.\n\t *\n\t * @date\t11/11/17\n\t * @since\t5.6.5\n\t *\n\t * @param\tstring name\n\t * @return\tmixed\n\t */\n\n\tacf.getPreference = function ( name ) {\n\t\tname = getPreferenceName( name );\n\t\treturn preferences[ name ] || null;\n\t};\n\n\t/**\n\t * acf.setPreference\n\t *\n\t * Sets a preference setting.\n\t *\n\t * @date\t11/11/17\n\t * @since\t5.6.5\n\t *\n\t * @param\tstring name\n\t * @param\tmixed value\n\t * @return\tn/a\n\t */\n\n\tacf.setPreference = function ( name, value ) {\n\t\tname = getPreferenceName( name );\n\t\tif ( value === null ) {\n\t\t\tdelete preferences[ name ];\n\t\t} else {\n\t\t\tpreferences[ name ] = value;\n\t\t}\n\t\tlocalStorage.setItem( 'acf', JSON.stringify( preferences ) );\n\t};\n\n\t/**\n\t * acf.removePreference\n\t *\n\t * Removes a preference setting.\n\t *\n\t * @date\t11/11/17\n\t * @since\t5.6.5\n\t *\n\t * @param\tstring name\n\t * @return\tn/a\n\t */\n\n\tacf.removePreference = function ( name ) {\n\t\tacf.setPreference( name, null );\n\t};\n\n\t/**\n\t * remove\n\t *\n\t * Removes an element with fade effect\n\t *\n\t * @date\t1/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.remove = function ( props ) {\n\t\t// allow jQuery\n\t\tif ( props instanceof jQuery ) {\n\t\t\tprops = {\n\t\t\t\ttarget: props,\n\t\t\t};\n\t\t}\n\n\t\t// defaults\n\t\tprops = acf.parseArgs( props, {\n\t\t\ttarget: false,\n\t\t\tendHeight: 0,\n\t\t\tcomplete: function () {},\n\t\t} );\n\n\t\t// action\n\t\tacf.doAction( 'remove', props.target );\n\n\t\t// tr\n\t\tif ( props.target.is( 'tr' ) ) {\n\t\t\tremoveTr( props );\n\n\t\t\t// div\n\t\t} else {\n\t\t\tremoveDiv( props );\n\t\t}\n\t};\n\n\t/**\n\t * removeDiv\n\t *\n\t * description\n\t *\n\t * @date\t16/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 removeDiv = function ( props ) {\n\t\t// vars\n\t\tvar $el = props.target;\n\t\tvar height = $el.height();\n\t\tvar width = $el.width();\n\t\tvar margin = $el.css( 'margin' );\n\t\tvar outerHeight = $el.outerHeight( true );\n\t\tvar style = $el.attr( 'style' ) + ''; // needed to copy\n\n\t\t// wrap\n\t\t$el.wrap(\n\t\t\t'<div class=\"acf-temp-remove\" style=\"height:' +\n\t\t\t\touterHeight +\n\t\t\t\t'px\"></div>'\n\t\t);\n\t\tvar $wrap = $el.parent();\n\n\t\t// set pos\n\t\t$el.css( {\n\t\t\theight: height,\n\t\t\twidth: width,\n\t\t\tmargin: margin,\n\t\t\tposition: 'absolute',\n\t\t} );\n\n\t\t// fade wrap\n\t\tsetTimeout( function () {\n\t\t\t$wrap.css( {\n\t\t\t\topacity: 0,\n\t\t\t\theight: props.endHeight,\n\t\t\t} );\n\t\t}, 50 );\n\n\t\t// remove\n\t\tsetTimeout( function () {\n\t\t\t$el.attr( 'style', style );\n\t\t\t$wrap.remove();\n\t\t\tprops.complete();\n\t\t}, 301 );\n\t};\n\n\t/**\n\t * removeTr\n\t *\n\t * description\n\t *\n\t * @date\t16/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 removeTr = function ( props ) {\n\t\t// vars\n\t\tvar $tr = props.target;\n\t\tvar height = $tr.height();\n\t\tvar children = $tr.children().length;\n\n\t\t// create dummy td\n\t\tvar $td = $(\n\t\t\t'<td class=\"acf-temp-remove\" style=\"padding:0; height:' +\n\t\t\t\theight +\n\t\t\t\t'px\" colspan=\"' +\n\t\t\t\tchildren +\n\t\t\t\t'\"></td>'\n\t\t);\n\n\t\t// fade away tr\n\t\t$tr.addClass( 'acf-remove-element' );\n\n\t\t// update HTML after fade animation\n\t\tsetTimeout( function () {\n\t\t\t$tr.html( $td );\n\t\t}, 251 );\n\n\t\t// allow .acf-temp-remove to exist before changing CSS\n\t\tsetTimeout( function () {\n\t\t\t// remove class\n\t\t\t$tr.removeClass( 'acf-remove-element' );\n\n\t\t\t// collapse\n\t\t\t$td.css( {\n\t\t\t\theight: props.endHeight,\n\t\t\t} );\n\t\t}, 300 );\n\n\t\t// remove\n\t\tsetTimeout( function () {\n\t\t\t$tr.remove();\n\t\t\tprops.complete();\n\t\t}, 451 );\n\t};\n\n\t/**\n\t * duplicate\n\t *\n\t * description\n\t *\n\t * @date\t3/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.duplicate = function ( args ) {\n\t\t// allow jQuery\n\t\tif ( args instanceof jQuery ) {\n\t\t\targs = {\n\t\t\t\ttarget: args,\n\t\t\t};\n\t\t}\n\n\t\t// defaults\n\t\targs = acf.parseArgs( args, {\n\t\t\ttarget: false,\n\t\t\tsearch: '',\n\t\t\treplace: '',\n\t\t\trename: true,\n\t\t\tbefore: function ( $el ) {},\n\t\t\tafter: function ( $el, $el2 ) {},\n\t\t\tappend: function ( $el, $el2 ) {\n\t\t\t\t$el.after( $el2 );\n\t\t\t},\n\t\t} );\n\n\t\t// compatibility\n\t\targs.target = args.target || args.$el;\n\n\t\t// vars\n\t\tvar $el = args.target;\n\n\t\t// search\n\t\targs.search = args.search || $el.attr( 'data-id' );\n\t\targs.replace = args.replace || acf.uniqid();\n\n\t\t// before\n\t\t// - allow acf to modify DOM\n\t\t// - fixes bug where select field option is not selected\n\t\targs.before( $el );\n\t\tacf.doAction( 'before_duplicate', $el );\n\n\t\t// clone\n\t\tvar $el2 = $el.clone();\n\n\t\t// rename\n\t\tif ( args.rename ) {\n\t\t\tacf.rename( {\n\t\t\t\ttarget: $el2,\n\t\t\t\tsearch: args.search,\n\t\t\t\treplace: args.replace,\n\t\t\t\treplacer:\n\t\t\t\t\ttypeof args.rename === 'function' ? args.rename : null,\n\t\t\t} );\n\t\t}\n\n\t\t// remove classes\n\t\t$el2.removeClass( 'acf-clone' );\n\t\t$el2.find( '.ui-sortable' ).removeClass( 'ui-sortable' );\n\n\t\t// after\n\t\t// - allow acf to modify DOM\n\t\targs.after( $el, $el2 );\n\t\tacf.doAction( 'after_duplicate', $el, $el2 );\n\n\t\t// append\n\t\targs.append( $el, $el2 );\n\n\t\t/**\n\t\t * Fires after an element has been duplicated and appended to the DOM.\n\t\t *\n\t\t * @date\t30/10/19\n\t\t * @since\t5.8.7\n\t\t *\n\t\t * @param\tjQuery $el The original element.\n\t\t * @param\tjQuery $el2 The duplicated element.\n\t\t */\n\t\tacf.doAction( 'duplicate', $el, $el2 );\n\n\t\t// append\n\t\tacf.doAction( 'append', $el2 );\n\n\t\t// return\n\t\treturn $el2;\n\t};\n\n\t/**\n\t * rename\n\t *\n\t * description\n\t *\n\t * @date\t7/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.rename = function ( args ) {\n\t\t// Allow jQuery param.\n\t\tif ( args instanceof jQuery ) {\n\t\t\targs = {\n\t\t\t\ttarget: args,\n\t\t\t};\n\t\t}\n\n\t\t// Apply default args.\n\t\targs = acf.parseArgs( args, {\n\t\t\ttarget: false,\n\t\t\tdestructive: false,\n\t\t\tsearch: '',\n\t\t\treplace: '',\n\t\t\treplacer: null,\n\t\t} );\n\n\t\t// Extract args.\n\t\tvar $el = args.target;\n\n\t\t// Provide backup for empty args.\n\t\tif ( ! args.search ) {\n\t\t\targs.search = $el.attr( 'data-id' );\n\t\t}\n\t\tif ( ! args.replace ) {\n\t\t\targs.replace = acf.uniqid( 'acf' );\n\t\t}\n\t\tif ( ! args.replacer ) {\n\t\t\targs.replacer = function ( name, value, search, replace ) {\n\t\t\t\treturn value.replace( search, replace );\n\t\t\t};\n\t\t}\n\n\t\t// Callback function for jQuery replacing.\n\t\tvar withReplacer = function ( name ) {\n\t\t\treturn function ( i, value ) {\n\t\t\t\treturn args.replacer( name, value, args.search, args.replace );\n\t\t\t};\n\t\t};\n\n\t\t// Destructive Replace.\n\t\tif ( args.destructive ) {\n\t\t\tvar html = acf.strReplace(\n\t\t\t\targs.search,\n\t\t\t\targs.replace,\n\t\t\t\t$el.outerHTML()\n\t\t\t);\n\t\t\t$el.replaceWith( html );\n\n\t\t\t// Standard Replace.\n\t\t} else {\n\t\t\t$el.attr( 'data-id', args.replace );\n\t\t\t$el.find( '[id*=\"' + args.search + '\"]' ).attr(\n\t\t\t\t'id',\n\t\t\t\twithReplacer( 'id' )\n\t\t\t);\n\t\t\t$el.find( '[for*=\"' + args.search + '\"]' ).attr(\n\t\t\t\t'for',\n\t\t\t\twithReplacer( 'for' )\n\t\t\t);\n\t\t\t$el.find( '[name*=\"' + args.search + '\"]' ).attr(\n\t\t\t\t'name',\n\t\t\t\twithReplacer( 'name' )\n\t\t\t);\n\t\t}\n\n\t\t// return\n\t\treturn $el;\n\t};\n\n\t/**\n\t * acf.prepareForAjax\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\tacf.prepareForAjax = function ( data ) {\n\t\t// required\n\t\tdata.nonce = acf.get( 'nonce' );\n\t\tdata.post_id = acf.get( 'post_id' );\n\n\t\t// language\n\t\tif ( acf.has( 'language' ) ) {\n\t\t\tdata.lang = acf.get( 'language' );\n\t\t}\n\n\t\t// filter for 3rd party customization\n\t\tdata = acf.applyFilters( 'prepare_for_ajax', data );\n\n\t\t// return\n\t\treturn data;\n\t};\n\n\t/**\n\t * acf.startButtonLoading\n\t *\n\t * description\n\t *\n\t * @date\t5/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.startButtonLoading = function ( $el ) {\n\t\t$el.prop( 'disabled', true );\n\t\t$el.after( ' <i class=\"acf-loading\"></i>' );\n\t};\n\n\tacf.stopButtonLoading = function ( $el ) {\n\t\t$el.prop( 'disabled', false );\n\t\t$el.next( '.acf-loading' ).remove();\n\t};\n\n\t/**\n\t * acf.showLoading\n\t *\n\t * description\n\t *\n\t * @date\t12/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.showLoading = function ( $el ) {\n\t\t$el.append(\n\t\t\t'<div class=\"acf-loading-overlay\"><i class=\"acf-loading\"></i></div>'\n\t\t);\n\t};\n\n\tacf.hideLoading = function ( $el ) {\n\t\t$el.children( '.acf-loading-overlay' ).remove();\n\t};\n\n\t/**\n\t * acf.updateUserSetting\n\t *\n\t * description\n\t *\n\t * @date\t5/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.updateUserSetting = function ( name, value ) {\n\t\tvar ajaxData = {\n\t\t\taction: 'acf/ajax/user_setting',\n\t\t\tname: name,\n\t\t\tvalue: value,\n\t\t};\n\n\t\t$.ajax( {\n\t\t\turl: acf.get( 'ajaxurl' ),\n\t\t\tdata: acf.prepareForAjax( ajaxData ),\n\t\t\ttype: 'post',\n\t\t\tdataType: 'html',\n\t\t} );\n\t};\n\n\t/**\n\t * acf.val\n\t *\n\t * description\n\t *\n\t * @date\t8/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.val = function ( $input, value, silent ) {\n\t\t// vars\n\t\tvar prevValue = $input.val();\n\n\t\t// bail if no change\n\t\tif ( value === prevValue ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// update value\n\t\t$input.val( value );\n\n\t\t// prevent select elements displaying blank value if option doesn't exist\n\t\tif ( $input.is( 'select' ) && $input.val() === null ) {\n\t\t\t$input.val( prevValue );\n\t\t\treturn false;\n\t\t}\n\n\t\t// update with trigger\n\t\tif ( silent !== true ) {\n\t\t\t$input.trigger( 'change' );\n\t\t}\n\n\t\t// return\n\t\treturn true;\n\t};\n\n\t/**\n\t * acf.show\n\t *\n\t * description\n\t *\n\t * @date\t9/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.show = function ( $el, lockKey ) {\n\t\t// unlock\n\t\tif ( lockKey ) {\n\t\t\tacf.unlock( $el, 'hidden', lockKey );\n\t\t}\n\n\t\t// bail early if $el is still locked\n\t\tif ( acf.isLocked( $el, 'hidden' ) ) {\n\t\t\t//console.log( 'still locked', getLocks( $el, 'hidden' ));\n\t\t\treturn false;\n\t\t}\n\n\t\t// $el is hidden, remove class and return true due to change in visibility\n\t\tif ( $el.hasClass( 'acf-hidden' ) ) {\n\t\t\t$el.removeClass( 'acf-hidden' );\n\t\t\treturn true;\n\n\t\t\t// $el is visible, return false due to no change in visibility\n\t\t} else {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\t/**\n\t * acf.hide\n\t *\n\t * description\n\t *\n\t * @date\t9/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.hide = function ( $el, lockKey ) {\n\t\t// lock\n\t\tif ( lockKey ) {\n\t\t\tacf.lock( $el, 'hidden', lockKey );\n\t\t}\n\n\t\t// $el is hidden, return false due to no change in visibility\n\t\tif ( $el.hasClass( 'acf-hidden' ) ) {\n\t\t\treturn false;\n\n\t\t\t// $el is visible, add class and return true due to change in visibility\n\t\t} else {\n\t\t\t$el.addClass( 'acf-hidden' );\n\t\t\treturn true;\n\t\t}\n\t};\n\n\t/**\n\t * acf.isHidden\n\t *\n\t * description\n\t *\n\t * @date\t9/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.isHidden = function ( $el ) {\n\t\treturn $el.hasClass( 'acf-hidden' );\n\t};\n\n\t/**\n\t * acf.isVisible\n\t *\n\t * description\n\t *\n\t * @date\t9/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.isVisible = function ( $el ) {\n\t\treturn ! acf.isHidden( $el );\n\t};\n\n\t/**\n\t * enable\n\t *\n\t * description\n\t *\n\t * @date\t12/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 enable = function ( $el, lockKey ) {\n\t\t// check class. Allow .acf-disabled to overrule all JS\n\t\tif ( $el.hasClass( 'acf-disabled' ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// unlock\n\t\tif ( lockKey ) {\n\t\t\tacf.unlock( $el, 'disabled', lockKey );\n\t\t}\n\n\t\t// bail early if $el is still locked\n\t\tif ( acf.isLocked( $el, 'disabled' ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// $el is disabled, remove prop and return true due to change\n\t\tif ( $el.prop( 'disabled' ) ) {\n\t\t\t$el.prop( 'disabled', false );\n\t\t\treturn true;\n\n\t\t\t// $el is enabled, return false due to no change\n\t\t} else {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\t/**\n\t * acf.enable\n\t *\n\t * description\n\t *\n\t * @date\t9/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.enable = function ( $el, lockKey ) {\n\t\t// enable single input\n\t\tif ( $el.attr( 'name' ) ) {\n\t\t\treturn enable( $el, lockKey );\n\t\t}\n\n\t\t// find and enable child inputs\n\t\t// return true if any inputs have changed\n\t\tvar results = false;\n\t\t$el.find( '[name]' ).each( function () {\n\t\t\tvar result = enable( $( this ), lockKey );\n\t\t\tif ( result ) {\n\t\t\t\tresults = true;\n\t\t\t}\n\t\t} );\n\t\treturn results;\n\t};\n\n\t/**\n\t * disable\n\t *\n\t * description\n\t *\n\t * @date\t12/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 disable = function ( $el, lockKey ) {\n\t\t// lock\n\t\tif ( lockKey ) {\n\t\t\tacf.lock( $el, 'disabled', lockKey );\n\t\t}\n\n\t\t// $el is disabled, return false due to no change\n\t\tif ( $el.prop( 'disabled' ) ) {\n\t\t\treturn false;\n\n\t\t\t// $el is enabled, add prop and return true due to change\n\t\t} else {\n\t\t\t$el.prop( 'disabled', true );\n\t\t\treturn true;\n\t\t}\n\t};\n\n\t/**\n\t * acf.disable\n\t *\n\t * description\n\t *\n\t * @date\t9/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.disable = function ( $el, lockKey ) {\n\t\t// disable single input\n\t\tif ( $el.attr( 'name' ) ) {\n\t\t\treturn disable( $el, lockKey );\n\t\t}\n\n\t\t// find and enable child inputs\n\t\t// return true if any inputs have changed\n\t\tvar results = false;\n\t\t$el.find( '[name]' ).each( function () {\n\t\t\tvar result = disable( $( this ), lockKey );\n\t\t\tif ( result ) {\n\t\t\t\tresults = true;\n\t\t\t}\n\t\t} );\n\t\treturn results;\n\t};\n\n\t/**\n\t * acf.isset\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.isset = function ( obj /*, level1, level2, ... */ ) {\n\t\tfor ( var i = 1; i < arguments.length; i++ ) {\n\t\t\tif ( ! obj || ! obj.hasOwnProperty( arguments[ i ] ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tobj = obj[ arguments[ i ] ];\n\t\t}\n\t\treturn true;\n\t};\n\n\t/**\n\t * acf.isget\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.isget = function ( obj /*, level1, level2, ... */ ) {\n\t\tfor ( var i = 1; i < arguments.length; i++ ) {\n\t\t\tif ( ! obj || ! obj.hasOwnProperty( arguments[ i ] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tobj = obj[ arguments[ i ] ];\n\t\t}\n\t\treturn obj;\n\t};\n\n\t/**\n\t * acf.getFileInputData\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.getFileInputData = function ( $input, callback ) {\n\t\t// vars\n\t\tvar value = $input.val();\n\n\t\t// bail early if no value\n\t\tif ( ! value ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// data\n\t\tvar data = {\n\t\t\turl: value,\n\t\t};\n\n\t\t// modern browsers\n\t\tvar file = $input[ 0 ].files.length\n\t\t\t? acf.isget( $input[ 0 ].files, 0 )\n\t\t\t: false;\n\t\tif ( file ) {\n\t\t\t// update data\n\t\t\tdata.size = file.size;\n\t\t\tdata.type = file.type;\n\n\t\t\t// image\n\t\t\tif ( file.type.indexOf( 'image' ) > -1 ) {\n\t\t\t\t// vars\n\t\t\t\tvar windowURL = window.URL || window.webkitURL;\n\t\t\t\tvar img = new Image();\n\n\t\t\t\timg.onload = function () {\n\t\t\t\t\t// update\n\t\t\t\t\tdata.width = this.width;\n\t\t\t\t\tdata.height = this.height;\n\n\t\t\t\t\tcallback( data );\n\t\t\t\t};\n\t\t\t\timg.src = windowURL.createObjectURL( file );\n\t\t\t} else {\n\t\t\t\tcallback( data );\n\t\t\t}\n\t\t} else {\n\t\t\tcallback( data );\n\t\t}\n\t};\n\n\t/**\n\t * acf.isAjaxSuccess\n\t *\n\t * description\n\t *\n\t * @date\t18/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.isAjaxSuccess = function ( json ) {\n\t\treturn json && json.success;\n\t};\n\n\t/**\n\t * acf.getAjaxMessage\n\t *\n\t * description\n\t *\n\t * @date\t18/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.getAjaxMessage = function ( json ) {\n\t\treturn acf.isget( json, 'data', 'message' );\n\t};\n\n\t/**\n\t * acf.getAjaxError\n\t *\n\t * description\n\t *\n\t * @date\t18/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.getAjaxError = function ( json ) {\n\t\treturn acf.isget( json, 'data', 'error' );\n\t};\n\n\t/**\n\t * Returns the error message from an XHR object.\n\t *\n\t * @date\t17/3/20\n\t * @since\t5.8.9\n\t *\n\t * @param\tobject xhr The XHR object.\n\t * @return\t(string)\n\t */\n\tacf.getXhrError = function ( xhr ) {\n\t\tif ( xhr.responseJSON && xhr.responseJSON.message ) {\n\t\t\treturn xhr.responseJSON.message;\n\t\t} else if ( xhr.statusText ) {\n\t\t\treturn xhr.statusText;\n\t\t}\n\t\treturn '';\n\t};\n\n\t/**\n\t * acf.renderSelect\n\t *\n\t * Renders the innter html for a select field.\n\t *\n\t * @date\t19/2/18\n\t * @since\t5.6.9\n\t *\n\t * @param\tjQuery $select The select element.\n\t * @param\tarray choices An array of choices.\n\t * @return\tvoid\n\t */\n\n\tacf.renderSelect = function ( $select, choices ) {\n\t\t// vars\n\t\tvar value = $select.val();\n\t\tvar values = [];\n\n\t\t// callback\n\t\tvar crawl = function ( items ) {\n\t\t\t// vars\n\t\t\tvar itemsHtml = '';\n\n\t\t\t// loop\n\t\t\titems.map( function ( item ) {\n\t\t\t\t// vars\n\t\t\t\tvar text = item.text || item.label || '';\n\t\t\t\tvar id = item.id || item.value || '';\n\n\t\t\t\t// append\n\t\t\t\tvalues.push( id );\n\n\t\t\t\t// optgroup\n\t\t\t\tif ( item.children ) {\n\t\t\t\t\titemsHtml +=\n\t\t\t\t\t\t'<optgroup label=\"' +\n\t\t\t\t\t\tacf.escAttr( text ) +\n\t\t\t\t\t\t'\">' +\n\t\t\t\t\t\tcrawl( item.children ) +\n\t\t\t\t\t\t'</optgroup>';\n\n\t\t\t\t\t// option\n\t\t\t\t} else {\n\t\t\t\t\titemsHtml +=\n\t\t\t\t\t\t'<option value=\"' +\n\t\t\t\t\t\tacf.escAttr( id ) +\n\t\t\t\t\t\t'\"' +\n\t\t\t\t\t\t( item.disabled ? ' disabled=\"disabled\"' : '' ) +\n\t\t\t\t\t\t'>' +\n\t\t\t\t\t\tacf.strEscape( text ) +\n\t\t\t\t\t\t'</option>';\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t// return\n\t\t\treturn itemsHtml;\n\t\t};\n\n\t\t// update HTML\n\t\t$select.html( crawl( choices ) );\n\n\t\t// update value\n\t\tif ( values.indexOf( value ) > -1 ) {\n\t\t\t$select.val( value );\n\t\t}\n\n\t\t// return selected value\n\t\treturn $select.val();\n\t};\n\n\t/**\n\t * acf.lock\n\t *\n\t * Creates a \"lock\" on an element for a given type and key\n\t *\n\t * @date\t22/2/18\n\t * @since\t5.6.9\n\t *\n\t * @param\tjQuery $el The element to lock.\n\t * @param\tstring type The type of lock such as \"condition\" or \"visibility\".\n\t * @param\tstring key The key that will be used to unlock.\n\t * @return\tvoid\n\t */\n\n\tvar getLocks = function ( $el, type ) {\n\t\treturn $el.data( 'acf-lock-' + type ) || [];\n\t};\n\n\tvar setLocks = function ( $el, type, locks ) {\n\t\t$el.data( 'acf-lock-' + type, locks );\n\t};\n\n\tacf.lock = function ( $el, type, key ) {\n\t\tvar locks = getLocks( $el, type );\n\t\tvar i = locks.indexOf( key );\n\t\tif ( i < 0 ) {\n\t\t\tlocks.push( key );\n\t\t\tsetLocks( $el, type, locks );\n\t\t}\n\t};\n\n\t/**\n\t * acf.unlock\n\t *\n\t * Unlocks a \"lock\" on an element for a given type and key\n\t *\n\t * @date\t22/2/18\n\t * @since\t5.6.9\n\t *\n\t * @param\tjQuery $el The element to lock.\n\t * @param\tstring type The type of lock such as \"condition\" or \"visibility\".\n\t * @param\tstring key The key that will be used to unlock.\n\t * @return\tvoid\n\t */\n\n\tacf.unlock = function ( $el, type, key ) {\n\t\tvar locks = getLocks( $el, type );\n\t\tvar i = locks.indexOf( key );\n\t\tif ( i > -1 ) {\n\t\t\tlocks.splice( i, 1 );\n\t\t\tsetLocks( $el, type, locks );\n\t\t}\n\n\t\t// return true if is unlocked (no locks)\n\t\treturn locks.length === 0;\n\t};\n\n\t/**\n\t * acf.isLocked\n\t *\n\t * Returns true if a lock exists for a given type\n\t *\n\t * @date\t22/2/18\n\t * @since\t5.6.9\n\t *\n\t * @param\tjQuery $el The element to lock.\n\t * @param\tstring type The type of lock such as \"condition\" or \"visibility\".\n\t * @return\tvoid\n\t */\n\n\tacf.isLocked = function ( $el, type ) {\n\t\treturn getLocks( $el, type ).length > 0;\n\t};\n\n\t/**\n\t * acf.isGutenberg\n\t *\n\t * Returns true if the Gutenberg editor is being used.\n\t *\n\t * @date\t14/11/18\n\t * @since\t5.8.0\n\t *\n\t * @param\tvois\n\t * @return\tbool\n\t */\n\tacf.isGutenberg = function () {\n\t\treturn !! (\n\t\t\twindow.wp &&\n\t\t\twp.data &&\n\t\t\twp.data.select &&\n\t\t\twp.data.select( 'core/editor' )\n\t\t);\n\t};\n\n\t/**\n\t * acf.objectToArray\n\t *\n\t * Returns an array of items from the given object.\n\t *\n\t * @date\t20/11/18\n\t * @since\t5.8.0\n\t *\n\t * @param\tobject obj The object of items.\n\t * @return\tarray\n\t */\n\tacf.objectToArray = function ( obj ) {\n\t\treturn Object.keys( obj ).map( function ( key ) {\n\t\t\treturn obj[ key ];\n\t\t} );\n\t};\n\n\t/**\n\t * acf.debounce\n\t *\n\t * Returns a debounced version of the passed function which will postpone its execution until after `wait` milliseconds have elapsed since the last time it was invoked.\n\t *\n\t * @date\t28/8/19\n\t * @since\t5.8.1\n\t *\n\t * @param\tfunction callback The callback function.\n\t * @return\tint wait The number of milliseconds to wait.\n\t */\n\tacf.debounce = function ( callback, wait ) {\n\t\tvar timeout;\n\t\treturn function () {\n\t\t\tvar context = this;\n\t\t\tvar args = arguments;\n\t\t\tvar later = function () {\n\t\t\t\tcallback.apply( context, args );\n\t\t\t};\n\t\t\tclearTimeout( timeout );\n\t\t\ttimeout = setTimeout( later, wait );\n\t\t};\n\t};\n\n\t/**\n\t * acf.throttle\n\t *\n\t * Returns a throttled version of the passed function which will allow only one execution per `limit` time period.\n\t *\n\t * @date\t28/8/19\n\t * @since\t5.8.1\n\t *\n\t * @param\tfunction callback The callback function.\n\t * @return\tint wait The number of milliseconds to wait.\n\t */\n\tacf.throttle = function ( callback, limit ) {\n\t\tvar busy = false;\n\t\treturn function () {\n\t\t\tif ( busy ) return;\n\t\t\tbusy = true;\n\t\t\tsetTimeout( function () {\n\t\t\t\tbusy = false;\n\t\t\t}, limit );\n\t\t\tcallback.apply( this, arguments );\n\t\t};\n\t};\n\n\t/**\n\t * acf.isInView\n\t *\n\t * Returns true if the given element is in view.\n\t *\n\t * @date\t29/8/19\n\t * @since\t5.8.1\n\t *\n\t * @param\telem el The dom element to inspect.\n\t * @return\tbool\n\t */\n\tacf.isInView = function ( el ) {\n\t\tif ( el instanceof jQuery ) {\n\t\t\tel = el[ 0 ];\n\t\t}\n\t\tvar rect = el.getBoundingClientRect();\n\t\treturn (\n\t\t\trect.top !== rect.bottom &&\n\t\t\trect.top >= 0 &&\n\t\t\trect.left >= 0 &&\n\t\t\trect.bottom <=\n\t\t\t\t( window.innerHeight ||\n\t\t\t\t\tdocument.documentElement.clientHeight ) &&\n\t\t\trect.right <=\n\t\t\t\t( window.innerWidth || document.documentElement.clientWidth )\n\t\t);\n\t};\n\n\t/**\n\t * acf.onceInView\n\t *\n\t * Watches for a dom element to become visible in the browser and then excecutes the passed callback.\n\t *\n\t * @date\t28/8/19\n\t * @since\t5.8.1\n\t *\n\t * @param\tdom el The dom element to inspect.\n\t * @param\tfunction callback The callback function.\n\t */\n\tacf.onceInView = ( function () {\n\t\t// Define list.\n\t\tvar items = [];\n\t\tvar id = 0;\n\n\t\t// Define check function.\n\t\tvar check = function () {\n\t\t\titems.forEach( function ( item ) {\n\t\t\t\tif ( acf.isInView( item.el ) ) {\n\t\t\t\t\titem.callback.apply( this );\n\t\t\t\t\tpop( item.id );\n\t\t\t\t}\n\t\t\t} );\n\t\t};\n\n\t\t// And create a debounced version.\n\t\tvar debounced = acf.debounce( check, 300 );\n\n\t\t// Define add function.\n\t\tvar push = function ( el, callback ) {\n\t\t\t// Add event listener.\n\t\t\tif ( ! items.length ) {\n\t\t\t\t$( window )\n\t\t\t\t\t.on( 'scroll resize', debounced )\n\t\t\t\t\t.on( 'acfrefresh orientationchange', check );\n\t\t\t}\n\n\t\t\t// Append to list.\n\t\t\titems.push( { id: id++, el: el, callback: callback } );\n\t\t};\n\n\t\t// Define remove function.\n\t\tvar pop = function ( id ) {\n\t\t\t// Remove from list.\n\t\t\titems = items.filter( function ( item ) {\n\t\t\t\treturn item.id !== id;\n\t\t\t} );\n\n\t\t\t// Clean up listener.\n\t\t\tif ( ! items.length ) {\n\t\t\t\t$( window )\n\t\t\t\t\t.off( 'scroll resize', debounced )\n\t\t\t\t\t.off( 'acfrefresh orientationchange', check );\n\t\t\t}\n\t\t};\n\n\t\t// Define returned function.\n\t\treturn function ( el, callback ) {\n\t\t\t// Allow jQuery object.\n\t\t\tif ( el instanceof jQuery ) el = el[ 0 ];\n\n\t\t\t// Execute callback if already in view or add to watch list.\n\t\t\tif ( acf.isInView( el ) ) {\n\t\t\t\tcallback.apply( this );\n\t\t\t} else {\n\t\t\t\tpush( el, callback );\n\t\t\t}\n\t\t};\n\t} )();\n\n\t/**\n\t * acf.once\n\t *\n\t * Creates a function that is restricted to invoking `func` once.\n\t *\n\t * @date\t2/9/19\n\t * @since\t5.8.1\n\t *\n\t * @param\tfunction func The function to restrict.\n\t * @return\tfunction\n\t */\n\tacf.once = function ( func ) {\n\t\tvar i = 0;\n\t\treturn function () {\n\t\t\tif ( i++ > 0 ) {\n\t\t\t\treturn ( func = undefined );\n\t\t\t}\n\t\t\treturn func.apply( this, arguments );\n\t\t};\n\t};\n\n\t/**\n\t * Focuses attention to a specific element.\n\t *\n\t * @date\t05/05/2020\n\t * @since\t5.9.0\n\t *\n\t * @param\tjQuery $el The jQuery element to focus.\n\t * @return\tvoid\n\t */\n\tacf.focusAttention = function ( $el ) {\n\t\tvar wait = 1000;\n\n\t\t// Apply class to focus attention.\n\t\t$el.addClass( 'acf-attention -focused' );\n\n\t\t// Scroll to element if needed.\n\t\tvar scrollTime = 500;\n\t\tif ( ! acf.isInView( $el ) ) {\n\t\t\t$( 'body, html' ).animate(\n\t\t\t\t{\n\t\t\t\t\tscrollTop: $el.offset().top - $( window ).height() / 2,\n\t\t\t\t},\n\t\t\t\tscrollTime\n\t\t\t);\n\t\t\twait += scrollTime;\n\t\t}\n\n\t\t// Remove class after $wait amount of time.\n\t\tvar fadeTime = 250;\n\t\tsetTimeout( function () {\n\t\t\t$el.removeClass( '-focused' );\n\t\t\tsetTimeout( function () {\n\t\t\t\t$el.removeClass( 'acf-attention' );\n\t\t\t}, fadeTime );\n\t\t}, wait );\n\t};\n\n\t/**\n\t * Description\n\t *\n\t * @date\t05/05/2020\n\t * @since\t5.9.0\n\t *\n\t * @param\ttype Var Description.\n\t * @return\ttype Description.\n\t */\n\tacf.onFocus = function ( $el, callback ) {\n\t\t// Only run once per element.\n\t\t// if( $el.data('acf.onFocus') ) {\n\t\t// \treturn false;\n\t\t// }\n\n\t\t// Vars.\n\t\tvar ignoreBlur = false;\n\t\tvar focus = false;\n\n\t\t// Functions.\n\t\tvar onFocus = function () {\n\t\t\tignoreBlur = true;\n\t\t\tsetTimeout( function () {\n\t\t\t\tignoreBlur = false;\n\t\t\t}, 1 );\n\t\t\tsetFocus( true );\n\t\t};\n\t\tvar onBlur = function () {\n\t\t\tif ( ! ignoreBlur ) {\n\t\t\t\tsetFocus( false );\n\t\t\t}\n\t\t};\n\t\tvar addEvents = function () {\n\t\t\t$( document ).on( 'click', onBlur );\n\t\t\t//$el.on('acfBlur', onBlur);\n\t\t\t$el.on( 'blur', 'input, select, textarea', onBlur );\n\t\t};\n\t\tvar removeEvents = function () {\n\t\t\t$( document ).off( 'click', onBlur );\n\t\t\t//$el.off('acfBlur', onBlur);\n\t\t\t$el.off( 'blur', 'input, select, textarea', onBlur );\n\t\t};\n\t\tvar setFocus = function ( value ) {\n\t\t\tif ( focus === value ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( value ) {\n\t\t\t\taddEvents();\n\t\t\t} else {\n\t\t\t\tremoveEvents();\n\t\t\t}\n\t\t\tfocus = value;\n\t\t\tcallback( value );\n\t\t};\n\n\t\t// Add events and set data.\n\t\t$el.on( 'click', onFocus );\n\t\t//$el.on('acfFocus', onFocus);\n\t\t$el.on( 'focus', 'input, select, textarea', onFocus );\n\t\t//$el.data('acf.onFocus', true);\n\t};\n\n\t/*\n\t * exists\n\t *\n\t * This function will return true if a jQuery selection exists\n\t *\n\t * @type\tfunction\n\t * @date\t8/09/2014\n\t * @since\t5.0.0\n\t *\n\t * @param\tn/a\n\t * @return\t(boolean)\n\t */\n\n\t$.fn.exists = function () {\n\t\treturn $( this ).length > 0;\n\t};\n\n\t/*\n\t * outerHTML\n\t *\n\t * This function will return a string containing the HTML of the selected element\n\t *\n\t * @type\tfunction\n\t * @date\t19/11/2013\n\t * @since\t5.0.0\n\t *\n\t * @param\t$.fn\n\t * @return\t(string)\n\t */\n\n\t$.fn.outerHTML = function () {\n\t\treturn $( this ).get( 0 ).outerHTML;\n\t};\n\n\t/*\n\t * indexOf\n\t *\n\t * This function will provide compatibility for ie8\n\t *\n\t * @type\tfunction\n\t * @date\t5/3/17\n\t * @since\t5.5.10\n\t *\n\t * @param\tn/a\n\t * @return\tn/a\n\t */\n\n\tif ( ! Array.prototype.indexOf ) {\n\t\tArray.prototype.indexOf = function ( val ) {\n\t\t\treturn $.inArray( val, this );\n\t\t};\n\t}\n\n\t/**\n\t * Returns true if value is a number or a numeric string.\n\t *\n\t * @date\t30/11/20\n\t * @since\t5.9.4\n\t * @link\thttps://stackoverflow.com/questions/9716468/pure-javascript-a-function-like-jquerys-isnumeric/9716488#9716488\n\t *\n\t * @param\tmixed n The variable being evaluated.\n\t * @return\tbool.\n\t */\n\tacf.isNumeric = function ( n ) {\n\t\treturn ! isNaN( parseFloat( n ) ) && isFinite( n );\n\t};\n\n\t/**\n\t * Triggers a \"refresh\" action used by various Components to redraw the DOM.\n\t *\n\t * @date\t26/05/2020\n\t * @since\t5.9.0\n\t *\n\t * @param\tvoid\n\t * @return\tvoid\n\t */\n\tacf.refresh = acf.debounce( function () {\n\t\t$( window ).trigger( 'acfrefresh' );\n\t\tacf.doAction( 'refresh' );\n\t}, 0 );\n\n\t// Set up actions from events\n\t$( document ).ready( function () {\n\t\tacf.doAction( 'ready' );\n\t} );\n\n\t$( window ).on( 'load', function () {\n\t\t// Use timeout to ensure action runs after Gutenberg has modified DOM elements during \"DOMContentLoaded\".\n\t\tsetTimeout( function () {\n\t\t\tacf.doAction( 'load' );\n\t\t} );\n\t} );\n\n\t$( window ).on( 'beforeunload', function () {\n\t\tacf.doAction( 'unload' );\n\t} );\n\n\t$( window ).on( 'resize', function () {\n\t\tacf.doAction( 'resize' );\n\t} );\n\n\t$( document ).on( 'sortstart', function ( event, ui ) {\n\t\tacf.doAction( 'sortstart', ui.item, ui.placeholder );\n\t} );\n\n\t$( document ).on( 'sortstop', function ( event, ui ) {\n\t\tacf.doAction( 'sortstop', ui.item, ui.placeholder );\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.js';\nimport './_acf-hooks.js';\nimport './_acf-model.js';\nimport './_acf-popup.js';\nimport './_acf-modal.js';\nimport './_acf-panel.js';\nimport './_acf-notice.js';\nimport './_acf-tooltip.js';\n"],"names":["window","undefined","EventManager","MethodsAvailable","removeFilter","applyFilters","addFilter","removeAction","doAction","addAction","storage","getStorage","STORAGE","actions","filters","action","callback","priority","context","parseInt","_addHook","args","Array","prototype","slice","call","arguments","shift","_runHook","_removeHook","filter","type","hook","handlers","i","length","splice","handler","hookObject","hooks","push","_hookInsertSort","tmpHook","j","prevHook","len","apply","acf","$","models","Modal","Model","extend","data","title","content","toolbar","events","setup","props","$el","render","initialize","open","get","join","replaceWith","update","parseArgs","html","append","close","remove","onClickClose","e","preventDefault","newModal","jQuery","delegateEventSplitter","protoProps","Parent","Child","hasOwnProperty","constructor","Object","create","cid","uniqueId","addEvents","addActions","addFilters","wait","didAction","id","busy","changed","eventScope","name","has","set","value","silent","prevValue","trigger","inherit","prop","addElements","elements","keys","addElement","selector","key","match","on","removeEvents","off","getEventTarget","event","document","validateEvent","target","closest","is","proxyEvent","proxy","arrayArgs","extraArgs","eventArgs","currentTarget","concat","a1","a2","a3","a4","bubbles","triggerHandler","removeActions","removeFilters","find","setTimeout","milliseconds","time","console","timeEnd","show","hide","getInstance","getInstances","instances","each","Notice","text","timeout","dismiss","tmpl","addClass","away","$target","prepend","prevType","removeClass","escHtml","newNotice","noticeManager","$notice","after","panel","onClick","toggle","parent","isOpen","hasClass","attr","Popup","width","height","loading","css","$loading","newPopup","newTooltip","confirmRemove","textConfirm","__","textCancel","TooltipConfirm","confirm","Tooltip","position","fade","$tooltip","top","left","tolerance","targetWidth","outerWidth","targetHeight","outerHeight","targetTop","offset","targetLeft","tooltipWidth","tooltipHeight","tooltipTop","scrollTop","targetConfirm","cancel","$document","onCancel","stopImmediatePropagation","onConfirm","tooltipHoverHelper","tooltip","showTitle","hideTitle","idCounter","prefix","uniqueArray","array","onlyUnique","index","self","indexOf","uniqidSeed","uniqid","moreEntropy","retId","formatSeed","seed","reqWidth","toString","Math","floor","random","Date","getTime","toFixed","strReplace","search","replace","subject","split","strCamelCase","str","matches","map","s","c","charAt","toLowerCase","toUpperCase","strPascalCase","camel","strSlugify","strSanitize","À","Á","Â","Ã","Ä","Å","Æ","Ç","È","É","Ê","Ë","Ì","Í","Î","Ï","Ð","Ñ","Ò","Ó","Ô","Õ","Ö","Ø","Ù","Ú","Û","Ü","Ý","ß","à","á","â","ã","ä","å","æ","ç","è","é","ê","ë","ì","í","î","ï","ñ","ò","ó","ô","õ","ö","ø","ù","ú","û","ü","ý","ÿ","Ā","ā","Ă","ă","Ą","ą","Ć","ć","Ĉ","ĉ","Ċ","ċ","Č","č","Ď","ď","Đ","đ","Ē","ē","Ĕ","ĕ","Ė","ė","Ę","ę","Ě","ě","Ĝ","ĝ","Ğ","ğ","Ġ","ġ","Ģ","ģ","Ĥ","ĥ","Ħ","ħ","Ĩ","ĩ","Ī","ī","Ĭ","ĭ","Į","į","İ","ı","IJ","ij","Ĵ","ĵ","Ķ","ķ","Ĺ","ĺ","Ļ","ļ","Ľ","ľ","Ŀ","ŀ","Ł","ł","Ń","ń","Ņ","ņ","Ň","ň","ʼn","Ō","ō","Ŏ","ŏ","Ő","ő","Œ","œ","Ŕ","ŕ","Ŗ","ŗ","Ř","ř","Ś","ś","Ŝ","ŝ","Ş","ş","Š","š","Ţ","ţ","Ť","ť","Ŧ","ŧ","Ũ","ũ","Ū","ū","Ŭ","ŭ","Ů","ů","Ű","ű","Ų","ų","Ŵ","ŵ","Ŷ","ŷ","Ÿ","Ź","ź","Ż","ż","Ž","ž","ſ","ƒ","Ơ","ơ","Ư","ư","Ǎ","ǎ","Ǐ","ǐ","Ǒ","ǒ","Ǔ","ǔ","Ǖ","ǖ","Ǘ","ǘ","Ǚ","ǚ","Ǜ","ǜ","Ǻ","ǻ","Ǽ","ǽ","Ǿ","ǿ","nonWord","mapping","strMatch","s1","s2","val","min","strEscape","string","htmlEscapes","chr","strUnescape","htmlUnescapes","entity","escAttr","decode","defaults","acfL10n","_x","_n","single","plural","number","isArray","a","isObject","buildObject","obj","ref","String","serialize","inputs","serializeArray","item","serializeForAjax","actionHistory","doingAction","currentAction","k","preferences","JSON","parse","localStorage","getItem","getPreferenceName","substr","getPreference","setPreference","setItem","stringify","removePreference","endHeight","complete","removeTr","removeDiv","margin","style","wrap","$wrap","opacity","$tr","children","$td","duplicate","rename","before","$el2","clone","replacer","destructive","withReplacer","outerHTML","prepareForAjax","nonce","post_id","lang","startButtonLoading","stopButtonLoading","next","showLoading","hideLoading","updateUserSetting","ajaxData","ajax","url","dataType","$input","lockKey","unlock","isLocked","lock","isHidden","isVisible","enable","results","result","disable","isset","isget","getFileInputData","file","files","size","windowURL","URL","webkitURL","img","Image","onload","src","createObjectURL","isAjaxSuccess","json","success","getAjaxMessage","getAjaxError","getXhrError","xhr","responseJSON","message","statusText","renderSelect","$select","choices","values","crawl","items","itemsHtml","label","disabled","getLocks","setLocks","locks","isGutenberg","wp","select","objectToArray","debounce","later","clearTimeout","throttle","limit","isInView","el","rect","getBoundingClientRect","bottom","innerHeight","documentElement","clientHeight","right","innerWidth","clientWidth","onceInView","check","forEach","pop","debounced","once","func","focusAttention","scrollTime","animate","fadeTime","onFocus","ignoreBlur","focus","setFocus","onBlur","fn","exists","inArray","isNumeric","n","isNaN","parseFloat","isFinite","refresh","ready","ui","placeholder"],"sourceRoot":""}
|
includes/acf-value-functions.php
CHANGED
@@ -62,9 +62,13 @@ function acf_get_value( $post_id, $field ) {
|
|
62 |
|
63 |
// If we still don't have a proper field array, the field doesn't exist currently.
|
64 |
if ( empty( $field['type'] ) && empty( $field['key'] ) ) {
|
65 |
-
|
|
|
|
|
|
|
66 |
return null;
|
67 |
}
|
|
|
68 |
do_action( 'acf/get_invalid_field_value', $field, __FUNCTION__ );
|
69 |
}
|
70 |
|
62 |
|
63 |
// If we still don't have a proper field array, the field doesn't exist currently.
|
64 |
if ( empty( $field['type'] ) && empty( $field['key'] ) ) {
|
65 |
+
// Get field ID & type.
|
66 |
+
$decoded = acf_decode_post_id( $post_id );
|
67 |
+
|
68 |
+
if ( apply_filters( 'acf/prevent_access_to_unknown_fields', false ) || ( 'option' === $decoded['type'] && 'options' !== $decoded['id'] ) ) {
|
69 |
return null;
|
70 |
}
|
71 |
+
|
72 |
do_action( 'acf/get_invalid_field_value', $field, __FUNCTION__ );
|
73 |
}
|
74 |
|
includes/acf-wp-functions.php
CHANGED
@@ -183,7 +183,7 @@ function acf_decode_post_id( $post_id = 0 ) {
|
|
183 |
break;
|
184 |
case 'option_%s':
|
185 |
$type = 'option';
|
186 |
-
$id =
|
187 |
break;
|
188 |
case 'blog_%d':
|
189 |
case 'site_%d':
|
@@ -201,7 +201,7 @@ function acf_decode_post_id( $post_id = 0 ) {
|
|
201 |
|
202 |
// Treat unknown post_id format as an option.
|
203 |
$type = 'option';
|
204 |
-
$id =
|
205 |
break;
|
206 |
}
|
207 |
|
183 |
break;
|
184 |
case 'option_%s':
|
185 |
$type = 'option';
|
186 |
+
$id = $post_id;
|
187 |
break;
|
188 |
case 'blog_%d':
|
189 |
case 'site_%d':
|
201 |
|
202 |
// Treat unknown post_id format as an option.
|
203 |
$type = 'option';
|
204 |
+
$id = $post_id;
|
205 |
break;
|
206 |
}
|
207 |
|
readme.txt
CHANGED
@@ -4,7 +4,7 @@ Tags: acf, fields, custom fields, meta, repeater
|
|
4 |
Requires at least: 4.7
|
5 |
Tested up to: 5.8.1
|
6 |
Requires PHP: 5.6
|
7 |
-
Stable tag: 5.11.
|
8 |
License: GPLv2 or later
|
9 |
License URI: https://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
@@ -76,6 +76,10 @@ From your WordPress dashboard
|
|
76 |
|
77 |
== Changelog ==
|
78 |
|
|
|
|
|
|
|
|
|
79 |
= 5.11.2 =
|
80 |
*Release Date - 24th November 2021*
|
81 |
|
4 |
Requires at least: 4.7
|
5 |
Tested up to: 5.8.1
|
6 |
Requires PHP: 5.6
|
7 |
+
Stable tag: 5.11.3
|
8 |
License: GPLv2 or later
|
9 |
License URI: https://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
76 |
|
77 |
== Changelog ==
|
78 |
|
79 |
+
= 5.11.3 =
|
80 |
+
*Release Date - 24th November 2021*
|
81 |
+
* Fix - Fixed a bug when accessing field values for options pages registered with a custom post_id
|
82 |
+
|
83 |
= 5.11.2 =
|
84 |
*Release Date - 24th November 2021*
|
85 |
|