ב הוא חיבור של הרב יהושע בועז שתוכנו מראי מקומות למקורותشسdggרות הל555ה התafhgfh
במסgרות ה gh//شی הוא חיבור של הרב יהושע בועז שתוכנו מראי מקומות למקורותהתנדaghhhhו12ין יעל, המעציfghfghfע
/
www-data
/
sites
/
naresh-newwordpress
/
wp-content
/
plugins
/
hummingbird-performance
/
admin
/
assets
/
js
/
Upload FileeE
HOME
{"version":3,"file":"js/wphb-react-caching.min.js","mappings":"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","sources":["webpack://wp-hummingbird/webpack/runtime/chunk loaded","webpack://wp-hummingbird/./node_modules/whatwg-fetch/fetch.js","webpack://wp-hummingbird/./_src/react/api.js","webpack://wp-hummingbird/./_src/react/context.jsx","webpack://wp-hummingbird/./_src/react/components/sui-box/action.jsx","webpack://wp-hummingbird/./_src/react/components/border-frame/index.jsx","webpack://wp-hummingbird/./_src/react/components/sui-icon/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-button/index.jsx","webpack://wp-hummingbird/./_src/react/components/sui-notice/index.jsx","webpack://wp-hummingbird/./_src/react/components/sui-tag/index.jsx","webpack://wp-hummingbird/./_src/react/components/sui-tooltip/index.jsx","webpack://wp-hummingbird/./_src/react/views/caching/browser/status.jsx","webpack://wp-hummingbird/./_src/react/components/steps-bar/index.jsx","webpack://wp-hummingbird/./_src/react/components/sui-tabs/index.jsx","webpack://wp-hummingbird/./_src/react/components/sui-select/index.jsx","webpack://wp-hummingbird/./_src/react/components/steps-content/index.jsx","webpack://wp-hummingbird/./_src/react/components/support-link/index.jsx","webpack://wp-hummingbird/./_src/react/components/sui-code-snippet/index.jsx","webpack://wp-hummingbird/./_src/react/components/ordered-list/index.jsx","webpack://wp-hummingbird/./_src/react/views/caching/browser/server-instructions.jsx","webpack://wp-hummingbird/./_src/react/components/sui-button-loading/index.jsx","webpack://wp-hummingbird/./_src/react/views/caching/browser/wizard.jsx","webpack://wp-hummingbird/./_src/react/modules/caching/browser.jsx","webpack://wp-hummingbird/./node_modules/@wordpress/dom-ready/build-module/index.js","webpack://wp-hummingbird/./_src/js/utils/helpers.js","webpack://wp-hummingbird/./node_modules/classnames/index.js","webpack://wp-hummingbird/./node_modules/object-assign/index.js","webpack://wp-hummingbird/./node_modules/prop-types/factoryWithThrowingShims.js","webpack://wp-hummingbird/./node_modules/prop-types/index.js","webpack://wp-hummingbird/./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://wp-hummingbird/./node_modules/scheduler/cjs/scheduler.production.min.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/hasOwnProperty shorthand","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};","var global =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof self !== 'undefined' && self) ||\n (typeof global !== 'undefined' && global)\n\nvar support = {\n searchParams: 'URLSearchParams' in global,\n iterable: 'Symbol' in global && 'iterator' in Symbol,\n blob:\n 'FileReader' in global &&\n 'Blob' in global &&\n (function() {\n try {\n new Blob()\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in global,\n arrayBuffer: 'ArrayBuffer' in global\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 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.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 reader.readAsText(blob)\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 this.bodyUsed = this.bodyUsed\n this._bodyInit = body\n if (!body) {\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 this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n var isConsumed = consumed(this)\n if (isConsumed) {\n return isConsumed\n }\n 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 {\n return this.blob().then(readBlobAsArrayBuffer)\n }\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 = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\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\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 headers.append(key, value)\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 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: 0, statusText: ''})\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 = global.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 status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\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 failed'))\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 === '' && global.location.href ? global.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 request.headers.get('Content-Type') &&\n request.headers.get('Content-Type').indexOf('application/octet-stream') !== -1\n ) {\n xhr.responseType = 'arraybuffer'\n }\n }\n\n if (init && typeof init.headers === 'object' && !(init.headers instanceof Headers)) {\n Object.getOwnPropertyNames(init.headers).forEach(function(name) {\n xhr.setRequestHeader(name, normalizeValue(init.headers[name]))\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 (!global.fetch) {\n global.fetch = fetch\n global.Headers = Headers\n global.Request = Request\n global.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';\n\nexport const UserContext = React.createContext();\n","/**\n * External dependencies\n */\nimport React from 'react';\n\n/**\n * SUI actions component.\n * Actions can go either to the sui-box-header or sui-box-footer of Box component.\n */\nexport default class Action extends React.Component {\n\trender() {\n\t\tconst classes = 'sui-actions-' + this.props.type;\n\t\treturn <div className={ classes }>{ this.props.content }</div>;\n\t}\n}\n","/**\n * External dependencies\n */\nimport React from 'react';\nimport classNames from 'classnames';\n\n/**\n * Internal dependencies\n */\nimport './style.scss';\n\n/**\n * Functional BorderFrame component.\n *\n * @param {Object} props Component props.\n * @param {Object} props.elements\n * @param {Object} props.header\n * @param {Array} props.extraClasses Extra classes.\n *\n * @return {*} List component.\n *\n * @class\n */\nexport default function BorderFrame( { elements, header, extraClasses } ) {\n\tconst items = Object.values( elements ).map( ( element, id ) => {\n\t\treturn (\n\t\t\t<div className=\"table-row\" key={ id }>\n\t\t\t\t<div className=\"wphb-caching-summary-item-type\">\n\t\t\t\t\t{ element.label }\n\t\t\t\t</div>\n\t\t\t\t{ ! window.lodash.includes( extraClasses, 'two-columns' ) && (\n\t\t\t\t\t<div className=\"wphb-caching-summary-item-expiry\">\n\t\t\t\t\t\t{ element.expiry }\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t\t<div>{ element.details }</div>\n\t\t\t</div>\n\t\t);\n\t} );\n\n\treturn (\n\t\t<div className={ classNames( 'wphb-border-frame', extraClasses ) }>\n\t\t\t{ header && (\n\t\t\t\t<div className=\"table-header\">\n\t\t\t\t\t<div className=\"wphb-caching-summary-heading-type\">\n\t\t\t\t\t\t{ header[ 0 ] }\n\t\t\t\t\t</div>\n\t\t\t\t\t{ ! window.lodash.includes( extraClasses, 'two-columns' ) && (\n\t\t\t\t\t\t<div className=\"wphb-caching-summary-heading-expiry\">\n\t\t\t\t\t\t\t{ header[ 2 ] }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t\t<div className=\"wphb-caching-summary-heading-status\">\n\t\t\t\t\t\t{ header[ 1 ] }\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ items }\n\t\t</div>\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';\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\t renderContent() {\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\t\t\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} else {\n\t\t\treturn (\n\t\t\t\t<div className={ classNames( 'sui-box', this.props.boxClass ) }>\n\t\t\t\t\t{ boxRender }\n\t\t\t\t</div>\n\t\t\t);\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';\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';\nimport classNames from 'classnames';\n\n/**\n * Internal dependencies\n */\nimport Icon from '../sui-icon';\n\n/**\n * Notice functional component.\n *\n * @param {Object} props Component props.\n * @param {string} props.message Notice message.\n * @param {Array} props.classes Array of extra classes to use.\n * @param {Object} props.content CTA content.\n * @return {JSX.Element} Notice component.\n * @class\n */\nexport default function Notice( { message, classes, content } ) {\n\tconst combinedClasses = classNames( 'sui-notice', classes );\n\n\treturn (\n\t\t<div className={ combinedClasses }>\n\t\t\t<div className=\"sui-notice-content\">\n\t\t\t\t<div className=\"sui-notice-message\">\n\t\t\t\t\t<Icon classes=\"sui-notice-icon sui-icon-info sui-md\" />\n\t\t\t\t\t{ message && <p>{ message }</p> }\n\t\t\t\t\t{ content && <p>{ content }</p> }\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\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';\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 { __, sprintf } = wp.i18n;\n\n/**\n * Internal dependencies\n */\nimport Action from '../../../components/sui-box/action';\nimport BorderFrame from '../../../components/border-frame';\nimport Box from '../../../components/sui-box';\nimport Button from '../../../components/sui-button';\nimport Notice from '../../../components/sui-notice';\nimport Tag from '../../../components/sui-tag';\nimport Tooltip from '../../../components/sui-tooltip';\n\n/**\n * Status component.\n *\n * @since 2.7.2\n */\nclass Status extends React.Component {\n\t/**\n\t * Generate the status tag for browser caching, based on the number of active\n\t * elements (JavaScript, CSS, Media, Images).\n\t *\n\t * @param {Object} status Browser caching status object.\n\t * @param {boolean} successTag On success show a tick tag.\n\t * @return {*} Browser caching status.\n\t */\n\tgetStatus( status, successTag = false ) {\n\t\tlet statusTag;\n\n\t\tif ( successTag ) {\n\t\t\tstatusTag = <Tag />;\n\t\t}\n\n\t\tconst failedItems = this.getFailedItems( status );\n\n\t\tif ( 0 < failedItems ) {\n\t\t\tstatusTag = <Tag value={ failedItems } type=\"warning\" />;\n\t\t}\n\n\t\treturn statusTag;\n\t}\n\n\t/**\n\t * Get an array of failed items.\n\t *\n\t * @param {Object} items Browser caching statues.\n\t * @return {number} Number of failed items.\n\t */\n\tgetFailedItems( items ) {\n\t\tconst failed = Object.entries( items ).filter( ( item ) => {\n\t\t\treturn (\n\t\t\t\t! item[ 1 ] ||\n\t\t\t\tthis.props.data.recommended[ item[ 0 ].toLowerCase() ].value >\n\t\t\t\t\titem[ 1 ]\n\t\t\t);\n\t\t} );\n\n\t\tlet failedItems = failed.length;\n\t\tif ( 0 < failedItems && this.props.cloudflare.isSetup ) {\n\t\t\tfailedItems++;\n\t\t}\n\n\t\treturn failedItems;\n\t}\n\n\t/**\n\t * Check problems that might be related to bad configuration.\n\t *\n\t * @return {*} Notice.\n\t */\n\tcheckExternalProblems() {\n\t\tif ( this.props.loading ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (\n\t\t\tthis.props.data.htaccessWritable &&\n\t\t\t! this.props.data.htaccessWritten\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst failed = Object.values( this.props.status ).filter( ( item ) => {\n\t\t\treturn ! item || 'privacy' === item;\n\t\t} );\n\n\t\t// There must be another plugin/server config that is setting its own browser caching stuff.\n\t\tif ( 4 !== Object.keys( this.props.status ).length || 0 < failed ) {\n\t\t\tconst message = (\n\t\t\t\t<React.Fragment>\n\t\t\t\t\t<p>\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'Browser Caching is not working properly:',\n\t\t\t\t\t\t\t'wphb'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</p>\n\t\t\t\t\t<p>\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'Your server may not have the \"expires\" module enabled (mod_expires for Apache, ngx_http_headers_module for NGINX). Another plugin may be interfering with the configuration. If re-checking and restarting does not resolve, please check with your host or',\n\t\t\t\t\t\t\t'wphb'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t \n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ttext={ __( 'open a support ticket.', 'wphb' ) }\n\t\t\t\t\t\t\turl={ this.props.link.support.forum }\n\t\t\t\t\t\t\ttarget=\"blank\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</p>\n\t\t\t\t</React.Fragment>\n\t\t\t);\n\n\t\t\treturn <Notice content={ message } classes=\"sui-notice-error\" />;\n\t\t}\n\t}\n\n\t/**\n\t * Show Cloudflare notice.\n\t */\n\tshowCloudflareNotice() {\n\t\tif ( this.props.loading ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( this.props.cloudflare.isSetup ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( 'dismiss' === this.props.cloudflare.notice ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst notice = this.props.cloudflare.isConnected\n\t\t\t? __(\n\t\t\t\t'We’ve detected you’re using Cloudflare! Connect your account to control your settings via Hummingbird.',\n\t\t\t\t'wphb'\n\t\t\t)\n\t\t\t: __(\n\t\t\t\t'Using CloudFlare? Connect your account to control your settings via Hummingbird. CloudFlare is a Content Delivery Network (CDN) that sends traffic through its global network to automatically optimize the delivery of your site so your visitors can browse your site at top speeds. There is a free plan and we recommend using it.',\n\t\t\t\t'wphb'\n\t\t\t);\n\n\t\tconst connectButton = (\n\t\t\t<Button\n\t\t\t\ttext={ __( 'Enable integration', 'wphb' ) }\n\t\t\t\tclasses={ [ 'sui-button', 'sui-button-blue' ] }\n\t\t\t\tonClick={ this.props.onCloudflareClick }\n\t\t\t/>\n\t\t);\n\n\t\treturn (\n\t\t\t<div className=\"sui-box-settings-row sui-upsell-row cf-dash-notice sui-no-padding-top\">\n\t\t\t\t{ ! this.props.data.isWhiteLabeled && (\n\t\t\t\t\t<img\n\t\t\t\t\t\tclassName=\"sui-image sui-upsell-image\"\n\t\t\t\t\t\talt={ __(\n\t\t\t\t\t\t\t'Connect your account to Cloudflare',\n\t\t\t\t\t\t\t'wphb'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tsrc={\n\t\t\t\t\t\t\tthis.props.link.wphbDirUrl +\n\t\t\t\t\t\t\t'admin/assets/image/graphic-hb-cf-sell.png'\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsrcSet={\n\t\t\t\t\t\t\tthis.props.link.wphbDirUrl +\n\t\t\t\t\t\t\t'admin/assets/image/graphic-hb-cf-sell.png 1x, ' +\n\t\t\t\t\t\t\tthis.props.link.wphbDirUrl +\n\t\t\t\t\t\t\t'admin/assets/image/graphic-hb-cf-sell@2x.png 2x'\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ this.props.data.isWhiteLabeled ? (\n\t\t\t\t\t<Notice\n\t\t\t\t\t\tmessage={ notice }\n\t\t\t\t\t\tcontent={ connectButton }\n\t\t\t\t\t\tclasses=\"sui-notice-grey\"\n\t\t\t\t\t/>\n\t\t\t\t) : (\n\t\t\t\t\t<div className=\"sui-upsell-notice\">\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t{ notice }\n\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t{ connectButton }\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\ttext={ __( 'Learn More', 'wphb' ) }\n\t\t\t\t\t\t\t\t\turl=\"https://wpmudev.com/docs/wpmu-dev-plugins/hummingbird/#browser-cache\"\n\t\t\t\t\t\t\t\t\ttarget=\"blank\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</p>\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 content for the component.\n\t *\n\t * @return {Object} Module content.\n\t */\n\tgetContent() {\n\t\tconst failedItems = this.getFailedItems( this.props.status );\n\n\t\tlet classes = 'sui-notice-warning';\n\n\t\t// Get the tooltips and icons.\n\t\tlet text = sprintf(\n\t\t\t/* translators: %d - number of failed items */\n\t\t\t__(\n\t\t\t\t'%d of your cache types don’t meet the recommended expiry period of 1 year. Configure browser caching below.',\n\t\t\t\t'wphb'\n\t\t\t),\n\t\t\tfailedItems\n\t\t);\n\n\t\tif ( 0 === failedItems ) {\n\t\t\tclasses = 'sui-notice-success';\n\t\t\ttext = __(\n\t\t\t\t'All of your cache types meet the recommended expiry period of 1 year. Great work!',\n\t\t\t\t'wphb'\n\t\t\t);\n\n\t\t\t// Browser caching enabled on host site.\n\t\t\tif ( false === this.props.data.htaccessWritten ) {\n\t\t\t\ttext = __(\n\t\t\t\t\t'All of your cache types meet the recommended expiry period of 1 year. Your hosting has automatically pre-configured browser caching for you and no further actions are required.',\n\t\t\t\t\t'wphb'\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\t// Build the items array.\n\t\tconst items = Object.entries( this.props.status ).map( ( item ) => {\n\t\t\tconst type = item[ 0 ].toLowerCase();\n\t\t\tlet iconLabel = type;\n\t\t\tlet tag = 'warning';\n\n\t\t\tif ( 'javascript' === iconLabel ) {\n\t\t\t\ticonLabel = 'js';\n\t\t\t} else if ( 'images' === iconLabel ) {\n\t\t\t\ticonLabel = 'img';\n\t\t\t}\n\n\t\t\tif ( item[ 1 ] >= this.props.data.recommended[ type ].value ) {\n\t\t\t\ttag = 'success';\n\t\t\t}\n\n\t\t\tconst recommendedTooltipText = sprintf(\n\t\t\t\t/* translators: %s - recommended value label */\n\t\t\t\t__(\n\t\t\t\t\t'The recommended value for this file type is at least %s.',\n\t\t\t\t\t'wphb'\n\t\t\t\t),\n\t\t\t\tthis.props.data.recommended[ type ].label\n\t\t\t);\n\n\t\t\tconst labelData = (\n\t\t\t\t<React.Fragment>\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName={ classNames(\n\t\t\t\t\t\t\t'wphb-filename-extension',\n\t\t\t\t\t\t\t'wphb-filename-extension-' + type\n\t\t\t\t\t\t) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ iconLabel }\n\t\t\t\t\t</span>\n\t\t\t\t\t<span className=\"wphb-filename-extension-label\">\n\t\t\t\t\t\t{ item[ 0 ] }\n\t\t\t\t\t</span>\n\t\t\t\t</React.Fragment>\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tlabel: labelData,\n\t\t\t\texpiry: (\n\t\t\t\t\t<Tooltip text={ recommendedTooltipText } classes=\"sui-tooltip-constrained\">\n\t\t\t\t\t\t<Tag value={ this.props.data.recommended[ type ].label } type=\"disabled\" />\n\t\t\t\t\t</Tooltip>\n\t\t\t\t),\n\t\t\t\tdetails: (\n\t\t\t\t\t<Tag value={ this.props.human[ item[ 0 ] ] } type={ tag } />\n\t\t\t\t),\n\t\t\t};\n\t\t} );\n\n\t\tif ( this.props.cloudflare.isSetup ) {\n\t\t\tconst cfRow = {\n\t\t\t\tlabel: (\n\t\t\t\t\t<React.Fragment>\n\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\ttext={ this.props.data.cacheTypes.cloudflare }\n\t\t\t\t\t\t\tclasses={ classNames(\n\t\t\t\t\t\t\t\t'sui-tooltip-constrained',\n\t\t\t\t\t\t\t\t'wphb-filename-extension',\n\t\t\t\t\t\t\t\t'wphb-filename-extension-other'\n\t\t\t\t\t\t\t) }>oth</Tooltip>\n\t\t\t\t\t\t<span className=\"wphb-filename-extension-label\">\n\t\t\t\t\t\t\tCloudflare\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</React.Fragment>\n\t\t\t\t),\n\t\t\t\texpiry: items[ 0 ].expiry,\n\t\t\t\tdetails: items[ 0 ].details,\n\t\t\t};\n\n\t\t\twindow.lodash.assign( items, { 4: cfRow } );\n\t\t}\n\n\t\tconst boxClass =\n\t\t\t! this.props.cloudflare.isSetup &&\n\t\t\t'dismiss' !== this.props.cloudflare.notice\n\t\t\t\t? 'sui-box-body'\n\t\t\t\t: '';\n\n\t\treturn (\n\t\t\t<React.Fragment>\n\t\t\t\t<div className={ boxClass }>\n\t\t\t\t\t{ this.checkExternalProblems() }\n\n\t\t\t\t\t<p>\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'Store temporary data on your visitors devices so that they don’t have to download assets twice if they don’t have to. This results in a much faster second time round page load speed.',\n\t\t\t\t\t\t\t'wphb'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</p>\n\n\t\t\t\t\t<Notice message={ text } classes={ classes } />\n\n\t\t\t\t\t<BorderFrame\n\t\t\t\t\t\theader={ [\n\t\t\t\t\t\t\t__( 'File type', 'wphb' ),\n\t\t\t\t\t\t\t__( 'Current expiry', 'wphb' ),\n\t\t\t\t\t\t\t__( 'Recommended expiry', 'wphb' ),\n\t\t\t\t\t\t] }\n\t\t\t\t\t\telements={ items }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\n\t\t\t\t{ ! this.props.cloudflare.isAuthed &&\n\t\t\t\t\tthis.showCloudflareNotice() }\n\t\t\t</React.Fragment>\n\t\t);\n\t}\n\n\t/**\n\t * Footer actions for Cloudflare connected sites.\n\t *\n\t * @since 3.2.0\n\t *\n\t * @return {JSX.Element} Action buttons.\n\t */\n\tgetFooter() {\n\t\tif ( ! this.props.cloudflare.isAuthed && ! this.props.cloudflare.isSetup ) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn (\n\t\t\t<React.Fragment>\n\t\t\t\t<Button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tclasses={ [ 'sui-button' ] }\n\t\t\t\t\ttext={ __( 'Clear Cache', 'wphb' ) }\n\t\t\t\t\tonClick={ this.props.clearCache }\n\t\t\t\t/>\n\n\t\t\t\t<div className=\"sui-actions-right\">\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-power-on-off\"\n\t\t\t\t\t\ttext={ __( 'Disconnect', 'wphb' ) }\n\t\t\t\t\t\tonClick={ this.props.disconnectCloudflare }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</React.Fragment>\n\t\t);\n\t}\n\n\t/**\n\t * Render component.\n\t *\n\t * @return {*} Status component.\n\t */\n\trender() {\n\t\tconst browserCaching = this.getStatus( this.props.status );\n\n\t\tconst rightAction = (\n\t\t\t<React.Fragment>\n\t\t\t\t<Button\n\t\t\t\t\ttext={ __( 'Re-check status', 'wphb' ) }\n\t\t\t\t\tonClick={ this.props.onUpdate }\n\t\t\t\t\tclasses={ [ 'sui-button', 'sui-button-ghost' ] }\n\t\t\t\t\ticon=\"sui-icon-update\"\n\t\t\t\t/>\n\t\t\t\t<Button\n\t\t\t\t\ttext={ __( 'Configure', 'wphb' ) }\n\t\t\t\t\tonClick={ this.props.onShowWizard }\n\t\t\t\t\tclasses={ [ 'sui-button', 'sui-tooltip', 'sui-tooltip-constrained', 'sui-tooltip-top-right' ] }\n\t\t\t\t\tdata-tooltip={ __(\n\t\t\t\t\t\t'Adjust your server type again and select the relevant rules.',\n\t\t\t\t\t\t'wphb'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</React.Fragment>\n\t\t);\n\n\t\tconst headerActions = (\n\t\t\t<React.Fragment>\n\t\t\t\t{ browserCaching && (\n\t\t\t\t\t<Action type=\"left\" content={ browserCaching } />\n\t\t\t\t) }\n\t\t\t\t<Action type=\"right\" content={ rightAction } />\n\t\t\t</React.Fragment>\n\t\t);\n\n\t\tconst boxBodyClass =\n\t\t\t! this.props.cloudflare.isSetup &&\n\t\t\t'dismiss' !== this.props.cloudflare.notice\n\t\t\t\t? 'sui-upsell-items'\n\t\t\t\t: '';\n\n\t\treturn (\n\t\t\t<Box\n\t\t\t\tboxBodyClass={ [ boxBodyClass ] }\n\t\t\t\tloading={ this.props.loading }\n\t\t\t\ttitle={ __( 'Status', 'wphb' ) }\n\t\t\t\theaderActions={ headerActions }\n\t\t\t\tcontent={ this.getContent() }\n\t\t\t\tfooterActions={ this.getFooter() }\n\t\t\t/>\n\t\t);\n\t}\n}\n\nexport default Status;\n","/**\n * External dependencies\n */\nimport React from 'react';\n\n/**\n * WordPress dependencies\n */\nconst { __ } = wp.i18n;\n\n/**\n * Internal dependencies\n */\nimport Icon from '../sui-icon';\nimport './style.scss';\n\n/**\n * StepsBar component.\n *\n * @since 3.2.0\n *\n * @param {number} currentStep Current step.\n * @return {JSX.Element} Component.\n */\nexport default function StepsBar( { currentStep } ) {\n\tconst steps = [\n\t\t{ number: 1, title: __( 'Server Type', 'wphb' ) },\n\t\t{ number: 2, title: __( 'Set Expiry', 'wphb' ) },\n\t\t{ number: 3, title: __( 'Add Rules', 'wphb' ) },\n\t];\n\n\tconst completeTooltip = __( 'This stage is already completed.', 'wphb' );\n\n\tconst getStepClass = ( step ) => {\n\t\tif ( step > currentStep ) {\n\t\t\treturn 'wizard-bar-step';\n\t\t}\n\n\t\treturn step === currentStep ? 'wizard-bar-step current' : 'wizard-bar-step sui-tooltip done';\n\t};\n\n\tconst getStepNumber = ( step ) => {\n\t\treturn currentStep > step ? <Icon classes=\"sui-icon-check\" /> : step;\n\t};\n\n\treturn (\n\t\t<div className=\"sui-sidenav\">\n\t\t\t<span className=\"wizard-bar-subtitle\">\n\t\t\t\t{ __( 'Setup', 'wphb' ) }\n\t\t\t</span>\n\t\t\t<div className=\"wizard-bar-title\">\n\t\t\t\t<h4>{ __( 'Browser Caching', 'wphb' ) }</h4>\n\t\t\t</div>\n\n\t\t\t<div className=\"wizard-steps-container\">\n\t\t\t\t<svg className=\"svg-mobile\" focusable=\"false\" aria-hidden=\"true\">\n\t\t\t\t\t<line x1=\"0\" x2=\"50%\"\n\t\t\t\t\t\tstroke={ 1 !== currentStep ? '#1ABC9C' : '#E6E6E6' }\n\t\t\t\t\t/>\n\t\t\t\t\t<line x1=\"50%\" x2=\"100%\"\n\t\t\t\t\t\tstroke={ 3 === currentStep ? '#1ABC9C' : '#E6E6E6' }\n\t\t\t\t\t/>\n\t\t\t\t</svg>\n\t\t\t\t<ul>\n\t\t\t\t\t{ steps.map( ( step ) => (\n\t\t\t\t\t\t<React.Fragment key={ step.number }>\n\t\t\t\t\t\t\t<li\n\t\t\t\t\t\t\t\tclassName={ getStepClass( step.number ) }\n\t\t\t\t\t\t\t\tdata-tooltip={ completeTooltip }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<div className=\"wizard-bar-step-number\">\n\t\t\t\t\t\t\t\t\t{ getStepNumber( step.number ) }\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t{ step.title }\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t{ 3 !== step.number && (\n\t\t\t\t\t\t\t\t<svg className=\"svg-desktop\" focusable=\"false\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t<line y1=\"0\" y2=\"40px\"\n\t\t\t\t\t\t\t\t\t\tstroke={ step.number < currentStep ? '#1ABC9C' : '#E6E6E6' }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</React.Fragment>\n\t\t\t\t\t) ) }\n\t\t\t\t</ul>\n\t\t\t</div>\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 * External dependencies\n */\nimport React from 'react';\nimport classNames from 'classnames';\n\n/**\n * Select component.\n */\nexport default class Select 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\tcomponentDidMount() {\n\t\tthis.$el = jQuery( this.el );\n\t\tthis.$el.SUIselect2( { minimumResultsForSearch: -1 } );\n\t\tthis.$el.on( 'change', this.props.onChange );\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 selectOptions = this.props.items.map( ( item, id ) => {\n\t\t\treturn (\n\t\t\t\t<option value={ item[ 0 ] } key={ id }>\n\t\t\t\t\t{ item[ 1 ] }\n\t\t\t\t</option>\n\t\t\t);\n\t\t} );\n\n\t\tconst width = 'undefined' === typeof this.props.classes ? '250' : null;\n\n\t\treturn (\n\t\t\t<div\n\t\t\t\tclassName={ classNames( 'sui-form-field', {\n\t\t\t\t\t'sui-input-md': '250' === width,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t<label\n\t\t\t\t\thtmlFor={ this.props.selectId }\n\t\t\t\t\tid={ this.props.selectId + '-label' }\n\t\t\t\t\tclassName=\"sui-label\"\n\t\t\t\t>\n\t\t\t\t\t{ this.props.label }\n\t\t\t\t</label>\n\t\t\t\t<select\n\t\t\t\t\tonChange={ this.props.onChange }\n\t\t\t\t\tvalue={ this.props.selected }\n\t\t\t\t\tclassName={ classNames( 'sui-select', this.props.classes ) }\n\t\t\t\t\tdata-width={ width }\n\t\t\t\t\tname={ this.props.selectId }\n\t\t\t\t\tid={ this.props.selectId }\n\t\t\t\t\tmultiple={ this.props.multiple }\n\t\t\t\t\tdata-placeholder={ this.props.placeholder ?? '' }\n\t\t\t\t\taria-labelledby={ this.props.selectId + '-label' }\n\t\t\t\t\taria-describedby={\n\t\t\t\t\t\tthis.props.description\n\t\t\t\t\t\t\t? this.props.selectId + '-description'\n\t\t\t\t\t\t\t: ''\n\t\t\t\t\t}\n\t\t\t\t\tref={ ( el ) => ( this.el = el ) }\n\t\t\t\t>\n\t\t\t\t\t{ this.props.placeholder && <option /> }\n\t\t\t\t\t{ selectOptions }\n\t\t\t\t</select>\n\n\t\t\t\t{ this.props.description && (\n\t\t\t\t\t<span\n\t\t\t\t\t\tid={ this.props.selectId + '-description' }\n\t\t\t\t\t\tclassName=\"sui-description\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ this.props.description }\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t);\n\t}\n}\n\n/**\n * Default props.\n *\n * @param {string} selectId Select ID. Will be also used as class and htmlFor in the label.\n * @param {string} label Label text.\n * @param {Array} items List of items for the select.\n * @param {string|Array} selected Selected item.\n *\n * @type {{selectId: string, multiple: boolean, label: string, items: *[], selected: string}}\n */\nSelect.defaultProps = {\n\tselectId: '',\n\tlabel: '',\n\titems: [],\n\tselected: '',\n\tmultiple: false,\n};\n","/**\n * External dependencies\n */\nimport React from 'react';\n\n/**\n * WordPress dependencies\n */\nconst { __, sprintf } = wp.i18n;\n\n/**\n * Internal dependencies\n */\nimport './style.scss';\nimport Notice from '../sui-notice';\nimport Tabs from '../sui-tabs';\nimport Select from '../sui-select';\nimport Icon from '../sui-icon';\n\n/**\n * StepsContent component.\n *\n * @since 3.2.0\n */\nexport default class StepsContent 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\tconst servers = [ 'Apache', 'NGINX', 'IIS', 'Cloudflare', 'Open LiteSpeed' ];\n\t\t// Remove Cloudflare from list if not set up.\n\t\tif ( ! this.props.cloudflare.isAuthed && ! this.props.cloudflare.isAuthed.isSetup ) {\n\t\t\tservers.splice( 3, 1 );\n\t\t}\n\n\t\tthis.state = { servers };\n\t}\n\n\t/**\n\t * Get step description.\n\t *\n\t * @param {number} step Step.\n\t * @return {Object} Step details.\n\t */\n\tgetStep( step ) {\n\t\tconst steps = {\n\t\t\t1: {\n\t\t\t\ttitle: __( 'Choose Server Type', 'wphb' ),\n\t\t\t\tdescription: __(\n\t\t\t\t\t'Choose your server type. If you don’t know this, please contact your hosting provider.',\n\t\t\t\t\t'wphb'\n\t\t\t\t),\n\t\t\t},\n\t\t\t2: {\n\t\t\t\ttitle: __( 'Set Expiry Time', 'wphb' ),\n\t\t\t\tdescription: __(\n\t\t\t\t\t'Please choose your desired expiry time. Google recommends a minimum of 1 year as a good benchmark.',\n\t\t\t\t\t'wphb'\n\t\t\t\t),\n\t\t\t},\n\t\t\t3: {\n\t\t\t\ttitle: __( 'Add Rules', 'wphb' ),\n\t\t\t\tdescription:\n\t\t\t\t\t'apache' === this.props.server\n\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t'Hummingbird can automatically apply browser caching rules for Apache servers by writing to your .htaccess file.',\n\t\t\t\t\t\t\t'wphb'\n\t\t\t\t\t\t)\n\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t'Please follow the steps below to apply the rules yourself:',\n\t\t\t\t\t\t\t'wphb'\n\t\t\t\t\t\t),\n\t\t\t},\n\t\t};\n\n\t\treturn steps[ step ];\n\t}\n\n\t/**\n\t * Get content (step 1).\n\t *\n\t * @return {JSX.Element} Step 1 content.\n\t */\n\tgetStepOne() {\n\t\tconst liElements = this.state.servers.map( ( el, key ) => {\n\t\t\tlet server = el.toLowerCase();\n\t\t\tif ( 'open litespeed' === server ) {\n\t\t\t\tserver = 'litespeed';\n\t\t\t}\n\n\t\t\tconst serverID = 'server-' + server;\n\t\t\treturn (\n\t\t\t\t<li key={ key }>\n\t\t\t\t\t<label htmlFor={ serverID } className=\"sui-box-selector\">\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\tid={ serverID }\n\t\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\t\tchecked={ server === this.props.server }\n\t\t\t\t\t\t\tonChange={ () => this.props.onServerChange( server ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<span>{ el }</span>\n\t\t\t\t\t</label>\n\t\t\t\t</li>\n\t\t\t);\n\t\t} );\n\n\t\tconst notice = sprintf( /* translators: server type */\n\t\t\t__(\n\t\t\t\t\"We've automatically detected your server type is %s. If this is incorrect, manually select your server type to generate the relevant rules and instructions.\",\n\t\t\t\t'wphb'\n\t\t\t),\n\t\t\t'nginx' === this.props.data.detectedServer ? 'NGINX' : 'Apache / LiteSpeed'\n\t\t);\n\n\t\treturn (\n\t\t\t<React.Fragment>\n\t\t\t\t<div className=\"sui-box-selectors sui-box-selectors-col-3\">\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t{ liElements }\n\t\t\t\t\t</ul>\n\t\t\t\t</div>\n\t\t\t\t{ ( 'apache' === this.props.server || 'litespeed' === this.props.server || 'nginx' === this.props.server ) &&\n\t\t\t\t\t<Notice message={ notice } />\n\t\t\t\t}\n\t\t\t</React.Fragment>\n\t\t);\n\t}\n\n\t/**\n\t * Get content (step 2).\n\t *\n\t * @return {JSX.Element} Step 2 content.\n\t */\n\tgetStepTwo() {\n\t\tconst tabs = [\n\t\t\t{\n\t\t\t\ttitle: __( 'All file types', 'wphb' ),\n\t\t\t\tid: 'expiry-all',\n\t\t\t\tchecked: true,\n\t\t\t},\n\t\t\t{\n\t\t\t\ttitle: __( 'Individual file types', 'wphb' ),\n\t\t\t\tid: 'expiry-single',\n\t\t\t},\n\t\t];\n\n\t\tlet frequencies;\n\t\tif ( 'cloudflare' === this.props.server ) {\n\t\t\tfrequencies = Object.entries( this.props.data.frequenciesCF );\n\t\t} else {\n\t\t\tfrequencies = Object.entries( this.props.data.frequencies );\n\t\t}\n\n\t\tconst singleSelect = (\n\t\t\t<Select\n\t\t\t\tselectId=\"set-expiry-all\"\n\t\t\t\tlabel={ __( 'JavaScript, CSS, Media, Images', 'wphb' ) }\n\t\t\t\titems={ frequencies }\n\t\t\t\tselected={ 'cloudflare' === this.props.server ? this.props.status.CSS.toString() : this.props.expires.CSS }\n\t\t\t\tonChange={ this.props.onExpiryChange }\n\t\t\t/>\n\t\t);\n\n\t\tif ( 'cloudflare' === this.props.server ) {\n\t\t\treturn (\n\t\t\t\t<div className=\"sui-border-frame\">\n\t\t\t\t\t{ singleSelect }\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\tconst multiSelect = Object.entries( this.props.human ).map( ( item, index ) => {\n\t\t\treturn (\n\t\t\t\t<Select\n\t\t\t\t\tselectId={ 'set-expiry-' + item[ 0 ].toLowerCase() }\n\t\t\t\t\tlabel={ item[ 0 ] }\n\t\t\t\t\titems={ frequencies }\n\t\t\t\t\tkey={ index }\n\t\t\t\t\tselected={ this.props.status[ item[ 0 ] ].toString() }\n\t\t\t\t\tonChange={ this.props.onExpiryChange }\n\t\t\t\t/>\n\t\t\t);\n\t\t} );\n\n\t\tconst content = [\n\t\t\t{\n\t\t\t\tid: 'expiry-all',\n\t\t\t\tcontent: singleSelect,\n\t\t\t\tactive: true,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 'expiry-single',\n\t\t\t\tcontent: multiSelect,\n\t\t\t},\n\t\t];\n\n\t\treturn (\n\t\t\t<Tabs menu={tabs} tabs={content} className=\"sui-side-tabs wphb-file-types-tabs\"/>\n\t\t);\n\t}\n\n\t/**\n\t * Render component.\n\t *\n\t * @return {JSX.Element} Component.\n\t */\n\trender() {\n\t\tconst stepIndicatorText = sprintf(\n\t\t\t/* translators: %d - current step */\n\t\t\t__( 'Step %d/3', 'wphb' ),\n\t\t\tthis.props.currentStep\n\t\t);\n\n\t\treturn (\n\t\t\t<div className=\"wizard-steps-content-wrapper\">\n\t\t\t\t<div className=\"wizard-steps-content\">\n\t\t\t\t\t<span className=\"step-indicator\">\n\t\t\t\t\t\t{ stepIndicatorText }\n\t\t\t\t\t</span>\n\t\t\t\t\t<h2>{ this.getStep( this.props.currentStep ).title }</h2>\n\t\t\t\t\t<p className=\"sui-description\">\n\t\t\t\t\t\t{ this.getStep( this.props.currentStep ).description }\n\t\t\t\t\t</p>\n\n\t\t\t\t\t{ this.props.applyingRules &&\n\t\t\t\t\t\t<p className=\"sui-description wphb-loading-text\">\n\t\t\t\t\t\t\t<Icon classes=\"sui-icon-loader sui-loading sui-md\" />\n\t\t\t\t\t\t\t{ __( 'Applying rules', 'wphb' ) }\n\t\t\t\t\t\t</p>\n\t\t\t\t\t}\n\n\t\t\t\t\t{ 1 === this.props.currentStep && ! this.props.applyingRules && this.getStepOne() }\n\t\t\t\t\t{ 2 === this.props.currentStep && ! this.props.applyingRules && this.getStepTwo() }\n\t\t\t\t\t{ 3 === this.props.currentStep && ! this.props.applyingRules && this.props.snippet }\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n}\n\n","/**\n * External dependencies\n */\nimport React from 'react';\nimport Button from '../sui-button';\n\n/**\n * WordPress dependencies\n */\nconst { __ } = wp.i18n;\n\n/**\n * SupportLink functional component.\n *\n * @param {Object} props Component props.\n * @param {boolean} props.isMember Membership status.\n * @param {string} props.chatLink Link to start live chat.\n * @param {string} props.forumLink Link to support forums.\n * @param {boolean} props.noFormatting Wrap content inside <p> tag.\n * @return {JSX.Element} Button component.\n * @class\n */\nexport default function SupportLink( { isMember, chatLink, forumLink, noFormatting = false } ) {\n\tconst content = <React.Fragment>\n\t\t{ __( 'Still having trouble?', 'wphb' ) } \n\t\t<Button\n\t\t\turl={ isMember ? chatLink : forumLink }\n\t\t\ttarget=\"blank\"\n\t\t\ttext={ isMember ? __( 'Start a live chat.', 'wphb' ) : __( 'Open a support ticket.', 'wphb' ) }\n\t\t/>\n\t</React.Fragment>;\n\n\tif ( noFormatting ) {\n\t\treturn content;\n\t}\n\n\treturn (\n\t\t<p className=\"sui-description\">\n\t\t\t{ content }\n\t\t</p>\n\t);\n}\n","/* global SUI */\n\n/**\n * External dependencies\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n * CodeSnippet component.\n */\nexport default class CodeSnippet 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\tcomponentDidMount() {\n\t\tthis.initSUI();\n\t}\n\n\tcomponentDidUpdate() {\n\t\tthis.initSUI();\n\t}\n\n\tinitSUI() {\n\t\tconst codeSnippet = document.querySelector( 'pre.sui-code-snippet' );\n\t\tif ( codeSnippet ) {\n\t\t\tSUI.suiCodeSnippet( codeSnippet );\n\t\t}\n\t}\n\n\t/**\n\t * Render component.\n\t *\n\t * @return {JSX.Element} CodeSnippet component.\n\t */\n\trender() {\n\t\treturn (\n\t\t\t<pre className=\"sui-code-snippet\">\n\t\t\t\t{ this.props.code }\n\t\t\t</pre>\n\t\t);\n\t}\n}\n\nCodeSnippet.propTypes = {\n\tcode: PropTypes.string,\n};\n","/**\n * External dependencies\n */\nimport React from 'react';\n\n/**\n * Internal dependencies\n */\nimport './style.scss';\n\n/**\n * OrderedList component.\n *\n * @since 3.2.0\n *\n * @param {Object} props Component props.\n * @param {Array} props.list Array of list entries.\n * @return {JSX.Element} Component.\n */\nexport default function OrderedList( { list } ) {\n\tconst items = list.map( ( element, id ) => {\n\t\treturn (\n\t\t\t<li key={ id }>\n\t\t\t\t{ element }\n\t\t\t</li>\n\t\t);\n\t} );\n\n\treturn (\n\t\t<ol className=\"wphb-ordered-list\">\n\t\t\t{ items }\n\t\t</ol>\n\t);\n}\n","/**\n * External dependencies\n */\nimport React from 'react';\n\n/**\n * WordPress dependencies\n */\nconst { __ } = wp.i18n;\n\n/**\n * Internal dependencies\n */\nimport Button from '../../../components/sui-button';\nimport { UserContext } from '../../../context';\nimport SupportLink from '../../../components/support-link';\nimport CodeSnippet from '../../../components/sui-code-snippet';\nimport OrderedList from '../../../components/ordered-list';\n\n/**\n * Server instructions component.\n *\n * @since 3.2.0\n */\nexport default class ServerInstructions extends React.Component {\n\t/**\n\t * Render Apache tabs.\n\t *\n\t * @param {boolean} litespeed Is this a litespeed server.\n\t *\n\t * @return {JSX.Element} Tab content.\n\t */\n\trenderApacheTab( litespeed = false ) {\n\t\tconst liteSpeedList = [\n\t\t\t<React.Fragment key=\"1\">\n\t\t\t\t{ __( 'Manually configure the Cache-Control header for browser caching in your WebAdmin Console following the Open LiteSpeed guide', 'wphb' ) } \n\t\t\t\t<Button url=\"https://openlitespeed.org/kb/how-to-set-up-custom-headers/\" target=\"_blank\" text={ __( 'here', 'wphb' ) } />.\n\t\t\t</React.Fragment>,\n\t\t\t__( 'Set Expires by Type to 31536000 (1 year) to meet Google’s recommended benchmark.', 'wphb' )\n\t\t];\n\n\t\tconst listItems = [\n\t\t\t<React.Fragment key=\"1\">\n\t\t\t\t{ __( 'Copy the generated code into your .htaccess file & save your changes.', 'wphb' ) }\n\t\t\t\t<CodeSnippet code={ this.props.snippets.apache } />\n\t\t\t</React.Fragment>,\n\t\t\tlitespeed ? __( 'Restart/reload LiteSpeed', 'wphb' ) : __( 'Restart/reload Apache', 'wphb' ),\n\t\t];\n\n\t\treturn (\n\t\t\t<React.Fragment>\n\t\t\t\t{ litespeed &&\n\t\t\t\t\t<React.Fragment>\n\t\t\t\t\t\t<OrderedList list={ liteSpeedList } />\n\t\t\t\t\t\t<p className=\"sui-description sui-margin-top\">\n\t\t\t\t\t\t\t{ __( 'Alternatively, browser cache can be configured via an .htaccess file. Follow the steps below to add browser caching to your LiteSpeed server:', 'wphb' ) }\n\t\t\t\t\t\t</p>\n\t\t\t\t\t</React.Fragment>\n\t\t\t\t}\n\n\t\t\t\t<OrderedList list={ listItems } />\n\n\t\t\t\t<p className=\"sui-description sui-margin-top\">\n\t\t\t\t\t<strong>{ __( 'Troubleshooting', 'wphb' ) }</strong>\n\t\t\t\t</p>\n\n\t\t\t\t<p className=\"sui-description\">\n\t\t\t\t\t{ __( \"If adding the rules to your .htaccess doesn't work and you have access to vhosts.conf or httpd.conf try to find the line that starts with <Directory> - add the code above into that section and save the file.\", 'wphb' ) }\n\t\t\t\t</p>\n\n\t\t\t\t<p className=\"sui-description\">\n\t\t\t\t\t{ __( \"If you don't know where those files are, or you aren't able to reload the web server, you would need to consult with your hosting provider or a system administrator who has access to change the configuration of your server\", 'wphb' ) }\n\t\t\t\t</p>\n\n\t\t\t\t<SupportLink isMember={ this.context.isMember } forumLink={ this.context.links.support.forum } chatLink={ this.context.links.support.chat } />\n\t\t\t</React.Fragment>\n\t\t);\n\t}\n\n\t/**\n\t * Render Nginx tab.\n\t *\n\t * @return {JSX.Element} Tab content.\n\t */\n\trenderNginxTab() {\n\t\tconst items = [\n\t\t\t<React.Fragment key=\"1\">\n\t\t\t\t{ __( 'Copy the generated code into your nginx.conf usually located at /etc/nginx/nginx.conf or /usr/local/nginx/conf/nginx.conf', 'wphb' ) }\n\t\t\t\t<CodeSnippet code={ this.props.snippets.nginx } />\n\t\t\t</React.Fragment>,\n\t\t\t__( 'Add the code above to the http or inside server section in the file.', 'wphb' ),\n\t\t\t__( 'Reload/restart NGINX.', 'wphb' ),\n\t\t];\n\n\t\treturn (\n\t\t\t<React.Fragment>\n\t\t\t\t<OrderedList list={ items } />\n\n\t\t\t\t<p className=\"sui-description sui-margin-top\">\n\t\t\t\t\t<strong>{ __( 'Troubleshooting', 'wphb' ) }</strong>\n\t\t\t\t</p>\n\n\t\t\t\t<p className=\"sui-description\">\n\t\t\t\t\t{ __( 'If you do not have access to your NGINX config files you will need to contact your hosting provider to make these changes.', 'wphb' ) }\n\t\t\t\t</p>\n\n\t\t\t\t<SupportLink isMember={ this.context.isMember } forumLink={ this.context.links.support.forum } chatLink={ this.context.links.support.chat } />\n\t\t\t</React.Fragment>\n\t\t);\n\t}\n\n\t/**\n\t * Render IIS tab.\n\t *\n\t * @return {JSX.Element} Tab content.\n\t */\n\trenderIisTab() {\n\t\treturn (\n\t\t\t<React.Fragment>\n\t\t\t\t<p className=\"sui-description\">\n\t\t\t\t\t{ __( 'For IIS 7 servers and above,', 'wphb' ) }{ ' ' }\n\t\t\t\t\t<Button\n\t\t\t\t\t\turl=\"https://technet.microsoft.com/en-us/library/cc732475(v=ws.10).aspx\"\n\t\t\t\t\t\ttarget=\"blank\"\n\t\t\t\t\t\ttext={ __( 'visit Microsoft TechNet', 'wphb' ) }\n\t\t\t\t\t/>\n\t\t\t\t</p>\n\t\t\t</React.Fragment>\n\t\t);\n\t}\n\n\t/**\n\t * Render component.\n\t *\n\t * @return {JSX.Element} ServerInstructions component.\n\t */\n\trender() {\n\t\t// TODO: handle cloudflare.\n\t\treturn (\n\t\t\t<div className=\"wphb-server-instructions\">\n\t\t\t\t{ 'apache' === this.props.currentServer && this.renderApacheTab() }\n\t\t\t\t{ 'nginx' === this.props.currentServer && this.renderNginxTab() }\n\t\t\t\t{ 'iis' === this.props.currentServer && this.renderIisTab() }\n\t\t\t\t{ 'litespeed' === this.props.currentServer && this.renderApacheTab( true ) }\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nServerInstructions.contextType = UserContext;\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';\n\n/**\n * WordPress dependencies\n */\nconst { __ } = wp.i18n;\n\n/**\n * Internal dependencies\n */\nimport Box from '../../../components/sui-box';\nimport StepsBar from '../../../components/steps-bar';\nimport StepsContent from '../../../components/steps-content';\nimport Button from '../../../components/sui-button';\nimport ServerInstructions from './server-instructions';\nimport ButtonLoading from '../../../components/sui-button-loading';\n\n/**\n * Wizard component.\n *\n * @since 3.2.0\n */\nclass 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\tconst step = 'cloudflare' === this.props.detectedServer ? 2 : 1;\n\n\t\tthis.state = {\n\t\t\tloading: false,\n\t\t\tstep,\n\t\t\tserver: this.props.detectedServer,\n\t\t};\n\n\t\tthis.onServerChange = this.onServerChange.bind( this );\n\t}\n\n\t/**\n\t * Catch component updates.\n\t *\n\t * @param {Object} prevProps Props from previous update.\n\t * @param {Object} prevState State from previous update.\n\t */\n\tcomponentDidUpdate( prevProps, prevState ) {\n\t\t// Avoid duplicate calls.\n\t\tif ( 3 === prevState.step ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( 3 !== this.state.step || false === this.state.loading ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.props.saveExpiryRules( this.state.server ).then( ( response ) => {\n\t\t\t// If rules applied - exit wizard.\n\t\t\tif (\n\t\t\t\t( 'apache' === this.state.server || 'litespeed' === this.state.server || 'cloudflare' === this.state.server ) &&\n\t\t\t\t'undefined' !== typeof response.htaccessUpdated &&\n\t\t\t\ttrue === response.htaccessUpdated\n\t\t\t) {\n\t\t\t\t/**\n\t\t\t\t * We can revert location.reload() back to onHideWizard(), but\n\t\t\t\t * we need to update status in summary meta box and left menu.\n\t\t\t\t */\n\t\t\t\t//this.props.onHideWizard();\n\t\t\t\tlocation.reload();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Else - step 3.\n\t\t\tthis.setState( { loading: false, step: 3 } );\n\t\t} );\n\t}\n\n\t/**\n\t * Update step.\n\t *\n\t * @param {string} type Go to next/previous step. Accepts: next, prev.\n\t */\n\tsetStep( type ) {\n\t\tlet step = 1;\n\n\t\tif ( 'next' === type ) {\n\t\t\tstep = this.state.step + 1;\n\n\t\t\t// Skip second step for IIS servers.\n\t\t\tif ( 2 === step && 'iis' === this.state.server ) {\n\t\t\t\tstep = 3;\n\t\t\t}\n\t\t}\n\n\t\tif ( 'prev' === type && this.state.step > 1 ) {\n\t\t\tstep = this.state.step - 1;\n\n\t\t\t// Skip second step for IIS servers.\n\t\t\tif ( 2 === step && 'iis' === this.state.server ) {\n\t\t\t\tstep = 1;\n\t\t\t}\n\t\t}\n\n\t\tthis.setState( { loading: 3 === step, step } );\n\t}\n\n\t/**\n\t * Set selected server.\n\t *\n\t * @param {string} server Server ID.\n\t */\n\tonServerChange( server ) {\n\t\tthis.setState( { server } );\n\t}\n\n\t/**\n\t * Get content.\n\t *\n\t * @return {JSX.Element} Content.\n\t */\n\tgetContent() {\n\t\treturn (\n\t\t\t<div className=\"sui-row-with-sidenav\">\n\t\t\t\t<StepsBar currentStep={ this.state.step } />\n\t\t\t\t<StepsContent\n\t\t\t\t\tapplyingRules={ this.state.loading }\n\t\t\t\t\tcurrentStep={ this.state.step }\n\t\t\t\t\tdata={ this.props.data }\n\t\t\t\t\tstatus={ this.props.status }\n\t\t\t\t\texpires={ this.props.expires }\n\t\t\t\t\thuman={ this.props.human }\n\t\t\t\t\tonServerChange={ this.onServerChange }\n\t\t\t\t\tonExpiryChange={ this.props.onExpiryChange }\n\t\t\t\t\tserver={ this.state.server }\n\t\t\t\t\tcloudflare={ this.props.cloudflare }\n\t\t\t\t\tsnippet={ <ServerInstructions currentServer={ this.state.server } snippets={ this.props.snippets } /> }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t}\n\n\t/**\n\t * Get footer actions.\n\t *\n\t * @return {JSX.Element} Footer.\n\t */\n\tgetFooter() {\n\t\treturn (\n\t\t\t<React.Fragment>\n\t\t\t\t<Button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tclasses={ [ 'sui-button', 'sui-button-ghost' ] }\n\t\t\t\t\ticon=\"sui-icon-logout\"\n\t\t\t\t\ttext={ __( 'Quit Setup', 'wphb' ) }\n\t\t\t\t\tonClick={ this.props.onHideWizard }\n\t\t\t\t\tdisabled={ this.state.loading }\n\t\t\t\t/>\n\n\t\t\t\t{ this.state.step > 1 &&\n\t\t\t\t\t<Button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclasses={ [ 'sui-button', 'sui-button-ghost' ] }\n\t\t\t\t\t\ticon=\"sui-icon-arrow-left\"\n\t\t\t\t\t\ttext={ __( 'Previous', 'wphb' ) }\n\t\t\t\t\t\tonClick={ () => this.setStep( 'prev' ) }\n\t\t\t\t\t\tdisabled={ this.state.loading }\n\t\t\t\t\t/>\n\t\t\t\t}\n\n\t\t\t\t<div className=\"sui-actions-right\">\n\t\t\t\t\t{ this.state.step < 3 &&\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tclasses={ [ 'sui-button', 'sui-button-blue', 'sui-button-icon-right' ] }\n\t\t\t\t\t\t\ticon=\"sui-icon-arrow-right\"\n\t\t\t\t\t\t\ttext={ __( 'Next', 'wphb' ) }\n\t\t\t\t\t\t\tonClick={ () => this.setStep( 'next' ) }\n\t\t\t\t\t\t\tdisabled={ this.state.loading }\n\t\t\t\t\t\t/>\n\t\t\t\t\t}\n\t\t\t\t\t{ this.state.step === 3 &&\n\t\t\t\t\t\t<ButtonLoading\n\t\t\t\t\t\t\tclasses={ [ 'sui-button', 'sui-button-blue' ] }\n\t\t\t\t\t\t\ttext={ __( 'Check Status', 'wphb' ) }\n\t\t\t\t\t\t\tonClick={ this.props.onRecheckStatus }\n\t\t\t\t\t\t\tloading={ this.state.loading }\n\t\t\t\t\t\t\tloadingText={ __( 'Applying...', 'wphb' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t</React.Fragment>\n\t\t);\n\t}\n\n\t/**\n\t * Render component.\n\t *\n\t * @return {*} Status component.\n\t */\n\trender() {\n\t\treturn (\n\t\t\t<Box\n\t\t\t\tloading={ this.props.loading }\n\t\t\t\tcontent={ this.getContent() }\n\t\t\t\thideHeader= { true }\n\t\t\t\tboxBodyClass=\"sui-no-padding\"\n\t\t\t\tfooterActions={ this.getFooter() }\n\t\t\t/>\n\t\t);\n\t}\n}\n\nexport default Wizard;\n","/* global WPHB_Admin */\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 */\nimport '../../app.scss';\nimport HBAPIFetch from '../../api';\nimport { UserContext } from '../../context';\nimport Status from '../../views/caching/browser/status';\nimport Wizard from '../../views/caching/browser/wizard';\nimport { getString } from '../../../js/utils/helpers';\n\n/**\n * BrowserCachingPage component.\n *\n * @since 2.7.2\n */\nclass BrowserCachingPage 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\tlinks: this.props.wphbData.links,\n\t\t\tloading: true,\n\t\t\tdetectedServer: this.props.wphbData.module.detectedServer,\n\t\t\tcloudflare: {\n\t\t\t\tisAuthed: false,\n\t\t\t\tisConnected: false,\n\t\t\t\tisSetup: false,\n\t\t\t\tnotice: false,\n\t\t\t},\n\t\t\tstatus: { // Expires - server settings (in seconds).\n\t\t\t\tCSS: false,\n\t\t\t\tImages: false,\n\t\t\t\tJavaScript: false,\n\t\t\t\tMedia: false,\n\t\t\t},\n\t\t\texpires: { // Expires - User selected settings (format).\n\t\t\t\tCSS: false,\n\t\t\t\tImages: false,\n\t\t\t\tJavaScript: false,\n\t\t\t\tMedia: false,\n\t\t\t},\n\t\t\tsnippets: this.props.wphbData.module.snippets,\n\t\t\thuman: {}, // Expires - human readable format.\n\t\t\tshowWizard: false,\n\t\t};\n\n\t\tthis.updateStatus = this.updateStatus.bind( this );\n\t\tthis.showWizard = this.showWizard.bind( this );\n\t\tthis.hideWizard = this.hideWizard.bind( this );\n\t\tthis.setExpiry = this.setExpiry.bind( this );\n\t\tthis.saveExpiryRules = this.saveExpiryRules.bind( this );\n\t\tthis.clearCache = this.clearCache.bind( this );\n\t\tthis.disconnectCloudflare = this.disconnectCloudflare.bind( this );\n\t}\n\n\t/**\n\t * Fetch/refresh browser caching status.\n\t *\n\t * @param {string} action Accepts: 'get' and 'refresh'.\n\t */\n\tbrowserCachingStatus( action = 'get' ) {\n\t\tthis.state.api\n\t\t\t.post( 'browser_caching_status', action )\n\t\t\t.then( ( response ) => {\n\t\t\t\tthis.setState( {\n\t\t\t\t\tloading: false,\n\t\t\t\t\tcloudflare: {\n\t\t\t\t\t\tisAuthed: response.cloudflareAuthed,\n\t\t\t\t\t\tisConnected: response.usingCloudflare,\n\t\t\t\t\t\tisSetup: response.cloudflareSetUp,\n\t\t\t\t\t\tnotice: response.cloudflareNotice,\n\t\t\t\t\t},\n\t\t\t\t\tdetectedServer: response.detectedServer,\n\t\t\t\t\tstatus: response.status,\n\t\t\t\t\texpires: response.expires,\n\t\t\t\t\thuman: response.human,\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 * Invoked immediately after a component is mounted.\n\t */\n\tcomponentDidMount() {\n\t\tthis.browserCachingStatus();\n\t}\n\n\t/**\n\t * Update browser caching status.\n\t */\n\tupdateStatus() {\n\t\tthis.setState( { loading: true } );\n\t\tthis.browserCachingStatus( 'refresh' );\n\t}\n\n\t/**\n\t * Show setup wizard.\n\t *\n\t * @since 3.2.0\n\t */\n\tshowWizard() {\n\t\tthis.setState( { showWizard: true } );\n\t}\n\n\t/**\n\t * Hide setup wizard.\n\t *\n\t * @since 3.2.0\n\t */\n\thideWizard() {\n\t\tthis.setState( { showWizard: false } );\n\t}\n\n\t/**\n\t * Update expiry values.\n\t *\n\t * @since 3.2.0\n\t *\n\t * @param {Object} e Select that triggered the change.\n\t */\n\tsetExpiry( e ) {\n\t\tlet CSS;\n\t\tlet Images;\n\t\tlet JavaScript;\n\t\tlet Media;\n\n\t\tif ( 'set-expiry-all' === e.target.id ) {\n\t\t\tCSS = e.target.value;\n\t\t\tImages = e.target.value;\n\t\t\tJavaScript = e.target.value;\n\t\t\tMedia = e.target.value;\n\n\t\t\t// Fix for select2 not picking up updates.\n\t\t\tif ( ! this.state.cloudflare.isAuthed && ! this.state.cloudflare.isSetup ) {\n\t\t\t\tconst event = new Event( 'change' );\n\t\t\t\tdocument.getElementById( 'set-expiry-css' ).value = e.target.value;\n\t\t\t\tdocument.getElementById( 'set-expiry-css' ).dispatchEvent( event );\n\t\t\t\tdocument.getElementById( 'set-expiry-images' ).value = e.target.value;\n\t\t\t\tdocument.getElementById( 'set-expiry-images' ).dispatchEvent( event );\n\t\t\t\tdocument.getElementById( 'set-expiry-javascript' ).value = e.target.value;\n\t\t\t\tdocument.getElementById( 'set-expiry-javascript' ).dispatchEvent( event );\n\t\t\t\tdocument.getElementById( 'set-expiry-media' ).value = e.target.value;\n\t\t\t\tdocument.getElementById( 'set-expiry-media' ).dispatchEvent( event );\n\t\t\t}\n\t\t} else {\n\t\t\tCSS = document.getElementById( 'set-expiry-css' ).value;\n\t\t\tImages = document.getElementById( 'set-expiry-images' ).value;\n\t\t\tJavaScript = document.getElementById( 'set-expiry-javascript' ).value;\n\t\t\tMedia = document.getElementById( 'set-expiry-media' ).value;\n\t\t}\n\n\t\tthis.setState( { expires: { CSS, Images, JavaScript, Media } } );\n\t}\n\n\t/**\n\t * Update expiry rules in the database.\n\t *\n\t * @since 3.2.0\n\t *\n\t * @param {string} server Selected server.\n\t */\n\tsaveExpiryRules( server ) {\n\t\tconst data = {\n\t\t\tserver,\n\t\t\texpires: this.state.expires,\n\t\t};\n\n\t\treturn this.state.api\n\t\t\t.post( 'update_expiry', data )\n\t\t\t.then( ( response ) => {\n\t\t\t\tthis.setState( { snippets: response.snippets } );\n\n\t\t\t\t// Update status if we were able to apply Apache rules.\n\t\t\t\tif ( ( 'apache' === server || 'litespeed' === server ) && 'undefined' !== typeof response.status ) {\n\t\t\t\t\tthis.setState( {\n\t\t\t\t\t\tstatus: response.status,\n\t\t\t\t\t\thuman: response.human,\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\treturn response;\n\t\t\t} )\n\t\t\t.catch( ( error ) => window.console.log( error ) );\n\t}\n\n\t/**\n\t * Scroll to Cloudflare settings, when clicking on the upsell \"Connect\" button.\n\t */\n\thandleCloudflareClick() {\n\t\twindow.SUI.openModal(\n\t\t\t'cloudflare-connect',\n\t\t\t'wrap-wphb-browser-caching',\n\t\t\t'cloudflare-email',\n\t\t\tfalse,\n\t\t\tfalse\n\t\t);\n\t}\n\n\t/**\n\t * Clear Cloudflare cache.\n\t *\n\t * @since 3.2.0\n\t */\n\tclearCache() {\n\t\tthis.setState( { loading: true } );\n\n\t\treturn this.state.api\n\t\t\t.post( 'clear_cache' )\n\t\t\t.then( () => {\n\t\t\t\tthis.setState( { loading: false } );\n\t\t\t\tWPHB_Admin.notices.show(\n\t\t\t\t\tgetString( 'successCloudflarePurge' )\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 * Disconnect Cloudflare.\n\t *\n\t * @since 3.2.0\n\t */\n\tdisconnectCloudflare() {\n\t\tthis.setState( { loading: true } );\n\n\t\tthis.state.api\n\t\t\t.post( 'cloudflare_disconnect' )\n\t\t\t.then( () => {\n\t\t\t\tthis.browserCachingStatus( 'refresh' );\n\t\t\t\tWPHB_Admin.notices.show(\n\t\t\t\t\t__( 'Cloudflare was disconnected successfully.', 'wphb' )\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 * Render component.\n\t *\n\t * @return {*} BrowserCachingPage.\n\t */\n\trender() {\n\t\treturn (\n\t\t\t<UserContext.Provider value={ this.state }>\n\t\t\t\t{ this.state.showWizard &&\n\t\t\t\t\t<Wizard\n\t\t\t\t\t\tloading={ this.state.loading }\n\t\t\t\t\t\tdetectedServer={ this.state.detectedServer }\n\t\t\t\t\t\tdata={ this.props.wphbData.module }\n\t\t\t\t\t\tstatus={ this.state.status }\n\t\t\t\t\t\thuman={ this.state.human }\n\t\t\t\t\t\texpires={ this.state.expires }\n\t\t\t\t\t\tonHideWizard={ this.hideWizard }\n\t\t\t\t\t\tonRecheckStatus={ this.updateStatus }\n\t\t\t\t\t\tonExpiryChange={ this.setExpiry }\n\t\t\t\t\t\tsaveExpiryRules={ this.saveExpiryRules }\n\t\t\t\t\t\tsnippets={ this.state.snippets }\n\t\t\t\t\t\tcloudflare={ this.state.cloudflare }\n\t\t\t\t\t/>\n\t\t\t\t}\n\n\t\t\t\t{ ! this.state.showWizard &&\n\t\t\t\t\t<Status\n\t\t\t\t\t\tdata={ this.props.wphbData.module }\n\t\t\t\t\t\tlink={ this.state.links }\n\t\t\t\t\t\tloading={ this.state.loading }\n\t\t\t\t\t\tonUpdate={ this.updateStatus }\n\t\t\t\t\t\tonShowWizard={ this.showWizard }\n\t\t\t\t\t\tstatus={ this.state.status }\n\t\t\t\t\t\thuman={ this.state.human }\n\t\t\t\t\t\tcloudflare={ this.state.cloudflare }\n\t\t\t\t\t\tonCloudflareClick={ this.handleCloudflareClick }\n\t\t\t\t\t\tclearCache={ this.clearCache }\n\t\t\t\t\t\tdisconnectCloudflare={ this.disconnectCloudflare }\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t</UserContext.Provider>\n\t\t);\n\t}\n}\n\nBrowserCachingPage.propTypes = {\n\twphbData: PropTypes.object,\n};\n\ndomReady( function() {\n\tconst browserCachingPageDiv = document.getElementById(\n\t\t'wrap-wphb-browser-caching'\n\t);\n\tif ( browserCachingPageDiv ) {\n\t\tReactDOM.render(\n\t\t\t/*** @var {object} window.wphb */\n\t\t\t<BrowserCachingPage wphbData={ window.wphbReact } />,\n\t\t\tbrowserCachingPageDiv\n\t\t);\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\n if (document.readyState === 'complete' || // 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 } // DOMContentLoaded has not fired yet, delay callback until then.\n\n\n document.addEventListener('DOMContentLoaded', callback);\n}\n//# sourceMappingURL=index.js.map","/* global wphb */\n\n/**\n * Strings internationalization\n *\n * @param {string} str\n * @return {*|string} String\n */\nexport const getString = ( str ) => {\n\treturn wphb.strings[ str ] || '';\n};\n\n/**\n * Get a link to a HB screen\n *\n * @param {string} screen Screen slug\n * @return {string} URL\n */\nexport const getLink = ( screen ) => {\n\treturn wphb.links[ screen ] || '';\n};\n","/*!\n\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\tvar nativeCodeString = '[native code]';\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) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\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","/*\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 * 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","/**\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","/**\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","/** @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","'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\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// 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__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// 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\t803: 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, [282], function() { return __webpack_require__(4640); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","global","globalThis","self","support","Symbol","Blob","e","viewClasses","isArrayBufferView","ArrayBuffer","isView","obj","indexOf","Object","prototype","toString","call","normalizeName","name","String","test","TypeError","toLowerCase","normalizeValue","value","iteratorFor","items","iterator","next","shift","done","undefined","Headers","headers","this","map","forEach","append","Array","isArray","header","getOwnPropertyNames","consumed","body","bodyUsed","Promise","reject","fileReaderReady","reader","resolve","onload","result","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","type","rejected","Error","arrayBuffer","isConsumed","byteOffset","then","text","readAsText","chars","length","i","fromCharCode","join","readArrayBufferAsText","formData","decode","json","JSON","parse","oldValue","has","hasOwnProperty","callback","thisArg","keys","push","values","entries","methods","Request","input","options","method","upcased","url","credentials","mode","signal","toUpperCase","referrer","cache","reParamSearch","replace","Date","getTime","form","trim","split","bytes","decodeURIComponent","Response","bodyInit","status","ok","statusText","clone","response","redirectStatuses","redirect","RangeError","location","DOMException","err","message","stack","create","constructor","fetch","init","request","aborted","xhr","XMLHttpRequest","abortXhr","abort","rawHeaders","getAllResponseHeaders","substr","line","parts","key","responseURL","responseText","setTimeout","ontimeout","onabort","open","href","fixUrl","withCredentials","responseType","setRequestHeader","addEventListener","onreadystatechange","readyState","removeEventListener","send","polyfill","HBAPIFetch","_this","_classCallCheck","_setupAjaxAPI","data","arguments","fetchObject","wphb","nonces","HBFetchNonce","stringify","ajaxurl","UserContext","React","Action","_React$Component","_inherits","_super","_createSuper","apply","classes","props","className","content","BorderFrame","_ref","elements","extraClasses","element","id","label","window","lodash","includes","expiry","details","classNames","Icon","__","wp","i18n","Loader","loading","loadingText","Box","title","icon","headerActions","classesArray","boxHeader","stickyType","boxClass","hideHeader","showFilters","boxBodyClass","footerActions","boxRender","renderContent","propTypes","PropTypes","Button","rel","_ref$url","target","_ref$disabled","disabled","onClick","_ref$type","_objectWithoutProperties","_excluded","_extends","Notice","combinedClasses","Tag","Tooltip","children","defaultProps","_wp$i18n","sprintf","Status","statusTag","failedItems","getFailedItems","filter","item","recommended","cloudflare","isSetup","htaccessWritable","htaccessWritten","failed","link","forum","notice","isConnected","connectButton","onCloudflareClick","isWhiteLabeled","alt","src","wphbDirUrl","srcSet","_this2","iconLabel","tag","recommendedTooltipText","human","cfRow","cacheTypes","assign","checkExternalProblems","isAuthed","showCloudflareNotice","clearCache","disconnectCloudflare","browserCaching","getStatus","rightAction","onUpdate","onShowWizard","getContent","getFooter","StepsBar","currentStep","steps","number","completeTooltip","getStepClass","step","focusable","x1","x2","stroke","getStepNumber","y1","y2","Tabs","sideTabs","SUI","tabs","menuItems","menu","el","active","checked","role","tabIndex","hidden","description","flushed","isEmpty","Select","$el","jQuery","SUIselect2","minimumResultsForSearch","on","onChange","_this$props$placehold","selectOptions","width","htmlFor","selectId","selected","multiple","placeholder","ref","StepsContent","servers","splice","state","server","liElements","serverID","onServerChange","detectedServer","frequencies","_this3","frequenciesCF","singleSelect","CSS","expires","onExpiryChange","index","stepIndicatorText","getStep","applyingRules","getStepOne","getStepTwo","snippet","SupportLink","isMember","chatLink","forumLink","_ref$noFormatting","noFormatting","CodeSnippet","initSUI","codeSnippet","document","querySelector","suiCodeSnippet","code","OrderedList","list","ServerInstructions","litespeed","liteSpeedList","listItems","snippets","apache","context","links","chat","nginx","currentServer","renderApacheTab","renderNginxTab","renderIisTab","ButtonLoading","_ref$loading","contextType","Wizard","bind","_assertThisInitialized","prevProps","prevState","saveExpiryRules","htaccessUpdated","setState","reload","onHideWizard","setStep","onRecheckStatus","BrowserCachingPage","api","wphbData","module","Images","JavaScript","Media","showWizard","updateStatus","hideWizard","setExpiry","action","post","cloudflareAuthed","usingCloudflare","cloudflareSetUp","cloudflareNotice","catch","console","log","browserCachingStatus","event","Event","getElementById","dispatchEvent","openModal","_this4","str","WPHB_Admin","notices","show","strings","_this5","Provider","handleCloudflareClick","browserCachingPageDiv","ReactDOM","wphbReact","hasOwn","arg","argType","inner","exports","default","getOwnPropertySymbols","propIsEnumerable","propertyIsEnumerable","test1","test2","n","test3","letter","shouldUseNative","source","from","symbols","to","val","toObject","s","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","propFullName","secret","getShim","isRequired","ReactPropTypes","array","bigint","bool","func","object","string","symbol","any","arrayOf","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","f","g","h","k","performance","now","l","unstable_now","p","q","MessageChannel","t","u","w","a","b","clearTimeout","unstable_shouldYield","unstable_forceFrameRate","x","y","z","cancelAnimationFrame","requestAnimationFrame","A","B","C","D","E","Math","floor","F","G","port2","port1","onmessage","postMessage","H","c","d","I","J","K","pop","m","v","r","sortIndex","L","M","N","O","P","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","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","j","every","getter","__esModule","definition","o","defineProperty","enumerable","prop","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}