ב הוא חיבור של הרב יהושע בועז שתוכנו מראי מקומות למקורותشس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-gzip.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/gzip/summary.jsx","webpack://wp-hummingbird/./_src/react/components/sui-select/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/components/sui-tabs/index.jsx","webpack://wp-hummingbird/./node_modules/@wordpress/element/build-module/create-interpolate-element.js","webpack://wp-hummingbird/./_src/react/views/gzip/server-instructions.jsx","webpack://wp-hummingbird/./_src/react/components/sui-box-settings/row.jsx","webpack://wp-hummingbird/./_src/react/views/gzip/configure.jsx","webpack://wp-hummingbird/./_src/react/modules/gzip.jsx","webpack://wp-hummingbird/./node_modules/@wordpress/dom-ready/build-module/index.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 * GzipSummary component.\n *\n * @since 2.1.1\n */\nclass GzipSummary extends React.Component {\n\t/**\n\t * Generate the status tag for Gzip compression, based on the number of active\n\t * elements (HTML, JavaScrip, CSS).\n\t *\n\t * @param {Object} status Gzip compression status object.\n\t * @param {boolean} successTag On success show a tick tag.\n\t * @return {*} Gzip compression status.\n\t */\n\tstatic getStatus( status, successTag = false ) {\n\t\tlet gzipCompression;\n\n\t\tif ( successTag ) {\n\t\t\tgzipCompression = <Tag />;\n\t\t}\n\n\t\tconst failedGzip = GzipSummary.getFailedItems( status );\n\n\t\tif ( 0 < failedGzip.length ) {\n\t\t\tgzipCompression = (\n\t\t\t\t<Tag value={ failedGzip.length } type=\"warning\" />\n\t\t\t);\n\t\t}\n\n\t\treturn gzipCompression;\n\t}\n\n\t/**\n\t * Get an array of failed items.\n\t *\n\t * @param {Object} items Gzip compression statues.\n\t * @return {Array} Array of items.\n\t */\n\tstatic getFailedItems( items ) {\n\t\treturn Object.values( items ).filter( ( item ) => {\n\t\t\treturn ! item || 'privacy' === item;\n\t\t} );\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.htaccess_writable &&\n\t\t\t! this.props.data.htaccess_written\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\t// There must be another plugin/server config that is setting its own gzip stuff.\n\t\tif (\n\t\t\t3 !== Object.keys( this.props.status ).length ||\n\t\t\t0 < GzipSummary.getFailedItems( this.props.status ).length\n\t\t) {\n\t\t\tconst message = (\n\t\t\t\t<React.Fragment>\n\t\t\t\t\t<p>{ __( 'Gzip is not working properly:', 'wphb' ) }</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 \"deflate\" module enabled (mod_deflate for Apache, ngx_http_gzip_module for NGINX). Contact your host. If deflate is enabled, ask why all .htaccess or nginx.conf compression rules are not being applied. 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 classes=\"sui-notice-error\" content={ message } />;\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 failedGzip = GzipSummary.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 gzip types */\n\t\t\t__(\n\t\t\t\t'%d of your compression types are inactive. Configure compression for all files types below.',\n\t\t\t\t'wphb'\n\t\t\t),\n\t\t\tfailedGzip.length\n\t\t);\n\n\t\tconst privacyFail = Object.values( failedGzip ).filter( ( item ) => {\n\t\t\treturn 'privacy' === item;\n\t\t} );\n\n\t\tif ( 0 < privacyFail.length ) {\n\t\t\tclasses = 'sui-notice-info';\n\t\t\ttext = sprintf(\n\t\t\t\t/* translators: %d - number of active types */\n\t\t\t\t__(\n\t\t\t\t\t'GZip compression is currently active for %d/3 types.',\n\t\t\t\t\t'wphb'\n\t\t\t\t),\n\t\t\t\t3 - failedGzip.length\n\t\t\t);\n\n\t\t\tif (\n\t\t\t\t'undefined' !== typeof this.props.status.HTML &&\n\t\t\t\t'privacy' === this.props.status.HTML\n\t\t\t) {\n\t\t\t\ttext +=\n\t\t\t\t\t' ' +\n\t\t\t\t\t__(\n\t\t\t\t\t\t'We’ve detected that you have Privacy Mode active which prevents us from accurately detecting whether HTML compression is active or not. That is to say, an HTTP 401 Unauthorized Client status was detected and your site requires valid HTTP authentication credentials. You can re-check this once you have tended to the HTTP 401 error.',\n\t\t\t\t\t\t'wphb'\n\t\t\t\t\t);\n\t\t\t} else {\n\t\t\t\ttext +=\n\t\t\t\t\t' ' +\n\t\t\t\t\t__(\n\t\t\t\t\t\t'We’ve detected an HTTP error that prevents us from accurately detecting whether HTML compression is active or not. You can re-check this once you have tended to the HTTP error.',\n\t\t\t\t\t\t'wphb'\n\t\t\t\t\t);\n\t\t\t}\n\t\t} else if ( 0 === failedGzip.length ) {\n\t\t\tclasses = 'sui-notice-success';\n\t\t\ttext = __( 'Gzip compression is currently active. Good job!', 'wphb' );\n\n\t\t\t// Gzip enabled on host site.\n\t\t\tif ( false === this.props.data.htaccess_written ) {\n\t\t\t\ttext = __(\n\t\t\t\t\t'GZip compression is already running smoothly on your site. Your hosting has automatically pre-configured GZip compression 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\n\t\t\t// Replace notice on WPMU hosting.\n\t\t\tif (\n\t\t\t\tfalse === this.props.data.is_white_labeled &&\n\t\t\t\ttrue === this.props.data.is_wpmu_hosting\n\t\t\t) {\n\t\t\t\ttext = __(\n\t\t\t\t\t'GZip compression is already running smoothly on your site. Since your site is hosted with WPMU DEV, GZip compression has been automatically configured 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\tlet label = __( 'Inactive', 'wphb' );\n\t\t\tlet tag = 'warning';\n\n\t\t\tif ( true === item[ 1 ] ) {\n\t\t\t\tlabel = __( 'Active', 'wphb' );\n\t\t\t\ttag = 'success';\n\t\t\t}\n\n\t\t\tlet type = item[ 0 ].toLowerCase();\n\t\t\tconst classnames = classNames(\n\t\t\t\t'wphb-filename-extension',\n\t\t\t\t'wphb-filename-extension-' + type\n\t\t\t);\n\n\t\t\tif ( 'javascript' === type ) {\n\t\t\t\ttype = 'js';\n\t\t\t}\n\n\t\t\tconst labelData = (\n\t\t\t\t<React.Fragment>\n\t\t\t\t\t<span className={ classnames }>{ type }</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\tlet tooltipText = sprintf(\n\t\t\t\t/* translators: %1$s - status label, %2$s - type */\n\t\t\t\t__( 'Gzip compression is %1$s for %2$s', 'wphb' ),\n\t\t\t\tlabel.toLowerCase(),\n\t\t\t\titem[ 0 ]\n\t\t\t);\n\n\t\t\tif ( 'privacy' === item[ 1 ] ) {\n\t\t\t\ttooltipText = __(\n\t\t\t\t\t'While Privacy Mode is active, we can’t accurately detect if HTML compression is active and working. Re-check this once you’ve disabled Privacy Mode.',\n\t\t\t\t\t'wphb'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tlabel: labelData,\n\t\t\t\tdetails: (\n\t\t\t\t\t<Tooltip text={ tooltipText } classes={ [ 'sui-tooltip-constrained', 'sui-tooltip-top-right-mobile' ] }>\n\t\t\t\t\t\t<Tag value={ label } type={ tag } />\n\t\t\t\t\t</Tooltip>\n\t\t\t\t),\n\t\t\t};\n\t\t} );\n\n\t\treturn (\n\t\t\t<React.Fragment>\n\t\t\t\t{ this.checkExternalProblems() }\n\n\t\t\t\t<p>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Gzip compresses your web pages and style sheets before sending them over to the browser. This drastically reduces transfer time since the files are much smaller.',\n\t\t\t\t\t\t'wphb'\n\t\t\t\t\t) }\n\t\t\t\t</p>\n\n\t\t\t\t<Notice message={ text } classes={ classes } />\n\n\t\t\t\t<BorderFrame\n\t\t\t\t\theader={ [\n\t\t\t\t\t\t__( 'File type', 'wphb' ),\n\t\t\t\t\t\t__( 'Current status', 'wphb' ),\n\t\t\t\t\t] }\n\t\t\t\t\telements={ items }\n\t\t\t\t\textraClasses={ [ 'two-columns' ] }\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 {*} GzipSummary component.\n\t */\n\trender() {\n\t\tconst gzip = GzipSummary.getStatus( this.props.status );\n\n\t\tconst rightAction = (\n\t\t\t<React.Fragment>\n\t\t\t\t<span className=\"label-notice-inline sui-hidden-xs sui-hidden-sm\">\n\t\t\t\t\t{ __( 'Made changes?', 'wphb' ) }\n\t\t\t\t</span>\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</React.Fragment>\n\t\t);\n\n\t\tconst headerActions = (\n\t\t\t<React.Fragment>\n\t\t\t\t{ gzip && <Action type=\"left\" content={ gzip } /> }\n\t\t\t\t<Action type=\"right\" content={ rightAction } />\n\t\t\t</React.Fragment>\n\t\t);\n\n\t\treturn (\n\t\t\t<Box\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/>\n\t\t);\n\t}\n}\n\nexport default GzipSummary;\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';\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","/* global SUI */\n\n/**\n * External dependencies\n */\nimport React from 'react';\nimport classNames from 'classnames';\n\n/**\n * Internal dependencies\n */\nimport Button from '../sui-button';\n\n/**\n * Tabs component.\n */\nexport default class Tabs extends React.Component {\n\t/**\n\t * Share UI actions need to be performed manually for elements.\n\t * They should be done in this method.\n\t *\n\t * @see https://wpmudev.github.io/shared-ui/tabs/ For callback params.\n\t */\n\tcomponentDidMount() {\n\t\tif ( ! this.props.sideTabs ) {\n\t\t\tSUI.tabs();\n\t\t}\n\t}\n\n\t/**\n\t * Render component.\n\t *\n\t * @return {JSX.Element} Select component.\n\t */\n\trender() {\n\t\tconst menuItems = Object.values( this.props.menu ).map( ( el ) => {\n\t\t\tconst active = 'undefined' !== typeof el.checked && el.checked;\n\t\t\treturn (\n\t\t\t\t<Button\n\t\t\t\t\ttext={ el.title }\n\t\t\t\t\tid={ el.id + '-tab' }\n\t\t\t\t\tclasses={ classNames( 'sui-tab-item', { active } ) }\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\trole=\"tab\"\n\t\t\t\t\taria-controls={ el.id + '-tab-content' }\n\t\t\t\t\taria-selected={ active }\n\t\t\t\t\ttabIndex={ active ? '0' : '-1' }\n\t\t\t\t\tkey={ el.id }\n\t\t\t\t\tonClick={ el.onClick }\n\t\t\t\t/>\n\t\t\t);\n\t\t} );\n\n\t\tconst items = Object.values( this.props.tabs ).map( ( el, id ) => {\n\t\t\tconst active = 'undefined' !== typeof el.active && el.active;\n\t\t\tconst classes = classNames( { 'sui-tab-content': ! this.props.sideTabs }, { 'sui-tab-boxed': this.props.sideTabs }, { active } );\n\t\t\treturn (\n\t\t\t\t<div\n\t\t\t\t\trole=\"tabpanel\"\n\t\t\t\t\ttabIndex=\"0\"\n\t\t\t\t\tid={ el.id + '-tab-content' }\n\t\t\t\t\tclassName={ classes }\n\t\t\t\t\taria-labelledby={ el.id + '-tab' }\n\t\t\t\t\thidden={ ! active }\n\t\t\t\t\tkey={ id }\n\t\t\t\t>\n\t\t\t\t\t{ el.description && <div className=\"sui-description sui-margin-bottom\">{ el.description }</div> }\n\t\t\t\t\t{ el.content }\n\t\t\t\t</div>\n\t\t\t);\n\t\t} );\n\n\t\treturn (\n\t\t\t<div\n\t\t\t\tclassName={ classNames(\n\t\t\t\t\t{ 'sui-tabs': ! this.props.sideTabs },\n\t\t\t\t\t{ 'sui-tabs-flushed': this.props.flushed },\n\t\t\t\t\t{ 'sui-side-tabs': this.props.sideTabs },\n\t\t\t\t\tthis.props.className,\n\t\t\t\t) }\n\t\t\t>\n\t\t\t\t<div role=\"tablist\" className=\"sui-tabs-menu\">\n\t\t\t\t\t{ menuItems }\n\t\t\t\t</div>\n\t\t\t\t{ ! window.lodash.isEmpty( this.props.tabs ) &&\n\t\t\t\t\t<div className=\"sui-tabs-content\">{ items }</div> }\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nTabs.defaultProps = {\n\ttabs: {},\n};\n","/**\n * Internal dependencies\n */\nimport { createElement, cloneElement, Fragment, isValidElement } from './react';\n/** @typedef {import('./react').WPElement} WPElement */\n\nlet indoc, offset, output, stack;\n/**\n * Matches tags in the localized string\n *\n * This is used for extracting the tag pattern groups for parsing the localized\n * string and along with the map converting it to a react element.\n *\n * There are four references extracted using this tokenizer:\n *\n * match: Full match of the tag (i.e. <strong>, </strong>, <br/>)\n * isClosing: The closing slash, if it exists.\n * name: The name portion of the tag (strong, br) (if )\n * isSelfClosed: The slash on a self closing tag, if it exists.\n *\n * @type {RegExp}\n */\n\nconst tokenizer = /<(\\/)?(\\w+)\\s*(\\/)?>/g;\n/**\n * The stack frame tracking parse progress.\n *\n * @typedef Frame\n *\n * @property {WPElement} element A parent element which may still have\n * @property {number} tokenStart Offset at which parent element first\n * appears.\n * @property {number} tokenLength Length of string marking start of parent\n * element.\n * @property {number} [prevOffset] Running offset at which parsing should\n * continue.\n * @property {number} [leadingTextStart] Offset at which last closing element\n * finished, used for finding text between\n * elements.\n * @property {WPElement[]} children Children.\n */\n\n/**\n * Tracks recursive-descent parse state.\n *\n * This is a Stack frame holding parent elements until all children have been\n * parsed.\n *\n * @private\n * @param {WPElement} element A parent element which may still have\n * nested children not yet parsed.\n * @param {number} tokenStart Offset at which parent element first\n * appears.\n * @param {number} tokenLength Length of string marking start of parent\n * element.\n * @param {number} [prevOffset] Running offset at which parsing should\n * continue.\n * @param {number} [leadingTextStart] Offset at which last closing element\n * finished, used for finding text between\n * elements.\n *\n * @return {Frame} The stack frame tracking parse progress.\n */\n\nfunction createFrame(element, tokenStart, tokenLength, prevOffset, leadingTextStart) {\n return {\n element,\n tokenStart,\n tokenLength,\n prevOffset,\n leadingTextStart,\n children: []\n };\n}\n/**\n * This function creates an interpolated element from a passed in string with\n * specific tags matching how the string should be converted to an element via\n * the conversion map value.\n *\n * @example\n * For example, for the given string:\n *\n * \"This is a <span>string</span> with <a>a link</a> and a self-closing\n * <CustomComponentB/> tag\"\n *\n * You would have something like this as the conversionMap value:\n *\n * ```js\n * {\n * span: <span />,\n * a: <a href={ 'https://github.com' } />,\n * CustomComponentB: <CustomComponent />,\n * }\n * ```\n *\n * @param {string} interpolatedString The interpolation string to be parsed.\n * @param {Object} conversionMap The map used to convert the string to\n * a react element.\n * @throws {TypeError}\n * @return {WPElement} A wp element.\n */\n\n\nconst createInterpolateElement = (interpolatedString, conversionMap) => {\n indoc = interpolatedString;\n offset = 0;\n output = [];\n stack = [];\n tokenizer.lastIndex = 0;\n\n if (!isValidConversionMap(conversionMap)) {\n throw new TypeError('The conversionMap provided is not valid. It must be an object with values that are WPElements');\n }\n\n do {// twiddle our thumbs\n } while (proceed(conversionMap));\n\n return createElement(Fragment, null, ...output);\n};\n/**\n * Validate conversion map.\n *\n * A map is considered valid if it's an object and every value in the object\n * is a WPElement\n *\n * @private\n *\n * @param {Object} conversionMap The map being validated.\n *\n * @return {boolean} True means the map is valid.\n */\n\n\nconst isValidConversionMap = conversionMap => {\n const isObject = typeof conversionMap === 'object';\n const values = isObject && Object.values(conversionMap);\n return isObject && values.length && values.every(element => isValidElement(element));\n};\n/**\n * This is the iterator over the matches in the string.\n *\n * @private\n *\n * @param {Object} conversionMap The conversion map for the string.\n *\n * @return {boolean} true for continuing to iterate, false for finished.\n */\n\n\nfunction proceed(conversionMap) {\n const next = nextToken();\n const [tokenType, name, startOffset, tokenLength] = next;\n const stackDepth = stack.length;\n const leadingTextStart = startOffset > offset ? offset : null;\n\n if (!conversionMap[name]) {\n addText();\n return false;\n }\n\n switch (tokenType) {\n case 'no-more-tokens':\n if (stackDepth !== 0) {\n const {\n leadingTextStart: stackLeadingText,\n tokenStart\n } = stack.pop();\n output.push(indoc.substr(stackLeadingText, tokenStart));\n }\n\n addText();\n return false;\n\n case 'self-closed':\n if (0 === stackDepth) {\n if (null !== leadingTextStart) {\n output.push(indoc.substr(leadingTextStart, startOffset - leadingTextStart));\n }\n\n output.push(conversionMap[name]);\n offset = startOffset + tokenLength;\n return true;\n } // Otherwise we found an inner element.\n\n\n addChild(createFrame(conversionMap[name], startOffset, tokenLength));\n offset = startOffset + tokenLength;\n return true;\n\n case 'opener':\n stack.push(createFrame(conversionMap[name], startOffset, tokenLength, startOffset + tokenLength, leadingTextStart));\n offset = startOffset + tokenLength;\n return true;\n\n case 'closer':\n // If we're not nesting then this is easy - close the block.\n if (1 === stackDepth) {\n closeOuterElement(startOffset);\n offset = startOffset + tokenLength;\n return true;\n } // Otherwise we're nested and we have to close out the current\n // block and add it as a innerBlock to the parent.\n\n\n const stackTop = stack.pop();\n const text = indoc.substr(stackTop.prevOffset, startOffset - stackTop.prevOffset);\n stackTop.children.push(text);\n stackTop.prevOffset = startOffset + tokenLength;\n const frame = createFrame(stackTop.element, stackTop.tokenStart, stackTop.tokenLength, startOffset + tokenLength);\n frame.children = stackTop.children;\n addChild(frame);\n offset = startOffset + tokenLength;\n return true;\n\n default:\n addText();\n return false;\n }\n}\n/**\n * Grabs the next token match in the string and returns it's details.\n *\n * @private\n *\n * @return {Array} An array of details for the token matched.\n */\n\n\nfunction nextToken() {\n const matches = tokenizer.exec(indoc); // We have no more tokens.\n\n if (null === matches) {\n return ['no-more-tokens'];\n }\n\n const startedAt = matches.index;\n const [match, isClosing, name, isSelfClosed] = matches;\n const length = match.length;\n\n if (isSelfClosed) {\n return ['self-closed', name, startedAt, length];\n }\n\n if (isClosing) {\n return ['closer', name, startedAt, length];\n }\n\n return ['opener', name, startedAt, length];\n}\n/**\n * Pushes text extracted from the indoc string to the output stack given the\n * current rawLength value and offset (if rawLength is provided ) or the\n * indoc.length and offset.\n *\n * @private\n */\n\n\nfunction addText() {\n const length = indoc.length - offset;\n\n if (0 === length) {\n return;\n }\n\n output.push(indoc.substr(offset, length));\n}\n/**\n * Pushes a child element to the associated parent element's children for the\n * parent currently active in the stack.\n *\n * @private\n *\n * @param {Frame} frame The Frame containing the child element and it's\n * token information.\n */\n\n\nfunction addChild(frame) {\n const {\n element,\n tokenStart,\n tokenLength,\n prevOffset,\n children\n } = frame;\n const parent = stack[stack.length - 1];\n const text = indoc.substr(parent.prevOffset, tokenStart - parent.prevOffset);\n\n if (text) {\n parent.children.push(text);\n }\n\n parent.children.push(cloneElement(element, null, ...children));\n parent.prevOffset = prevOffset ? prevOffset : tokenStart + tokenLength;\n}\n/**\n * This is called for closing tags. It creates the element currently active in\n * the stack.\n *\n * @private\n *\n * @param {number} endOffset Offset at which the closing tag for the element\n * begins in the string. If this is greater than the\n * prevOffset attached to the element, then this\n * helps capture any remaining nested text nodes in\n * the element.\n */\n\n\nfunction closeOuterElement(endOffset) {\n const {\n element,\n leadingTextStart,\n prevOffset,\n tokenStart,\n children\n } = stack.pop();\n const text = endOffset ? indoc.substr(prevOffset, endOffset - prevOffset) : indoc.substr(prevOffset);\n\n if (text) {\n children.push(text);\n }\n\n if (null !== leadingTextStart) {\n output.push(indoc.substr(leadingTextStart, tokenStart - leadingTextStart));\n }\n\n output.push(cloneElement(element, null, ...children));\n}\n\nexport default createInterpolateElement;\n//# sourceMappingURL=create-interpolate-element.js.map","/* global SUI */\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 Notice from '../../components/sui-notice';\nimport { UserContext } from '../../context';\nimport SupportLink from '../../components/support-link';\nimport CodeSnippet from '../../components/sui-code-snippet';\nimport OrderedList from '../../components/ordered-list';\nimport Tabs from '../../components/sui-tabs';\nimport {createInterpolateElement} from \"@wordpress/element\";\n\n/**\n * Server instructions component.\n */\nexport default class ServerInstructions 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\tServerInstructions.initSUIcomponents();\n\t}\n\n\tcomponentDidUpdate() {\n\t\tServerInstructions.initSUIcomponents();\n\t}\n\n\tstatic initSUIcomponents() {\n\t\tconst el = document.getElementById( 'wphb-server-instructions-apache' );\n\t\tif ( el ) {\n\t\t\tSUI.suiTabs( el.querySelector( '.sui-tabs' ) );\n\t\t}\n\n\t\tconst troubleshootLink = document.getElementById(\n\t\t\t'troubleshooting-link'\n\t\t);\n\t\tif ( troubleshootLink ) {\n\t\t\ttroubleshootLink.addEventListener( 'click', ( e ) => {\n\t\t\t\te.preventDefault();\n\t\t\t\tjQuery( 'html, body' ).animate(\n\t\t\t\t\t{\n\t\t\t\t\t\tscrollTop: jQuery( '#troubleshooting-apache' ).offset()\n\t\t\t\t\t\t\t.top,\n\t\t\t\t\t},\n\t\t\t\t\t'slow'\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\t}\n\n\t/**\n\t * Render cache wrapper element.\n\t *\n\t * @return {*} Notice or success message.\n\t */\n\tcacheWrap() {\n\t\tlet classNames = 'sui-hidden';\n\t\tif ( 'apache' === this.props.currentServer ) {\n\t\t\tclassNames = '';\n\t\t}\n\n\t\tconst enableButton = this.props.htaccessWritten ? (\n\t\t\t<Button\n\t\t\t\tonClick={ this.props.disable }\n\t\t\t\tclasses={ [\n\t\t\t\t\t'sui-button',\n\t\t\t\t\t'sui-button-ghost',\n\t\t\t\t\t'sui-margin-top',\n\t\t\t\t] }\n\t\t\t\ttext={ __( 'Deactivate', 'wphb' ) }\n\t\t\t/>\n\t\t) : (\n\t\t\t<Button\n\t\t\t\tonClick={ this.props.enable }\n\t\t\t\tclasses={ [\n\t\t\t\t\t'sui-button',\n\t\t\t\t\t'sui-button-blue',\n\t\t\t\t\t'sui-margin-top',\n\t\t\t\t] }\n\t\t\t\ttext={ __( 'Apply Rules', 'wphb' ) }\n\t\t\t/>\n\t\t);\n\n\t\tconst noticeText = createInterpolateElement(__('<p>We tried applying the .htaccess rules automatically but we weren’t able to. Make sure your file permissions on your .htaccess file are set to 644, or <button/> and apply the rules yourself.</p>', 'wphb'), {\n\t\t\tp: <p/>,\n\t\t\tbutton: <Button\n\t\t\t\turl=\"#apache-config-manual\"\n\t\t\t\tclasses={['switch-manual']}\n\t\t\t\ttext={__('switch to manual mode', 'wphb')}\n\t\t\t/>\n\t\t});\n\n\t\treturn (\n\t\t\t<div id=\"enable-cache-wrap\" className={ classNames }>\n\t\t\t\t{ this.props.htaccessError && (\n\t\t\t\t\t<Notice\n\t\t\t\t\t\tclasses={ [ 'sui-notice-warning' ] }\n\t\t\t\t\t\tmessage={ noticeText }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ enableButton }\n\t\t\t</div>\n\t\t);\n\t}\n\n\t/**\n\t * Render Apache tabs.\n\t *\n\t * @return {*} Tab content.\n\t */\n\trenderApacheTabs() {\n\t\tconst hideEnableButton =\n\t\t\tthis.props.fullyEnabled &&\n\t\t\t( ! this.props.htaccessWritten || 'nginx' === this.props.server );\n\n\t\tconst itemsBefore = [\n\t\t\t__( 'Copy & paste the generated code below into your .htaccess file', 'wphb' ),\n\t\t\t<React.Fragment key=\"2\">\n\t\t\t\t{ __( 'Next', 'wphb' ) },{ ' ' }\n\t\t\t\t<Button text={ __( 're-check your GZip status', 'wphb' ) } />\n\t\t\t\t{ ' ' }{ __( 'to see if it worked', 'wphb' ) }.{ ' ' }\n\t\t\t\t<Button id=\"troubleshooting-link\" text={ __( 'Still having issues?', 'wphb' ) } />\n\t\t\t</React.Fragment>\n\t\t];\n\n\t\tconst itemsAfter = [\n\t\t\t__( 'Look for your site in the file and find the line that starts with <Directory> - add the code above into that section and save the file.', 'wphb' ),\n\t\t\t__( 'Reload Apache/LiteSpeed.', 'wphb' ),\n\t\t\t__( \"If you don't know where those files are, or you aren't able to reload Apache/LiteSpeed, 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];\n\n\t\tconst tabs = [\n\t\t\t{\n\t\t\t\ttitle: __( 'Automatic', 'wphb' ),\n\t\t\t\tid: 'automatic',\n\t\t\t\tchecked: true,\n\t\t\t},\n\t\t\t{\n\t\t\t\ttitle: __( 'Manual', 'wphb' ),\n\t\t\t\tid: 'manual',\n\t\t\t},\n\t\t];\n\n\t\tconst content = [\n\t\t\t{\n\t\t\t\tid: 'automatic',\n\t\t\t\tcontent: (\n\t\t\t\t\t<React.Fragment>\n\t\t\t\t\t\t<span className=\"sui-description\">\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'Hummingbird can automatically apply GZip compression for Apache/LiteSpeed servers by writing your .htaccess file. Alternately, switch to Manual to apply these rules yourself.',\n\t\t\t\t\t\t\t\t'wphb'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t{ this.props.htaccessWritable && ! hideEnableButton && this.cacheWrap() }\n\t\t\t\t\t</React.Fragment>\n\t\t\t\t),\n\t\t\t\tactive: true,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 'manual',\n\t\t\t\tcontent: (\n\t\t\t\t\t<div className=\"apache-instructions\">\n\t\t\t\t\t\t<p className=\"sui-description\">\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'If you are unable to get the automated method working you can copy the generated code below into your .htaccess file to activate GZip compression.',\n\t\t\t\t\t\t\t\t'wphb'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</p>\n\n\t\t\t\t\t\t<OrderedList list={ itemsBefore } />\n\n\t\t\t\t\t\t<CodeSnippet code={ this.props.serverSnippets.apache } />\n\n\t\t\t\t\t\t<p\n\t\t\t\t\t\t\tclassName=\"sui-description sui-margin-top\"\n\t\t\t\t\t\t\tid=\"troubleshooting-apache\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<strong>{ __( 'Troubleshooting', 'wphb' ) }</strong>\n\t\t\t\t\t\t</p>\n\t\t\t\t\t\t<p className=\"sui-description\">\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'If .htaccess does not work, and you have access to vhosts.conf or httpd.conf try this:',\n\t\t\t\t\t\t\t\t'wphb'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</p>\n\t\t\t\t\t\t<OrderedList list={ itemsAfter } />\n\t\t\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\t\t</div>\n\t\t\t\t),\n\t\t\t},\n\t\t];\n\n\t\treturn (\n\t\t\t<div className=\"wphb-server-instructions\" id=\"wphb-server-instructions-apache\">\n\t\t\t\t<Tabs menu={ tabs } tabs={ content } />\n\t\t\t</div>\n\t\t);\n\t}\n\n\t/**\n\t * Render Nginx tab.\n\t *\n\t * @return {*} Tab content.\n\t */\n\trenderNginxTabs() {\n\t\tconst items = [\n\t\t\t__( \"Edit your nginx.conf. Usually it's located at /etc/nginx/nginx.conf or /usr/local/nginx/nginx.conf\", 'wphb' ),\n\t\t\t__( 'Copy the generated code found below and paste it inside your http or server block.', 'wphb' ),\n\t\t\t__( 'Reload/restart NGINX.', 'wphb' ),\n\t\t];\n\n\t\treturn (\n\t\t\t<div className=\"wphb-server-instructions\">\n\t\t\t\t<p className=\"sui-description\">\n\t\t\t\t\t{ __( 'For NGINX servers:', 'wphb' ) }\n\t\t\t\t</p>\n\n\t\t\t\t<OrderedList list={ items } />\n\n\t\t\t\t<p className=\"sui-description\">\n\t\t\t\t\t{ __(\n\t\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.',\n\t\t\t\t\t\t'wphb'\n\t\t\t\t\t) }\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\t<CodeSnippet code={ this.props.serverSnippets.nginx } />\n\t\t\t</div>\n\t\t);\n\t}\n\n\t/**\n\t * Render IIS tab.\n\t *\n\t * @return {*} Tab content.\n\t */\n\trenderIisTabs() {\n\t\treturn (\n\t\t\t<div className=\"wphb-server-instructions\">\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/cc771003(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</div>\n\t\t);\n\t}\n\n\t/**\n\t * Render Cloudflare tab.\n\t *\n\t * @since 2.7.2\n\t *\n\t * @return {*} Tab content.\n\t */\n\trenderCloudflareTabs() {\n\t\treturn (\n\t\t\t<div className=\"wphb-server-instructions\">\n\t\t\t\t<p className=\"sui-description\">\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Hummingbird can control your Cloudflare GZip compression settings from here. Simply add your Cloudflare API details and configure away',\n\t\t\t\t\t\t'wphb'\n\t\t\t\t\t) }\n\t\t\t\t</p>\n\t\t\t</div>\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\tif ( this.props.htaccessWritten && this.props.fullyEnabled ) {\n\t\t\treturn (\n\t\t\t\t<React.Fragment>\n\t\t\t\t\t<Notice\n\t\t\t\t\t\tclasses={ [ 'sui-notice-info' ] }\n\t\t\t\t\t\tmessage={ __(\n\t\t\t\t\t\t\t'Automatic .htaccess rules have been applied.',\n\t\t\t\t\t\t\t'wphb'\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tonClick={ this.props.disable }\n\t\t\t\t\t\tclasses={ [ 'sui-button', 'sui-button-ghost' ] }\n\t\t\t\t\t\ttext={ __( 'Deactivate', 'wphb' ) }\n\t\t\t\t\t/>\n\t\t\t\t</React.Fragment>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<React.Fragment>\n\t\t\t\t{ 'apache' === this.props.currentServer &&\n\t\t\t\t\tthis.renderApacheTabs() }\n\t\t\t\t{ 'nginx' === this.props.currentServer &&\n\t\t\t\t\tthis.renderNginxTabs() }\n\t\t\t\t{ 'iis' === this.props.currentServer && this.renderIisTabs() }\n\t\t\t\t{ 'cloudflare' === this.props.currentServer &&\n\t\t\t\t\tthis.renderCloudflareTabs() }\n\t\t\t</React.Fragment>\n\t\t);\n\t}\n}\n\nServerInstructions.contextType = UserContext;\n","/**\n * External dependencies\n */\nimport React from 'react';\nimport classNames from 'classnames';\n\n/**\n * Functional SettingsRow (sui-box-settings-row) component.\n *\n * @param {Object} props Component props.\n * @param {string} props.label\n * @param {string} props.description\n * @param {Object} props.content\n * @param {string} props.classes\n * @param {boolean} props.wide\n * @return {JSX.Element} SettingsRow component.\n * @class\n */\nexport default function SettingsRow( {\n\tlabel,\n\tdescription,\n\tcontent,\n\tclasses,\n\twide = false,\n} ) {\n\t// Wide layout.\n\tif ( wide ) {\n\t\treturn (\n\t\t\t<div className=\"sui-box-settings-row\">\n\t\t\t\t<div className=\"sui-box-settings-col-2\">\n\t\t\t\t\t<span className=\"sui-settings-label\">{ label }</span>\n\t\t\t\t\t{ content }\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif ( description ) {\n\t\treturn (\n\t\t\t<div className=\"sui-box-settings-row\">\n\t\t\t\t<div className=\"sui-box-settings-col-1\">\n\t\t\t\t\t<span className=\"sui-settings-label\">{ label }</span>\n\t\t\t\t\t<span className=\"sui-description\">{ description }</span>\n\t\t\t\t</div>\n\t\t\t\t<div className=\"sui-box-settings-col-2\">{ content }</div>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div className={ classNames( 'sui-box-settings-row', classes ) }>\n\t\t\t{ content }\n\t\t</div>\n\t);\n}\n","/**\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 Select from '../../components/sui-select';\nimport ServerInstructions from './server-instructions';\nimport SettingsRow from '../../components/sui-box-settings/row';\n\n/**\n * GzipConfig component.\n *\n * @since 2.1.1\n */\nexport default class GzipConfig 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\tcurrentServer: this.props.data.server_name,\n\t\t};\n\n\t\tthis.handleServerChange = this.handleServerChange.bind( this );\n\t}\n\n\t/**\n\t * Handle server select update.\n\t *\n\t * @param {Object} e\n\t */\n\thandleServerChange( e ) {\n\t\tthis.setState( {\n\t\t\tcurrentServer: e.target.value,\n\t\t} );\n\t}\n\n\t/**\n\t * Render component.\n\t *\n\t * @return {*} GzipConfig component.\n\t */\n\trender() {\n\t\tconst fullyEnabled =\n\t\t\tObject.entries( this.props.status ).filter( ( item ) => item[ 1 ] )\n\t\t\t\t.length === 3;\n\n\t\tif ( true === fullyEnabled ) {\n\t\t\treturn null;\n\t\t}\n\n\t\t// Remove Cloudflare from the server list.\n\t\tconst serverList = Object.entries(\n\t\t\tthis.props.data.servers_array\n\t\t).filter( ( value ) => {\n\t\t\treturn 'cloudflare' !== value[ 0 ];\n\t\t} );\n\n\t\tconst serverSelect = (\n\t\t\t<Select\n\t\t\t\tlabel={ __( 'Server type', 'wphb' ) }\n\t\t\t\titems={ serverList }\n\t\t\t\tselected={ this.state.currentServer }\n\t\t\t\tonChange={ this.handleServerChange }\n\t\t\t/>\n\t\t);\n\n\t\tconst serverInstructions = (\n\t\t\t<ServerInstructions\n\t\t\t\tcurrentServer={ this.state.currentServer }\n\t\t\t\tfullyEnabled={ fullyEnabled }\n\t\t\t\tgzipStatus={ this.props.status }\n\t\t\t\thtaccessError={ this.props.data.htaccess_error }\n\t\t\t\thtaccessWritable={ this.props.data.htaccess_writable }\n\t\t\t\thtaccessWritten={ this.props.data.htaccess_written }\n\t\t\t\tserverSnippets={ this.props.data.snippets }\n\t\t\t\tenable={ this.props.enableGzip }\n\t\t\t\tdisable={ this.props.disableGzip }\n\t\t\t\tserver={ this.props.data.server_name }\n\t\t\t/>\n\t\t);\n\n\t\treturn (\n\t\t\t<Box\n\t\t\t\tloading={ this.props.loading }\n\t\t\t\ttitle={ __( 'Configure', 'wphb' ) }\n\t\t\t\tboxClass={ [ 'box-gzip-settings' ] }\n\t\t\t\tcontent={\n\t\t\t\t\t<React.Fragment>\n\t\t\t\t\t\t<SettingsRow\n\t\t\t\t\t\t\tlabel={ __( 'Server type', 'wphb' ) }\n\t\t\t\t\t\t\tdescription={ __(\n\t\t\t\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\t\t\t'wphb'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tcontent={ serverSelect }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<SettingsRow\n\t\t\t\t\t\t\tlabel={ __( 'Enable compression' ) }\n\t\t\t\t\t\t\tdescription={ __(\n\t\t\t\t\t\t\t\t'Follow the instructions to activate GZip compression for this website.',\n\t\t\t\t\t\t\t\t'wphb'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tcontent={ serverInstructions }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</React.Fragment>\n\t\t\t\t}\n\t\t\t/>\n\t\t);\n\t}\n}\n","/**\n * External dependencies\n */\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\n\n/**\n * WordPress dependencies\n */\nimport domReady from '@wordpress/dom-ready';\n\n/**\n * Internal dependencies\n */\nimport '../app.scss';\nimport HBAPIFetch from '../api';\nimport { UserContext } from '../context';\nimport GzipSummary from '../views/gzip/summary';\nimport GzipConfig from '../views/gzip/configure';\n\n/**\n * GzipPage component.\n *\n * @since 2.1.1\n */\nclass GzipPage 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\tstatus: {\n\t\t\t\tHTML: false,\n\t\t\t\tJavaScript: false,\n\t\t\t\tCSS: false,\n\t\t\t},\n\t\t};\n\n\t\tthis.updateStatus = this.updateStatus.bind( this );\n\t}\n\n\t/**\n\t * Invoked immediately after a component is mounted.\n\t */\n\tcomponentDidMount() {\n\t\tthis.state.api\n\t\t\t.post( 'gzip_status', 'get' )\n\t\t\t.then( ( response ) => {\n\t\t\t\tthis.setState( {\n\t\t\t\t\tloading: false,\n\t\t\t\t\tstatus: response.status,\n\t\t\t\t} );\n\t\t\t} )\n\t\t\t.catch( ( error ) => window.console.log( error ) );\n\t}\n\n\t/**\n\t * Update Gzip compression status.\n\t */\n\tupdateStatus() {\n\t\tthis.setState( { loading: true } );\n\n\t\tthis.state.api\n\t\t\t.post( 'gzip_status', 'refresh' )\n\t\t\t.then( ( response ) => {\n\t\t\t\tthis.setState( {\n\t\t\t\t\tloading: false,\n\t\t\t\t\tstatus: response.status,\n\t\t\t\t} );\n\t\t\t} )\n\t\t\t.catch( ( error ) => window.console.log( error ) );\n\t}\n\n\t/**\n\t * Enable Gzip compression via .htaccess rules.\n\t *\n\t * @param {string} action Available actions: add|remove.\n\t */\n\tgzipRules( action = 'add' ) {\n\t\tthis.setState( { loading: true } );\n\n\t\tthis.state.api\n\t\t\t.post( 'gzip_rules', action )\n\t\t\t.then( ( response ) => {\n\t\t\t\tthis.props.wphbData.module.htaccess_written =\n\t\t\t\t\tresponse.htaccess_written; // Overwrite the prop.\n\n\t\t\t\tthis.setState( {\n\t\t\t\t\tloading: false,\n\t\t\t\t\tstatus: response.status,\n\t\t\t\t} );\n\t\t\t} )\n\t\t\t.catch( ( error ) => window.console.log( error ) );\n\t}\n\n\t/**\n\t * Render component.\n\t *\n\t * @return {*} Gzip page.\n\t */\n\trender() {\n\t\treturn (\n\t\t\t<UserContext.Provider value={ this.state }>\n\t\t\t\t<GzipSummary\n\t\t\t\t\tdata={ this.props.wphbData.module }\n\t\t\t\t\tlink={ this.state.links }\n\t\t\t\t\tloading={ this.state.loading }\n\t\t\t\t\tonUpdate={ this.updateStatus }\n\t\t\t\t\tstatus={ this.state.status }\n\t\t\t\t/>\n\t\t\t\t<GzipConfig\n\t\t\t\t\tdata={ this.props.wphbData.module }\n\t\t\t\t\tdisableGzip={ () => this.gzipRules( 'remove' ) }\n\t\t\t\t\tenableGzip={ () => this.gzipRules( 'add' ) }\n\t\t\t\t\tloading={ this.state.loading }\n\t\t\t\t\tstatus={ this.state.status }\n\t\t\t\t/>\n\t\t\t</UserContext.Provider>\n\t\t);\n\t}\n}\n\nGzipPage.propTypes = {\n\twphbData: PropTypes.object,\n};\n\ndomReady( function() {\n\tconst gzipPageDiv = document.getElementById( 'wrap-wphb-gzip' );\n\tif ( gzipPageDiv ) {\n\t\tReactDOM.render(\n\t\t\t/*** @var {object} window.wphb */\n\t\t\t<GzipPage wphbData={ window.wphb } />,\n\t\t\tgzipPageDiv\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","/*!\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\t700: 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__(9901); })\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","GzipSummary","gzipCompression","failedGzip","getFailedItems","filter","item","htaccess_writable","htaccess_written","link","forum","HTML","is_white_labeled","is_wpmu_hosting","tag","classnames","labelData","tooltipText","checkExternalProblems","gzip","getStatus","rightAction","onUpdate","getContent","Select","$el","jQuery","el","SUIselect2","minimumResultsForSearch","on","onChange","_this$props$placehold","selectOptions","width","htmlFor","selectId","selected","multiple","placeholder","description","ref","SupportLink","isMember","chatLink","forumLink","_ref$noFormatting","noFormatting","CodeSnippet","initSUI","codeSnippet","document","querySelector","SUI","suiCodeSnippet","code","OrderedList","list","Tabs","sideTabs","tabs","menuItems","menu","active","checked","role","tabIndex","hidden","flushed","isEmpty","indoc","offset","output","tokenizer","createFrame","tokenStart","tokenLength","prevOffset","leadingTextStart","isValidConversionMap","conversionMap","isObject","every","isValidElement","proceed","matches","exec","startedAt","index","match","isClosing","isSelfClosed","nextToken","tokenType","startOffset","stackDepth","addText","stackLeadingText","pop","addChild","endOffset","cloneElement","closeOuterElement","stackTop","frame","parent","interpolatedString","lastIndex","createElement","Fragment","ServerInstructions","getElementById","suiTabs","troubleshootLink","preventDefault","animate","scrollTop","top","initSUIcomponents","currentServer","enableButton","htaccessWritten","disable","enable","noticeText","createInterpolateElement","p","button","htaccessError","hideEnableButton","fullyEnabled","server","itemsBefore","itemsAfter","htaccessWritable","cacheWrap","serverSnippets","apache","context","links","chat","nginx","renderApacheTabs","renderNginxTabs","renderIisTabs","renderCloudflareTabs","SettingsRow","_ref$wide","wide","contextType","GzipConfig","state","server_name","handleServerChange","bind","_assertThisInitialized","setState","serverList","servers_array","serverSelect","serverInstructions","gzipStatus","htaccess_error","snippets","enableGzip","disableGzip","GzipPage","api","wphbData","JavaScript","CSS","updateStatus","_this2","post","catch","console","log","_this3","_this4","action","module","_this5","Provider","gzipRules","gzipPageDiv","ReactDOM","hasOwn","arg","argType","inner","exports","default","getOwnPropertySymbols","propIsEnumerable","propertyIsEnumerable","assign","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","number","object","string","symbol","any","arrayOf","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","f","g","h","k","performance","now","l","unstable_now","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","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","splice","getter","__esModule","definition","o","defineProperty","enumerable","prop","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}