File manager - Edit - /home/vblioqus/unfreezetiktok.com/wp-content/plugins/hummingbird-performance/admin/assets/js/wphb-app.min.js.map
Back
{"version":3,"file":"js/wphb-app.min.js","mappings":"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","sources":["webpack://wp-hummingbird/./node_modules/core-js/internals/is-object.js","webpack://wp-hummingbird/./node_modules/core-js/internals/make-built-in.js","webpack://wp-hummingbird/./node_modules/lodash/isLength.js","webpack://wp-hummingbird/./node_modules/lodash/isObjectLike.js","webpack://wp-hummingbird/./node_modules/core-js/internals/function-name.js","webpack://wp-hummingbird/./node_modules/lodash/_isIndex.js","webpack://wp-hummingbird/./node_modules/lodash/_getValue.js","webpack://wp-hummingbird/./node_modules/core-js/internals/html.js","webpack://wp-hummingbird/./node_modules/core-js/internals/hidden-keys.js","webpack://wp-hummingbird/./node_modules/core-js/internals/function-bind-native.js","webpack://wp-hummingbird/./node_modules/lodash/_getRawTag.js","webpack://wp-hummingbird/./node_modules/lodash/_arrayLikeKeys.js","webpack://wp-hummingbird/./node_modules/core-js/internals/math-trunc.js","webpack://wp-hummingbird/./node_modules/core-js/internals/is-symbol.js","webpack://wp-hummingbird/./node_modules/lodash/_createAssigner.js","webpack://wp-hummingbird/./node_modules/lodash/_apply.js","webpack://wp-hummingbird/./node_modules/core-js/internals/object-keys.js","webpack://wp-hummingbird/./node_modules/core-js/internals/internal-state.js","webpack://wp-hummingbird/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://wp-hummingbird/./node_modules/core-js/internals/array-species-create.js","webpack://wp-hummingbird/./_src/js/scanners/CacheScanner.js","webpack://wp-hummingbird/./_src/js/modules/admin-caching.js","webpack://wp-hummingbird/./_src/js/mixpanel.js","webpack://wp-hummingbird/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://wp-hummingbird/./node_modules/lodash/_copyObject.js","webpack://wp-hummingbird/./node_modules/lodash/_shortOut.js","webpack://wp-hummingbird/./node_modules/core-js/internals/object-keys-internal.js","webpack://wp-hummingbird/./node_modules/lodash/_Symbol.js","webpack://wp-hummingbird/./node_modules/lodash/isFunction.js","webpack://wp-hummingbird/./node_modules/core-js/internals/to-string-tag-support.js","webpack://wp-hummingbird/./node_modules/core-js/internals/classof-raw.js","webpack://wp-hummingbird/./_src/js/scanners/OrphanedScanner.js","webpack://wp-hummingbird/./_src/js/modules/admin-advanced.js","webpack://wp-hummingbird/./node_modules/core-js/internals/object-create.js","webpack://wp-hummingbird/./node_modules/lodash/isArguments.js","webpack://wp-hummingbird/./node_modules/lodash/_baseGetTag.js","webpack://wp-hummingbird/./node_modules/core-js/internals/to-primitive.js","webpack://wp-hummingbird/./node_modules/core-js/internals/is-forced.js","webpack://wp-hummingbird/./node_modules/core-js/internals/environment-user-agent.js","webpack://wp-hummingbird/./node_modules/lodash/_setToString.js","webpack://wp-hummingbird/./node_modules/core-js/features/array/find-index.js","webpack://wp-hummingbird/./node_modules/lodash/_defineProperty.js","webpack://wp-hummingbird/./node_modules/lodash/_baseAssignValue.js","webpack://wp-hummingbird/./node_modules/core-js/internals/uid.js","webpack://wp-hummingbird/./node_modules/lodash/identity.js","webpack://wp-hummingbird/./node_modules/core-js/internals/is-constructor.js","webpack://wp-hummingbird/./node_modules/lodash/_nativeKeys.js","webpack://wp-hummingbird/./node_modules/lodash/isBuffer.js","webpack://wp-hummingbird/./node_modules/core-js/internals/inspect-source.js","webpack://wp-hummingbird/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://wp-hummingbird/./node_modules/core-js/internals/descriptors.js","webpack://wp-hummingbird/./node_modules/lodash/isObject.js","webpack://wp-hummingbird/./_src/js/modules/admin-dashboard.js","webpack://wp-hummingbird/./node_modules/core-js/internals/document-create-element.js","webpack://wp-hummingbird/./node_modules/core-js/internals/is-null-or-undefined.js","webpack://wp-hummingbird/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://wp-hummingbird/./node_modules/lodash/_overArg.js","webpack://wp-hummingbird/./node_modules/core-js/internals/is-array.js","webpack://wp-hummingbird/./_src/js/modules/admin-uptime.js","webpack://wp-hummingbird/./node_modules/core-js/internals/symbol-constructor-detection.js","webpack://wp-hummingbird/./node_modules/core-js/internals/global-this.js","webpack://wp-hummingbird/./node_modules/lodash/_freeGlobal.js","webpack://wp-hummingbird/./node_modules/lodash/isArrayLike.js","webpack://wp-hummingbird/./node_modules/lodash/_baseIsTypedArray.js","webpack://wp-hummingbird/./node_modules/core-js/internals/object-define-property.js","webpack://wp-hummingbird/./node_modules/core-js/full/array/find-index.js","webpack://wp-hummingbird/./node_modules/core-js/internals/own-keys.js","webpack://wp-hummingbird/./node_modules/lodash/_baseIsNative.js","webpack://wp-hummingbird/./_src/js/utils/helpers.js","webpack://wp-hummingbird/./node_modules/lodash/eq.js","webpack://wp-hummingbird/./_src/js/utils/scanner.js","webpack://wp-hummingbird/./node_modules/core-js/internals/to-indexed-object.js","webpack://wp-hummingbird/./node_modules/lodash/_coreJsData.js","webpack://wp-hummingbird/./node_modules/lodash/_isPrototype.js","webpack://wp-hummingbird/./node_modules/core-js/internals/to-absolute-index.js","webpack://wp-hummingbird/./node_modules/core-js/internals/shared.js","webpack://wp-hummingbird/./node_modules/core-js/internals/ie8-dom-define.js","webpack://wp-hummingbird/./node_modules/lodash/keys.js","webpack://wp-hummingbird/./node_modules/core-js/internals/get-method.js","webpack://wp-hummingbird/./_src/js/modules/admin-settings.js","webpack://wp-hummingbird/./node_modules/lodash/_nodeUtil.js","webpack://wp-hummingbird/./_src/js/scanners/PerfScanner.js","webpack://wp-hummingbird/./_src/js/modules/admin-performance.js","webpack://wp-hummingbird/./node_modules/core-js/internals/function-bind-context.js","webpack://wp-hummingbird/./node_modules/lodash/_getNative.js","webpack://wp-hummingbird/./node_modules/core-js/internals/shared-key.js","webpack://wp-hummingbird/./node_modules/lodash/assign.js","webpack://wp-hummingbird/./node_modules/core-js/internals/length-of-array-like.js","webpack://wp-hummingbird/./node_modules/core-js/internals/is-pure.js","webpack://wp-hummingbird/./node_modules/lodash/isArray.js","webpack://wp-hummingbird/./node_modules/core-js/internals/add-to-unscopables.js","webpack://wp-hummingbird/./node_modules/core-js/internals/export.js","webpack://wp-hummingbird/./node_modules/lodash/_assignValue.js","webpack://wp-hummingbird/./node_modules/core-js/actual/array/find-index.js","webpack://wp-hummingbird/./node_modules/core-js/stable/array/find-index.js","webpack://wp-hummingbird/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://wp-hummingbird/./_src/js/modules/admin-notifications.js","webpack://wp-hummingbird/./_src/js/modules/admin-cloudflare.js","webpack://wp-hummingbird/./node_modules/lodash/_overRest.js","webpack://wp-hummingbird/./node_modules/lodash/_isIterateeCall.js","webpack://wp-hummingbird/./node_modules/core-js/internals/object-define-properties.js","webpack://wp-hummingbird/./node_modules/core-js/internals/try-to-string.js","webpack://wp-hummingbird/./node_modules/core-js/internals/define-built-in.js","webpack://wp-hummingbird/./node_modules/core-js/internals/a-callable.js","webpack://wp-hummingbird/./node_modules/core-js/internals/classof.js","webpack://wp-hummingbird/./node_modules/es6-promise/dist/es6-promise.js","webpack://wp-hummingbird/./node_modules/core-js/internals/to-property-key.js","webpack://wp-hummingbird/./node_modules/core-js/internals/create-property-descriptor.js","webpack://wp-hummingbird/./node_modules/core-js/internals/entry-unbind.js","webpack://wp-hummingbird/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://wp-hummingbird/./node_modules/core-js/internals/indexed-object.js","webpack://wp-hummingbird/./node_modules/lodash/isTypedArray.js","webpack://wp-hummingbird/./node_modules/core-js/es/array/find-index.js","webpack://wp-hummingbird/./node_modules/core-js/internals/is-callable.js","webpack://wp-hummingbird/./node_modules/lodash/_isMasked.js","webpack://wp-hummingbird/./node_modules/lodash/_baseUnary.js","webpack://wp-hummingbird/./node_modules/lodash/constant.js","webpack://wp-hummingbird/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://wp-hummingbird/./_src/js/modules/admin-main.js","webpack://wp-hummingbird/./node_modules/core-js/internals/array-species-constructor.js","webpack://wp-hummingbird/./node_modules/lodash/_toSource.js","webpack://wp-hummingbird/./node_modules/core-js/internals/function-uncurry-this-clause.js","webpack://wp-hummingbird/./node_modules/lodash/_baseIsArguments.js","webpack://wp-hummingbird/./node_modules/core-js/internals/shared-store.js","webpack://wp-hummingbird/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://wp-hummingbird/./node_modules/core-js/internals/require-object-coercible.js","webpack://wp-hummingbird/./node_modules/core-js/internals/get-built-in.js","webpack://wp-hummingbird/./node_modules/core-js/internals/to-length.js","webpack://wp-hummingbird/./node_modules/lodash/_baseTimes.js","webpack://wp-hummingbird/./node_modules/core-js/internals/well-known-symbol.js","webpack://wp-hummingbird/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://wp-hummingbird/./node_modules/core-js/internals/an-object.js","webpack://wp-hummingbird/./node_modules/core-js/internals/weak-map-basic-detection.js","webpack://wp-hummingbird/./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://wp-hummingbird/./node_modules/core-js/internals/enum-bug-keys.js","webpack://wp-hummingbird/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://wp-hummingbird/./node_modules/core-js/modules/es.array.find-index.js","webpack://wp-hummingbird/./node_modules/core-js/internals/to-object.js","webpack://wp-hummingbird/./node_modules/lodash/_baseKeys.js","webpack://wp-hummingbird/./node_modules/core-js/internals/fails.js","webpack://wp-hummingbird/./node_modules/core-js/internals/array-iteration.js","webpack://wp-hummingbird/./node_modules/core-js/internals/has-own-property.js","webpack://wp-hummingbird/./node_modules/lodash/_baseRest.js","webpack://wp-hummingbird/./_src/js/scanners/MinifyScanner.js","webpack://wp-hummingbird/./_src/js/modules/admin-minification.js","webpack://wp-hummingbird/./node_modules/lodash/_root.js","webpack://wp-hummingbird/./node_modules/lodash/_objectToString.js","webpack://wp-hummingbird/./node_modules/core-js/internals/define-global-property.js","webpack://wp-hummingbird/./node_modules/core-js/internals/function-uncurry-this.js","webpack://wp-hummingbird/./node_modules/core-js/internals/environment-v8-version.js","webpack://wp-hummingbird/./node_modules/core-js/internals/function-call.js","webpack://wp-hummingbird/./node_modules/lodash/_baseSetToString.js","webpack://wp-hummingbird/./node_modules/core-js/internals/array-includes.js","webpack://wp-hummingbird/./_src/js/utils/fetcher.js","webpack://wp-hummingbird/./node_modules/lodash/stubFalse.js","webpack://wp-hummingbird/webpack/bootstrap","webpack://wp-hummingbird/webpack/runtime/compat get default export","webpack://wp-hummingbird/webpack/runtime/define property getters","webpack://wp-hummingbird/webpack/runtime/global","webpack://wp-hummingbird/webpack/runtime/hasOwnProperty shorthand","webpack://wp-hummingbird/webpack/runtime/make namespace object","webpack://wp-hummingbird/webpack/runtime/node module decorator","webpack://wp-hummingbird/./_src/js/app.js"],"sourcesContent":["'use strict';\nvar isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\).*$/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","'use strict';\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","var baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar globalThis = require('../internals/global-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = globalThis.TypeError;\nvar WeakMap = globalThis.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw new TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","'use strict';\nvar trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","'use strict';\nvar arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","import Scanner from '../utils/scanner';\nimport Fetcher from '../utils/fetcher';\n\n// Number of sites to clear out per request.\nconst BATCH_SIZE = 20;\n\n/**\n * CacheScanner class responsible for clearing out network cache on subsites.\n *\n * @since 2.7.0\n */\nclass CacheScanner extends Scanner {\n\t/**\n\t * Run step.\n\t *\n\t * @since 2.7.0\n\t *\n\t * @param {number} remainingSteps\n\t */\n\tstep( remainingSteps ) {\n\t\tsuper.step( remainingSteps );\n\n\t\tthis.currentStep++;\n\n\t\tif ( remainingSteps > 0 ) {\n\t\t\tconst offset = ( this.totalSteps - remainingSteps ) * BATCH_SIZE;\n\n\t\t\tFetcher.caching.clearCacheBatch( BATCH_SIZE, offset ).then( () => {\n\t\t\t\tthis.updateProgressBar( this.getProgress() );\n\t\t\t\tthis.step( this.totalSteps - this.currentStep );\n\t\t\t} );\n\t\t} else {\n\t\t\tthis.onFinish();\n\t\t}\n\t}\n\n\t/**\n\t * Set the total number of steps based on the number of subsites and BATCH_SIZE.\n\t *\n\t * @since 2.7.0\n\t */\n\tonStart() {\n\t\treturn Fetcher.common\n\t\t\t.call( 'wphb_get_network_sites' )\n\t\t\t.then( ( response ) => {\n\t\t\t\tthis.totalSteps = Math.ceil(\n\t\t\t\t\tparseInt( response ) / BATCH_SIZE\n\t\t\t\t);\n\t\t\t} );\n\t}\n\n\t/**\n\t * Finish up.\n\t *\n\t * @since 2.7.0\n\t */\n\tonFinish() {\n\t\tsuper.onFinish();\n\t\tlocation.reload();\n\t}\n}\n\nexport default CacheScanner;\n","/* global WPHB_Admin */\n/* global wphbMixPanel */\n\n/**\n * Internal dependencies\n */\nimport Fetcher from '../utils/fetcher';\nimport { getString } from '../utils/helpers';\nimport CacheScanner from '../scanners/CacheScanner';\n\n( function( $ ) {\n\t'use strict';\n\tWPHB_Admin.caching = {\n\t\tmodule: 'caching',\n\n\t\tinit() {\n\t\t\tconst self = this,\n\t\t\t\thash = window.location.hash,\n\t\t\t\tpageCachingForm = $( 'form[id=\"page_cache-form\"]' ),\n\t\t\t\tfastCGICachingForm = $( 'form[id=\"fastcgi-form\"]' ),\n\t\t\t\trssForm = $( 'form[id=\"rss-form\"]' ),\n\t\t\t\tsettingsForm = $( 'form[id=\"settings-form\"]' );\n\n\t\t\t// We assume there's at least one site, but this.scanner.init() will properly set the total sites.\n\t\t\tthis.scanner = new CacheScanner( 1, 0 );\n\n\t\t\tif ( hash && $( hash ).length ) {\n\t\t\t\tsetTimeout( function() {\n\t\t\t\t\t$( 'html, body' ).animate(\n\t\t\t\t\t\t{ scrollTop: $( hash ).offset().top },\n\t\t\t\t\t\t'slow'\n\t\t\t\t\t);\n\t\t\t\t}, 300 );\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * PAGE CACHING\n\t\t\t *\n\t\t\t * @since 1.7.0\n\t\t\t */\n\n\t\t\t// Save page caching settings.\n\t\t\tpageCachingForm.on( 'submit', ( e ) => {\n\t\t\t\te.preventDefault();\n\t\t\t\tself.saveSettings( 'page_cache', pageCachingForm );\n\t\t\t} );\n\n\t\t\t// Save fastCGI caching settings.\n\t\t\tfastCGICachingForm.on( 'submit', ( e ) => {\n\t\t\t\te.preventDefault();\n\t\t\t\tconst button = fastCGICachingForm.find( 'button.sui-button.sui-button-blue' );\n\t\t\t\tbutton.addClass( 'sui-button-onload-text' );\n\n\t\t\t\tFetcher.caching\n\t\t\t\t\t.saveFastCGISettings( fastCGICachingForm.serialize() )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\tbutton.removeClass( 'sui-button-onload-text' );\n\t\t\t\t\t\tif ( 'undefined' !== typeof response && '' === response.fastCGIResponse ) {\n\t\t\t\t\t\t\twphbMixPanel.trackPageCachingSettings( 'modified', 'hosting_static_cache', 'caching_settings', response.settingsModified, response.preloadHomepage );\n\t\t\t\t\t\t\twindow.location.search += '&updated=true';\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst errorMessage = 'undefined' !== typeof response && '' !== response.fastCGIResponse ? response.fastCGIResponse : getString( 'errorSettingsUpdate' );\n\t\t\t\t\t\t\tWPHB_Admin.notices.show( errorMessage, 'error' );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t} );\n\n\t\t\t// Clear page|gravatar cache.\n\t\t\t$( '#wphb-clear-cache' ).on( 'click', ( e ) => {\n\t\t\t\te.preventDefault();\n\t\t\t\tself.clearCache( e.target );\n\t\t\t} );\n\n\t\t\t// Switch the cache method.\n\t\t\t$( '#wphb-switch-page-cache-method' ).on( 'click', ( e ) => {\n\t\t\t\tself.switchCacheMethod( e );\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Disable FastCGI cache.\n\t\t\t *\n\t\t\t * @since 3.4.0\n\t\t\t */\n\t\t\t$( '#wphb-disable-fastcgi' ).on( 'click', ( e ) => {\n\t\t\t\te.preventDefault();\n\t\t\t\te.target.classList.add( 'sui-button-onload-text' );\n\t\t\t\tFetcher.caching.disableFastCGI().then( ( response ) => {\n\t\t\t\t\tif ( 'undefined' !== typeof response && '' === response.fastCGIResponse ) {\n\t\t\t\t\t\twphbMixPanel.trackPageCachingSettings( 'deactivate', 'hosting_static_cache', 'caching_settings', 'na', response.preloadHomepage );\n\t\t\t\t\t\twindow.location.reload();\n\t\t\t\t\t} else {\n\t\t\t\t\t\te.target.classList.remove( 'sui-button-onload-text' );\n\t\t\t\t\t\tconst errorMessage = 'undefined' !== typeof response && '' !== response.fastCGIResponse ? response.fastCGIResponse : getString( 'errorSettingsUpdate' );\n\t\t\t\t\t\tWPHB_Admin.notices.show( errorMessage, 'error' );\n\t\t\t\t\t}\n\t\t\t\t} )\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Toggle clear cache settings.\n\t\t\t *\n\t\t\t * @since 2.1.0\n\t\t\t */\n\t\t\tconst intervalToggle = document.getElementById( 'clear_interval' );\n\t\t\tif ( intervalToggle ) {\n\t\t\t\tintervalToggle.addEventListener( 'change', function( e ) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\t$( '#page_cache_clear_interval' ).toggle();\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Cancel cache preload.\n\t\t\t *\n\t\t\t * @since 2.1.0\n\t\t\t */\n\t\t\tconst cancelPreload = document.getElementById(\n\t\t\t\t'wphb-cancel-cache-preload'\n\t\t\t);\n\t\t\tif ( cancelPreload ) {\n\t\t\t\tcancelPreload.addEventListener( 'click', function( e ) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tFetcher.common.call( 'wphb_preload_cancel' ).then( () => {\n\t\t\t\t\t\twindow.location.reload();\n\t\t\t\t\t} );\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Show/hide preload settings.\n\t\t\t *\n\t\t\t * @since 2.3.0\n\t\t\t */\n\t\t\tconst preloadToggle = document.getElementById( 'preload' );\n\t\t\tif ( preloadToggle ) {\n\t\t\t\tpreloadToggle.addEventListener( 'change', function( e ) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\t$( '#page_cache_preload_type' ).toggle();\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Remove advanced-cache.php file.\n\t\t\t *\n\t\t\t * @since 3.1.1\n\t\t\t */\n\t\t\t$( '#wphb-remove-advanced-cache' ).on( 'click', ( e ) => {\n\t\t\t\te.preventDefault();\n\t\t\t\tFetcher.common\n\t\t\t\t\t.call( 'wphb_remove_advanced_cache' )\n\t\t\t\t\t.then( () => location.reload() );\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * CLOUDFLARE\n\t\t\t */\n\t\t\t// \"# of your cache types don’t meet the recommended expiry period\" notice clicked.\n\t\t\t$( '#configure-link' ).on( 'click', function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\t$( 'html, body' ).animate(\n\t\t\t\t\t{\n\t\t\t\t\t\tscrollTop: $( '#wphb-box-caching-settings' ).offset()\n\t\t\t\t\t\t\t.top,\n\t\t\t\t\t},\n\t\t\t\t\t'slow'\n\t\t\t\t);\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * RSS CACHING\n\t\t\t *\n\t\t\t * @since 1.8.0\n\t\t\t */\n\n\t\t\t// Parse rss cache settings.\n\t\t\trssForm.on( 'submit', ( e ) => {\n\t\t\t\te.preventDefault();\n\n\t\t\t\t// Make sure a positive value is always reflected for the rss expiry time input.\n\t\t\t\tconst rssExpiryTime = rssForm.find( '#rss-expiry-time' );\n\t\t\t\trssExpiryTime.val( Math.abs( rssExpiryTime.val() ) );\n\n\t\t\t\tself.saveSettings( 'rss', rssForm );\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * INTEGRATIONS\n\t\t\t *\n\t\t\t * @since 2.5.0\n\t\t\t */\n\t\t\tconst redisForm = document.getElementById( 'redis-settings-form' );\n\t\t\tif ( redisForm ) {\n\t\t\t\tredisForm.addEventListener( 'submit', ( e ) => {\n\t\t\t\t\te.preventDefault();\n\n\t\t\t\t\tconst btn = document.getElementById( 'redis-connect-save' );\n\t\t\t\t\tbtn.classList.add( 'sui-button-onload-text' );\n\n\t\t\t\t\tconst host = document.getElementById( 'redis-host' ).value;\n\t\t\t\t\tlet port = document.getElementById( 'redis-port' ).value;\n\t\t\t\t\tconst pass = document.getElementById( 'redis-password' )\n\t\t\t\t\t\t.value;\n\t\t\t\t\tconst db = document.getElementById( 'redis-db' ).value;\n\t\t\t\t\tconst connected = document.getElementById(\n\t\t\t\t\t\t'redis-connected'\n\t\t\t\t\t).value;\n\n\t\t\t\t\tif ( ! port ) {\n\t\t\t\t\t\tport = 6379;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Submit via Fetcher. then close modal.\n\t\t\t\t\tFetcher.caching\n\t\t\t\t\t\t.redisSaveSettings( host, port, pass, db )\n\t\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t'undefined' !== typeof response &&\n\t\t\t\t\t\t\t\tresponse.success\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\twindow.location.search +=\n\t\t\t\t\t\t\t\t\tconnected === '1'\n\t\t\t\t\t\t\t\t\t\t? '&updated=redis-auth-2'\n\t\t\t\t\t\t\t\t\t\t: '&updated=redis-auth';\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tconst notice = document.getElementById(\n\t\t\t\t\t\t\t\t\t'redis-connect-notice-on-modal'\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tnotice.innerHTML = response.message;\n\t\t\t\t\t\t\t\tnotice.parentNode.parentNode.parentNode.classList.remove(\n\t\t\t\t\t\t\t\t\t'sui-hidden'\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tnotice.parentNode.parentNode.classList.add(\n\t\t\t\t\t\t\t\t\t'sui-spacing-top--10'\n\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\tbtn.classList.remove(\n\t\t\t\t\t\t\t\t\t'sui-button-onload-text'\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tconst objectCache = document.getElementById( 'object-cache' );\n\t\t\tif ( objectCache ) {\n\t\t\t\tobjectCache.addEventListener( 'change', ( e ) => {\n\t\t\t\t\t// Track feature enable.\n\t\t\t\t\tif ( e.target.checked ) {\n\t\t\t\t\t\twphbMixPanel.enableFeature( 'Redis Cache' );\n\t\t\t\t\t} else {\n\t\t\t\t\t\twphbMixPanel.disableFeature( 'Redis Cache' );\n\t\t\t\t\t}\n\n\t\t\t\t\tFetcher.caching\n\t\t\t\t\t\t.redisObjectCache( e.target.checked )\n\t\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t'undefined' !== typeof response &&\n\t\t\t\t\t\t\t\tresponse.success\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\twindow.location.search +=\n\t\t\t\t\t\t\t\t\t'&updated=redis-object-cache';\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tWPHB_Admin.notices.show(\n\t\t\t\t\t\t\t\t\tgetString( 'errorSettingsUpdate' ),\n\t\t\t\t\t\t\t\t\t'error'\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tconst objectCachePurge = document.getElementById(\n\t\t\t\t'clear-redis-cache'\n\t\t\t);\n\t\t\tif ( objectCachePurge ) {\n\t\t\t\tobjectCachePurge.addEventListener( 'click', () => {\n\t\t\t\t\tobjectCachePurge.classList.add( 'sui-button-onload-text' );\n\t\t\t\t\tFetcher.common\n\t\t\t\t\t\t.call( 'wphb_redis_cache_purge' )\n\t\t\t\t\t\t.then( () => {\n\t\t\t\t\t\t\tobjectCachePurge.classList.remove(\n\t\t\t\t\t\t\t\t'sui-button-onload-text'\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tWPHB_Admin.notices.show(\n\t\t\t\t\t\t\t\tgetString( 'successRedisPurge' )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} );\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tconst redisCacheDisable = document.getElementById(\n\t\t\t\t'redis-disconnect'\n\t\t\t);\n\t\t\tif ( redisCacheDisable ) {\n\t\t\t\tredisCacheDisable.addEventListener( 'click', ( e ) => {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tthis.redisDisable();\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * SETTINGS\n\t\t\t *\n\t\t\t * @since 1.8.1\n\t\t\t */\n\n\t\t\t// Parse page cache settings.\n\t\t\tsettingsForm.on( 'submit', ( e ) => {\n\t\t\t\te.preventDefault();\n\n\t\t\t\t// Hide the notice if it is showing.\n\t\t\t\tconst detection = $(\n\t\t\t\t\t'input[name=\"detection\"]:checked',\n\t\t\t\t\tsettingsForm\n\t\t\t\t).val();\n\t\t\t\tif ( 'auto' === detection || 'none' === detection ) {\n\t\t\t\t\t$( '.wphb-notice.notice-info' ).slideUp();\n\t\t\t\t}\n\n\t\t\t\tself.saveSettings( 'other_cache', settingsForm );\n\t\t\t} );\n\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * Disable Redis cache.\n\t\t *\n\t\t * @since 2.5.0\n\t\t */\n\t\tredisDisable: () => {\n\t\t\tFetcher.common.call( 'wphb_redis_disconnect' ).then( () => {\n\t\t\t\twindow.location.search += '&updated=redis-disconnect';\n\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * Switch cache method.\n\t\t *\n\t\t * @since 3.9.0\n\t\t *\n\t\t * @param {Object} e Target element.\n\t\t */\n\t\tswitchCacheMethod: ( e ) => {\n\t\t\te.preventDefault();\n\t\t\tconst currentElement = e.currentTarget;\n\t\t\tconst method = currentElement.dataset.method;\n\t\t\tconst location = currentElement.dataset.location;\n\t\t\tcurrentElement.classList.add( 'sui-button', 'sui-button-onload-text' );\n\t\t\tcurrentElement.classList.remove( 'sui-tooltip' );\n\t\t\tconst switchInfo = document.getElementById( 'wphb_switch_cache_info' );\n\t\t\tif ( switchInfo ) {\n\t\t\t\tswitchInfo.style.display = 'none';\n\t\t\t}\n\n\t\t\tFetcher.caching.switchCacheMethod( method ).then( ( response ) => {\n\t\t\t\tif ( 'undefined' !== typeof response && 'error' !== response.isFastCGIActivated ) {\n\t\t\t\t\twphbMixPanel.trackPageCachingSettings( 'switch_method', method, location ? location : 'caching_settings', 'na', response.preloadHomepage );\n\n\t\t\t\t\tif ( 'dash_widget' === location && wphb.links.cachingPageURL ) {\n\t\t\t\t\t\twindow.location.href = wphb.links.cachingPageURL;\n\t\t\t\t\t} else {\n\t\t\t\t\t\twindow.location.reload();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tcurrentElement.classList.remove( 'sui-button' );\n\t\t\t\t\tcurrentElement.classList.remove( 'sui-button-onload-text' );\n\t\t\t\t\tconst errorMessage = 'undefined' !== typeof response && 'error' === response.isFastCGIActivated ? response.fastCGIResponse : getString( 'errorSettingsUpdate' );\n\t\t\t\t\tWPHB_Admin.notices.show( errorMessage, 'error' );\n\t\t\t\t}\n\t\t\t} )\n\t\t},\n\n\t\t/**\n\t\t * Process form submit from page caching, rss and settings forms.\n\t\t *\n\t\t * @since 1.9.0\n\t\t *\n\t\t * @param {string} module Module name.\n\t\t * @param {Object} form Form.\n\t\t */\n\t\tsaveSettings: ( module, form ) => {\n\t\t\tconst button = form.find( 'button.sui-button' );\n\t\t\tbutton.addClass( 'sui-button-onload-text' );\n\n\t\t\tFetcher.caching\n\t\t\t\t.saveSettings( module, form.serialize() )\n\t\t\t\t.then( ( response ) => {\n\t\t\t\t\tbutton.removeClass( 'sui-button-onload-text' );\n\n\t\t\t\t\tif ( 'undefined' !== typeof response && response.success ) {\n\t\t\t\t\t\tif ( 'page_cache' === module ) {\n\t\t\t\t\t\t\twphbMixPanel.trackPageCachingSettings( 'modified', 'local_page_cache', 'caching_settings', response.settingsModified, response.preloadHomepage );\n\t\t\t\t\t\t\twindow.location.search += '&updated=true';\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tWPHB_Admin.notices.show();\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tWPHB_Admin.notices.show(\n\t\t\t\t\t\t\tgetString( 'errorSettingsUpdate' ),\n\t\t\t\t\t\t\t'error'\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * Unified clear cache method that clears: page cache, gravatar cache and browser cache.\n\t\t *\n\t\t * @since 1.9.0\n\t\t *\n\t\t * @param {Object} target Target button that was clicked.\n\t\t */\n\t\tclearCache: ( target ) => {\n\t\t\tconst module = target.dataset.module;\n\t\t\ttarget.classList.add( 'sui-button-onload-text' );\n\n\t\t\tFetcher.caching.clearCache( module ).then( ( response ) => {\n\t\t\t\tif ( 'page_cache' === module && 'undefined' !== typeof response && response.reload ) {\n\t\t\t\t\twindow.location.reload();\n\t\t\t\t}\n\n\t\t\t\tif ( 'undefined' !== typeof response && response.success ) {\n\t\t\t\t\tif ( 'page_cache' === module ) {\n\t\t\t\t\t\t$( '.box-caching-summary span.sui-summary-large' ).html( '0' );\n\t\t\t\t\t\tWPHB_Admin.notices.show( getString( 'successPageCachePurge' ) );\n\t\t\t\t\t} else if ( 'gravatar' === module ) {\n\t\t\t\t\t\tWPHB_Admin.notices.show( getString( 'successGravatarPurge' ) );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tWPHB_Admin.notices.show( getString( 'errorCachePurge' ), 'error' );\n\t\t\t\t}\n\t\t\t} ).finally( () => target.classList.remove( 'sui-button-onload-text' ) );\n\t\t},\n\n\t\t/**\n\t\t * Clear network wide page cache.\n\t\t *\n\t\t * @since 2.7.0\n\t\t */\n\t\tclearNetworkCache() {\n\t\t\twindow.SUI.slideModal( 'ccnw-slide-two', 'slide-next', 'next' );\n\t\t\tthis.scanner.start();\n\t\t},\n\t};\n} )( jQuery );\n","/* global wphb */\nimport Fetcher from './utils/fetcher';\n\n( function() {\n\t'use strict';\n\n\twindow.wphbMixPanel = {\n\t\t/**\n\t\t * Opt in tracking.\n\t\t */\n\t\toptIn() {\n\t\t\twphb.mixpanel.enabled = true;\n\t\t},\n\n\t\t/**\n\t\t * Deactivate feedback.\n\t\t *\n\t\t * @param {string} reason Deactivation reason.\n\t\t * @param {string} feedback Deactivation feedback.\n\t\t */\n\t\tdeactivate( reason, feedback = '' ) {\n\t\t\tthis.track( 'plugin_deactivate', {\n\t\t\t\treason,\n\t\t\t\tfeedback,\n\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * Track HB Upsell events.\n\t\t *\n\t\t * @param {string} feature Feature name.\n\t\t * @param {string} location Location.\n\t\t * @param {string} action Action.\n\t\t * @param {string} utmLink UTM link.\n\t\t * @param {string} evenName Event name.\n\t\t */\n\t\ttrackHBUpsell( feature, location, action, utmLink, evenName = 'hb_upsell_triggered' ) {\n\t\t\tthis.track( evenName, {\n\t\t\t\tFeature: feature,\n\t\t\t\tLocation: location,\n\t\t\t\t'User Action': action,\n\t\t\t\t'UTM Link': utmLink,\n\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * Track feature enable.\n\t\t *\n\t\t * @param {string} feature Feature name.\n\t\t */\n\t\tenableFeature( feature ) {\n\t\t\tthis.track( 'plugin_feature_activate', { feature } );\n\t\t},\n\n\t\t/**\n\t\t * Track EO Upsell event.\n\t\t *\n\t\t * @param {string} eventName Event name.\n\t\t * @param {string} location Location.\n\t\t */\n\t\ttrackEoUpsell( eventName, location ) {\n\t\t\tconst mpEventName = 'delayjs' === eventName ? 'js_delay_upsell' : 'critical_css_upsell';\n\n\t\t\tthis.track( mpEventName, {\n\t\t\t\t'Modal Action': 'direct_cta',\n\t\t\t\tLocation: location,\n\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * Get update type\n\t\t *\n\t\t * @param {string} update_type Update type.\n\t\t */\n\t\tgetUpdateType( update_type ) {\n\t\t\tif ( 'activate' === update_type ) {\n\t\t\t\treturn 'plugin_feature_activate';\n\t\t\t}\n\n\t\t\tif ( 'deactivate' === update_type ) {\n\t\t\t\treturn 'plugin_feature_deactivate';\n\t\t\t}\n\n\t\t\treturn '';\n\t\t},\n\n\t\t/**\n\t\t * Track Delay JS Upsell event.\n\t\t *\n\t\t * @param {Object} properties Properties.\n\t\t */\n\t\t trackDelayJSEvent( properties ) {\n\t\t\tif ( 'activate' === properties.update_type ) {\n\t\t\t\tthis.enableFeature( 'JS Delay' );\n\t\t\t}\n\n\t\t\tif ( 'deactivate' === properties.update_type ) {\n\t\t\t\tthis.disableFeature( 'JS Delay' );\n\t\t\t}\n\n\t\t\tthis.track( 'js_delay_updated', properties );\n\t\t},\n\n\t\t/**\n\t\t * Track Font Optimization event.\n\t\t *\n\t\t * @param {string} updateType Properties.\n\t\t * @param {string} feature Feature.\n\t\t */\n\t\ttrackFontOptimizationEvent( updateType, feature ) {\n\t\t\tif ( 'activate' === updateType ) {\n\t\t\t\tthis.enableFeature( feature );\n\t\t\t}\n\n\t\t\tif ( 'deactivate' === updateType ) {\n\t\t\t\tthis.disableFeature( feature );\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Track Critical Upsell event.\n\t\t *\n\t\t * @param {Object} properties Properties.\n\t\t */\n\t\ttrackCriticalCSSEvent( properties ) {\n\t\t\tif ( 'activate' === properties.update_type ) {\n\t\t\t\tthis.enableFeature( 'Critical Css' );\n\t\t\t}\n\n\t\t\tif ( 'deactivate' === properties.update_type ) {\n\t\t\t\tthis.disableFeature( 'Critical Css' );\n\t\t\t}\n\n\t\t\tthis.track( 'critical_css_updated', properties );\n\t\t},\n\n\t\t/**\n\t\t * Track AO updated event.\n\t\t *\n\t\t * @param {Object} properties Properties.\n\t\t */\n\t\t trackAOUpdated( properties ) {\n\t\t\tthis.track( 'ao_updated', properties );\n\t\t},\n\n\t\t/**\n\t\t * Track AO updated event.\n\t\t *\n\t\t * @param {Object} feature Feature.\n\t\t */\n\t\t trackGutenbergEvent( feature ) {\n\t\t\tthis.track( 'critical_css_gutenberg', { feature } );\n\n\t\t\tif ( 'revert' === feature ) {\n\t\t\t\tthis.track( 'critical_css_cache_purge', {\n\t\t\t\t\tlocation: 'gutenberg'\n\t\t\t\t} );\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Track Page Caching event.\n\t\t *\n\t\t * @param {string} updateType Update type.\n\t\t * @param {string} method Method.\n\t\t * @param {string} location Location.\n\t\t * @param {string} settingsModified Modified Settings.\n\t\t * @param {string} preloadHomepage Settings default.\n\t\t */\n\t\ttrackPageCachingSettings( updateType, method, location, settingsModified, preloadHomepage ) {\n\t\t\tconst feature = 'local_page_cache' === method ? 'Page Caching' : method;\n\t\t\tif ( 'activate' === updateType ) {\n\t\t\t\tthis.enableFeature( feature );\n\t\t\t}\n\n\t\t\tif ( 'deactivate' === updateType ) {\n\t\t\t\tthis.disableFeature( feature );\n\t\t\t}\n\n\t\t\tthis.track( 'page_caching_updated', {\n\t\t\t\tupdate_type: updateType,\n\t\t\t\tMethod: method,\n\t\t\t\tLocation: location,\n\t\t\t\tmodified_settings: settingsModified,\n\t\t\t\tpreload_homepage: preloadHomepage,\n\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * Track PRO Upsell event.\n\t\t *\n\t\t * @param {string} eventName Event name.\n\t\t * @param {string} action Action.\n\t\t * @param {string} location Location.\n\t\t */\n\t\ttrackProUpsell( eventName, action, location = 'submenu' ) {\n\t\t\tthis.track( eventName, {\n\t\t\t\tLocation: location,\n\t\t\t\t'User Action': action,\n\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * Track feature disable.\n\t\t *\n\t\t * @param {string} feature Feature name.\n\t\t */\n\t\tdisableFeature( feature ) {\n\t\t\tthis.track( 'plugin_feature_deactivate', { feature } );\n\t\t},\n\n\t\t/**\n\t\t * Track an event.\n\t\t *\n\t\t * @param {string} event Event ID.\n\t\t * @param {Object} data Event data.\n\t\t * @param {boolean} forceTrack Force tracking even if user has opted out.\n\t\t */\n\t\ttrack( event, data = {}, forceTrack = false ) {\n\t\t\tif (\n\t\t\t\t'undefined' === typeof wphb.mixpanel ||\n\t\t\t\t( ! wphb.mixpanel.enabled && ! forceTrack )\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tFetcher.mixpanel.trackMixpanelEvent( event, data );\n\t\t}\n\t};\n}() );\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n// eslint-disable-next-line unicorn/no-immediate-mutation -- ES3 syntax limitation\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","import Scanner from '../utils/scanner';\nimport Fetcher from '../utils/fetcher';\nimport { getString } from '../utils/helpers';\n\nexport const BATCH_SIZE = 3000;\n\n/**\n * OrphanedScanner class responsible for clearing out orphaned Asset Optimization data.\n *\n * @since 2.7.0\n */\nexport class OrphanedScanner extends Scanner {\n\t/**\n\t * Run step.\n\t *\n\t * @since 2.7.0\n\t *\n\t * @param {number} remainingSteps\n\t */\n\tstep( remainingSteps ) {\n\t\tsuper.step( remainingSteps );\n\n\t\tthis.currentStep++;\n\n\t\tif ( remainingSteps > 0 ) {\n\t\t\tFetcher.advanced\n\t\t\t\t.clearOrphanedBatch( BATCH_SIZE )\n\t\t\t\t.then( ( response ) => {\n\t\t\t\t\tlet timeout = 1000;\n\t\t\t\t\tif (\n\t\t\t\t\t\t'undefined' !== typeof response.highCPU &&\n\t\t\t\t\t\tresponse.highCPU\n\t\t\t\t\t) {\n\t\t\t\t\t\ttimeout = 10000;\n\t\t\t\t\t\tdocument\n\t\t\t\t\t\t\t.getElementById( 'site-health-orphanned-speed' )\n\t\t\t\t\t\t\t.classList.remove( 'sui-hidden' );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdocument\n\t\t\t\t\t\t\t.getElementById( 'site-health-orphanned-speed' )\n\t\t\t\t\t\t\t.classList.add( 'sui-hidden' );\n\t\t\t\t\t}\n\n\t\t\t\t\t// SQL operations can be CPU sensitive, so let's give the server some time to breathe.\n\t\t\t\t\twindow.setTimeout( () => {\n\t\t\t\t\t\tthis.updateProgressBar( this.getProgress() );\n\t\t\t\t\t\tthis.step( this.totalSteps - this.currentStep );\n\t\t\t\t\t}, timeout );\n\t\t\t\t} );\n\t\t} else {\n\t\t\tthis.onFinish();\n\t\t}\n\t}\n\n\t/**\n\t * Initialize scanner.\n\t *\n\t * @since 2.7.0\n\t */\n\tonStart() {\n\t\tdocument\n\t\t\t.getElementById( 'site-health-orphaned-progress' )\n\t\t\t.classList.remove( 'sui-hidden' );\n\n\t\tdocument\n\t\t\t.getElementById( 'site-health-orphaned-clear' )\n\t\t\t.classList.add( 'sui-button-onload' );\n\n\t\treturn Promise.resolve();\n\t}\n\n\t/**\n\t * Finish up.\n\t *\n\t * @since 2.7.0\n\t */\n\tonFinish() {\n\t\tsuper.onFinish();\n\n\t\twindow.SUI.closeModal();\n\t\tdocument.getElementById( 'count-ao-orphaned' ).innerHTML = '0';\n\t\twindow.WPHB_Admin.notices.show( getString( 'successAoOrphanedPurge' ) );\n\t}\n}\n","/* global WPHB_Admin */\n\n/**\n * Internal dependencies\n */\nimport Fetcher from '../utils/fetcher';\nimport { getString } from '../utils/helpers';\nimport { OrphanedScanner, BATCH_SIZE } from '../scanners/OrphanedScanner';\n\n( function( $ ) {\n\t'use strict';\n\n\tWPHB_Admin.advanced = {\n\t\tmodule: 'advanced',\n\n\t\tinit() {\n\t\t\tconst self = this,\n\t\t\t\tsystemInfoDropdown = $( '#wphb-system-info-dropdown' ),\n\t\t\t\thash = window.location.hash;\n\n\t\t\t/**\n\t\t\t * Process form submit for advanced tools forms\n\t\t\t */\n\t\t\t$( '#wphb-db-delete-all, .wphb-db-row-delete' ).on(\n\t\t\t\t'click',\n\t\t\t\tfunction( e ) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tself.showModal(\n\t\t\t\t\t\te.target.dataset.entries,\n\t\t\t\t\t\te.target.dataset.type\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t);\n\n\t\t\t/**\n\t\t\t * Process form submit for advanced tools forms\n\t\t\t */\n\t\t\t$(\n\t\t\t\t'form[id=\"advanced-general-settings\"], form[id=\"advanced-lazy-settings\"]'\n\t\t\t).on( 'submit', function( e ) {\n\t\t\t\te.preventDefault();\n\n\t\t\t\tconst button = $( this ).find( '.sui-button-blue' );\n\t\t\t\tbutton.addClass( 'sui-button-onload-text' );\n\n\t\t\t\tFetcher.advanced\n\t\t\t\t\t.saveSettings( $( this ).serialize(), e.target.id )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\tbutton.removeClass( 'sui-button-onload-text' );\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t'undefined' !== typeof response &&\n\t\t\t\t\t\t\tresponse.success\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tresponse.mp_events.forEach( function( object ) {\n\t\t\t\t\t\t\t\tfor (const property in object) {\n\t\t\t\t\t\t\t\t\tif ( false === object[property] ) {\n\t\t\t\t\t\t\t\t\t\twindow.wphbMixPanel.disableFeature( property );\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\twindow.wphbMixPanel.enableFeature( property );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tWPHB_Admin.notices.show();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tWPHB_Admin.notices.show(\n\t\t\t\t\t\t\t\tgetString( 'errorSettingsUpdate' ),\n\t\t\t\t\t\t\t\t'error'\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Show initial system information table.\n\t\t\t */\n\t\t\t$( '#wphb-system-info-php' ).removeClass( 'sui-hidden' );\n\t\t\tif ( hash ) {\n\t\t\t\tconst system = hash.replace( '#', '' );\n\t\t\t\t$( '.wphb-sys-info-table' ).addClass( 'sui-hidden' );\n\t\t\t\t$( '#wphb-system-info-' + system ).removeClass( 'sui-hidden' );\n\t\t\t\tsystemInfoDropdown.val( system ).trigger( 'sui:change' );\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Show/hide system information tables on dropdown change.\n\t\t\t */\n\t\t\tsystemInfoDropdown.on( 'change', function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\t$( '.wphb-sys-info-table' ).addClass( 'sui-hidden' );\n\t\t\t\t$( '#wphb-system-info-' + $( this ).val() ).removeClass(\n\t\t\t\t\t'sui-hidden'\n\t\t\t\t);\n\t\t\t\tlocation.hash = $( this ).val();\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Paste default values to url strings option.\n\t\t\t *\n\t\t\t * @since 1.9.0\n\t\t\t */\n\t\t\t$( '#wphb-adv-paste-value' ).on( 'click', function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\tconst urlStrings = $( 'textarea[name=\"url_strings\"]' );\n\t\t\t\tif ( '' === urlStrings.val() ) {\n\t\t\t\t\turlStrings.val( urlStrings.attr( 'placeholder' ) );\n\t\t\t\t} else {\n\t\t\t\t\turlStrings.val(\n\t\t\t\t\t\turlStrings.val() +\n\t\t\t\t\t\t\t'\\n' +\n\t\t\t\t\t\t\turlStrings.attr( 'placeholder' )\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Toggle woo cart fragments settings.\n\t\t\t *\n\t\t\t * @since 2.2.0\n\t\t\t */\n\t\t\tconst fragmentsToggle = document.getElementById( 'cart_fragments' );\n\t\t\tif ( fragmentsToggle ) {\n\t\t\t\tfragmentsToggle.addEventListener( 'change', function( e ) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\t$( '#cart_fragments_desc' ).toggle();\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t// If button is center aligned, Disable left and right margin and set them to 0.\n\t\t\tconst alignOptions = document.querySelectorAll(\n\t\t\t\t'input[name=\"button[alignment][align]\"]'\n\t\t\t);\n\t\t\tconst marginLeft = document.getElementById( 'button_margin_l' );\n\t\t\tconst marginRight = document.getElementById( 'button_margin_r' );\n\t\t\tfor ( let i = 0; i < alignOptions.length; i++ ) {\n\t\t\t\talignOptions[ i ].addEventListener( 'change', function() {\n\t\t\t\t\tif (\n\t\t\t\t\t\t'center' === alignOptions[ i ].value &&\n\t\t\t\t\t\talignOptions[ i ].checked\n\t\t\t\t\t) {\n\t\t\t\t\t\tmarginLeft.setAttribute( 'disabled', 'disabled' );\n\t\t\t\t\t\tmarginRight.setAttribute( 'disabled', 'disabled' );\n\t\t\t\t\t\tmarginLeft.value = 0;\n\t\t\t\t\t\tmarginRight.value = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmarginLeft.removeAttribute( 'disabled' );\n\t\t\t\t\t\tmarginRight.removeAttribute( 'disabled' );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Show/Hide Lazy comments load options\n\t\t\t *\n\t\t\t */\n\t\t\t$( 'input[id=\"lazy_load\"]' ).on( 'change', function() {\n\t\t\t\t$(\n\t\t\t\t\t'#wphb-lazy-load-comments-wrap, #sui-upsell-gravtar-caching'\n\t\t\t\t).toggle();\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Initialize color picker on lazy load\n\t\t\t */\n\t\t\tif ( true === window.location.search.includes( 'view=lazy' ) ) {\n\t\t\t\tthis.createPickers();\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Purge cache on plugin health page.\n\t\t\t *\n\t\t\t * @since 2.7.0\n\t\t\t */\n\t\t\tconst purgeBtn = document.getElementById( 'btn-cache-purge' );\n\t\t\tif ( purgeBtn ) {\n\t\t\t\tpurgeBtn.addEventListener( 'click', () => this.purgeDb() );\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Purge asset optimization on plugin health page.\n\t\t\t *\n\t\t\t * @since 2.7.0\n\t\t\t */\n\t\t\tconst purgeAObtn = document.getElementById( 'btn-minify-purge' );\n\t\t\tif ( purgeAObtn ) {\n\t\t\t\tpurgeAObtn.addEventListener( 'click', () =>\n\t\t\t\t\tthis.purgeDb( 'minify' )\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Purge orphaned data from modal.\n\t\t\t *\n\t\t\t * @since 2.7.0\n\t\t\t */\n\t\t\tconst purgeModalBtn = document.getElementById(\n\t\t\t\t'site-health-orphaned-clear'\n\t\t\t);\n\t\t\tif ( purgeModalBtn ) {\n\t\t\t\tpurgeModalBtn.addEventListener( 'click', () => {\n\t\t\t\t\tconst count = document.getElementById( 'count-ao-orphaned' )\n\t\t\t\t\t\t.innerHTML;\n\t\t\t\t\tconst steps = Math.ceil( parseInt( count ) / BATCH_SIZE );\n\n\t\t\t\t\tconst scanner = new OrphanedScanner( steps, 0 );\n\t\t\t\t\tscanner.start();\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * Show the modal window asking if a user is sure he wants to delete the db records.\n\t\t *\n\t\t * @param {string} items Number of records to delete.\n\t\t * @param {string} type Data type to delete from db (See data-type element for each row in the code).\n\t\t */\n\t\tshowModal( items, type ) {\n\t\t\tconst modal = $( '#wphb-database-cleanup-modal' );\n\n\t\t\tlet dialog;\n\t\t\tlet btn = '<span class=\"sui-icon-trash\" aria-hidden=\"true\"></span>';\n\n\t\t\tif ( 'drafts' === type ) {\n\t\t\t\tdialog = getString( 'dbDeleteDrafts' );\n\t\t\t\tbtn += getString( 'dbDeleteDraftsButton' );\n\t\t\t} else {\n\t\t\t\tdialog =\n\t\t\t\t\tgetString( 'db_delete' ) +\n\t\t\t\t\t' ' +\n\t\t\t\t\titems +\n\t\t\t\t\t' ' +\n\t\t\t\t\tgetString( 'db_entries' ) +\n\t\t\t\t\t'? ' +\n\t\t\t\t\tgetString( 'db_backup' );\n\t\t\t\tbtn += getString( 'dbDeleteButton' );\n\t\t\t}\n\n\t\t\tmodal.find( 'p' ).html( dialog );\n\t\t\tmodal\n\t\t\t\t.find( '.sui-button-red' )\n\t\t\t\t.attr( 'data-type', type )\n\t\t\t\t.html( btn );\n\n\t\t\twindow.SUI.openModal(\n\t\t\t\t'wphb-database-cleanup-modal',\n\t\t\t\t'wpbody-content',\n\t\t\t\t'wphb-clear-database-confirm',\n\t\t\t\tfalse\n\t\t\t);\n\t\t},\n\n\t\t/**\n\t\t * Process database cleanup (both individual and all entries).\n\t\t *\n\t\t * @param {string} type Data type to delete from db (See data-type element for each row in the code).\n\t\t */\n\t\tconfirmDelete( type ) {\n\t\t\twindow.SUI.closeModal();\n\n\t\t\tlet row;\n\t\t\tconst footer = $( '.box-advanced-db .sui-box-footer' );\n\n\t\t\tif ( 'all' === type ) {\n\t\t\t\trow = footer;\n\t\t\t} else {\n\t\t\t\trow = $( '.box-advanced-db .wphb-border-frame' ).find(\n\t\t\t\t\t'div[data-type=' + type + ']'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst allBtn = $( '#wphb-db-delete-all' );\n\t\t\tconst button = row.find( '.wphb-db-row-delete' );\n\n\t\t\tallBtn.addClass( 'sui-button-onload-text' );\n\t\t\tbutton.addClass( 'sui-button-onload' );\n\n\t\t\tFetcher.advanced\n\t\t\t\t.deleteSelectedData( type )\n\t\t\t\t.then( ( response ) => {\n\t\t\t\t\tallBtn.removeClass( 'sui-button-onload-text' );\n\t\t\t\t\tbutton.removeClass( 'sui-button-onload' );\n\n\t\t\t\t\tfor ( const prop in response.left ) {\n\t\t\t\t\t\tif ( 'total' === prop ) {\n\t\t\t\t\t\t\tconst leftString =\n\t\t\t\t\t\t\t\tgetString( 'deleteAll' ) +\n\t\t\t\t\t\t\t\t' (' +\n\t\t\t\t\t\t\t\tresponse.left[ prop ] +\n\t\t\t\t\t\t\t\t')';\n\t\t\t\t\t\t\tfooter\n\t\t\t\t\t\t\t\t.find( '.wphb-db-delete-all' )\n\t\t\t\t\t\t\t\t.html( leftString );\n\t\t\t\t\t\t\tfooter\n\t\t\t\t\t\t\t\t.find( '#wphb-db-delete-all' )\n\t\t\t\t\t\t\t\t.attr( 'data-entries', response.left[ prop ] );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst itemRow = $(\n\t\t\t\t\t\t\t\t'.box-advanced-db div[data-type=' + prop + ']'\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\titemRow\n\t\t\t\t\t\t\t\t.find( '.wphb-db-items' )\n\t\t\t\t\t\t\t\t.html( response.left[ prop ] );\n\t\t\t\t\t\t\titemRow\n\t\t\t\t\t\t\t\t.find( '.wphb-db-row-delete' )\n\t\t\t\t\t\t\t\t.attr( 'data-entries', response.left[ prop ] )\n\t\t\t\t\t\t\t\t.attr(\n\t\t\t\t\t\t\t\t\t'disabled',\n\t\t\t\t\t\t\t\t\t'0' === response.left[ prop ]\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tWPHB_Admin.notices.show( response.message );\n\t\t\t\t} )\n\t\t\t\t.catch( ( error ) => {\n\t\t\t\t\tWPHB_Admin.notices.show( error, 'error' );\n\t\t\t\t\tallBtn.removeClass( 'sui-button-onload-text' );\n\t\t\t\t\tbutton.removeClass( 'sui-button-onload' );\n\t\t\t\t} );\n\t\t},\n\n\t\tcreatePickers() {\n\t\t\tconst $suiPickerInputs = $( '.sui-colorpicker-input' );\n\n\t\t\t$suiPickerInputs.wpColorPicker( {\n\t\t\t\tchange( event, ui ) {\n\t\t\t\t\tconst $this = $( this );\n\n\t\t\t\t\t// Prevent the model from being marked as changed on load.\n\t\t\t\t\tif ( $this.val() !== ui.color.toCSS() ) {\n\t\t\t\t\t\t$this.val( ui.color.toCSS() ).trigger( 'change' );\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t} );\n\n\t\t\tif ( $suiPickerInputs.hasClass( 'wp-color-picker' ) ) {\n\t\t\t\t$suiPickerInputs.each( function() {\n\t\t\t\t\tconst $suiPickerInput = $( this ),\n\t\t\t\t\t\t$suiPicker = $suiPickerInput.closest(\n\t\t\t\t\t\t\t'.sui-colorpicker-wrap'\n\t\t\t\t\t\t),\n\t\t\t\t\t\t$suiPickerColor = $suiPicker.find(\n\t\t\t\t\t\t\t'.sui-colorpicker-value span[role=button]'\n\t\t\t\t\t\t),\n\t\t\t\t\t\t$suiPickerValue = $suiPicker.find(\n\t\t\t\t\t\t\t'.sui-colorpicker-value'\n\t\t\t\t\t\t),\n\t\t\t\t\t\t$wpPicker = $suiPickerInput.closest(\n\t\t\t\t\t\t\t'.wp-picker-container'\n\t\t\t\t\t\t),\n\t\t\t\t\t\t$wpPickerButton = $wpPicker.find( '.wp-color-result' );\n\t\t\t\t\t// Listen to color change\n\t\t\t\t\t$suiPickerInput.on( 'change', function() {\n\t\t\t\t\t\t// Change color preview\n\t\t\t\t\t\t$suiPickerColor.find( 'span' ).css( {\n\t\t\t\t\t\t\t'background-color': $wpPickerButton.css(\n\t\t\t\t\t\t\t\t'background-color'\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t} );\n\n\t\t\t\t\t\t// Change color value\n\t\t\t\t\t\t$suiPickerValue\n\t\t\t\t\t\t\t.find( 'input' )\n\t\t\t\t\t\t\t.val( $suiPickerInput.val() );\n\t\t\t\t\t} );\n\n\t\t\t\t\t// Open iris picker\n\t\t\t\t\t$suiPicker\n\t\t\t\t\t\t.find( '.sui-button, span[role=button]' )\n\t\t\t\t\t\t.on( 'click', function( e ) {\n\t\t\t\t\t\t\t$wpPickerButton.click();\n\n\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t} );\n\n\t\t\t\t\t// Clear color value\n\t\t\t\t\t$suiPickerValue\n\t\t\t\t\t\t.find( 'button' )\n\t\t\t\t\t\t.on( 'click', function( e ) {\n\t\t\t\t\t\t\t$wpPicker.find( '.wp-picker-clear' ).click();\n\t\t\t\t\t\t\t$suiPickerValue.find( 'input' ).val( '' );\n\t\t\t\t\t\t\t$suiPickerInput.val( '' ).trigger( 'change' );\n\t\t\t\t\t\t\t$suiPickerColor.find( 'span' ).css( {\n\t\t\t\t\t\t\t\t'background-color': '',\n\t\t\t\t\t\t\t} );\n\n\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t} );\n\t\t\t\t} );\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Purge page cache preloader database entries or asset optimization custom post type groups and orphaned data.\n\t\t *\n\t\t * @since 2.7.0\n\t\t *\n\t\t * @param {string} type What to purge. Accepts: cache, minify.\n\t\t */\n\t\tpurgeDb( type = 'cache' ) {\n\t\t\tconst button = document.getElementById( 'btn-' + type + '-purge' );\n\n\t\t\tif ( ! button ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tbutton.classList.add( 'sui-button-onload-text' );\n\n\t\t\tFetcher.common.call( 'wphb_advanced_purge_' + type ).then( () => {\n\t\t\t\tdocument.getElementById( 'count-' + type ).innerHTML = '0';\n\n\t\t\t\tbutton.classList.remove( 'sui-button-onload-text' );\n\n\t\t\t\tconst str =\n\t\t\t\t\t'successAdvPurge' +\n\t\t\t\t\ttype.charAt( 0 ).toUpperCase() +\n\t\t\t\t\ttype.slice( 1 );\n\n\t\t\t\tWPHB_Admin.notices.show( getString( str ) );\n\t\t\t} );\n\t\t},\n\t};\n} )( jQuery );\n","'use strict';\n/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n // eslint-disable-next-line no-useless-assignment -- avoid memory leak\n activeXDocument = null;\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","'use strict';\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw new $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value === POLYFILL ? true\n : value === NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\nvar navigator = globalThis.navigator;\nvar userAgent = navigator && navigator.userAgent;\n\nmodule.exports = userAgent ? String(userAgent) : '';\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","'use strict';\nmodule.exports = require('../../full/array/find-index');\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.1.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.test(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, [], argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","'use strict';\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","'use strict';\nvar fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7;\n});\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/* global WPHB_Admin */\n/* global SUI */\n\nimport Fetcher from '../utils/fetcher';\n\n( function( $ ) {\n\tWPHB_Admin.dashboard = {\n\t\tmodule: 'dashboard',\n\n\t\tinit() {\n\t\t\t$( '.wphb-performance-report-item' ).on( 'click', function() {\n\t\t\t\tconst url = $( this ).data( 'performance-url' );\n\t\t\t\tif ( url ) {\n\t\t\t\t\tlocation.href = url;\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tconst clearCacheModalButton = document.getElementById(\n\t\t\t\t'clear-cache-modal-button'\n\t\t\t);\n\t\t\tif ( clearCacheModalButton ) {\n\t\t\t\tclearCacheModalButton.addEventListener(\n\t\t\t\t\t'click',\n\t\t\t\t\tthis.clearCache\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Delay JS checkbox update status.\n\t\t\tconst dashboardDelay = $( '#view_delay_dashboard' );\n\t\t\tdashboardDelay.on( 'change', function() {\n\t\t\t\t// Update Delay JS status.\n\t\t\t\tconst delayValue = $( this ).is( ':checked' );\n\t\t\t\tFetcher.minification.toggleDelayJs( delayValue ).then( ( response ) => {\n\t\t\t\t\twindow.wphbMixPanel.trackDelayJSEvent( {\n\t\t\t\t\t\t'update_type': (response.delay_js) ? 'activate' : 'deactivate',\n\t\t\t\t\t\t'Location': 'dash_widget',\n\t\t\t\t\t\t'Timeout': response.delay_js_timeout,\n\t\t\t\t\t\t'Excluded Files': (response.delay_js_exclude) ? 'yes' : 'no',\n\t\t\t\t\t} );\n\t\t\t\t\t\n\t\t\t\t\tWPHB_Admin.notices.show();\n\t\t\t\t} );\n\t\t\t} );\n\n\t\t\t$( '#wphb-switch-page-cache-method' ).on( 'click', function( e ) {\n\t\t\t\tWPHB_Admin.caching.switchCacheMethod( e );\n\t\t\t} );\n\n\t\t\t// Critical CSS checkbox update status.\n\t\t\tconst dashboardCritical = $( '#critical_css_toggle' );\n\t\t\tdashboardCritical.on( 'change', function() {\n\t\t\t\t// Update Critical CSS status.\n\t\t\t\tconst criticalValue = $( this ).is( ':checked' );\n\t\t\t\tFetcher.minification.toggleCriticalCss( criticalValue ).then( ( response ) => {\n\t\t\t\t\twindow.wphbMixPanel.trackCriticalCSSEvent( {\n\t\t\t\t\t\tupdate_type: response.criticalCss,\n\t\t\t\t\t\tLocation: 'dash_widget',\n\t\t\t\t\t\tmode: response.mode,\n\t\t\t\t\t\tsettings_modified: '',\n\t\t\t\t\t\tsettings_default: '',\n\t\t\t\t\t} );\n\t\t\t\t\tWPHB_Admin.notices.show();\n\t\t\t\t} );\n\t\t\t} );\n\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * Clear selected cache.\n\t\t *\n\t\t * @since 2.7.1\n\t\t */\n\t\tclearCache() {\n\t\t\tthis.classList.toggle( 'sui-button-onload-text' );\n\n\t\t\tconst checkboxes = document.querySelectorAll(\n\t\t\t\t'input[type=\"checkbox\"]'\n\t\t\t);\n\n\t\t\tconst modules = [];\n\t\t\tfor ( let i = 0; i < checkboxes.length; i++ ) {\n\t\t\t\tif ( false === checkboxes[ i ].checked ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tmodules.push( checkboxes[ i ].dataset.module );\n\t\t\t}\n\n\t\t\tFetcher.common.clearCaches( modules ).then( ( response ) => {\n\t\t\t\tthis.classList.toggle( 'sui-button-onload-text' );\n\t\t\t\tSUI.closeModal();\n\t\t\t\tWPHB_Admin.notices.show( response.message );\n\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * Hide upgrade summary modal.\n\t\t *\n\t\t * @param {Object} element Target button that was clicked.\n\t\t */\n\t\t hideUpgradeSummary: ( element ) => {\n\t\t\twindow.SUI.closeModal();\n\t\t\tFetcher.common.call( 'wphb_hide_upgrade_summary' ).then( () => {\n\t\t\t\tconst trackAction = element.getAttribute( 'data-track-action' );\n\t\t\t\tif ( trackAction && trackAction !== '' ) {\n\t\t\t\t\twindow.wphbMixPanel.track('update_modal_displayed', {\n\t\t\t\t\t\t'Action': trackAction,\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tif ( element.hasAttribute( 'href' ) && element.href.indexOf( 'wpmudev.com' ) === -1 ) {\n\t\t\t\t\twindow.location.href = element.href;\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\treturn false;\n\t\t},\n\n\t\t/**\n\t\t * Track SMUSH Upsell events.\n\t\t *\n\t\t * @param {object} event Event.\n\t\t * @param {object} element Feature name.\n\t\t * @param {string} location Location.\n\t\t */\n\t\ttrackSmushUpsell: ( event, element, location ) => {\n\t\t\tevent.preventDefault();\n\t\t\tconst ctaLink = element.href.includes( 'https://wpmudev.com' ) ? element.href : 'na';\n\t\t\twindow.wphbMixPanel.trackHBUpsell( 'smush_upsell', location, 'cta_clicked', ctaLink, 'hb_smush_upsell' );\n\n\t\t\twindow.location.href = element.href;\n\t\t\treturn false;\n\t\t},\n\t};\n}( jQuery ) );\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar isObject = require('../internals/is-object');\n\nvar document = globalThis.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","'use strict';\n// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw new $TypeError(\"Can't convert object to primitive value\");\n};\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","'use strict';\nvar classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) === 'Array';\n};\n","/* global WPHB_Admin */\n/* global google */\n\n/**\n * Internal dependencies\n */\nimport { getLink } from '../utils/helpers';\n\n( function( $ ) {\n\tWPHB_Admin.uptime = {\n\t\tmodule: 'uptime',\n\t\t$dataRangeSelector: null,\n\t\tchartData: null,\n\t\tdowntimeChartData: null,\n\t\ttimer: null,\n\t\t$spinner: null,\n\t\tdataRange: null,\n\t\tdateFormat: 'MMM d',\n\t\tinit() {\n\t\t\tthis.$spinner = $( '.spinner' );\n\t\t\tthis.$dataRangeSelector = $( '#wphb-uptime-data-range' );\n\t\t\tthis.chartData = $( '#uptime-chart-json' ).val();\n\t\t\tthis.downtimeChartData = $( '#downtime-chart-json' ).val();\n\t\t\tthis.$disableUptime = $( '#wphb-disable-uptime' );\n\t\t\tthis.dataRange = this.getUrlParameter( 'data-range' );\n\n\t\t\tthis.$dataRangeSelector.on( 'change', function() {\n\t\t\t\twindow.location.href = $( this )\n\t\t\t\t\t.find( ':selected' )\n\t\t\t\t\t.data( 'url' );\n\t\t\t} );\n\n\t\t\tconst self = this;\n\n\t\t\tif ( 'undefined' !== typeof google ) {\n\t\t\t\tgoogle.charts.load( 'current', {\n\t\t\t\t\tpackages: [ 'corechart', 'timeline' ],\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tthis.$disableUptime.on( 'click', function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\tself.$spinner.css( 'visibility', 'visible' );\n\t\t\t\tconst value = $( this ).is( ':checked' );\n\t\t\t\tif ( value && self.timer ) {\n\t\t\t\t\tclearTimeout( self.timer );\n\t\t\t\t\tself.$spinner.css( 'visibility', 'hidden' );\n\t\t\t\t} else {\n\t\t\t\t\t// you have 3 seconds to change your mind\n\t\t\t\t\tself.timer = setTimeout( function() {\n\t\t\t\t\t\tlocation.href = getLink( 'disableUptime' );\n\t\t\t\t\t}, 3000 );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t/* If data range has been selected change the tab urls to retain the chosen range */\n\t\t\tif ( undefined !== this.dataRange ) {\n\t\t\t\t$( '.wrap-wphb-uptime .wphb-tab a' ).each( function() {\n\t\t\t\t\tthis.href += '&data-range=' + self.dataRange;\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tif ( 'day' === this.dataRange ) {\n\t\t\t\tthis.dateFormat = 'h:mma';\n\t\t\t}\n\n\t\t\tif ( null !== document.getElementById( 'uptime-chart' ) ) {\n\t\t\t\tgoogle.charts.setOnLoadCallback( () =>\n\t\t\t\t\tthis.drawResponseTimeChart()\n\t\t\t\t);\n\t\t\t}\n\t\t\tif ( null !== document.getElementById( 'downtime-chart' ) ) {\n\t\t\t\tgoogle.charts.setOnLoadCallback( () =>\n\t\t\t\t\tthis.drawDowntimeChart()\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t/* Re-check Uptime status */\n\t\t\t$( '#uptime-re-check-status' ).on( 'click', function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\tlocation.reload();\n\t\t\t} );\n\t\t},\n\n\t\tdrawResponseTimeChart() {\n\t\t\tconst data = new google.visualization.DataTable();\n\t\t\tdata.addColumn( 'datetime', 'Day' );\n\t\t\tdata.addColumn( 'number', 'Response Time (ms)' );\n\t\t\tdata.addColumn( {\n\t\t\t\ttype: 'string',\n\t\t\t\trole: 'tooltip',\n\t\t\t\tp: { html: true },\n\t\t\t} );\n\t\t\tconst chartArray = JSON.parse( this.chartData );\n\t\t\tfor ( let i = 0; i < chartArray.length; i++ ) {\n\t\t\t\tchartArray[ i ][ 0 ] = new Date( chartArray[ i ][ 0 ] );\n\t\t\t\tchartArray[ i ][ 1 ] = Math.round( chartArray[ i ][ 1 ] );\n\t\t\t\tchartArray[ i ][ 2 ] = this.createUptimeTooltip(\n\t\t\t\t\tchartArray[ i ][ 0 ],\n\t\t\t\t\tchartArray[ i ][ 1 ]\n\t\t\t\t);\n\n\t\t\t\t/* brings the graph below the x axis */\n\t\t\t\tif ( Math.round( chartArray[ i ][ 1 ] ) === 0 ) {\n\t\t\t\t\tchartArray[ i ][ 1 ] = -100;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tdata.addRows( chartArray );\n\n\t\t\tconst options = {\n\t\t\t\tchartArea: {\n\t\t\t\t\tleft: 80,\n\t\t\t\t\ttop: 20,\n\t\t\t\t\twidth: '90%',\n\t\t\t\t\theight: '90%',\n\t\t\t\t},\n\t\t\t\tcolors: [ '#24ADE5' ],\n\t\t\t\tcurveType: 'function',\n\t\t\t\t/*interpolateNulls: true,*/\n\t\t\t\tlegend: { position: 'none' },\n\t\t\t\tvAxis: {\n\t\t\t\t\tformat: '#### ms',\n\t\t\t\t\tgridlines: { count: 5 },\n\t\t\t\t\tminorGridlines: { count: 0 },\n\t\t\t\t\tviewWindow: { min: 0 } /* don't display negative values */,\n\t\t\t\t},\n\t\t\t\thAxis: {\n\t\t\t\t\tformat: this.dateFormat,\n\t\t\t\t\tminorGridlines: { count: 0 },\n\t\t\t\t},\n\t\t\t\ttooltip: { isHtml: true },\n\t\t\t\tseries: {\n\t\t\t\t\t0: { axis: 'Resp' },\n\t\t\t\t},\n\t\t\t\taxes: {\n\t\t\t\t\ty: {\n\t\t\t\t\t\tResp: { label: 'Response Time (ms)' },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\n\t\t\tconst chart = new google.visualization.AreaChart(\n\t\t\t\tdocument.getElementById( 'uptime-chart' )\n\t\t\t);\n\t\t\tchart.draw( data, options );\n\n\t\t\t$( window ).resize( function() {\n\t\t\t\tchart.draw( data, options );\n\t\t\t} );\n\t\t},\n\n\t\tdrawDowntimeChart() {\n\t\t\tconst container = document.getElementById( 'downtime-chart' );\n\t\t\tconst chart = new google.visualization.Timeline( container );\n\t\t\tconst dataTable = new google.visualization.DataTable();\n\t\t\tdataTable.addColumn( { type: 'string' } );\n\t\t\tdataTable.addColumn( { type: 'string', id: 'Status' } );\n\t\t\tdataTable.addColumn( {\n\t\t\t\ttype: 'string',\n\t\t\t\trole: 'tooltip',\n\t\t\t\tp: { html: true },\n\t\t\t} );\n\t\t\tdataTable.addColumn( { type: 'datetime', id: 'Start Period' } );\n\t\t\tdataTable.addColumn( { type: 'datetime', id: 'End Period' } );\n\t\t\tconst chartArray = JSON.parse( this.downtimeChartData );\n\t\t\tfor ( let i = 0; i < chartArray.length; i++ ) {\n\t\t\t\tchartArray[ i ][ 3 ] = new Date( chartArray[ i ][ 3 ] );\n\t\t\t\tchartArray[ i ][ 4 ] = new Date( chartArray[ i ][ 4 ] );\n\t\t\t}\n\t\t\tdataTable.addRows( chartArray );\n\t\t\tconst colors = [];\n\t\t\tconst colorMap = {\n\t\t\t\t// should contain a map of category -> color for every category\n\t\t\t\tDown: '#FF6D6D',\n\t\t\t\tUnknown: '#F8F8F8',\n\t\t\t\tUp: '#D1F1EA',\n\t\t\t};\n\t\t\tfor ( let i = 0; i < dataTable.getNumberOfRows(); i++ ) {\n\t\t\t\tcolors.push( colorMap[ dataTable.getValue( i, 1 ) ] );\n\t\t\t}\n\t\t\tconst options = {\n\t\t\t\ttimeline: {\n\t\t\t\t\tshowBarLabels: false,\n\t\t\t\t\tshowRowLabels: false,\n\t\t\t\t\tbarLabelStyle: {\n\t\t\t\t\t\tfontSize: 33,\n\t\t\t\t\t},\n\t\t\t\t\tavoidOverlappingGridLines: false,\n\t\t\t\t},\n\t\t\t\thAxis: {\n\t\t\t\t\tformat: this.dateFormat,\n\t\t\t\t},\n\t\t\t\tcolors,\n\t\t\t\theight: 170,\n\t\t\t};\n\t\t\tconst origColors = [];\n\t\t\tgoogle.visualization.events.addListener(\n\t\t\t\tchart,\n\t\t\t\t'ready',\n\t\t\t\tfunction() {\n\t\t\t\t\tconst bars = container.getElementsByTagName( 'rect' );\n\t\t\t\t\tArray.prototype.forEach.call( bars, function( bar ) {\n\t\t\t\t\t\tif ( parseFloat( bar.getAttribute( 'x' ) ) > 0 ) {\n\t\t\t\t\t\t\torigColors.push( bar.getAttribute( 'fill' ) );\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\tgoogle.visualization.events.addListener(\n\t\t\t\tchart,\n\t\t\t\t'onmouseover',\n\t\t\t\tfunction( e ) {\n\t\t\t\t\t// set original color\n\t\t\t\t\tconst bars = container.getElementsByTagName( 'rect' );\n\t\t\t\t\tbars[ bars.length - 1 ].setAttribute(\n\t\t\t\t\t\t'fill',\n\t\t\t\t\t\torigColors[ e.row ]\n\t\t\t\t\t);\n\t\t\t\t\tconst width = bars[ bars.length - 1 ].getAttribute(\n\t\t\t\t\t\t'width'\n\t\t\t\t\t);\n\t\t\t\t\tif ( width > 3 ) {\n\t\t\t\t\t\tbars[ bars.length - 1 ].setAttribute(\n\t\t\t\t\t\t\t'width',\n\t\t\t\t\t\t\twidth - 1 + 'px'\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\tchart.draw( dataTable, options );\n\n\t\t\t$( window ).resize( function() {\n\t\t\t\tchart.draw( dataTable, options );\n\t\t\t} );\n\t\t},\n\n\t\tcreateUptimeTooltip( date, responseTime ) {\n\t\t\tconst formattedDate = this.formatTooltipDate( date );\n\t\t\treturn (\n\t\t\t\t'<span class=\"response-time-tooltip\">' +\n\t\t\t\tresponseTime +\n\t\t\t\t'ms</span>' +\n\t\t\t\t'<span class=\"uptime-date-tooltip\">' +\n\t\t\t\tformattedDate +\n\t\t\t\t'</span>'\n\t\t\t);\n\t\t},\n\n\t\tformatTooltipDate( date ) {\n\t\t\tconst monthNames = [\n\t\t\t\t'Jan',\n\t\t\t\t'Feb',\n\t\t\t\t'Mar',\n\t\t\t\t'Apr',\n\t\t\t\t'May',\n\t\t\t\t'Jun',\n\t\t\t\t'Jul',\n\t\t\t\t'Aug',\n\t\t\t\t'Sep',\n\t\t\t\t'Oct',\n\t\t\t\t'Nov',\n\t\t\t\t'Dec',\n\t\t\t];\n\n\t\t\tconst day = date.getDate();\n\t\t\tconst monthIndex = date.getMonth();\n\t\t\tconst hh = date.getHours();\n\t\t\tlet h = hh;\n\t\t\tconst minutes =\n\t\t\t\t( date.getMinutes() < 10 ? '0' : '' ) + date.getMinutes();\n\t\t\tlet dd = 'AM';\n\t\t\tif ( h >= 12 ) {\n\t\t\t\th = hh - 12;\n\t\t\t\tdd = 'PM';\n\t\t\t}\n\t\t\tif ( h === 0 ) {\n\t\t\t\th = 12;\n\t\t\t}\n\t\t\treturn (\n\t\t\t\tmonthNames[ monthIndex ] +\n\t\t\t\t' ' +\n\t\t\t\tday +\n\t\t\t\t' @ ' +\n\t\t\t\th +\n\t\t\t\t':' +\n\t\t\t\tminutes +\n\t\t\t\tdd\n\t\t\t);\n\t\t},\n\n\t\tgetUrlParameter: function getUrlParameter( sParam ) {\n\t\t\tconst sPageURL = decodeURIComponent(\n\t\t\t\t\twindow.location.search.substring( 1 )\n\t\t\t\t),\n\t\t\t\tsURLVariables = sPageURL.split( '&' );\n\t\t\tlet sParameterName, i;\n\n\t\t\tfor ( i = 0; i < sURLVariables.length; i++ ) {\n\t\t\t\tsParameterName = sURLVariables[ i ].split( '=' );\n\n\t\t\t\tif ( sParameterName[ 0 ] === sParam ) {\n\t\t\t\t\treturn sParameterName[ 1 ] === undefined\n\t\t\t\t\t\t? true\n\t\t\t\t\t\t: sParameterName[ 1 ];\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t};\n} )( jQuery );\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/environment-v8-version');\nvar fails = require('../internals/fails');\nvar globalThis = require('../internals/global-this');\n\nvar $String = globalThis.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol('symbol detection');\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","'use strict';\nvar check = function (it) {\n return it && it.Math === Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n check(typeof this == 'object' && this) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","'use strict';\nvar parent = require('../../actual/array/find-index');\n\nmodule.exports = parent;\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","/* global wphb */\n\n/**\n * Strings internationalization\n *\n * @param {string} str\n * @return {*|string} String\n */\nexport const getString = ( str ) => {\n\treturn wphb.strings[ str ] || '';\n};\n\n/**\n * Get a link to a HB screen\n *\n * @param {string} screen Screen slug\n * @return {string} URL\n */\nexport const getLink = ( screen ) => {\n\treturn wphb.links[ screen ] || '';\n};\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","/**\n * Scanner class.\n *\n * @since 2.7.0\n */\nclass Scanner {\n\tconstructor( totalSteps, currentStep ) {\n\t\tthis.totalSteps = parseInt( totalSteps );\n\t\tthis.currentStep = parseInt( currentStep );\n\t\tthis.cancelling = false;\n\t}\n\n\t/**\n\t * Start the scan.\n\t */\n\tstart() {\n\t\tthis.updateProgressBar( this.getProgress() );\n\n\t\tconst remainingSteps = this.totalSteps - this.currentStep;\n\n\t\tif ( this.currentStep !== 0 ) {\n\t\t\t// Scan already started.\n\t\t\tthis.step( remainingSteps );\n\t\t} else {\n\t\t\tthis.onStart().then( () => {\n\t\t\t\tthis.step( remainingSteps );\n\t\t\t} );\n\t\t}\n\t}\n\n\t/**\n\t * Cancel scan.\n\t */\n\tcancel() {\n\t\tthis.cancelling = true;\n\t\tthis.updateProgressBar( 0, true );\n\t}\n\n\t/**\n\t * Get scan progress.\n\t *\n\t * @return {number} Progress 0-99.\n\t */\n\tgetProgress() {\n\t\tif ( this.cancelling ) {\n\t\t\treturn 0;\n\t\t}\n\t\tconst remainingSteps = this.totalSteps - this.currentStep;\n\t\treturn Math.min(\n\t\t\tMath.round(\n\t\t\t\t( parseInt( this.totalSteps - remainingSteps ) * 100 ) /\n\t\t\t\t\tthis.totalSteps\n\t\t\t),\n\t\t\t99\n\t\t);\n\t}\n\n\t/**\n\t * Update progress bar.\n\t *\n\t * @param {number} progress Progress percentage.\n\t * @param {boolean} cancel Cancel the scan.\n\t */\n\tupdateProgressBar( progress, cancel = false ) {\n\t\tif ( progress > 100 ) {\n\t\t\tprogress = 100;\n\t\t}\n\n\t\t// Update progress bar.\n\t\tdocument.querySelector(\n\t\t\t'.sui-progress-block .sui-progress-text span'\n\t\t).innerHTML = progress + '%';\n\n\t\tdocument.querySelector(\n\t\t\t'.sui-progress-block .sui-progress-bar span'\n\t\t).style.width = progress + '%';\n\n\t\tif ( progress >= 90 ) {\n\t\t\tdocument.querySelector(\n\t\t\t\t'.sui-progress-state .sui-progress-state-text'\n\t\t\t).innerHTML = 'Finalizing...';\n\t\t}\n\n\t\tif ( cancel ) {\n\t\t\tdocument.querySelector(\n\t\t\t\t'.sui-progress-state .sui-progress-state-text'\n\t\t\t).innerHTML = 'Cancelling...';\n\t\t}\n\t}\n\n\t/**\n\t * Execute a scan step.\n\t *\n\t * @param {number} remainingSteps\n\t */\n\tstep( remainingSteps ) {\n\t\tif ( remainingSteps >= 0 ) {\n\t\t\tthis.currentStep = this.totalSteps - remainingSteps;\n\t\t}\n\t}\n\n\t/**\n\t * On start function.\n\t */\n\tonStart() {\n\t\tthrow new Error( 'onStart() must be implemented in child class' );\n\t}\n\n\t/**\n\t * On finish function.\n\t */\n\tonFinish() {\n\t\tthis.updateProgressBar( 100 );\n\t}\n}\n\nexport default Scanner;\n","'use strict';\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","'use strict';\nvar store = require('../internals/shared-store');\n\nmodule.exports = function (key, value) {\n return store[key] || (store[key] = value || {});\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a !== 7;\n});\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","/* global WPHB_Admin */\n/* global wphbMixPanel */\n\nimport Fetcher from '../utils/fetcher';\nimport { getLink } from '../utils/helpers';\n\n( function( $ ) {\n\t'use strict';\n\n\tWPHB_Admin.settings = {\n\t\tmodule: 'settings',\n\n\t\tinit() {\n\t\t\tconst body = $( 'body' );\n\t\t\tconst wrap = body.find( '.wrap-wphb-settings' );\n\n\t\t\t// Save settings\n\t\t\t$( '.sui-box-footer' ).on( 'click', 'button.sui-button-blue', function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\tconst form_data = body.find( '.settings-frm' ).serialize();\n\n\t\t\t\tconst contrastDiv = $( '#color_accessible' );\n\t\t\t\tif ( contrastDiv.length ) {\n\t\t\t\t\tif ( contrastDiv.is( ':checked' ) ) {\n\t\t\t\t\t\twrap.addClass( 'sui-color-accessible' );\n\t\t\t\t\t} else {\n\t\t\t\t\t\twrap.removeClass( 'sui-color-accessible' );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Opt in to tracking.\n\t\t\t\t *\n\t\t\t\t * @since 2.5.0\n\t\t\t\t */\n\t\t\t\tconst tracking = document.getElementById( 'tracking' );\n\n\t\t\t\tFetcher.settings.saveSettings( form_data ).then( ( response ) => {\n\t\t\t\t\tWPHB_Admin.notices.show();\n\t\t\t\t} );\n\n\t\t\t\treturn false;\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Parse remove settings change.\n\t\t\t */\n\t\t\t$( 'input[name=remove_settings]' ).on( 'change', function( e ) {\n\t\t\t\tconst otherClass =\n\t\t\t\t\t'remove_settings-false' === e.target.id\n\t\t\t\t\t\t? 'remove_settings-true'\n\t\t\t\t\t\t: 'remove_settings-false';\n\t\t\t\te.target.parentNode.classList.add( 'active' );\n\t\t\t\tdocument\n\t\t\t\t\t.getElementById( otherClass )\n\t\t\t\t\t.parentNode.classList.remove( 'active' );\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Parse remove data change.\n\t\t\t */\n\t\t\t$( 'input[name=remove_data]' ).on( 'change', function( e ) {\n\t\t\t\tconst otherClass =\n\t\t\t\t\t'remove_data-false' === e.target.id\n\t\t\t\t\t\t? 'remove_data-true'\n\t\t\t\t\t\t: 'remove_data-false';\n\t\t\t\te.target.parentNode.classList.add( 'active' );\n\t\t\t\tdocument\n\t\t\t\t\t.getElementById( otherClass )\n\t\t\t\t\t.parentNode.classList.remove( 'active' );\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Handle import file change.\n\t\t\t *\n\t\t\t * @since 2.6.0\n\t\t\t */\n\t\t\t$( '#wphb-import-file-input' ).on( 'change', function() {\n\t\t\t\tconst elm = $( this )[ 0 ];\n\t\t\t\tif ( elm.files.length ) {\n\t\t\t\t\tconst file = elm.files[ 0 ];\n\t\t\t\t\t$( '#wphb-import-file-name' ).text( file.name );\n\t\t\t\t\t$( '#wphb-import-upload-wrap' ).addClass( 'sui-has_file' );\n\t\t\t\t\t$( '#wphb-import-btn' ).removeAttr( 'disabled' );\n\t\t\t\t} else {\n\t\t\t\t\t$( '#wphb-import-file-name' ).text( '' );\n\t\t\t\t\t$( '#wphb-import-upload-wrap' ).removeClass(\n\t\t\t\t\t\t'sui-has_file'\n\t\t\t\t\t);\n\t\t\t\t\t$( '#wphb-import-btn' ).attr( 'disabled', 'disabled' );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Handle import file remove button.\n\t\t\t *\n\t\t\t * @since 2.6.0\n\t\t\t */\n\t\t\t$( '#wphb-import-remove-file' ).on( 'click', function() {\n\t\t\t\t$( '#wphb-import-file-input' ).val( '' ).trigger( 'change' );\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Handle import button click.\n\t\t\t *\n\t\t\t * @since 2.6.0\n\t\t\t */\n\t\t\t$( '#wphb-begin-import-btn' ).on( 'click', function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\t$( this )\n\t\t\t\t\t.attr( 'disabled', 'disabled' )\n\t\t\t\t\t.addClass( 'sui-button-onload-text' );\n\n\t\t\t\tconst removeFileBtn = $( '#wphb-import-remove-file' );\n\n\t\t\t\tremoveFileBtn.attr( 'disabled', 'disabled' );\n\n\t\t\t\tconst fileEl = $( '#wphb-import-file-input' )[ 0 ];\n\t\t\t\tif ( 0 === fileEl.files.length ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tconst formData = new FormData();\n\t\t\t\tformData.append(\n\t\t\t\t\t'settings_json_file',\n\t\t\t\t\tfileEl.files[ 0 ],\n\t\t\t\t\tfileEl.files[ 0 ].name\n\t\t\t\t);\n\n\t\t\t\tFetcher.settings\n\t\t\t\t\t.importSettings( formData )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\tWPHB_Admin.notices.show( response.message );\n\t\t\t\t\t\tremoveFileBtn.trigger( 'click' );\n\t\t\t\t\t} )\n\t\t\t\t\t.catch( ( error ) => {\n\t\t\t\t\t\tWPHB_Admin.notices.show( error, 'error' );\n\t\t\t\t\t} )\n\t\t\t\t\t.finally( () => {\n\t\t\t\t\t\t$( '#wphb-begin-import-btn' )\n\t\t\t\t\t\t\t.removeAttr( 'disabled' )\n\t\t\t\t\t\t\t.removeClass( 'sui-button-onload-text' );\n\t\t\t\t\t\tremoveFileBtn.removeAttr( 'disabled' );\n\t\t\t\t\t\twindow.SUI.closeModal();\n\t\t\t\t\t} );\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Handle export button click.\n\t\t\t *\n\t\t\t * @since 2.6.0\n\t\t\t */\n\t\t\t$( '#wphb-export-btn' ).on( 'click', function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\tFetcher.settings.exportSettings();\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Show/hide options for admin bar cache control.\n\t\t\t *\n\t\t\t * @since 3.0.1\n\t\t\t */\n\t\t\t$( 'input[id=\"control\"]' ).on( 'change', function() {\n\t\t\t\t$( '.cache-control-options' ).toggle();\n\t\t\t} );\n\n\t\t\t$( '#cancel-disconnect' ).on( 'click', function() {\n\t\t\t\tWPHB_Admin.settings.disconnectEvents( 'cancel' );\n\t\t\t} );\n\t\t\t$( '#wphb-disconnect-modal-wrapper' ).on( 'click', function( e ) {\n\t\t\t\tif ( e.target.classList?.contains( 'sui-modal-overlay' ) ) {\n\t\t\t\t\tWPHB_Admin.settings.disconnectEvents( 'skip' );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * Parse confirm settings reset from the modal.\n\t\t *\n\t\t * @since 2.0.0\n\t\t */\n\t\tconfirmReset: () => {\n\t\t\tFetcher.common.call( 'wphb_reset_settings' ).then( () => {\n\t\t\t\tFetcher.common.call( 'wphb_redis_disconnect' );\n\t\t\t\twindow.location.href = getLink( 'resetSettings' );\n\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * Track disconnect events.\n\t\t *\n\t\t * @param {string} actionType The action type.\n\t\t * @since 3.18.0\n\t\t */\n\t\tdisconnectEvents: ( actionType = 'submit' ) => {\n\t\t\tif ( window.wphbMixPanel ) {\n\t\t\t\tif ( 'submit' !== actionType && ! wphb.mixpanel.enabled ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst reasonInput = document.getElementById(\n\t\t\t\t\t'wphb-disconnect-reason-input'\n\t\t\t\t);\n\t\t\t\tconst reason = reasonInput && reasonInput.value ? reasonInput.value : 'na';\n\n\t\t\t\twphbMixPanel.track(\n\t\t\t\t\t'Disconnect Site',\n\t\t\t\t\t{\n\t\t\t\t\t\t'Modal Action': actionType,\n\t\t\t\t\t\tMessage: reason,\n\t\t\t\t\t\t'Tracking Status': ( 'undefined' === typeof wphb.mixpanel || wphb.mixpanel.enabled ) ? 'opted_in' : 'opted_out',\n\t\t\t\t\t},\n\t\t\t\t\t( 'submit' === actionType ) ? true : false,\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Parse confirm disconnect site from the modal.\n\t\t *\n\t\t * @param {HTMLElement} btn The button that triggered the action.\n\t\t * @since 3.15.0\n\t\t */\n\t\tconfirmDisconnectSite: ( btn ) => {\n\t\t\tif ( btn ) {\n\t\t\t\tbtn.classList.add( 'sui-button-onload-text' );\n\t\t\t}\n\n\t\t\tWPHB_Admin.settings.disconnectEvents();\n\t\t\tFetcher.common.call( 'wphb_disconnect_site' ).then( ( response ) => {\n\t\t\t\tWPHB_Admin.notices.show( response.message );\n\t\t\t\tsetTimeout( () => {\n\t\t\t\t\twindow.location.reload();\n\t\t\t\t}, 2000 );\n\t\t\t} );\n\t\t},\n\t};\n}( jQuery ) );\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","import Scanner from '../utils/scanner';\nimport Fetcher from '../utils/fetcher';\nimport { getString, getLink } from '../utils/helpers';\n\nclass PerfScanner extends Scanner {\n\t/**\n\t * Execute a scan step recursively.\n\t *\n\t * @param {number} remainingSteps\n\t */\n\tstep( remainingSteps ) {\n\t\tsuper.step( remainingSteps );\n\n\t\tthis.currentStep++;\n\n\t\t// Update progress bar.\n\t\tthis.updateProgressBar( this.getProgress() );\n\n\t\tFetcher.common\n\t\t\t.call( 'wphb_performance_run_test' )\n\t\t\t.then( ( response ) => {\n\t\t\t\tif ( ! response.finished ) {\n\t\t\t\t\t// Try again 3 seconds later\n\t\t\t\t\twindow.setTimeout( () => {\n\t\t\t\t\t\tthis.step( this.totalSteps - this.currentStep );\n\t\t\t\t\t}, 3000 );\n\t\t\t\t} else {\n\t\t\t\t\tthis.onFinish( response );\n\t\t\t\t}\n\t\t\t} );\n\t}\n\n\tupdateProgressBar( progress, cancel = false ) {\n\t\t// Test has been initialized.\n\t\tif ( 0 === progress ) {\n\t\t\tthis.currentStep = 2;\n\n\t\t\tthis.timer = window.setInterval( () => {\n\t\t\t\tthis.currentStep += 1;\n\t\t\t\tthis.updateProgressBar( this.getProgress() );\n\t\t\t}, 100 );\n\t\t}\n\n\t\tconst progressStatus = document.querySelector(\n\t\t\t'.wphb-performance-scan-modal .sui-progress-state .sui-progress-state-text'\n\t\t);\n\n\t\tif ( 3 === progress ) {\n\t\t\tprogressStatus.innerHTML = getString( 'scanRunning' );\n\t\t}\n\n\t\tif ( 73 === progress ) {\n\t\t\tclearInterval( this.timer );\n\t\t\tthis.timer = false;\n\n\t\t\tthis.timer = window.setInterval( () => {\n\t\t\t\tthis.currentStep += 1;\n\t\t\t\tthis.updateProgressBar( this.getProgress() );\n\t\t\t}, 1000 );\n\n\t\t\tprogressStatus.innerHTML = getString( 'scanAnalyzing' );\n\t\t}\n\n\t\tif ( 99 === progress ) {\n\t\t\tprogressStatus.innerHTML = getString( 'scanWaiting' );\n\t\t\tclearInterval( this.timer );\n\t\t\tthis.timer = false;\n\t\t}\n\n\t\tdocument.querySelector(\n\t\t\t'.wphb-performance-scan-modal .sui-progress-block .sui-progress-text span'\n\t\t).innerHTML = progress + '%';\n\n\t\tdocument.querySelector(\n\t\t\t'.wphb-performance-scan-modal .sui-progress-block .sui-progress-bar span'\n\t\t).style.width = progress + '%';\n\n\t\tif ( 100 === progress ) {\n\t\t\tconst loader = document.querySelector(\n\t\t\t\t'.wphb-performance-scan-modal .sui-progress-block span.sui-icon-loader'\n\t\t\t);\n\t\t\tloader.classList.remove( 'sui-icon-loader', 'sui-loading' );\n\t\t\tloader.classList.add( 'sui-icon-check' );\n\n\t\t\tprogressStatus.innerHTML = getString( 'scanComplete' );\n\t\t\tclearInterval( this.timer );\n\t\t\tthis.timer = false;\n\t\t}\n\t}\n\n\tonStart() {\n\t\treturn Promise.resolve();\n\t}\n\n\tretrieveValueFromObject( obj, prop ) {\n\t\treturn obj && typeof obj[prop] !== 'undefined' ? obj[prop] : 'N/A';\n\t}\n\n\tonFinish( response ) {\n\t\tsuper.onFinish();\n\n\t\twindow.wphbMixPanel.track( 'plugin_scan_finished', {\n\t\t\tscore_mobile: response.mobileScore,\n\t\t\tscore_desktop: response.desktopScore,\n\t\t\tactive_features: response.HBSmushFeatures,\n\t\t\t'AO Status': response.aoStatus,\n\t\t\tcls_desktop: this.retrieveValueFromObject( response.hbPerformanceMetric, 'cls_desktop' ),\n\t\t\tcls_mobile: this.retrieveValueFromObject( response.hbPerformanceMetric, 'cls_mobile' ),\n\t\t\tfcp_desktop: this.retrieveValueFromObject( response.hbPerformanceMetric, 'fcp_desktop' ),\n\t\t\tfcp_mobile: this.retrieveValueFromObject( response.hbPerformanceMetric, 'fcp_mobile' ),\n\t\t\tinp_desktop: this.retrieveValueFromObject( response.hbPerformanceMetric, 'inp_desktop' ),\n\t\t\tinp_mobile: this.retrieveValueFromObject( response.hbPerformanceMetric, 'inp_mobile' ),\n\t\t\tlcp_desktop: this.retrieveValueFromObject( response.hbPerformanceMetric, 'lcp_desktop' ),\n\t\t\tlcp_mobile: this.retrieveValueFromObject( response.hbPerformanceMetric, 'lcp_mobile' ),\n\t\t\tspeed_desktop: this.retrieveValueFromObject( response.hbPerformanceMetric, 'speed_desktop' ),\n\t\t\tspeed_mobile: this.retrieveValueFromObject( response.hbPerformanceMetric, 'speed_mobile' ),\n\t\t\ttbt_desktop: this.retrieveValueFromObject( response.hbPerformanceMetric, 'tbt_desktop' ),\n\t\t\ttbt_mobile: this.retrieveValueFromObject( response.hbPerformanceMetric, 'tbt_mobile' ),\n\t\t\tttfb_desktop: this.retrieveValueFromObject( response.hbPerformanceMetric, 'ttfb_desktop' ),\n\t\t\tttfb_mobile: this.retrieveValueFromObject( response.hbPerformanceMetric, 'ttfb_mobile' ),\n\t\t\tlcp_ttfb_desktop: response.getLCPSubmetrics.lcp_ttfb.desktop,\n\t\t\tlcp_ttfb_mobile: response.getLCPSubmetrics.lcp_ttfb.desktop,\n\t\t\tlcp_load_delay_desktop: response.getLCPSubmetrics.lcp_load_delay.desktop,\n\t\t\tlcp_load_delay_mobile: response.getLCPSubmetrics.lcp_load_delay.mobile,\n\t\t\tlcp_render_delay_desktop: response.getLCPSubmetrics.lcp_render_delay.desktop,\n\t\t\tlcp_render_delay_mobile: response.getLCPSubmetrics.lcp_render_delay.mobile,\n\t\t\tlcp_load_time_desktop: response.getLCPSubmetrics.lcp_load_time.desktop,\n\t\t\tlcp_load_time_mobile: response.getLCPSubmetrics.lcp_load_time.mobile,\n\t\t\tlcp_element_desktop: response.getLCPSubmetrics.lcp_element.desktop,\n\t\t\tlcp_element_mobile: response.getLCPSubmetrics.lcp_element.mobile,\n\t\t\taudits_opportunities_desktop: response.getAudits.opportunities.desktop,\n\t\t\taudits_opportunities_mobile: response.getAudits.opportunities.mobile,\n\t\t\taudits_diagnostics_desktop: response.getAudits.diagnostics.desktop,\n\t\t\taudits_diagnostics_mobile: response.getAudits.diagnostics.mobile,\n\t\t\taudits_passed_desktop: response.getAudits.passed.desktop,\n\t\t\taudits_passed_mobile: response.getAudits.passed.mobile,\n\t\t\tcore_web_vitals_mobile: response.coreWebVitalsMobile,\n\t\t\tcore_web_vitals_desktop: response.coreWebVitalsDesktop,\n\t\t\tautoloader_health: response.autoloaderHealth,\n\t\t\tautoloader_size: response.autoloaderSize,\n\t\t} );\n\n\t\tif ( '' !== response.hasError ) {\n\t\t\twindow.wphbMixPanel.track( 'performance_test_error', {\n\t\t\t\t'Error Message': response.hasError,\n\t\t\t} );\n\t\t}\n\n\t\t// Give a second for the report to be saved to the db.\n\t\twindow.setTimeout( function() {\n\t\t\twindow.location = getLink( 'audits' );\n\t\t}, 2000 );\n\t}\n}\n\nexport default PerfScanner;\n","/* global WPHB_Admin */\n/* global wphbHistoricFieldData */\n/* global google */\n\nimport Fetcher from '../utils/fetcher';\nimport PerfScanner from '../scanners/PerfScanner';\n\n( function( $ ) {\n\t'use strict';\n\tWPHB_Admin.performance = {\n\t\tmodule: 'performance',\n\t\titeration: 0,\n\t\tprogress: 0,\n\t\tpressedKeys: [],\n\t\tkey_timer: false,\n\n\t\tinit() {\n\t\t\tconst self = this;\n\n\t\t\tthis.wphbSetInterval();\n\n\t\t\t// Init scanner.\n\t\t\tthis.scanner = new PerfScanner( 100, 0 );\n\n\t\t\t// Run performance test from empty report meta box.\n\t\t\t$( '#run-performance-test' ).on( 'click', function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\tself.startPerformanceScan();\n\t\t\t} );\n\n\t\t\t// If a hash is present in URL, let's open the rule extra content\n\t\t\tconst hash = window.location.hash;\n\t\t\tif ( hash ) {\n\t\t\t\tconst row = $( hash );\n\t\t\t\tif ( row.length && ! row.hasClass( 'sui-box' ) ) {\n\t\t\t\t\trow.find( '.sui-accordion-open-indicator' ).trigger(\n\t\t\t\t\t\t'click'\n\t\t\t\t\t);\n\t\t\t\t\t$( 'html, body' ).animate(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tscrollTop: row.offset().top,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t1000\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Save performance test settings\n\t\t\t$( 'body' ).on( 'submit', '.settings-frm', function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\tconst formData = $( this ).serialize();\n\n\t\t\t\tFetcher.performance\n\t\t\t\t\t.savePerformanceTestSettings( formData )\n\t\t\t\t\t.then( () => WPHB_Admin.notices.show() );\n\t\t\t\treturn false;\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Init Google charts on Historic Field Data meta box page.\n\t\t\t *\n\t\t\t * @since 2.0.0\n\t\t\t */\n\t\t\tif (\n\t\t\t\t'undefined' !== typeof google &&\n\t\t\t\t'undefined' !== typeof wphbHistoricFieldData\n\t\t\t) {\n\t\t\t\tgoogle.charts.load( 'current', {\n\t\t\t\t\tpackages: [ 'corechart', 'bar' ],\n\t\t\t\t} );\n\n\t\t\t\tgoogle.charts.setOnLoadCallback( () => {\n\t\t\t\t\tthis.drawChart(\n\t\t\t\t\t\twphbHistoricFieldData.fcp,\n\t\t\t\t\t\t'first_contentful_paint'\n\t\t\t\t\t);\n\t\t\t\t\t$( window ).resize( () =>\n\t\t\t\t\t\tthis.drawChart(\n\t\t\t\t\t\t\twphbHistoricFieldData.fcp,\n\t\t\t\t\t\t\t'first_contentful_paint'\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t} );\n\n\t\t\t\tgoogle.charts.setOnLoadCallback( () => {\n\t\t\t\t\tthis.drawChart(\n\t\t\t\t\t\twphbHistoricFieldData.inp,\n\t\t\t\t\t\t'interaction_to_next_paint'\n\t\t\t\t\t);\n\t\t\t\t\t$( window ).resize( () =>\n\t\t\t\t\t\tthis.drawChart(\n\t\t\t\t\t\t\twphbHistoricFieldData.inp,\n\t\t\t\t\t\t\t'interaction_to_next_paint'\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Parse subsite settings change.\n\t\t\t *\n\t\t\t * @since 2.0.0\n\t\t\t */\n\t\t\t$( 'input[name=subsite-tests]' ).on( 'change', function( e ) {\n\t\t\t\tconst otherClass =\n\t\t\t\t\t'subsite_tests-false' === e.target.id\n\t\t\t\t\t\t? 'subsite_tests-true'\n\t\t\t\t\t\t: 'subsite_tests-false';\n\t\t\t\te.target.parentNode.classList.add( 'active' );\n\t\t\t\tdocument\n\t\t\t\t\t.getElementById( otherClass )\n\t\t\t\t\t.parentNode.classList.remove( 'active' );\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Parse report type setting change.\n\t\t\t *\n\t\t\t * @since 2.0.0\n\t\t\t */\n\t\t\t$( 'input[name=report-type]' ).on( 'change', function( e ) {\n\t\t\t\tconst divs = document.querySelectorAll(\n\t\t\t\t\t'input[name=report-type]'\n\t\t\t\t);\n\t\t\t\tfor ( let i = 0; i < divs.length; ++i ) {\n\t\t\t\t\tdivs[ i ].parentNode.classList.remove( 'active' );\n\t\t\t\t}\n\t\t\t\te.target.parentNode.classList.add( 'active' );\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Performance doughnut chart hover states.\n\t\t\t *\n\t\t\t * @since 3.0.0\n\t\t\t */\n\t\t\t$( 'g.metric' ).on( {\n\t\t\t\tmouseenter() {\n\t\t\t\t\t$( '.wphb-gauge__wrapper' ).addClass( 'state--highlight' );\n\t\t\t\t\t$( this ).addClass( 'metric--highlight' );\n\t\t\t\t},\n\t\t\t\tmouseleave() {\n\t\t\t\t\t$( '.wphb-gauge__wrapper' ).removeClass(\n\t\t\t\t\t\t'state--highlight'\n\t\t\t\t\t);\n\t\t\t\t\t$( this ).removeClass( 'metric--highlight' );\n\t\t\t\t},\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Filter action button on audits page\n\t\t\t *\n\t\t\t * @since 3.1.0\n\t\t\t */\n\t\t\t$( '#wphb-audits-filter-button' ).on( 'click', function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\t$( '.wphb-audits-filter' ).toggle( 'slow' );\n\t\t\t\t$( this ).toggleClass( 'active' ).blur();\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Process filter selection.\n\t\t\t *\n\t\t\t * @since 3.1.0\n\t\t\t */\n\t\t\t$( 'input[name=\"audits_filter\"]' ).on( 'change', function() {\n\t\t\t\tconst audits = $( '.sui-accordion-item' );\n\n\t\t\t\tfor ( const [ id, audit ] of Object.entries( audits ) ) {\n\t\t\t\t\tif ( 'object' !== typeof audit || 'prevObject' === id ) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\taudit.classList.remove( 'sui-hidden' ); // Reset visibility.\n\n\t\t\t\t\tif (\n\t\t\t\t\t\t'all' !== this.value &&\n\t\t\t\t\t\t! audit.dataset.metrics.includes( this.value )\n\t\t\t\t\t) {\n\t\t\t\t\t\taudit.classList.add( 'sui-hidden' );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * Start performance scan.\n\t\t */\n\t\tstartPerformanceScan() {\n\t\t\twindow.SUI.openModal(\n\t\t\t\t'run-performance-test-modal',\n\t\t\t\t'wpbody-content'\n\t\t\t);\n\n\t\t\t$( this ).attr( 'disabled', true );\n\t\t\tthis.scanner.start();\n\t\t},\n\n\t\twphbSetInterval() {\n\t\t\tconst self = this;\n\n\t\t\tthis.key_timer = window.setInterval( function() {\n\t\t\t\t// Clean pressedKeys every 1sec\n\t\t\t\tself.pressedKeys = [];\n\t\t\t}, 1000 );\n\t\t},\n\n\t\t/**\n\t\t * Draw chart on Historic Field Data meta box.\n\t\t *\n\t\t * @since 2.0.0\n\t\t *\n\t\t * @param {Object} strings\n\t\t * @param {string} chartID\n\t\t */\n\t\tdrawChart( strings, chartID ) {\n\t\t\tconst data = google.visualization.arrayToDataTable( [\n\t\t\t\t[\n\t\t\t\t\t'Type',\n\t\t\t\t\t'Fast',\n\t\t\t\t\t{ type: 'string', role: 'tooltip', p: { html: true } },\n\t\t\t\t\t'Average',\n\t\t\t\t\t{ type: 'string', role: 'tooltip', p: { html: true } },\n\t\t\t\t\t'Slow',\n\t\t\t\t\t{ type: 'string', role: 'tooltip', p: { html: true } },\n\t\t\t\t],\n\t\t\t\t[\n\t\t\t\t\t'',\n\t\t\t\t\tstrings.fast,\n\t\t\t\t\tthis.generateTooltip( 'fast', strings.fast_desc ),\n\t\t\t\t\tstrings.average,\n\t\t\t\t\tthis.generateTooltip( 'average', strings.average_desc ),\n\t\t\t\t\tstrings.slow,\n\t\t\t\t\tthis.generateTooltip( 'slow', strings.slow_desc ),\n\t\t\t\t],\n\t\t\t] );\n\n\t\t\tconst options = {\n\t\t\t\ttooltip: { isHtml: true },\n\t\t\t\tcolors: [ '#1ABC9C', '#FECF2F', '#FF6D6D' ],\n\t\t\t\tchartArea: { width: '100%' },\n\t\t\t\thAxis: {\n\t\t\t\t\tbaselineColor: '#fff',\n\t\t\t\t\tgridlines: { color: '#fff', count: 0 },\n\t\t\t\t\ttextPosition: 'none',\n\t\t\t\t},\n\t\t\t\tisStacked: 'percent',\n\t\t\t\theight: 80,\n\t\t\t\tlegend: 'none',\n\t\t\t};\n\n\t\t\tconst chart = new google.visualization.BarChart(\n\t\t\t\tdocument.getElementById( chartID )\n\t\t\t);\n\t\t\tchart.draw( data, options );\n\t\t},\n\n\t\t/**\n\t\t * Generate custom tooltip.\n\t\t *\n\t\t * @since 2.0.0\n\t\t *\n\t\t * @param {string} type Metrics type. Accepts: fast, average, slow.\n\t\t * @param {string} value Tooltip text.\n\t\t *\n\t\t * @return {string} Div element.\n\t\t */\n\t\tgenerateTooltip( type, value ) {\n\t\t\treturn (\n\t\t\t\t'<div class=\"wphb-field-data-tooltip wphb-tooltip-' +\n\t\t\t\ttype +\n\t\t\t\t'\">' +\n\t\t\t\tvalue +\n\t\t\t\t'</div>'\n\t\t\t);\n\t\t},\n\t};\n} )( jQuery );\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","'use strict';\nvar shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var assignValue = require('./_assignValue'),\n copyObject = require('./_copyObject'),\n createAssigner = require('./_createAssigner'),\n isArrayLike = require('./isArrayLike'),\n isPrototype = require('./_isPrototype'),\n keys = require('./keys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\nvar assign = createAssigner(function(object, source) {\n if (isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n});\n\nmodule.exports = assign;\n","'use strict';\nvar toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","'use strict';\nmodule.exports = false;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] === undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = globalThis;\n } else if (STATIC) {\n target = globalThis[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = globalThis[TARGET] && globalThis[TARGET].prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n","'use strict';\nvar parent = require('../../stable/array/find-index');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../es/array/find-index');\n\nmodule.exports = parent;\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","/* global WPHB_Admin */\n/* global SUI */\n/* global ajaxurl */\n/* global wphb */\n/* global _ */\n/* global wphbMixPanel */\n\n/**\n * External dependencies\n */\nimport 'core-js/features/array/find-index';\n\n/**\n * Internal dependencies\n */\nimport HBFetcher from '../utils/fetcher';\nimport { getString } from '../utils/helpers';\nconst { __ } = wp.i18n;\n\n/**\n * Notifications module.\n *\n * @since 3.1.1\n */\n( function( $ ) {\n\t'use strict';\n\n\tWPHB_Admin.notifications = {\n\t\tmodule: 'notifications',\n\t\texclude: [],\n\t\tedit: false,\n\t\tsettings: {\n\t\t\tview: 'schedule',\n\t\t\tmodule: '',\n\t\t\ttype: '',\n\t\t\tschedule: {\n\t\t\t\tfrequency: 7,\n\t\t\t\ttime: '',\n\t\t\t\tweekDay: '',\n\t\t\t\tmonthDay: '',\n\t\t\t\tthreshold: 0,\n\t\t\t},\n\t\t\trecipients: [],\n\t\t\tperformance: {\n\t\t\t\tdevice: 'both',\n\t\t\t\tmetrics: true,\n\t\t\t\taudits: true,\n\t\t\t\tfieldData: true,\n\t\t\t},\n\t\t\tuptime: {\n\t\t\t\tshowPing: true,\n\t\t\t},\n\t\t\tdatabase: {\n\t\t\t\trevisions: true,\n\t\t\t\tdrafts: true,\n\t\t\t\ttrash: true,\n\t\t\t\tspam: true,\n\t\t\t\ttrashComment: true,\n\t\t\t\texpiredTransients: true,\n\t\t\t\ttransients: false,\n\t\t\t},\n\t\t},\n\t\tmoduleData: {},\n\n\t\t/**\n\t\t * Initialize the module.\n\t\t *\n\t\t * @since 3.1.1\n\t\t * @param {Object} settings\n\t\t * @return {WPHB_Admin.notifications} Notifications module.\n\t\t */\n\t\tinit( settings ) {\n\t\t\tthis.moduleData = settings;\n\n\t\t\t$( '.wphb-disable-notification' ).on( 'click', this.disable );\n\t\t\t$( '.wphb-enable-notification' ).on( 'click', function( e ) {\n\t\t\t\t WPHB_Admin.notifications.renderTemplate( e, 'add' );\n\t\t\t\t WPHB_Admin.notifications.maybeInstantFree();\n\t\t\t});\n\n\t\t\t$( '.wphb-configure-notification' ).on( 'click', function( e ) {\n\t\t\t\tWPHB_Admin.notifications.renderTemplate( e, 'edit' );\n\t\t\t\tWPHB_Admin.notifications.maybeInstantFree();\n\t\t\t});\n\n\t\t\tthis.maybeOpenModal();\n\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * Handle opening modals from other pages via hash.\n\t\t *\n\t\t * @since 3.2.0\n\t\t */\n\t\tmaybeOpenModal() {\n\t\t\tlet hash = window.location.hash;\n\t\t\tif ( 0 === hash.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\thash = hash.substring( 1 );\n\t\t\thash = hash.split( '-' );\n\t\t\tif ( 2 !== hash.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet el = $(\n\t\t\t\t'button.wphb-configure-notification[data-id=\"' +\n\t\t\t\t\thash[ 0 ] +\n\t\t\t\t\t'\"][data-type=\"' +\n\t\t\t\t\thash[ 1 ] +\n\t\t\t\t\t'\"]'\n\t\t\t);\n\n\t\t\tif ( 0 === el.length ) {\n\t\t\t\tel = $(\n\t\t\t\t\t'.wphb-enable-notification[data-id=\"' +\n\t\t\t\t\t\thash[ 0 ] +\n\t\t\t\t\t\t'\"][data-type=\"' +\n\t\t\t\t\t\thash[ 1 ] +\n\t\t\t\t\t\t'\"]'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif ( 0 !== el.length ) {\n\t\t\t\tel.trigger( 'click' );\n\t\t\t}\n\t\t},\n\t\t\n\t\tmaybeInstantFree(){\n\t\t\tjQuery(\"#report-threshold-free\").on('select2:open', function () {\n\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t$('#select2-report-threshold-free-results>li:first-child').addClass('wphb-instant-pro')\n\t\t\t\t\t.append('<span> PRO </span><a target=\"_blank\" href=\"' + wphb.links.upgradeUrl + '\">' + __( 'Upgrade' ) + '</a> ');\n\t\t\t\t}, 0);\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * Render template.\n\t\t *\n\t\t * @since 3.1.1\n\t\t * @param {Object} e\n\t\t * @param {string} id Template ID.\n\t\t */\n\t\trenderTemplate( e, id ) {\n\t\t\te.preventDefault();\n\n\t\t\tthis.settings.module = e.currentTarget.dataset.id;\n\t\t\tthis.settings.type = e.currentTarget.dataset.type;\n\n\t\t\tconst view = e.currentTarget.dataset.view;\n\t\t\tthis.settings.view = 'schedule';\n\t\t\tif ( 'edit' === id && 'recipients' === view ) {\n\t\t\t\tthis.settings.view = view;\n\t\t\t}\n\n\t\t\t// Just in case - make sure we have the correct data.\n\t\t\tif ( this.moduleData.hasOwnProperty( this.settings.type ) ) {\n\t\t\t\tlet data = this.moduleData[ this.settings.type ];\n\n\t\t\t\tif ( data.hasOwnProperty( this.settings.module ) ) {\n\t\t\t\t\tdata = data[ this.settings.module ];\n\n\t\t\t\t\t// Add schedule.\n\t\t\t\t\tif ( data.hasOwnProperty( 'schedule' ) ) {\n\t\t\t\t\t\tthis.settings.schedule = data.schedule;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Add settings.\n\t\t\t\t\tif ( data.hasOwnProperty( 'settings' ) ) {\n\t\t\t\t\t\tthis.settings[ this.settings.module ] = data.settings;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( data.hasOwnProperty( 'recipients' ) ) {\n\t\t\t\t\t\tthis.settings.recipients = data.recipients;\n\t\t\t\t\t\t// Populate exclude IDs list based on user IDs.\n\t\t\t\t\t\tthis.exclude = data.recipients.reduce(\n\t\t\t\t\t\t\t( o, r ) => (\n\t\t\t\t\t\t\t\t0 < r.id && o.push( parseInt( r.id ) ), o\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t[]\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.loadUsers();\n\n\t\t\tconst template = WPHB_Admin.notifications.template(\n\t\t\t\tid + '-notifications-content'\n\t\t\t);\n\t\t\tconst content = template( this.settings );\n\n\t\t\tif ( content ) {\n\t\t\t\t$( '#notification-modal' ).html( content );\n\n\t\t\t\tthis.initSUI();\n\t\t\t\tthis.mapActions();\n\n\t\t\t\tif ( 'edit' === id ) {\n\t\t\t\t\tthis.edit = true;\n\t\t\t\t\tthis.addSelections();\n\t\t\t\t} else {\n\t\t\t\t\tthis.toggleUserNotice();\n\t\t\t\t}\n\n\t\t\t\tSUI.openModal( 'notification-modal', $( this ) );\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Ajax call to fetch load 10 WordPress users.\n\t\t */\n\t\tloadUsers() {\n\t\t\tconst self = this;\n\n\t\t\tHBFetcher.notifications\n\t\t\t\t.getUsers( this.exclude )\n\t\t\t\t.then( ( response ) => {\n\t\t\t\t\tif ( 'undefined' === typeof response ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tlet i = 0;\n\t\t\t\t\tresponse.forEach( function( user ) {\n\t\t\t\t\t\tself.addToUsersList( user, 0 === i++ );\n\t\t\t\t\t} );\n\n\t\t\t\t\t// Fix overflow for user selectors.\n\t\t\t\t\tthis.fixRecipientCSS( $( '#modal-wp-user-list' ) );\n\t\t\t\t} )\n\t\t\t\t.catch( ( error ) => {\n\t\t\t\t\twindow.console.log( error );\n\t\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * Process schedule selections.\n\t\t *\n\t\t * @since 3.1.1\n\t\t */\n\t\tprocessScheduleSettings() {\n\t\t\tconst threshold =\n\t\t\t\t'uptime' === this.settings.module &&\n\t\t\t\t'notifications' === this.settings.type;\n\n\t\t\tif ( threshold ) {\n\t\t\t\tconst select = $( 'select#report-threshold' ).length ? $( 'select#report-threshold' ) : $( 'select#report-threshold-free' ) ;\n\t\t\t\tthis.settings.schedule.threshold = select.val();\n\t\t\t} else {\n\t\t\t\tconst frequency = $( 'input[name=\"report-frequency\"]:checked' );\n\t\t\t\tthis.settings.schedule = {\n\t\t\t\t\tfrequency: frequency.val(),\n\t\t\t\t\ttime: $( 'select#report-time' ).val(),\n\t\t\t\t\tweekDay: $( 'select#report-day' ).val(),\n\t\t\t\t\tmonthDay: $( 'select#report-day-month' ).val(),\n\t\t\t\t\tthreshold: '',\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Process additional settings tab.\n\t\t *\n\t\t * @since 3.1.1\n\t\t */\n\t\tprocessAdditionalSettings() {\n\t\t\tif ( 'reports' !== this.settings.type ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( 'performance' === this.settings.module ) {\n\t\t\t\tconst device = $( 'input[name=\"report-type\"]:checked' ).val();\n\t\t\t\tconst metrics = $( 'input#metrics' ).is( ':checked' );\n\t\t\t\tconst audits = $( 'input#audits' ).is( ':checked' );\n\t\t\t\tconst fieldData = $( 'input#field-data' ).is( ':checked' );\n\n\t\t\t\tthis.settings.performance = {\n\t\t\t\t\tdevice,\n\t\t\t\t\tmetrics,\n\t\t\t\t\taudits,\n\t\t\t\t\tfieldData,\n\t\t\t\t};\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( 'uptime' === this.settings.module ) {\n\t\t\t\tconst showPing = $( 'input#show_ping' ).is( ':checked' );\n\t\t\t\tthis.settings.uptime = { showPing };\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( 'database' === this.settings.module ) {\n\t\t\t\tconst revisions = $( 'input#revisions' ).is( ':checked' );\n\t\t\t\tconst drafts = $( 'input#drafts' ).is( ':checked' );\n\t\t\t\tconst trash = $( 'input#trash' ).is( ':checked' );\n\t\t\t\tconst spam = $( 'input#spam' ).is( ':checked' );\n\t\t\t\tconst trashComment = $( 'input#trashComment' ).is( ':checked' );\n\t\t\t\tconst expiredTransients = $( 'input#expiredTransients' ).is( ':checked' );\n\t\t\t\tconst transients = $( 'input#transients' ).is( ':checked' );\n\n\t\t\t\tthis.settings.database = {\n\t\t\t\t\trevisions,\n\t\t\t\t\tdrafts,\n\t\t\t\t\ttrash,\n\t\t\t\t\tspam,\n\t\t\t\t\ttrashComment,\n\t\t\t\t\texpiredTransients,\n\t\t\t\t\ttransients,\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Update settings in reports (during activate and edit).\n\t\t *\n\t\t * @since 3.1.1\n\t\t * @param {boolean} processSettings\n\t\t */\n\t\tupdate( processSettings = false ) {\n\t\t\tconst btn = event.target;\n\t\t\tbtn.classList.add( 'sui-button-onload-text' );\n\n\t\t\tthis.processScheduleSettings();\n\t\t\tif ( processSettings ) {\n\t\t\t\tthis.processAdditionalSettings();\n\t\t\t}\n\n\t\t\tHBFetcher.notifications\n\t\t\t\t.enable( this.settings, this.edit )\n\t\t\t\t.then( ( response ) => {\n\t\t\t\t\thistory.pushState( \"\", document.title, window.location.pathname + window.location.search );\n\t\t\t\t\twindow.location.search += '&status=' + response.code;\n\t\t\t\t} )\n\t\t\t\t.catch( ( error ) => {\n\t\t\t\t\twindow.console.log( error );\n\t\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * Activate the reports module.\n\t\t *\n\t\t * @since 3.1.1\n\t\t * @param {boolean} processSettings\n\t\t */\n\t\tactivate( processSettings = false ) {\n\t\t\tconst moduleName = this.getModuleName();\n\t\t\tif ( '' !== moduleName ) {\n\t\t\t\twphbMixPanel.enableFeature( moduleName );\n\t\t\t}\n\n\t\t\tthis.update( processSettings );\n\t\t},\n\n\t\t/**\n\t\t * Map modal actions.\n\t\t *\n\t\t * @since 3.1.1\n\t\t */\n\t\tmapActions() {\n\t\t\tthis.initUserSelects();\n\t\t\tthis.toggleAddButton();\n\n\t\t\t$( '#add-recipient-button' ).on( 'click', () => {\n\t\t\t\tthis.handleAddButtonClick();\n\t\t\t} );\n\n\t\t\tconst frequency = $( 'input[name=\"report-frequency\"]' );\n\t\t\tfrequency.on( 'change', this.handleFrequencySelect );\n\t\t},\n\n\t\t/**\n\t\t * When editing notifications, make sure we have the proper selections for schedule data.\n\t\t *\n\t\t * @since 3.1.1\n\t\t */\n\t\taddSelections() {\n\t\t\t$( '#report-time' )\n\t\t\t\t.val( this.settings.schedule.time )\n\t\t\t\t.trigger( 'change' );\n\n\t\t\tif ( 7 === this.settings.schedule.frequency ) {\n\t\t\t\t$( '#report-day' )\n\t\t\t\t\t.val( this.settings.schedule.weekDay )\n\t\t\t\t\t.trigger( 'change' );\n\t\t\t}\n\n\t\t\tif ( 30 === this.settings.schedule.frequency ) {\n\t\t\t\t$( '#report-day-month' )\n\t\t\t\t\t.val( this.settings.schedule.monthDay )\n\t\t\t\t\t.trigger( 'change' );\n\t\t\t}\n\n\t\t\t$( '#report-threshold' )\n\t\t\t\t.val( this.settings.schedule.threshold )\n\t\t\t\t.trigger( 'change' );\n\t\t},\n\n\t\t/**\n\t\t * Due to how we load the template, we need to re-initialize the SUI related modules.\n\t\t *\n\t\t * @since 3.1.1\n\t\t */\n\t\tinitSUI() {\n\t\t\t$( '.sui-select' ).each( function() {\n\t\t\t\tconst select = $( this );\n\t\t\t\tif ( 'icon' === select.data( 'theme' ) ) {\n\t\t\t\t\tSUI.select.initIcon( select );\n\t\t\t\t} else if ( 'color' === select.data( 'theme' ) ) {\n\t\t\t\t\tSUI.select.initColor( select );\n\t\t\t\t} else if ( 'search' === select.data( 'theme' ) ) {\n\t\t\t\t\tSUI.select.initSearch( select );\n\t\t\t\t} else {\n\t\t\t\t\tSUI.select.init( select );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tSUI.modalDialog();\n\t\t\tSUI.tabs();\n\t\t\tSUI.notice();\n\n\t\t\t$( '.sui-side-tabs label.sui-tab-item input' ).each( function() {\n\t\t\t\tSUI.sideTabs( this );\n\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * Process frequency change in modal.\n\t\t *\n\t\t * @since 3.1.1\n\t\t */\n\t\thandleFrequencySelect() {\n\t\t\tconst freq = $( this ).val();\n\t\t\tconst scheduleBox = $( '.schedule-box' );\n\n\t\t\tconst weekDiv = scheduleBox.find( '[data-type=\"week\"]' );\n\t\t\tconst monthDiv = scheduleBox.find( '[data-type=\"month\"]' );\n\n\t\t\tweekDiv.toggleClass( 'sui-hidden', '30' === freq || '1' === freq );\n\t\t\tmonthDiv.toggleClass( 'sui-hidden', '7' === freq || '1' === freq );\n\t\t},\n\n\t\t/**\n\t\t * Get module name string for tracking.\n\t\t * Do not translate these strings, they are used in Mixpanel tracking.\n\t\t *\n\t\t * @since 3.1.1\n\t\t * @return {string} Module name.\n\t\t */\n\t\tgetModuleName() {\n\t\t\tlet moduleName = '';\n\n\t\t\tif (\n\t\t\t\t'performance' === this.settings.module &&\n\t\t\t\t'reports' === this.settings.type\n\t\t\t) {\n\t\t\t\tmoduleName = 'Performance Reports';\n\t\t\t} else if (\n\t\t\t\t'uptime' === this.settings.module &&\n\t\t\t\t'reports' === this.settings.type\n\t\t\t) {\n\t\t\t\tmoduleName = 'Uptime Reports';\n\t\t\t} else if (\n\t\t\t\t'uptime' === this.settings.module &&\n\t\t\t\t'notifications' === this.settings.type\n\t\t\t) {\n\t\t\t\tmoduleName = 'Uptime Notifications';\n\t\t\t}\n\n\t\t\treturn moduleName;\n\t\t},\n\n\t\t/**\n\t\t * Disable notification.\n\t\t *\n\t\t * @since 3.1.1\n\t\t */\n\t\tdisable() {\n\t\t\tevent.preventDefault();\n\n\t\t\tconst id = event.target.dataset.id;\n\t\t\tconst type = event.target.dataset.type;\n\n\t\t\tif ( 'undefined' === typeof id || 'undefined' === typeof type ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst moduleName = WPHB_Admin.notifications.getModuleName();\n\t\t\tif ( '' !== moduleName ) {\n\t\t\t\twphbMixPanel.disableFeature( moduleName );\n\t\t\t}\n\n\t\t\tHBFetcher.notifications\n\t\t\t\t.disable( id, type )\n\t\t\t\t.then( () => {\n\t\t\t\t\twindow.location.search += '&status=disabled';\n\t\t\t\t} )\n\t\t\t\t.catch( ( error ) => {\n\t\t\t\t\twindow.console.log( error );\n\t\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * Toggle Add Recipient button based on input. Disable if fields not filled.\n\t\t *\n\t\t * @since 3.1.1\n\t\t */\n\t\ttoggleAddButton() {\n\t\t\tconst inputs = $(\n\t\t\t\t'#notifications-invite-users-content input[id^=\"recipient-\"]'\n\t\t\t);\n\n\t\t\tinputs.on( 'keyup', function() {\n\t\t\t\tlet empty = false;\n\t\t\t\tinputs.each( function() {\n\t\t\t\t\tif ( '' === $( this ).val() ) {\n\t\t\t\t\t\tempty = true;\n\t\t\t\t\t}\n\t\t\t\t} );\n\n\t\t\t\tif ( empty ) {\n\t\t\t\t\t$( '#add-recipient-button' ).attr( 'disabled', 'disabled' );\n\t\t\t\t} else {\n\t\t\t\t\t$( '#add-recipient-button' ).attr( 'disabled', false );\n\t\t\t\t}\n\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * Sanitize the user input string.\n\t\t *\n\t\t * @since 3.4.3\n\t\t * @param {string} string\n\t\t */\n\t\t sanitizeString( string ) {\n\t\t\tlet str = String(string).replace(/[&\\/\\\\#^+()$~%.'\":*?<>{}!@]/g, '');\n\t\t\treturn str.trim();\n\t\t},\n\n\t\t/**\n\t\t * Handle \"Add recipient\" button click on \"Add by email\" section of the modal.\n\t\t *\n\t\t * @since 3.1.1\n\t\t */\n\t\thandleAddButtonClick() {\n\t\t\tconst btn = event.target;\n\t\t\tbtn.classList.add( 'sui-button-onload-text' );\n\n\t\t\tconst name_input = $( 'input#recipient-name' );\n\t\t\tconst email = $( 'input#recipient-email' );\n\t\t\tconst err = $( '#error-recipient-email' );\n\t\t\tconst name = this.sanitizeString( name_input.val() );\n\t\t\tconst name_err = $( '#error-recipient-name' );\n\n\t\t\tif ( '' === name ) {\n\t\t\t\tname_err.html( wphb.strings.errorEmptyName );\n\t\t\t\tname_err.parents().addClass( 'sui-form-field-error' );\n\t\t\t\tbtn.classList.remove( 'sui-button-onload-text' );\n\t\t\t\treturn;\n\t\t\t} else {\n\t\t\t\tname_err.html( '' );\n\t\t\t\tname_err.parents().removeClass( 'sui-form-field-error' );\n\t\t\t}\n\n\t\t\tHBFetcher.notifications\n\t\t\t\t.getAvatar( email.val() )\n\t\t\t\t.then( ( avatar ) => {\n\t\t\t\t\terr.html( '' );\n\t\t\t\t\terr.parents().removeClass( 'sui-form-field-error' );\n\n\t\t\t\t\tconst user = {\n\t\t\t\t\t\tname: name,\n\t\t\t\t\t\temail: email.val(),\n\t\t\t\t\t\trole: '',\n\t\t\t\t\t\tavatar,\n\t\t\t\t\t\tid: 0,\n\t\t\t\t\t};\n\n\t\t\t\t\tthis.confirmSubscription( user ).then( ( response ) => {\n\t\t\t\t\t\tif ( undefined !== response ) {\n\t\t\t\t\t\t\tuser.is_pending = response.pending;\n\t\t\t\t\t\t\tuser.is_subscribed = response.subscribed;\n\t\t\t\t\t\t\tuser.is_can_resend_confirmation =\n\t\t\t\t\t\t\t\tresponse.canResend;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.addUser( user, 'email' );\n\n\t\t\t\t\t\t// Reset inputs.\n\t\t\t\t\t\tname_input.val( '' ).trigger( 'keyup' );\n\t\t\t\t\t\temail.val( '' ).trigger( 'keyup' );\n\t\t\t\t\t\tbtn.classList.remove( 'sui-button-onload-text' );\n\t\t\t\t\t} );\n\t\t\t\t} )\n\t\t\t\t.catch( ( error ) => {\n\t\t\t\t\terr.html( error );\n\t\t\t\t\terr.parents().addClass( 'sui-form-field-error' );\n\t\t\t\t\tbtn.classList.remove( 'sui-button-onload-text' );\n\t\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * Initialize the search user select.\n\t\t *\n\t\t * @since 3.1.1\n\t\t */\n\t\tinitUserSelects() {\n\t\t\tconst userSelect = $( '#search-users' );\n\t\t\tconst self = this;\n\n\t\t\tuserSelect.SUIselect2( {\n\t\t\t\tminimumInputLength: 3,\n\t\t\t\tmaximumSelectionLength: 1,\n\t\t\t\tajax: {\n\t\t\t\t\turl: ajaxurl,\n\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\tdataType: 'json',\n\t\t\t\t\tdelay: 250,\n\t\t\t\t\tdata( params ) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\taction: 'wphb_pro_search_users',\n\t\t\t\t\t\t\tnonce: wphb.nonces.HBFetchNonce,\n\t\t\t\t\t\t\tquery: params.term,\n\t\t\t\t\t\t\texclude: self.exclude,\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\t\t\t\tprocessResults( data ) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tresults: jQuery.map(\n\t\t\t\t\t\t\t\tdata.data,\n\t\t\t\t\t\t\t\tfunction( item, index ) {\n\t\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t\ttext: item.name,\n\t\t\t\t\t\t\t\t\t\tid: index,\n\t\t\t\t\t\t\t\t\t\tuser: {\n\t\t\t\t\t\t\t\t\t\t\tname: item.name,\n\t\t\t\t\t\t\t\t\t\t\temail: item.email,\n\t\t\t\t\t\t\t\t\t\t\trole: item.role,\n\t\t\t\t\t\t\t\t\t\t\tavatar: item.avatar,\n\t\t\t\t\t\t\t\t\t\t\tid: item.id,\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t} );\n\n\t\t\tuserSelect.on( 'select2:select', function( e ) {\n\t\t\t\tself.add( e.params.data.user );\n\t\t\t\tuserSelect.val( null ).trigger( 'change' );\n\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * Send out a confirmation email to the user.\n\t\t *\n\t\t * @since 3.1.1\n\t\t * @param {Object} user\n\t\t */\n\t\tasync confirmSubscription( user ) {\n\t\t\tif (\n\t\t\t\t'uptime' !== this.settings.module ||\n\t\t\t\t'notifications' !== this.settings.type\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\treturn HBFetcher.notifications.sendConfirmationEmail(\n\t\t\t\tuser.name,\n\t\t\t\tuser.email\n\t\t\t);\n\t\t},\n\n\t\t/**\n\t\t * Resend invite.\n\t\t *\n\t\t * @since 3.1.1\n\t\t * @param {string} name\n\t\t * @param {string} email\n\t\t */\n\t\tresendInvite( name, email ) {\n\t\t\tconst self = $( this );\n\t\t\tself.attr( 'disabled', 'disabled' );\n\t\t\tHBFetcher.notifications\n\t\t\t\t.resendConfirmationEmail( name, email )\n\t\t\t\t.then( ( response ) => {\n\t\t\t\t\tconst notice = $( '.notifications-resend-notice' );\n\t\t\t\t\tnotice.find( 'p' ).html( response.message );\n\t\t\t\t\tnotice.removeClass( 'sui-hidden' );\n\t\t\t\t\tself.attr( 'disabled', false );\n\t\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * Add a user recipient row to modal UI.\n\t\t *\n\t\t * @since 3.1.1\n\t\t * @param {Object} user User object.\n\t\t * @param {string} type Accepts: user (\"Add users\" section), email (\"Add by email\" section).\n\t\t */\n\t\taddUser( user, type = 'user' ) {\n\t\t\t// Check if recipient already exists.\n\t\t\tconst index = this.settings.recipients.findIndex(\n\t\t\t\t( r ) => user.email === r.email\n\t\t\t);\n\t\t\tif ( index > -1 ) {\n\t\t\t\tthis.toggleUserNotice( true );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst recipientList = $( '#modal-' + type + '-recipients-list' );\n\t\t\tconst tooltip = getString( 'removeRecipient' );\n\t\t\tconst role = '' === user.role ? user.email : user.role;\n\n\t\t\tlet subClass = '';\n\t\t\tif ( 'undefined' !== typeof user.is_pending ) {\n\t\t\t\tif (\n\t\t\t\t\t! user.is_pending &&\n\t\t\t\t\t'undefined' !== typeof user.is_subscribed &&\n\t\t\t\t\t! user.is_subscribed\n\t\t\t\t) {\n\t\t\t\t\tsubClass = 'unsubscribed';\n\t\t\t\t} else {\n\t\t\t\t\tsubClass = user.is_pending ? 'pending' : 'confirmed';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet img = `<img src=\"${ user.avatar }\" alt=\"${ user.email }\">`;\n\t\t\tlet confirmBtn = ``;\n\t\t\tif ( 'pending' === subClass || 'unsubscribed' === subClass ) {\n\t\t\t\tconst confirmTooltip = getString( 'awaitingConfirmation' );\n\t\t\t\tconst resendTooltip = getString( 'resendInvite' );\n\t\t\t\timg = `<span class=\"sui-tooltip\" data-tooltip=\"${ confirmTooltip }\">${ img }</span>`;\n\t\t\t\tconfirmBtn = `<button type=\"button\" class=\"resend-invite sui-button-icon sui-tooltip\" data-tooltip=\"${ resendTooltip }\"\n\t\t\t\t\tonclick=\"WPHB_Admin.notifications.resendInvite( '${ user.name }', '${ user.email }' )\">\n\t\t\t\t\t<span class=\"sui-icon-send\" aria-hidden=\"true\"></span>\n\t\t\t\t</button>`;\n\t\t\t}\n\n\t\t\tconst row = `\n\t\t\t\t<div class=\"sui-recipient\" data-id=\"${ user.id }\" data-email=\"${ user.email }\">\n\t\t\t\t\t<span class=\"sui-recipient-name\">\n\t\t\t\t\t\t<span class=\"subscriber ${ subClass }\">${ img }</span>\n\t\t\t\t\t\t<span class=\"wphb-recipient-name\">${ user.name }</span>\n\t\t\t\t\t</span>\n\t\t\t\t\t<span class=\"sui-recipient-email\">${ role }</span>\n\t\t\t\t\t${ confirmBtn }\n\t\t\t\t\t<button type=\"button\" class=\"sui-button-icon sui-tooltip\" data-tooltip=\"${ tooltip }\"\n\t\t\t\t\t\tonclick=\"WPHB_Admin.notifications.removeUser( ${ user.id }, '${ user.email }', '${ type }' )\">\n\t\t\t\t\t\t<span class=\"sui-icon-trash\" aria-hidden=\"true\"></span>\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t`;\n\n\t\t\trecipientList.append( row );\n\n\t\t\t// Add to the recipients and exclude arrays.\n\t\t\tthis.settings.recipients.push( user );\n\t\t\tif ( 'user' === type ) {\n\t\t\t\tthis.exclude.push( user.id );\n\t\t\t}\n\n\t\t\tthis.toggleRecipientList( recipientList );\n\t\t},\n\n\t\t/**\n\t\t * Populate \"Users\" list.\n\t\t *\n\t\t * @since 3.1.1\n\t\t * @param {Object} user\n\t\t * @param {boolean} first\n\t\t */\n\t\taddToUsersList( user, first = false ) {\n\t\t\tconst recipientList = $( '#modal-wp-user-list' );\n\n\t\t\tconst tooltipClass = first\n\t\t\t\t? 'sui-tooltip-bottom-right'\n\t\t\t\t: 'sui-tooltip-top-right';\n\n\t\t\tconst row = `\n\t\t\t\t<div class=\"sui-recipient\" data-id=\"${ user.id }\" data-email=\"${ user.email }\">\n\t\t\t\t\t<span class=\"sui-recipient-name\">\n\t\t\t\t\t\t<span class=\"subscriber\">\n\t\t\t\t\t\t\t<img src=\"${ user.avatar }\" alt=\"${ user.email }\">\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t<span class=\"wphb-recipient-name\">${ user.name }</span>\n\t\t\t\t\t</span>\n\t\t\t\t\t<span class=\"sui-recipient-email\">${ user.role }</span>\n\t\t\t\t\t<button type=\"button\" class=\"sui-button-icon sui-tooltip ${ tooltipClass }\"\n\t\t\t\t\t\tdata-tooltip=\"${ getString( 'addRecipient' ) }\"\n\t\t\t\t\t\tonclick='WPHB_Admin.notifications.add( ${ JSON.stringify( user ) } )'>\n\t\t\t\t\t\t<span class=\"sui-icon-plus\" aria-hidden=\"true\"></span>\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t`;\n\n\t\t\trecipientList.append( row );\n\t\t\tthis.toggleRecipientList( recipientList );\n\t\t},\n\n\t\t/**\n\t\t * Remove a user recipient row from modal UI.\n\t\t *\n\t\t * @since 3.1.1\n\t\t * @param {number} id User ID to remove.\n\t\t * @param {string} email User email.\n\t\t * @param {string} type Accepts: user (\"Add users\" section), email (\"Add by email\" section).\n\t\t */\n\t\tremoveUser( id, email, type = 'user' ) {\n\t\t\tconst recipientList = $( '#modal-' + type + '-recipients-list' );\n\t\t\tconst el = '.sui-recipient[data-email=\"' + email + '\"]';\n\n\t\t\t// Remove Div.\n\t\t\tconst row = recipientList.find( el );\n\t\t\trow.remove();\n\n\t\t\t// Remove from exclude list.\n\t\t\tlet index;\n\t\t\tif ( 'user' === type ) {\n\t\t\t\tindex = this.exclude.indexOf( id );\n\t\t\t\tif ( index > -1 ) {\n\t\t\t\t\tthis.exclude.splice( index, 1 );\n\t\t\t\t}\n\t\t\t\tthis.returnToList( row );\n\t\t\t}\n\n\t\t\t// Remove from recipients array.\n\t\t\tindex = this.settings.recipients.findIndex(\n\t\t\t\t( r ) => id === parseInt( r.id ) && email === r.email\n\t\t\t);\n\t\t\tif ( index > -1 ) {\n\t\t\t\tthis.settings.recipients.splice( index, 1 );\n\t\t\t}\n\n\t\t\t// Hide title if no more elements.\n\t\t\tthis.toggleRecipientList( recipientList );\n\t\t},\n\n\t\t/**\n\t\t * Add user from the \"Users\" list.\n\t\t *\n\t\t * @since 3.1.1\n\t\t * @param {Object} user\n\t\t */\n\t\tadd( user ) {\n\t\t\tthis.confirmSubscription( user ).then( ( response ) => {\n\t\t\t\tif ( undefined !== response ) {\n\t\t\t\t\tuser.is_pending = response.pending;\n\t\t\t\t\tuser.is_subscribed = response.subscribed;\n\t\t\t\t\tuser.is_can_resend_confirmation = response.canResend;\n\t\t\t\t}\n\n\t\t\t\tthis.addUser( user );\n\n\t\t\t\tconst recipientList = $( '#modal-wp-user-list' );\n\t\t\t\tconst el = '.sui-recipient[data-email=\"' + user.email + '\"]';\n\n\t\t\t\t// Remove Div.\n\t\t\t\trecipientList.find( el ).remove();\n\n\t\t\t\tthis.fixRecipientCSS( recipientList );\n\t\t\t\tthis.toggleRecipientList( recipientList, false );\n\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * Return user back to \"Users\" list.\n\t\t *\n\t\t * @since 3.1.1\n\t\t * @param {Object} el User row.\n\t\t */\n\t\treturnToList( el ) {\n\t\t\tconst recipientList = $( '#modal-wp-user-list' );\n\n\t\t\tconst user = {\n\t\t\t\tid: el.data( 'id' ),\n\t\t\t\tname: el.find( '.wphb-recipient-name' ).text(),\n\t\t\t\temail: el.data( 'email' ),\n\t\t\t\trole: el.find( '.sui-recipient-email' ).text(),\n\t\t\t\tavatar: el.find( 'img' ).attr( 'src' ),\n\t\t\t};\n\n\t\t\tconst onClickFunction =\n\t\t\t\t'WPHB_Admin.notifications.add(' + JSON.stringify( user ) + ')';\n\n\t\t\t// Remove the resend icon.\n\t\t\tel.find( '.resend-invite' ).remove();\n\n\t\t\tel.find( '.sui-icon-trash' )\n\t\t\t\t.removeClass( 'sui-icon-trash' )\n\t\t\t\t.addClass( 'sui-icon-plus' );\n\n\t\t\tel.find( 'button' )\n\t\t\t\t.attr( 'onclick', onClickFunction )\n\t\t\t\t.attr( 'data-tooltip', getString( 'addRecipient' ) )\n\t\t\t\t.addClass( 'sui-tooltip-top-right' );\n\n\t\t\trecipientList.append( el );\n\n\t\t\tthis.fixRecipientCSS( recipientList );\n\t\t\tthis.toggleRecipientList( recipientList, false );\n\t\t},\n\n\t\t/**\n\t\t * Fix recipient overflow.\n\t\t *\n\t\t * @since 3.2.0\n\t\t * @param {Object} list\n\t\t */\n\t\tfixRecipientCSS( list ) {\n\t\t\tconst val = list.children().length > 1 ? 'hidden' : 'unset';\n\t\t\tlist.css( 'overflow-x', val );\n\n\t\t\tlist.find( '.sui-recipient:first-of-type .sui-tooltip' )\n\t\t\t\t.removeClass( 'sui-tooltip-top-right' )\n\t\t\t\t.addClass( 'sui-tooltip-bottom-right' );\n\t\t},\n\n\t\t/**\n\t\t * Show/hide recipient list based on child items.\n\t\t *\n\t\t * @since 3.1.1\n\t\t * @param {Object} el Recipient list element.\n\t\t * @param {boolean} userNotice Show user notice when no recipients.\n\t\t */\n\t\ttoggleRecipientList( el, userNotice = true ) {\n\t\t\tconst hasItems = 0 === el.html().trim().length;\n\n\t\t\tel.parent( 'div' )\n\t\t\t\t.toggleClass( 'sui-hidden', hasItems )\n\t\t\t\t.toggleClass( 'sui-margin-top', ! hasItems );\n\n\t\t\tif ( userNotice ) {\n\t\t\t\tthis.toggleUserNotice();\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Do not allow saving settings if no users are added to a notification.\n\t\t *\n\t\t * @since 3.1.1\n\t\t * @param {boolean} recipientExists Show the recipient already exists notice.\n\t\t */\n\t\ttoggleUserNotice( recipientExists = false ) {\n\t\t\tconst notice = $( '.notifications-recipients-notice' );\n\t\t\tconst btn = $( '#notification-modal .sui-button.sui-button-blue' );\n\t\t\tconst continueButton = $( '.notification-next-buttons' );\n\n\t\t\tlet text = getString( 'noRecipients' );\n\t\t\tif ( recipientExists ) {\n\t\t\t\ttext = getString( 'recipientExists' );\n\t\t\t} else if ( this.edit ) {\n\t\t\t\ttext = getString( 'noRecipientDisable' );\n\t\t\t}\n\n\t\t\tnotice.find( 'p' ).html( text );\n\n\t\t\tif ( recipientExists ) {\n\t\t\t\tnotice.removeClass( 'sui-hidden' );\n\t\t\t\tsetTimeout( () => notice.addClass( 'sui-hidden' ), 3000 );\n\t\t\t} else if ( 0 === this.settings.recipients.length ) {\n\t\t\t\tif ( ! this.edit ) {\n\t\t\t\t\tbtn.attr( 'disabled', 'disabled' );\n\t\t\t\t\tcontinueButton.attr( 'disabled', 'disabled' );\n\t\t\t\t}\n\t\t\t\tnotice.removeClass( 'sui-hidden' );\n\t\t\t} else {\n\t\t\t\tbtn.attr( 'disabled', false );\n\t\t\t\tcontinueButton.attr( 'disabled', false );\n\t\t\t\tnotice.addClass( 'sui-hidden' );\n\t\t\t}\n\t\t},\n\t};\n\n\t/**\n\t * Template function (underscores based).\n\t *\n\t * @type {Function}\n\t */\n\tWPHB_Admin.notifications.template = _.memoize( ( id ) => {\n\t\tlet compiled;\n\t\tconst options = {\n\t\t\tevaluate: /<#([\\s\\S]+?)#>/g,\n\t\t\tinterpolate: /{{{([\\s\\S]+?)}}}/g,\n\t\t\tescape: /{{([^}]+?)}}(?!})/g,\n\t\t\tvariable: 'data',\n\t\t};\n\n\t\treturn ( data ) => {\n\t\t\t_.templateSettings = options;\n\t\t\tcompiled = compiled || _.template( $( '#' + id ).html() );\n\t\t\treturn compiled( data );\n\t\t};\n\t} );\n} )( jQuery );\n","/* global wphb */\n/* global WPHB_Admin */\n\nimport Fetcher from '../utils/fetcher';\nimport { getString } from '../utils/helpers';\n\n( function( $ ) {\n\tWPHB_Admin.cloudflare = {\n\t\tmodule: 'cloudflare',\n\n\t\tinit() {\n\t\t\t/** @member {Array} wphb */\n\t\t\tif ( wphb.cloudflare.is.connected ) {\n\t\t\t\t$( 'input[type=\"submit\"].cloudflare-clear-cache' ).on(\n\t\t\t\t\t'click',\n\t\t\t\t\tfunction( e ) {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\tthis.purgeCache.apply( $( e.target ), [ this ] );\n\t\t\t\t\t}.bind( this )\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tthis.bindActions();\n\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * Bind actions.\n\t\t */\n\t\tbindActions() {\n\t\t\t// On submit from the Cloudflare connect modal.\n\t\t\tconst cfModal = document.getElementById( 'cloudflare-credentials' );\n\t\t\tif ( cfModal ) {\n\t\t\t\tcfModal.addEventListener( 'submit', ( e ) => {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tthis.connect( 'cloudflare-connect-save' );\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t// Re-check zones.\n\t\t\tconst reChkBtn = document.getElementById( 'cf-recheck-zones' );\n\t\t\tif ( reChkBtn ) {\n\t\t\t\treChkBtn.addEventListener( 'click', ( e ) => {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tthis.recheck( e );\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t// Save zone from modal.\n\t\t\tconst saveBtn = document.getElementById( 'cloudflare-zone-save' );\n\t\t\tif ( saveBtn ) {\n\t\t\t\tsaveBtn.addEventListener( 'click', ( e ) => {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tthis.connect( 'cloudflare-zone-save' );\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t// Show key help in modal.\n\t\t\tconst keyHelpLnk = document.getElementById(\n\t\t\t\t'cloudflare-show-key-help'\n\t\t\t);\n\t\t\tif ( keyHelpLnk ) {\n\t\t\t\tkeyHelpLnk.addEventListener( 'click', ( e ) => {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tthis.toggleHelp();\n\t\t\t\t} );\n\t\t\t}\n\t\t\tconst topHelpLnk = document.getElementById(\n\t\t\t\t'cloudflare-connect-steps'\n\t\t\t);\n\t\t\tif ( topHelpLnk ) {\n\t\t\t\ttopHelpLnk.addEventListener( 'click', ( e ) => {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tthis.toggleHelp();\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t$( 'input[name=\"cf_connection_type\"]' ).on( 'change', () => {\n\t\t\t\tthis.hideHelp();\n\t\t\t\tthis.switchLabel();\n\t\t\t} );\n\n\t\t\t// Enable/disable 'Connect' button based on form input.\n\t\t\t$( 'form#cloudflare-credentials input' ).on( 'keyup', function() {\n\t\t\t\tlet disabled = true;\n\n\t\t\t\t$( 'form#cloudflare-credentials input' ).each( function() {\n\t\t\t\t\tif ( '' !== $( this ).val() ) {\n\t\t\t\t\t\tdisabled = false;\n\t\t\t\t\t}\n\t\t\t\t} );\n\n\t\t\t\t$( '#cloudflare-connect-save' ).prop( 'disabled', disabled );\n\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * Purge Cloudflare cache.\n\t\t */\n\t\tpurgeCache() {\n\t\t\tconst $button = this;\n\t\t\t$button.attr( 'disabled', true );\n\n\t\t\tFetcher.common\n\t\t\t\t.call( 'wphb_cloudflare_purge_cache' )\n\t\t\t\t.then( () => {\n\t\t\t\t\tWPHB_Admin.notices.show(\n\t\t\t\t\t\tgetString( 'successCloudflarePurge' )\n\t\t\t\t\t);\n\t\t\t\t} )\n\t\t\t\t.catch( ( reject ) => {\n\t\t\t\t\tWPHB_Admin.notices.show( reject.responseText, 'error' );\n\t\t\t\t} );\n\n\t\t\t$button.removeAttr( 'disabled' );\n\t\t},\n\n\t\t/**\n\t\t * Connect to Cloudflare.\n\t\t *\n\t\t * @since 3.0.0\n\t\t *\n\t\t * @param {string} id Button ID for loader animation.\n\t\t */\n\t\tconnect: ( id ) => {\n\t\t\tconst btn = document.getElementById( id );\n\t\t\tbtn.classList.add( 'sui-button-onload-text' );\n\n\t\t\tconst type = document.getElementById( 'cf-token-tab' ).checked\n\t\t\t\t? 'token'\n\t\t\t\t: 'key';\n\n\t\t\t// Remove errors.\n\t\t\tconst apiKeyField = document.getElementById(\n\t\t\t\t'api-' + type + '-form-field'\n\t\t\t);\n\t\t\tapiKeyField.classList.remove( 'sui-form-field-error' );\n\t\t\tconst apiKeyError = document.getElementById( 'error-api-' + type );\n\t\t\tapiKeyError.innerHTML = '';\n\t\t\tapiKeyError.style.display = 'none';\n\n\t\t\t// Get key/values.\n\t\t\tconst email = document.getElementById( 'cloudflare-email' ).value;\n\t\t\tconst key = document.getElementById( 'cloudflare-api-key' ).value;\n\t\t\tconst token = document.getElementById( 'cloudflare-api-token' )\n\t\t\t\t.value;\n\t\t\tconst zone = jQuery( '#cloudflare-zones' ).find( ':selected' );\n\n\t\t\tFetcher.cloudflare\n\t\t\t\t.connect( email, key, token, zone.text() )\n\t\t\t\t.then( ( response ) => {\n\t\t\t\t\tif (\n\t\t\t\t\t\t'undefined' !== typeof response &&\n\t\t\t\t\t\t'undefined' !== typeof response.zones\n\t\t\t\t\t) {\n\t\t\t\t\t\tWPHB_Admin.cloudflare.populateSelectWithZones(\n\t\t\t\t\t\t\tresponse.zones\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\twindow.SUI.slideModal(\n\t\t\t\t\t\t\t'slide-cloudflare-zones',\n\t\t\t\t\t\t\t'cloudflare-zone-recheck',\n\t\t\t\t\t\t\t'next'\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\twindow.wphbMixPanel.enableFeature( 'Cloudflare_integration' );\n\t\t\t\t\t\t// All good, reload page.\n\t\t\t\t\t\twindow.location.reload();\n\t\t\t\t\t}\n\t\t\t\t} )\n\t\t\t\t.catch( ( error ) => {\n\t\t\t\t\tif (\n\t\t\t\t\t\t'undefined' !== typeof error.response &&\n\t\t\t\t\t\t'undefined' &&\n\t\t\t\t\t\ttypeof error.response.data &&\n\t\t\t\t\t\t'undefined' !== typeof error.response.data.code\n\t\t\t\t\t) {\n\t\t\t\t\t\t// There was one of known errors with wrong API keys.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t400 === error.response.data.code ||\n\t\t\t\t\t\t\t403 === error.response.data.code\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tapiKeyField.classList.add( 'sui-form-field-error' );\n\t\t\t\t\t\t\tapiKeyError.innerHTML = error.message;\n\t\t\t\t\t\t\tapiKeyError.style.display = 'block';\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Fallback for unknown errors.\n\t\t\t\t\t\tWPHB_Admin.notices.show( error, 'error' );\n\t\t\t\t\t}\n\t\t\t\t} )\n\t\t\t\t.finally( () => {\n\t\t\t\t\tbtn.classList.remove( 'sui-button-onload-text' );\n\t\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * Pre-populate a select with zones.\n\t\t *\n\t\t * @since 3.0.0\n\t\t *\n\t\t * @param {Array} zones\n\t\t */\n\t\tpopulateSelectWithZones: ( zones ) => {\n\t\t\tconst select = jQuery( '#cloudflare-zones' );\n\n\t\t\tselect.SUIselect2( 'destroy' );\n\n\t\t\tzones.forEach( ( zone ) => {\n\t\t\t\tif (\n\t\t\t\t\t0 ===\n\t\t\t\t\tselect.find( \"option[value='\" + zone.value + \"']\" ).length\n\t\t\t\t) {\n\t\t\t\t\t// Only add a new zone if it's not already present.\n\t\t\t\t\tconst option = new Option( zone.label, zone.value );\n\t\t\t\t\tselect.append( option ).trigger( 'change' );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tselect.SUIselect2( { minimumResultsForSearch: -1 } );\n\t\t},\n\n\t\t/**\n\t\t * Re-check Cloudflare zones.\n\t\t *\n\t\t * @since 3.0.0\n\t\t *\n\t\t * @param {Object} e\n\t\t */\n\t\trecheck: ( e ) => {\n\t\t\te.target.classList.add( 'sui-button-onload-text' );\n\n\t\t\tFetcher.common\n\t\t\t\t.call( 'wphb_cloudflare_recheck_zones' )\n\t\t\t\t.then( ( response ) => {\n\t\t\t\t\tif (\n\t\t\t\t\t\t'undefined' !== typeof response &&\n\t\t\t\t\t\t'undefined' !== typeof response.zones\n\t\t\t\t\t) {\n\t\t\t\t\t\tWPHB_Admin.cloudflare.populateSelectWithZones(\n\t\t\t\t\t\t\tresponse.zones\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\twindow.wphbMixPanel.enableFeature( 'Cloudflare_integration' );\n\t\t\t\t\t\t// All good, reload page.\n\t\t\t\t\t\twindow.location.reload();\n\t\t\t\t\t}\n\t\t\t\t} )\n\t\t\t\t.catch( ( error ) => {\n\t\t\t\t\tWPHB_Admin.notices.show( error, 'error' );\n\t\t\t\t} )\n\t\t\t\t.finally( () => {\n\t\t\t\t\te.target.classList.remove( 'sui-button-onload-text' );\n\t\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * Toggle key help from the modal.\n\t\t *\n\t\t * @since 3.0.0\n\t\t */\n\t\ttoggleHelp: () => {\n\t\t\tconst token = document.getElementById( 'cf-token-tab' ).checked;\n\t\t\tconst type = token ? 'token' : 'key';\n\n\t\t\tdocument\n\t\t\t\t.getElementById( 'cloudflare-' + type + '-how-to' )\n\t\t\t\t.classList.toggle( 'sui-hidden' );\n\n\t\t\tconst icon = document\n\t\t\t\t.getElementById( 'cloudflare-show-key-help' )\n\t\t\t\t.querySelector( 'span:last-of-type' );\n\t\t\tif ( icon.classList.contains( 'sui-icon-chevron-down' ) ) {\n\t\t\t\ticon.classList.remove( 'sui-icon-chevron-down' );\n\t\t\t\ticon.classList.add( 'sui-icon-chevron-up' );\n\t\t\t} else {\n\t\t\t\ticon.classList.remove( 'sui-icon-chevron-up' );\n\t\t\t\ticon.classList.add( 'sui-icon-chevron-down' );\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Hide instructions on connect modal when switching between key/token tabs.\n\t\t *\n\t\t * @since 3.1.0\n\t\t */\n\t\thideHelp: () => {\n\t\t\t$( '#cloudflare-key-how-to' ).addClass( 'sui-hidden' );\n\t\t\t$( '#cloudflare-token-how-to' ).addClass( 'sui-hidden' );\n\n\t\t\t$( 'span.sui-icon-chevron-up' )\n\t\t\t\t.addClass( 'sui-icon-chevron-down' )\n\t\t\t\t.removeClass( 'sui-icon-chevron-up' );\n\t\t},\n\n\t\t/**\n\t\t * Switch label based on section in modal.\n\t\t *\n\t\t * @since 3.1.0\n\t\t */\n\t\tswitchLabel: () => {\n\t\t\tconst token = document.getElementById( 'cf-token-tab' ).checked;\n\t\t\tconst type = token ? 'token' : 'key';\n\n\t\t\tdocument.getElementById( 'cloudflare-email' ).value = '';\n\t\t\tdocument.getElementById( 'cloudflare-api-key' ).value = '';\n\t\t\tdocument.getElementById( 'cloudflare-api-token' ).value = '';\n\n\t\t\tdocument.querySelector(\n\t\t\t\t'#cloudflare-show-key-help > span:first-of-type'\n\t\t\t).innerHTML = wphb.strings[ 'CloudflareHelpAPI' + type ];\n\t\t},\n\t};\n}( jQuery ) );\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","'use strict';\nvar $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a function');\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) === 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) === 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version v4.2.8+1e68dce6\n */\n\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.ES6Promise = factory());\n}(this, (function () { 'use strict';\n\nfunction objectOrFunction(x) {\n var type = typeof x;\n return x !== null && (type === 'object' || type === 'function');\n}\n\nfunction isFunction(x) {\n return typeof x === 'function';\n}\n\n\n\nvar _isArray = void 0;\nif (Array.isArray) {\n _isArray = Array.isArray;\n} else {\n _isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n}\n\nvar isArray = _isArray;\n\nvar len = 0;\nvar vertxNext = void 0;\nvar customSchedulerFn = void 0;\n\nvar asap = function asap(callback, arg) {\n queue[len] = callback;\n queue[len + 1] = arg;\n len += 2;\n if (len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (customSchedulerFn) {\n customSchedulerFn(flush);\n } else {\n scheduleFlush();\n }\n }\n};\n\nfunction setScheduler(scheduleFn) {\n customSchedulerFn = scheduleFn;\n}\n\nfunction setAsap(asapFn) {\n asap = asapFn;\n}\n\nvar browserWindow = typeof window !== 'undefined' ? window : undefined;\nvar browserGlobal = browserWindow || {};\nvar BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\nvar isNode = typeof self === 'undefined' && typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\n\n// test for web worker but not in IE10\nvar isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';\n\n// node\nfunction useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function () {\n return process.nextTick(flush);\n };\n}\n\n// vertx\nfunction useVertxTimer() {\n if (typeof vertxNext !== 'undefined') {\n return function () {\n vertxNext(flush);\n };\n }\n\n return useSetTimeout();\n}\n\nfunction useMutationObserver() {\n var iterations = 0;\n var observer = new BrowserMutationObserver(flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function () {\n node.data = iterations = ++iterations % 2;\n };\n}\n\n// web worker\nfunction useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = flush;\n return function () {\n return channel.port2.postMessage(0);\n };\n}\n\nfunction useSetTimeout() {\n // Store setTimeout reference so es6-promise will be unaffected by\n // other code modifying setTimeout (like sinon.useFakeTimers())\n var globalSetTimeout = setTimeout;\n return function () {\n return globalSetTimeout(flush, 1);\n };\n}\n\nvar queue = new Array(1000);\nfunction flush() {\n for (var i = 0; i < len; i += 2) {\n var callback = queue[i];\n var arg = queue[i + 1];\n\n callback(arg);\n\n queue[i] = undefined;\n queue[i + 1] = undefined;\n }\n\n len = 0;\n}\n\nfunction attemptVertx() {\n try {\n var vertx = Function('return this')().require('vertx');\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n } catch (e) {\n return useSetTimeout();\n }\n}\n\nvar scheduleFlush = void 0;\n// Decide what async method to use to triggering processing of queued callbacks:\nif (isNode) {\n scheduleFlush = useNextTick();\n} else if (BrowserMutationObserver) {\n scheduleFlush = useMutationObserver();\n} else if (isWorker) {\n scheduleFlush = useMessageChannel();\n} else if (browserWindow === undefined && typeof require === 'function') {\n scheduleFlush = attemptVertx();\n} else {\n scheduleFlush = useSetTimeout();\n}\n\nfunction then(onFulfillment, onRejection) {\n var parent = this;\n\n var child = new this.constructor(noop);\n\n if (child[PROMISE_ID] === undefined) {\n makePromise(child);\n }\n\n var _state = parent._state;\n\n\n if (_state) {\n var callback = arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\n } else {\n subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n}\n\n/**\n `Promise.resolve` returns a promise that will become resolved with the\n passed `value`. It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n resolve(1);\n });\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.resolve(1);\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n @method resolve\n @static\n @param {Any} value value that the returned promise will be resolved with\n Useful for tooling.\n @return {Promise} a promise that will become fulfilled with the given\n `value`\n*/\nfunction resolve$1(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(noop);\n resolve(promise, object);\n return promise;\n}\n\nvar PROMISE_ID = Math.random().toString(36).substring(2);\n\nfunction noop() {}\n\nvar PENDING = void 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\n\nfunction selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n}\n\nfunction cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n}\n\nfunction tryThen(then$$1, value, fulfillmentHandler, rejectionHandler) {\n try {\n then$$1.call(value, fulfillmentHandler, rejectionHandler);\n } catch (e) {\n return e;\n }\n}\n\nfunction handleForeignThenable(promise, thenable, then$$1) {\n asap(function (promise) {\n var sealed = false;\n var error = tryThen(then$$1, thenable, function (value) {\n if (sealed) {\n return;\n }\n sealed = true;\n if (thenable !== value) {\n resolve(promise, value);\n } else {\n fulfill(promise, value);\n }\n }, function (reason) {\n if (sealed) {\n return;\n }\n sealed = true;\n\n reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n reject(promise, error);\n }\n }, promise);\n}\n\nfunction handleOwnThenable(promise, thenable) {\n if (thenable._state === FULFILLED) {\n fulfill(promise, thenable._result);\n } else if (thenable._state === REJECTED) {\n reject(promise, thenable._result);\n } else {\n subscribe(thenable, undefined, function (value) {\n return resolve(promise, value);\n }, function (reason) {\n return reject(promise, reason);\n });\n }\n}\n\nfunction handleMaybeThenable(promise, maybeThenable, then$$1) {\n if (maybeThenable.constructor === promise.constructor && then$$1 === then && maybeThenable.constructor.resolve === resolve$1) {\n handleOwnThenable(promise, maybeThenable);\n } else {\n if (then$$1 === undefined) {\n fulfill(promise, maybeThenable);\n } else if (isFunction(then$$1)) {\n handleForeignThenable(promise, maybeThenable, then$$1);\n } else {\n fulfill(promise, maybeThenable);\n }\n }\n}\n\nfunction resolve(promise, value) {\n if (promise === value) {\n reject(promise, selfFulfillment());\n } else if (objectOrFunction(value)) {\n var then$$1 = void 0;\n try {\n then$$1 = value.then;\n } catch (error) {\n reject(promise, error);\n return;\n }\n handleMaybeThenable(promise, value, then$$1);\n } else {\n fulfill(promise, value);\n }\n}\n\nfunction publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n publish(promise);\n}\n\nfunction fulfill(promise, value) {\n if (promise._state !== PENDING) {\n return;\n }\n\n promise._result = value;\n promise._state = FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n asap(publish, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state !== PENDING) {\n return;\n }\n promise._state = REJECTED;\n promise._result = reason;\n\n asap(publishRejection, promise);\n}\n\nfunction subscribe(parent, child, onFulfillment, onRejection) {\n var _subscribers = parent._subscribers;\n var length = _subscribers.length;\n\n\n parent._onerror = null;\n\n _subscribers[length] = child;\n _subscribers[length + FULFILLED] = onFulfillment;\n _subscribers[length + REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n asap(publish, parent);\n }\n}\n\nfunction publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) {\n return;\n }\n\n var child = void 0,\n callback = void 0,\n detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n}\n\nfunction invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback),\n value = void 0,\n error = void 0,\n succeeded = true;\n\n if (hasCallback) {\n try {\n value = callback(detail);\n } catch (e) {\n succeeded = false;\n error = e;\n }\n\n if (promise === value) {\n reject(promise, cannotReturnOwn());\n return;\n }\n } else {\n value = detail;\n }\n\n if (promise._state !== PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n resolve(promise, value);\n } else if (succeeded === false) {\n reject(promise, error);\n } else if (settled === FULFILLED) {\n fulfill(promise, value);\n } else if (settled === REJECTED) {\n reject(promise, value);\n }\n}\n\nfunction initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value) {\n resolve(promise, value);\n }, function rejectPromise(reason) {\n reject(promise, reason);\n });\n } catch (e) {\n reject(promise, e);\n }\n}\n\nvar id = 0;\nfunction nextId() {\n return id++;\n}\n\nfunction makePromise(promise) {\n promise[PROMISE_ID] = id++;\n promise._state = undefined;\n promise._result = undefined;\n promise._subscribers = [];\n}\n\nfunction validationError() {\n return new Error('Array Methods must be provided an Array');\n}\n\nvar Enumerator = function () {\n function Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(noop);\n\n if (!this.promise[PROMISE_ID]) {\n makePromise(this.promise);\n }\n\n if (isArray(input)) {\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate(input);\n if (this._remaining === 0) {\n fulfill(this.promise, this._result);\n }\n }\n } else {\n reject(this.promise, validationError());\n }\n }\n\n Enumerator.prototype._enumerate = function _enumerate(input) {\n for (var i = 0; this._state === PENDING && i < input.length; i++) {\n this._eachEntry(input[i], i);\n }\n };\n\n Enumerator.prototype._eachEntry = function _eachEntry(entry, i) {\n var c = this._instanceConstructor;\n var resolve$$1 = c.resolve;\n\n\n if (resolve$$1 === resolve$1) {\n var _then = void 0;\n var error = void 0;\n var didError = false;\n try {\n _then = entry.then;\n } catch (e) {\n didError = true;\n error = e;\n }\n\n if (_then === then && entry._state !== PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof _then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === Promise$1) {\n var promise = new c(noop);\n if (didError) {\n reject(promise, error);\n } else {\n handleMaybeThenable(promise, entry, _then);\n }\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function (resolve$$1) {\n return resolve$$1(entry);\n }), i);\n }\n } else {\n this._willSettleAt(resolve$$1(entry), i);\n }\n };\n\n Enumerator.prototype._settledAt = function _settledAt(state, i, value) {\n var promise = this.promise;\n\n\n if (promise._state === PENDING) {\n this._remaining--;\n\n if (state === REJECTED) {\n reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n fulfill(promise, this._result);\n }\n };\n\n Enumerator.prototype._willSettleAt = function _willSettleAt(promise, i) {\n var enumerator = this;\n\n subscribe(promise, undefined, function (value) {\n return enumerator._settledAt(FULFILLED, i, value);\n }, function (reason) {\n return enumerator._settledAt(REJECTED, i, reason);\n });\n };\n\n return Enumerator;\n}();\n\n/**\n `Promise.all` accepts an array of promises, and returns a new promise which\n is fulfilled with an array of fulfillment values for the passed promises, or\n rejected with the reason of the first passed promise to be rejected. It casts all\n elements of the passed iterable to promises as it runs this algorithm.\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = resolve(2);\n let promise3 = resolve(3);\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // The array here would be [ 1, 2, 3 ];\n });\n ```\n\n If any of the `promises` given to `all` are rejected, the first promise\n that is rejected will be given as an argument to the returned promises's\n rejection handler. For example:\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = reject(new Error(\"2\"));\n let promise3 = reject(new Error(\"3\"));\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // Code here never runs because there are rejected promises!\n }, function(error) {\n // error.message === \"2\"\n });\n ```\n\n @method all\n @static\n @param {Array} entries array of promises\n @param {String} label optional string for labeling the promise.\n Useful for tooling.\n @return {Promise} promise that is fulfilled when all `promises` have been\n fulfilled, or rejected if any of them become rejected.\n @static\n*/\nfunction all(entries) {\n return new Enumerator(this, entries).promise;\n}\n\n/**\n `Promise.race` returns a new promise which is settled in the same way as the\n first passed promise to settle.\n\n Example:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 2');\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // result === 'promise 2' because it was resolved before promise1\n // was resolved.\n });\n ```\n\n `Promise.race` is deterministic in that only the state of the first\n settled promise matters. For example, even if other promises given to the\n `promises` array argument are resolved, but the first settled promise has\n become rejected before the other promises became fulfilled, the returned\n promise will become rejected:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n reject(new Error('promise 2'));\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // Code here never runs\n }, function(reason){\n // reason.message === 'promise 2' because promise 2 became rejected before\n // promise 1 became fulfilled\n });\n ```\n\n An example real-world use case is implementing timeouts:\n\n ```javascript\n Promise.race([ajax('foo.json'), timeout(5000)])\n ```\n\n @method race\n @static\n @param {Array} promises array of promises to observe\n Useful for tooling.\n @return {Promise} a promise which settles in the same way as the first passed\n promise to settle.\n*/\nfunction race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (!isArray(entries)) {\n return new Constructor(function (_, reject) {\n return reject(new TypeError('You must pass an array to race.'));\n });\n } else {\n return new Constructor(function (resolve, reject) {\n var length = entries.length;\n for (var i = 0; i < length; i++) {\n Constructor.resolve(entries[i]).then(resolve, reject);\n }\n });\n }\n}\n\n/**\n `Promise.reject` returns a promise rejected with the passed `reason`.\n It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n reject(new Error('WHOOPS'));\n });\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.reject(new Error('WHOOPS'));\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n @method reject\n @static\n @param {Any} reason value that the returned promise will be rejected with.\n Useful for tooling.\n @return {Promise} a promise rejected with the given `reason`.\n*/\nfunction reject$1(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(noop);\n reject(promise, reason);\n return promise;\n}\n\nfunction needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n}\n\nfunction needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n}\n\n/**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n let promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n let xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {Function} resolver\n Useful for tooling.\n @constructor\n*/\n\nvar Promise$1 = function () {\n function Promise(resolver) {\n this[PROMISE_ID] = nextId();\n this._result = this._state = undefined;\n this._subscribers = [];\n\n if (noop !== resolver) {\n typeof resolver !== 'function' && needsResolver();\n this instanceof Promise ? initializePromise(this, resolver) : needsNew();\n }\n }\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n Chaining\n --------\n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n Assimilation\n ------------\n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n If the assimliated promise rejects, then the downstream promise will also reject.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n Simple Example\n --------------\n Synchronous Example\n ```javascript\n let result;\n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n Advanced Example\n --------------\n Synchronous Example\n ```javascript\n let author, books;\n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n function foundBooks(books) {\n }\n function failure(reason) {\n }\n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n\n\n Promise.prototype.catch = function _catch(onRejection) {\n return this.then(null, onRejection);\n };\n\n /**\n `finally` will be invoked regardless of the promise's fate just as native\n try/catch/finally behaves\n \n Synchronous example:\n \n ```js\n findAuthor() {\n if (Math.random() > 0.5) {\n throw new Error();\n }\n return new Author();\n }\n \n try {\n return findAuthor(); // succeed or fail\n } catch(error) {\n return findOtherAuther();\n } finally {\n // always runs\n // doesn't affect the return value\n }\n ```\n \n Asynchronous example:\n \n ```js\n findAuthor().catch(function(reason){\n return findOtherAuther();\n }).finally(function(){\n // author was either found, or not\n });\n ```\n \n @method finally\n @param {Function} callback\n @return {Promise}\n */\n\n\n Promise.prototype.finally = function _finally(callback) {\n var promise = this;\n var constructor = promise.constructor;\n\n if (isFunction(callback)) {\n return promise.then(function (value) {\n return constructor.resolve(callback()).then(function () {\n return value;\n });\n }, function (reason) {\n return constructor.resolve(callback()).then(function () {\n throw reason;\n });\n });\n }\n\n return promise.then(callback, callback);\n };\n\n return Promise;\n}();\n\nPromise$1.prototype.then = then;\nPromise$1.all = all;\nPromise$1.race = race;\nPromise$1.resolve = resolve$1;\nPromise$1.reject = reject$1;\nPromise$1._setScheduler = setScheduler;\nPromise$1._setAsap = setAsap;\nPromise$1._asap = asap;\n\n/*global self*/\nfunction polyfill() {\n var local = void 0;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P) {\n var promiseToString = null;\n try {\n promiseToString = Object.prototype.toString.call(P.resolve());\n } catch (e) {\n // silently ignored\n }\n\n if (promiseToString === '[object Promise]' && !P.cast) {\n return;\n }\n }\n\n local.Promise = Promise$1;\n}\n\n// Strange compat..\nPromise$1.polyfill = polyfill;\nPromise$1.Promise = Promise$1;\n\nreturn Promise$1;\n\n})));\n\n\n\n//# sourceMappingURL=es6-promise.map\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","'use strict';\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (CONSTRUCTOR, METHOD) {\n return uncurryThis(globalThis[CONSTRUCTOR].prototype[METHOD]);\n};\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL &&\n !Symbol.sham &&\n typeof Symbol.iterator == 'symbol';\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) === 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","'use strict';\nrequire('../../modules/es.array.find-index');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'findIndex');\n","'use strict';\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\nvar documentAll = typeof document == 'object' && document.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nmodule.exports = typeof documentAll == 'undefined' && documentAll !== undefined ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","/* global wphb */\n/* global wphbMixPanel */\n\n/**\n * Internal dependencies\n */\nimport Fetcher from '../utils/fetcher';\nimport { getString } from '../utils/helpers';\n\n( function( $ ) {\n\t'use strict';\n\n\tconst WPHB_Admin = {\n\t\tmodules: [],\n\t\t// Common functionality to all screens\n\t\tinit() {\n\t\t\t/**\n\t\t\t * Handles the tab navigation on mobile.\n\t\t\t *\n\t\t\t * @since 2.7.2\n\t\t\t */\n\t\t\t$( '.sui-mobile-nav' ).on( 'change', ( e ) => {\n\t\t\t\twindow.location.href = e.target.value;\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Refresh page, when selecting a report type.\n\t\t\t *\n\t\t\t * @since 2.0.0\n\t\t\t */\n\t\t\t$( 'select#wphb-performance-report-type' ).on(\n\t\t\t\t'change',\n\t\t\t\tfunction( e ) {\n\t\t\t\t\tconst url = new URL( window.location );\n\t\t\t\t\turl.searchParams.set( 'type', e.target.value );\n\t\t\t\t\twindow.location = url;\n\t\t\t\t}\n\t\t\t);\n\n\t\t\t$( '#safe_mode' ).on( 'click', function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\tconst willBeChecked = ! this.checked; // This is the state after click\n\t\t\t\tconst modalId = willBeChecked ? 'wphb-safe-mode-confirmation-modal' : 'wphb-safe-mode-modal';\n\n\t\t\t\tif ( willBeChecked ) {\n\t\t\t\t\tFetcher.common\n\t\t\t\t\t\t.call( 'wphb_safemode_has_changes', true )\n\t\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\t\tif ( response.hasChanges ) {\n\t\t\t\t\t\t\t\twindow.SUI.openModal( modalId, 'wpbody-content' );\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tconst safeModeCheckbox = document.getElementById( 'safe_mode' );\n\t\t\t\t\t\t\t\tif ( safeModeCheckbox ) {\n\t\t\t\t\t\t\t\t\tsafeModeCheckbox.checked = false;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t} else {\n\t\t\t\t\twindow.SUI.openModal( modalId, 'wpbody-content' );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Clear log button clicked.\n\t\t\t *\n\t\t\t * @since 1.9.2\n\t\t\t */\n\t\t\t$( '.wphb-logging-buttons' ).on(\n\t\t\t\t'click',\n\t\t\t\t'.wphb-logs-clear',\n\t\t\t\tfunction( e ) {\n\t\t\t\t\te.preventDefault();\n\n\t\t\t\t\tFetcher.common\n\t\t\t\t\t\t.clearLogs( e.target.dataset.module )\n\t\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\t\tif ( 'undefined' === typeof response.success ) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ( response.success ) {\n\t\t\t\t\t\t\t\tWPHB_Admin.notices.show( response.message );\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tWPHB_Admin.notices.show(\n\t\t\t\t\t\t\t\t\tresponse.message,\n\t\t\t\t\t\t\t\t\t'error'\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t);\n\n\t\t\t/**\n\t\t\t * Track performance report scan init.\n\t\t\t *\n\t\t\t * @since 2.5.0\n\t\t\t */\n\t\t\t$( '#performance-run-test, #performance-scan-website, #run-performance-test' ).on(\n\t\t\t\t'click',\n\t\t\t\tfunction() {\n\t\t\t\t\tconst location = $( this ).attr( 'data-location' );\n\t\t\t\t\twphbMixPanel.track( 'plugin_scan_started', {\n\t\t\t\t\t\tscore_mobile_previous: getString(\n\t\t\t\t\t\t\t'previousScoreMobile'\n\t\t\t\t\t\t),\n\t\t\t\t\t\tscore_desktop_previous: getString(\n\t\t\t\t\t\t\t'previousScoreDesktop'\n\t\t\t\t\t\t),\n\t\t\t\t\t\t'AO Status': getString(\n\t\t\t\t\t\t\t'aoStatus'\n\t\t\t\t\t\t),\n\t\t\t\t\t\tLocation: typeof location !== 'undefined' ? location : 'unknown',\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tconst urlParams = new URLSearchParams( window.location.search );\n\t\t\tif ( urlParams.has( 'wphb_safemode_published' ) ) {\n\t\t\t\tWPHB_Admin.notices.show( getString( 'safeModePublished' ), 'success' );\n\t\t\t\turlParams.delete( 'wphb_safemode_published' );\n\t\t\t\twindow.history.replaceState( {}, document.title, window.location.pathname + '?' + urlParams.toString() );\n\t\t\t}\n\t\t},\n\n\t\tinitModule( module ) {\n\t\t\tif ( this.hasOwnProperty( module ) ) {\n\t\t\t\tthis.modules[ module ] = this[ module ].init();\n\t\t\t\treturn this.modules[ module ];\n\t\t\t}\n\n\t\t\treturn {};\n\t\t},\n\n\t\ttoggleSafeMode( button ) {\n\t\t\tbutton.classList.add( 'disabled' );\n\t\t\tFetcher.common\n\t\t\t\t.callWithParams( 'wphb_toggle_safe_mode', true )\n\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t// Check the checkbox before closing modal and reloading\n\t\t\t\t\tconst safeModeCheckbox = document.getElementById( 'safe_mode' );\n\t\t\t\t\tif ( safeModeCheckbox ) {\n\t\t\t\t\t\tsafeModeCheckbox.checked = true;\n\t\t\t\t\t}\n\t\t\t\t\twindow.SUI.closeModal();\n\t\t\t\t\tWPHB_Admin.notices.show( response.message );\n\t\t\t\t\tsetTimeout( () => {\n\t\t\t\t\t\twindow.location.reload();\n\t\t\t\t\t}, 500 );\n\t\t\t\t\tbutton.classList.remove( 'disabled' );\n\t\t\t\t} );\n\t\t},\n\n\t\tdiscardSafeMode( button ) {\n\t\t\tbutton.classList.add( 'disabled' );\n\t\t\tFetcher.common\n\t\t\t\t.callWithParams( 'wphb_discard_safe_mode', true )\n\t\t\t\t.then( ( ) => {\n\t\t\t\t\tbutton.classList.remove( 'disabled' );\n\t\t\t\t\twindow.SUI.closeModal();\n\t\t\t\t\twindow.location.reload();\n\t\t\t\t} );\n\t\t},\n\n\t\tpublishSafeMode( button ) {\n\t\t\tbutton.classList.add( 'disabled' );\n\t\t\tconst clearAllCache = document.getElementById( 'wphb-safe-mode-clear-all-cache' );\n\t\t\tconst clearAllCacheValue = clearAllCache ? clearAllCache.checked : false;\n\t\t\tFetcher.common\n\t\t\t\t.callWithParams( 'wphb_publish_safe_mode', clearAllCacheValue )\n\t\t\t\t.then( ( response ) => {\n\t\t\t\t\tbutton.classList.remove( 'disabled' );\n\t\t\t\t\tWPHB_Admin.notices.show( response.message );\n\t\t\t\t\tsetTimeout( () => {\n\t\t\t\t\t\twindow.location.reload();\n\t\t\t\t\t}, 500 );\n\t\t\t\t\twindow.SUI.closeModal();\n\t\t\t\t} );\n\t\t},\n\n\t\tgetModule( module ) {\n\t\t\tif ( typeof this.modules[ module ] !== 'undefined' ) {\n\t\t\t\treturn this.modules[ module ];\n\t\t\t}\n\t\t\treturn this.initModule( module );\n\t\t},\n\t};\n\n\t/**\n\t * Admin notices.\n\t */\n\tWPHB_Admin.notices = {\n\t\tinit() {\n\t\t\tconst cfNotice = document.getElementById( 'dismiss-cf-notice' );\n\t\t\tif ( cfNotice ) {\n\t\t\t\tcfNotice.onclick = ( e ) => this.dismissCloudflareNotice( e );\n\t\t\t}\n\n\t\t\tconst http2Notice = document.getElementById(\n\t\t\t\t'wphb-floating-http2-info'\n\t\t\t);\n\t\t\tif ( http2Notice ) {\n\t\t\t\thttp2Notice.addEventListener( 'click', ( e ) => {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tFetcher.common.dismissNotice( 'http2-info' );\n\t\t\t\t\t$( '.wphb-box-notice' ).slideUp();\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tconst rateButtons = document.querySelectorAll( '.wphb-rate-buttons>a' );\n\t\t\trateButtons.forEach( ( button ) => {\n\t\t\t\tbutton.addEventListener( 'click', ( e ) => this.rateActions( e ) );\n\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * Show notice.\n\t\t *\n\t\t * @since 1.8\n\t\t *\n\t\t * @param {string} message Message to display.\n\t\t * @param {string} type Error or success.\n\t\t * @param {boolean} dismiss Auto dismiss message.\n\t\t */\n\t\tshow( message = '', type = 'success', dismiss = true ) {\n\t\t\tif ( '' === message ) {\n\t\t\t\tmessage = getString( 'successUpdate' );\n\t\t\t}\n\n\t\t\tconst options = {\n\t\t\t\ttype,\n\t\t\t\tdismiss: {\n\t\t\t\t\tshow: false,\n\t\t\t\t\tlabel: getString( 'dismissLabel' ),\n\t\t\t\t\ttooltip: getString( 'dismissLabel' ),\n\t\t\t\t},\n\t\t\t\ticon: 'info',\n\t\t\t};\n\n\t\t\tif ( ! dismiss ) {\n\t\t\t\toptions.dismiss.show = true;\n\t\t\t}\n\n\t\t\twindow.SUI.openNotice(\n\t\t\t\t'wphb-ajax-update-notice',\n\t\t\t\t'<p>' + message + '</p>',\n\t\t\t\toptions\n\t\t\t);\n\t\t},\n\n\t\t/**\n\t\t * Dismiss notice.\n\t\t *\n\t\t * @since 2.6.0 Refactored and moved from WPHB_Admin.init()\n\t\t *\n\t\t * @param {Object} el\n\t\t */\n\t\tdismiss( el ) {\n\t\t\tconst noticeId = el.closest( '.sui-notice' ).getAttribute( 'id' );\n\t\t\tFetcher.common.dismissNotice( noticeId );\n\t\t\twindow.SUI.closeNotice( noticeId );\n\t\t},\n\n\t\t/**\n\t\t * Dismiss Cloudflare notice from Dashboard or Caching pages.\n\t\t *\n\t\t * @since 2.6.0 Refactored and moved from WPHB_Admin.dashboard.init() && WPHB_ADMIN.caching.init()\n\t\t *\n\t\t * @param {Object} e\n\t\t */\n\t\tdismissCloudflareNotice( e ) {\n\t\t\te.preventDefault();\n\t\t\tFetcher.common.call( 'wphb_cf_notice_dismiss' );\n\t\t\tconst cloudFlareDashNotice = $( '.cf-dash-notice' );\n\t\t\tcloudFlareDashNotice.slideUp();\n\t\t\tcloudFlareDashNotice.parent().addClass( 'no-background-image' );\n\t\t},\n\n\t\t/**\n\t\t * Handle rate notice actions.\n\t\t *\n\t\t * @since 3.18.0\n\t\t *\n\t\t * @param {Object} e Event object.\n\t\t */\n\t\trateActions( e ) {\n\t\t\tconst action = e.currentTarget.getAttribute( 'data-Action' );\n\t\t\tif ( 'rate' !== action ) {\n\t\t\t\te.preventDefault();\n\t\t\t}\n\n\t\t\tconst rateNotice = $( '.notice-free-rated' );\n\t\t\tlet noticeType;\n\t\t\tif ( rateNotice.hasClass( 'notice-perf-rate' ) ) {\n\t\t\t\tnoticeType = 'performance_score';\n\t\t\t} else {\n\t\t\t\tnoticeType = 'seven_days';\n\t\t\t}\n\n\t\t\tconst pageMap = {\n\t\t\t\twphb: 'Dashboard',\n\t\t\t\t'wphb-performance': 'Performance Test',\n\t\t\t\t'wphb-caching': 'Caching',\n\t\t\t\t'wphb-minification': 'Asset Optimization',\n\t\t\t\t'wphb-advanced': 'Advanced Tools',\n\t\t\t\t'wphb-uptime': 'Uptime',\n\t\t\t\t'wphb-notifications': 'Notifications',\n\t\t\t\t'wphb-settings': 'Settings',\n\t\t\t};\n\t\t\tlet location = 'Unknown';\n\t\t\tconst urlParams = new URLSearchParams( window.location.search );\n\t\t\tconst pageSlug = urlParams.get( 'page' );\n\t\t\tif ( pageSlug && pageMap[ pageSlug ] ) {\n\t\t\t\tlocation = pageMap[ pageSlug ];\n\t\t\t}\n\n\t\t\twphbMixPanel.track( 'Rating Notice', {\n\t\t\t\tAction: action,\n\t\t\t\t'Notice Type': noticeType,\n\t\t\t\tLocation: location,\n\t\t\t} );\n\n\t\t\trateNotice.slideUp();\n\n\t\t\tFetcher.common.dismissNotice( 'free-rated', action );\n\t\t},\n\n\t};\n\n\twindow.WPHB_Admin = WPHB_Admin;\n}( jQuery ) );\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (isConstructor(C) && (C === $Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? $Array : C;\n};\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","'use strict';\nvar classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar globalThis = require('../internals/global-this');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = module.exports = globalThis[SHARED] || defineGlobalProperty(SHARED, {});\n\n(store.versions || (store.versions = [])).push({\n version: '3.47.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2025 Denis Pushkarev (zloirock.ru), 2025 CoreJS Company (core-js.io)',\n license: 'https://github.com/zloirock/core-js/blob/v3.47.0/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","'use strict';\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw new $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(globalThis[namespace]) : globalThis[namespace] && globalThis[namespace][method];\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n var len = toIntegerOrInfinity(argument);\n return len > 0 ? min(len, 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = globalThis.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw new $TypeError($String(argument) + ' is not an object');\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = globalThis.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype !== 42;\n});\n","'use strict';\n// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","'use strict';\nvar $ = require('../internals/export');\nvar $findIndex = require('../internals/array-iteration').findIndex;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND_INDEX = 'findIndex';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\n// eslint-disable-next-line es/no-array-prototype-findindex -- testing\nif (FIND_INDEX in []) Array(1)[FIND_INDEX](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.findIndex` method\n// https://tc39.es/ecma262/#sec-array.prototype.findindex\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n findIndex: function findIndex(callbackfn /* , that = undefined */) {\n return $findIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND_INDEX);\n","'use strict';\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = uncurryThis([].push);\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE === 1;\n var IS_FILTER = TYPE === 2;\n var IS_SOME = TYPE === 3;\n var IS_EVERY = TYPE === 4;\n var IS_FIND_INDEX = TYPE === 6;\n var IS_FILTER_REJECT = TYPE === 7;\n var NO_HOLES = TYPE === 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var length = lengthOfArrayLike(self);\n var boundFunction = bind(callbackfn, that);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push(target, value); // filterReject\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","import Scanner from '../utils/scanner';\nimport Fetcher from '../utils/fetcher';\nimport { getLink } from '../utils/helpers';\n\nclass MinifyScanner extends Scanner {\n\t/**\n\t * Execute a scan step recursively.\n\t *\n\t * @param {number} remainingSteps\n\t */\n\tstep( remainingSteps ) {\n\t\tsuper.step( remainingSteps );\n\n\t\tif ( remainingSteps >= 0 ) {\n\t\t\tFetcher.minification.checkStep( this.currentStep ).then( () => {\n\t\t\t\tremainingSteps = remainingSteps - 1;\n\t\t\t\tthis.updateProgressBar( this.getProgress() );\n\t\t\t\tthis.step( remainingSteps );\n\t\t\t} );\n\t\t} else {\n\t\t\tFetcher.minification.finishCheck().then( ( response ) => {\n\t\t\t\tthis.onFinish( response );\n\t\t\t} );\n\t\t}\n\t}\n\n\tcancel() {\n\t\tsuper.cancel();\n\t\tFetcher.minification.cancelScan().then( () => {\n\t\t\twindow.location.href = getLink( 'minification' );\n\t\t} );\n\t}\n\n\tonStart() {\n\t\treturn Fetcher.minification.startCheck();\n\t}\n\n\tonFinish( response ) {\n\t\tsuper.onFinish();\n\n\t\tif ( 'undefined' !== typeof response.assets_msg ) {\n\t\t\tdocument.getElementById( 'assetsFound' ).innerHTML =\n\t\t\t\tresponse.assets_msg;\n\t\t}\n\n\t\twindow.SUI.closeModal();\n\t\twindow.SUI.openModal( 'wphb-assets-modal', 'wpbody-content' );\n\t}\n}\n\nexport default MinifyScanner;\n","/* global WPHB_Admin */\n/* global wphb */\n/* global ajaxurl */\n\n/**\n * Asset Optimization scripts.\n *\n * @package\n */\n\nimport Fetcher from '../utils/fetcher';\nimport { getString, getLink } from '../utils/helpers';\nimport MinifyScanner from '../scanners/MinifyScanner';\n\n/**\n * External dependencies\n */\nlet criticalAjaxInterval;\nconst ajaxExecutionInterval = 10000; // The interval set to 10 seconds\n\n( function( $ ) {\n\t'use strict';\n\n\tWPHB_Admin.minification = {\n\t\tmodule: 'minification',\n\t\t$checkFilesResultsContainer: null,\n\t\tcheckURLSList: null,\n\t\tcheckedURLS: 0,\n\t\tSELECTORS: [\n\t\t\t'#item_delay_js_post_urls_exclusion',\n\t\t\t'#item_delay_js_all_exclusions',\n\t\t\t'#item_delay_js_plugins_themes_exclusion',\n\t\t\t'#item_delay_js_post_types_exclusion',\n\t\t\t'#item_delay_js_files_exclusion',\n\t\t\t'#item_delay_js_exclusions',\n\t\t\t'#item_delay_js_ads_tracker_exclusion',\n\t\t\t'#item_delay_js_default_exclusions',\n\t\t\t'#item_critical_css_all_exclusions',\n\t\t\t'#item_critical_css_files_exclusion',\n\t\t\t'#item_critical_css_post_types_exclusion',\n\t\t\t'#item_critical_css_post_urls_exclusion',\n\t\t\t'#item_critical_css_plugins_themes_exclusion',\n\t\t\t'#item_critical_css_keywords',\n\t\t],\n\t\tEXCLUSION_SELECTORS: [\n\t\t\t'#item_delay_js_all_exclusions',\n\t\t\t'#item_critical_css_all_exclusions'\n\t\t],\n\t\tCONTAINER_CLASSES: {\n\t\t\tdelayJs: '.js_exclusion_container',\n\t\t\tcriticalCss: '.critical_css_exclusion_container'\n\t\t},\n\t\tALL_EXCLUSIONS: {\n\t\t\tdelayJs: 'delay_js_all_exclusions',\n\t\t\tcriticalCss: 'critical_css_all_exclusions'\n\t\t},\n\n\t\texclusionType: 'delay_js',\n\n\t\tinit() {\n\t\t\tconst self = this;\n\t\t\tif ( 'undefined' !== typeof wphb.minification.criticalStatusForQueue.status && ( 'pending' === wphb.minification.criticalStatusForQueue.status || 'processing' === wphb.minification.criticalStatusForQueue.status ) ) {\n\t\t\t\tcriticalAjaxInterval = setInterval( this.criticalUpdateStatusNotice, ajaxExecutionInterval );\n\t\t\t}\n\n\t\t\t// Init files scanner.\n\t\t\tthis.scanner = new MinifyScanner(\n\t\t\t\twphb.minification.get.totalSteps,\n\t\t\t\twphb.minification.get.currentScanStep\n\t\t\t);\n\n\t\t\t// Initialize exclusion selectors and event handlers.\n\t\t\tthis.initializeSelectorsAndEventHandlers();\n\n\t\t\t// Check files button.\n\t\t\t$( '#check-files' ).on( 'click', function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\t$( document ).trigger( 'check-files' );\n\t\t\t} );\n\n\t\t\t$( '#hb_cdn_upsell' ).on( 'click', function( e ) {\n\t\t\t\twindow.wphbMixPanel.trackHBUpsell( 'cdn', 'ao_settings_link', 'cta_clicked', e.target.href, 'hb_cdn_upsell' );\n\t\t\t} );\n\n\t\t\t$( document ).on( 'check-files', function() {\n\t\t\t\twindow.SUI.openModal( 'check-files-modal', 'wpbody-content', 'check-files-modal' );\n\t\t\t\t$( this ).attr( 'disabled', true );\n\t\t\t\tself.scanner.start();\n\t\t\t} );\n\n\t\t\t// CDN checkbox update status\n\t\t\tconst checkboxes = $( 'input[type=checkbox][name=use_cdn]' );\n\t\t\tcheckboxes.on( 'change', function() {\n\t\t\t\t$( '#cdn_file_exclude' ).toggleClass( 'sui-hidden' );\n\t\t\t\tconst cdnValue = $( this ).is( ':checked' );\n\n\t\t\t\t// Handle two CDN checkboxes on Asset Optimization page\n\t\t\t\tcheckboxes.each( function() {\n\t\t\t\t\tthis.checked = cdnValue;\n\t\t\t\t} );\n\n\t\t\t\t// Update CDN status\n\t\t\t\tFetcher.minification.toggleCDN( cdnValue ).then( () => {\n\t\t\t\t\tWPHB_Admin.notices.show();\n\t\t\t\t} );\n\t\t\t} );\n\n\t\t\t$( '#delay_js_keywords_advanced_view' ).on( 'change', () => this.toggleAdvancedKeywordsView() );\n\n\t\t\t// Delay Js Execution checkbox update status.\n\t\t\t$( 'input[type=checkbox][name=delay_js]' ).on(\n\t\t\t\t'change',\n\t\t\t\tfunction() {\n\t\t\t\t\t$( '#delay_js_file_exclude' ).toggleClass( 'sui-hidden' );\n\t\t\t\t}\n\t\t\t);\n\n\t\t\t// Critical CSS checkbox update status.\n\t\t\tconst criticalCss = $( 'input[type=checkbox][name=critical_css_option]' );\n\t\t\tcriticalCss.on( 'change', function() {\n\t\t\t\t$( '#critical_css_file_exclude' ).toggleClass( 'sui-hidden' );\n\t\t\t} );\n\n\t\t\t// Critical CSS checkbox update status.\n\t\t\tconst criticalCssType = $( 'select[name=critical_css_type]' );\n\t\t\tcriticalCssType.on( 'change', function( e ) {\n\t\t\t\t$( '.load_cs_options' ).addClass( 'sui-hidden' );\n\t\t\t\t$( '.load_' + e.target.value ).removeClass( 'sui-hidden' );\n\t\t\t} );\n\n\t\t\t$( '#manual_css_switch_now' ).on( 'click', function() {\n\t\t\t\tif ( ! wphbReact.isMember ) {\n\t\t\t\t\tself.hbTrackEoMPEvent( this );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\twindow.WPHB_Admin.minification.criticalCSSSwitchMode( 'critical_css' );\n\t\t\t} );\n\n\t\t\t// Font display radio update status.\n\t\t\t$( 'input[type=radio][name=font_display_value]' ).on(\n\t\t\t\t'change',\n\t\t\t\tfunction() {\n\t\t\t\t\tconst fontDisplayValue = $(this).val();\n\t\t\t\t\t$( '.font_display_safe_helper' ).toggle( fontDisplayValue === 'swap' );\n\t\t\t\t\t$( '.font_display_performant_helper' ).toggle( fontDisplayValue === 'optional' );\n\t\t\t\t}\n\t\t\t);\n\n\t\t\t// Font swap checkbox update status.\n\t\t\t$( 'input[type=checkbox][name=font_swap]' ).on(\n\t\t\t\t'change',\n\t\t\t\tfunction() {\n\t\t\t\t\t$( '#font_display_settings' ).toggleClass( 'sui-hidden' );\n\t\t\t\t}\n\t\t\t);\n\n\t\t\t// Font optimization checkbox update status.\n\t\t\t$( 'input[type=checkbox][name=font_optimization]' ).on(\n\t\t\t\t'change',\n\t\t\t\tfunction() {\n\t\t\t\t\t$( '#font_optimization_preload_box' ).toggleClass( 'sui-hidden' );\n\t\t\t\t}\n\t\t\t);\n\n\t\t\t// Preload fonts mode option changed.\n\t\t\t$( 'input[type=radio][name=preload_fonts_mode]' ).on(\n\t\t\t\t'change',\n\t\t\t\tfunction() {\n\t\t\t\t\tconst fontDisplayValue = $(this).val();\n\t\t\t\t\t$( '.preload_fonts_mode_automatic_helper' ).toggle( fontDisplayValue === 'automatic' );\n\t\t\t\t\t$( '.preload_fonts_mode_manuel_helper' ).toggle( fontDisplayValue === 'manual' );\n\t\t\t\t}\n\t\t\t);\n\n\t\t\t$( 'input[type=checkbox][name=debug_log]' ).on(\n\t\t\t\t'change',\n\t\t\t\tfunction() {\n\t\t\t\t\tconst enabled = $( this ).is( ':checked' );\n\t\t\t\t\tif ( enabled ) {\n\t\t\t\t\t\t$( '.wphb-logging-box' ).show();\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$( '.wphb-logging-box' ).hide();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\n\t\t\t/**\n\t\t\t * Save critical css file\n\t\t\t */\n\t\t\t$( '#wphb-minification-tools-form' ).on( 'submit', function( e ) {\n\t\t\t\te.preventDefault();\n\n\t\t\t\tconst spinner = $( this ).find( '.spinner' );\n\t\t\t\tspinner.addClass( 'visible' );\n\n\t\t\t\tFetcher.minification\n\t\t\t\t\t.saveCriticalCss( $( this ).serialize() )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\tspinner.removeClass( 'visible' );\n\t\t\t\t\t\tif ( 'undefined' !== typeof response && response.success ) {\n\t\t\t\t\t\t\tconst eventUpdateSummary = new Event( 'reloadSummary' );\n\t\t\t\t\t\t\tdocument.getElementById( 'wphb-minification-tools-form' ).dispatchEvent( eventUpdateSummary );\n\t\t\t\t\t\t\tif ( response.is_delay_value_updated ) {\n\t\t\t\t\t\t\t\twindow.wphbMixPanel.trackDelayJSEvent( {\n\t\t\t\t\t\t\t\t\tupdate_type: response.delay_js_update_type,\n\t\t\t\t\t\t\t\t\tLocation: 'eo_settings',\n\t\t\t\t\t\t\t\t\tTimeout: response.delay_js_timeout,\n\t\t\t\t\t\t\t\t\t'Excluded Files': ( response.delay_js_exclude ) ? 'yes' : 'no',\n\t\t\t\t\t\t\t\t\texclusions_files: response.delayJsMixpanelValues.exclusions_files,\n\t\t\t\t\t\t\t\t\texclusions_posttypes: response.delayJsMixpanelValues.exclusions_posttypes,\n\t\t\t\t\t\t\t\t\texclusions_urls: response.delayJsMixpanelValues.exclusions_urls,\n\t\t\t\t\t\t\t\t\texclusions_plugins: response.delayJsMixpanelValues.exclusions_plugins,\n\t\t\t\t\t\t\t\t\texclusions_trackers: response.delayJsMixpanelValues.exclusions_trackers,\n\t\t\t\t\t\t\t\t\texclusions_keywords: response.delayJsMixpanelValues.exclusions_keywords,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ( response.fontOptimizationUpdateType ) {\n\t\t\t\t\t\t\t\twindow.wphbMixPanel.trackFontOptimizationEvent( response.fontOptimizationUpdateType, 'font_preload' );\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ( response.fontSwapUpdateType ) {\n\t\t\t\t\t\t\t\twindow.wphbMixPanel.trackFontOptimizationEvent( response.fontSwapUpdateType, 'font_swapping' );\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ( response.isCriticalValueUpdated ) {\n\t\t\t\t\t\t\t\twindow.wphbMixPanel.trackCriticalCSSEvent( {\n\t\t\t\t\t\t\t\t\tupdate_type: response.updateType,\n\t\t\t\t\t\t\t\t\tLocation: response.location,\n\t\t\t\t\t\t\t\t\tmode: response.mode,\n\t\t\t\t\t\t\t\t\tsettings_modified: response.settingsModified,\n\t\t\t\t\t\t\t\t\tsettings_default: response.settingsDefault,\n\t\t\t\t\t\t\t\t\texclusions_files: response.criticalCssMixpanelValues.exclusions_files,\n\t\t\t\t\t\t\t\t\texclusions_posttypes: response.criticalCssMixpanelValues.exclusions_posttypes,\n\t\t\t\t\t\t\t\t\texclusions_urls: response.criticalCssMixpanelValues.exclusions_urls,\n\t\t\t\t\t\t\t\t\texclusions_plugins: response.criticalCssMixpanelValues.exclusions_plugins,\n\t\t\t\t\t\t\t\t\texclusions_keywords: response.criticalCssMixpanelValues.exclusions_keywords,\n\t\t\t\t\t\t\t\t\tmanual_inclusions: response.manualInclusion,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ( response.isStatusTagNeedsUpdate ) {\n\t\t\t\t\t\t\t\tself.triggerCriticalStatusUpdateAjax( response.htmlForStatusTag );\n\t\t\t\t\t\t\t} else if ( 'deactivate' === response.updateType ) {\n\t\t\t\t\t\t\t\tself.criticalUpdateStatusTag( response.htmlForStatusTag );\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst styleType = 'activate' === response.updateType ? 'block' : 'deactivate' === response.updateType ? 'none' : '';\n\t\t\t\t\t\t\tself.hbToggleElement( 'wphb-clear-critical-css', styleType );\n\n\t\t\t\t\t\t\tWPHB_Admin.notices.show( response.message, 'blue', false );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tWPHB_Admin.notices.show( response.message, 'error' );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Parse custom asset dir input\n\t\t\t *\n\t\t\t * @since 1.9\n\t\t\t */\n\t\t\tconst textField = document.getElementById( 'file_path' );\n\t\t\tif ( null !== textField ) {\n\t\t\t\ttextField.onchange = function( e ) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tFetcher.minification\n\t\t\t\t\t\t.updateAssetPath( $( this ).val() )\n\t\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\t\tif ( response.message ) {\n\t\t\t\t\t\t\t\tWPHB_Admin.notices.show( response.message, 'error' );\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tWPHB_Admin.notices.show();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Asset optimization network settings page.\n\t\t\t *\n\t\t\t * @since 2.0.0\n\t\t\t */\n\n\t\t\t// Show/hide settings, based on checkbox value.\n\t\t\t$( '#wphb-network-ao' ).on( 'click', function() {\n\t\t\t\t$( '#wphb-network-border-frame' ).toggleClass( 'sui-hidden' );\n\t\t\t} );\n\n\t\t\t// Handle settings select.\n\t\t\t$( '#wphb-box-minification-network-settings' ).on(\n\t\t\t\t'change',\n\t\t\t\t'input[type=radio]',\n\t\t\t\tfunction( e ) {\n\t\t\t\t\tconst divs = document.querySelectorAll(\n\t\t\t\t\t\t'input[name=' + e.target.name + ']'\n\t\t\t\t\t);\n\n\t\t\t\t\t// Toggle logs frame.\n\t\t\t\t\tif ( 'log' === e.target.name ) {\n\t\t\t\t\t\t$( '.wphb-logs-frame' ).toggle( e.target.value );\n\t\t\t\t\t}\n\n\t\t\t\t\tfor ( let i = 0; i < divs.length; ++i ) {\n\t\t\t\t\t\tdivs[ i ].parentNode.classList.remove( 'active' );\n\t\t\t\t\t}\n\n\t\t\t\t\te.target.parentNode.classList.add( 'active' );\n\t\t\t\t}\n\t\t\t);\n\n\t\t\t// Network settings.\n\t\t\t$( '#wphb-ao-network-settings' ).on( 'click', function( e ) {\n\t\t\t\te.preventDefault();\n\n\t\t\t\tconst spinner = $( '.sui-box-footer' ).find( '.spinner' );\n\t\t\t\tspinner.addClass( 'visible' );\n\n\t\t\t\tconst form = $( '#ao-network-settings-form' ).serialize();\n\t\t\t\tFetcher.minification\n\t\t\t\t\t.saveNetworkSettings( form )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\tspinner.removeClass( 'visible' );\n\t\t\t\t\t\tif ( 'undefined' !== typeof response && response.success ) {\n\t\t\t\t\t\t\tWPHB_Admin.notices.show();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tWPHB_Admin.notices.show( getString( 'errorSettingsUpdate' ), 'error' );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Save exclusion rules.\n\t\t\t */\n\t\t\t$( '#wphb-ao-settings-update' ).on( 'click', function( e ) {\n\t\t\t\te.preventDefault();\n\n\t\t\t\tconst spinner = $( '.sui-box-footer' ).find( '.spinner' );\n\t\t\t\tspinner.addClass( 'visible' );\n\n\t\t\t\tconst data = self.getMultiSelectValues( 'cdn_exclude' );\n\t\t\t\tconst debugLog = $( 'input[name=debug_log]' ).is( ':checked' );\n\t\t\t\tconst requestData = {\n\t\t\t\t\texcludeAssets: data,\n\t\t\t\t\tdebugLog\n\t\t\t\t};\n\n\t\t\t\tFetcher.minification\n\t\t\t\t\t.updateExcludeList( JSON.stringify( requestData ) )\n\t\t\t\t\t.then( () => {\n\t\t\t\t\t\tspinner.removeClass( 'visible' );\n\t\t\t\t\t\tWPHB_Admin.notices.show();\n\t\t\t\t\t} );\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Asset optimization 2.0\n\t\t\t *\n\t\t\t * @since 2.6.0\n\t\t\t */\n\n\t\t\t// How does it work? stuff.\n\t\t\tconst expandButtonManual = document.getElementById( 'manual-ao-hdiw-modal-expand' );\n\t\t\tif ( expandButtonManual ) {\n\t\t\t\texpandButtonManual.onclick = function() {\n\t\t\t\t\tdocument.getElementById( 'manual-ao-hdiw-modal' ).classList.remove( 'sui-modal-sm' );\n\t\t\t\t\tdocument.getElementById( 'manual-ao-hdiw-modal-header-wrap' ).classList.remove( 'sui-box-sticky' );\n\t\t\t\t\tdocument.getElementById( 'automatic-ao-hdiw-modal' ).classList.remove( 'sui-modal-sm' );\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst collapseButtonManual = document.getElementById( 'manual-ao-hdiw-modal-collapse' );\n\t\t\tif ( collapseButtonManual ) {\n\t\t\t\tcollapseButtonManual.onclick = function() {\n\t\t\t\t\tdocument.getElementById( 'manual-ao-hdiw-modal' ).classList.add( 'sui-modal-sm' );\n\t\t\t\t\tconst el = document.getElementById( 'manual-ao-hdiw-modal-header-wrap' );\n\t\t\t\t\tif ( el.classList.contains( 'video-playing' ) ) {\n\t\t\t\t\t\tel.classList.add( 'sui-box-sticky' );\n\t\t\t\t\t}\n\t\t\t\t\tdocument.getElementById( 'automatic-ao-hdiw-modal' ).classList.add( 'sui-modal-sm' );\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// How does it work? stuff.\n\t\t\tconst expandButtonAuto = document.getElementById( 'automatic-ao-hdiw-modal-expand' );\n\t\t\tif ( expandButtonAuto ) {\n\t\t\t\texpandButtonAuto.onclick = function() {\n\t\t\t\t\tdocument.getElementById( 'automatic-ao-hdiw-modal' ).classList.remove( 'sui-modal-sm' );\n\t\t\t\t\tdocument.getElementById( 'manual-ao-hdiw-modal' ).classList.remove( 'sui-modal-sm' );\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst collapseButtonAuto = document.getElementById( 'automatic-ao-hdiw-modal-collapse' );\n\t\t\tif ( collapseButtonAuto ) {\n\t\t\t\tcollapseButtonAuto.onclick = function() {\n\t\t\t\t\tdocument.getElementById( 'automatic-ao-hdiw-modal' ).classList.add( 'sui-modal-sm' );\n\t\t\t\t\tdocument.getElementById( 'manual-ao-hdiw-modal' ).classList.add( 'sui-modal-sm' );\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst autoTrigger = document.getElementById( 'hdw-auto-trigger-label' );\n\t\t\tif ( autoTrigger ) {\n\t\t\t\tautoTrigger.addEventListener( 'click', () => {\n\t\t\t\t\twindow.SUI.replaceModal(\n\t\t\t\t\t\t'automatic-ao-hdiw-modal-content',\n\t\t\t\t\t\t'wphb-basic-hdiw-link'\n\t\t\t\t\t);\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tconst manualTrigger = document.getElementById( 'hdw-manual-trigger-label' );\n\t\t\tif ( manualTrigger ) {\n\t\t\t\tmanualTrigger.addEventListener( 'click', () => {\n\t\t\t\t\twindow.SUI.replaceModal(\n\t\t\t\t\t\t'manual-ao-hdiw-modal-content',\n\t\t\t\t\t\t'wphb-basic-hdiw-link'\n\t\t\t\t\t);\n\t\t\t\t} );\n\t\t\t}\n\t\t\t// Clear critical css files.\n\t\t\t$( '#wphb-clear-critical-css' ).on( 'click', ( e ) => {\n\t\t\t\te.preventDefault();\n\t\t\t\tself.clearCriticalCss( e.target );\n\t\t\t} );\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * Initialize selectors and set up event handlers for exclusions.\n\t\t */\n\t\tinitializeSelectorsAndEventHandlers() {\n\t\t\tconst self = this;\n\t\t\t// Initialize all selectors\n\t\t\t$( this.SELECTORS.join( ', ' ) ).each( function() {\n\t\t\t\t// eslint-disable-next-line no-nested-ternary\n\t\t\t\tconst config = this.id.includes( 'delay_js_exclusions' ) || this.id.includes( 'critical_css_keywords' ) ? self.getSelect2ConfigForTag() : this.id.includes( 'post_urls' ) ? self.getAjaxSelectConfig() : self.getCommonSelect2Config();\n\t\t\t\tconst $select = $( this ).SUIselect2( config );\n\t\t\t\t// Add data-hb-exclusion-type to the selected option\n\t\t\t\t$select.on( 'select2:select select2:unselect', function( e ) {\n\t\t\t\t\tconst isCriticalCss = this.id.includes( 'critical_css' );\n\t\t\t\t\tconst $allExclusions = $( isCriticalCss ? '#item_critical_css_all_exclusions' : '#item_delay_js_all_exclusions' );\n\t\t\t\t\tself.toggleSelectBoxOption( $allExclusions, e, e.type === 'select2:select' );\n\t\t\t\t\tself.enableDisableResetButton();\n\t\t\t\t\t$( this ).SUIselect2( 'open' );\n\t\t\t\t} );\n\t\t\t} );\n\n\t\t\t// Set up event handlers\n\t\t\tthis.EXCLUSION_SELECTORS.forEach( ( selector ) => {\n\t\t\t\tconst containerClass = selector === '#item_delay_js_all_exclusions' ? this.CONTAINER_CLASSES.delayJs : this.CONTAINER_CLASSES.criticalCss;\n\t\t\t\t// Combine all exclusions\n\t\t\t\tself.combineAllExclusions( selector, containerClass );\n\t\t\t\t// Bind select and unselect events to each exclusion selector\n\t\t\t\t$( selector ).on( 'select2:select select2:unselect', function( e ) {\n\t\t\t\t\tconst isAdding = e.type === 'select2:select';\n\t\t\t\t\tself.synchronizeExclusionValues( e.params.data.id, isAdding, containerClass, e );\n\t\t\t\t} );\n\t\t\t} );\n\n\t\t\t$( '#delay_js_exclusion_options, #critical_css_exclusion_options' ).SUIselect2( {\n\t\t\t\ttemplateSelection: ( data ) => this.formatSelectResult( data, false ),\n\t\t\t\ttemplateResult: ( data ) => this.formatSelectResult( data, false ),\n\t\t\t\tminimumResultsForSearch: Infinity,\n\t\t\t} );\n\n\t\t\tself.enableDisableResetButton();\n\t\t\t$( 'select[name=delay_js_exclusion_options], select[name=critical_css_exclusion_options]' ).on( 'change', self.toggleExclusionBox.bind( self ) );\n\t\t},\n\n\t\t/**\n\t\t * Select or unselect a value in a select box.\n\t\t *\n\t\t * @param {jQuery} $box - The select box to update.\n\t\t * @param {Object} element - The selected or unselected element.\n\t\t * @param {boolean} shouldSelect - True to select the value, false to unselect it.\n\t\t */\n\t\ttoggleSelectBoxOption( $box, element, shouldSelect = true ) {\n\t\t\tconst selectedValue = element.id || element.params?.data?.id;\n\t\t\tconst text = element.text || element.params?.data?.text;\n\t\t\tconst hbExclusionType = element?.element?.dataset?.hbExclusionType ?? element.params?.data?.element?.dataset?.hbExclusionType ?? element.params?.data?.hbExclusionType;\n\t\t\t// Check if the option exists; if not, add it with the necessary attributes\n\t\t\tlet $option = $box.find( `option[value=\"${ selectedValue }\"]` );\n\t\t\tif ( $option.length === 0 ) {\n\t\t\t\t$option = $( new Option( text, selectedValue ) ).attr( 'data-hb-exclusion-type', hbExclusionType );\n\t\t\t\t$box.append( $option );\n\t\t\t}\n\n\t\t\t// Toggle selection state only if there's a mismatch with shouldSelect\n\t\t\tif ( $option.prop( 'selected' ) !== shouldSelect ) {\n\t\t\t\t$option.prop( 'selected', shouldSelect );\n\t\t\t\t$box.trigger( 'change' );\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Synchronize a value across all relevant exclusion boxes, adding or removing it as specified.\n\t\t *\n\t\t * @param {string} value - The ID of the value to be synchronized across exclusion boxes.\n\t\t * @param {boolean} isAdding - True to add the value, false to remove it.\n\t\t * @param {string} containerType - The type of container to target (e.g., `.js_exclusion_container`).\n\t\t * @param {Object} element - The selected or unselected element.\n\t\t */\n\t\tsynchronizeExclusionValues( value, isAdding = true, containerType = '.js_exclusion_container', element ) {\n\t\t\tconst exclusionType = element?.element?.dataset?.hbExclusionType ?? element.params?.data?.element?.dataset?.hbExclusionType ?? element.params?.data?.hbExclusionType;\n\t\t\tconst targetBoxId = this.getExclusionTypeData( exclusionType );\n\t\t\t// Determine the correct box to target\n\t\t\tconst $box = containerType.includes( 'critical_css' ) ? $( `#${ targetBoxId.criticalCssBox }` ) : $( `#${ targetBoxId.delayBox }` );\n\n\t\t\t// If the box doesn't exist, exit early\n\t\t\tif ( ! $box.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst currentValues = $box.val() || [];\n\n\t\t\tif ( isAdding ) {\n\t\t\t\t// Add the value if it's not already present\n\t\t\t\tif ( ! currentValues.includes( value ) ) {\n\t\t\t\t\tconst $option = $box.find( `option[value=\"${ value }\"]` );\n\t\t\t\t\t$option.prop( 'selected', true );\n\t\t\t\t\t$box.trigger( 'change' );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Remove the value if it exists\n\t\t\t\tconst updatedValues = currentValues.filter( ( val ) => val !== value );\n\t\t\t\t$box.val( updatedValues ).trigger( 'change.select2' );\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Get common select2 configuration.\n\t\t */\n\t\tgetCommonSelect2Config() {\n\t\t\treturn {\n\t\t\t\ttemplateSelection: this.formatSelectResult.bind( this ),\n\t\t\t\ttemplateResult: this.formatSelectResult.bind( this ),\n\t\t\t\tcloseOnSelect: false,\n\t\t\t};\n\t\t},\n\n\t\t/**\n\t\t * Get common select2 configuration.\n\t\t */\n\t\tgetSelect2ConfigForTag() {\n\t\t\treturn {\n\t\t\t\t...this.getCommonSelect2Config(),\n\t\t\t\ttags: true,\n\t\t\t\tcloseOnSelect: true,\n\t\t\t\tcreateTag: ( params ) => {\n\t\t\t\t\t// Format the newly created tag\n\t\t\t\t\tconst term = params.term.trim();\n\t\t\t\t\tif ( term === '' ) {\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tid: term,\n\t\t\t\t\t\ttext: term,\n\t\t\t\t\t\tisNew: true,\n\t\t\t\t\t\thbExclusionType: 'keywords'\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t\ttokenSeparators: [ ',', ' ', '\\n' ],\n\t\t\t\tlanguage: {\n\t\t\t\t\tnoResults() {\n\t\t\t\t\t\treturn wphb.strings.select2Tags;\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 * Get ajax select configuration.\n\t\t */\n\t\tgetAjaxSelectConfig() {\n\t\t\treturn {\n\t\t\t\t...this.getCommonSelect2Config(),\n\t\t\t\tminimumInputLength: 3,\n\t\t\t\tajax: {\n\t\t\t\t\turl: ajaxurl,\n\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\tdataType: 'json',\n\t\t\t\t\tdelay: 250,\n\t\t\t\t\tdata: ( params ) => ( {\n\t\t\t\t\t\taction: 'wphb_search_posts',\n\t\t\t\t\t\tnonce: wphb.nonces.HBFetchNonce,\n\t\t\t\t\t\tquery: params.term,\n\t\t\t\t\t} ),\n\t\t\t\t\tprocessResults: ( data ) => ( {\n\t\t\t\t\t\tresults: data.data.map( ( item ) => ( {\n\t\t\t\t\t\t\ttext: item.name,\n\t\t\t\t\t\t\tid: item.id,\n\t\t\t\t\t\t\thbExclusionType: item.label,\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 * Toggle the exclusion box based on the selected option.\n\t\t *\n\t\t * @param {Event} e\n\t\t * @since 3.11.0\n\t\t */\n\t\ttoggleExclusionBox( e ) {\n\t\t\tconst { value, name } = e.target;\n\t\t\tconst isDelayJs = name === 'delay_js_exclusion_options';\n\t\t\tconst containerClass = isDelayJs ? this.CONTAINER_CLASSES.delayJs : this.CONTAINER_CLASSES.criticalCss;\n\n\t\t\t$( containerClass ).addClass( 'sui-hidden' );\n\t\t\t$( '#' + value ).removeClass( 'sui-hidden' );\n\n\t\t\tthis.enableDisableResetButton();\n\n\t\t\tconst advancedViewLabel = $( '#delay_js_keywords_advanced_view_label' );\n\t\t\tconst delayJsExclusions = $( '#delay_js_legacy_keywords_container' );\n\n\t\t\tif ( isDelayJs && value === 'delay_js_exclusions' ) {\n\t\t\t\tthis.copySelect2ToTextarea();\n\t\t\t\tthis.toggleAdvancedKeywordsView();\n\t\t\t\tadvancedViewLabel.removeClass( 'sui-hidden' );\n\t\t\t} else {\n\t\t\t\tif ( value === 'delay_js_all_exclusions' ) {\n\t\t\t\t\tthis.syncTextareaSelectData( ! this.isAdvancedViewChecked() );\n\t\t\t\t}\n\t\t\t\tadvancedViewLabel.addClass( 'sui-hidden' );\n\t\t\t\tdelayJsExclusions.addClass( 'sui-hidden' );\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Toggle advanced view for keywords.\n\t\t */\n\t\ttoggleAdvancedKeywordsView() {\n\t\t\tconst isAdvancedView = this.isAdvancedViewChecked();\n\t\t\tthis.syncTextareaSelectData( isAdvancedView );\n\t\t\tconst delayJsExclusions = $( '#delay_js_exclusions' );\n\t\t\tconst legacyKeywords = $( '#delay_js_legacy_keywords_container' );\n\n\t\t\tdelayJsExclusions.toggleClass( 'sui-hidden', isAdvancedView );\n\t\t\tlegacyKeywords.toggleClass( 'sui-hidden', ! isAdvancedView );\n\t\t},\n\n\t\t/**\n\t\t * Checks if the advanced view toggle is checked.\n\t\t *\n\t\t * @return {boolean} True if the advanced view is enabled, otherwise false.\n\t\t */\n\t\tisAdvancedViewChecked() {\n\t\t\treturn $( '#delay_js_keywords_advanced_view' ).is( ':checked' );\n\t\t},\n\n\t\t/**\n\t\t * Syncs data between the textarea and the select2 component based on the view.\n\t\t *\n\t\t * @param {boolean} isAdvancedView - Whether the advanced view is active.\n\t\t */\n\t\tsyncTextareaSelectData( isAdvancedView ) {\n\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\tisAdvancedView ? this.copySelect2ToTextarea() : this.copyTextareaToSelect2();\n\t\t},\n\n\t\t/**\n\t\t * Copy textarea data to select2.\n\t\t */\n\t\tcopyTextareaToSelect2() {\n\t\t\tconst textareaData = $( '#delay_js_legacy_keywords' ).val();\n\t\t\tconst tags = textareaData.split( '\\n' ).map( ( line ) => line.trim() ).filter( ( line ) => line );\n\t\t\tconst select2Element = $( '#item_delay_js_exclusions' );\n\t\t\tconst allExclusionsBox = $( '#item_delay_js_all_exclusions' );\n\n\t\t\tif ( select2Element.length && select2Element.data( 'select2' ) ) {\n\t\t\t\tconst existingOptions = select2Element.find( 'option' ).map( ( _, option ) => option.value ).get();\n\t\t\t\tconst allExclusionsOptions = allExclusionsBox.find( 'option' ).map( ( _, option ) => option.value ).get();\n\n\t\t\t\ttags.forEach( ( tag ) => {\n\t\t\t\t\tconst $option = select2Element.find( `option[value=\"${ tag }\"]` );\n\t\t\t\t\tif ( $option.length === 0 ) {\n\t\t\t\t\t\tconst newOption = $( new Option( tag, tag, true, true ) ).attr( 'data-hb-exclusion-type', 'keywords' );\n\t\t\t\t\t\tselect2Element.append( newOption );\n\n\t\t\t\t\t\tif ( ! allExclusionsOptions.includes( tag ) ) {\n\t\t\t\t\t\t\tthis.toggleSelectBoxOption( allExclusionsBox, { id: tag, text: tag, element: newOption[ 0 ] }, true );\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$option.prop( 'selected', true );\n\t\t\t\t\t\tthis.toggleSelectBoxOption( allExclusionsBox, { id: tag, text: tag, element: $option[ 0 ] }, true );\n\t\t\t\t\t}\n\t\t\t\t} );\n\n\t\t\t\texistingOptions.forEach( ( existingValue ) => {\n\t\t\t\t\tif ( ! tags.includes( existingValue ) ) {\n\t\t\t\t\t\tconst $existingOption = select2Element.find( `option[value=\"${ existingValue }\"]` );\n\t\t\t\t\t\t$existingOption.prop( 'selected', false );\n\n\t\t\t\t\t\tif ( allExclusionsOptions.includes( existingValue ) ) {\n\t\t\t\t\t\t\tthis.toggleSelectBoxOption( allExclusionsBox, { id: existingValue, text: existingValue }, false );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\n\t\t\t\tselect2Element.trigger( 'change' );\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Copy select2 data to textarea.\n\t\t */\n\t\tcopySelect2ToTextarea() {\n\t\t\tconst tags = $( '#item_delay_js_exclusions' ).val() || [];\n\t\t\tconst trimmedTags = tags.map( ( tag ) => tag.trim() );\n\t\t\t$( '#delay_js_legacy_keywords' ).val( trimmedTags.join( '\\n' ) );\n\t\t},\n\n\t\t/**\n\t\t * Enable or disable the reset button based on the selected option.\n\t\t */\n\t\tenableDisableResetButton() {\n\t\t\tconst options = [\n\t\t\t\t{\n\t\t\t\t\tselector: '#delay_js_exclusion_options', modal: '.reset-delay-exclusion-modal'\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tselector: '#critical_css_exclusion_options', modal: '.reset-critical-exclusion-modal'\n\t\t\t\t}\n\t\t\t];\n\n\t\t\toptions.forEach( ( { selector, modal } ) => {\n\t\t\t\tconst exclusionData = $( `#item_${ $( selector ).val() }` ).val() || '';\n\t\t\t\t$( modal ).toggleClass( 'disabled', exclusionData.length === 0 );\n\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * Format data for select2.\n\t\t *\n\t\t * @param {Object} data\n\t\t * @param {boolean} includeChevron - Whether to include the chevron icon in the label.\n\t\t */\n\t\tformatSelectResult( data, includeChevron = true ) {\n\t\t\tif ( ! data.id ) {\n\t\t\t\treturn data.text;\n\t\t\t}\n\n\t\t\tconst key = data?.hbExclusionType || $( data.element ).data( 'hb-exclusion-type' );\n\t\t\tconst item = this.getExclusionTypeData( key );\n\t\t\tlet selectLabel = data.text;\n\n\t\t\tif ( item ) {\n\t\t\t\tselectLabel = item.icon + data.text;\n\t\t\t\tif ( includeChevron ) {\n\t\t\t\t\tselectLabel = item.icon + item.name + this.getIcon( 'chevron-right' ) + data.text;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn $( '<span></span>' ).html( selectLabel );\n\t\t},\n\n\t\t/**\n\t\t * Get name or icon for the key.\n\t\t *\n\t\t * @param {string} key\n\t\t */\n\t\tgetExclusionTypeData( key ) {\n\t\t\tconst dataMap = {\n\t\t\t\tfiles: { name: wphb.strings.exclusionFiles, icon: this.getIcon( 'page' ), delayBox: 'item_delay_js_files_exclusion', criticalCssBox: 'item_critical_css_files_exclusion' },\n\t\t\t\tcore_file: { name: wphb.strings.exclusionWpFile, icon: this.getIcon( 'page' ), delayBox: 'item_delay_js_files_exclusion', criticalCssBox: 'item_critical_css_files_exclusion' },\n\t\t\t\tposts: { name: wphb.strings.exclusionPostTypes, icon: this.getIcon( 'post-pin' ), delayBox: 'item_delay_js_post_types_exclusion', criticalCssBox: 'item_critical_css_post_types_exclusion' },\n\t\t\t\turls: { name: wphb.strings.exclusionPostUrls, icon: this.getIcon( 'link' ), delayBox: 'item_delay_js_post_urls_exclusion', criticalCssBox: 'item_critical_css_post_urls_exclusion' },\n\t\t\t\tplugins: { name: wphb.strings.exclusionPluginThemes, icon: this.getIcon( 'plugin-2' ), delayBox: 'item_delay_js_plugins_themes_exclusion', criticalCssBox: 'item_critical_css_plugins_themes_exclusion' },\n\t\t\t\tkeywords: { name: wphb.strings.exclusionKeywords, icon: this.getIcon( 'key' ), delayBox: 'item_delay_js_exclusions', criticalCssBox: 'item_critical_css_keywords' },\n\t\t\t\tdefault: { name: wphb.strings.exclusionDefault, icon: this.getIcon( 'key' ), delayBox: 'item_delay_js_exclusions', criticalCssBox: null },\n\t\t\t\tads: { name: wphb.strings.exclusionAds, icon: this.getIcon( 'graph-line' ), delayBox: 'item_delay_js_ads_tracker_exclusion', criticalCssBox: null },\n\t\t\t\tdefault_exclusions: { name: wphb.strings.exclusionDefault, icon: this.getIcon( 'widget-settings-config' ), delayBox: null, criticalCssBox: null },\n\t\t\t\tall_exclusions: { name: wphb.strings.exclusionAll, icon: this.getIcon( 'thumbnails' ), delayBox: null, criticalCssBox: null },\n\t\t\t};\n\n\t\t\treturn dataMap[ key ] || null;\n\t\t},\n\n\t\t/**\n\t\t * Helper function to get icon markup.\n\t\t *\n\t\t * @param {string} iconName\n\t\t */\n\t\tgetIcon( iconName ) {\n\t\t\treturn `<span class=\"sui-icon sui-icon-${ iconName }\" aria-hidden=\"true\"></span>`;\n\t\t},\n\n\t\t/**\n\t\t * Combine exclusion to all exclusion box.\n\t\t *\n\t\t * @param {string} itemAllExclusionsSelector\n\t\t * @param {string} exclusionContainerSelector\n\t\t */\n\t\tcombineAllExclusions( itemAllExclusionsSelector, exclusionContainerSelector ) {\n\t\t\tconst self = this;\n\t\t\tconst itemAllExclusions = $( itemAllExclusionsSelector );\n\n\t\t\t// Gather selected options from each exclusion box except the All Exclusions box\n\t\t\t$( exclusionContainerSelector + ' > select' ).not( `${ itemAllExclusionsSelector }, #item_delay_js_default_exclusions` ).each( function() {\n\t\t\t\tconst $this = $( this );\n\t\t\t\t$this.SUIselect2( 'data' ).forEach( ( option ) => {\n\t\t\t\t\tif ( $this.val().includes( option.id ) ) {\n\t\t\t\t\t\tself.toggleSelectBoxOption( itemAllExclusions, option );\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 * Parse confirm exclusion reset from the modal.\n\t\t *\n\t\t * @param {Object} element\n\t\t */\n\t\tconfirmReset( element ) {\n\t\t\tthis.exclusionType = [ 'delay_js', 'critical_css' ].includes( element.id ) ? element.id : null;\n\t\t\tif ( this.exclusionType ) {\n\t\t\t\t$( '[id$=\"_reset_modal_content\"]' ).addClass( 'sui-hidden' );\n\t\t\t\t$( `#${ this.exclusionType }_reset_modal_content` ).removeClass( 'sui-hidden' );\n\t\t\t\twindow.SUI.openModal( 'wphb-reset-exclusions-modal', 'wpbody-content' );\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Make an ajax call to reset the exclusion.\n\t\t */\n\t\tresetExclusion() {\n\t\t\tconst exclusionOptions = $( `select[name=${ this.exclusionType }_exclusion_options]` ).val();\n\t\t\tif ( exclusionOptions ) {\n\t\t\t\tFetcher.minification.resetExclusions( exclusionOptions, this.exclusionType ).then( () => {\n\t\t\t\t\twindow.location.reload();\n\t\t\t\t} );\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Call ajax to get the critical css status for queue.\n\t\t *\n\t\t * @param {string} statusHtml\n\t\t */\n\t\ttriggerCriticalStatusUpdateAjax( statusHtml ) {\n\t\t\tcriticalAjaxInterval = setInterval( this.criticalUpdateStatusNotice, ajaxExecutionInterval );\n\t\t\tthis.criticalUpdateStatusTag( statusHtml );\n\t\t},\n\n\t\t/**\n\t\t * Call ajax to get the critical css status for queue.\n\t\t */\n\t\tcriticalUpdateStatusNotice() {\n\t\t\tFetcher.minification\n\t\t\t\t.getCriticalStatusForQueue()\n\t\t\t\t.then( ( response ) => {\n\t\t\t\t\tif ( 'undefined' !== typeof response.criticalStatusForQueue.status && 'complete' === response.criticalStatusForQueue.status ) {\n\t\t\t\t\t\tclearInterval( criticalAjaxInterval );\n\t\t\t\t\t\tWPHB_Admin.minification.criticalUpdateStatusTag( response.htmlForStatusTag );\n\t\t\t\t\t\tconst criticalDisplayError = 'critical_display_error_message';\n\n\t\t\t\t\tif ( 'COMPLETE' === response.criticalStatusForQueue.result ) {\n\t\t\t\t\t\tWPHB_Admin.notices.show( getString( 'criticalGeneratedNotice' ), 'success', false );\n\t\t\t\t\t\tWPHB_Admin.minification.hbToggleElement( criticalDisplayError, 'none' );\n\t\t\t\t\t} else if ( 'ERROR' === response.criticalStatusForQueue.result ) {\n\t\t\t\t\t\twindow.SUI.closeNotice( 'wphb-ajax-update-notice' );\n\t\t\t\t\t\tconst errorMessage = response.criticalStatusForQueue.error_message;\n\t\t\t\t\t\twindow.wphbMixPanel.track( 'critical_css_error', {\n\t\t\t\t\t\t\tmode: response.criticalMode,\n\t\t\t\t\t\t\t'Error Type': response.errorCode,\n\t\t\t\t\t\t\t'Error Message': errorMessage.length > 256 ? errorMessage.substring( 0, 256 ) + '...' : errorMessage\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tWPHB_Admin.minification.hbToggleElement( criticalDisplayError, 'block' );\n\t\t\t\t\t\tdocument.getElementById( 'critical_error_message_tag' ).innerHTML = response.criticalErrorMessage;\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 * Update the status html.\n\t\t *\n\t\t * @param {string} statusHtml\n\t\t */\n\t\t criticalUpdateStatusTag( statusHtml ) {\n\t\t\tdocument.getElementById( 'critical_progress_tag' ).remove();\n\t\t\tdocument.getElementById( 'generate_css_label' ).insertAdjacentHTML( 'afterend', statusHtml );\n\t\t},\n\n\t\t/**\n\t\t * Toggle an element.\n\t\t */\n\t\thbToggleElement( elementId, styleType ) {\n\t\t\tif ( '' === styleType ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst regenerateButton = document.getElementById( elementId );\n\t\t\tregenerateButton.style.display = styleType;\n\t\t},\n\n\t\t/**\n\t\t * Track MP event for delay js and critical css.\n\t\t *\n\t\t * @param {object} element\n\t\t */\n\t\thbTrackEoMPEvent( element ) {\n\t\t\twindow.wphbMixPanel.trackEoUpsell( element.dataset.eventname, element.dataset.location );\n\t\t},\n\n\t\t/**\n\t\t * Track MP event on AO activation.\n\t\t */\n\t\thbTrackMPOnAoActivate() {\n\t\t\twindow.wphbMixPanel.enableFeature( 'Asset Optimization' );\n\t\t\twindow.wphbMixPanel.trackAOUpdated( {\n\t\t\t\tMode: [ 'AO_Combine', 'AO_Compress', 'speedy' ],\n\t\t\t\tassets_found: 0,\n\t\t\t\tlocation: 'ao_settings',\n\t\t\t\ttotal_files: 0,\n\t\t\t\tfilesize_reductions: 0,\n\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * Switch from advanced to basic view.\n\t\t * Called from switch view modal.\n\t\t *\n\t\t * @param {string} mode\n\t\t */\n\t\tswitchView( mode ) {\n\t\t\tlet hide = false;\n\t\t\tconst trackBox = document.getElementById(\n\t\t\t\t'hide-' + mode + '-modal'\n\t\t\t);\n\n\t\t\tif ( trackBox && true === trackBox.checked ) {\n\t\t\t\thide = true;\n\t\t\t}\n\n\t\t\tFetcher.minification.toggleView( mode, hide ).then( ( response ) => {\n\t\t\t\twindow.wphbMixPanel.trackAOUpdated( {\n\t\t\t\t\tMode: response.mode,\n\t\t\t\t\tassets_found: wphb.stats.assetsFound,\n\t\t\t\t\ttotal_files: wphb.stats.totalFiles,\n\t\t\t\t\tfilesize_reductions: wphb.stats.filesizeReductions,\n\t\t\t\t\tlocation: 'ao_settings',\n\t\t\t\t} );\n\n\t\t\t\twindow.location.href = getLink( 'minification' );\n\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * Go to the Asset Optimization files page.\n\t\t *\n\t\t * @since 1.9.2\n\t\t * @since 2.1.0 Added show_tour parameter.\n\t\t * @since 2.6.0 Remove show_tour parameter.\n\t\t */\n\t\tgoToSettings() {\n\t\t\twindow.SUI.closeModal();\n\n\t\t\tFetcher.minification\n\t\t\t\t.toggleCDN( $( 'input#enable_cdn' ).is( ':checked' ) )\n\t\t\t\t.then( () => {\n\t\t\t\t\twindow.location.href = getLink( 'minification' );\n\t\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * Get all selected values from multiselect.\n\t\t *\n\t\t * @since 2.6.0\n\t\t *\n\t\t * @param {string} id Select ID.\n\t\t * @return {{styles: *[], scripts: *[]}} Styles & scripts array.\n\t\t */\n\t\tgetMultiSelectValues( id ) {\n\t\t\tconst selected = $( '#' + id ).find( ':selected' );\n\n\t\t\tconst data = { scripts: [], styles: [] };\n\n\t\t\tfor ( let i = 0; i < selected.length; ++i ) {\n\t\t\t\tdata[ selected[ i ].dataset.type ].push( selected[ i ].value );\n\t\t\t}\n\n\t\t\treturn data;\n\t\t},\n\n\t\t/**\n\t\t * Skip upgrade.\n\t\t *\n\t\t * @since 2.6.0\n\t\t */\n\t\tskipUpgrade() {\n\t\t\tFetcher.common.call( 'wphb_ao_skip_upgrade' ).then( () => {\n\t\t\t\twindow.location.href = getLink( 'minification' );\n\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * Perform AO upgrade.\n\t\t *\n\t\t * @since 2.6.0\n\t\t */\n\t\tdoUpgrade() {\n\t\t\tFetcher.common.call( 'wphb_ao_do_upgrade' ).then( () => {\n\t\t\t\twindow.location.href = getLink( 'minification' );\n\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * Purge asset optimization orphaned data.\n\t\t *\n\t\t * @since 3.1.2\n\t\t * @see Admin\\Pages\\Minification::orphaned_notice\n\t\t */\n\t\tpurgeOrphanedData() {\n\t\t\tconst count = document.getElementById( 'count-ao-orphaned' )\n\t\t\t\t.innerHTML;\n\n\t\t\tFetcher.advanced.clearOrphanedBatch( count ).then( () => {\n\t\t\t\twindow.location.reload();\n\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * Clear critical CSS.\n\t\t *\n\t\t * @since 3.6.0\n\t\t *\n\t\t * @param {Object} target Target button that was clicked.\n\t\t */\n\t\tclearCriticalCss: ( target ) => {\n\t\t\ttarget.classList.add( 'sui-button-onload-text' );\n\t\t\tFetcher.minification.clearCriticalCssFiles().then( ( response ) => {\n\t\t\t\tif ( 'undefined' !== typeof response && response.success ) {\n\t\t\t\t\twindow.wphbMixPanel.track( 'critical_css_cache_purge', {\n\t\t\t\t\t\tlocation: 'eo_settings'\n\t\t\t\t\t} );\n\n\t\t\t\t\tWPHB_Admin.minification.triggerCriticalStatusUpdateAjax( response.htmlForStatusTag );\n\t\t\t\t\t$( '.box-caching-summary span.sui-summary-large' ).html( '0' ); \n\t\t\t\t\tWPHB_Admin.notices.show( getString( 'successCriticalCssPurge' ), 'blue', false );\n\t\t\t\t} else {\n\t\t\t\t\tWPHB_Admin.notices.show( getString( 'errorCriticalCssPurge' ), 'error' );\n\t\t\t\t}\n\t\t\t} ).finally( () => target.classList.remove( 'sui-button-onload-text' ) );\n\t\t},\n\n\t\tcriticalCSSSwitchMode( mode ) {\n\t\t\t$('#critical_css_mode').val( mode )\n\t\t\tif ( 'manual_css' === mode ) {\n\t\t\t\t$(\"#manual_css_delivery_box\").removeClass('sui-hidden');\n\t\t\t\t$(\"#critical_css_delivery_box\").addClass('sui-hidden');\n\t\t\t} else {\n\t\t\t\t$(\"#manual_css_delivery_box\").addClass('sui-hidden');\n\t\t\t\t$(\"#critical_css_delivery_box\").removeClass('sui-hidden');\n\t\t\t\tconst manualCriticalBox = document.getElementById( 'manual_critical_css' ).value;\n\t\t\t\tconst advancedCriticalBox = document.getElementById( 'critical_css_advanced' ).value;\n\n\t\t\t\tif ( '' === advancedCriticalBox ) {\n\t\t\t\t\tdocument.getElementById( 'critical_css_advanced' ).value = manualCriticalBox;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t}; // End WPHB_Admin.minification.\n}( jQuery ) );\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(globalThis, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n globalThis[key] = value;\n } return value;\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\n// eslint-disable-next-line es/no-function-prototype-bind -- safe\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar userAgent = require('../internals/environment-user-agent');\n\nvar process = globalThis.process;\nvar Deno = globalThis.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n// eslint-disable-next-line es/no-function-prototype-bind -- safe\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n if (length === 0) return !IS_INCLUDES && -1;\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el !== el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value !== value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","/* global ajaxurl */\n/* global wphb */\n\n/**\n * External dependencies\n */\nimport assign from 'lodash/assign';\n\n/**\n * Fetcher.\n *\n * @member {string} wphb.nonces.HBFetchNonce\n * @class\n */\nfunction Fetcher() {\n\tconst fetchUrl = ajaxurl;\n\tconst fetchNonce = wphb.nonces.HBFetchNonce;\n\tconst actionPrefix = 'wphb_';\n\tconst actionPrefixPro = 'wphb_pro_';\n\n\t/**\n\t * Request ajax with a promise.\n\t * Use FormData Object as data if you need to upload file\n\t *\n\t * @param {string} action\n\t * @param {Object|FormData} data\n\t * @param {string} method\n\t * @return {Promise<any>} Request results.\n\t */\n\tfunction request( action, data = {}, method = 'GET' ) {\n\t\tconst args = {\n\t\t\turl: fetchUrl,\n\t\t\tmethod,\n\t\t\tcache: false\n\t\t};\n\n\t\tif ( data instanceof FormData ) {\n\t\t\tdata.append( 'nonce', fetchNonce );\n\t\t\tdata.append( 'action', action );\n\t\t\targs.contentType = false;\n\t\t\targs.processData = false;\n\t\t} else {\n\t\t\tdata.nonce \t= fetchNonce;\n\t\t\tdata.action = action;\n\t\t}\n\t\targs.data = data;\n\t\tconst Promise = require( 'es6-promise' ).Promise;\n\t\treturn new Promise( ( resolve, reject ) => {\n\t\t\tjQuery.ajax( args ).done( resolve ).fail( reject );\n\t\t} ).then( ( response ) => checkStatus( response ) );\n\t}\n\n\tconst methods = {\n\t\t/**\n\t\t * Caching module actions.\n\t\t */\n\t\tcaching: {\n\t\t\t/**\n\t\t\t * Unified save settings method.\n\t\t\t *\n\t\t\t * @since 1.9.0\n\t\t\t * @param {string} module\n\t\t\t * @param {string} data Serialized form data.\n\t\t\t */\n\t\t\tsaveSettings: ( module, data ) => {\n\t\t\t\treturn request(\n\t\t\t\t\tactionPrefix + module + '_save_settings',\n\t\t\t\t\t{ data },\n\t\t\t\t\t'POST'\n\t\t\t\t).then( ( response ) => {\n\t\t\t\t\treturn response;\n\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Save fastCGI settings method.\n\t\t\t *\n\t\t\t * @since 3.9.0\n\t\t\t * @param {string} data Serialized form data.\n\t\t\t */\n\t\t\tsaveFastCGISettings: ( data ) => {\n\t\t\t\treturn request(\n\t\t\t\t\tactionPrefix + 'fast_cgi_save_settings',\n\t\t\t\t\t{ data },\n\t\t\t\t\t'POST'\n\t\t\t\t).then( ( response ) => {\n\t\t\t\t\treturn response;\n\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Clear cache for selected module.\n\t\t\t *\n\t\t\t * @since 1.9.0\n\t\t\t * @param {string} module\n\t\t\t */\n\t\t\tclearCache: ( module ) => {\n\t\t\t\treturn request(\n\t\t\t\t\tactionPrefix + 'clear_module_cache',\n\t\t\t\t\t{ module },\n\t\t\t\t\t'POST'\n\t\t\t\t).then( ( response ) => {\n\t\t\t\t\treturn response;\n\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Clear cache for post.\n\t\t\t *\n\t\t\t * @param {number} postId\n\t\t\t */\n\t\t\tclearCacheForPost: ( postId ) => {\n\t\t\t\treturn request(\n\t\t\t\t\tactionPrefix + 'gutenberg_clear_post_cache',\n\t\t\t\t\t{ postId },\n\t\t\t\t\t'POST'\n\t\t\t\t);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Save Redis settings.\n\t\t\t *\n\t\t\t * @since 2.5.0\n\t\t\t *\n\t\t\t * @param {string} host\n\t\t\t * @param {number} port\n\t\t\t * @param {string} password\n\t\t\t * @param {number} db\n\t\t\t */\n\t\t\tredisSaveSettings( host, port, password, db ) {\n\t\t\t\treturn request(\n\t\t\t\t\tactionPrefix + 'redis_save_settings',\n\t\t\t\t\t{ host, port, password, db },\n\t\t\t\t\t'POST'\n\t\t\t\t);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Toggle Redis object cache setting.\n\t\t\t *\n\t\t\t * @since 2.5.0\n\t\t\t *\n\t\t\t * @param {boolean} value\n\t\t\t */\n\t\t\tredisObjectCache( value ) {\n\t\t\t\treturn request(\n\t\t\t\t\tactionPrefix + 'redis_toggle_object_cache',\n\t\t\t\t\t{ value },\n\t\t\t\t\t'POST'\n\t\t\t\t);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Clear out page cache for a batch of subsites in a network.\n\t\t\t *\n\t\t\t * @since 2.7.0\n\t\t\t *\n\t\t\t * @param {number} sites\n\t\t\t * @param {number} offset\n\t\t\t */\n\t\t\tclearCacheBatch( sites, offset ) {\n\t\t\t\treturn request(\n\t\t\t\t\tactionPrefix + 'clear_network_cache',\n\t\t\t\t\t{ sites, offset },\n\t\t\t\t\t'POST'\n\t\t\t\t);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Disable FastCGI cache.\n\t\t\t *\n\t\t\t * @since 3.4.0\n\t\t\t */\n\t\t\tdisableFastCGI() {\n\t\t\t\treturn request( actionPrefix + 'disable_fast_cgi', {}, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Switch cache method.\n\t\t\t *\n\t\t\t * @since 3.9.0\n\t\t\t * @param {string} method\n\t\t\t */\n\t\t\tswitchCacheMethod( method ) {\n\t\t\t\treturn request( actionPrefix + 'switch_cache_method', { method }, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Cloudflare module actions.\n\t\t */\n\t\tcloudflare: {\n\t\t\t/**\n\t\t\t * Connect to Cloudflare.\n\t\t\t *\n\t\t\t * @since 3.0.0\n\t\t\t *\n\t\t\t * @param {string} email\n\t\t\t * @param {string} key\n\t\t\t * @param {string} token\n\t\t\t * @param {string} zone\n\t\t\t */\n\t\t\tconnect: ( email, key, token, zone ) => {\n\t\t\t\treturn request(\n\t\t\t\t\tactionPrefix + 'cloudflare_connect',\n\t\t\t\t\t{ email, key, token, zone },\n\t\t\t\t\t'POST'\n\t\t\t\t).then( ( response ) => {\n\t\t\t\t\treturn response;\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Asset Optimization module actions.\n\t\t */\n\t\tminification: {\n\t\t\t/**\n\t\t\t * Toggle CDN settings.\n\t\t\t *\n\t\t\t * @param {string} value CDN checkbox value.\n\t\t\t */\n\t\t\ttoggleCDN: ( value ) => {\n\t\t\t\tconst action = actionPrefix + 'minification_toggle_cdn';\n\t\t\t\treturn request( action, { value }, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Toggle logs settings.\n\t\t\t *\n\t\t\t * @param {string} value\n\t\t\t */\n\t\t\ttoggleLog: ( value ) => {\n\t\t\t\tconst action = actionPrefix + 'minification_toggle_log';\n\t\t\t\treturn request( action, { value }, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Toggle minification advanced mode.\n\t\t\t *\n\t\t\t * @param {string} value\n\t\t\t * @param {boolean} hide\n\t\t\t */\n\t\t\ttoggleView: ( value, hide ) => {\n\t\t\t\tconst action = actionPrefix + 'minification_toggle_view';\n\t\t\t\treturn request( action, { value, hide }, 'POST' ).then(\n\t\t\t\t\t( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Start minification check.\n\t\t\t */\n\t\t\tstartCheck: () => {\n\t\t\t\tconst action = actionPrefix + 'minification_start_check';\n\t\t\t\treturn request( action, {}, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Do a step in minification process.\n\t\t\t *\n\t\t\t * @param {number} step\n\t\t\t */\n\t\t\tcheckStep: ( step ) => {\n\t\t\t\tconst action = actionPrefix + 'minification_check_step';\n\t\t\t\treturn request( action, { step }, 'POST' ).then(\n\t\t\t\t\t( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Finish minification process.\n\t\t\t */\n\t\t\tfinishCheck: () => {\n\t\t\t\tconst action = actionPrefix + 'minification_finish_scan';\n\t\t\t\treturn request( action, {}, 'POST' ).then( ( response ) => {\n\t\t\t\t\treturn response;\n\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Cancel minification scan.\n\t\t\t */\n\t\t\tcancelScan: function cancelScan() {\n\t\t\t\tconst action = actionPrefix + 'minification_cancel_scan';\n\t\t\t\treturn request( action, {}, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Process critical css form.\n\t\t\t *\n\t\t\t * @since 1.8\n\t\t\t * @param {string} form\n\t\t\t */\n\t\t\tsaveCriticalCss: ( form ) => {\n\t\t\t\tconst action = actionPrefix + 'minification_save_extra_optimization_data';\n\t\t\t\treturn request( action, { form }, 'POST' ).then(\n\t\t\t\t\t( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Update custom asset path\n\t\t\t *\n\t\t\t * @since 1.9\n\t\t\t * @param {string} value\n\t\t\t */\n\t\t\tupdateAssetPath: ( value ) => {\n\t\t\t\tconst action = actionPrefix + 'minification_update_asset_path';\n\t\t\t\treturn request( action, { value }, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Save settings in network admin.\n\t\t\t *\n\t\t\t * @since 2.0.0\n\t\t\t * @param {string} settings\n\t\t\t */\n\t\t\tsaveNetworkSettings: ( settings ) => {\n\t\t\t\tconst action =\n\t\t\t\t\tactionPrefix + 'minification_update_network_settings';\n\t\t\t\treturn request( action, { settings }, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Update the CDN exclude list.\n\t\t\t *\n\t\t\t * @since 2.4.0\n\t\t\t * @param {Object} data\n\t\t\t */\n\t\t\tupdateExcludeList: ( data ) => {\n\t\t\t\tconst action = actionPrefix + 'minification_save_exclude_list';\n\t\t\t\treturn request( action, { data }, 'POST' );\n\t\t\t},\n\t\t\t/**\n\t\t\t * Clear Css files.\n\t\t\t *\n\t\t\t * @since 3.6.0\n\t\t\t * @param {string} module\n\t\t\t */\n\t\t\tclearCriticalCssFiles: () => {\n\t\t\t\treturn request(\n\t\t\t\t\tactionPrefix + 'clear_critical_css_files',\n\t\t\t\t\t{},\n\t\t\t\t\t'POST'\n\t\t\t\t).then( ( response ) => {\n\t\t\t\t\treturn response;\n\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Create CSS files from gutenberg.\n\t\t\t *\n\t\t\t * @since 3.6.0\n\t\t\t * @param postId\n\t\t\t * @param {string} postID\n\t\t\t */\n\t\t\tcreateCSSForPost: ( postId ) => {\n\t\t\t\treturn request(\n\t\t\t\t\tactionPrefix + 'gutenberg_create_css_file',\n\t\t\t\t\t{ postId },\n\t\t\t\t\t'POST'\n\t\t\t\t);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Re Create CSS files from gutenberg.\n\t\t\t *\n\t\t\t * @since 3.6.0\n\t\t\t * @param postId\n\t\t\t * @param {string} postID\n\t\t\t */\n\t\t\treCreateCSSForPost: ( postId ) => {\n\t\t\t\treturn request(\n\t\t\t\t\tactionPrefix + 'gutenberg_recreate_css_file',\n\t\t\t\t\t{ postId },\n\t\t\t\t\t'POST'\n\t\t\t\t);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Revert CSS files from gutenberg.\n\t\t\t *\n\t\t\t * @since 3.6.0\n\t\t\t * @param postId\n\t\t\t * @param {string} postID\n\t\t\t */\n\t\t\trevertCSSForPost: ( postId ) => {\n\t\t\t\treturn request(\n\t\t\t\t\tactionPrefix + 'gutenberg_revert_css_file',\n\t\t\t\t\t{ postId },\n\t\t\t\t\t'POST'\n\t\t\t\t);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Get critical css status for single post.\n\t\t\t *\n\t\t\t * @since 3.6.0\n\t\t\t * @param postId\n\t\t\t * @param {string} postID\n\t\t\t */\n\t\t\t getCriticalStatusForSinglePost: ( postId ) => {\n\t\t\t\treturn request(\n\t\t\t\t\tactionPrefix + 'gutenberg_get_critical_status_for_single_post',\n\t\t\t\t\t{ postId },\n\t\t\t\t\t'POST'\n\t\t\t\t);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Get critical css status for queue.\n\t\t\t */\n\t\t\t getCriticalStatusForQueue: () => {\n\t\t\t\treturn request(\n\t\t\t\t\tactionPrefix + 'get_critical_status_for_queue',\n\t\t\t\t\t{},\n\t\t\t\t\t'POST'\n\t\t\t\t);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Update Toggle Delay Js status.\n\t\t\t *\n\t\t\t * @param {string} data delay checkbox value.\n\t\t\t */\n\t\t\t toggleDelayJs: ( data ) => {\n\t\t\t\tconst action = actionPrefix + 'react_minify_toggle_delay_js';\n\t\t\t\treturn request( action, { data }, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Update Toggle Critical CSS status.\n\t\t\t *\n\t\t\t * @param {string} data critical css checkbox value.\n\t\t\t */\n\t\t\ttoggleCriticalCss: ( data ) => {\n\t\t\t\tconst action = actionPrefix + 'react_minify_toggle_critical_css';\n\t\t\t\treturn request( action, { data }, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Reset Exclusions.\n\t\t\t *\n\t\t\t * @param {string} value Reset exclusion option value.\n\t\t\t * @param {string} type Reset exclusion option type.\n\t\t\t */\n\t\t\tresetExclusions: ( value, type ) => {\n\t\t\t\tconst action = actionPrefix + 'reset_exclusions';\n\t\t\t\treturn request( action, { value, type }, 'POST' );\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Performance module actions.\n\t\t */\n\t\tperformance: {\n\t\t\t/**\n\t\t\t * Save performance test settings.\n\t\t\t *\n\t\t\t * @param {string} data From data.\n\t\t\t */\n\t\t\tsavePerformanceTestSettings: ( data ) => {\n\t\t\t\tconst action = actionPrefix + 'performance_save_settings';\n\t\t\t\treturn request( action, { data }, 'POST' );\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Advanced tools module actions.\n\t\t */\n\t\tadvanced: {\n\t\t\t/**\n\t\t\t * Save settings from advanced tools general and db cleanup sections.\n\t\t\t *\n\t\t\t * @param {string} data Type.\n\t\t\t * @param {string} form Serialized form.\n\t\t\t */\n\t\t\tsaveSettings: ( data, form ) => {\n\t\t\t\tconst action = actionPrefix + 'advanced_save_settings';\n\t\t\t\treturn request( action, { data, form }, 'POST' ).then(\n\t\t\t\t\t( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Delete selected data from database.\n\t\t\t *\n\t\t\t * @param {string} data\n\t\t\t */\n\t\t\tdeleteSelectedData: ( data ) => {\n\t\t\t\tconst action = actionPrefix + 'advanced_db_delete_data';\n\t\t\t\treturn request( action, { data }, 'POST' ).then(\n\t\t\t\t\t( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Clear out a batch of orphaned asset optimization data.\n\t\t\t *\n\t\t\t * @since 2.7.0\n\t\t\t *\n\t\t\t * @param {number} rows\n\t\t\t */\n\t\t\tclearOrphanedBatch( rows ) {\n\t\t\t\treturn request(\n\t\t\t\t\tactionPrefix + 'advanced_purge_orphaned',\n\t\t\t\t\t{ rows },\n\t\t\t\t\t'POST'\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Settings actions.\n\t\t */\n\t\tsettings: {\n\t\t\t/**\n\t\t\t * Save settings from HB admin settings.\n\t\t\t *\n\t\t\t * @param {string} form_data\n\t\t\t */\n\t\t\tsaveSettings: ( form_data ) => {\n\t\t\t\tconst action = actionPrefix + 'admin_settings_save_settings';\n\t\t\t\treturn request( action, { form_data }, 'POST' ).then(\n\t\t\t\t\t( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Upload settings import file from HB admin settings.\n\t\t\t *\n\t\t\t * @param {Object} form_data\n\t\t\t */\n\t\t\timportSettings: ( form_data ) => {\n\t\t\t\tconst action = actionPrefix + 'admin_settings_import_settings';\n\t\t\t\treturn request( action, form_data, 'POST' ).then(\n\t\t\t\t\t( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Export settings from HB admin settings.\n\t\t\t */\n\t\t\texportSettings: () => {\n\t\t\t\tconst action = actionPrefix + 'admin_settings_export_settings';\n\t\t\t\twindow.location =\n\t\t\t\t\tfetchUrl + '?action=' + action + '&nonce=' + fetchNonce;\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Common actions that are used by several modules.\n\t\t *\n\t\t * @since 1.9.3\n\t\t */\n\t\tcommon: {\n\t\t\t/**\n\t\t\t * Dismiss notice.\n\t\t\t *\n\t\t\t * @param {string} id\n\t\t\t * @param {string} SubAction\n\t\t\t */\n\t\t\tdismissNotice: ( id, SubAction = '' ) => {\n\t\t\t\treturn request(\n\t\t\t\t\tactionPrefix + 'notice_dismiss',\n\t\t\t\t\t{ id, SubAction },\n\t\t\t\t\t'POST'\n\t\t\t\t);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Clear logs.\n\t\t\t *\n\t\t\t * @since 1.9.2\n\t\t\t *\n\t\t\t * @param {string} module Module slug.\n\t\t\t */\n\t\t\tclearLogs: ( module ) => {\n\t\t\t\tconst action = actionPrefix + 'logger_clear';\n\t\t\t\treturn request( action, { module }, 'POST' ).then(\n\t\t\t\t\t( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Do a POST request to an AJAX endpoint.\n\t\t\t *\n\t\t\t * @since 2.5.0\n\t\t\t * @param {string} endpoint AJAX endpoint.\n\t\t\t */\n\t\t\tcall: ( endpoint ) => {\n\t\t\t\treturn request( endpoint, {}, 'POST' ).then( ( response ) => {\n\t\t\t\t\treturn response;\n\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Do a POST request to an AJAX endpoint with parameters.\n\t\t\t *\n\t\t\t * @param {string} endpoint AJAX endpoint.\n\t\t\t */\n\t\t\tcallWithParams: ( endpoint, data ) => {\n\t\t\t\treturn request( endpoint, { data }, 'POST' ).then( ( response ) => {\n\t\t\t\t\treturn response;\n\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Clear selected module cache.\n\t\t\t *\n\t\t\t * @since 2.7.1\n\t\t\t *\n\t\t\t * @param {Array} modules List of modules to clear cache for.\n\t\t\t */\n\t\t\tclearCaches: ( modules ) => {\n\t\t\t\tconst action = actionPrefix + 'clear_caches';\n\t\t\t\treturn request( action, { modules }, 'POST' ).then(\n\t\t\t\t\t( response ) => {\n\t\t\t\t\t\treturn response;\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 * Common action that are used for mixpanel.\n\t\t *\n\t\t * @since 3.9.4\n\t\t */\n\t\tmixpanel: {\n\t\t\t/**\n\t\t\t * Track mixpanel event.\n\t\t\t *\n\t\t\t * @since 3.9.4\n\t\t\t * @param {string} event\n\t\t\t * @param {Object} properties\n\t\t\t */\n\t\t\ttrackMixpanelEvent: ( event, properties ) => {\n\t\t\t\tconst action = actionPrefix + 'analytics_track_event';\n\t\t\t\treturn request( action, { event, properties }, 'POST' );\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Notifications module actions.\n\t\t *\n\t\t * @since 3.1.1\n\t\t */\n\t\tnotifications: {\n\t\t\t/**\n\t\t\t * Resend email confirmation.\n\t\t\t *\n\t\t\t * @since 2.3.0\n\t\t\t * @since 3.1.1 Moved from uptime module.\n\t\t\t *\n\t\t\t * @param {string} name JSON encoded recipient name string.\n\t\t\t * @param {string} email JSON encoded recipient email string.\n\t\t\t */\n\t\t\tresendConfirmationEmail: ( name, email ) => {\n\t\t\t\tconst action = actionPrefixPro + 'resend_confirmation';\n\t\t\t\treturn request( action, { name, email }, 'POST' ).then(\n\t\t\t\t\t( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Send email confirmation.\n\t\t\t *\n\t\t\t * @since 3.1.1\n\t\t\t *\n\t\t\t * @param {string} name JSON encoded recipient name string.\n\t\t\t * @param {string} email JSON encoded recipient email string.\n\t\t\t */\n\t\t\tsendConfirmationEmail: ( name, email ) => {\n\t\t\t\tconst action = actionPrefixPro + 'send_confirmation';\n\t\t\t\treturn request( action, { name, email }, 'POST' ).then(\n\t\t\t\t\t( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Disable notification.\n\t\t\t *\n\t\t\t * @since 3.1.1\n\t\t\t * @param {string} id\n\t\t\t * @param {string} type\n\t\t\t */\n\t\t\tdisable: ( id, type ) => {\n\t\t\t\tconst action = actionPrefixPro + 'disable_notification';\n\t\t\t\treturn request( action, { id, type }, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Activate/enable notification and save settings.\n\t\t\t *\n\t\t\t * @since 3.1.1\n\t\t\t * @param {Object} settings Settings object.\n\t\t\t * @param {boolean} update Is this an update of current settings?\n\t\t\t *\n\t\t\t */\n\t\t\tenable: ( settings, update = false ) => {\n\t\t\t\tconst action = actionPrefixPro + 'enable_notification';\n\t\t\t\treturn request( action, { settings, update }, 'POST' ).then(\n\t\t\t\t\t( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Get user avatar based on email.\n\t\t\t *\n\t\t\t * @since 3.1.1\n\t\t\t * @param {string} email\n\t\t\t */\n\t\t\tgetAvatar: ( email ) => {\n\t\t\t\tconst action = actionPrefixPro + 'get_avatar';\n\t\t\t\treturn request( action, { email }, 'POST' ).then(\n\t\t\t\t\t( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Get users.\n\t\t\t *\n\t\t\t * @since 3.1.1\n\t\t\t * @param {Array} exclude\n\t\t\t */\n\t\t\tgetUsers: ( exclude ) => {\n\t\t\t\tconst action = actionPrefixPro + 'search_users';\n\t\t\t\treturn request( action, { exclude }, 'POST' ).then(\n\t\t\t\t\t( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t};\n\n\tassign( this, methods );\n}\n\nconst HBFetcher = new Fetcher();\nexport default HBFetcher;\n\n/**\n * Check status.\n *\n * @param {Object|string} response\n * @return {*} Response\n */\nfunction checkStatus( response ) {\n\tif ( typeof response !== 'object' ) {\n\t\tresponse = JSON.parse( response );\n\t}\n\tif ( response.success ) {\n\t\treturn response.data;\n\t}\n\n\tconst data = response.data || {};\n\tconst error = new Error(\n\t\tdata.message || 'Error trying to fetch response from server'\n\t);\n\terror.response = response;\n\tthrow error;\n}\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\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\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\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__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\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};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","import '../scss/app.scss';\n\n/**\n * Various scripts for modules.\n */\nrequire( './modules/admin-main.js' );\nrequire( './modules/admin-performance.js' );\nrequire( './modules/admin-caching.js' );\nrequire( './modules/admin-minification.js' );\nrequire( './modules/admin-dashboard.js' );\nrequire( './modules/admin-uptime.js' );\nrequire( './modules/admin-cloudflare.js' );\nrequire( './modules/admin-advanced.js' );\nrequire( './modules/admin-settings.js' );\nrequire( './modules/admin-notifications.js' );\nrequire( './mixpanel.js' );\n\njQuery( document ).ready( function() {\n\twindow.WPHB_Admin.init();\n\twindow.WPHB_Admin.notices.init();\n} );\n"],"names":["isCallable","module","exports","it","uncurryThis","fails","hasOwn","DESCRIPTORS","CONFIGURABLE_FUNCTION_NAME","inspectSource","InternalStateModule","enforceInternalState","enforce","getInternalState","get","$String","String","defineProperty","Object","stringSlice","slice","replace","join","CONFIGURABLE_LENGTH","value","length","TEMPLATE","split","makeBuiltIn","name","options","getter","setter","configurable","arity","constructor","writable","prototype","undefined","error","state","source","Function","toString","this","FunctionPrototype","getDescriptor","getOwnPropertyDescriptor","EXISTS","PROPER","CONFIGURABLE","reIsUint","type","test","object","key","getBuiltIn","bind","hasOwnProperty","Symbol","objectProto","nativeObjectToString","symToStringTag","toStringTag","isOwn","call","tag","unmasked","e","result","baseTimes","isArguments","isArray","isBuffer","isIndex","isTypedArray","inherited","isArr","isArg","isBuff","isType","skipIndexes","push","ceil","Math","floor","trunc","x","n","isPrototypeOf","USE_SYMBOL_AS_UID","$Object","$Symbol","baseRest","isIterateeCall","assigner","sources","index","customizer","guard","func","thisArg","args","apply","internalObjectKeys","enumBugKeys","keys","O","set","has","NATIVE_WEAK_MAP","globalThis","isObject","createNonEnumerableProperty","shared","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","TypeError","WeakMap","store","metadata","facade","STATE","getterFor","TYPE","argument","number","arraySpeciesConstructor","originalArray","$","CacheScanner","_Scanner","_classCallCheck","_callSuper","arguments","_inherits","remainingSteps","_this","_superPropGet","currentStep","offset","totalSteps","Fetcher","caching","clearCacheBatch","then","updateProgressBar","getProgress","step","onFinish","_this2","common","response","parseInt","location","reload","Scanner","jQuery","WPHB_Admin","init","self","hash","window","pageCachingForm","fastCGICachingForm","rssForm","settingsForm","scanner","setTimeout","animate","scrollTop","top","on","preventDefault","saveSettings","button","find","addClass","saveFastCGISettings","serialize","removeClass","fastCGIResponse","wphbMixPanel","trackPageCachingSettings","settingsModified","preloadHomepage","search","errorMessage","getString","notices","show","clearCache","target","switchCacheMethod","classList","add","disableFastCGI","remove","intervalToggle","document","getElementById","addEventListener","toggle","cancelPreload","preloadToggle","rssExpiryTime","val","abs","redisForm","btn","host","port","pass","db","connected","redisSaveSettings","success","notice","innerHTML","message","parentNode","objectCache","checked","enableFeature","disableFeature","redisObjectCache","objectCachePurge","redisCacheDisable","redisDisable","detection","slideUp","currentElement","currentTarget","method","dataset","switchInfo","style","display","isFastCGIActivated","wphb","links","cachingPageURL","href","form","html","finally","clearNetworkCache","SUI","slideModal","start","optIn","mixpanel","enabled","deactivate","reason","feedback","track","trackHBUpsell","feature","action","utmLink","evenName","Feature","Location","trackEoUpsell","eventName","mpEventName","getUpdateType","update_type","trackDelayJSEvent","properties","trackFontOptimizationEvent","updateType","trackCriticalCSSEvent","trackAOUpdated","trackGutenbergEvent","Method","modified_settings","preload_homepage","trackProUpsell","event","data","forceTrack","trackMixpanelEvent","assignValue","baseAssignValue","props","isNew","newValue","nativeNow","Date","now","count","lastCalled","stamp","remaining","toIndexedObject","indexOf","names","i","baseGetTag","wellKnownSymbol","OrphanedScanner","advanced","clearOrphanedBatch","timeout","highCPU","Promise","resolve","closeModal","systemInfoDropdown","showModal","entries","id","mp_events","forEach","property","system","trigger","urlStrings","attr","fragmentsToggle","alignOptions","querySelectorAll","marginLeft","marginRight","_loop","setAttribute","removeAttribute","includes","createPickers","purgeBtn","purgeDb","purgeAObtn","purgeModalBtn","steps","items","dialog","modal","openModal","confirmDelete","row","footer","allBtn","deleteSelectedData","prop","left","leftString","itemRow","catch","$suiPickerInputs","wpColorPicker","change","ui","$this","color","toCSS","hasClass","each","$suiPickerInput","$suiPicker","closest","$suiPickerColor","$suiPickerValue","$wpPicker","$wpPickerButton","css","click","stopPropagation","str","charAt","toUpperCase","activeXDocument","anObject","definePropertiesModule","documentCreateElement","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","content","LT","NullProtoObjectViaActiveX","write","close","temp","parentWindow","NullProtoObject","ActiveXObject","iframeDocument","iframe","JS","domain","appendChild","src","contentWindow","open","F","create","Properties","f","baseIsArguments","isObjectLike","propertyIsEnumerable","getRawTag","objectToString","isSymbol","getMethod","ordinaryToPrimitive","$TypeError","TO_PRIMITIVE","input","pref","exoticToPrim","replacement","isForced","normalize","POLYFILL","NATIVE","string","toLowerCase","navigator","userAgent","baseSetToString","setToString","shortOut","getNative","postfix","random","classof","noop","construct","constructorRegExp","exec","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","sham","called","nativeKeys","overArg","root","stubFalse","freeExports","nodeType","freeModule","Buffer","functionToString","getOwnPropertySymbols","dashboard","url","clearCacheModalButton","delayValue","is","minification","toggleDelayJs","delay_js","delay_js_timeout","delay_js_exclude","criticalValue","toggleCriticalCss","criticalCss","mode","settings_modified","settings_default","checkboxes","modules","clearCaches","hideUpgradeSummary","element","trackAction","getAttribute","hasAttribute","trackSmushUpsell","ctaLink","createElement","fn","valueOf","transform","arg","Array","uptime","$dataRangeSelector","chartData","downtimeChartData","timer","$spinner","dataRange","dateFormat","$disableUptime","getUrlParameter","google","charts","load","packages","clearTimeout","getLink","setOnLoadCallback","drawResponseTimeChart","drawDowntimeChart","visualization","DataTable","addColumn","role","p","chartArray","JSON","parse","round","createUptimeTooltip","addRows","chartArea","width","height","colors","curveType","legend","position","vAxis","format","gridlines","minorGridlines","viewWindow","min","hAxis","tooltip","isHtml","series","axis","axes","y","Resp","label","chart","AreaChart","draw","resize","container","Timeline","dataTable","colorMap","Down","Unknown","Up","getNumberOfRows","getValue","timeline","showBarLabels","showRowLabels","barLabelStyle","fontSize","avoidOverlappingGridLines","origColors","events","addListener","bars","getElementsByTagName","bar","parseFloat","date","responseTime","formatTooltipDate","day","getDate","monthIndex","getMonth","hh","getHours","h","minutes","getMinutes","dd","sParam","sParameterName","sURLVariables","decodeURIComponent","substring","V8_VERSION","symbol","check","g","freeGlobal","isFunction","isLength","typedArrayTags","IE8_DOM_DEFINE","V8_PROTOTYPE_DEFINE_BUG","toPropertyKey","$defineProperty","$getOwnPropertyDescriptor","ENUMERABLE","WRITABLE","P","Attributes","current","enumerable","parent","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","concat","isMasked","toSource","reIsHostCtor","funcProto","funcToString","reIsNative","RegExp","strings","screen","other","cancelling","onStart","progress","cancel","querySelector","Error","IndexedObject","requireObjectCoercible","coreJsData","Ctor","toIntegerOrInfinity","max","integer","a","arrayLikeKeys","baseKeys","isArrayLike","aCallable","isNullOrUndefined","V","settings","body","wrap","form_data","contrastDiv","otherClass","elm","files","file","text","removeAttr","removeFileBtn","fileEl","formData","FormData","append","importSettings","exportSettings","disconnectEvents","_e$target$classList","contains","confirmReset","actionType","reasonInput","Message","confirmDisconnectSite","freeProcess","process","nodeUtil","types","require","binding","PerfScanner","finished","setInterval","progressStatus","clearInterval","loader","obj","score_mobile","mobileScore","score_desktop","desktopScore","active_features","HBSmushFeatures","aoStatus","cls_desktop","retrieveValueFromObject","hbPerformanceMetric","cls_mobile","fcp_desktop","fcp_mobile","inp_desktop","inp_mobile","lcp_desktop","lcp_mobile","speed_desktop","speed_mobile","tbt_desktop","tbt_mobile","ttfb_desktop","ttfb_mobile","lcp_ttfb_desktop","getLCPSubmetrics","lcp_ttfb","desktop","lcp_ttfb_mobile","lcp_load_delay_desktop","lcp_load_delay","lcp_load_delay_mobile","mobile","lcp_render_delay_desktop","lcp_render_delay","lcp_render_delay_mobile","lcp_load_time_desktop","lcp_load_time","lcp_load_time_mobile","lcp_element_desktop","lcp_element","lcp_element_mobile","audits_opportunities_desktop","getAudits","opportunities","audits_opportunities_mobile","audits_diagnostics_desktop","diagnostics","audits_diagnostics_mobile","audits_passed_desktop","passed","audits_passed_mobile","core_web_vitals_mobile","coreWebVitalsMobile","core_web_vitals_desktop","coreWebVitalsDesktop","autoloader_health","autoloaderHealth","autoloader_size","autoloaderSize","hasError","performance","iteration","pressedKeys","key_timer","wphbSetInterval","startPerformanceScan","savePerformanceTestSettings","wphbHistoricFieldData","drawChart","fcp","inp","divs","mouseenter","mouseleave","toggleClass","blur","audits","_i","_Object$entries","_Object$entries$_i","_slicedToArray","audit","_typeof","metrics","chartID","arrayToDataTable","fast","generateTooltip","fast_desc","average","average_desc","slow","slow_desc","BarChart","baselineColor","textPosition","isStacked","NATIVE_BIND","that","baseIsNative","uid","copyObject","createAssigner","isPrototype","assign","toLength","UNSCOPABLES","ArrayPrototype","defineBuiltIn","defineGlobalProperty","copyConstructorProperties","targetProperty","sourceProperty","descriptor","TARGET","GLOBAL","global","STATIC","stat","dontCallGetSet","forced","eq","objValue","definePropertyModule","createPropertyDescriptor","t","r","iterator","o","c","Generator","u","_regeneratorDefine2","G","v","d","l","done","return","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","__proto__","displayName","_regenerator","w","m","_invoke","asyncGeneratorStep","__","wp","i18n","notifications","exclude","edit","view","schedule","frequency","time","weekDay","monthDay","threshold","recipients","device","fieldData","showPing","database","revisions","drafts","trash","spam","trashComment","expiredTransients","transients","moduleData","disable","renderTemplate","maybeInstantFree","maybeOpenModal","el","upgradeUrl","reduce","loadUsers","template","initSUI","mapActions","addSelections","toggleUserNotice","HBFetcher","getUsers","user","addToUsersList","fixRecipientCSS","console","log","processScheduleSettings","select","processAdditionalSettings","update","processSettings","enable","history","pushState","title","pathname","code","activate","moduleName","getModuleName","initUserSelects","toggleAddButton","handleAddButtonClick","handleFrequencySelect","initIcon","initColor","initSearch","modalDialog","tabs","sideTabs","freq","scheduleBox","weekDiv","monthDiv","inputs","empty","sanitizeString","trim","_this3","name_input","email","err","name_err","errorEmptyName","parents","getAvatar","avatar","confirmSubscription","is_pending","pending","is_subscribed","subscribed","is_can_resend_confirmation","canResend","addUser","userSelect","SUIselect2","minimumInputLength","maximumSelectionLength","ajax","ajaxurl","dataType","delay","params","nonce","nonces","HBFetchNonce","query","term","processResults","results","map","item","_this4","_callee","_context","sendConfirmationEmail","_next","_throw","resendInvite","resendConfirmationEmail","findIndex","recipientList","subClass","img","confirmBtn","confirmTooltip","resendTooltip","toggleRecipientList","first","tooltipClass","stringify","removeUser","splice","returnToList","_this5","onClickFunction","list","children","userNotice","hasItems","recipientExists","continueButton","_","memoize","compiled","evaluate","interpolate","escape","variable","templateSettings","cloudflare","purgeCache","bindActions","cfModal","connect","reChkBtn","recheck","saveBtn","keyHelpLnk","toggleHelp","topHelpLnk","hideHelp","switchLabel","disabled","reject","responseText","apiKeyField","apiKeyError","token","zone","zones","populateSelectWithZones","option","Option","minimumResultsForSearch","icon","nativeMax","array","otherArgs","objectKeys","defineProperties","simple","unsafe","nonConfigurable","nonWritable","tryToString","TO_STRING_TAG_SUPPORT","classofRaw","TO_STRING_TAG","CORRECT_ARGUMENTS","tryGet","callee","objectOrFunction","len","vertxNext","customSchedulerFn","asap","callback","queue","flush","scheduleFlush","setScheduler","scheduleFn","setAsap","asapFn","browserWindow","browserGlobal","BrowserMutationObserver","MutationObserver","WebKitMutationObserver","isNode","isWorker","Uint8ClampedArray","importScripts","MessageChannel","useNextTick","nextTick","useVertxTimer","useSetTimeout","useMutationObserver","iterations","observer","node","createTextNode","observe","characterData","useMessageChannel","channel","port1","onmessage","port2","postMessage","globalSetTimeout","attemptVertx","vertx","runOnLoop","runOnContext","onFulfillment","onRejection","child","PROMISE_ID","makePromise","_state","invokeCallback","_result","subscribe","resolve$1","Constructor","promise","PENDING","FULFILLED","REJECTED","selfFulfillment","cannotReturnOwn","tryThen","then$$1","fulfillmentHandler","rejectionHandler","handleForeignThenable","thenable","sealed","fulfill","_label","handleOwnThenable","handleMaybeThenable","maybeThenable","publishRejection","_onerror","publish","_subscribers","subscribers","settled","detail","hasCallback","succeeded","initializePromise","resolver","nextId","validationError","Enumerator","_instanceConstructor","_remaining","_enumerate","_eachEntry","entry","resolve$$1","_then","didError","_settledAt","Promise$1","_willSettleAt","enumerator","all","race","reject$1","needsResolver","needsNew","polyfill","local","promiseToString","cast","_setScheduler","_setAsap","_asap","factory","toPrimitive","bitmap","CONSTRUCTOR","METHOD","NATIVE_SYMBOL","baseIsTypedArray","baseUnary","nodeIsTypedArray","entryUnbind","documentAll","maskSrcKey","propertyIsEnumerableModule","URL","searchParams","willBeChecked","modalId","hasChanges","safeModeCheckbox","clearLogs","score_mobile_previous","score_desktop_previous","urlParams","URLSearchParams","delete","replaceState","initModule","toggleSafeMode","callWithParams","discardSafeMode","publishSafeMode","clearAllCache","clearAllCacheValue","getModule","cfNotice","onclick","dismissCloudflareNotice","http2Notice","dismissNotice","rateActions","dismiss","openNotice","noticeId","closeNotice","cloudFlareDashNotice","noticeType","rateNotice","pageMap","pageSlug","Action","isConstructor","SPECIES","$Array","C","IS_PURE","SHARED","versions","version","copyright","license","ownKeys","getOwnPropertyDescriptorModule","exceptions","namespace","iteratee","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","getOwnPropertyNames","$propertyIsEnumerable","NASHORN_BUG","$findIndex","addToUnscopables","FIND_INDEX","SKIPS_HOLES","proto","callbackfn","toObject","lengthOfArrayLike","arraySpeciesCreate","createMethod","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","specificCreate","boundFunction","filter","some","every","filterReject","identity","overRest","criticalAjaxInterval","MinifyScanner","checkStep","finishCheck","cancelScan","startCheck","assets_msg","$checkFilesResultsContainer","checkURLSList","checkedURLS","SELECTORS","EXCLUSION_SELECTORS","CONTAINER_CLASSES","delayJs","ALL_EXCLUSIONS","exclusionType","criticalStatusForQueue","status","criticalUpdateStatusNotice","currentScanStep","initializeSelectorsAndEventHandlers","cdnValue","toggleCDN","toggleAdvancedKeywordsView","wphbReact","isMember","criticalCSSSwitchMode","hbTrackEoMPEvent","fontDisplayValue","hide","spinner","saveCriticalCss","eventUpdateSummary","Event","dispatchEvent","is_delay_value_updated","delay_js_update_type","Timeout","exclusions_files","delayJsMixpanelValues","exclusions_posttypes","exclusions_urls","exclusions_plugins","exclusions_trackers","exclusions_keywords","fontOptimizationUpdateType","fontSwapUpdateType","isCriticalValueUpdated","settingsDefault","criticalCssMixpanelValues","manual_inclusions","manualInclusion","isStatusTagNeedsUpdate","triggerCriticalStatusUpdateAjax","htmlForStatusTag","criticalUpdateStatusTag","styleType","hbToggleElement","textField","onchange","updateAssetPath","saveNetworkSettings","requestData","excludeAssets","getMultiSelectValues","debugLog","updateExcludeList","expandButtonManual","collapseButtonManual","expandButtonAuto","collapseButtonAuto","autoTrigger","replaceModal","manualTrigger","clearCriticalCss","config","getSelect2ConfigForTag","getAjaxSelectConfig","getCommonSelect2Config","isCriticalCss","$allExclusions","toggleSelectBoxOption","enableDisableResetButton","selector","containerClass","combineAllExclusions","isAdding","synchronizeExclusionValues","templateSelection","formatSelectResult","templateResult","Infinity","toggleExclusionBox","$box","_element$params","_element$params2","_ref","_element$element$data","_element$element","_element$params3","_element$params4","shouldSelect","selectedValue","hbExclusionType","$option","_ref2","_element$element$data2","_element$element2","_element$params5","_element$params6","containerType","targetBoxId","getExclusionTypeData","criticalCssBox","delayBox","currentValues","updatedValues","closeOnSelect","_objectSpread","tags","createTag","tokenSeparators","language","noResults","select2Tags","_e$target","isDelayJs","advancedViewLabel","delayJsExclusions","copySelect2ToTextarea","syncTextareaSelectData","isAdvancedViewChecked","isAdvancedView","legacyKeywords","copyTextareaToSelect2","line","select2Element","allExclusionsBox","existingOptions","allExclusionsOptions","newOption","existingValue","trimmedTags","_ref3","exclusionData","includeChevron","selectLabel","getIcon","exclusionFiles","core_file","exclusionWpFile","posts","exclusionPostTypes","urls","exclusionPostUrls","plugins","exclusionPluginThemes","keywords","exclusionKeywords","default","exclusionDefault","ads","exclusionAds","default_exclusions","all_exclusions","exclusionAll","iconName","itemAllExclusionsSelector","exclusionContainerSelector","itemAllExclusions","not","resetExclusion","exclusionOptions","resetExclusions","statusHtml","getCriticalStatusForQueue","criticalDisplayError","error_message","criticalMode","errorCode","criticalErrorMessage","insertAdjacentHTML","elementId","eventname","hbTrackMPOnAoActivate","Mode","assets_found","total_files","filesize_reductions","switchView","trackBox","toggleView","stats","assetsFound","totalFiles","filesizeReductions","goToSettings","selected","scripts","styles","skipUpgrade","doUpgrade","purgeOrphanedData","clearCriticalCssFiles","manualCriticalBox","freeSelf","uncurryThisWithBind","match","Deno","v8","constant","toAbsoluteIndex","IS_INCLUDES","fromIndex","fetchUrl","fetchNonce","actionPrefix","actionPrefixPro","request","cache","contentType","processData","fail","checkStatus","methods","clearCacheForPost","postId","password","sites","toggleLog","createCSSForPost","reCreateCSSForPost","revertCSSForPost","getCriticalStatusForSinglePost","rows","SubAction","endpoint","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","__esModule","definition","nmd","paths","ready"],"ignoreList":[],"sourceRoot":""}
| ver. 1.4 |
Github
|
.
| PHP 8.2.30 | Generation time: 0.13 |
proxy
|
phpinfo
|
Settings