File manager - Edit - /home/vblioqus/unfreezetiktok.com/wp-content/plugins/hummingbird-performance/admin/assets/js/wphb-setup-wizard.min.js.map
Back
{"version":3,"file":"js/wphb-setup-wizard.min.js","mappings":"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","sources":["webpack://wp-hummingbird/webpack/runtime/chunk loaded","webpack://wp-hummingbird/./node_modules/lodash/isLength.js","webpack://wp-hummingbird/./node_modules/lodash/isObjectLike.js","webpack://wp-hummingbird/./node_modules/lodash/_isIndex.js","webpack://wp-hummingbird/./node_modules/lodash/_getValue.js","webpack://wp-hummingbird/./node_modules/lodash/_getRawTag.js","webpack://wp-hummingbird/./node_modules/lodash/_arrayLikeKeys.js","webpack://wp-hummingbird/./node_modules/lodash/_createAssigner.js","webpack://wp-hummingbird/./node_modules/lodash/_apply.js","webpack://wp-hummingbird/./_src/js/mixpanel.js","webpack://wp-hummingbird/./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://wp-hummingbird/./node_modules/lodash/_copyObject.js","webpack://wp-hummingbird/./node_modules/lodash/_shortOut.js","webpack://wp-hummingbird/./node_modules/lodash/_Symbol.js","webpack://wp-hummingbird/./node_modules/lodash/isFunction.js","webpack://wp-hummingbird/./node_modules/lodash/isArguments.js","webpack://wp-hummingbird/./node_modules/lodash/_baseGetTag.js","webpack://wp-hummingbird/./node_modules/prop-types/factoryWithThrowingShims.js","webpack://wp-hummingbird/./node_modules/lodash/_setToString.js","webpack://wp-hummingbird/./node_modules/lodash/_defineProperty.js","webpack://wp-hummingbird/./node_modules/lodash/_baseAssignValue.js","webpack://wp-hummingbird/./node_modules/lodash/identity.js","webpack://wp-hummingbird/./node_modules/lodash/_nativeKeys.js","webpack://wp-hummingbird/./node_modules/lodash/isBuffer.js","webpack://wp-hummingbird/./node_modules/lodash/isObject.js","webpack://wp-hummingbird/./node_modules/lodash/_overArg.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/lodash/_baseIsNative.js","webpack://wp-hummingbird/./node_modules/object-assign/index.js","webpack://wp-hummingbird/./node_modules/lodash/eq.js","webpack://wp-hummingbird/./node_modules/lodash/_coreJsData.js","webpack://wp-hummingbird/./node_modules/lodash/_isPrototype.js","webpack://wp-hummingbird/./node_modules/prop-types/index.js","webpack://wp-hummingbird/./node_modules/lodash/keys.js","webpack://wp-hummingbird/./node_modules/lodash/_nodeUtil.js","webpack://wp-hummingbird/./node_modules/lodash/_getNative.js","webpack://wp-hummingbird/./node_modules/lodash/assign.js","webpack://wp-hummingbird/./node_modules/lodash/isArray.js","webpack://wp-hummingbird/./node_modules/lodash/_assignValue.js","webpack://wp-hummingbird/./_src/js/utils/helpers.js","webpack://wp-hummingbird/./node_modules/whatwg-fetch/fetch.js","webpack://wp-hummingbird/./_src/react/api.js","webpack://wp-hummingbird/./_src/react/components/sui-button/index.jsx","webpack://wp-hummingbird/./_src/react/components/sui-icon/index.jsx","webpack://wp-hummingbird/./_src/react/components/sui-button-loading/index.jsx","webpack://wp-hummingbird/./_src/react/components/sui-tooltip/index.jsx","webpack://wp-hummingbird/./_src/react/components/loader/index.jsx","webpack://wp-hummingbird/./_src/react/components/sui-box/index.jsx","webpack://wp-hummingbird/./_src/react/components/sui-tag/index.jsx","webpack://wp-hummingbird/./_src/react/components/sui-toggle/index.jsx","webpack://wp-hummingbird/./_src/react/components/sui-box-settings/row.jsx","webpack://wp-hummingbird/./_src/react/components/sui-tabs/index.jsx","webpack://wp-hummingbird/./node_modules/@wordpress/element/build-module/create-interpolate-element.js","webpack://wp-hummingbird/./_src/react/views/setup/wizard.jsx","webpack://wp-hummingbird/./_src/react/modules/setup.jsx","webpack://wp-hummingbird/./node_modules/@wordpress/dom-ready/build-module/index.js","webpack://wp-hummingbird/./node_modules/lodash/_overRest.js","webpack://wp-hummingbird/./node_modules/lodash/_isIterateeCall.js","webpack://wp-hummingbird/./node_modules/classnames/index.js","webpack://wp-hummingbird/./node_modules/es6-promise/dist/es6-promise.js","webpack://wp-hummingbird/./node_modules/lodash/isTypedArray.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/scheduler/cjs/scheduler.production.min.js","webpack://wp-hummingbird/./node_modules/lodash/_toSource.js","webpack://wp-hummingbird/./node_modules/lodash/_baseIsArguments.js","webpack://wp-hummingbird/./node_modules/lodash/_baseTimes.js","webpack://wp-hummingbird/./node_modules/lodash/_baseKeys.js","webpack://wp-hummingbird/./node_modules/lodash/_baseRest.js","webpack://wp-hummingbird/./node_modules/lodash/_root.js","webpack://wp-hummingbird/./node_modules/lodash/_objectToString.js","webpack://wp-hummingbird/./node_modules/lodash/_baseSetToString.js","webpack://wp-hummingbird/./_src/js/utils/fetcher.js","webpack://wp-hummingbird/./node_modules/lodash/stubFalse.js","webpack://wp-hummingbird/./node_modules/scheduler/index.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/webpack/runtime/jsonp chunk loading","webpack://wp-hummingbird/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\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","/** 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","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","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","/* 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","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\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","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","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","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\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","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","/**\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","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","/**\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","/**\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","/** 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","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","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\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","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","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\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","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","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","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","/**\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","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","/* 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","/* eslint-disable no-prototype-builtins */\nvar g =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof self !== 'undefined' && self) ||\n // eslint-disable-next-line no-undef\n (typeof global !== 'undefined' && global) ||\n {}\n\nvar support = {\n searchParams: 'URLSearchParams' in g,\n iterable: 'Symbol' in g && 'iterator' in Symbol,\n blob:\n 'FileReader' in g &&\n 'Blob' in g &&\n (function() {\n try {\n new Blob()\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in g,\n arrayBuffer: 'ArrayBuffer' in g\n}\n\nfunction isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n}\n\nif (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ]\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n }\n}\n\nfunction normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name)\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~!]/i.test(name) || name === '') {\n throw new TypeError('Invalid character in header field name: \"' + name + '\"')\n }\n return name.toLowerCase()\n}\n\nfunction normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value)\n }\n return value\n}\n\n// Build a destructive iterator for the value list\nfunction iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift()\n return {done: value === undefined, value: value}\n }\n }\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n }\n }\n\n return iterator\n}\n\nexport function Headers(headers) {\n this.map = {}\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value)\n }, this)\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n if (header.length != 2) {\n throw new TypeError('Headers constructor: expected name/value pair to be length 2, found' + header.length)\n }\n this.append(header[0], header[1])\n }, this)\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name])\n }, this)\n }\n}\n\nHeaders.prototype.append = function(name, value) {\n name = normalizeName(name)\n value = normalizeValue(value)\n var oldValue = this.map[name]\n this.map[name] = oldValue ? oldValue + ', ' + value : value\n}\n\nHeaders.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)]\n}\n\nHeaders.prototype.get = function(name) {\n name = normalizeName(name)\n return this.has(name) ? this.map[name] : null\n}\n\nHeaders.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n}\n\nHeaders.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value)\n}\n\nHeaders.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this)\n }\n }\n}\n\nHeaders.prototype.keys = function() {\n var items = []\n this.forEach(function(value, name) {\n items.push(name)\n })\n return iteratorFor(items)\n}\n\nHeaders.prototype.values = function() {\n var items = []\n this.forEach(function(value) {\n items.push(value)\n })\n return iteratorFor(items)\n}\n\nHeaders.prototype.entries = function() {\n var items = []\n this.forEach(function(value, name) {\n items.push([name, value])\n })\n return iteratorFor(items)\n}\n\nif (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n}\n\nfunction consumed(body) {\n if (body._noBody) return\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true\n}\n\nfunction fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result)\n }\n reader.onerror = function() {\n reject(reader.error)\n }\n })\n}\n\nfunction readBlobAsArrayBuffer(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsArrayBuffer(blob)\n return promise\n}\n\nfunction readBlobAsText(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n var match = /charset=([A-Za-z0-9_-]+)/.exec(blob.type)\n var encoding = match ? match[1] : 'utf-8'\n reader.readAsText(blob, encoding)\n return promise\n}\n\nfunction readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf)\n var chars = new Array(view.length)\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i])\n }\n return chars.join('')\n}\n\nfunction bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength)\n view.set(new Uint8Array(buf))\n return view.buffer\n }\n}\n\nfunction Body() {\n this.bodyUsed = false\n\n this._initBody = function(body) {\n /*\n fetch-mock wraps the Response object in an ES6 Proxy to\n provide useful test harness features such as flush. However, on\n ES5 browsers without fetch or Proxy support pollyfills must be used;\n the proxy-pollyfill is unable to proxy an attribute unless it exists\n on the object before the Proxy is created. This change ensures\n Response.bodyUsed exists on the instance, while maintaining the\n semantic of setting Request.bodyUsed in the constructor before\n _initBody is called.\n */\n // eslint-disable-next-line no-self-assign\n this.bodyUsed = this.bodyUsed\n this._bodyInit = body\n if (!body) {\n this._noBody = true;\n this._bodyText = ''\n } else if (typeof body === 'string') {\n this._bodyText = body\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString()\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer)\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer])\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body)\n } else {\n this._bodyText = body = Object.prototype.toString.call(body)\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8')\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type)\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n }\n }\n }\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n }\n }\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n var isConsumed = consumed(this)\n if (isConsumed) {\n return isConsumed\n } else if (ArrayBuffer.isView(this._bodyArrayBuffer)) {\n return Promise.resolve(\n this._bodyArrayBuffer.buffer.slice(\n this._bodyArrayBuffer.byteOffset,\n this._bodyArrayBuffer.byteOffset + this._bodyArrayBuffer.byteLength\n )\n )\n } else {\n return Promise.resolve(this._bodyArrayBuffer)\n }\n } else if (support.blob) {\n return this.blob().then(readBlobAsArrayBuffer)\n } else {\n throw new Error('could not read as ArrayBuffer')\n }\n }\n\n this.text = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n }\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n }\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n }\n\n return this\n}\n\n// HTTP methods whose capitalization should be normalized\nvar methods = ['CONNECT', 'DELETE', 'GET', 'HEAD', 'OPTIONS', 'PATCH', 'POST', 'PUT', 'TRACE']\n\nfunction normalizeMethod(method) {\n var upcased = method.toUpperCase()\n return methods.indexOf(upcased) > -1 ? upcased : method\n}\n\nexport function Request(input, options) {\n if (!(this instanceof Request)) {\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n }\n\n options = options || {}\n var body = options.body\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url\n this.credentials = input.credentials\n if (!options.headers) {\n this.headers = new Headers(input.headers)\n }\n this.method = input.method\n this.mode = input.mode\n this.signal = input.signal\n if (!body && input._bodyInit != null) {\n body = input._bodyInit\n input.bodyUsed = true\n }\n } else {\n this.url = String(input)\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin'\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers)\n }\n this.method = normalizeMethod(options.method || this.method || 'GET')\n this.mode = options.mode || this.mode || null\n this.signal = options.signal || this.signal || (function () {\n if ('AbortController' in g) {\n var ctrl = new AbortController();\n return ctrl.signal;\n }\n }());\n this.referrer = null\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body)\n\n if (this.method === 'GET' || this.method === 'HEAD') {\n if (options.cache === 'no-store' || options.cache === 'no-cache') {\n // Search for a '_' parameter in the query string\n var reParamSearch = /([?&])_=[^&]*/\n if (reParamSearch.test(this.url)) {\n // If it already exists then set the value with the current time\n this.url = this.url.replace(reParamSearch, '$1_=' + new Date().getTime())\n } else {\n // Otherwise add a new '_' parameter to the end with the current time\n var reQueryString = /\\?/\n this.url += (reQueryString.test(this.url) ? '&' : '?') + '_=' + new Date().getTime()\n }\n }\n }\n}\n\nRequest.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n}\n\nfunction decode(body) {\n var form = new FormData()\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=')\n var name = split.shift().replace(/\\+/g, ' ')\n var value = split.join('=').replace(/\\+/g, ' ')\n form.append(decodeURIComponent(name), decodeURIComponent(value))\n }\n })\n return form\n}\n\nfunction parseHeaders(rawHeaders) {\n var headers = new Headers()\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ')\n // Avoiding split via regex to work around a common IE11 bug with the core-js 3.6.0 regex polyfill\n // https://github.com/github/fetch/issues/748\n // https://github.com/zloirock/core-js/issues/751\n preProcessedHeaders\n .split('\\r')\n .map(function(header) {\n return header.indexOf('\\n') === 0 ? header.substr(1, header.length) : header\n })\n .forEach(function(line) {\n var parts = line.split(':')\n var key = parts.shift().trim()\n if (key) {\n var value = parts.join(':').trim()\n try {\n headers.append(key, value)\n } catch (error) {\n console.warn('Response ' + error.message)\n }\n }\n })\n return headers\n}\n\nBody.call(Request.prototype)\n\nexport function Response(bodyInit, options) {\n if (!(this instanceof Response)) {\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n }\n if (!options) {\n options = {}\n }\n\n this.type = 'default'\n this.status = options.status === undefined ? 200 : options.status\n if (this.status < 200 || this.status > 599) {\n throw new RangeError(\"Failed to construct 'Response': The status provided (0) is outside the range [200, 599].\")\n }\n this.ok = this.status >= 200 && this.status < 300\n this.statusText = options.statusText === undefined ? '' : '' + options.statusText\n this.headers = new Headers(options.headers)\n this.url = options.url || ''\n this._initBody(bodyInit)\n}\n\nBody.call(Response.prototype)\n\nResponse.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n}\n\nResponse.error = function() {\n var response = new Response(null, {status: 200, statusText: ''})\n response.ok = false\n response.status = 0\n response.type = 'error'\n return response\n}\n\nvar redirectStatuses = [301, 302, 303, 307, 308]\n\nResponse.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n}\n\nexport var DOMException = g.DOMException\ntry {\n new DOMException()\n} catch (err) {\n DOMException = function(message, name) {\n this.message = message\n this.name = name\n var error = Error(message)\n this.stack = error.stack\n }\n DOMException.prototype = Object.create(Error.prototype)\n DOMException.prototype.constructor = DOMException\n}\n\nexport function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init)\n\n if (request.signal && request.signal.aborted) {\n return reject(new DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest()\n\n function abortXhr() {\n xhr.abort()\n }\n\n xhr.onload = function() {\n var options = {\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n }\n // This check if specifically for when a user fetches a file locally from the file system\n // Only if the status is out of a normal range\n if (request.url.indexOf('file://') === 0 && (xhr.status < 200 || xhr.status > 599)) {\n options.status = 200;\n } else {\n options.status = xhr.status;\n }\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n var body = 'response' in xhr ? xhr.response : xhr.responseText\n setTimeout(function() {\n resolve(new Response(body, options))\n }, 0)\n }\n\n xhr.onerror = function() {\n setTimeout(function() {\n reject(new TypeError('Network request failed'))\n }, 0)\n }\n\n xhr.ontimeout = function() {\n setTimeout(function() {\n reject(new TypeError('Network request timed out'))\n }, 0)\n }\n\n xhr.onabort = function() {\n setTimeout(function() {\n reject(new DOMException('Aborted', 'AbortError'))\n }, 0)\n }\n\n function fixUrl(url) {\n try {\n return url === '' && g.location.href ? g.location.href : url\n } catch (e) {\n return url\n }\n }\n\n xhr.open(request.method, fixUrl(request.url), true)\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false\n }\n\n if ('responseType' in xhr) {\n if (support.blob) {\n xhr.responseType = 'blob'\n } else if (\n support.arrayBuffer\n ) {\n xhr.responseType = 'arraybuffer'\n }\n }\n\n if (init && typeof init.headers === 'object' && !(init.headers instanceof Headers || (g.Headers && init.headers instanceof g.Headers))) {\n var names = [];\n Object.getOwnPropertyNames(init.headers).forEach(function(name) {\n names.push(normalizeName(name))\n xhr.setRequestHeader(name, normalizeValue(init.headers[name]))\n })\n request.headers.forEach(function(value, name) {\n if (names.indexOf(name) === -1) {\n xhr.setRequestHeader(name, value)\n }\n })\n } else {\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value)\n })\n }\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr)\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr)\n }\n }\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n })\n}\n\nfetch.polyfill = true\n\nif (!g.fetch) {\n g.fetch = fetch\n g.Headers = Headers\n g.Request = Request\n g.Response = Response\n}\n","/* global ajaxurl */\n/* global wphb */\n\n/**\n * External dependencies.\n */\nimport { fetch } from 'whatwg-fetch';\n\nconst methods = [ 'get', 'post', 'put', 'delete' ];\n\n/**\n * HB API class.\n *\n * Uses jQuery.ajax().\n *\n * @property {Function} get GET request.\n * @property {Function} post POST request.\n * @property {Function} put PUT request.\n * @property {Function} delete DELETE request.\n */\nexport default class HBAPIFetch {\n\t/**\n\t * Class constructor.\n\t */\n\tconstructor() {\n\t\tmethods.forEach( ( method ) => {\n\t\t\tthis[ method ] = this._setupAjaxAPI( method );\n\t\t} );\n\t}\n\n\t/**\n\t * Setup AJAX endpoints.\n\t *\n\t * @param {string} method\n\t * @return {function(*=, *=): Promise<*>} Response.\n\t * @private\n\t */\n\t_setupAjaxAPI( method ) {\n\t\t// Can't use body with GET requests? Not a problem - we'll convert GET to a POST request.\n\t\tif ( 'get' === method ) {\n\t\t\tmethod = 'post';\n\t\t}\n\n\t\treturn ( endpoint = '/', data = false ) => {\n\t\t\tconst fetchObject = {\n\t\t\t\tcredentials: 'same-origin',\n\t\t\t\tmethod,\n\t\t\t\theaders: {\n\t\t\t\t\t'Content-Type':\n\t\t\t\t\t\t'application/x-www-form-urlencoded; charset=utf-8',\n\t\t\t\t},\n\t\t\t\tbody:\n\t\t\t\t\t'action=wphb_react_' +\n\t\t\t\t\tendpoint +\n\t\t\t\t\t'&_wpnonce=' +\n\t\t\t\t\twphb.nonces.HBFetchNonce +\n\t\t\t\t\t'&data=' +\n\t\t\t\t\tJSON.stringify( data ),\n\t\t\t};\n\n\t\t\treturn fetch( ajaxurl, fetchObject ).then( ( response ) => {\n\t\t\t\treturn response.json().then( ( json ) => {\n\t\t\t\t\treturn response.ok\n\t\t\t\t\t\t? json.data\n\t\t\t\t\t\t: Promise.reject( json.data );\n\t\t\t\t} );\n\t\t\t} );\n\t\t};\n\t}\n}\n","/**\n * External dependencies\n */\nimport React from 'react';\nimport classNames from 'classnames';\n\n/**\n * Button functional component.\n *\n * @param {Object} props Component props.\n * @param {string|JSX.Element} props.text Button text.\n * @param {string} props.url URL link.\n * @param {Array|Object} props.classes Button class.\n * @param {string} props.id Button ID.\n * @param {string|JSX.Element} props.icon SUI icon class.\n * @param {string} props.target Target __blank?\n * @param {boolean} props.disabled Disabled or not.\n * @param {*} props.onClick onClick callback.\n * @param {string} props.type Link or button.\n * @return {JSX.Element} Button component.\n * @class\n */\nexport default function Button( {\n\ttext,\n\turl = '#',\n\tclasses,\n\tid,\n\ticon,\n\ttarget,\n\tdisabled = false,\n\tonClick,\n\ttype = 'link',\n\t...props\n} ) {\n\tif ( icon ) {\n\t\ticon = <span className={ icon } aria-hidden=\"true\" />;\n\t}\n\n\tif ( 'button' === type ) {\n\t\treturn (\n\t\t\t<button\n\t\t\t\tclassName={ classNames( classes ) }\n\t\t\t\tid={ id }\n\t\t\t\tdisabled={ disabled }\n\t\t\t\tonClick={ onClick }\n\t\t\t\t{ ...props }\n\t\t\t>\n\t\t\t\t{ ! window.lodash.includes( classes, 'sui-button-icon-right' ) && icon }\n\t\t\t\t{ text }\n\t\t\t\t{ window.lodash.includes( classes, 'sui-button-icon-right' ) && icon }\n\t\t\t</button>\n\t\t);\n\t}\n\n\tlet rel;\n\tif ( 'blank' === target || '_blank' === target ) {\n\t\ttarget = '_blank';\n\t\trel = 'noopener noreferrer';\n\t}\n\n\treturn (\n\t\t<a\n\t\t\tclassName={ classNames( classes ) }\n\t\t\thref={ url }\n\t\t\tid={ id }\n\t\t\ttarget={ target }\n\t\t\trel={ rel }\n\t\t\tdisabled={ disabled }\n\t\t\tonClick={ onClick }\n\t\t\t{ ...props }\n\t\t>\n\t\t\t{ ! window.lodash.includes( classes, 'sui-button-icon-right' ) && icon }\n\t\t\t{ text }\n\t\t\t{ window.lodash.includes( classes, 'sui-button-icon-right' ) && icon }\n\t\t</a>\n\t);\n}\n","/**\n * External dependencies\n */\nimport React from 'react';\n\n/**\n * Icon component.\n *\n * @param {string} classes List of classes\n * @return {*} Icon component.\n * @class\n */\nexport default function Icon( { classes } ) {\n\treturn <span className={ classes } aria-hidden=\"true\" />;\n}\n","/**\n * External dependencies\n */\nimport React from 'react';\nimport classNames from 'classnames';\nimport Icon from '../sui-icon';\n\n/**\n * ButtonLoading functional component.\n *\n * @since 3.2.0\n *\n * @param {Object} props Component props.\n * @param {string} props.text Button text.\n * @param {string} props.loadingText Loading text.\n * @param {Array} props.classes Button class.\n * @param {string|JSX.Element} props.icon SUI icon class.\n * @param {boolean} props.loading Loading status.\n * @param {*} props.onClick onClick callback.\n * @return {JSX.Element} ButtonLoading component.\n * @class\n */\nexport default function ButtonLoading( {\n\ttext,\n\tclasses,\n\ticon,\n\tonClick,\n\tloading = false,\n\tloadingText\n} ) {\n\treturn (\n\t\t<button\n\t\t\tclassName={ classNames( 'sui-button', classes, { 'sui-button-onload-text': loading && loadingText }, { 'sui-button-onload': loading && ! loadingText } ) }\n\t\t\tonClick={ onClick }\n\t\t\taria-live=\"polite\"\n\t\t>\n\t\t\t{ loadingText &&\n\t\t\t\t<span className=\"sui-button-text-default\">\n\t\t\t\t\t{ icon && <span className={ icon } aria-hidden=\"true\" /> }\n\t\t\t\t\t{ text }\n\t\t\t\t</span> }\n\n\t\t\t{ ! loadingText &&\n\t\t\t\t<span className=\"sui-loading-text\">{ text }</span> }\n\n\t\t\t{ ! loadingText && <Icon classes=\"sui-icon-loader sui-loading\" /> }\n\t\t\t{ loadingText &&\n\t\t\t\t<span className=\"sui-button-text-onload\">\n\t\t\t\t\t<Icon classes=\"sui-icon-loader sui-loading\" />\n\t\t\t\t\t{ loadingText }\n\t\t\t\t</span>\n\t\t\t}\n\t\t</button>\n\t);\n}\n","/**\n * External dependencies\n */\nimport React from 'react';\nimport classNames from 'classnames';\n\n/**\n * Tooltip component.\n *\n * @param {Object} props Component props.\n * @param {string} props.text Tooltip text.\n * @param {Array} props.classes Tooltip classes.\n * @param {Object} props.children Component child elements.\n * @return {*} Tooltip component.\n * @class\n */\nexport default function Tooltip( { text, classes, children } ) {\n\treturn (\n\t\t<span className={ classNames( 'sui-tooltip', classes ) } data-tooltip={ text }>\n\t\t\t{ children }\n\t\t</span>\n\t);\n}\n","/**\n * External dependencies\n */\nimport React from 'react';\nimport classNames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nconst { __ } = wp.i18n;\n\n/**\n * Internal dependencies\n */\nimport './style.scss';\nimport Icon from '../sui-icon';\n\n/**\n * Loader component.\n *\n * @param {Object} props Component props.\n * @param {boolean} props.loading\n * @param {string} props.text\n * @return {*} Loader component.\n * @class\n */\nexport default function Loader( { loading, text } ) {\n\tlet loadingText = __( 'Fetching latest data...', 'wphb' );\n\n\tif ( text ) {\n\t\tloadingText = text;\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tclassName={ classNames( 'wphb-loading-overlay', {\n\t\t\t\t'wphb-loading': loading,\n\t\t\t} ) }\n\t\t>\n\t\t\t<Icon classes=\"sui-icon-loader sui-loading\" />\n\t\t\t<p>\n\t\t\t\t{ loadingText }\n\t\t\t</p>\n\t\t</div>\n\t);\n}\n","/**\n * External dependencies\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\n/**\n * Internal dependencies\n */\nimport './style.scss';\nimport Icon from '../sui-icon';\nimport Loader from '../loader';\n\n/**\n * Box component.\n */\nexport default class Box extends React.Component {\n\t/**\n\t * Generate header.\n\t *\n\t * @param {string} title Box title.\n\t * @param {string} icon Icon name to use, false for no icon.\n\t * @param {JSX.Element} headerActions Action component.\n\t * @return {*} Box header.\n\t */\n\tstatic boxHeader( title = '', icon = '', headerActions = null ) {\n\t\treturn (\n\t\t\t<React.Fragment>\n\t\t\t\t{ ( title || icon ) && (\n\t\t\t\t\t<h3 className=\"sui-box-title\">\n\t\t\t\t\t\t{ icon && <Icon classes={ 'sui-icon-' + icon } /> }\n\t\t\t\t\t\t{ ' ' + title }\n\t\t\t\t\t</h3>\n\t\t\t\t) }\n\n\t\t\t\t{ headerActions }\n\t\t\t</React.Fragment>\n\t\t);\n\t}\n\n\t/**\n\t * Get inner sticky conetnt.\n\t *\n\t * @return {*} Content.\n\t */\n\trenderContent() {\n\t\tconst boxHeader = Box.boxHeader(\n\t\t\tthis.props.title,\n\t\t\tthis.props.icon,\n\t\t\tthis.props.headerActions\n\t\t);\n\n\t\tlet classesArray;\n\n\t\tif ( this.props.stickyType ) {\n\t\t\tclassesArray = [ 'sui-box', 'sui-box-header', this.props.boxClass ];\n\t\t} else {\n\t\t\tclassesArray = [ 'sui-box-header' ];\n\t\t}\n\n\t\treturn (\n\t\t\t<React.Fragment>\n\t\t\t\t<Loader loading={ this.props.loading } text={ this.props.loadingText } />\n\t\t\t\t{ ! this.props.hideHeader && (\n\t\t\t\t\t<div className={ classNames( classesArray ) } >{ boxHeader }</div>\n\t\t\t\t)\n\t\t\t\t}\n\t\t\t\t{ ( ! this.props.stickyType || this.props.showFilters ) && this.props.content && (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={ classNames(\n\t\t\t\t\t\t\t'sui-box-body',\n\t\t\t\t\t\t\tthis.props.boxBodyClass\n\t\t\t\t\t\t) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ this.props.content }\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t\t{ ( ! this.props.stickyType || this.props.showFilters ) && this.props.footerActions && (\n\t\t\t\t\t<div className=\"sui-box-footer\">\n\t\t\t\t\t\t{ this.props.footerActions }\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</React.Fragment>\n\t\t);\n\t}\n\n\t/**\n\t * Render component.\n\t *\n\t * @return {*} Box component.\n\t */\n\trender() {\n\t\tconst boxRender = this.renderContent();\n\n\t\tif ( this.props.stickyType ) {\n\t\t\treturn (\n\t\t\t\t<React.Fragment>\n\t\t\t\t\t{ boxRender }\n\t\t\t\t</React.Fragment>\n\t\t\t);\n\t\t}\n\t\treturn (\n\t\t\t<div className={ classNames( 'sui-box', this.props.boxClass ) } data-tab=\"flushed\">\n\t\t\t\t{ boxRender }\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nBox.propTypes = {\n\tboxClass: PropTypes.oneOfType( [\n\t\tPropTypes.string,\n\t\tPropTypes.array,\n\t] ),\n\tboxBodyClass: PropTypes.oneOfType( [\n\t\tPropTypes.string,\n\t\tPropTypes.array,\n\t] ),\n\ttitle: PropTypes.string,\n\ticon: PropTypes.string,\n\thideHeader: PropTypes.bool,\n\theaderActions: PropTypes.element,\n\tcontent: PropTypes.element,\n\tfooterActions: PropTypes.element,\n\tloading: PropTypes.bool,\n\tloadingText: PropTypes.string,\n\tstickyType: PropTypes.bool,\n\tshowFilters: PropTypes.bool,\n};\n","/**\n * External dependencies\n */\nimport React from 'react';\n\n/**\n * Build a tag object based on the number of issues.\n * If no issues are present ( 0 === value ), show the success tick icon.\n *\n * @param {Object} props Component props.\n * @param {number} props.value Number of issues.\n * @param {string} props.type Class to use when there are issues. Accepts: warning, error, success, info, etc.\n * @return {JSX.Element} Tag component.\n * @class\n */\nexport default function Tag( { value, type } ) {\n\tif ( 0 === value && 'success' === type ) {\n\t\treturn (\n\t\t\t<span\n\t\t\t\tclassName=\"sui-icon-check-tick sui-lg sui-success\"\n\t\t\t\taria-hidden=\"true\"\n\t\t\t/>\n\t\t);\n\t}\n\n\tconst classes = 'sui-tag sui-tag-' + type;\n\n\treturn <span className={ classes }>{ value }</span>;\n}\n\n// Set default props\nTag.defaultProps = {\n\tvalue: 0,\n\ttype: 'success',\n};\n","/**\n * External dependencies\n */\nimport React from 'react';\nimport classnames from 'classnames';\nimport { getLink } from '../../../js/utils/helpers';\nimport Tooltip from '../sui-tooltip';\nimport Icon from '../sui-icon';\n\n/**\n * Toggle functional component.\n *\n * @param {Object} props Component props.\n * @param {*} props.text Toggle text.\n * @param {string} props.id Toggle ID.\n * @param {string} props.name Toggle name.\n * @param {string} props.className\n * @param {*} props.onChange On change action.\n * @param {boolean} props.checked Checked status.\n * @param {boolean} props.disabled Disabled status.\n * @param {boolean} props.hideToggle Hide toggle icon.\n * @param {string} props.description Description text.\n *\n * @param props.learnMore Learn more link text.\n * @param props.tag Tag text.\n * @param props.layout Layout type (left/right).\n * @return {JSX.Element} Toggle component.\n *\n * @class\n */\nexport default function Toggle( {\n\ttext,\n\tid,\n\tname,\n\tclassName,\n\tonChange,\n\tchecked = false,\n\thideToggle = false,\n\tdisabled = false,\n\tdescription = '',\n\tlearnMore = '',\n\ttag = '',\n\tlayout = 'left',\n\t...props\n} ) {\n\tif ( 'right' === layout ) {\n\t\treturn (\n\t\t\t<div className={ classnames( 'wphb-toggle-right', 'sui-form-field' ) }>\n\t\t\t\t<label htmlFor={ id } className={ classnames( className, 'sui-toggle' ) }>\n\n\t\t\t\t\t{ text &&\n\t\t\t\t\t\t<span id={ id + '-label' } className=\"sui-toggle-label\">\n\t\t\t\t\t\t\t{ text }\n\t\t\t\t\t\t\t{ tag && <span className=\"sui-tag sui-tag-sm\" style={ { position: 'relative', top: '-4px' } }>{ tag }</span> }\n\t\t\t\t\t\t</span> }\n\n\t\t\t\t\t{ description &&\n\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\ttext={ description }\n\t\t\t\t\t\t\tclasses={ 'setting-row-tooltip sui-tooltip-constrained' }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Icon classes=\"hum-icon-question\" />\n\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t}\n\n\t\t\t\t\t<input\n\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\tname={ name }\n\t\t\t\t\t\tid={ id }\n\t\t\t\t\t\tchecked={ checked }\n\t\t\t\t\t\tdisabled={ disabled }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\taria-labelledby={ id + '-label' }\n\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t/>\n\n\t\t\t\t\t{ ! hideToggle &&\n\t\t\t\t\t\t<span className=\"sui-toggle-slider\" aria-hidden=\"true\" /> }\n\t\t\t\t</label>\n\t\t\t</div>\n\t\t);\n\t}\n\treturn (\n\t\t<div className=\"sui-form-field \">\n\t\t\t<label htmlFor={ id } className={ classnames( className, 'sui-toggle' ) }>\n\t\t\t\t<input\n\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\tname={ name }\n\t\t\t\t\tid={ id }\n\t\t\t\t\tchecked={ checked }\n\t\t\t\t\tdisabled={ disabled }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\taria-labelledby={ id + '-label' }\n\t\t\t\t\t{ ...props }\n\t\t\t\t/>\n\n\t\t\t\t{ ! hideToggle &&\n\t\t\t\t\t<span className=\"sui-toggle-slider\" aria-hidden=\"true\" /> }\n\n\t\t\t\t{ text &&\n\t\t\t\t\t<span id={ id + '-label' } className=\"sui-toggle-label\">\n\t\t\t\t\t\t{ text }\n\t\t\t\t\t\t{ tag && <span className=\"sui-tag sui-tag-sm\" style={ { position: 'relative', top: '-4px' } }>{ tag }</span> }\n\t\t\t\t\t</span> }\n\n\t\t\t\t{ description &&\n\t\t\t\t\t<span id={ id + '-description' } className=\"sui-description\">{ description }</span>\n\t\t\t\t}\n\t\t\t\t{ learnMore && (\n\t\t\t\t\t<a className=\"sui-button sui-button-ghost\" href={ getLink( 'tracking' ) } target=\"_blank\" rel=\"noreferrer\">{ learnMore }</a>\n\t\t\t\t) }\n\t\t\t</label>\n\t\t</div>\n\t);\n}\n","/**\n * External dependencies\n */\nimport React from 'react';\nimport classNames from 'classnames';\n\n/**\n * Functional SettingsRow (sui-box-settings-row) component.\n *\n * @param {Object} props Component props.\n * @param {string} props.label\n * @param {string} props.description\n * @param {Object} props.content\n * @param {string} props.classes\n * @param {boolean} props.wide\n * @return {JSX.Element} SettingsRow component.\n * @class\n */\nexport default function SettingsRow( {\n\tlabel,\n\tdescription,\n\tcontent,\n\tclasses,\n\twide = false,\n} ) {\n\t// Wide layout.\n\tif ( wide ) {\n\t\treturn (\n\t\t\t<div className=\"sui-box-settings-row\">\n\t\t\t\t<div className=\"sui-box-settings-col-2\">\n\t\t\t\t\t<span className=\"sui-settings-label\">{ label }</span>\n\t\t\t\t\t{ content }\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif ( description ) {\n\t\treturn (\n\t\t\t<div className=\"sui-box-settings-row\">\n\t\t\t\t<div className=\"sui-box-settings-col-1\">\n\t\t\t\t\t<span className=\"sui-settings-label\">{ label }</span>\n\t\t\t\t\t<span className=\"sui-description\">{ description }</span>\n\t\t\t\t</div>\n\t\t\t\t<div className=\"sui-box-settings-col-2\">{ content }</div>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div className={ classNames( 'sui-box-settings-row', classes ) }>\n\t\t\t{ content }\n\t\t</div>\n\t);\n}\n","/* global SUI */\n\n/**\n * External dependencies\n */\nimport React from 'react';\nimport classNames from 'classnames';\n\n/**\n * Internal dependencies\n */\nimport Button from '../sui-button';\n\n/**\n * Tabs component.\n */\nexport default class Tabs extends React.Component {\n\t/**\n\t * Share UI actions need to be performed manually for elements.\n\t * They should be done in this method.\n\t *\n\t * @see https://wpmudev.github.io/shared-ui/tabs/ For callback params.\n\t */\n\tcomponentDidMount() {\n\t\tif ( ! this.props.sideTabs ) {\n\t\t\tSUI.tabs();\n\t\t}\n\t}\n\n\t/**\n\t * Render component.\n\t *\n\t * @return {JSX.Element} Select component.\n\t */\n\trender() {\n\t\tconst menuItems = Object.values( this.props.menu ).map( ( el ) => {\n\t\t\tconst active = 'undefined' !== typeof el.checked && el.checked;\n\t\t\treturn (\n\t\t\t\t<Button\n\t\t\t\t\ttext={ el.title }\n\t\t\t\t\tid={ el.id + '-tab' }\n\t\t\t\t\tclasses={ classNames( 'sui-tab-item', { active } ) }\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\trole=\"tab\"\n\t\t\t\t\taria-controls={ el.id + '-tab-content' }\n\t\t\t\t\taria-selected={ active }\n\t\t\t\t\ttabIndex={ active ? '0' : '-1' }\n\t\t\t\t\tkey={ el.id }\n\t\t\t\t\tonClick={ el.onClick }\n\t\t\t\t/>\n\t\t\t);\n\t\t} );\n\n\t\tconst items = Object.values( this.props.tabs ).map( ( el, id ) => {\n\t\t\tconst active = 'undefined' !== typeof el.active && el.active;\n\t\t\tconst classes = classNames( { 'sui-tab-content': ! this.props.sideTabs }, { 'sui-tab-boxed': this.props.sideTabs }, { active } );\n\t\t\treturn (\n\t\t\t\t<div\n\t\t\t\t\trole=\"tabpanel\"\n\t\t\t\t\ttabIndex=\"0\"\n\t\t\t\t\tid={ el.id + '-tab-content' }\n\t\t\t\t\tclassName={ classes }\n\t\t\t\t\taria-labelledby={ el.id + '-tab' }\n\t\t\t\t\thidden={ ! active }\n\t\t\t\t\tkey={ id }\n\t\t\t\t>\n\t\t\t\t\t{ el.description && <div className=\"sui-description sui-margin-bottom\">{ el.description }</div> }\n\t\t\t\t\t{ el.content }\n\t\t\t\t</div>\n\t\t\t);\n\t\t} );\n\n\t\treturn (\n\t\t\t<div\n\t\t\t\tclassName={ classNames(\n\t\t\t\t\t{ 'sui-tabs': ! this.props.sideTabs },\n\t\t\t\t\t{ 'sui-tabs-flushed': this.props.flushed },\n\t\t\t\t\t{ 'sui-side-tabs': this.props.sideTabs },\n\t\t\t\t\tthis.props.className,\n\t\t\t\t) }\n\t\t\t>\n\t\t\t\t<div role=\"tablist\" className=\"sui-tabs-menu\">\n\t\t\t\t\t{ menuItems }\n\t\t\t\t</div>\n\t\t\t\t{ ! window.lodash.isEmpty( this.props.tabs ) &&\n\t\t\t\t\t<div className=\"sui-tabs-content\">{ items }</div> }\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nTabs.defaultProps = {\n\ttabs: {},\n};\n","/**\n * Internal dependencies\n */\nimport { createElement, cloneElement, Fragment, isValidElement } from './react';\n/** @typedef {import('./react').WPElement} WPElement */\n\nlet indoc, offset, output, stack;\n/**\n * Matches tags in the localized string\n *\n * This is used for extracting the tag pattern groups for parsing the localized\n * string and along with the map converting it to a react element.\n *\n * There are four references extracted using this tokenizer:\n *\n * match: Full match of the tag (i.e. <strong>, </strong>, <br/>)\n * isClosing: The closing slash, if it exists.\n * name: The name portion of the tag (strong, br) (if )\n * isSelfClosed: The slash on a self closing tag, if it exists.\n *\n * @type {RegExp}\n */\n\nconst tokenizer = /<(\\/)?(\\w+)\\s*(\\/)?>/g;\n/**\n * The stack frame tracking parse progress.\n *\n * @typedef Frame\n *\n * @property {WPElement} element A parent element which may still have\n * @property {number} tokenStart Offset at which parent element first\n * appears.\n * @property {number} tokenLength Length of string marking start of parent\n * element.\n * @property {number} [prevOffset] Running offset at which parsing should\n * continue.\n * @property {number} [leadingTextStart] Offset at which last closing element\n * finished, used for finding text between\n * elements.\n * @property {WPElement[]} children Children.\n */\n\n/**\n * Tracks recursive-descent parse state.\n *\n * This is a Stack frame holding parent elements until all children have been\n * parsed.\n *\n * @private\n * @param {WPElement} element A parent element which may still have\n * nested children not yet parsed.\n * @param {number} tokenStart Offset at which parent element first\n * appears.\n * @param {number} tokenLength Length of string marking start of parent\n * element.\n * @param {number} [prevOffset] Running offset at which parsing should\n * continue.\n * @param {number} [leadingTextStart] Offset at which last closing element\n * finished, used for finding text between\n * elements.\n *\n * @return {Frame} The stack frame tracking parse progress.\n */\n\nfunction createFrame(element, tokenStart, tokenLength, prevOffset, leadingTextStart) {\n return {\n element,\n tokenStart,\n tokenLength,\n prevOffset,\n leadingTextStart,\n children: []\n };\n}\n/**\n * This function creates an interpolated element from a passed in string with\n * specific tags matching how the string should be converted to an element via\n * the conversion map value.\n *\n * @example\n * For example, for the given string:\n *\n * \"This is a <span>string</span> with <a>a link</a> and a self-closing\n * <CustomComponentB/> tag\"\n *\n * You would have something like this as the conversionMap value:\n *\n * ```js\n * {\n * span: <span />,\n * a: <a href={ 'https://github.com' } />,\n * CustomComponentB: <CustomComponent />,\n * }\n * ```\n *\n * @param {string} interpolatedString The interpolation string to be parsed.\n * @param {Object} conversionMap The map used to convert the string to\n * a react element.\n * @throws {TypeError}\n * @return {WPElement} A wp element.\n */\n\n\nconst createInterpolateElement = (interpolatedString, conversionMap) => {\n indoc = interpolatedString;\n offset = 0;\n output = [];\n stack = [];\n tokenizer.lastIndex = 0;\n\n if (!isValidConversionMap(conversionMap)) {\n throw new TypeError('The conversionMap provided is not valid. It must be an object with values that are WPElements');\n }\n\n do {// twiddle our thumbs\n } while (proceed(conversionMap));\n\n return createElement(Fragment, null, ...output);\n};\n/**\n * Validate conversion map.\n *\n * A map is considered valid if it's an object and every value in the object\n * is a WPElement\n *\n * @private\n *\n * @param {Object} conversionMap The map being validated.\n *\n * @return {boolean} True means the map is valid.\n */\n\n\nconst isValidConversionMap = conversionMap => {\n const isObject = typeof conversionMap === 'object';\n const values = isObject && Object.values(conversionMap);\n return isObject && values.length && values.every(element => isValidElement(element));\n};\n/**\n * This is the iterator over the matches in the string.\n *\n * @private\n *\n * @param {Object} conversionMap The conversion map for the string.\n *\n * @return {boolean} true for continuing to iterate, false for finished.\n */\n\n\nfunction proceed(conversionMap) {\n const next = nextToken();\n const [tokenType, name, startOffset, tokenLength] = next;\n const stackDepth = stack.length;\n const leadingTextStart = startOffset > offset ? offset : null;\n\n if (!conversionMap[name]) {\n addText();\n return false;\n }\n\n switch (tokenType) {\n case 'no-more-tokens':\n if (stackDepth !== 0) {\n const {\n leadingTextStart: stackLeadingText,\n tokenStart\n } = stack.pop();\n output.push(indoc.substr(stackLeadingText, tokenStart));\n }\n\n addText();\n return false;\n\n case 'self-closed':\n if (0 === stackDepth) {\n if (null !== leadingTextStart) {\n output.push(indoc.substr(leadingTextStart, startOffset - leadingTextStart));\n }\n\n output.push(conversionMap[name]);\n offset = startOffset + tokenLength;\n return true;\n } // Otherwise we found an inner element.\n\n\n addChild(createFrame(conversionMap[name], startOffset, tokenLength));\n offset = startOffset + tokenLength;\n return true;\n\n case 'opener':\n stack.push(createFrame(conversionMap[name], startOffset, tokenLength, startOffset + tokenLength, leadingTextStart));\n offset = startOffset + tokenLength;\n return true;\n\n case 'closer':\n // If we're not nesting then this is easy - close the block.\n if (1 === stackDepth) {\n closeOuterElement(startOffset);\n offset = startOffset + tokenLength;\n return true;\n } // Otherwise we're nested and we have to close out the current\n // block and add it as a innerBlock to the parent.\n\n\n const stackTop = stack.pop();\n const text = indoc.substr(stackTop.prevOffset, startOffset - stackTop.prevOffset);\n stackTop.children.push(text);\n stackTop.prevOffset = startOffset + tokenLength;\n const frame = createFrame(stackTop.element, stackTop.tokenStart, stackTop.tokenLength, startOffset + tokenLength);\n frame.children = stackTop.children;\n addChild(frame);\n offset = startOffset + tokenLength;\n return true;\n\n default:\n addText();\n return false;\n }\n}\n/**\n * Grabs the next token match in the string and returns it's details.\n *\n * @private\n *\n * @return {Array} An array of details for the token matched.\n */\n\n\nfunction nextToken() {\n const matches = tokenizer.exec(indoc); // We have no more tokens.\n\n if (null === matches) {\n return ['no-more-tokens'];\n }\n\n const startedAt = matches.index;\n const [match, isClosing, name, isSelfClosed] = matches;\n const length = match.length;\n\n if (isSelfClosed) {\n return ['self-closed', name, startedAt, length];\n }\n\n if (isClosing) {\n return ['closer', name, startedAt, length];\n }\n\n return ['opener', name, startedAt, length];\n}\n/**\n * Pushes text extracted from the indoc string to the output stack given the\n * current rawLength value and offset (if rawLength is provided ) or the\n * indoc.length and offset.\n *\n * @private\n */\n\n\nfunction addText() {\n const length = indoc.length - offset;\n\n if (0 === length) {\n return;\n }\n\n output.push(indoc.substr(offset, length));\n}\n/**\n * Pushes a child element to the associated parent element's children for the\n * parent currently active in the stack.\n *\n * @private\n *\n * @param {Frame} frame The Frame containing the child element and it's\n * token information.\n */\n\n\nfunction addChild(frame) {\n const {\n element,\n tokenStart,\n tokenLength,\n prevOffset,\n children\n } = frame;\n const parent = stack[stack.length - 1];\n const text = indoc.substr(parent.prevOffset, tokenStart - parent.prevOffset);\n\n if (text) {\n parent.children.push(text);\n }\n\n parent.children.push(cloneElement(element, null, ...children));\n parent.prevOffset = prevOffset ? prevOffset : tokenStart + tokenLength;\n}\n/**\n * This is called for closing tags. It creates the element currently active in\n * the stack.\n *\n * @private\n *\n * @param {number} endOffset Offset at which the closing tag for the element\n * begins in the string. If this is greater than the\n * prevOffset attached to the element, then this\n * helps capture any remaining nested text nodes in\n * the element.\n */\n\n\nfunction closeOuterElement(endOffset) {\n const {\n element,\n leadingTextStart,\n prevOffset,\n tokenStart,\n children\n } = stack.pop();\n const text = endOffset ? indoc.substr(prevOffset, endOffset - prevOffset) : indoc.substr(prevOffset);\n\n if (text) {\n children.push(text);\n }\n\n if (null !== leadingTextStart) {\n output.push(indoc.substr(leadingTextStart, tokenStart - leadingTextStart));\n }\n\n output.push(cloneElement(element, null, ...children));\n}\n\nexport default createInterpolateElement;\n//# sourceMappingURL=create-interpolate-element.js.map","/**\n * External dependencies\n */\nimport React from 'react';\nimport classNames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nconst { __, sprintf } = wp.i18n;\n\n/**\n * Internal dependencies\n */\nimport './wizard.scss';\nimport Box from '../../components/sui-box';\nimport { getLink } from '../../../js/utils/helpers';\nimport Icon from '../../components/sui-icon';\nimport ProgressBar from '../../components/sui-progress';\nimport Tag from '../../components/sui-tag';\nimport Toggle from '../../components/sui-toggle';\nimport SettingsRow from '../../components/sui-box-settings/row';\nimport Button from '../../components/sui-button';\nimport Tabs from '../../components/sui-tabs';\nimport Tooltip from '../../components/sui-tooltip';\nimport { createInterpolateElement } from '@wordpress/element';\n\n/**\n * Wizard module, extends React.Component.\n *\n * @since 3.3.1\n */\nexport default class Wizard extends React.Component {\n\t/**\n\t * Component constructor.\n\t *\n\t * @param {Object} props\n\t */\n\tconstructor( props ) {\n\t\tsuper( props );\n\n\t\tthis.state = {\n\t\t\tsteps: {\n\t\t\t\t1: __( 'Getting Started', 'wphb' ),\n\t\t\t\t2: __( 'Asset Optimization', 'wphb' ),\n\t\t\t\t3: __( 'Uptime', 'wphb' ),\n\t\t\t\t4: __( 'Page Caching', 'wphb' ),\n\t\t\t\t5: __( 'Advanced Tools', 'wphb' ),\n\t\t\t\t6: __( 'Finish', 'wphb' )\n\t\t\t},\n\t\t\tskip: {\n\t\t\t\tadvCacheFile: false,\n\t\t\t}\n\t\t};\n\n\t\tthis.continueToNextStep = this.continueToNextStep.bind( this );\n\t}\n\n\t/**\n\t * Run actions on component update.\n\t *\n\t * @param {Object} prevProps\n\t * @param {Object} prevState\n\t */\n\tcomponentDidUpdate( prevProps, prevState ) {\n\t\tif ( 1 === this.props.step && this.props.showConflicts ) {\n\t\t\tif ( this.props.step === prevProps.step && this.props.showConflicts === prevProps.showConflicts ) {\n\t\t\t\treturn; // Nothing changed after re-checking status.\n\t\t\t}\n\n\t\t\t// We need to save our state, so we don't show extra stuff on next step.\n\t\t\tthis.setState( {\n\t\t\t\tskip: {\n\t\t\t\t\tadvCacheFile: ! this.props.issues.advCacheFile\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tjQuery( '.sui-box-header' ).on( 'click', this.toggleContent );\n\t\t}\n\t}\n\n\t/**\n\t * Show/hide content block with issues.\n\t *\n\t * @param {Object} e\n\t */\n\ttoggleContent( e ) {\n\t\te.currentTarget.parentNode.classList.toggle( 'open' );\n\t}\n\n\t/**\n\t * Get navigation.\n\t *\n\t * @return {JSX.Element} Side navigation\n\t */\n\tgetNavigation() {\n\t\tconst mobileSteps = Object.entries( this.state.steps ).map( ( step, key ) => {\n\t\t\tif ( 6 === key ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst x1 = key * 20;\n\t\t\tconst x2 = step[ 0 ] * 20;\n\t\t\tconst stroke = this.props.step <= step[ 0 ] ? '#D8D8D8' : '#1ABC9C';\n\n\t\t\treturn <line key={ key } x1={ x1 + '%' } x2={ x2 + '%' } className=\"line-mobile\" stroke={ stroke } />;\n\t\t} );\n\n\t\tconst steps = Object.entries( this.state.steps ).map( ( step, key ) => {\n\t\t\tif ( 6 === key || ( 3 === parseInt( step[ 0 ] ) && ! this.props.hasUptime ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst classes = classNames( {\n\t\t\t\tcurrent: parseInt( step[ 0 ] ) === this.props.step,\n\t\t\t\tdone: parseInt( step[ 0 ] ) < this.props.step,\n\t\t\t} );\n\t\t\tconst incFlag = ( ! this.props.hasUptime && parseInt( step[ 0 ] ) > 3 ) ? 1 : 0;\n\n\t\t\treturn (\n\t\t\t\t<React.Fragment key={ key }>\n\t\t\t\t\t<li className={ classes }>\n\t\t\t\t\t\t{ 'done' !== classes && <span>{ step[ 0 ] - incFlag }</span> }\n\t\t\t\t\t\t{ 'done' === classes && <Icon classes=\"sui-icon-check\" /> }\n\t\t\t\t\t\t{ step[ 1 ] }\n\t\t\t\t\t</li>\n\t\t\t\t\t{ 5 > key && <svg focusable=\"false\" aria-hidden=\"true\"><line y1=\"0\" y2=\"30px\" /></svg> }\n\t\t\t\t</React.Fragment>\n\t\t\t);\n\t\t} );\n\n\t\treturn (\n\t\t\t<div className=\"sui-sidenav\">\n\t\t\t\t<svg focusable=\"false\" aria-hidden=\"true\">\n\t\t\t\t\t{ mobileSteps }\n\t\t\t\t</svg>\n\t\t\t\t<ul>{ steps }</ul>\n\t\t\t</div>\n\t\t);\n\t}\n\n\t/**\n\t * Wizard header.\n\t *\n\t * @return {JSX.Element} Header block\n\t */\n\tgetHeader() {\n\t\tlet title = 1 === this.props.step ? __( 'Ready to Boost Your Site’s Speed?', 'wphb' ) : this.state.steps[ this.props.step ];\n\t\tlet name = this.state.steps[ this.props.step ].replace( /\\s+/g, '-' ).toLowerCase();\n\n\t\tif ( 1 === this.props.step && this.props.showConflicts ) {\n\t\t\tname = ! this.props.issues.advCacheFile ? 'success' : 'failed';\n\t\t\ttitle = __( 'Plugin Conflict', 'wphb' );\n\t\t} else if ( 3 === this.props.step ) {\n\t\t\ttitle = __( 'Uptime Monitoring', 'wphb' );\n\t\t} else if ( 6 === this.props.step ) {\n\t\t\tname = 'success';\n\t\t\ttitle = __( 'Wizard Completed!', 'wphb' );\n\t\t}\n\n\t\treturn (\n\t\t\t<React.Fragment>\n\t\t\t\t<img\n\t\t\t\t\tclassName=\"sui-image\"\n\t\t\t\t\talt={ this.state.steps[ this.props.step ] }\n\t\t\t\t\tsrc={ getLink( 'wphbDirUrl' ) + 'admin/assets/image/setup/' + name + '.png' }\n\t\t\t\t\tsrcSet={\n\t\t\t\t\t\tgetLink( 'wphbDirUrl' ) + 'admin/assets/image/setup/' + name + '.png 1x, ' +\n\t\t\t\t\t\tgetLink( 'wphbDirUrl' ) + 'admin/assets/image/setup/' + name + '@2x.png 2x'\n\t\t\t\t\t} />\n\n\t\t\t\t<small>{ __( 'Hummingbird Setup', 'wphb' ) }</small>\n\n\t\t\t\t<h2>{ title }</h2>\n\t\t\t</React.Fragment>\n\t\t);\n\t}\n\n\t/**\n\t * Plugins compatibility content.\n\t *\n\t * @return {JSX.Element} Content block.\n\t */\n\tgetCompatPluginsContent() {\n\t\tif ( ! this.props.showConflicts || this.state.skip.advCacheFile ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tlet title = __( 'No other caching plugin is detected', 'wphb' );\n\t\tlet icon = 'check-tick sui-success';\n\t\tlet description = (\n\t\t\t<p className=\"sui-description\">\n\t\t\t\t{ __( 'No other caching plugin is detected. You can proceed with the setup.', 'wphb' ) }\n\t\t\t</p>\n\t\t);\n\n\t\tif ( this.props.issues.advCacheFile ) {\n\t\t\ttitle = __( 'Another caching plugin is detected', 'wphb' );\n\t\t\ticon = 'warning-alert sui-error';\n\n\t\t\tconst message = createInterpolateElement(\n\t\t\t\t__( 'Hummingbird has detected an advanced-cache.php file in your site’s wp-content directory. <a>Manage your plugins</a> and disable any other active caching plugins to ensure Hummingbird’s page caching works properly.', 'wphb' ),\n\t\t\t\t{\n\t\t\t\t\ta: <a href={ getLink( 'plugins' ) } />\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tdescription = (\n\t\t\t\t<React.Fragment>\n\t\t\t\t\t<p className=\"sui-description\">{ message }</p>\n\t\t\t\t\t<p className=\"sui-description\">\n\t\t\t\t\t\t{ __( 'If no other caching plugins are active, the advanced-cache.php may have been left by a previously used caching plugin. You can remove the file from the wp-content directory, or remove it via your file manager or FTP.', 'wphb' ) }\n\t\t\t\t\t</p>\n\t\t\t\t</React.Fragment>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<Box\n\t\t\t\tboxClass=\"open\"\n\t\t\t\ticon={ icon }\n\t\t\t\ttitle={ title }\n\t\t\t\theaderActions={\n\t\t\t\t\t<div className=\"sui-actions-right\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tonClick={ this.toggleContent }\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tclasses=\"sui-button-icon\"\n\t\t\t\t\t\t\ticon=\"sui-icon-chevron-up\" />\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\tcontent={ description }\n\t\t\t\tfooterActions={\n\t\t\t\t\t<React.Fragment>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tonClick={ this.props.reCheckRequirements }\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tclasses={ [ 'sui-button', 'sui-button-ghost' ] }\n\t\t\t\t\t\t\ticon=\"sui-icon-update\"\n\t\t\t\t\t\t\ttext={ __( 'Re-check status', 'wphb' ) } />\n\n\t\t\t\t\t\t{ this.props.issues.advCacheFile &&\n\t\t\t\t\t\t\t<div className=\"sui-actions-right\">\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tonClick={ this.props.removeAdvancedCache }\n\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\tclasses={ [ 'sui-button', 'sui-button-blue' ] }\n\t\t\t\t\t\t\t\t\ttext={ __( 'Remove file', 'wphb' ) } />\n\t\t\t\t\t\t\t</div> }\n\t\t\t\t\t</React.Fragment>\n\t\t\t\t}\n\t\t\t/>\n\t\t);\n\t}\n\n\t/**\n\t * Toggle module buttons.\n\t *\n\t * @return {JSX.Element} Buttons.\n\t */\n\ttoggleButtons() {\n\t\tif ( 2 > this.props.step || 4 < this.props.step ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst id = [ 'aoEnable', 'uptimeEnable', 'cacheEnable' ];\n\n\t\tlet tabEnabledChecked = this.props.settings[ id[ this.props.step - 2 ] ];\n\t\tlet tabDisabledChecked = ! this.props.settings[ id[ this.props.step - 2 ] ];\n\t\tif ( this.props.step === 4 && this.props.settings.isFastCGISupported ) {\n\t\t\ttabEnabledChecked = this.props.settings[ id[ this.props.step - 2 ] ] && ! this.props.settings.fastCGI;\n\t\t\ttabDisabledChecked = ! this.props.settings[ id[ this.props.step - 2 ] ] && ! this.props.settings.fastCGI;\n\t\t}\n\n\t\tconst sideTabs = [\n\t\t\t{\n\t\t\t\ttitle: this.props.step === 4 ? __( 'Local Page Cache', 'wphb' ) : __( 'Enable', 'wphb' ),\n\t\t\t\tchecked: tabEnabledChecked,\n\t\t\t\tid: 'enable',\n\t\t\t\tonClick: () => this.props.toggleModule( 'enable', id[ this.props.step - 2 ] )\n\t\t\t},\n\t\t\t{\n\t\t\t\ttitle: __( 'Disable', 'wphb' ),\n\t\t\t\tchecked: tabDisabledChecked,\n\t\t\t\tid: 'disable',\n\t\t\t\tonClick: () => this.props.toggleModule( 'disable', id[ this.props.step - 2 ] )\n\t\t\t},\n\t\t];\n\n\t\tif ( this.props.step === 4 && this.props.settings.isFastCGISupported ) {\n\t\t\tsideTabs.unshift( {\n\t\t\t\ttitle: __( 'Static Server Cache', 'wphb' ),\n\t\t\t\tchecked: this.props.settings.isFastCGISupported && this.props.settings.fastCGI,\n\t\t\t\tid: 'ssc',\n\t\t\t\tonClick: () => this.props.toggleModule( 'enable', 'fastCGI' )\n\t\t\t} );\n\t\t}\n\n\t\treturn <Tabs sideTabs=\"true\" menu={ sideTabs } />;\n\t}\n\n\t/**\n\t * Asset optimization settings tab.\n\t *\n\t * @return {JSX.Element} Tab content.\n\t */\n\tassetOptimizationSettings() {\n\t\tconst cdnRow = () => {\n\t\t\treturn (\n\t\t\t\t<SettingsRow\n\t\t\t\t\tclasses=\"sui-flushed\"\n\t\t\t\t\tcontent={\n\t\t\t\t\t\t<Toggle\n\t\t\t\t\t\t\tid=\"aoCdn\"\n\t\t\t\t\t\t\tonChange={ this.props.updateSettings }\n\t\t\t\t\t\t\ttext={ this.props.isMember ? __( 'WPMU DEV CDN', 'wphb' ) : createInterpolateElement(\n\t\t\t\t\t\t\t\t__( 'WPMU DEV CDN <span>PRO</span>', 'wphb' ),\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tspan: <span className=\"sui-tag sui-tag-pro\" />\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tchecked={ this.props.settings.aoCdn }\n\t\t\t\t\t\t\tdisabled={ ! this.props.isMember }\n\t\t\t\t\t\t\tdescription={ __( 'WPMU DEV CDN will serve your CSS, JS and other compatible files from our external CDN, effectively taking the load off your server so that pages load faster for your visitors.', 'wphb' ) }\n\t\t\t\t\t\t\tlayout=\"right\" />\n\t\t\t\t\t} />\n\t\t\t);\n\t\t};\n\n\t\treturn (\n\t\t\t<React.Fragment>\n\t\t\t\t{ this.props.settings.aoEnable &&\n\t\t\t\t\t<div className={ classNames( 'sui-border-frame', { 'sui-hidden': ( this.props.isNetworkAdmin && ! this.props.isMember ) } ) }>\n\t\t\t\t\t\t{ ! this.props.isNetworkAdmin &&\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<div className=\"wrap-setting-rows\">\n\t\t\t\t\t\t\t\t\t<SettingsRow\n\t\t\t\t\t\t\t\t\t\tclasses=\"sui-flushed\"\n\t\t\t\t\t\t\t\t\t\tcontent={\n\t\t\t\t\t\t\t\t\t\t\t<Toggle\n\t\t\t\t\t\t\t\t\t\t\t\tid=\"aoCompress\"\n\t\t\t\t\t\t\t\t\t\t\t\tonChange={ this.props.updateSettings }\n\t\t\t\t\t\t\t\t\t\t\t\ttext={ __( 'Compress files & clean code', 'wphb' ) }\n\t\t\t\t\t\t\t\t\t\t\t\tchecked={ this.props.settings.aoCompress }\n\t\t\t\t\t\t\t\t\t\t\t\tdescription={ __( 'Compresses your files for faster delivery while improving site speed by decluttering CSS and JavaScript.', 'wphb' ) }\n\t\t\t\t\t\t\t\t\t\t\t\tlayout=\"right\" />\n\t\t\t\t\t\t\t\t\t\t} />\n\t\t\t\t\t\t\t\t\t<SettingsRow\n\t\t\t\t\t\t\t\t\t\tclasses=\"sui-flushed\"\n\t\t\t\t\t\t\t\t\t\tcontent={\n\t\t\t\t\t\t\t\t\t\t\t<Toggle\n\t\t\t\t\t\t\t\t\t\t\t\tid=\"aoCombine\"\n\t\t\t\t\t\t\t\t\t\t\t\tonChange={ this.props.updateSettings }\n\t\t\t\t\t\t\t\t\t\t\t\ttext={ __( 'Combine JavaScript & CSS', 'wphb' ) }\n\t\t\t\t\t\t\t\t\t\t\t\tchecked={ this.props.settings.aoCombine }\n\t\t\t\t\t\t\t\t\t\t\t\tdescription={ __( 'Combines multiple JS and CSS files into fewer files, reducing the number of requests made when a page is loaded.', 'wphb' ) }\n\t\t\t\t\t\t\t\t\t\t\t\tlayout=\"right\" />\n\t\t\t\t\t\t\t\t\t\t} />\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div className=\"wrap-setting-rows\">\n\t\t\t\t\t\t\t\t\t<SettingsRow\n\t\t\t\t\t\t\t\t\t\tclasses=\"sui-flushed\"\n\t\t\t\t\t\t\t\t\t\tcontent={\n\t\t\t\t\t\t\t\t\t\t\t<Toggle\n\t\t\t\t\t\t\t\t\t\t\t\tid=\"fontSwap\"\n\t\t\t\t\t\t\t\t\t\t\t\tonChange={ this.props.updateSettings }\n\t\t\t\t\t\t\t\t\t\t\t\ttext={ __( 'Swap web fonts', 'wphb' ) }\n\t\t\t\t\t\t\t\t\t\t\t\tchecked={ this.props.settings.fontSwap }\n\t\t\t\t\t\t\t\t\t\t\t\tdescription={ __( 'Apply a similar fallback font that visitors will temporarily see until the primary font loads, to improve text visibility.', 'wphb' ) }\n\t\t\t\t\t\t\t\t\t\t\t\tlayout=\"right\" />\n\t\t\t\t\t\t\t\t\t\t} />\n\t\t\t\t\t\t\t\t\t<SettingsRow\n\t\t\t\t\t\t\t\t\t\tclasses=\"sui-flushed\"\n\t\t\t\t\t\t\t\t\t\tcontent={\n\t\t\t\t\t\t\t\t\t\t\t<Toggle\n\t\t\t\t\t\t\t\t\t\t\t\tid=\"delayJS\"\n\t\t\t\t\t\t\t\t\t\t\t\tonChange={ this.props.updateSettings }\n\t\t\t\t\t\t\t\t\t\t\t\ttext={ this.props.isMember ? __( 'Delay JavaScript execution', 'wphb' ) : createInterpolateElement(\n\t\t\t\t\t\t\t\t\t\t\t\t\t__( 'Delay JavaScript execution <span>PRO</span>', 'wphb' ),\n\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tspan: <span className=\"sui-tag sui-tag-pro\" />\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\tchecked={ this.props.settings.delayJS }\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled={ ! this.props.isMember }\n\t\t\t\t\t\t\t\t\t\t\t\tdescription={ __( 'Improve performance by delaying the loading of non-critical JavaScript files above the fold until user interaction (e.g. scroll, click).', 'wphb' ) }\n\t\t\t\t\t\t\t\t\t\t\t\tlayout=\"right\" />\n\t\t\t\t\t\t\t\t\t\t} />\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div className=\"wrap-setting-rows\">\n\t\t\t\t\t\t\t\t\t<SettingsRow\n\t\t\t\t\t\t\t\t\t\tclasses=\"sui-flushed\"\n\t\t\t\t\t\t\t\t\t\tcontent={\n\t\t\t\t\t\t\t\t\t\t\t<Toggle\n\t\t\t\t\t\t\t\t\t\t\t\tid=\"criticalCSS\"\n\t\t\t\t\t\t\t\t\t\t\t\tonChange={ this.props.updateSettings }\n\t\t\t\t\t\t\t\t\t\t\t\ttext={ this.props.isMember ? __( 'Generate critical CSS', 'wphb' ) : createInterpolateElement(\n\t\t\t\t\t\t\t\t\t\t\t\t\t__( 'Generate critical CSS <span>PRO</span>', 'wphb' ),\n\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tspan: <span className=\"sui-tag sui-tag-pro\" />\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\tchecked={ this.props.settings.criticalCSS }\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled={ ! this.props.isMember }\n\t\t\t\t\t\t\t\t\t\t\t\tdescription={ __( 'Drastically reduce your page load time and eliminate render-blocking resources by automatically generating the critical CSS required to load your above-the-fold content.', 'wphb' ) }\n\t\t\t\t\t\t\t\t\t\t\t\tlayout=\"right\" />\n\t\t\t\t\t\t\t\t\t\t} />\n\t\t\t\t\t\t\t\t\t{ cdnRow() }\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</> }\n\t\t\t\t\t\t{ this.props.isNetworkAdmin &&\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<div className=\"wrap-setting-rows\">\n\t\t\t\t\t\t\t\t{ cdnRow() }\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</>\n\t\t\t\t\t\t}\n\t\t\t\t\t\t{ ! this.props.isNetworkAdmin &&\n\t\t\t\t\t\t<p className=\"sui-description\" style={ { textAlign: 'left', marginTop: '10px' } }>\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tcreateInterpolateElement(\n\t\t\t\t\t\t\t\t\t__( '<strong>Note:</strong> You can tweak these settings further under Assets Optimization > Extra Optimization.', 'wphb' ),\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tstrong: <strong />\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</p> }\n\t\t\t\t\t</div> }\n\t\t\t</React.Fragment>\n\t\t);\n\t}\n\n\t/**\n\t * Page caching settings tab.\n\t *\n\t * @return {JSX.Element} Tab content.\n\t */\n\tcacheSettings() {\n\t\tif ( ! this.props.settings.cacheEnable && ! this.props.settings.fastCGI ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tif ( this.props.settings.isFastCGISupported && this.props.settings.fastCGI ) {\n\t\t\treturn (\n\t\t\t\t<div className=\"sui-border-frame\">\n\t\t\t\t\t<div className=\"wrap-setting-rows\">\n\t\t\t\t\t\t<SettingsRow\n\t\t\t\t\t\t\tclasses=\"sui-flushed\"\n\t\t\t\t\t\t\tcontent={\n\t\t\t\t\t\t\t\t<Toggle\n\t\t\t\t\t\t\t\t\tid=\"clearOnComment\"\n\t\t\t\t\t\t\t\t\tonChange={ this.props.updateSettings }\n\t\t\t\t\t\t\t\t\ttext={ __( 'Clear cache after new comment', 'wphb' ) }\n\t\t\t\t\t\t\t\t\tchecked={ this.props.settings.clearOnComment }\n\t\t\t\t\t\t\t\t\tdescription={ __( 'The page cache will be cleared after each comment made on a post.', 'wphb' ) }\n\t\t\t\t\t\t\t\t\tlayout=\"right\" />\n\t\t\t\t\t\t\t} />\n\t\t\t\t\t\t<SettingsRow\n\t\t\t\t\t\t\tclasses=\"sui-flushed\"\n\t\t\t\t\t\t\tcontent={\n\t\t\t\t\t\t\t\t<Toggle\n\t\t\t\t\t\t\t\t\tid=\"clearCacheButton\"\n\t\t\t\t\t\t\t\t\tonChange={ this.props.updateSettings }\n\t\t\t\t\t\t\t\t\ttext={ __( 'Show clear cache button in admin bar', 'wphb' ) }\n\t\t\t\t\t\t\t\t\tchecked={ this.props.settings.clearCacheButton }\n\t\t\t\t\t\t\t\t\tdescription={ __( 'Add a shortcut to Hummingbird settings in the top WordPress Admin bar. Clicking the Clear Cache button in the WordPress Admin Bar will clear all active cache types.', 'wphb' ) }\n\t\t\t\t\t\t\t\t\tlayout=\"right\" />\n\t\t\t\t\t\t\t} />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<div className=\"sui-border-frame\">\n\t\t\t\t<div className=\"wrap-setting-rows\">\n\t\t\t\t\t<SettingsRow\n\t\t\t\t\t\tclasses=\"sui-flushed\"\n\t\t\t\t\t\tcontent={\n\t\t\t\t\t\t\t<Toggle\n\t\t\t\t\t\t\t\tid=\"clearOnComment\"\n\t\t\t\t\t\t\t\tonChange={ this.props.updateSettings }\n\t\t\t\t\t\t\t\ttext={ __( 'Clear cache after new comment', 'wphb' ) }\n\t\t\t\t\t\t\t\tchecked={ this.props.settings.clearOnComment }\n\t\t\t\t\t\t\t\tdescription={ __( 'The page cache will be cleared after each comment made on a post.', 'wphb' ) }\n\t\t\t\t\t\t\t\tlayout=\"right\" />\n\t\t\t\t\t\t} />\n\t\t\t\t\t<SettingsRow\n\t\t\t\t\t\tclasses=\"sui-flushed\"\n\t\t\t\t\t\tcontent={\n\t\t\t\t\t\t\t<Toggle\n\t\t\t\t\t\t\t\tid=\"cacheOnMobile\"\n\t\t\t\t\t\t\t\tonChange={ this.props.updateSettings }\n\t\t\t\t\t\t\t\ttext={ __( 'Cache on mobile devices', 'wphb' ) }\n\t\t\t\t\t\t\t\tchecked={ this.props.settings.cacheOnMobile }\n\t\t\t\t\t\t\t\tdescription={ __( \"By default, page caching is enabled for mobile devices. If you don't want to use mobile caching, simply disable this setting.\", 'wphb' ) }\n\t\t\t\t\t\t\t\tlayout=\"right\" />\n\t\t\t\t\t\t} />\n\t\t\t\t</div>\n\t\t\t\t<div className=\"wrap-setting-rows\">\n\t\t\t\t\t<SettingsRow\n\t\t\t\t\t\tclasses=\"sui-flushed\"\n\t\t\t\t\t\tcontent={\n\t\t\t\t\t\t\t<Toggle\n\t\t\t\t\t\t\t\tid=\"cacheHeader\"\n\t\t\t\t\t\t\t\tonChange={ this.props.updateSettings }\n\t\t\t\t\t\t\t\ttext={ __( 'Cache HTTP headers', 'wphb' ) }\n\t\t\t\t\t\t\t\tchecked={ this.props.settings.cacheHeader }\n\t\t\t\t\t\t\t\tdescription={ __( \"By default, Hummingbird won't cache HTTP headers. Enable this feature to include them.\", 'wphb' ) }\n\t\t\t\t\t\t\t\tlayout=\"right\" />\n\t\t\t\t\t\t} />\n\t\t\t\t\t<SettingsRow\n\t\t\t\t\t\tclasses=\"sui-flushed\"\n\t\t\t\t\t\tcontent={\n\t\t\t\t\t\t\t<Toggle\n\t\t\t\t\t\t\t\tid=\"clearCacheButton\"\n\t\t\t\t\t\t\t\tonChange={ this.props.updateSettings }\n\t\t\t\t\t\t\t\ttext={ __( 'Show clear cache button in admin bar', 'wphb' ) }\n\t\t\t\t\t\t\t\tchecked={ this.props.settings.clearCacheButton }\n\t\t\t\t\t\t\t\tdescription={ __( 'Add a shortcut to Hummingbird settings in the top WordPress Admin bar. Clicking the Clear Cache button in the WordPress Admin Bar will clear all active cache types.', 'wphb' ) }\n\t\t\t\t\t\t\t\tlayout=\"right\" />\n\t\t\t\t\t\t} />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n\n\t/**\n\t * Advanced settings tab.\n\t *\n\t * @return {JSX.Element} Tab content.\n\t */\n\tadvancedSettings() {\n\t\treturn (\n\t\t\t<div className=\"sui-border-frame\">\n\t\t\t\t<div className=\"wrap-setting-rows\">\n\t\t\t\t\t<SettingsRow\n\t\t\t\t\t\tclasses=\"sui-flushed\"\n\t\t\t\t\t\tcontent={\n\t\t\t\t\t\t\t<Toggle\n\t\t\t\t\t\t\t\tid=\"queryStrings\"\n\t\t\t\t\t\t\t\tonChange={ this.props.updateSettings }\n\t\t\t\t\t\t\t\ttext={ __( 'Remove query strings from my assets', 'wphb' ) }\n\t\t\t\t\t\t\t\tchecked={ this.props.settings.queryStrings }\n\t\t\t\t\t\t\t\tdescription={ __( 'Some of your resource URLs can end with something like “?x=y”, these are the query strings of the URL. Some servers, CDNs or caching systems don’t like query strings and removing them can help to increase speed.', 'wphb' ) }\n\t\t\t\t\t\t\t\tlayout=\"right\" />\n\t\t\t\t\t\t} />\n\t\t\t\t\t<SettingsRow\n\t\t\t\t\t\tclasses=\"sui-flushed\"\n\t\t\t\t\t\tcontent={\n\t\t\t\t\t\t\t<Toggle\n\t\t\t\t\t\t\t\tid=\"removeEmoji\"\n\t\t\t\t\t\t\t\tonChange={ this.props.updateSettings }\n\t\t\t\t\t\t\t\ttext={ __( 'Remove default Emoji JS & CSS files', 'wphb' ) }\n\t\t\t\t\t\t\t\tchecked={ this.props.settings.removeEmoji }\n\t\t\t\t\t\t\t\tdescription={ __( 'WordPress adds Javascript and CSS files to convert common symbols like “:)” to visual emojis. If you don’t need emojis this will remove two unnecessary assets.', 'wphb' ) }\n\t\t\t\t\t\t\t\tlayout=\"right\" />\n\t\t\t\t\t\t} />\n\t\t\t\t</div>\n\t\t\t\t{ this.props.hasWoo &&\n\t\t\t\t<>\n\t\t\t\t\t<div className=\"wrap-setting-rows\">\n\t\t\t\t\t\t<SettingsRow\n\t\t\t\t\t\t\tclasses=\"sui-flushed\"\n\t\t\t\t\t\t\tcontent={\n\t\t\t\t\t\t\t\t<Toggle\n\t\t\t\t\t\t\t\t\tid=\"cartFragments\"\n\t\t\t\t\t\t\t\t\tonChange={ this.props.updateSettings }\n\t\t\t\t\t\t\t\t\ttext={ __( 'Disable cart fragments', 'wphb' ) }\n\t\t\t\t\t\t\t\t\tchecked={ this.props.settings.cartFragments }\n\t\t\t\t\t\t\t\t\tdescription={ __( 'WooCommerce uses ajax calls to update cart totals without refreshing the page. These ajax calls run on every page and can drastically increase page load times. We recommend disabling cart fragments on all non-WooCommerce pages.', 'wphb' ) }\n\t\t\t\t\t\t\t\t\tlayout=\"right\" />\n\t\t\t\t\t\t\t} />\n\t\t\t\t\t</div>\n\t\t\t\t</> }\n\t\t\t</div>\n\t\t);\n\t}\n\n\t/**\n\t * Get optimization type label based on settings.\n\t *\n\t * @return {string} Optimization type label.\n\t */\n\tgetOptimizationLabel() {\n\t\tconst { aoCombine, aoCompress } = this.props.settings;\n\t\tconst defaultLabel = __( 'Combine & Compress Optimization', 'wphb' );\n\n\t\tif ( aoCombine && aoCompress ) {\n\t\t\treturn defaultLabel;\n\t\t}\n\n\t\tif ( aoCombine ) {\n\t\t\treturn __( 'Combine Optimization', 'wphb' );\n\t\t}\n\n\t\tif ( aoCompress ) {\n\t\t\treturn __( 'Compress Optimization', 'wphb' );\n\t\t}\n\n\t\treturn defaultLabel;\n\t}\n\n\t/**\n\t * Results tab.\n\t *\n\t * @return {JSX.Element} Tab content.\n\t */\n\tshowResults() {\n\t\treturn (\n\t\t\t<table className=\"sui-table\">\n\t\t\t\t<thead>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<th>{ __( 'Modules', 'wphb' ) }</th>\n\t\t\t\t\t\t<th>{ __( 'Settings applied', 'wphb' ) }</th>\n\t\t\t\t\t\t<th>{ __( 'Status', 'wphb' ) }</th>\n\t\t\t\t\t</tr>\n\t\t\t\t</thead>\n\n\t\t\t\t<tbody>\n\t\t\t\t\t{ this.props.settings.aoEnable &&\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td className=\"sui-table-item-title\">{ __( 'Asset Optimization', 'wphb' ) }</td>\n\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t{ ! this.props.isNetworkAdmin && this.getOptimizationLabel() }\n\t\t\t\t\t\t\t\t{ this.props.isNetworkAdmin && __( 'Active on subsites', 'wphb' ) }\n\t\t\t\t\t\t\t\t{ this.props.isMember && <br /> }\n\t\t\t\t\t\t\t\t{ this.props.isMember &&\n\t\t\t\t\t\t\t\t\t<React.Fragment>{ __( 'CDN', 'wphb' ) }</React.Fragment> }\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t{ ! this.props.isNetworkAdmin && ( this.props.settings.aoCombine || this.props.settings.aoCompress ) &&\n\t\t\t\t\t\t\t\t\t<Tag type=\"blue sui-tag-sm\" value={ __( 'Enabled', 'wphb' ) } /> }\n\t\t\t\t\t\t\t\t{ ! this.props.isNetworkAdmin && ! this.props.settings.aoCombine && ! this.props.settings.aoCompress &&\n\t\t\t\t\t\t\t\t\t<Tag type=\"grey sui-tag-sm\" value={ __( 'Disabled', 'wphb' ) } /> }\n\t\t\t\t\t\t\t\t{ this.props.isNetworkAdmin &&\n\t\t\t\t\t\t\t\t\t<Tag type=\"blue sui-tag-sm\" value={ __( 'Enabled', 'wphb' ) } /> }\n\t\t\t\t\t\t\t\t{ this.props.settings.aoCdn && this.props.isMember &&\n\t\t\t\t\t\t\t\t\t<Tag type=\"blue sui-tag-sm\" value={ __( 'Enabled', 'wphb' ) } /> }\n\t\t\t\t\t\t\t\t{ ! this.props.settings.aoCdn && this.props.isMember &&\n\t\t\t\t\t\t\t\t\t<Tag type=\"grey sui-tag-sm\" value={ __( 'Disabled', 'wphb' ) } /> }\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr> }\n\t\t\t\t\t{ this.props.settings.aoEnable && ! this.props.isNetworkAdmin &&\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td className=\"sui-table-item-title\">{ __( 'Extra Optimization', 'wphb' ) }</td>\n\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t{ __( 'Delay JS Executions', 'wphb' ) }<br />\n\t\t\t\t\t\t\t\t{ __( 'Generate Critical CSS', 'wphb' ) }<br />\n\t\t\t\t\t\t\t\t{ __( 'Swap Web Fonts', 'wphb' ) }\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t{ this.props.settings.delayJS && this.props.isMember &&\n\t\t\t\t\t\t\t\t\t<Tag type=\"blue sui-tag-sm\" value={ __( 'Enabled', 'wphb' ) } /> }\n\t\t\t\t\t\t\t\t{ ! this.props.settings.delayJS &&\n\t\t\t\t\t\t\t\t\t<Tag type=\"grey sui-tag-sm\" value={ __( 'Disabled', 'wphb' ) } /> }\n\t\t\t\t\t\t\t\t{ this.props.settings.criticalCSS && this.props.isMember &&\n\t\t\t\t\t\t\t\t\t<Tag type=\"blue sui-tag-sm\" value={ __( 'Enabled', 'wphb' ) } /> }\n\t\t\t\t\t\t\t\t{ ! this.props.settings.criticalCSS &&\n\t\t\t\t\t\t\t\t\t<Tag type=\"grey sui-tag-sm\" value={ __( 'Disabled', 'wphb' ) } /> }\n\t\t\t\t\t\t\t\t{ this.props.settings.fontSwap &&\n\t\t\t\t\t\t\t\t\t<Tag type=\"blue sui-tag-sm\" value={ __( 'Enabled', 'wphb' ) } /> }\n\t\t\t\t\t\t\t\t{ ! this.props.settings.fontSwap &&\n\t\t\t\t\t\t\t\t\t<Tag type=\"grey sui-tag-sm\" value={ __( 'Disabled', 'wphb' ) } /> }\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr> }\n\n\t\t\t\t\t{ this.props.settings.uptimeEnable &&\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td className=\"sui-table-item-title\">{ __( 'Uptime', 'wphb' ) }</td>\n\t\t\t\t\t\t\t<td>{ __( 'Default settings', 'wphb' ) }</td>\n\t\t\t\t\t\t\t<td><Tag type=\"blue sui-tag-sm\" value={ __( 'Enabled', 'wphb' ) } /></td>\n\t\t\t\t\t\t</tr> }\n\n\t\t\t\t\t{ this.props.settings.fastCGI &&\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td className=\"sui-table-item-title\">{ __( 'Page Caching', 'wphb' ) }</td>\n\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t{ __( 'Static Server Cache', 'wphb' ) }<br />\n\t\t\t\t\t\t\t\t{ __( 'Show clear cache button in admin bar', 'wphb' ) }\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t<Tag type=\"blue sui-tag-sm\" value={ __( 'Enabled', 'wphb' ) } />\n\t\t\t\t\t\t\t\t{ this.props.settings.clearCacheButton &&\n\t\t\t\t\t\t\t\t\t<Tag type=\"blue sui-tag-sm\" value={ __( 'Enabled', 'wphb' ) } /> }\n\t\t\t\t\t\t\t\t{ ! this.props.settings.clearCacheButton &&\n\t\t\t\t\t\t\t\t\t<Tag type=\"grey sui-tag-sm\" value={ __( 'Disabled', 'wphb' ) } /> }\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t}\n\n\t\t\t\t\t{ this.props.settings.cacheEnable && ! this.props.settings.fastCGI &&\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td className=\"sui-table-item-title\">{ __( 'Page Caching', 'wphb' ) }</td>\n\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t{ __( 'Cache on mobile devices', 'wphb' ) }<br />\n\t\t\t\t\t\t\t\t{ __( 'Clear cache on comment post', 'wphb' ) }<br />\n\t\t\t\t\t\t\t\t{ __( 'Cache HTTP headers', 'wphb' ) }<br />\n\t\t\t\t\t\t\t\t{ __( 'Show clear cache button in admin bar', 'wphb' ) }\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t{ this.props.settings.cacheOnMobile &&\n\t\t\t\t\t\t\t\t\t<Tag type=\"blue sui-tag-sm\" value={ __( 'Enabled', 'wphb' ) } /> }\n\t\t\t\t\t\t\t\t{ ! this.props.settings.cacheOnMobile &&\n\t\t\t\t\t\t\t\t\t<Tag type=\"grey sui-tag-sm\" value={ __( 'Disabled', 'wphb' ) } /> }\n\t\t\t\t\t\t\t\t{ this.props.settings.clearOnComment &&\n\t\t\t\t\t\t\t\t\t<Tag type=\"blue sui-tag-sm\" value={ __( 'Enabled', 'wphb' ) } /> }\n\t\t\t\t\t\t\t\t{ ! this.props.settings.clearOnComment &&\n\t\t\t\t\t\t\t\t\t<Tag type=\"grey sui-tag-sm\" value={ __( 'Disabled', 'wphb' ) } /> }\n\t\t\t\t\t\t\t\t{ this.props.settings.cacheHeader &&\n\t\t\t\t\t\t\t\t\t<Tag type=\"blue sui-tag-sm\" value={ __( 'Enabled', 'wphb' ) } /> }\n\t\t\t\t\t\t\t\t{ ! this.props.settings.cacheHeader &&\n\t\t\t\t\t\t\t\t\t<Tag type=\"grey sui-tag-sm\" value={ __( 'Disabled', 'wphb' ) } /> }\n\t\t\t\t\t\t\t\t{ this.props.settings.clearCacheButton &&\n\t\t\t\t\t\t\t\t\t<Tag type=\"blue sui-tag-sm\" value={ __( 'Enabled', 'wphb' ) } /> }\n\t\t\t\t\t\t\t\t{ ! this.props.settings.clearCacheButton &&\n\t\t\t\t\t\t\t\t\t<Tag type=\"grey sui-tag-sm\" value={ __( 'Disabled', 'wphb' ) } /> }\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr> }\n\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td className=\"sui-table-item-title\">{ __( 'Advanced Tools', 'wphb' ) }</td>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t{ __( 'Remove query strings from my assets', 'wphb' ) }<br />\n\t\t\t\t\t\t\t{ this.props.hasWoo &&\n\t\t\t\t\t\t\t\t<React.Fragment>\n\t\t\t\t\t\t\t\t\t{ __( 'Disable cart fragments', 'wphb' ) }<br />\n\t\t\t\t\t\t\t\t</React.Fragment> }\n\t\t\t\t\t\t\t{ __( 'Remove the default Emoji JS & CSS files', 'wphb' ) }\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t{ this.props.settings.queryStrings &&\n\t\t\t\t\t\t\t\t<Tag type=\"blue sui-tag-sm\" value={ __( 'Enabled', 'wphb' ) } /> }\n\t\t\t\t\t\t\t{ ! this.props.settings.queryStrings &&\n\t\t\t\t\t\t\t\t<Tag type=\"grey sui-tag-sm\" value={ __( 'Disabled', 'wphb' ) } /> }\n\t\t\t\t\t\t\t{ this.props.hasWoo &&\n\t\t\t\t\t\t\t\t<React.Fragment>\n\t\t\t\t\t\t\t\t\t{ this.props.settings.cartFragments &&\n\t\t\t\t\t\t\t\t\t\t<Tag type=\"blue sui-tag-sm\" value={ __( 'Enabled', 'wphb' ) } /> }\n\t\t\t\t\t\t\t\t\t{ ! this.props.settings.cartFragments &&\n\t\t\t\t\t\t\t\t\t\t<Tag type=\"grey sui-tag-sm\" value={ __( 'Disabled', 'wphb' ) } /> }\n\t\t\t\t\t\t\t\t</React.Fragment> }\n\t\t\t\t\t\t\t{ this.props.settings.removeEmoji &&\n\t\t\t\t\t\t\t\t<Tag type=\"blue sui-tag-sm\" value={ __( 'Enabled', 'wphb' ) } /> }\n\t\t\t\t\t\t\t{ ! this.props.settings.removeEmoji &&\n\t\t\t\t\t\t\t\t<Tag type=\"grey sui-tag-sm\" value={ __( 'Disabled', 'wphb' ) } /> }\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</tr>\n\t\t\t\t</tbody>\n\t\t\t</table>\n\t\t);\n\t}\n\n\t/**\n\t * Get content.\n\t *\n\t * @return {JSX.Element} Content\n\t */\n\tgetContent() {\n\t\tlet description;\n\n\t\tif ( 1 === this.props.step ) {\n\t\t\tdescription = __( 'Let’s walk through a few quick steps to fine-tune your site’s performance and keep it running lightning-fast.', 'wphb' );\n\t\t\tif ( this.props.showConflicts ) {\n\t\t\t\tdescription = __( 'Any issue reported here may cause issues while we set up the plugin.', 'wphb' );\n\t\t\t\tif ( ! this.props.issues.advCacheFile ) {\n\t\t\t\t\tdescription = __( 'There are no more potential issues. You can proceed with the setup.', 'wphb' );\n\t\t\t\t}\n\t\t\t}\n\t\t} else if ( 2 === this.props.step ) {\n\t\t\tdescription = __( \"Hummingbird's Asset Optimization engine can combine and minify the files your website outputs when a user visits your website. The fewer requests your visitors have to make to your server, the better.\", 'wphb' );\n\t\t} else if ( 3 === this.props.step ) {\n\t\t\tdescription = __( 'Never get caught off guard by downtime again. Hummingbird checks your site every few minutes and alerts you if it goes down or slows, helping you keep things running at top speed.', 'wphb' );\n\t\t} else if ( 4 === this.props.step ) {\n\t\t\tdescription = __( 'Hummingbird stores static HTML copies of your pages and posts to decrease page load time. We will activate the default and basic settings and you can then fine-tune them to suit your specific needs.', 'wphb' );\n\t\t} else if ( 5 === this.props.step ) {\n\t\t\tdescription = __( 'Here are a few additional tweaks you can make to further reduce your page load times.', 'wphb' );\n\t\t} else if ( 6 === this.props.step ) {\n\t\t\tdescription = __( 'The setup is complete. We have activated the main features with the default settings. You can proceed to run a Performance Test or go directly to the Dashboard page.', 'wphb' );\n\t\t}\n\n\t\treturn (\n\t\t\t<React.Fragment>\n\t\t\t\t<p className=\"sui-description\">\n\t\t\t\t\t{ description }\n\t\t\t\t</p>\n\n\t\t\t\t{ 1 === this.props.step && ! this.props.showConflicts &&\n\t\t\t\t\t<div className=\"sui-border-frame wphb-getting-started-setup\">\n\t\t\t\t\t\t<Toggle\n\t\t\t\t\t\t\tid=\"tracking\"\n\t\t\t\t\t\t\tonChange={ this.props.updateSettings }\n\t\t\t\t\t\t\ttext={ createInterpolateElement(\n\t\t\t\t\t\t\t\t__( 'Help improve Hummingbird with anonymous usage data<span>Recommended</span>', 'wphb' ),\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tspan: <span className=\"sui-tag sui-tag-sm\" />\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tchecked={ this.props.settings.tracking }\n\t\t\t\t\t\t\tdescription={\n\t\t\t\t\t\t\t\tcreateInterpolateElement(\n\t\t\t\t\t\t\t\t\t__( 'Join 18,000+ users helping us improve with anonymous data. No personal info collected. <a>Learn more</a>.', 'wphb' ),\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\ta: <a href={ getLink( 'tracking' ) } target=\"_blank\" rel=\"noreferrer\" />\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</div> }\n\n\t\t\t\t{ 1 === this.props.step && this.props.showConflicts &&\n\t\t\t\t\t<div className=\"wphb-progress-wrapper\">\n\t\t\t\t\t\t{ this.getCompatPluginsContent() }\n\t\t\t\t\t</div> }\n\n\t\t\t\t{ this.toggleButtons() }\n\n\t\t\t\t{ 2 === this.props.step && this.assetOptimizationSettings() }\n\t\t\t\t{ 4 === this.props.step && this.cacheSettings() }\n\t\t\t\t{ 5 === this.props.step && this.advancedSettings() }\n\t\t\t\t{ 6 === this.props.step && this.showResults() }\n\t\t\t</React.Fragment>\n\t\t);\n\t}\n\n\t/**\n\t * Get footer actions.\n\t *\n\t * @return {JSX.Element} Footer content.\n\t */\n\tgetFooter() {\n\t\treturn (\n\t\t\t<React.Fragment>\n\t\t\t\t{ 1 !== this.props.step &&\n\t\t\t\t\t<Button\n\t\t\t\t\t\tonClick={ this.props.prevStep }\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\ticon=\"sui-icon-arrow-left\"\n\t\t\t\t\t\tclasses={ [ 'sui-button', 'sui-button-ghost' ] }\n\t\t\t\t\t\ttext={ __( 'Back', 'wphb' ) } /> }\n\t\t\t\t<div className=\"sui-actions-right\">\n\t\t\t\t\t{ 1 === this.props.step && ! this.props.showConflicts &&\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tonClick={ this.props.nextStep }\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tclasses={ [ 'sui-button', 'sui-button-blue' ] }\n\t\t\t\t\t\t\ttext={ __( 'Get started', 'wphb' ) } /> }\n\t\t\t\t\t{ 1 === this.props.step && this.props.showConflicts && this.props.issues.advCacheFile &&\n\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\tclasses=\"sui-tooltip-constrained sui-tooltip-top-right-mobile\"\n\t\t\t\t\t\t\ttext={ __( 'We advise to check the recommendations before proceeding.', 'wphb' ) }>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tonClick={ this.props.skipConflicts }\n\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\ticon=\"sui-icon-arrow-right\"\n\t\t\t\t\t\t\t\tclasses={ [ 'sui-button', 'sui-button-ghost' ] }\n\t\t\t\t\t\t\t\ttext={ __( 'Continue anyway', 'wphb' ) } />\n\t\t\t\t\t\t</Tooltip> }\n\t\t\t\t\t{ ( 1 !== this.props.step || ( this.props.showConflicts && ! this.props.issues.advCacheFile ) ) && 6 > this.props.step &&\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tonClick={ this.continueToNextStep }\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\ticon=\"sui-icon-arrow-right\"\n\t\t\t\t\t\t\tclasses={ [ 'sui-button', 'sui-button-blue' ] }\n\t\t\t\t\t\t\ttext={ __( 'Continue', 'wphb' ) } /> }\n\t\t\t\t\t{ 6 === this.props.step &&\n\t\t\t\t\t\t<React.Fragment>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tonClick={ this.props.finish }\n\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\tclasses={ [ 'sui-button', 'sui-button-ghost' ] }\n\t\t\t\t\t\t\t\ttext={ __( 'Go to Dashboard', 'wphb' ) } />\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tonClick={ () => this.props.finish( 'runPerf' ) }\n\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\tclasses={ [ 'sui-button', 'sui-button-blue' ] }\n\t\t\t\t\t\t\t\ttext={ __( 'Run Performance Test', 'wphb' ) } />\n\t\t\t\t\t\t</React.Fragment> }\n\t\t\t\t</div>\n\t\t\t</React.Fragment>\n\t\t);\n\t}\n\n\t/**\n\t * Handle \"Continue\" button click.\n\t */\n\tcontinueToNextStep() {\n\t\tthis.props.nextStep();\n\t}\n\n\t/**\n\t * Render component.\n\t *\n\t * @return {JSX.Element} Requirements component.\n\t */\n\trender() {\n\t\treturn (\n\t\t\t<div className=\"sui-row-with-sidenav\">\n\t\t\t\t{ this.getNavigation() }\n\t\t\t\t<Box\n\t\t\t\t\tboxClass=\"box-setup-requirements\"\n\t\t\t\t\thideHeader={ true }\n\t\t\t\t\tloading={ this.props.loading }\n\t\t\t\t\tloadingText={ 1 === this.props.step ? __( 'Checking status', 'wphb' ) : __( 'Saving settings', 'wphb' ) }\n\t\t\t\t\tcontent={\n\t\t\t\t\t\t<React.Fragment>\n\t\t\t\t\t\t\t{ this.getHeader() }\n\t\t\t\t\t\t\t{ this.getContent() }\n\t\t\t\t\t\t</React.Fragment>\n\t\t\t\t\t}\n\t\t\t\t\tfooterActions={ this.getFooter() }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t}\n}\n","/**\n * External dependencies\n */\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\n\n/**\n * WordPress dependencies\n */\nimport domReady from '@wordpress/dom-ready';\nconst { __ } = wp.i18n;\n\n/**\n * Internal dependencies\n */\nrequire( '../../js/mixpanel' );\nimport '../app.scss';\nimport { getLink } from '../../js/utils/helpers';\nimport HBAPIFetch from '../api';\nimport Button from '../components/sui-button';\nimport ButtonLoading from '../components/sui-button-loading';\nimport Tooltip from '../components/sui-tooltip';\nimport Wizard from '../views/setup/wizard';\n\n/**\n * SetupWizard component.\n *\n * @since 3.3.1\n */\nclass SetupWizard extends React.Component {\n\t/**\n\t * Component constructor.\n\t *\n\t * @param {Object} props\n\t */\n\tconstructor( props ) {\n\t\tsuper( props );\n\n\t\tthis.state = {\n\t\t\tapi: new HBAPIFetch(),\n\t\t\tisMember: this.props.wphbData.isMember,\n\t\t\thasUptime: this.props.wphbData.hasUptime,\n\t\t\tloading: false,\n\t\t\tcheckDocumentation: false,\n\t\t\t/**\n\t\t\t * Steps:\n\t\t\t * 1. Start of setup\n\t\t\t * 2. Asset optimization\n\t\t\t * 3. Uptime\n\t\t\t * 4. Page caching\n\t\t\t * 5. Advanced tools\n\t\t\t * 6. Finish\n\t\t\t */\n\t\t\tstep: 1,\n\t\t\tissues: {\n\t\t\t\tadvCacheFile: false\n\t\t\t},\n\t\t\tshowConflicts: false,\n\t\t\tsettings: {\n\t\t\t\taoEnable: true,\n\t\t\t\taoCompress: true,\n\t\t\t\taoCombine: true,\n\t\t\t\taoCdn: Boolean( this.props.wphbData.isMember ),\n\t\t\t\tdelayJS: Boolean( this.props.wphbData.isMember ),\n\t\t\t\tcriticalCSS: Boolean( this.props.wphbData.isMember ),\n\t\t\t\tfontSwap: true,\n\t\t\t\tuptimeEnable: Boolean( this.props.wphbData.hasUptime ),\n\t\t\t\tcacheEnable: true,\n\t\t\t\tfastCGI: Boolean( this.props.wphbData.isFastCGISupported ) ? true : false,\n\t\t\t\tisFastCGISupported: Boolean( this.props.wphbData.isFastCGISupported ),\n\t\t\t\tcacheOnMobile: true,\n\t\t\t\tclearOnComment: true,\n\t\t\t\tcacheHeader: true,\n\t\t\t\tclearCacheButton: true,\n\t\t\t\tqueryStrings: true,\n\t\t\t\tcartFragments: Boolean( this.props.wphbData.hasWoo ),\n\t\t\t\tremoveEmoji: true,\n\t\t\t\ttracking: false,\n\t\t\t}\n\t\t};\n\n\t\tthis.checkRequirements = this.checkRequirements.bind( this );\n\t\tthis.removeAdvancedCache = this.removeAdvancedCache.bind( this );\n\t\tthis.disableFastCGI = this.disableFastCGI.bind( this );\n\t\tthis.skipConflicts = this.skipConflicts.bind( this );\n\t\tthis.nextStep = this.nextStep.bind( this );\n\t\tthis.prevStep = this.prevStep.bind( this );\n\t\tthis.finish = this.finish.bind( this );\n\t\tthis.updateSettings = this.updateSettings.bind( this );\n\t\tthis.toggleModule = this.toggleModule.bind( this );\n\t\tthis.quitWizard = this.quitWizard.bind( this );\n\t}\n\n\t/**\n\t * Wizard started.\n\t */\n\tcomponentDidMount() {\n\t\tthis.checkRequirements();\n\t}\n\n\t/**\n\t * Skip conflict check.\n\t */\n\tskipConflicts() {\n\t\tthis.setState( {\n\t\t\tshowConflicts: false,\n\t\t\tstep: 2\n\t\t} );\n\t}\n\n\t/**\n\t * Go to next step in wizard.\n\t */\n\tnextStep() {\n\t\tif ( 1 === this.state.step && this.state.issues.advCacheFile ) {\n\t\t\tthis.setState( { showConflicts: true } );\n\t\t\treturn;\n\t\t}\n\n\t\tlet step = this.state.step + 1;\n\n\t\t// If Asset optimization and free user - skip Uptime step.\n\t\tif ( 2 === this.state.step && ! this.state.hasUptime ) {\n\t\t\tstep++;\n\t\t}\n\n\t\tthis.setState( { loading: true } );\n\n\t\tconst data = { ...this.state.settings, module: '', enable: false };\n\t\tif ( 2 === this.state.step ) {\n\t\t\tdata.module = 'ao';\n\t\t\tdata.enable = this.state.settings.aoEnable;\n\t\t} else if ( 3 === this.state.step ) {\n\t\t\tdata.module = 'uptime';\n\t\t\tdata.enable = this.state.settings.uptimeEnable;\n\t\t} else if ( 4 === this.state.step ) {\n\t\t\tdata.module = 'caching';\n\t\t\tdata.enable = this.state.settings.cacheEnable;\n\t\t} else if ( 5 === this.state.step ) {\n\t\t\tdata.module = 'advanced';\n\t\t}\n\n\t\tthis.state.api\n\t\t\t.post( 'settings', data )\n\t\t\t.then( () => this.setState( {\n\t\t\t\tshowConflicts: false,\n\t\t\t\tstep,\n\t\t\t\tloading: false\n\t\t\t} ) )\n\t\t\t.catch( ( error ) => window.console.log( error ) );\n\t}\n\n\t/**\n\t * Go to previous step in wizard.\n\t */\n\tprevStep() {\n\t\tlet step = this.state.step - 1;\n\n\t\t// Skip Uptime step for free users.\n\t\tif ( 4 === this.state.step && ! this.state.hasUptime ) {\n\t\t\tstep--;\n\t\t}\n\n\t\tthis.setState( { step } );\n\t}\n\n\t/**\n\t * Complete wizard.\n\t *\n\t * @param {string} goToPage Go to page.\n\t */\n\tfinish( goToPage = 'pluginDash' ) {\n\t\tthis.setState( { loading: true } );\n\t\tif ( 'string' !== typeof goToPage ) {\n\t\t\tgoToPage = 'pluginDash';\n\t\t}\n\n\t\tthis.trackSetupEvents( goToPage );\n\t\tthis.state.api\n\t\t\t.post( 'complete_wizard', goToPage )\n\t\t\t.then( () => {\n\t\t\t\twindow.location.href = getLink( goToPage );\n\t\t\t} )\n\t\t\t.catch( ( error ) => window.console.log( error ) );\n\t}\n\n\t/**\n\t * Check setup wizard requirements.\n\t *\n\t * @param {boolean} setLoadingState\n\t */\n\tcheckRequirements( setLoadingState = false ) {\n\t\tif ( setLoadingState ) {\n\t\t\tthis.setState( { loading: true } );\n\t\t}\n\n\t\tthis.state.api\n\t\t\t.post( 'check_requirements' )\n\t\t\t.then( ( response ) => {\n\t\t\t\tthis.setState( {\n\t\t\t\t\tloading: false,\n\t\t\t\t\tissues: response.status\n\t\t\t\t} );\n\t\t\t} )\n\t\t\t.catch( ( error ) => window.console.log( error ) );\n\t}\n\n\t/**\n\t * Remove advanced-cache.php file.\n\t */\n\tremoveAdvancedCache() {\n\t\tthis.setState( { loading: true } );\n\n\t\tthis.state.api\n\t\t\t.post( 'remove_advanced_cache' )\n\t\t\t.then( ( response ) => {\n\t\t\t\tthis.setState( {\n\t\t\t\t\tloading: false,\n\t\t\t\t\tissues: response.status\n\t\t\t\t} );\n\t\t\t} )\n\t\t\t.catch( ( error ) => window.console.log( error ) );\n\t}\n\n\t/**\n\t * Disable FastCGI cache.\n\t */\n\tdisableFastCGI() {\n\t\tthis.setState( { loading: true } );\n\n\t\tthis.state.api\n\t\t\t.post( 'disable_fast_cgi' )\n\t\t\t.then( ( response ) => {\n\t\t\t\tthis.setState( {\n\t\t\t\t\tloading: false,\n\t\t\t\t\tissues: response.status\n\t\t\t\t} );\n\t\t\t} )\n\t\t\t.catch( ( error ) => window.console.log( error ) );\n\t}\n\n\t/**\n\t * Update settings on toggle status change.\n\t *\n\t * @param {Object} e\n\t */\n\tupdateSettings( e ) {\n\t\tconst settings = { ...this.state.settings };\n\t\tsettings[ e.target.id ] = e.target.checked;\n\n\t\tif ( 'tracking' === e.target.id ) {\n\t\t\tthis.trackUserConsentToggle( e.target.checked );\n\t\t}\n\n\t\tthis.setState( { settings } );\n\t}\n\n\t/**\n\t * Process enable/disable button clicks.\n\t *\n\t * @param {string} action Action: enable|disable.\n\t * @param {string} setting Setting ID.\n\t */\n\ttoggleModule( action, setting ) {\n\t\tconst settings = { ...this.state.settings };\n\t\tsettings[ setting ] = 'enable' === action;\n\n\t\tif ( 'cacheEnable' === setting && ( 'enable' === action || 'disable' === action ) ) {\n\t\t\tsettings[ 'fastCGI' ] = false;\n\t\t}\n\n\t\tthis.setState( { settings } );\n\t}\n\n\t/**\n\t * Quit wizard.\n\t * TODO: add tracking\n\t */\n\tquitWizard() {\n\t\tthis.setState( { loading: true } );\n\t\tthis.trackSetupEvents();\n\t\tthis.state.api.post( 'cancel_wizard' )\n\t\t\t.then( () => {\n\t\t\t\twindow.location.href = getLink( 'pluginDash' );\n\t\t\t})\n\t\t\t.catch((error) => window.console.log( error ));\n\t}\n\n\t/**\n\t * Track setup wizard events.\n\t *\n\t * @param {string} action\n\t */\n\ttrackSetupEvents( action = 'quit' ) {\n\t\tconst actionMap = {\n\t\t\tconfigs: 'apply_configs',\n\t\t\trunPerf: 'performance_test',\n\t\t\tpluginDash: 'complete_dashboard'\n\t\t};\n\t\taction = actionMap[ action ] || action;\n\n\t\tconst stepMap = {\n\t\t\t1: this.state.issues.advCacheFile ? 'conflict' : 'tracking',\n\t\t\t2: 'ao_settings',\n\t\t\t3: 'uptime',\n\t\t\t4: 'page_caching',\n\t\t\t5: 'advanced_tools'\n\t\t};\n\t\tconst quitStep = stepMap[ this.state.step ] || 'na';\n\t\tconst conflict = this.state.issues.advCacheFile ? 'yes' : 'no';\n\n\t\tconst aoSettings = {\n\t\t\taoCompress: 'compress',\n\t\t\taoCombine: 'combine',\n\t\t\taoCdn: 'cdn',\n\t\t\tdelayJS: 'js_delay',\n\t\t\tcriticalCSS: 'critical_css',\n\t\t\tfontSwap: 'font_swap',\n\t\t};\n\t\tconst enabledAoFeatures = this.state.settings.aoEnable ? this.mapSettings( aoSettings ) : 'disabled';\n\n\t\tconst advancedSettings = {\n\t\t\tqueryStrings: 'remove_query_strings',\n\t\t\tcartFragments: 'disable_cart_fragments',\n\t\t\tremoveEmoji: 'remove_emoji',\n\t\t};\n\t\tconst advancedFeaturesStatus = this.mapSettings( advancedSettings );\n\n\t\tconst uptime = this.state.settings.uptimeEnable ? 'enabled' : 'disabled';\n\t\tconst enabledAdvancedFeatures = advancedFeaturesStatus.length > 0 ? advancedFeaturesStatus : 'all_disabled';\n\n\t\tlet cacheSettings = 'disabled';\n\t\tif ( this.state.settings.cacheEnable ) {\n\t\t\tif ( this.state.settings.fastCGI ) {\n\t\t\t\tcacheSettings = ! this.state.settings.clearOnComment || ! this.state.settings.clearCacheButton ? 'ssc_modified' : 'ssc_defaults';\n\t\t\t} else {\n\t\t\t\tcacheSettings = ! this.state.settings.cacheOnMobile || ! this.state.settings.clearOnComment || ! this.state.settings.cacheHeader || ! this.state.settings.clearCacheButton ? 'local_modified' : 'local_defaults';\n\t\t\t}\n\t\t}\n\n\t\tif ( this.state.settings.tracking ) {\n\t\t\twindow.wphbMixPanel.optIn();\n\t\t}\n\n\t\twindow.wphbMixPanel.track( 'Setup Wizard', {\n\t\t\tAction: action,\n\t\t\t'Quit Step': quitStep,\n\t\t\tConflict: conflict,\n\t\t\t'AO Settings': this.state.step > 2 ? enabledAoFeatures : 'na',\n\t\t\tUptime: uptime,\n\t\t\t'Cache Settings': this.state.step > 4 ? cacheSettings : 'na',\n\t\t\t'Advanced Settings': this.state.step > 5 ? enabledAdvancedFeatures : 'na',\n\t\t\tDocumentation: this.state.checkDocumentation ? 'clicked' : 'not_clicked',\n\t\t} );\n\t}\n\n\t/**\n\t * Map settings to their respective names.\n\t *\n\t * @param {string} settingsMap\n\t */\n\tmapSettings( settingsMap ) {\n\t\treturn Object.keys( settingsMap ).filter( key => this.state.settings[ key ] ).map( key => settingsMap[ key ] );\n\t}\n\n\ttrackDocumentation() {\n\t\tthis.setState( { checkDocumentation: true } );\n\t}\n\n\t/**\n\t * Take action on user consent toggle.\n\t *\n\t * @param {string} tracking\n\t */\n\ttrackUserConsentToggle( tracking ) {\n\t\tthis.state.api\n\t\t\t.post( 'track_user_consent_toggle', tracking )\n\t\t\t.then( () => {\n\t\t\t\tif ( tracking ) {\n\t\t\t\t\twindow.wphbMixPanel.optIn();\n\t\t\t\t}\n\t\t\t} )\n\t\t\t.catch( ( error ) => window.console.log( error ) );\n\t}\n\n\t/**\n\t * Get wizard header.\n\t *\n\t * @return {JSX.Element} Wizard header\n\t */\n\tgetHeader() {\n\t\treturn (\n\t\t\t<div className=\"sui-header wphb-wizard-header\">\n\t\t\t\t<h2 className=\"sui-header-title\">\n\t\t\t\t\t<img\n\t\t\t\t\t\tclassName=\"sui-image\"\n\t\t\t\t\t\talt={ __( 'Setup wizard', 'wphb' ) }\n\t\t\t\t\t\tsrc={ getLink( 'wphbDirUrl' ) + 'admin/assets/image/setup/hummingbird.png' }\n\t\t\t\t\t\tsrcSet={\n\t\t\t\t\t\t\tgetLink( 'wphbDirUrl' ) + 'admin/assets/image/setup/hummingbird.png 1x, ' +\n\t\t\t\t\t\t\tgetLink( 'wphbDirUrl' ) + 'admin/assets/image/setup/hummingbird@2x.png 2x'\n\t\t\t\t\t\t} />\n\t\t\t\t\t{ __( 'Hummingbird', 'wphb' ) }\n\t\t\t\t\t<small>{ __( 'Wizard', 'wphb' ) }</small>\n\t\t\t\t</h2>\n\t\t\t\t<div className=\"sui-actions-right\">\n\t\t\t\t\t{ ! this.state.isMember &&\n\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\ttext={ __( 'Get Hummingbird Pro for our full WordPress speed optimization suite, including uptime monitoring and enhanced CDN.', 'wphb' ) }\n\t\t\t\t\t\t\tclasses={ [ 'sui-tooltip-constrained', 'sui-tooltip-bottom' ] } >\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tclasses={ [ 'sui-button', 'sui-button-purple' ] }\n\t\t\t\t\t\t\t\ttarget=\"blank\"\n\t\t\t\t\t\t\t\turl={ getLink( 'upsell' ) }\n\t\t\t\t\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\t\t\t\t\twindow.wphbMixPanel.trackHBUpsell( 'pro_general', 'wizard', 'cta_clicked', event.target.href, 'hb_pro_upsell' );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\ttext={ __( 'UPGRADE TO PRO', 'wphb' ) } />\n\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t}\n\n\t\t\t\t\t{ 6 !== this.state.step &&\n\t\t\t\t\t\t<ButtonLoading\n\t\t\t\t\t\t\tonClick={ this.quitWizard }\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tloading={ this.state.loading }\n\t\t\t\t\t\t\tclasses={ [ 'sui-button', 'sui-button-ghost' ] }\n\t\t\t\t\t\t\ticon=\"sui-icon-logout\"\n\t\t\t\t\t\t\ttext={ __( 'Quit wizard', 'wphb' ) } /> }\n\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclasses={ [ 'sui-button', 'sui-button-ghost' ] }\n\t\t\t\t\t\ticon=\"sui-icon-academy\"\n\t\t\t\t\t\ttarget=\"blank\"\n\t\t\t\t\t\turl={ getLink( 'docs' ) }\n\t\t\t\t\t\tonClick={ () => this.trackDocumentation() }\n\t\t\t\t\t\ttext={ __( 'Documentation', 'wphb' ) } />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n\n\t/**\n\t * Render component.\n\t *\n\t * @return {*} Gzip page.\n\t */\n\trender() {\n\t\treturn (\n\t\t\t<React.Fragment>\n\t\t\t\t{ this.getHeader() }\n\t\t\t\t<Wizard\n\t\t\t\t\tloading={ this.state.loading }\n\t\t\t\t\tstep={ this.state.step }\n\t\t\t\t\tshowConflicts={ this.state.showConflicts }\n\t\t\t\t\tissues={ this.state.issues }\n\t\t\t\t\tminifySteps={ this.props.wphbData.minifySteps }\n\t\t\t\t\tnextStep={ this.nextStep }\n\t\t\t\t\tprevStep={ this.prevStep }\n\t\t\t\t\tfinish={ this.finish }\n\t\t\t\t\tskipConflicts={ this.skipConflicts }\n\t\t\t\t\tisMember={ this.state.isMember }\n\t\t\t\t\tisNetworkAdmin={ this.props.wphbData.isNetworkAdmin }\n\t\t\t\t\thasUptime={ this.state.hasUptime }\n\t\t\t\t\tsettings={ this.state.settings }\n\t\t\t\t\thasWoo={ this.props.wphbData.hasWoo }\n\t\t\t\t\treCheckRequirements={ () => this.checkRequirements( true ) }\n\t\t\t\t\tupdateSettings={ this.updateSettings }\n\t\t\t\t\ttoggleModule={ this.toggleModule }\n\t\t\t\t\tdisableFastCGI={ this.disableFastCGI }\n\t\t\t\t\tremoveAdvancedCache={ this.removeAdvancedCache } />\n\t\t\t</React.Fragment>\n\t\t);\n\t}\n}\n\nSetupWizard.propTypes = {\n\twphbData: PropTypes.object,\n};\n\ndomReady( function() {\n\tconst setupWizard = document.getElementById( 'wrap-wphb-setup' );\n\tif ( setupWizard ) {\n\t\tconst setupReact = ReactDOM.render(\n\t\t\t/*** @var {object} window.wphb */\n\t\t\t<SetupWizard wphbData={ window.wphb } />,\n\t\t\tsetupWizard\n\t\t);\n\t\t// Add callback for scanners.\n\t\twindow.wphbSetupNextStep = setupReact.nextStep;\n\t}\n} );\n","/**\n * @typedef {() => void} Callback\n *\n * TODO: Remove this typedef and inline `() => void` type.\n *\n * This typedef is used so that a descriptive type is provided in our\n * automatically generated documentation.\n *\n * An in-line type `() => void` would be preferable, but the generated\n * documentation is `null` in that case.\n *\n * @see https://github.com/WordPress/gutenberg/issues/18045\n */\n\n/**\n * Specify a function to execute when the DOM is fully loaded.\n *\n * @param {Callback} callback A function to execute after the DOM is ready.\n *\n * @example\n * ```js\n * import domReady from '@wordpress/dom-ready';\n *\n * domReady( function() {\n * \t//do something after DOM loads.\n * } );\n * ```\n *\n * @return {void}\n */\nexport default function domReady(callback) {\n if (typeof document === 'undefined') {\n return;\n }\n if (document.readyState === 'complete' ||\n // DOMContentLoaded + Images/Styles/etc loaded, so we call directly.\n document.readyState === 'interactive' // DOMContentLoaded fires at this point, so we call directly.\n ) {\n return void callback();\n }\n\n // DOMContentLoaded has not fired yet, delay callback until then.\n document.addEventListener('DOMContentLoaded', callback);\n}\n//# sourceMappingURL=index.js.map","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","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\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","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","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","/** @license React v0.20.2\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f,g,h,k;if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}\nif(\"undefined\"===typeof window||\"function\"!==typeof MessageChannel){var t=null,u=null,w=function(){if(null!==t)try{var a=exports.unstable_now();t(!0,a);t=null}catch(b){throw setTimeout(w,0),b;}};f=function(a){null!==t?setTimeout(f,0,a):(t=a,setTimeout(w,0))};g=function(a,b){u=setTimeout(a,b)};h=function(){clearTimeout(u)};exports.unstable_shouldYield=function(){return!1};k=exports.unstable_forceFrameRate=function(){}}else{var x=window.setTimeout,y=window.clearTimeout;if(\"undefined\"!==typeof console){var z=\nwindow.cancelAnimationFrame;\"function\"!==typeof window.requestAnimationFrame&&console.error(\"This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills\");\"function\"!==typeof z&&console.error(\"This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills\")}var A=!1,B=null,C=-1,D=5,E=0;exports.unstable_shouldYield=function(){return exports.unstable_now()>=\nE};k=function(){};exports.unstable_forceFrameRate=function(a){0>a||125<a?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"):D=0<a?Math.floor(1E3/a):5};var F=new MessageChannel,G=F.port2;F.port1.onmessage=function(){if(null!==B){var a=exports.unstable_now();E=a+D;try{B(!0,a)?G.postMessage(null):(A=!1,B=null)}catch(b){throw G.postMessage(null),b;}}else A=!1};f=function(a){B=a;A||(A=!0,G.postMessage(null))};g=function(a,b){C=\nx(function(){a(exports.unstable_now())},b)};h=function(){y(C);C=-1}}function H(a,b){var c=a.length;a.push(b);a:for(;;){var d=c-1>>>1,e=a[d];if(void 0!==e&&0<I(e,b))a[d]=b,a[c]=e,c=d;else break a}}function J(a){a=a[0];return void 0===a?null:a}\nfunction K(a){var b=a[0];if(void 0!==b){var c=a.pop();if(c!==b){a[0]=c;a:for(var d=0,e=a.length;d<e;){var m=2*(d+1)-1,n=a[m],v=m+1,r=a[v];if(void 0!==n&&0>I(n,c))void 0!==r&&0>I(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>I(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function I(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var L=[],M=[],N=1,O=null,P=3,Q=!1,R=!1,S=!1;\nfunction T(a){for(var b=J(M);null!==b;){if(null===b.callback)K(M);else if(b.startTime<=a)K(M),b.sortIndex=b.expirationTime,H(L,b);else break;b=J(M)}}function U(a){S=!1;T(a);if(!R)if(null!==J(L))R=!0,f(V);else{var b=J(M);null!==b&&g(U,b.startTime-a)}}\nfunction V(a,b){R=!1;S&&(S=!1,h());Q=!0;var c=P;try{T(b);for(O=J(L);null!==O&&(!(O.expirationTime>b)||a&&!exports.unstable_shouldYield());){var d=O.callback;if(\"function\"===typeof d){O.callback=null;P=O.priorityLevel;var e=d(O.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?O.callback=e:O===J(L)&&K(L);T(b)}else K(L);O=J(L)}if(null!==O)var m=!0;else{var n=J(M);null!==n&&g(U,n.startTime-b);m=!1}return m}finally{O=null,P=c,Q=!1}}var W=k;exports.unstable_IdlePriority=5;\nexports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){R||Q||(R=!0,f(V))};exports.unstable_getCurrentPriorityLevel=function(){return P};exports.unstable_getFirstCallbackNode=function(){return J(L)};\nexports.unstable_next=function(a){switch(P){case 1:case 2:case 3:var b=3;break;default:b=P}var c=P;P=b;try{return a()}finally{P=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=W;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=P;P=a;try{return b()}finally{P=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0<c?d+c:d):c=d;switch(a){case 1:var e=-1;break;case 2:e=250;break;case 5:e=1073741823;break;case 4:e=1E4;break;default:e=5E3}e=c+e;a={id:N++,callback:b,priorityLevel:a,startTime:c,expirationTime:e,sortIndex:-1};c>d?(a.sortIndex=c,H(M,a),null===J(L)&&a===J(M)&&(S?h():S=!0,g(U,c-d))):(a.sortIndex=e,H(L,a),R||Q||(R=!0,f(V)));return a};\nexports.unstable_wrapCallback=function(a){var b=P;return function(){var c=P;P=b;try{return a.apply(this,arguments)}finally{P=c}}};\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","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","/**\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","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","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","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","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","/* 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","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\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// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\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};","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t884: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkwp_hummingbird\"] = self[\"webpackChunkwp_hummingbird\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [816], function() { return __webpack_require__(6685); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","module","exports","value","reIsUint","length","type","test","object","key","undefined","Symbol","objectProto","Object","prototype","hasOwnProperty","nativeObjectToString","toString","symToStringTag","toStringTag","isOwn","call","tag","unmasked","e","result","baseTimes","isArguments","isArray","isBuffer","isIndex","isTypedArray","inherited","isArr","isArg","isBuff","isType","skipIndexes","String","push","baseRest","isIterateeCall","assigner","sources","index","customizer","guard","source","func","thisArg","args","apply","window","wphbMixPanel","optIn","wphb","mixpanel","enabled","deactivate","reason","feedback","arguments","this","track","trackHBUpsell","feature","location","action","utmLink","evenName","Feature","Location","enableFeature","trackEoUpsell","eventName","mpEventName","getUpdateType","update_type","trackDelayJSEvent","properties","disableFeature","trackFontOptimizationEvent","updateType","trackCriticalCSSEvent","trackAOUpdated","trackGutenbergEvent","trackPageCachingSettings","method","settingsModified","preloadHomepage","Method","modified_settings","preload_homepage","trackProUpsell","event","data","forceTrack","Fetcher","trackMixpanelEvent","assignValue","baseAssignValue","props","isNew","newValue","nativeNow","Date","now","count","lastCalled","stamp","remaining","baseGetTag","isObject","baseIsArguments","isObjectLike","propertyIsEnumerable","getRawTag","objectToString","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","propFullName","secret","err","Error","name","getShim","isRequired","ReactPropTypes","array","bigint","bool","number","string","symbol","any","arrayOf","element","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","baseSetToString","setToString","shortOut","getNative","defineProperty","nativeKeys","overArg","keys","root","stubFalse","freeExports","nodeType","freeModule","Buffer","transform","arg","freeGlobal","g","isFunction","isLength","typedArrayTags","isMasked","toSource","reIsHostCtor","funcProto","Function","funcToString","reIsNative","RegExp","replace","getOwnPropertySymbols","propIsEnumerable","assign","test1","getOwnPropertyNames","test2","i","fromCharCode","map","n","join","test3","split","forEach","letter","shouldUseNative","target","from","symbols","to","val","TypeError","toObject","s","other","coreJsData","Ctor","constructor","arrayLikeKeys","baseKeys","isArrayLike","freeProcess","process","nodeUtil","types","require","binding","baseIsNative","getValue","copyObject","createAssigner","isPrototype","Array","eq","objValue","getLink","screen","links","globalThis","self","support","Blob","viewClasses","isArrayBufferView","ArrayBuffer","isView","obj","indexOf","normalizeName","toLowerCase","normalizeValue","iteratorFor","items","iterator","next","shift","done","Headers","headers","append","header","consumed","body","_noBody","bodyUsed","Promise","reject","fileReaderReady","reader","resolve","onload","onerror","error","readBlobAsArrayBuffer","blob","FileReader","promise","readAsArrayBuffer","bufferClone","buf","slice","view","Uint8Array","byteLength","set","buffer","Body","_initBody","_bodyInit","_bodyText","isPrototypeOf","_bodyBlob","FormData","_bodyFormData","URLSearchParams","DataView","_bodyArrayBuffer","get","rejected","arrayBuffer","isConsumed","byteOffset","then","text","match","encoding","exec","readAsText","chars","readArrayBufferAsText","formData","decode","json","JSON","parse","oldValue","has","callback","values","entries","methods","Request","input","options","upcased","url","credentials","mode","signal","toUpperCase","AbortController","referrer","cache","reParamSearch","getTime","form","trim","bytes","decodeURIComponent","Response","bodyInit","status","RangeError","ok","statusText","clone","response","redirectStatuses","redirect","DOMException","message","stack","create","fetch","init","request","aborted","xhr","XMLHttpRequest","abortXhr","abort","rawHeaders","getAllResponseHeaders","substr","line","parts","console","warn","responseURL","responseText","setTimeout","ontimeout","onabort","open","href","fixUrl","withCredentials","responseType","names","setRequestHeader","addEventListener","onreadystatechange","readyState","removeEventListener","send","polyfill","HBAPIFetch","_this","_classCallCheck","_setupAjaxAPI","fetchObject","nonces","HBFetchNonce","stringify","ajaxurl","Button","_ref","rel","_ref$url","classes","id","icon","_ref$disabled","disabled","onClick","_ref$type","_objectWithoutProperties","_excluded","React","className","_extends","classNames","lodash","includes","Icon","ButtonLoading","_ref$loading","loading","loadingText","Tooltip","children","__","wp","i18n","Loader","Box","_React$Component","_callSuper","_inherits","title","headerActions","classesArray","boxHeader","stickyType","boxClass","hideHeader","showFilters","content","boxBodyClass","footerActions","boxRender","renderContent","Tag","propTypes","defaultProps","Toggle","onChange","_ref$checked","checked","_ref$hideToggle","hideToggle","_ref$description","description","_ref$learnMore","learnMore","_ref$tag","_ref$layout","layout","classnames","htmlFor","style","position","top","SettingsRow","label","_ref$wide","wide","Tabs","sideTabs","SUI","tabs","menuItems","menu","el","active","role","tabIndex","hidden","flushed","isEmpty","indoc","offset","output","tokenizer","createFrame","tokenStart","tokenLength","prevOffset","leadingTextStart","isValidConversionMap","conversionMap","every","isValidElement","proceed","matches","startedAt","isClosing","isSelfClosed","nextToken","tokenType","startOffset","stackDepth","addText","stackLeadingText","pop","addChild","endOffset","cloneElement","closeOuterElement","stackTop","frame","parent","interpolatedString","lastIndex","createElement","Fragment","_wp$i18n","Wizard","sprintf","state","steps","skip","advCacheFile","continueToNextStep","bind","prevProps","prevState","step","showConflicts","setState","issues","jQuery","on","toggleContent","currentTarget","parentNode","classList","toggle","_this2","mobileSteps","x1","x2","stroke","parseInt","hasUptime","current","incFlag","focusable","y1","y2","alt","src","srcSet","createInterpolateElement","a","reCheckRequirements","removeAdvancedCache","_this3","tabEnabledChecked","settings","tabDisabledChecked","isFastCGISupported","fastCGI","toggleModule","unshift","_this4","cdnRow","updateSettings","isMember","span","aoCdn","aoEnable","isNetworkAdmin","aoCompress","aoCombine","fontSwap","delayJS","criticalCSS","textAlign","marginTop","strong","cacheEnable","clearOnComment","clearCacheButton","cacheOnMobile","cacheHeader","queryStrings","removeEmoji","hasWoo","cartFragments","_this$props$settings","defaultLabel","getOptimizationLabel","uptimeEnable","tracking","getCompatPluginsContent","toggleButtons","assetOptimizationSettings","cacheSettings","advancedSettings","showResults","_this5","prevStep","nextStep","skipConflicts","finish","getNavigation","getHeader","getContent","getFooter","SetupWizard","api","wphbData","checkDocumentation","Boolean","checkRequirements","disableFastCGI","quitWizard","_objectSpread","enable","post","catch","log","goToPage","trackSetupEvents","trackUserConsentToggle","setting","configs","runPerf","pluginDash","quitStep","conflict","enabledAoFeatures","mapSettings","advancedFeaturesStatus","uptime","enabledAdvancedFeatures","Action","Conflict","Uptime","Documentation","settingsMap","_this6","filter","_this7","trackDocumentation","_this8","minifySteps","setupWizard","document","getElementById","setupReact","ReactDOM","wphbSetupNextStep","nativeMax","Math","max","start","otherArgs","hasOwn","appendClass","parseValue","newClass","default","objectOrFunction","x","len","vertxNext","customSchedulerFn","asap","queue","flush","scheduleFlush","setScheduler","scheduleFn","setAsap","asapFn","browserWindow","browserGlobal","BrowserMutationObserver","MutationObserver","WebKitMutationObserver","isNode","isWorker","Uint8ClampedArray","importScripts","MessageChannel","useNextTick","nextTick","useVertxTimer","useSetTimeout","useMutationObserver","iterations","observer","createTextNode","observe","characterData","useMessageChannel","channel","port1","onmessage","port2","postMessage","globalSetTimeout","attemptVertx","vertx","runOnLoop","runOnContext","onFulfillment","onRejection","child","noop","PROMISE_ID","makePromise","_state","invokeCallback","_result","subscribe","resolve$1","Constructor","random","substring","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","c","resolve$$1","_then","didError","_settledAt","Promise$1","_willSettleAt","enumerator","all","race","_","reject$1","needsResolver","needsNew","finally","local","P","promiseToString","cast","_setScheduler","_setAsap","_asap","factory","baseIsTypedArray","baseUnary","nodeIsTypedArray","uid","maskSrcKey","IE_PROTO","f","h","k","performance","l","unstable_now","p","q","t","u","w","b","clearTimeout","unstable_shouldYield","unstable_forceFrameRate","y","z","cancelAnimationFrame","requestAnimationFrame","A","B","C","D","E","floor","F","G","H","d","I","J","K","m","v","r","sortIndex","L","M","N","O","Q","R","S","T","startTime","expirationTime","U","V","priorityLevel","W","unstable_IdlePriority","unstable_ImmediatePriority","unstable_LowPriority","unstable_NormalPriority","unstable_Profiling","unstable_UserBlockingPriority","unstable_cancelCallback","unstable_continueExecution","unstable_getCurrentPriorityLevel","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_requestPaint","unstable_runWithPriority","unstable_scheduleCallback","delay","unstable_wrapCallback","iteratee","identity","overRest","freeSelf","constant","HBFetcher","fetchUrl","fetchNonce","actionPrefix","actionPrefixPro","contentType","processData","nonce","ajax","fail","_typeof","success","checkStatus","caching","saveSettings","saveFastCGISettings","clearCache","clearCacheForPost","postId","redisSaveSettings","host","port","password","db","redisObjectCache","clearCacheBatch","sites","switchCacheMethod","cloudflare","connect","email","token","zone","minification","toggleCDN","toggleLog","toggleView","hide","startCheck","checkStep","finishCheck","cancelScan","saveCriticalCss","updateAssetPath","saveNetworkSettings","updateExcludeList","clearCriticalCssFiles","createCSSForPost","reCreateCSSForPost","revertCSSForPost","getCriticalStatusForSinglePost","getCriticalStatusForQueue","toggleDelayJs","toggleCriticalCss","resetExclusions","savePerformanceTestSettings","advanced","deleteSelectedData","clearOrphanedBatch","rows","form_data","importSettings","exportSettings","common","dismissNotice","SubAction","clearLogs","endpoint","callWithParams","clearCaches","modules","notifications","resendConfirmationEmail","sendConfirmationEmail","disable","update","getAvatar","getUsers","exclude","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","j","splice","getter","__esModule","definition","o","enumerable","prop","nmd","paths","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"ignoreList":[],"sourceRoot":""}
| ver. 1.4 |
Github
|
.
| PHP 8.2.30 | Generation time: 0.1 |
proxy
|
phpinfo
|
Settings