Hummingbird Page Speed Optimization - Version 2.4.2

Version Description

( 2020-03-17 ) = - Fix: Plugin deactivation not removing advanced-cache.php file

Download this release

Release Info

Developer vanyukov
Plugin Icon 128x128 Hummingbird Page Speed Optimization
Version 2.4.2
Comparing to
See all releases

Code changes from version 2.4.1 to 2.4.2

admin/assets/js/wphb-app.min.js CHANGED
@@ -1,9 +1,9 @@
1
- !function(e){var t={};function n(i){if(t[i])return t[i].exports;var r=t[i]={i:i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(i,r,function(t){return e[t]}.bind(null,r));return i},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=55)}([function(e,t,n){"use strict";var i=n(19),r=n.n(i);function o(e){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var s=new function(){var e=ajaxurl,t=wphb.nonces.HBFetchNonce;function i(i){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"GET";r.nonce=t,r.action=i;var a={data:r,method:s};return a.url=e,new(0,n(53).Promise)((function(e,t){jQuery.ajax(a).done(e).fail(t)})).then((function(e){return function(e){"object"!==o(e)&&(e=JSON.parse(e));if(e.success)return e.data;var t=e.data||{},n=new Error(t.message||"Error trying to fetch response from server");throw n.response=e,n}(e)}))}var s={notice:{dismiss:function(e){return i("wphb_notice_dismiss",{id:e},"POST")},dismissCloudflareDash:function(){return i("wphb_cf_notice_dismiss",{},"POST")}},caching:{activate:function(){return i("wphb_caching_activate",{},"POST").then((function(e){return e}))},saveSettings:function(e,t){return i("wphb_"+e+"_save_settings",{data:t},"POST").then((function(e){return e}))},clearCache:function(e){return i("wphb_clear_module_cache",{module:e},"POST").then((function(e){return e}))},setExpiration:function(e){return i("wphb_caching_set_expiration",{expiry_times:e},"POST").then((function(e){return e}))},setServer:function(e){return i("wphb_caching_set_server_type",{value:e},"POST")},reloadSnippets:function(e,t){return i("wphb_caching_reload_snippet",{type:e,expiry_times:t},"POST").then((function(e){return e}))},updateHtaccess:function(){return i("wphb_caching_update_htaccess",{},"POST").then((function(e){return e}))},recheckExpiry:function(){return i("wphb_caching_recheck_expiry",{},"POST").then((function(e){return e}))},clearCacheForPost:function(e){return i("wphb_gutenberg_clear_post_cache",{postId:e},"POST")},cancelPreload:function(){return i("wphb_preload_cancel",{},"POST")}},cloudflare:{connect:function(e,t,n){return i("wphb_cloudflare_connect",{step:e,formData:t,cfData:n},"POST").then((function(e){return e}))},setExpiration:function(e){return i("wphb_cloudflare_set_expiry",{value:e},"POST")},purgeCache:function(){return i("wphb_cloudflare_purge_cache",{},"POST")},recheckZones:function(){return i("wphb_cloudflare_recheck_zones",{},"POST")}},dashboard:{skipSetup:function(){return i("wphb_dash_skip_setup",{},"POST")}},minification:{toggleCDN:function(e){return i("wphb_minification_toggle_cdn",{value:e},"POST")},toggleLog:function(e){return i("wphb_minification_toggle_log",{value:e},"POST")},toggleView:function(e){return i("wphb_minification_toggle_view",{value:e},"POST")},startCheck:function(){return i("wphb_minification_start_check",{},"POST")},checkStep:function(e){return i("wphb_minification_check_step",{step:e},"POST").then((function(e){return e}))},finishCheck:function(){return i("wphb_minification_finish_scan",{},"POST").then((function(e){return e}))},cancelScan:function(){return i("wphb_minification_cancel_scan",{},"POST")},saveCriticalCss:function(e){return i("wphb_minification_save_critical_css",{form:e},"POST").then((function(e){return e}))},updateAssetPath:function(e){return i("wphb_minification_update_asset_path",{value:e},"POST")},resetAsset:function(e){return i("wphb_minification_reset_asset",{value:e},"POST")},saveNetworkSettings:function(e){return i("wphb_minification_update_network_settings",{settings:e},"POST")},skipTour:function(){return i("wphb_minification_skip_tour",{},"POST")},updateExcludeList:function(e){return i("wphb_minification_save_exclude_list",{data:e},"POST")}},performance:{runTest:function(){return i("wphb_performance_run_test",{},"POST").then((function(e){return e}))},savePerformanceTestSettings:function(e){return i("wphb_performance_save_settings",{data:e},"POST")}},advanced:{saveSettings:function(e,t){return i("wphb_advanced_save_settings",{data:e,form:t},"POST").then((function(e){return e}))},deleteSelectedData:function(e){return i("wphb_advanced_db_delete_data",{data:e},"POST").then((function(e){return e}))},scheduleCleanup:function(){return i("wphb_pro_advanced_db_schedule",{},"POST")}},logger:{clear:function(e){return i("wphb_logger_clear",{module:e},"POST").then((function(e){return e}))}},settings:{saveSettings:function(e){return i("wphb_admin_settings_save_settings",{form_data:e},"POST").then((function(e){return e}))},resetSettings:function(){return i("wphb_reset_settings",{},"POST")}},common:{addRecipient:function(e,t,n,r){return i("wphb_pro_add_recipient",{module:e,setting:t,email:n,name:r},"POST").then((function(e){return e}))},saveReportsSettings:function(e,t){return i("wphb_pro_save_report_settings",{module:e,data:t},"POST").then((function(e){return e}))}},uptime:{resendConfirmationEmail:function(e,t){return i("wphb_pro_resend_confirmation",{name:e,email:t},"POST").then((function(e){return e}))}}};r()(this,s)};t.a=s},function(e,t,n){var i=n(10),r=n(22),o=n(23),s="[object Null]",a="[object Undefined]",c=i?i.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?a:s:c&&c in Object(e)?r(e):o(e)}},function(e,t,n){var i=n(11),r="object"==typeof self&&self&&self.Object===Object&&self,o=i||r||Function("return this")();e.exports=o},function(e,t){e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},function(e,t,n){var i=n(9),r=n(15);e.exports=function(e){return null!=e&&r(e.length)&&!i(e)}},function(e,t){e.exports=function(e){return null!=e&&"object"==typeof e}},function(e,t,n){var i=n(7),r=n(13),o=Object.prototype.hasOwnProperty;e.exports=function(e,t,n){var s=e[t];o.call(e,t)&&r(s,n)&&(void 0!==n||t in e)||i(e,t,n)}},function(e,t,n){var i=n(8);e.exports=function(e,t,n){"__proto__"==t&&i?i(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}},function(e,t,n){var i=n(20),r=function(){try{var e=i(Object,"defineProperty");return e({},"",{}),e}catch(e){}}();e.exports=r},function(e,t,n){var i=n(1),r=n(3),o="[object AsyncFunction]",s="[object Function]",a="[object GeneratorFunction]",c="[object Proxy]";e.exports=function(e){if(!r(e))return!1;var t=i(e);return t==s||t==a||t==o||t==c}},function(e,t,n){var i=n(2).Symbol;e.exports=i},function(e,t,n){(function(t){var n="object"==typeof t&&t&&t.Object===Object&&t;e.exports=n}).call(this,n(12))},function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t){e.exports=function(e,t){return e===t||e!=e&&t!=t}},function(e,t){e.exports=function(e){return e}},function(e,t){var n=9007199254740991;e.exports=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=n}},function(e,t){var n=9007199254740991,i=/^(?:0|[1-9]\d*)$/;e.exports=function(e,t){var r=typeof e;return!!(t=null==t?n:t)&&("number"==r||"symbol"!=r&&i.test(e))&&e>-1&&e%1==0&&e<t}},function(e,t){var n=Object.prototype;e.exports=function(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||n)}},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t,n){var i=n(6),r=n(28),o=n(29),s=n(4),a=n(17),c=n(38),u=Object.prototype.hasOwnProperty,l=o((function(e,t){if(a(t)||s(t))r(t,c(t),e);else for(var n in t)u.call(t,n)&&i(e,n,t[n])}));e.exports=l},function(e,t,n){var i=n(21),r=n(27);e.exports=function(e,t){var n=r(e,t);return i(n)?n:void 0}},function(e,t,n){var i=n(9),r=n(24),o=n(3),s=n(26),a=/^\[object .+?Constructor\]$/,c=Function.prototype,u=Object.prototype,l=c.toString,d=u.hasOwnProperty,p=RegExp("^"+l.call(d).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=function(e){return!(!o(e)||r(e))&&(i(e)?p:a).test(s(e))}},function(e,t,n){var i=n(10),r=Object.prototype,o=r.hasOwnProperty,s=r.toString,a=i?i.toStringTag:void 0;e.exports=function(e){var t=o.call(e,a),n=e[a];try{e[a]=void 0;var i=!0}catch(e){}var r=s.call(e);return i&&(t?e[a]=n:delete e[a]),r}},function(e,t){var n=Object.prototype.toString;e.exports=function(e){return n.call(e)}},function(e,t,n){var i,r=n(25),o=(i=/[^.]+$/.exec(r&&r.keys&&r.keys.IE_PROTO||""))?"Symbol(src)_1."+i:"";e.exports=function(e){return!!o&&o in e}},function(e,t,n){var i=n(2)["__core-js_shared__"];e.exports=i},function(e,t){var n=Function.prototype.toString;e.exports=function(e){if(null!=e){try{return n.call(e)}catch(e){}try{return e+""}catch(e){}}return""}},function(e,t){e.exports=function(e,t){return null==e?void 0:e[t]}},function(e,t,n){var i=n(6),r=n(7);e.exports=function(e,t,n,o){var s=!n;n||(n={});for(var a=-1,c=t.length;++a<c;){var u=t[a],l=o?o(n[u],e[u],u,n,e):void 0;void 0===l&&(l=e[u]),s?r(n,u,l):i(n,u,l)}return n}},function(e,t,n){var i=n(30),r=n(37);e.exports=function(e){return i((function(t,n){var i=-1,o=n.length,s=o>1?n[o-1]:void 0,a=o>2?n[2]:void 0;for(s=e.length>3&&"function"==typeof s?(o--,s):void 0,a&&r(n[0],n[1],a)&&(s=o<3?void 0:s,o=1),t=Object(t);++i<o;){var c=n[i];c&&e(t,c,i,s)}return t}))}},function(e,t,n){var i=n(14),r=n(31),o=n(33);e.exports=function(e,t){return o(r(e,t,i),e+"")}},function(e,t,n){var i=n(32),r=Math.max;e.exports=function(e,t,n){return t=r(void 0===t?e.length-1:t,0),function(){for(var o=arguments,s=-1,a=r(o.length-t,0),c=Array(a);++s<a;)c[s]=o[t+s];s=-1;for(var u=Array(t+1);++s<t;)u[s]=o[s];return u[t]=n(c),i(e,this,u)}}},function(e,t){e.exports=function(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}},function(e,t,n){var i=n(34),r=n(36)(i);e.exports=r},function(e,t,n){var i=n(35),r=n(8),o=n(14),s=r?function(e,t){return r(e,"toString",{configurable:!0,enumerable:!1,value:i(t),writable:!0})}:o;e.exports=s},function(e,t){e.exports=function(e){return function(){return e}}},function(e,t){var n=800,i=16,r=Date.now;e.exports=function(e){var t=0,o=0;return function(){var s=r(),a=i-(s-o);if(o=s,a>0){if(++t>=n)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}},function(e,t,n){var i=n(13),r=n(4),o=n(16),s=n(3);e.exports=function(e,t,n){if(!s(n))return!1;var a=typeof t;return!!("number"==a?r(n)&&o(t,n.length):"string"==a&&t in n)&&i(n[t],e)}},function(e,t,n){var i=n(39),r=n(50),o=n(4);e.exports=function(e){return o(e)?i(e):r(e)}},function(e,t,n){var i=n(40),r=n(41),o=n(43),s=n(44),a=n(16),c=n(46),u=Object.prototype.hasOwnProperty;e.exports=function(e,t){var n=o(e),l=!n&&r(e),d=!n&&!l&&s(e),p=!n&&!l&&!d&&c(e),h=n||l||d||p,f=h?i(e.length,String):[],v=f.length;for(var m in e)!t&&!u.call(e,m)||h&&("length"==m||d&&("offset"==m||"parent"==m)||p&&("buffer"==m||"byteLength"==m||"byteOffset"==m)||a(m,v))||f.push(m);return f}},function(e,t){e.exports=function(e,t){for(var n=-1,i=Array(e);++n<e;)i[n]=t(n);return i}},function(e,t,n){var i=n(42),r=n(5),o=Object.prototype,s=o.hasOwnProperty,a=o.propertyIsEnumerable,c=i(function(){return arguments}())?i:function(e){return r(e)&&s.call(e,"callee")&&!a.call(e,"callee")};e.exports=c},function(e,t,n){var i=n(1),r=n(5),o="[object Arguments]";e.exports=function(e){return r(e)&&i(e)==o}},function(e,t){var n=Array.isArray;e.exports=n},function(e,t,n){(function(e){var i=n(2),r=n(45),o=t&&!t.nodeType&&t,s=o&&"object"==typeof e&&e&&!e.nodeType&&e,a=s&&s.exports===o?i.Buffer:void 0,c=(a?a.isBuffer:void 0)||r;e.exports=c}).call(this,n(18)(e))},function(e,t){e.exports=function(){return!1}},function(e,t,n){var i=n(47),r=n(48),o=n(49),s=o&&o.isTypedArray,a=s?r(s):i;e.exports=a},function(e,t,n){var i=n(1),r=n(15),o=n(5),s={};s["[object Float32Array]"]=s["[object Float64Array]"]=s["[object Int8Array]"]=s["[object Int16Array]"]=s["[object Int32Array]"]=s["[object Uint8Array]"]=s["[object Uint8ClampedArray]"]=s["[object Uint16Array]"]=s["[object Uint32Array]"]=!0,s["[object Arguments]"]=s["[object Array]"]=s["[object ArrayBuffer]"]=s["[object Boolean]"]=s["[object DataView]"]=s["[object Date]"]=s["[object Error]"]=s["[object Function]"]=s["[object Map]"]=s["[object Number]"]=s["[object Object]"]=s["[object RegExp]"]=s["[object Set]"]=s["[object String]"]=s["[object WeakMap]"]=!1,e.exports=function(e){return o(e)&&r(e.length)&&!!s[i(e)]}},function(e,t){e.exports=function(e){return function(t){return e(t)}}},function(e,t,n){(function(e){var i=n(11),r=t&&!t.nodeType&&t,o=r&&"object"==typeof e&&e&&!e.nodeType&&e,s=o&&o.exports===r&&i.process,a=function(){try{var e=o&&o.require&&o.require("util").types;return e||s&&s.binding&&s.binding("util")}catch(e){}}();e.exports=a}).call(this,n(18)(e))},function(e,t,n){var i=n(17),r=n(51),o=Object.prototype.hasOwnProperty;e.exports=function(e){if(!i(e))return r(e);var t=[];for(var n in Object(e))o.call(e,n)&&"constructor"!=n&&t.push(n);return t}},function(e,t,n){var i=n(52)(Object.keys,Object);e.exports=i},function(e,t){e.exports=function(e,t){return function(n){return e(t(n))}}},function(e,t,n){(function(t,n){
2
  /*!
3
  * @overview es6-promise - a tiny implementation of Promises/A+.
4
  * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)
5
  * @license Licensed under MIT license
6
  * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE
7
  * @version v4.2.8+1e68dce6
8
- */var i;i=function(){"use strict";function e(e){return"function"==typeof e}var i=Array.isArray?Array.isArray:function(e){return"[object Array]"===Object.prototype.toString.call(e)},r=0,o=void 0,s=void 0,a=function(e,t){f[r]=e,f[r+1]=t,2===(r+=2)&&(s?s(v):y())},c="undefined"!=typeof window?window:void 0,u=c||{},l=u.MutationObserver||u.WebKitMutationObserver,d="undefined"==typeof self&&void 0!==t&&"[object process]"==={}.toString.call(t),p="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel;function h(){var e=setTimeout;return function(){return e(v,1)}}var f=new Array(1e3);function v(){for(var e=0;e<r;e+=2)(0,f[e])(f[e+1]),f[e]=void 0,f[e+1]=void 0;r=0}var m,g,b,w,y=void 0;function _(e,t){var n=this,i=new this.constructor(C);void 0===i[S]&&L(i);var r=n._state;if(r){var o=arguments[r-1];a((function(){return F(r,i,o,n._result)}))}else I(n,i,e,t);return i}function x(e){if(e&&"object"==typeof e&&e.constructor===this)return e;var t=new this(C);return j(t,e),t}d?y=function(){return t.nextTick(v)}:l?(g=0,b=new l(v),w=document.createTextNode(""),b.observe(w,{characterData:!0}),y=function(){w.data=g=++g%2}):p?((m=new MessageChannel).port1.onmessage=v,y=function(){return m.port2.postMessage(0)}):y=void 0===c?function(){try{var e=Function("return this")().require("vertx");return void 0!==(o=e.runOnLoop||e.runOnContext)?function(){o(v)}:h()}catch(e){return h()}}():h();var S=Math.random().toString(36).substring(2);function C(){}var k=void 0,P=1,T=2;function A(t,n,i){n.constructor===t.constructor&&i===_&&n.constructor.resolve===x?function(e,t){t._state===P?O(e,t._result):t._state===T?D(e,t._result):I(t,void 0,(function(t){return j(e,t)}),(function(t){return D(e,t)}))}(t,n):void 0===i?O(t,n):e(i)?function(e,t,n){a((function(e){var i=!1,r=function(e,t,n,i){try{e.call(t,n,i)}catch(e){return e}}(n,t,(function(n){i||(i=!0,t!==n?j(e,n):O(e,n))}),(function(t){i||(i=!0,D(e,t))}),e._label);!i&&r&&(i=!0,D(e,r))}),e)}(t,n,i):O(t,n)}function j(e,t){if(e===t)D(e,new TypeError("You cannot resolve a promise with itself"));else if(r=typeof(i=t),null===i||"object"!==r&&"function"!==r)O(e,t);else{var n=void 0;try{n=t.then}catch(t){return void D(e,t)}A(e,t,n)}var i,r}function B(e){e._onerror&&e._onerror(e._result),E(e)}function O(e,t){e._state===k&&(e._result=t,e._state=P,0!==e._subscribers.length&&a(E,e))}function D(e,t){e._state===k&&(e._state=T,e._result=t,a(B,e))}function I(e,t,n,i){var r=e._subscribers,o=r.length;e._onerror=null,r[o]=t,r[o+P]=n,r[o+T]=i,0===o&&e._state&&a(E,e)}function E(e){var t=e._subscribers,n=e._state;if(0!==t.length){for(var i=void 0,r=void 0,o=e._result,s=0;s<t.length;s+=3)i=t[s],r=t[s+n],i?F(n,i,r,o):r(o);e._subscribers.length=0}}function F(t,n,i,r){var o=e(i),s=void 0,a=void 0,c=!0;if(o){try{s=i(r)}catch(e){c=!1,a=e}if(n===s)return void D(n,new TypeError("A promises callback cannot return that same promise."))}else s=r;n._state!==k||(o&&c?j(n,s):!1===c?D(n,a):t===P?O(n,s):t===T&&D(n,s))}var H=0;function L(e){e[S]=H++,e._state=void 0,e._result=void 0,e._subscribers=[]}var U=function(){function e(e,t){this._instanceConstructor=e,this.promise=new e(C),this.promise[S]||L(this.promise),i(t)?(this.length=t.length,this._remaining=t.length,this._result=new Array(this.length),0===this.length?O(this.promise,this._result):(this.length=this.length||0,this._enumerate(t),0===this._remaining&&O(this.promise,this._result))):D(this.promise,new Error("Array Methods must be provided an Array"))}return e.prototype._enumerate=function(e){for(var t=0;this._state===k&&t<e.length;t++)this._eachEntry(e[t],t)},e.prototype._eachEntry=function(e,t){var n=this._instanceConstructor,i=n.resolve;if(i===x){var r=void 0,o=void 0,s=!1;try{r=e.then}catch(e){s=!0,o=e}if(r===_&&e._state!==k)this._settledAt(e._state,t,e._result);else if("function"!=typeof r)this._remaining--,this._result[t]=e;else if(n===W){var a=new n(C);s?D(a,o):A(a,e,r),this._willSettleAt(a,t)}else this._willSettleAt(new n((function(t){return t(e)})),t)}else this._willSettleAt(i(e),t)},e.prototype._settledAt=function(e,t,n){var i=this.promise;i._state===k&&(this._remaining--,e===T?D(i,n):this._result[t]=n),0===this._remaining&&O(i,this._result)},e.prototype._willSettleAt=function(e,t){var n=this;I(e,void 0,(function(e){return n._settledAt(P,t,e)}),(function(e){return n._settledAt(T,t,e)}))},e}(),W=function(){function t(e){this[S]=H++,this._result=this._state=void 0,this._subscribers=[],C!==e&&("function"!=typeof e&&function(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}(),this instanceof t?function(e,t){try{t((function(t){j(e,t)}),(function(t){D(e,t)}))}catch(t){D(e,t)}}(this,e):function(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}())}return t.prototype.catch=function(e){return this.then(null,e)},t.prototype.finally=function(t){var n=this.constructor;return e(t)?this.then((function(e){return n.resolve(t()).then((function(){return e}))}),(function(e){return n.resolve(t()).then((function(){throw e}))})):this.then(t,t)},t}();return W.prototype.then=_,W.all=function(e){return new U(this,e).promise},W.race=function(e){var t=this;return i(e)?new t((function(n,i){for(var r=e.length,o=0;o<r;o++)t.resolve(e[o]).then(n,i)})):new t((function(e,t){return t(new TypeError("You must pass an array to race."))}))},W.resolve=x,W.reject=function(e){var t=new this(C);return D(t,e),t},W._setScheduler=function(e){s=e},W._setAsap=function(e){a=e},W._asap=a,W.polyfill=function(){var e=void 0;if(void 0!==n)e=n;else if("undefined"!=typeof self)e=self;else try{e=Function("return this")()}catch(e){throw new Error("polyfill failed because global object is unavailable in this environment")}var t=e.Promise;if(t){var i=null;try{i=Object.prototype.toString.call(t.resolve())}catch(e){}if("[object Promise]"===i&&!t.cast)return}e.Promise=W},W.Promise=W,W},e.exports=i()}).call(this,n(54),n(12))},function(e,t){var n,i,r=e.exports={};function o(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}function a(e){if(n===setTimeout)return setTimeout(e,0);if((n===o||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:o}catch(e){n=o}try{i="function"==typeof clearTimeout?clearTimeout:s}catch(e){i=s}}();var c,u=[],l=!1,d=-1;function p(){l&&c&&(l=!1,c.length?u=c.concat(u):d=-1,u.length&&h())}function h(){if(!l){var e=a(p);l=!0;for(var t=u.length;t;){for(c=u,u=[];++d<t;)c&&c[d].run();d=-1,t=u.length}c=null,l=!1,function(e){if(i===clearTimeout)return clearTimeout(e);if((i===s||!i)&&clearTimeout)return i=clearTimeout,clearTimeout(e);try{i(e)}catch(t){try{return i.call(null,e)}catch(t){return i.call(this,e)}}}(e)}}function f(e,t){this.fun=e,this.array=t}function v(){}r.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];u.push(new f(e,t)),1!==u.length||l||a(h)},f.prototype.run=function(){this.fun.apply(null,this.array)},r.title="browser",r.browser=!0,r.env={},r.argv=[],r.version="",r.versions={},r.on=v,r.addListener=v,r.once=v,r.off=v,r.removeListener=v,r.removeAllListeners=v,r.emit=v,r.prependListener=v,r.prependOnceListener=v,r.listeners=function(e){return[]},r.binding=function(e){throw new Error("process.binding is not supported")},r.cwd=function(){return"/"},r.chdir=function(e){throw new Error("process.chdir is not supported")},r.umask=function(){return 0}},function(e,t,n){n(56),n(57),n(58),n(79),n(59),n(60),n(61),n(62),n(63),n(64),jQuery(document).ready((function(){window.WPHB_Admin.init()}))},function(e,t,n){"use strict";n.r(t);var i=n(0);!function(e){var t={modules:[],init:function(){var n=document.querySelector("#wphb-dismissable > .sui-notice-dismiss");n&&n.addEventListener("click",(function(){var e=n.parentElement.getAttribute("data-id");i.a.notice.dismiss(e)})),e(".wphb-logging-buttons").on("click",".wphb-logs-clear",(function(e){e.preventDefault(),i.a.logger.clear(e.target.dataset.module).then((function(e){void 0!==e.success&&(e.success?t.notices.show("wphb-ajax-update-notice",!0,"success",e.message):t.notices.show("wphb-ajax-update-notice",!0,"error",e.message))}))})),e("#add-recipient").on("click",(function(){var n="",r="reports";window.location.search.includes("wphb-performance")?n="performance":window.location.search.includes("wphb-uptime")&&(n="uptime",window.location.search.includes("notifications")&&(r="notifications"));var o=e("#reporting-email"),s=o.closest(".sui-form-field"),a=o.val(),c=e("#reporting-first-name").val();s.removeClass("sui-form-field-error"),s.find(".sui-error-message").remove(),i.a.common.addRecipient(n,r,a,c).then((function(n){var i=e('<div class="sui-recipient"/>');"notifications"===r&&i.append('<span class="sui-recipient-status"><i class="sui-icon-clock" aria-hidden="true"></i></span>'),i.append('<span class="sui-recipient-name"/>'),i.find(".sui-recipient-name").append(n.name),i.append(e('<span class="sui-recipient-email"/>').html(a)),"notifications"===r&&i.append(e("<button/>").attr({class:"sui-button-icon wphb-resend-recipient sui-tooltip",type:"button","data-tooltip":wphb.strings.resendEmail}).html('<i class="sui-icon-send" aria-hidden="true"></i>')),i.append(e("<button/>").attr({class:"sui-button-icon wphb-remove-recipient",type:"button"}).html('<i class="sui-icon-trash" aria-hidden="true"></i>')),e("<input>").attr({type:"hidden",id:"report-recipient",name:"report-recipients[]",value:JSON.stringify({email:n.email,name:n.name})}).appendTo(i),e(".sui-recipients").append(i),e("#reporting-email").val(""),e("#reporting-first-name").val(""),e(".wphb-no-recipients").slideUp(),window.SUI.closeModal(),e(".sui-notice-top.sui-notice-success").hide(),e("#wphb-pending-sub-notice").hide(),e("#wphb-confirm-sub-notice").show(),t.notices.show("wphb-ajax-update-notice",!1,"info",c+wphb.strings.successRecipientAdded)})).catch((function(e){s.addClass("sui-form-field-error"),s.append('<span class="sui-error-message"/>'),s.find(".sui-error-message").append(e.message)}))}));var r=e("body");r.on("submit",".wphb-report-settings",(function(n){n.preventDefault(),e("#wphb-confirm-sub-notice").slideUp(),e(this).find(".button").attr("disabled","disabled"),i.a.common.saveReportsSettings(this.dataset.module,e(this).serialize()).then((function(n){void 0!==n&&n.success?n.enabled||""!==n.notice?(e(".sui-notice-top").hide(),e(".sui-box-body > .sui-notice-default:first-of-type").addClass("sui-notice-success").removeClass("sui-notice-default"),e(".sui-box-body > .sui-notice-success:first-of-type > p").text(n.recipientNotice),t.notices.show("wphb-ajax-update-notice",!0,"success",n.enabled?wphb.strings.confirmRecipient:n.notice)):window.location.search+="&updated=true":t.notices.show("wphb-ajax-update-notice",!0,"error",wphb.strings.errorSettingsUpdate)}))})),r.on("click",".wphb-remove-recipient",(function(){e(this).closest(".sui-recipient").remove();var t='input[id="report-recipient"][value='+e(this).attr("data-id")+"]";e(".wphb-report-settings").find(t).remove(),0===e(".sui-recipient").length&&(e("#wphb-pending-sub-notice").slideUp(),e(".wphb-no-recipients").slideDown())})),e("#chk1").on("click",(function(){e(".schedule-box").toggleClass("sui-hidden")})),e('select[name="report-frequency"]').change((function(){var t=e(this).val();"1"===t?e(this).closest(".schedule-box").find("div.days-container").hide():(e(this).closest(".schedule-box").find("div.days-container").show(),"7"===t?(e(this).closest(".schedule-box").find('[data-type="week"]').show(),e(this).closest(".schedule-box").find('[data-type="month"]').hide()):(e(this).closest(".schedule-box").find('[data-type="week"]').hide(),e(this).closest(".schedule-box").find('[data-type="month"]').show()))})).change()},initModule:function(e){return this.hasOwnProperty(e)?(this.modules[e]=this[e].init(),this.modules[e]):{}},getModule:function(e){return void 0!==this.modules[e]?this.modules[e]:this.initModule(e)}};t.notices={init:function(){},show:function(t){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:wphb.strings.successUpdate,o=e("#"+t);n&&window.scrollTo(0,0),""!==i&&(o.removeClass("sui-notice-error"),o.removeClass("sui-notice-success"),o.removeClass("sui-notice-info"),o.addClass("sui-notice-"+i)),o.find("p").html(r),o.slideDown(),setTimeout((function(){o.slideUp()}),5e3)}},window.WPHB_Admin=t}(jQuery)},function(e,t,n){"use strict";n.r(t);var i,r=n(0);i=jQuery,WPHB_Admin.performance={module:"performance",iteration:0,progress:0,timer:!1,pressedKeys:[],key_timer:!1,init:function(){var e=this,t=this;wphbPerformanceStrings&&(this.strings=wphbPerformanceStrings),this.wphbSetInterval(),document.onkeyup=function(e){clearInterval(t.key_timer),t.wphbSetInterval(),e=e||event,t.pressedKeys.push(e.keyCode);var n=t.pressedKeys.length;n>=2&&66===t.pressedKeys[n-1]&&72===t.pressedKeys[n-2]&&(document.getElementById("wphb-error-details").style.display="block")},i("#run-performance-test").on("click",(function(e){e.preventDefault(),window.SUI.openModal("run-performance-test-modal","wpbody-content",void 0,!1),i(this).attr("disabled",!0),t.performanceTest(t.strings.finishedTestURLsLink)}));var n=window.location.hash;if(n){var o=i(n);o.length&&!o.hasClass("sui-box")&&(o.find(".sui-accordion-open-indicator").trigger("click"),i("html, body").animate({scrollTop:o.offset().top},1e3))}return i("body").on("submit",".settings-frm",(function(e){e.preventDefault();var t=i(this).serialize();return r.a.performance.savePerformanceTestSettings(t).then((function(){return WPHB_Admin.notices.show("wphb-notice-performance-report-settings-updated",!0)})),!1})),"undefined"!=typeof google&&"undefined"!=typeof wphbHistoricFieldData&&(google.charts.load("current",{packages:["corechart","bar"]}),google.charts.setOnLoadCallback((function(){e.drawChart(wphbHistoricFieldData.fcp,"first_contentful_paint"),i(window).resize((function(){return e.drawChart(wphbHistoricFieldData.fcp,"first_contentful_paint")}))})),google.charts.setOnLoadCallback((function(){e.drawChart(wphbHistoricFieldData.fid,"first_input_delay"),i(window).resize((function(){return e.drawChart(wphbHistoricFieldData.fid,"first_input_delay")}))}))),i("input[name=desktop-report]").on("change",(function(e){var t="desktop_report-true"===e.target.id?"desktop_report-false":"desktop_report-true";e.target.parentNode.classList.add("active"),document.getElementById(t).parentNode.classList.remove("active")})),i("input[name=subsite-tests]").on("change",(function(e){var t="subsite_tests-false"===e.target.id?"subsite_tests-true":"subsite_tests-false";e.target.parentNode.classList.add("active"),document.getElementById(t).parentNode.classList.remove("active")})),i("input[name=report-type]").on("change",(function(e){for(var t=document.querySelectorAll("input[name=report-type]"),n=0;n<t.length;++n)t[n].parentNode.classList.remove("active");e.target.parentNode.classList.add("active")})),i("select[name=wphb-performance-report-type]").on("change",(function(e){var t=new URL(window.location);t.searchParams.set("type",e.target.value),window.location=t})),this},wphbSetInterval:function(){var e=this;this.key_timer=window.setInterval((function(){e.pressedKeys=[]}),1e3)},performanceTest:function(e){var t=this;void 0===e&&(e=!1),this.updateProgressBar(),r.a.performance.runTest().then((function(n){n.finished?e&&(t.progress=100,t.updateProgressBar(),window.setTimeout((function(){window.location=e}),2e3)):window.setTimeout((function(){t.performanceTest(e)}),3e3)}))},updateProgressBar:function(){var e=this;0===this.progress&&(this.progress=2,this.timer=window.setInterval((function(){e.progress+=1,e.updateProgressBar()}),100));var t=i(".sui-progress-state .sui-progress-state-text");3===this.progress&&t.text(this.strings.scanRunning),73===this.progress&&(clearInterval(this.timer),this.timer=!1,this.timer=window.setInterval((function(){e.progress+=1,e.updateProgressBar()}),1e3),t.text(this.strings.scanAnalyzing)),99===this.progress&&(t.text(this.strings.scanWaiting),clearInterval(this.timer),this.timer=!1),i(".sui-progress-block .sui-progress-text span").text(this.progress+"%"),i(".sui-progress-block .sui-progress-bar span").attr("style","width:"+this.progress+"%"),100===this.progress&&(i(".sui-progress-block i.sui-icon-loader").removeClass("sui-icon-loader sui-loading").addClass("sui-icon-check"),t.text(this.strings.scanComplete),clearInterval(this.timer),this.timer=!1)},drawChart:function(e,t){var n=google.visualization.arrayToDataTable([["Type","Fast",{type:"string",role:"tooltip",p:{html:!0}},"Average",{type:"string",role:"tooltip",p:{html:!0}},"Slow",{type:"string",role:"tooltip",p:{html:!0}}],["",e.fast,this.generateTooltip("fast",e.fast_desc),e.average,this.generateTooltip("average",e.average_desc),e.slow,this.generateTooltip("slow",e.slow_desc)]]);new google.visualization.BarChart(document.getElementById(t)).draw(n,{tooltip:{isHtml:!0},colors:["#1ABC9C","#FECF2F","#FF6D6D"],chartArea:{width:"100%"},hAxis:{baselineColor:"#fff",gridlines:{color:"#fff",count:0},textPosition:"none"},isStacked:"percent",height:80,legend:"none"})},generateTooltip:function(e,t){return'<div class="wphb-field-data-tooltip wphb-tooltip-'+e+'">'+t+"</div>"}}},function(e,t,n){"use strict";n.r(t);var i,r=n(0);i=jQuery,WPHB_Admin.caching={module:"caching",selectedServer:"",serverSelector:null,serverInstructions:[],snippets:[],selectedExpiryType:"all",init:function(){var e=this,t=window.location.hash,n=i('form[id="page-caching-form"]'),o=i('form[id="rss-caching-settings"]'),s=i('div[id="wphb-box-caching-gravatar"]'),a=i(".box-caching-status .sui-box-header"),c=i('form[id="expiry-settings"]'),u=i('form[id="other-caching-settings"]');e.serverSelector=i("#wphb-server-type"),e.selectedServer=e.serverSelector.val(),wphbCachingStrings&&(e.strings=wphbCachingStrings),t&&i(t).length?setTimeout((function(){i("html, body").animate({scrollTop:i(t).offset().top},"slow")}),300):"#connect-cloudflare"===t&&e.setCloudflare(),n.on("submit",(function(t){t.preventDefault(),e.saveSettings("page_cache",n)})),n.on("click",".sui-box-header .sui-button",(function(t){t.preventDefault(),e.clearCache("page_cache",n)}));var l=document.getElementById("clear_interval");l&&l.addEventListener("change",(function(e){e.preventDefault(),i("#page_cache_clear_interval").toggle()}));var d=document.getElementById("wphb-cancel-cache-preload");d&&d.addEventListener("click",(function(e){e.preventDefault(),r.a.caching.cancelPreload(),window.location.reload()}));var p=document.getElementById("preload");return p&&p.addEventListener("change",(function(e){e.preventDefault(),i("#page_cache_preload_type").toggle()})),i(".wphb-server-instructions").each((function(){e.serverInstructions[i(this).data("server")]=i(this)})),e.showServerInstructions(this.selectedServer),e.snippets.apache=i(".apache-instructions").find("pre.sui-code-snippet"),e.snippets.nginx=i("#wphb-server-instructions-nginx").find("pre.sui-code-snippet"),e.serverSelector.change((function(){var t=i(this).val();e.hideCurrentInstructions(),e.showServerInstructions(t),e.setServer(t),e.selectedServer=t,i(".hb-server-type").val(t)})),i("div[data-name='expiry-set-type']").on("click",(function(){var t=i(this).data("value");e.selectedExpiryType=t,e.reloadSnippets(e.getExpiryTimes(t))})),c.on("change",'select[name^="set-expiry"]',(function(){e.reloadSnippets(e.getExpiryTimes(e.selectedExpiryType)),i("#wphb-expiry-change-notice").slideDown()})),a.on("click","a.sui-button",(function(t){t.preventDefault();var n=a.find(".spinner"),i=a.find("a.sui-button");i.addClass("disabled"),n.addClass("visible"),r.a.caching.recheckExpiry().then((function(t){i.removeClass("disabled"),n.removeClass("visible"),void 0!==t&&t.success?(WPHB_Admin.notices.show("wphb-ajax-update-notice",!0,"success",e.strings.successRecheckStatus),e.reloadExpiryTags(t.expiry_values)):WPHB_Admin.notices.show("wphb-ajax-update-notice",!0,"error",e.strings.errorRecheckStatus)}))})),c.on("submit",(function(t){t.preventDefault();var n=i(".update-htaccess"),o=i(".wphb-expiry-changes .spinner"),s=i("#wphb-expiry-change-notice");n.addClass("disabled"),o.addClass("visible");var a=e.getExpiryTimes(e.selectedExpiryType);r.a.caching.setExpiration(a),setTimeout((function(){r.a.caching.updateHtaccess().then((function(t){n.removeClass("disabled"),o.removeClass("visible"),s.slideUp("slow"),void 0!==t&&t.success?WPHB_Admin.notices.show("wphb-ajax-update-notice",!0,"success",wphb.strings.htaccessUpdated):WPHB_Admin.notices.show("wphb-ajax-update-notice",!0,"error",e.strings.htaccessUpdatedFailed)}))}),1e3)})),i("#view-snippet-code").on("click",(function(t){t.preventDefault();var n=i("#wphb-server-instructions-"+e.selectedServer.toLowerCase()),r=e.selectedServer.toLowerCase();i("#auto-"+r).removeClass("active"),i("#manual-"+r).trigger("click").addClass("active"),i("html, body").animate({scrollTop:n.offset().top-50},"slow")})),i(".activate-button").on("click",(function(t){t.preventDefault(),i(this).addClass("sui-button-onload");var n=e.getExpiryTimes(e.selectedExpiryType);r.a.caching.setExpiration(n);var o=i(this).attr("href");setTimeout((function(){window.location=o}),1e3)})),i(".connect-cloudflare-link").on("click",(function(t){t.preventDefault(),window.location.hash="connect-cloudflare",e.setCloudflare()})),i("#configure-link").on("click",(function(e){e.preventDefault(),i("html, body").animate({scrollTop:i("#wphb-box-caching-settings").offset().top},"slow")})),i("#dismiss-cf-notice").on("click",(function(e){e.preventDefault(),r.a.notice.dismissCloudflareDash(),i(".cf-dash-notice").slideUp().parent().addClass("no-background-image")})),s.on("click",".sui-box-header .sui-button",(function(t){t.preventDefault(),e.clearCache("gravatar",s)})),o.on("submit",(function(t){t.preventDefault();var n=o.find("#rss-expiry-time");n.val(Math.abs(n.val())),e.saveSettings("rss",o)})),u.on("submit",(function(t){t.preventDefault();var n=i('input[name="detection"]:checked',u).val();"auto"!==n&&"none"!==n||i(".wphb-notice.notice-info").slideUp(),e.saveSettings("other_cache",u)})),this},saveSettings:function(e,t){var n=t.find(".sui-box-footer .spinner");n.addClass("visible"),r.a.caching.saveSettings(e,t.serialize()).then((function(t){n.removeClass("visible"),void 0!==t&&t.success?"page_cache"===e?window.location.search+="&updated=true":WPHB_Admin.notices.show("wphb-ajax-update-notice",!0,"success"):WPHB_Admin.notices.show("wphb-ajax-update-notice",!0,"error",wphb.strings.errorSettingsUpdate)}))},clearCache:function(e,t){var n=t.find(".sui-box-header .spinner");n.addClass("visible"),r.a.caching.clearCache(e).then((function(t){void 0!==t&&t.success?"page_cache"===e?(i(".box-caching-summary span.sui-summary-large").html("0"),WPHB_Admin.notices.show("wphb-ajax-update-notice",!0,"success",wphbCachingStrings.successPageCachePurge)):"gravatar"===e&&WPHB_Admin.notices.show("wphb-ajax-update-notice",!0,"success",wphbCachingStrings.successGravatarPurge):WPHB_Admin.notices.show("wphb-ajax-update-notice",!0,"error",wphbCachingStrings.errorCachePurge),n.removeClass("visible")}))},setServer:function(e){r.a.caching.setServer(e)},setCloudflare:function(){i("#wphb-server-type").val("cloudflare").trigger("sui:change"),this.hideCurrentInstructions(),this.setServer("cloudflare"),this.showServerInstructions("cloudflare"),this.selectedServer="cloudflare",setTimeout((function(){i("html, body").animate({scrollTop:i("#cloudflare-steps").offset().top},"slow")}),300)},reloadExpiryTags:function(e){for(var t in e)e.hasOwnProperty(t)&&i("#wphb-caching-expiry-"+t).text(e[t])},hideCurrentInstructions:function(){this.serverInstructions[this.selectedServer]&&this.serverInstructions[this.selectedServer].addClass("sui-hidden")},showServerInstructions:function(e){void 0!==this.serverInstructions[e]&&this.serverInstructions[e].removeClass("sui-hidden"),"apache"===e?i(".enable-cache-wrap-"+e).removeClass("sui-hidden"):i("#enable-cache-wrap").addClass("sui-hidden")},reloadSnippets:function(e){var t=this;for(var n in t.snippets)t.snippets.hasOwnProperty(n)&&(r.a.caching.setExpiration(e),r.a.caching.reloadSnippets(n,e).then((function(e){t.snippets[e.type].text(e.code)})))},getExpiryTimes:function(e){var t=[];if("all"===e){var n=i("#set-expiry-all").val();t={expiry_javascript:n,expiry_css:n,expiry_media:n,expiry_images:n}}else t={expiry_javascript:i("#set-expiry-javascript").val(),expiry_css:i("#set-expiry-css").val(),expiry_media:i("#set-expiry-media").val(),expiry_images:i("#set-expiry-images").val()};return t}}},function(e,t,n){"use strict";n.r(t);var i,r=n(0);i=jQuery,WPHB_Admin.dashboard={module:"dashboard",init:function(){return wphbDashboardStrings&&(this.strings=wphbDashboardStrings),i(".wphb-performance-report-item").click((function(){var e=i(this).data("performance-url");e&&(location.href=e)})),i("#dismiss-cf-notice").click((function(e){e.preventDefault(),r.a.notice.dismissCloudflareDash();var t=i(".cf-dash-notice");t.slideUp(),t.parent().addClass("no-background-image")})),this},skipSetup:function(){r.a.dashboard.skipSetup().then((function(){location.reload()}))},runPerformanceTest:function(){window.SUI.closeModal(),window.SUI.openModal("run-performance-test-modal","wpbody-content",void 0,!1),window.WPHB_Admin.getModule("performance").performanceTest(this.strings.finishedTestURLsLink)}}},function(e,t,n){"use strict";n.r(t);var i,r=n(0);i=jQuery,WPHB_Admin.DashboardCloudFlare={init:function(e){this.currentStep=e.currentStep,this.data=e,this.email=e.email,this.apiKey=e.apiKey,this.$stepsContainer=i("#cloudflare-steps"),this.$infoBox=i("#cloudflare-info"),this.$spinner=i(".cloudflare-spinner"),this.$deactivateButton=i(".cloudflare-deactivate.button"),this.$body=i("body"),this.renderStep(this.currentStep),this.$body.on("click",'input[type="submit"].cloudflare-clear-cache',function(e){e.preventDefault(),this.purgeCache.apply(i(e.target),[this])}.bind(this)),this.$body.on("click","#cf-recheck-zones",function(e){e.preventDefault(),i("#cf-recheck-zones").addClass("sui-button-onload"),this.updateZones.apply(i(e.target),[this])}.bind(this))},purgeCache:function(e){var t=this;t.attr("disabled",!0),e.showSpinner(),r.a.cloudflare.purgeCache().then((function(){WPHB_Admin.notices.show("wphb-ajax-update-notice",!0,"success",wphbCachingStrings.successCloudflarePurge),t.removeAttr("disabled"),e.hideSpinner()}))},renderStep:function(e){var t=WPHB_Admin.DashboardCloudFlare.template("#cloudflare-step-"+e),n=t(this.data),r=this;n&&(this.currentStep=e,this.$stepsContainer.hide().html(t(this.data)).fadeIn().find("form").on("submit",(function(e){e.preventDefault(),r.submitStep.call(r,i(this))})),this.$spinner=this.$stepsContainer.find(".cloudflare-spinner")),this.bindEvents()},bindEvents:function(){var e=i("#cloudflare-how-to");e.hide(),i("a.cloudflare-how-to-title").click((function(t){t.preventDefault(),e.toggle()})),this.$stepsContainer.find("select").each((function(){SUI.suiSelect(this)})),"final"===this.currentStep?this.$deactivateButton.removeClass("hidden"):this.$deactivateButton.addClass("hidden")},emptyInfoBox:function(){this.$infoBox.html(""),this.$infoBox.removeClass()},updateZones:function(e){e.hideInfoBox(),r.a.cloudflare.recheckZones().then((function(t){e.data.zones=t.zones,e.renderStep(e.currentStep),i("#cf-recheck-zones").removeClass("sui-button-onload")})).catch((function(t){e.showInfoBox(t,"warning"),i("#cf-recheck-zones").removeClass("sui-button-onload")}))},showInfoBox:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"error";this.$infoBox.addClass("sui-notice"),this.$infoBox.addClass("sui-notice-"+t),this.$infoBox.addClass("sui-notice-sm"),this.$infoBox.html("<p>"+e+" </p>")},hideInfoBox:function(){this.$infoBox.removeClass(),this.$infoBox.html("")},showSpinner:function(){this.$spinner.css("visibility","visible")},hideSpinner:function(){this.$spinner.css("visibility","hidden")},submitStep:function(e){var t=this;e.find("input[type=submit]").attr("disabled","true"),this.emptyInfoBox(),this.showSpinner(),r.a.cloudflare.connect(this.currentStep,e.serialize(),this.data).then((function(e){t.data=e.newData,t.renderStep(e.nextStep),"final"===e.nextStep&&(window.location.href=e.redirect)})).catch((function(e){t.showInfoBox(e)})),e.find("input[type=submit]").removeAttr("disabled"),t.hideSpinner()}},WPHB_Admin.DashboardCloudFlare.template=_.memoize((function(e){var t,n={evaluate:/<#([\s\S]+?)#>/g,interpolate:/\{\{\{([\s\S]+?)\}\}\}/g,escape:/\{\{([^\}]+?)\}\}(?!\})/g,variable:"data"};return function(r){return _.templateSettings=n,(t=t||_.template(i(e).html()))(r)}}))},function(e,t,n){"use strict";n.r(t);var i,r=n(0);i=jQuery,WPHB_Admin.uptime={module:"uptime",$dataRangeSelector:null,chartData:null,downtimeChartData:null,timer:null,$spinner:null,dataRange:null,dateFormat:"MMM d",init:function(){var e=this;this.$spinner=i(".spinner"),this.strings=wphbUptimeStrings,this.$dataRangeSelector=i("#wphb-uptime-data-range"),this.chartData=i("#uptime-chart-json").val(),this.downtimeChartData=i("#downtime-chart-json").val(),this.$disableUptime=i("#wphb-disable-uptime"),this.dataRange=this.getUrlParameter("data-range"),this.$dataRangeSelector.change((function(){window.location.href=i(this).find(":selected").data("url")}));var t=this;"undefined"!=typeof google&&google.charts.load("current",{packages:["corechart","timeline"]}),this.$disableUptime.on("click",(function(e){e.preventDefault(),t.$spinner.css("visibility","visible"),i(this).is(":checked")&&t.timer?(clearTimeout(t.timer),t.$spinner.css("visibility","hidden")):t.timer=setTimeout((function(){location.href=t.strings.disableUptimeURL}),3e3)})),void 0!==this.dataRange&&i(".wrap-wphb-uptime .wphb-tab a").each((function(){this.href+="&data-range="+t.dataRange})),"day"===this.dataRange&&(this.dateFormat="h:mma"),null!==document.getElementById("uptime-chart")&&google.charts.setOnLoadCallback((function(){return e.drawResponseTimeChart()})),null!==document.getElementById("downtime-chart")&&google.charts.setOnLoadCallback((function(){return e.drawDowntimeChart()})),i("#uptime-re-check-status").on("click",(function(e){e.preventDefault(),location.reload()})),i(".wphb-resend-recipient").on("click",(function(e){r.a.uptime.resendConfirmationEmail(e.currentTarget.dataset.name,e.currentTarget.dataset.email).then((function(e){WPHB_Admin.notices.show("wphb-ajax-update-notice",!1,"success",e.message)}))}))},drawResponseTimeChart:function(){var e=new google.visualization.DataTable;e.addColumn("datetime","Day"),e.addColumn("number","Response Time (ms)"),e.addColumn({type:"string",role:"tooltip",p:{html:!0}});for(var t=JSON.parse(this.chartData),n=0;n<t.length;n++)t[n][0]=new Date(t[n][0]),t[n][1]=Math.round(t[n][1]),t[n][2]=this.createUptimeTooltip(t[n][0],t[n][1]),0===Math.round(t[n][1])&&(t[n][1]=-100);e.addRows(t);var r={chartArea:{left:80,top:20,width:"90%",height:"90%"},colors:["#24ADE5"],curveType:"function",legend:{position:"none"},vAxis:{format:"#### ms",gridlines:{count:5},minorGridlines:{count:0},viewWindow:{min:0}},hAxis:{format:this.dateFormat,minorGridlines:{count:0}},tooltip:{isHtml:!0},series:{0:{axis:"Resp"}},axes:{y:{Resp:{label:"Response Time (ms)"}}}},o=new google.visualization.AreaChart(document.getElementById("uptime-chart"));o.draw(e,r),i(window).resize((function(){o.draw(e,r)}))},drawDowntimeChart:function(){var e=document.getElementById("downtime-chart"),t=new google.visualization.Timeline(e),n=new google.visualization.DataTable;n.addColumn({type:"string"}),n.addColumn({type:"string",id:"Status"}),n.addColumn({type:"string",role:"tooltip",p:{html:!0}}),n.addColumn({type:"datetime",id:"Start Period"}),n.addColumn({type:"datetime",id:"End Period"});for(var r=JSON.parse(this.downtimeChartData),o=0;o<r.length;o++)r[o][0]=r[o][0],r[o][1]=r[o][1],r[o][2]=r[o][2],r[o][3]=new Date(r[o][3]),r[o][4]=new Date(r[o][4]);n.addRows(r);for(var s=[],a={Down:"#FF6D6D",Unknown:"#F8F8F8",Up:"#D1F1EA"},c=0;c<n.getNumberOfRows();c++)s.push(a[n.getValue(c,1)]);var u={timeline:{showBarLabels:!1,showRowLabels:!1,barLabelStyle:{fontSize:33},avoidOverlappingGridLines:!1},hAxis:{format:this.dateFormat},colors:s,height:170},l=[];google.visualization.events.addListener(t,"ready",(function(){var t=e.getElementsByTagName("rect");Array.prototype.forEach.call(t,(function(e){parseFloat(e.getAttribute("x"))>0&&l.push(e.getAttribute("fill"))}))})),google.visualization.events.addListener(t,"onmouseover",(function(t){var n=e.getElementsByTagName("rect");n[n.length-1].setAttribute("fill",l[t.row]);var i=n[n.length-1].getAttribute("width");i>3&&n[n.length-1].setAttribute("width",i-1+"px")})),t.draw(n,u),i(window).resize((function(){t.draw(n,u)}))},createUptimeTooltip:function(e,t){return'<span class="response-time-tooltip">'+t+'ms</span><span class="uptime-date-tooltip">'+this.formatTooltipDate(e)+"</span>"},formatTooltipDate:function(e){var t=e.getDate(),n=e.getMonth(),i=e.getHours(),r=i,o=(e.getMinutes()<10?"0":"")+e.getMinutes(),s="AM";return r>=12&&(r=i-12,s="PM"),0===r&&(r=12),["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"][n]+" "+t+" @ "+r+":"+o+s},getUrlParameter:function(e){var t,n,i=decodeURIComponent(window.location.search.substring(1)).split("&");for(n=0;n<i.length;n++)if((t=i[n].split("="))[0]===e)return void 0===t[1]||t[1]}}},function(e,t,n){"use strict";n.r(t);var i,r=n(0);i=jQuery,WPHB_Admin.cloudflare={module:"cloudflare",init:function(){var e=this,t=i("#set-cf-expiry-button"),n=i("#set-expiry-all");return wphb.cloudflare.is.connected&&t.on("click",(function(t){t.preventDefault(),e.setExpiry.call(e,n)})),this},setExpiry:function(e){var t=i(".wphb-expiry-changes .spinner"),n=i('.wphb-expiry-changes input[type="submit"]');t.addClass("visible"),n.addClass("disabled"),r.a.cloudflare.setExpiration(i(e).val()).then((function(e){i("#wphb-expiry-change-notice").hide(),t.removeClass("visible"),n.removeClass("disabled"),void 0!==e&&e.success?WPHB_Admin.notices.show("wphb-ajax-update-notice",!0,"success"):WPHB_Admin.notices.show("wphb-ajax-update-notice",!0,"error",wphb.strings.errorSettingsUpdate)}))}}},function(e,t,n){"use strict";n.r(t);var i,r=n(0);i=jQuery,WPHB_Admin.advanced={module:"advanced",init:function(){var e=this,t=i("#wphb-system-info-dropdown"),n=window.location.hash;if(i("#wphb-db-delete-all, .wphb-db-row-delete").on("click",(function(t){t.preventDefault(),e.showModal(t.target.dataset.entries,t.target.dataset.type)})),i('form[id="advanced-db-settings"], form[id="advanced-general-settings"]').on("submit",(function(e){e.preventDefault();var t=i(this).parent().find(".sui-icon-loader");t.removeClass("sui-hidden"),r.a.advanced.saveSettings(i(this).serialize(),e.target.id).then((function(n){t.addClass("sui-hidden"),void 0!==n&&n.success?("advanced-db-settings"===e.target.id&&r.a.advanced.scheduleCleanup(),WPHB_Admin.notices.show("wphb-notice-advanced-tools",!0,"success")):WPHB_Admin.notices.show("wphb-notice-advanced-tools",!0,"error",wphb.strings.errorSettingsUpdate)}))})),i('input[id="scheduled_cleanup"]').on("change",(function(){i(".schedule-box").toggle()})),i("#wphb-system-info-php").removeClass("sui-hidden"),n){var o=n.replace("#","");i(".wphb-sys-info-table").addClass("sui-hidden"),i("#wphb-system-info-"+o).removeClass("sui-hidden"),t.val(o).trigger("sui:change")}t.change((function(e){e.preventDefault(),i(".wphb-sys-info-table").addClass("sui-hidden"),i("#wphb-system-info-"+i(this).val()).removeClass("sui-hidden"),location.hash=i(this).val()})),i("#wphb-adv-paste-value").on("click",(function(e){e.preventDefault();var t=i('textarea[name="url_strings"]');""===t.val()?t.val(t.attr("placeholder")):t.val(t.val()+"\n"+t.attr("placeholder"))}));var s=document.getElementById("cart_fragments");return s&&s.addEventListener("change",(function(e){e.preventDefault(),i("#cart_fragments_desc").toggle()})),this},showModal:function(e,t){var n=wphb.strings.db_delete+" "+e+" "+wphb.strings.db_entries+"? "+wphb.strings.db_backup,r=i(".wphb-database-cleanup-modal");r.find("p").html(n),r.find(".wphb-delete-db-row").attr("data-type",t),window.SUI.openModal("wphb-database-cleanup-modal","wpbody-content",void 0,!1)},confirmDelete:function(e){var t;window.SUI.closeModal();var n=i(".box-advanced-db .sui-box-footer"),o=(t="all"===e?n:i(".box-advanced-db .wphb-border-frame").find("div[data-type="+e+"]")).find(".sui-icon-loader"),s=t.find(".wphb-db-row-delete");o.removeClass("sui-hidden"),s.addClass("sui-hidden"),r.a.advanced.deleteSelectedData(e).then((function(e){for(var t in WPHB_Admin.notices.show("wphb-notice-advanced-tools",!1,"success",e.message),o.addClass("sui-hidden"),s.removeClass("sui-hidden"),e.left)if("total"===t){var r=wphb.strings.deleteAll+" ("+e.left[t]+")";n.find(".wphb-db-delete-all").html(r),n.find("#wphb-db-delete-all").attr("data-entries",e.left[t])}else{var a=i(".box-advanced-db div[data-type="+t+"]");a.find(".wphb-db-items").html(e.left[t]),a.find(".wphb-db-row-delete").attr("data-entries",e.left[t])}})).catch((function(e){WPHB_Admin.notices.show("wphb-notice-advanced-tools",!1,"error",e),o.addClass("sui-hidden")}))}}},function(e,t,n){"use strict";n.r(t);var i,r=n(0);i=jQuery,WPHB_Admin.settings={module:"settings",init:function(){var e=i("body"),t=e.find(".wrap-wphb-settings");return e.on("click","button.sui-button",(function(n){n.preventDefault();var o=e.find(".settings-frm").serialize(),s=i("#color_accessible");return s.length&&(s.is(":checked")?t.addClass("sui-color-accessible"):t.removeClass("sui-color-accessible")),r.a.settings.saveSettings(o).then((function(){WPHB_Admin.notices.show("wphb-ajax-update-notice",!0)})),!1})),i("input[name=remove_settings]").on("change",(function(e){var t="remove_settings-false"===e.target.id?"remove_settings-true":"remove_settings-false";e.target.parentNode.classList.add("active"),document.getElementById(t).parentNode.classList.remove("active")})),i("input[name=remove_data]").on("change",(function(e){var t="remove_data-false"===e.target.id?"remove_data-true":"remove_data-false";e.target.parentNode.classList.add("active"),document.getElementById(t).parentNode.classList.remove("active")})),this},confirmReset:function(){r.a.settings.resetSettings().then((function(){window.location.href=wphb.urls.resetSettings}))}}},,,,,,,,,,,,,,,function(e,t,n){"use strict";n.r(t);var i=n(0),r=function(e){return wphb.links[e]||""},o=function(e,t,n){var i=e,r=t.toLowerCase(),o=!1,s=!1,a=!0,c=i.find(".toggle-include"),u=i.find(".toggle-combine"),l=i.find(".toggle-minify"),d=i.find(".toggle-position-footer"),p=i.find(".toggle-defer"),h=i.find(".toggle-inline"),f=i.find(".toggle-cross > i"),v=i.find(".wphb-minification-file-select input[type=checkbox]");return n&&(o=n.toLowerCase()),{hide:function(){i.addClass("out-of-filter"),a=!1},show:function(){i.removeClass("out-of-filter"),a=!0},getElement:function(){return i},getId:function(){return i.attr("id")},getFilter:function(){return r},matchFilter:function(e){return""===e||(e=e.toLowerCase(),r.search(e)>-1)},matchSecondaryFilter:function(e){return""===e||!!o&&(e=e.toLowerCase(),o===e)},isVisible:function(){return a},isSelected:function(){return s},isType:function(e){return e===v.attr("data-type")},select:function(){s=!0,v.prop("checked",!0)},unSelect:function(){s=!1,v.prop("checked",!1)},change:function(e,t){switch(e){case"minify":l.prop("checked",t),l.toggleClass("changed"),l.closest(".wphb-border-row").find("span.wphb-row-status").removeClass("hidden");break;case"combine":u.prop("checked",t),u.toggleClass("changed"),u.closest(".wphb-border-row").find("span.wphb-row-status").removeClass("hidden");break;case"defer":p.prop("checked",t),p.toggleClass("changed"),p.closest(".wphb-border-row").find("span.wphb-row-status").removeClass("hidden");break;case"inline":h.prop("checked",t),h.toggleClass("changed"),h.closest(".wphb-border-row").find("span.wphb-row-status").removeClass("hidden");break;case"include":f.removeClass(),c.prop("checked",t),c.toggleClass("changed"),c.closest(".wphb-border-row").find("span.wphb-row-status").removeClass("hidden"),t?(i.removeClass("disabled"),f.addClass("dev-icon dev-icon-cross"),c.attr("checked",!0)):(i.addClass("disabled"),f.addClass("wdv-icon wdv-icon-refresh"),c.removeAttr("checked"));break;case"footer":d.prop("checked",t),d.toggleClass("changed"),d.closest(".wphb-border-row").find("span.wphb-row-status").removeClass("hidden")}}}};function s(e){return(s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var a,c=function(){var e=[],t="",n="";return{push:function(t){"object"===s(t)&&e.push(t)},getItems:function(){return e},getItem:function(t){return!!e[t]&&e[t]},getItemById:function(t,n){var i=!1;for(var r in e)if("wphb-file-"+t+"-"+n===e[r].getId()){i=e[r];break}return i},getItemsByDataType:function(t){var n=[];for(var i in e)e[i].isType(t)&&n.push(e[i]);return n},getVisibleItems:function(){var t=[];for(var n in e)e[n].isVisible()&&t.push(e[n]);return t},getSelectedItems:function(){var t=[];for(var n in e)e[n].isVisible()&&e[n].isSelected()&&t.push(e[n]);return t},addFilter:function(e,i){"secondary"===i?n=e:t=e},applyFilters:function(){for(var i in e)e[i]&&(e[i].matchFilter(t)&&e[i].matchSecondaryFilter(n)?e[i].show():e[i].hide())}}},u=function(e,t){e=parseInt(e),t=parseInt(t);var n=!1,r={scan:function(){var n=e-t;0!==t?o(n):i.a.minification.startCheck().then((function(){o(n)}))},cancel:function(){return n=!0,i.a.minification.cancelScan()},getProgress:function(){if(n)return 0;var i=e-t;return Math.min(Math.round(100*parseInt(e-i)/e),99)},onFinishStep:function(e){},onFinish:function(e){WPHB_Admin.minification.updateProgressBar(100),void 0!==e.assets_msg&&jQuery(".wphb-assets-modal").find("#assetsFound").html(e.assets_msg),window.SUI.closeModal(),window.SUI.openModal("wphb-assets-modal","wpbody-content",void 0,!1)}},o=function n(o){o>=0?(t=e-o,i.a.minification.checkStep(t).then((function(){o-=1,r.onFinishStep(r.getProgress()),n(o)}))):i.a.minification.finishCheck().then((function(e){r.onFinish(e)}))};return r};a=jQuery,WPHB_Admin.minification={module:"minification",moduleNoticeId:"wphb-notice-minification-advanced-settings-updated",$checkFilesButton:null,$checkFilesResultsContainer:null,checkURLSList:null,checkedURLS:0,init:function(){var e=this,t=this;this.scanner=new u(wphb.minification.get.totalSteps,wphb.minification.get.currentScanStep),this.scanner.onFinishStep=this.updateProgressBar,this.$checkFilesButton=a("#check-files"),this.$checkFilesButton.length&&this.$checkFilesButton.click((function(e){e.preventDefault(),window.SUI.openModal("check-files-modal","wpbody-content",void 0,!1),a(this).attr("disabled",!0),t.updateProgressBar(t.scanner.getProgress()),t.scanner.scan()})),a("body").on("click","#cancel-minification-check",(function(t){t.preventDefault(),e.updateProgressBar(0,!0),e.scanner.cancel().then((function(){window.location.href=r("minification")}))})),a(':input.toggle-checkbox, :input[id*="wphb-minification-include"]').on("change",(function(){var e=a(this).closest(".wphb-border-row"),t=e.find("span.wphb-row-status-changed");a(this).toggleClass("changed"),0!==e.find(".changed").length?t.removeClass("sui-hidden"):t.addClass("sui-hidden"),0!==a(".wphb-minification-files").find("input.changed").length?a("#wphb-publish-changes").removeClass("disabled"):a("#wphb-publish-changes").addClass("disabled")})),a(":input.wphb-minification-file-selector, :input.wphb-minification-bulk-file-selector").on("change",(function(){a(this).toggleClass("changed");var e=a(".wphb-minification-files").find("input.changed"),t=a(".sui-actions-left > #bulk-update");0===e.length?t.addClass("button-notice disabled"):t.removeClass("button-notice disabled")}));var n=document.getElementById("wphb-switch-button");n&&n.addEventListener("change",(function(e){e.preventDefault();var t=e.target.checked;!0===t?window.SUI.openModal("wphb-advanced-minification-modal","wpbody-content",void 0,!1):window.SUI.openModal("wphb-basic-minification-modal","wpbody-content",void 0,!1),e.target.checked=!t})),a("#wphb-minification-filter-button").on("click",(function(e){a(".wphb-minification-filter").toggle("slow"),a("#wphb-minification-filter-button").toggleClass("active")})),a(".wphb-discard").on("click",(function(e){var t;return e.preventDefault(),confirm((t="discardAlert",wphb.strings[t]||""))&&location.reload(),!1})),a(".wphb-enqueued-files input").on("change",(function(){a(".wphb-discard").attr("disabled",!1)}));var o=a("input[type=checkbox][name=use_cdn]");o.change((function(){a("#cdn_file_exclude").toggleClass("sui-hidden");var e=a(this).is(":checked");o.each((function(){this.checked=e})),i.a.minification.toggleCDN(e).then((function(){WPHB_Admin.notices.show(t.moduleNoticeId,!0)}))})),a(".wphb-minification-exclude > :input.toggle-checkbox").on("change",(function(){a(this).closest(".wphb-border-row").toggleClass("disabled");var e=a("label[for='"+a(this).attr("id")+"']");e.hasClass("fileIncluded")?(e.attr("data-tooltip",wphb.strings.includeFile),e.removeClass("fileIncluded")):(e.attr("data-tooltip",wphb.strings.excludeFile),e.addClass("fileIncluded"))})),a(".wphb-compressed .wphb-filename-extension").on("click",(function(){var e=a(this).closest(".wphb-border-row");e.find(".fileinfo-group").removeClass("wphb-compressed"),e.find(".wphb-row-status").removeClass("sui-hidden wphb-row-status-changed").addClass("wphb-row-status-queued sui-tooltip-constrained").attr("data-tooltip",wphb.strings.queuedTooltip).find("i").attr("class","sui-icon-loader sui-loading"),i.a.minification.resetAsset(e.attr("data-filter"))})),a("input[type=checkbox][name=debug_log]").change((function(){var e=a(this).is(":checked");i.a.minification.toggleLog(e).then((function(){WPHB_Admin.notices.show(t.moduleNoticeId,!0),e?a(".wphb-logging-box").show():a(".wphb-logging-box").hide()}))})),a("#wphb-minification-tools-form").on("submit",(function(e){e.preventDefault();var n=a(this).find(".spinner");n.addClass("visible"),i.a.minification.saveCriticalCss(a(this).serialize()).then((function(e){n.removeClass("visible"),void 0!==e&&e.success?WPHB_Admin.notices.show(t.moduleNoticeId,!0,"success",e.message):WPHB_Admin.notices.show(t.moduleNoticeId,!0,"error",e.message)}))}));var s=document.getElementById("file_path");null!==s&&(s.onchange=function(e){e.preventDefault(),i.a.minification.updateAssetPath(a(this).val()).then((function(){WPHB_Admin.notices.show(t.moduleNoticeId,!0,"success")}))}),a("#wphb-network-ao").on("click",(function(){a(".sui-border-frame:first-of-type").toggleClass("sui-hidden")})),a("#wphb-box-minification-network-settings").on("change","input[type=radio]",(function(e){var t=document.querySelectorAll("input[name="+e.target.name+"]");"log"===e.target.name&&a(".wphb-logs-frame").toggle(e.target.value);for(var n=0;n<t.length;++n)t[n].parentNode.classList.remove("active");e.target.parentNode.classList.add("active")})),a("#wphb-ao-network-settings").on("click",(function(e){e.preventDefault();var n=a(".sui-box-footer").find(".spinner");n.addClass("visible");var r=a("#ao-network-settings-form").serialize();i.a.minification.saveNetworkSettings(r).then((function(e){n.removeClass("visible"),void 0!==e&&e.success?WPHB_Admin.notices.show(t.moduleNoticeId,!0,"success"):WPHB_Admin.notices.show(t.moduleNoticeId,!0,"error",wphb.strings.errorSettingsUpdate)}))}));var c=a("#cdn_exclude");c.SUIselect2(),a("#wphb-ao-settings-update").on("click",(function(e){e.preventDefault();var n=a(".sui-box-footer").find(".spinner");n.addClass("visible");for(var r=c.find(":selected"),o={scripts:[],styles:[]},s=0;s<r.length;++s)o[r[s].dataset.type].push(r[s].value);i.a.minification.updateExcludeList(JSON.stringify(o)).then((function(){n.removeClass("visible"),WPHB_Admin.notices.show(t.moduleNoticeId,!0,"success")}))})),this.rowsCollection=new WPHB_Admin.minification.RowsCollection,a(".wphb-border-row").each((function(e,n){var i;i=a(n).data("filter-secondary")?new WPHB_Admin.minification.Row(a(n),a(n).data("filter"),a(n).data("filter-secondary")):new WPHB_Admin.minification.Row(a(n),a(n).data("filter")),t.rowsCollection.push(i)}));var l=a("#wphb-s");l.keydown((function(e){if(13===e.keyCode)return event.preventDefault(),!1})),l.keyup((function(){t.rowsCollection.addFilter(a(this).val(),"primary"),t.rowsCollection.applyFilters()})),a("#wphb-secondary-filter").change((function(){t.rowsCollection.addFilter(a(this).val(),"secondary"),t.rowsCollection.applyFilters()})),a(".filter-toggles").change((function(){var e=a(this),n=e.data("toggles"),i=e.prop("checked"),r=t.rowsCollection.getVisibleItems();for(var o in r)r[o].change(n,i)})),a("input.wphb-minification-file-selector").on("click",(function(){var e=a(this),n=t.rowsCollection.getItemById(e.data("type"),e.data("handle"));n&&(e.is(":checked")?n.select():n.unSelect())})),a(".wphb-minification-bulk-file-selector").click((function(){var e=a(this),n=t.rowsCollection.getItemsByDataType(e.attr("data-type"));for(var i in n)n.hasOwnProperty(i)&&(e.is(":checked")?n[i].select():n[i].unSelect())})),a("body").on("click",".wphb-border-row",(function(){window.innerWidth<783&&(a(this).find(".wphb-minification-row-details").toggle(),a(this).find(".fileinfo-group").toggleClass("opened"))}));var d=_.debounce((function(){window.innerWidth>=783?a(".wphb-minification-row-details").css("display","flex"):a(".wphb-minification-row-details").css("display","none")}),250);return window.addEventListener("resize",d),this},updateProgressBar:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];e>100&&(e=100),a(".sui-progress-block .sui-progress-text span").text(e+"%"),a(".sui-progress-block .sui-progress-bar span").width(e+"%"),e>=90&&a(".sui-progress-state .sui-progress-state-text").text("Finalizing..."),t&&a(".sui-progress-state .sui-progress-state-text").text("Cancelling...")},switchView:function(e){i.a.minification.toggleView(e).then((function(){window.location.href=r("minification")}))},goToSettings:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];window.SUI.closeModal(),e||window.SUI.openModal("wphb-minification-tour","wpbody-content",void 0,!1),i.a.minification.toggleCDN(a("input#enable_cdn").is(":checked")).then((function(){e&&(window.location.href=r("minification"))}))},skipTour:function(){i.a.minification.skipTour().then((function(){window.location.reload()}))}},WPHB_Admin.minification.Row=o,WPHB_Admin.minification.RowsCollection=c}]);
9
  //# sourceMappingURL=wphb-app.min.js.map
1
+ !function(e){var t={};function n(i){if(t[i])return t[i].exports;var r=t[i]={i:i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(i,r,function(t){return e[t]}.bind(null,r));return i},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=55)}([function(e,t,n){"use strict";var i=n(19),r=n.n(i);function o(e){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var s=new function(){var e=ajaxurl,t=wphb.nonces.HBFetchNonce;function i(i){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"GET";r.nonce=t,r.action=i;var s={data:r,method:o};s.url=e;var c=n(53).Promise;return new c((function(e,t){jQuery.ajax(s).done(e).fail(t)})).then((function(e){return a(e)}))}var o={notice:{dismiss:function(e){return i("wphb_notice_dismiss",{id:e},"POST")},dismissCloudflareDash:function(){return i("wphb_cf_notice_dismiss",{},"POST")}},caching:{activate:function(){return i("wphb_caching_activate",{},"POST").then((function(e){return e}))},saveSettings:function(e,t){return i("wphb_"+e+"_save_settings",{data:t},"POST").then((function(e){return e}))},clearCache:function(e){return i("wphb_clear_module_cache",{module:e},"POST").then((function(e){return e}))},setExpiration:function(e){return i("wphb_caching_set_expiration",{expiry_times:e},"POST").then((function(e){return e}))},setServer:function(e){return i("wphb_caching_set_server_type",{value:e},"POST")},reloadSnippets:function(e,t){return i("wphb_caching_reload_snippet",{type:e,expiry_times:t},"POST").then((function(e){return e}))},updateHtaccess:function(){return i("wphb_caching_update_htaccess",{},"POST").then((function(e){return e}))},recheckExpiry:function(){return i("wphb_caching_recheck_expiry",{},"POST").then((function(e){return e}))},clearCacheForPost:function(e){return i("wphb_gutenberg_clear_post_cache",{postId:e},"POST")},cancelPreload:function(){return i("wphb_preload_cancel",{},"POST")}},cloudflare:{connect:function(e,t,n){return i("wphb_cloudflare_connect",{step:e,formData:t,cfData:n},"POST").then((function(e){return e}))},setExpiration:function(e){return i("wphb_cloudflare_set_expiry",{value:e},"POST")},purgeCache:function(){return i("wphb_cloudflare_purge_cache",{},"POST")},recheckZones:function(){return i("wphb_cloudflare_recheck_zones",{},"POST")}},dashboard:{skipSetup:function(){return i("wphb_dash_skip_setup",{},"POST")}},minification:{toggleCDN:function(e){return i("wphb_minification_toggle_cdn",{value:e},"POST")},toggleLog:function(e){return i("wphb_minification_toggle_log",{value:e},"POST")},toggleView:function(e){return i("wphb_minification_toggle_view",{value:e},"POST")},startCheck:function(){return i("wphb_minification_start_check",{},"POST")},checkStep:function(e){return i("wphb_minification_check_step",{step:e},"POST").then((function(e){return e}))},finishCheck:function(){return i("wphb_minification_finish_scan",{},"POST").then((function(e){return e}))},cancelScan:function(){return i("wphb_minification_cancel_scan",{},"POST")},saveCriticalCss:function(e){return i("wphb_minification_save_critical_css",{form:e},"POST").then((function(e){return e}))},updateAssetPath:function(e){return i("wphb_minification_update_asset_path",{value:e},"POST")},resetAsset:function(e){return i("wphb_minification_reset_asset",{value:e},"POST")},saveNetworkSettings:function(e){return i("wphb_minification_update_network_settings",{settings:e},"POST")},skipTour:function(){return i("wphb_minification_skip_tour",{},"POST")},updateExcludeList:function(e){return i("wphb_minification_save_exclude_list",{data:e},"POST")}},performance:{runTest:function(){return i("wphb_performance_run_test",{},"POST").then((function(e){return e}))},savePerformanceTestSettings:function(e){return i("wphb_performance_save_settings",{data:e},"POST")}},advanced:{saveSettings:function(e,t){return i("wphb_advanced_save_settings",{data:e,form:t},"POST").then((function(e){return e}))},deleteSelectedData:function(e){return i("wphb_advanced_db_delete_data",{data:e},"POST").then((function(e){return e}))},scheduleCleanup:function(){return i("wphb_pro_advanced_db_schedule",{},"POST")}},logger:{clear:function(e){return i("wphb_logger_clear",{module:e},"POST").then((function(e){return e}))}},settings:{saveSettings:function(e){return i("wphb_admin_settings_save_settings",{form_data:e},"POST").then((function(e){return e}))},resetSettings:function(){return i("wphb_reset_settings",{},"POST")}},common:{addRecipient:function(e,t,n,r){return i("wphb_pro_add_recipient",{module:e,setting:t,email:n,name:r},"POST").then((function(e){return e}))},saveReportsSettings:function(e,t){return i("wphb_pro_save_report_settings",{module:e,data:t},"POST").then((function(e){return e}))}},uptime:{resendConfirmationEmail:function(e,t){return i("wphb_pro_resend_confirmation",{name:e,email:t},"POST").then((function(e){return e}))}}};r()(this,o)};function a(e){if("object"!==o(e)&&(e=JSON.parse(e)),e.success)return e.data;var t=e.data||{},n=new Error(t.message||"Error trying to fetch response from server");throw n.response=e,n}t.a=s},function(e,t,n){var i=n(10),r=n(22),o=n(23),s=i?i.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":s&&s in Object(e)?r(e):o(e)}},function(e,t,n){var i=n(11),r="object"==typeof self&&self&&self.Object===Object&&self,o=i||r||Function("return this")();e.exports=o},function(e,t){e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},function(e,t,n){var i=n(9),r=n(15);e.exports=function(e){return null!=e&&r(e.length)&&!i(e)}},function(e,t){e.exports=function(e){return null!=e&&"object"==typeof e}},function(e,t,n){var i=n(7),r=n(13),o=Object.prototype.hasOwnProperty;e.exports=function(e,t,n){var s=e[t];o.call(e,t)&&r(s,n)&&(void 0!==n||t in e)||i(e,t,n)}},function(e,t,n){var i=n(8);e.exports=function(e,t,n){"__proto__"==t&&i?i(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}},function(e,t,n){var i=n(20),r=function(){try{var e=i(Object,"defineProperty");return e({},"",{}),e}catch(e){}}();e.exports=r},function(e,t,n){var i=n(1),r=n(3);e.exports=function(e){if(!r(e))return!1;var t=i(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}},function(e,t,n){var i=n(2).Symbol;e.exports=i},function(e,t,n){(function(t){var n="object"==typeof t&&t&&t.Object===Object&&t;e.exports=n}).call(this,n(12))},function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t){e.exports=function(e,t){return e===t||e!=e&&t!=t}},function(e,t){e.exports=function(e){return e}},function(e,t){e.exports=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}},function(e,t){var n=/^(?:0|[1-9]\d*)$/;e.exports=function(e,t){var i=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==i||"symbol"!=i&&n.test(e))&&e>-1&&e%1==0&&e<t}},function(e,t){var n=Object.prototype;e.exports=function(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||n)}},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t,n){var i=n(6),r=n(28),o=n(29),s=n(4),a=n(17),c=n(38),u=Object.prototype.hasOwnProperty,l=o((function(e,t){if(a(t)||s(t))r(t,c(t),e);else for(var n in t)u.call(t,n)&&i(e,n,t[n])}));e.exports=l},function(e,t,n){var i=n(21),r=n(27);e.exports=function(e,t){var n=r(e,t);return i(n)?n:void 0}},function(e,t,n){var i=n(9),r=n(24),o=n(3),s=n(26),a=/^\[object .+?Constructor\]$/,c=Function.prototype,u=Object.prototype,l=c.toString,d=u.hasOwnProperty,p=RegExp("^"+l.call(d).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=function(e){return!(!o(e)||r(e))&&(i(e)?p:a).test(s(e))}},function(e,t,n){var i=n(10),r=Object.prototype,o=r.hasOwnProperty,s=r.toString,a=i?i.toStringTag:void 0;e.exports=function(e){var t=o.call(e,a),n=e[a];try{e[a]=void 0;var i=!0}catch(e){}var r=s.call(e);return i&&(t?e[a]=n:delete e[a]),r}},function(e,t){var n=Object.prototype.toString;e.exports=function(e){return n.call(e)}},function(e,t,n){var i,r=n(25),o=(i=/[^.]+$/.exec(r&&r.keys&&r.keys.IE_PROTO||""))?"Symbol(src)_1."+i:"";e.exports=function(e){return!!o&&o in e}},function(e,t,n){var i=n(2)["__core-js_shared__"];e.exports=i},function(e,t){var n=Function.prototype.toString;e.exports=function(e){if(null!=e){try{return n.call(e)}catch(e){}try{return e+""}catch(e){}}return""}},function(e,t){e.exports=function(e,t){return null==e?void 0:e[t]}},function(e,t,n){var i=n(6),r=n(7);e.exports=function(e,t,n,o){var s=!n;n||(n={});for(var a=-1,c=t.length;++a<c;){var u=t[a],l=o?o(n[u],e[u],u,n,e):void 0;void 0===l&&(l=e[u]),s?r(n,u,l):i(n,u,l)}return n}},function(e,t,n){var i=n(30),r=n(37);e.exports=function(e){return i((function(t,n){var i=-1,o=n.length,s=o>1?n[o-1]:void 0,a=o>2?n[2]:void 0;for(s=e.length>3&&"function"==typeof s?(o--,s):void 0,a&&r(n[0],n[1],a)&&(s=o<3?void 0:s,o=1),t=Object(t);++i<o;){var c=n[i];c&&e(t,c,i,s)}return t}))}},function(e,t,n){var i=n(14),r=n(31),o=n(33);e.exports=function(e,t){return o(r(e,t,i),e+"")}},function(e,t,n){var i=n(32),r=Math.max;e.exports=function(e,t,n){return t=r(void 0===t?e.length-1:t,0),function(){for(var o=arguments,s=-1,a=r(o.length-t,0),c=Array(a);++s<a;)c[s]=o[t+s];s=-1;for(var u=Array(t+1);++s<t;)u[s]=o[s];return u[t]=n(c),i(e,this,u)}}},function(e,t){e.exports=function(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}},function(e,t,n){var i=n(34),r=n(36)(i);e.exports=r},function(e,t,n){var i=n(35),r=n(8),o=n(14),s=r?function(e,t){return r(e,"toString",{configurable:!0,enumerable:!1,value:i(t),writable:!0})}:o;e.exports=s},function(e,t){e.exports=function(e){return function(){return e}}},function(e,t){var n=Date.now;e.exports=function(e){var t=0,i=0;return function(){var r=n(),o=16-(r-i);if(i=r,o>0){if(++t>=800)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}},function(e,t,n){var i=n(13),r=n(4),o=n(16),s=n(3);e.exports=function(e,t,n){if(!s(n))return!1;var a=typeof t;return!!("number"==a?r(n)&&o(t,n.length):"string"==a&&t in n)&&i(n[t],e)}},function(e,t,n){var i=n(39),r=n(50),o=n(4);e.exports=function(e){return o(e)?i(e):r(e)}},function(e,t,n){var i=n(40),r=n(41),o=n(43),s=n(44),a=n(16),c=n(46),u=Object.prototype.hasOwnProperty;e.exports=function(e,t){var n=o(e),l=!n&&r(e),d=!n&&!l&&s(e),p=!n&&!l&&!d&&c(e),h=n||l||d||p,f=h?i(e.length,String):[],v=f.length;for(var m in e)!t&&!u.call(e,m)||h&&("length"==m||d&&("offset"==m||"parent"==m)||p&&("buffer"==m||"byteLength"==m||"byteOffset"==m)||a(m,v))||f.push(m);return f}},function(e,t){e.exports=function(e,t){for(var n=-1,i=Array(e);++n<e;)i[n]=t(n);return i}},function(e,t,n){var i=n(42),r=n(5),o=Object.prototype,s=o.hasOwnProperty,a=o.propertyIsEnumerable,c=i(function(){return arguments}())?i:function(e){return r(e)&&s.call(e,"callee")&&!a.call(e,"callee")};e.exports=c},function(e,t,n){var i=n(1),r=n(5);e.exports=function(e){return r(e)&&"[object Arguments]"==i(e)}},function(e,t){var n=Array.isArray;e.exports=n},function(e,t,n){(function(e){var i=n(2),r=n(45),o=t&&!t.nodeType&&t,s=o&&"object"==typeof e&&e&&!e.nodeType&&e,a=s&&s.exports===o?i.Buffer:void 0,c=(a?a.isBuffer:void 0)||r;e.exports=c}).call(this,n(18)(e))},function(e,t){e.exports=function(){return!1}},function(e,t,n){var i=n(47),r=n(48),o=n(49),s=o&&o.isTypedArray,a=s?r(s):i;e.exports=a},function(e,t,n){var i=n(1),r=n(15),o=n(5),s={};s["[object Float32Array]"]=s["[object Float64Array]"]=s["[object Int8Array]"]=s["[object Int16Array]"]=s["[object Int32Array]"]=s["[object Uint8Array]"]=s["[object Uint8ClampedArray]"]=s["[object Uint16Array]"]=s["[object Uint32Array]"]=!0,s["[object Arguments]"]=s["[object Array]"]=s["[object ArrayBuffer]"]=s["[object Boolean]"]=s["[object DataView]"]=s["[object Date]"]=s["[object Error]"]=s["[object Function]"]=s["[object Map]"]=s["[object Number]"]=s["[object Object]"]=s["[object RegExp]"]=s["[object Set]"]=s["[object String]"]=s["[object WeakMap]"]=!1,e.exports=function(e){return o(e)&&r(e.length)&&!!s[i(e)]}},function(e,t){e.exports=function(e){return function(t){return e(t)}}},function(e,t,n){(function(e){var i=n(11),r=t&&!t.nodeType&&t,o=r&&"object"==typeof e&&e&&!e.nodeType&&e,s=o&&o.exports===r&&i.process,a=function(){try{var e=o&&o.require&&o.require("util").types;return e||s&&s.binding&&s.binding("util")}catch(e){}}();e.exports=a}).call(this,n(18)(e))},function(e,t,n){var i=n(17),r=n(51),o=Object.prototype.hasOwnProperty;e.exports=function(e){if(!i(e))return r(e);var t=[];for(var n in Object(e))o.call(e,n)&&"constructor"!=n&&t.push(n);return t}},function(e,t,n){var i=n(52)(Object.keys,Object);e.exports=i},function(e,t){e.exports=function(e,t){return function(n){return e(t(n))}}},function(e,t,n){(function(t,n){
2
  /*!
3
  * @overview es6-promise - a tiny implementation of Promises/A+.
4
  * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)
5
  * @license Licensed under MIT license
6
  * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE
7
  * @version v4.2.8+1e68dce6
8
+ */var i;i=function(){"use strict";function e(e){return"function"==typeof e}var i=Array.isArray?Array.isArray:function(e){return"[object Array]"===Object.prototype.toString.call(e)},r=0,o=void 0,s=void 0,a=function(e,t){f[r]=e,f[r+1]=t,2===(r+=2)&&(s?s(v):y())},c="undefined"!=typeof window?window:void 0,u=c||{},l=u.MutationObserver||u.WebKitMutationObserver,d="undefined"==typeof self&&void 0!==t&&"[object process]"==={}.toString.call(t),p="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel;function h(){var e=setTimeout;return function(){return e(v,1)}}var f=new Array(1e3);function v(){for(var e=0;e<r;e+=2)(0,f[e])(f[e+1]),f[e]=void 0,f[e+1]=void 0;r=0}var m,g,b,w,y=void 0;function _(e,t){var n=this,i=new this.constructor(C);void 0===i[S]&&E(i);var r=n._state;if(r){var o=arguments[r-1];a((function(){return D(r,i,o,n._result)}))}else B(n,i,e,t);return i}function x(e){if(e&&"object"==typeof e&&e.constructor===this)return e;var t=new this(C);return P(t,e),t}d?y=function(){return t.nextTick(v)}:l?(g=0,b=new l(v),w=document.createTextNode(""),b.observe(w,{characterData:!0}),y=function(){w.data=g=++g%2}):p?((m=new MessageChannel).port1.onmessage=v,y=function(){return m.port2.postMessage(0)}):y=void 0===c?function(){try{var e=Function("return this")().require("vertx");return void 0!==(o=e.runOnLoop||e.runOnContext)?function(){o(v)}:h()}catch(e){return h()}}():h();var S=Math.random().toString(36).substring(2);function C(){}function k(t,n,i){n.constructor===t.constructor&&i===_&&n.constructor.resolve===x?function(e,t){1===t._state?A(e,t._result):2===t._state?j(e,t._result):B(t,void 0,(function(t){return P(e,t)}),(function(t){return j(e,t)}))}(t,n):void 0===i?A(t,n):e(i)?function(e,t,n){a((function(e){var i=!1,r=function(e,t,n,i){try{e.call(t,n,i)}catch(e){return e}}(n,t,(function(n){i||(i=!0,t!==n?P(e,n):A(e,n))}),(function(t){i||(i=!0,j(e,t))}),e._label);!i&&r&&(i=!0,j(e,r))}),e)}(t,n,i):A(t,n)}function P(e,t){if(e===t)j(e,new TypeError("You cannot resolve a promise with itself"));else if(r=typeof(i=t),null===i||"object"!==r&&"function"!==r)A(e,t);else{var n=void 0;try{n=t.then}catch(t){return void j(e,t)}k(e,t,n)}var i,r}function T(e){e._onerror&&e._onerror(e._result),O(e)}function A(e,t){void 0===e._state&&(e._result=t,e._state=1,0!==e._subscribers.length&&a(O,e))}function j(e,t){void 0===e._state&&(e._state=2,e._result=t,a(T,e))}function B(e,t,n,i){var r=e._subscribers,o=r.length;e._onerror=null,r[o]=t,r[o+1]=n,r[o+2]=i,0===o&&e._state&&a(O,e)}function O(e){var t=e._subscribers,n=e._state;if(0!==t.length){for(var i=void 0,r=void 0,o=e._result,s=0;s<t.length;s+=3)i=t[s],r=t[s+n],i?D(n,i,r,o):r(o);e._subscribers.length=0}}function D(t,n,i,r){var o=e(i),s=void 0,a=void 0,c=!0;if(o){try{s=i(r)}catch(e){c=!1,a=e}if(n===s)return void j(n,new TypeError("A promises callback cannot return that same promise."))}else s=r;void 0!==n._state||(o&&c?P(n,s):!1===c?j(n,a):1===t?A(n,s):2===t&&j(n,s))}var I=0;function E(e){e[S]=I++,e._state=void 0,e._result=void 0,e._subscribers=[]}var F=function(){function e(e,t){this._instanceConstructor=e,this.promise=new e(C),this.promise[S]||E(this.promise),i(t)?(this.length=t.length,this._remaining=t.length,this._result=new Array(this.length),0===this.length?A(this.promise,this._result):(this.length=this.length||0,this._enumerate(t),0===this._remaining&&A(this.promise,this._result))):j(this.promise,new Error("Array Methods must be provided an Array"))}return e.prototype._enumerate=function(e){for(var t=0;void 0===this._state&&t<e.length;t++)this._eachEntry(e[t],t)},e.prototype._eachEntry=function(e,t){var n=this._instanceConstructor,i=n.resolve;if(i===x){var r=void 0,o=void 0,s=!1;try{r=e.then}catch(e){s=!0,o=e}if(r===_&&void 0!==e._state)this._settledAt(e._state,t,e._result);else if("function"!=typeof r)this._remaining--,this._result[t]=e;else if(n===H){var a=new n(C);s?j(a,o):k(a,e,r),this._willSettleAt(a,t)}else this._willSettleAt(new n((function(t){return t(e)})),t)}else this._willSettleAt(i(e),t)},e.prototype._settledAt=function(e,t,n){var i=this.promise;void 0===i._state&&(this._remaining--,2===e?j(i,n):this._result[t]=n),0===this._remaining&&A(i,this._result)},e.prototype._willSettleAt=function(e,t){var n=this;B(e,void 0,(function(e){return n._settledAt(1,t,e)}),(function(e){return n._settledAt(2,t,e)}))},e}(),H=function(){function t(e){this[S]=I++,this._result=this._state=void 0,this._subscribers=[],C!==e&&("function"!=typeof e&&function(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}(),this instanceof t?function(e,t){try{t((function(t){P(e,t)}),(function(t){j(e,t)}))}catch(t){j(e,t)}}(this,e):function(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}())}return t.prototype.catch=function(e){return this.then(null,e)},t.prototype.finally=function(t){var n=this.constructor;return e(t)?this.then((function(e){return n.resolve(t()).then((function(){return e}))}),(function(e){return n.resolve(t()).then((function(){throw e}))})):this.then(t,t)},t}();return H.prototype.then=_,H.all=function(e){return new F(this,e).promise},H.race=function(e){var t=this;return i(e)?new t((function(n,i){for(var r=e.length,o=0;o<r;o++)t.resolve(e[o]).then(n,i)})):new t((function(e,t){return t(new TypeError("You must pass an array to race."))}))},H.resolve=x,H.reject=function(e){var t=new this(C);return j(t,e),t},H._setScheduler=function(e){s=e},H._setAsap=function(e){a=e},H._asap=a,H.polyfill=function(){var e=void 0;if(void 0!==n)e=n;else if("undefined"!=typeof self)e=self;else try{e=Function("return this")()}catch(e){throw new Error("polyfill failed because global object is unavailable in this environment")}var t=e.Promise;if(t){var i=null;try{i=Object.prototype.toString.call(t.resolve())}catch(e){}if("[object Promise]"===i&&!t.cast)return}e.Promise=H},H.Promise=H,H},e.exports=i()}).call(this,n(54),n(12))},function(e,t){var n,i,r=e.exports={};function o(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}function a(e){if(n===setTimeout)return setTimeout(e,0);if((n===o||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:o}catch(e){n=o}try{i="function"==typeof clearTimeout?clearTimeout:s}catch(e){i=s}}();var c,u=[],l=!1,d=-1;function p(){l&&c&&(l=!1,c.length?u=c.concat(u):d=-1,u.length&&h())}function h(){if(!l){var e=a(p);l=!0;for(var t=u.length;t;){for(c=u,u=[];++d<t;)c&&c[d].run();d=-1,t=u.length}c=null,l=!1,function(e){if(i===clearTimeout)return clearTimeout(e);if((i===s||!i)&&clearTimeout)return i=clearTimeout,clearTimeout(e);try{i(e)}catch(t){try{return i.call(null,e)}catch(t){return i.call(this,e)}}}(e)}}function f(e,t){this.fun=e,this.array=t}function v(){}r.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];u.push(new f(e,t)),1!==u.length||l||a(h)},f.prototype.run=function(){this.fun.apply(null,this.array)},r.title="browser",r.browser=!0,r.env={},r.argv=[],r.version="",r.versions={},r.on=v,r.addListener=v,r.once=v,r.off=v,r.removeListener=v,r.removeAllListeners=v,r.emit=v,r.prependListener=v,r.prependOnceListener=v,r.listeners=function(e){return[]},r.binding=function(e){throw new Error("process.binding is not supported")},r.cwd=function(){return"/"},r.chdir=function(e){throw new Error("process.chdir is not supported")},r.umask=function(){return 0}},function(e,t,n){n(56),n(57),n(58),n(79),n(59),n(60),n(61),n(62),n(63),n(64),jQuery(document).ready((function(){window.WPHB_Admin.init()}))},function(e,t,n){"use strict";n.r(t);var i=n(0);!function(e){var t={modules:[],init:function(){var n=document.querySelector("#wphb-dismissable > .sui-notice-dismiss");n&&n.addEventListener("click",(function(){var e=n.parentElement.getAttribute("data-id");i.a.notice.dismiss(e)})),e(".wphb-logging-buttons").on("click",".wphb-logs-clear",(function(e){e.preventDefault(),i.a.logger.clear(e.target.dataset.module).then((function(e){void 0!==e.success&&(e.success?t.notices.show("wphb-ajax-update-notice",!0,"success",e.message):t.notices.show("wphb-ajax-update-notice",!0,"error",e.message))}))})),e("#add-recipient").on("click",(function(){var n="",r="reports";window.location.search.includes("wphb-performance")?n="performance":window.location.search.includes("wphb-uptime")&&(n="uptime",window.location.search.includes("notifications")&&(r="notifications"));var o=e("#reporting-email"),s=o.closest(".sui-form-field"),a=o.val(),c=e("#reporting-first-name").val();s.removeClass("sui-form-field-error"),s.find(".sui-error-message").remove(),i.a.common.addRecipient(n,r,a,c).then((function(n){var i=e('<div class="sui-recipient"/>');"notifications"===r&&i.append('<span class="sui-recipient-status"><i class="sui-icon-clock" aria-hidden="true"></i></span>'),i.append('<span class="sui-recipient-name"/>'),i.find(".sui-recipient-name").append(n.name),i.append(e('<span class="sui-recipient-email"/>').html(a)),"notifications"===r&&i.append(e("<button/>").attr({class:"sui-button-icon wphb-resend-recipient sui-tooltip",type:"button","data-tooltip":wphb.strings.resendEmail}).html('<i class="sui-icon-send" aria-hidden="true"></i>')),i.append(e("<button/>").attr({class:"sui-button-icon wphb-remove-recipient",type:"button"}).html('<i class="sui-icon-trash" aria-hidden="true"></i>')),e("<input>").attr({type:"hidden",id:"report-recipient",name:"report-recipients[]",value:JSON.stringify({email:n.email,name:n.name})}).appendTo(i),e(".sui-recipients").append(i),e("#reporting-email").val(""),e("#reporting-first-name").val(""),e(".wphb-no-recipients").slideUp(),window.SUI.closeModal(),e(".sui-notice-top.sui-notice-success").hide(),e("#wphb-pending-sub-notice").hide(),e("#wphb-confirm-sub-notice").show(),t.notices.show("wphb-ajax-update-notice",!1,"info",c+wphb.strings.successRecipientAdded)})).catch((function(e){s.addClass("sui-form-field-error"),s.append('<span class="sui-error-message"/>'),s.find(".sui-error-message").append(e.message)}))}));var r=e("body");r.on("submit",".wphb-report-settings",(function(n){n.preventDefault(),e("#wphb-confirm-sub-notice").slideUp(),e(this).find(".button").attr("disabled","disabled"),i.a.common.saveReportsSettings(this.dataset.module,e(this).serialize()).then((function(n){void 0!==n&&n.success?n.enabled||""!==n.notice?(e(".sui-notice-top").hide(),e(".sui-box-body > .sui-notice-default:first-of-type").addClass("sui-notice-success").removeClass("sui-notice-default"),e(".sui-box-body > .sui-notice-success:first-of-type > p").text(n.recipientNotice),t.notices.show("wphb-ajax-update-notice",!0,"success",n.enabled?wphb.strings.confirmRecipient:n.notice)):window.location.search+="&updated=true":t.notices.show("wphb-ajax-update-notice",!0,"error",wphb.strings.errorSettingsUpdate)}))})),r.on("click",".wphb-remove-recipient",(function(){e(this).closest(".sui-recipient").remove();var t='input[id="report-recipient"][value='+e(this).attr("data-id")+"]";e(".wphb-report-settings").find(t).remove(),0===e(".sui-recipient").length&&(e("#wphb-pending-sub-notice").slideUp(),e(".wphb-no-recipients").slideDown())})),e("#chk1").on("click",(function(){e(".schedule-box").toggleClass("sui-hidden")})),e('select[name="report-frequency"]').change((function(){var t=e(this).val();"1"===t?e(this).closest(".schedule-box").find("div.days-container").hide():(e(this).closest(".schedule-box").find("div.days-container").show(),"7"===t?(e(this).closest(".schedule-box").find('[data-type="week"]').show(),e(this).closest(".schedule-box").find('[data-type="month"]').hide()):(e(this).closest(".schedule-box").find('[data-type="week"]').hide(),e(this).closest(".schedule-box").find('[data-type="month"]').show()))})).change()},initModule:function(e){return this.hasOwnProperty(e)?(this.modules[e]=this[e].init(),this.modules[e]):{}},getModule:function(e){return void 0!==this.modules[e]?this.modules[e]:this.initModule(e)}};t.notices={init:function(){},show:function(t){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:wphb.strings.successUpdate,o=e("#"+t);n&&window.scrollTo(0,0),""!==i&&(o.removeClass("sui-notice-error"),o.removeClass("sui-notice-success"),o.removeClass("sui-notice-info"),o.addClass("sui-notice-"+i)),o.find("p").html(r),o.slideDown(),setTimeout((function(){o.slideUp()}),5e3)}},window.WPHB_Admin=t}(jQuery)},function(e,t,n){"use strict";n.r(t);var i,r=n(0);i=jQuery,WPHB_Admin.performance={module:"performance",iteration:0,progress:0,timer:!1,pressedKeys:[],key_timer:!1,init:function(){var e=this,t=this;wphbPerformanceStrings&&(this.strings=wphbPerformanceStrings),this.wphbSetInterval(),document.onkeyup=function(e){clearInterval(t.key_timer),t.wphbSetInterval(),e=e||event,t.pressedKeys.push(e.keyCode);var n=t.pressedKeys.length;n>=2&&66===t.pressedKeys[n-1]&&72===t.pressedKeys[n-2]&&(document.getElementById("wphb-error-details").style.display="block")},i("#run-performance-test").on("click",(function(e){e.preventDefault(),window.SUI.openModal("run-performance-test-modal","wpbody-content",void 0,!1),i(this).attr("disabled",!0),t.performanceTest(t.strings.finishedTestURLsLink)}));var n=window.location.hash;if(n){var o=i(n);o.length&&!o.hasClass("sui-box")&&(o.find(".sui-accordion-open-indicator").trigger("click"),i("html, body").animate({scrollTop:o.offset().top},1e3))}return i("body").on("submit",".settings-frm",(function(e){e.preventDefault();var t=i(this).serialize();return r.a.performance.savePerformanceTestSettings(t).then((function(){return WPHB_Admin.notices.show("wphb-notice-performance-report-settings-updated",!0)})),!1})),"undefined"!=typeof google&&"undefined"!=typeof wphbHistoricFieldData&&(google.charts.load("current",{packages:["corechart","bar"]}),google.charts.setOnLoadCallback((function(){e.drawChart(wphbHistoricFieldData.fcp,"first_contentful_paint"),i(window).resize((function(){return e.drawChart(wphbHistoricFieldData.fcp,"first_contentful_paint")}))})),google.charts.setOnLoadCallback((function(){e.drawChart(wphbHistoricFieldData.fid,"first_input_delay"),i(window).resize((function(){return e.drawChart(wphbHistoricFieldData.fid,"first_input_delay")}))}))),i("input[name=desktop-report]").on("change",(function(e){var t="desktop_report-true"===e.target.id?"desktop_report-false":"desktop_report-true";e.target.parentNode.classList.add("active"),document.getElementById(t).parentNode.classList.remove("active")})),i("input[name=subsite-tests]").on("change",(function(e){var t="subsite_tests-false"===e.target.id?"subsite_tests-true":"subsite_tests-false";e.target.parentNode.classList.add("active"),document.getElementById(t).parentNode.classList.remove("active")})),i("input[name=report-type]").on("change",(function(e){for(var t=document.querySelectorAll("input[name=report-type]"),n=0;n<t.length;++n)t[n].parentNode.classList.remove("active");e.target.parentNode.classList.add("active")})),i("select[name=wphb-performance-report-type]").on("change",(function(e){var t=new URL(window.location);t.searchParams.set("type",e.target.value),window.location=t})),this},wphbSetInterval:function(){var e=this;this.key_timer=window.setInterval((function(){e.pressedKeys=[]}),1e3)},performanceTest:function(e){var t=this;void 0===e&&(e=!1),this.updateProgressBar(),r.a.performance.runTest().then((function(n){n.finished?e&&(t.progress=100,t.updateProgressBar(),window.setTimeout((function(){window.location=e}),2e3)):window.setTimeout((function(){t.performanceTest(e)}),3e3)}))},updateProgressBar:function(){var e=this;0===this.progress&&(this.progress=2,this.timer=window.setInterval((function(){e.progress+=1,e.updateProgressBar()}),100));var t=i(".sui-progress-state .sui-progress-state-text");3===this.progress&&t.text(this.strings.scanRunning),73===this.progress&&(clearInterval(this.timer),this.timer=!1,this.timer=window.setInterval((function(){e.progress+=1,e.updateProgressBar()}),1e3),t.text(this.strings.scanAnalyzing)),99===this.progress&&(t.text(this.strings.scanWaiting),clearInterval(this.timer),this.timer=!1),i(".sui-progress-block .sui-progress-text span").text(this.progress+"%"),i(".sui-progress-block .sui-progress-bar span").attr("style","width:"+this.progress+"%"),100===this.progress&&(i(".sui-progress-block i.sui-icon-loader").removeClass("sui-icon-loader sui-loading").addClass("sui-icon-check"),t.text(this.strings.scanComplete),clearInterval(this.timer),this.timer=!1)},drawChart:function(e,t){var n=google.visualization.arrayToDataTable([["Type","Fast",{type:"string",role:"tooltip",p:{html:!0}},"Average",{type:"string",role:"tooltip",p:{html:!0}},"Slow",{type:"string",role:"tooltip",p:{html:!0}}],["",e.fast,this.generateTooltip("fast",e.fast_desc),e.average,this.generateTooltip("average",e.average_desc),e.slow,this.generateTooltip("slow",e.slow_desc)]]);new google.visualization.BarChart(document.getElementById(t)).draw(n,{tooltip:{isHtml:!0},colors:["#1ABC9C","#FECF2F","#FF6D6D"],chartArea:{width:"100%"},hAxis:{baselineColor:"#fff",gridlines:{color:"#fff",count:0},textPosition:"none"},isStacked:"percent",height:80,legend:"none"})},generateTooltip:function(e,t){return'<div class="wphb-field-data-tooltip wphb-tooltip-'+e+'">'+t+"</div>"}}},function(e,t,n){"use strict";n.r(t);var i,r=n(0);i=jQuery,WPHB_Admin.caching={module:"caching",selectedServer:"",serverSelector:null,serverInstructions:[],snippets:[],selectedExpiryType:"all",init:function(){var e=this,t=window.location.hash,n=i('form[id="page-caching-form"]'),o=i('form[id="rss-caching-settings"]'),s=i('div[id="wphb-box-caching-gravatar"]'),a=i(".box-caching-status .sui-box-header"),c=i('form[id="expiry-settings"]'),u=i('form[id="other-caching-settings"]');e.serverSelector=i("#wphb-server-type"),e.selectedServer=e.serverSelector.val(),wphbCachingStrings&&(e.strings=wphbCachingStrings),t&&i(t).length?setTimeout((function(){i("html, body").animate({scrollTop:i(t).offset().top},"slow")}),300):"#connect-cloudflare"===t&&e.setCloudflare(),n.on("submit",(function(t){t.preventDefault(),e.saveSettings("page_cache",n)})),n.on("click",".sui-box-header .sui-button",(function(t){t.preventDefault(),e.clearCache("page_cache",n)}));var l=document.getElementById("clear_interval");l&&l.addEventListener("change",(function(e){e.preventDefault(),i("#page_cache_clear_interval").toggle()}));var d=document.getElementById("wphb-cancel-cache-preload");d&&d.addEventListener("click",(function(e){e.preventDefault(),r.a.caching.cancelPreload(),window.location.reload()}));var p=document.getElementById("preload");return p&&p.addEventListener("change",(function(e){e.preventDefault(),i("#page_cache_preload_type").toggle()})),i(".wphb-server-instructions").each((function(){e.serverInstructions[i(this).data("server")]=i(this)})),e.showServerInstructions(this.selectedServer),e.snippets.apache=i(".apache-instructions").find("pre.sui-code-snippet"),e.snippets.nginx=i("#wphb-server-instructions-nginx").find("pre.sui-code-snippet"),e.serverSelector.change((function(){var t=i(this).val();e.hideCurrentInstructions(),e.showServerInstructions(t),e.setServer(t),e.selectedServer=t,i(".hb-server-type").val(t)})),i("div[data-name='expiry-set-type']").on("click",(function(){var t=i(this).data("value");e.selectedExpiryType=t,e.reloadSnippets(e.getExpiryTimes(t))})),c.on("change",'select[name^="set-expiry"]',(function(){e.reloadSnippets(e.getExpiryTimes(e.selectedExpiryType)),i("#wphb-expiry-change-notice").slideDown()})),a.on("click","a.sui-button",(function(t){t.preventDefault();var n=a.find(".spinner"),i=a.find("a.sui-button");i.addClass("disabled"),n.addClass("visible"),r.a.caching.recheckExpiry().then((function(t){i.removeClass("disabled"),n.removeClass("visible"),void 0!==t&&t.success?(WPHB_Admin.notices.show("wphb-ajax-update-notice",!0,"success",e.strings.successRecheckStatus),e.reloadExpiryTags(t.expiry_values)):WPHB_Admin.notices.show("wphb-ajax-update-notice",!0,"error",e.strings.errorRecheckStatus)}))})),c.on("submit",(function(t){t.preventDefault();var n=i(".update-htaccess"),o=i(".wphb-expiry-changes .spinner"),s=i("#wphb-expiry-change-notice");n.addClass("disabled"),o.addClass("visible");var a=e.getExpiryTimes(e.selectedExpiryType);r.a.caching.setExpiration(a),setTimeout((function(){r.a.caching.updateHtaccess().then((function(t){n.removeClass("disabled"),o.removeClass("visible"),s.slideUp("slow"),void 0!==t&&t.success?WPHB_Admin.notices.show("wphb-ajax-update-notice",!0,"success",wphb.strings.htaccessUpdated):WPHB_Admin.notices.show("wphb-ajax-update-notice",!0,"error",e.strings.htaccessUpdatedFailed)}))}),1e3)})),i("#view-snippet-code").on("click",(function(t){t.preventDefault();var n=i("#wphb-server-instructions-"+e.selectedServer.toLowerCase()),r=e.selectedServer.toLowerCase();i("#auto-"+r).removeClass("active"),i("#manual-"+r).trigger("click").addClass("active"),i("html, body").animate({scrollTop:n.offset().top-50},"slow")})),i(".activate-button").on("click",(function(t){t.preventDefault(),i(this).addClass("sui-button-onload");var n=e.getExpiryTimes(e.selectedExpiryType);r.a.caching.setExpiration(n);var o=i(this).attr("href");setTimeout((function(){window.location=o}),1e3)})),i(".connect-cloudflare-link").on("click",(function(t){t.preventDefault(),window.location.hash="connect-cloudflare",e.setCloudflare()})),i("#configure-link").on("click",(function(e){e.preventDefault(),i("html, body").animate({scrollTop:i("#wphb-box-caching-settings").offset().top},"slow")})),i("#dismiss-cf-notice").on("click",(function(e){e.preventDefault(),r.a.notice.dismissCloudflareDash(),i(".cf-dash-notice").slideUp().parent().addClass("no-background-image")})),s.on("click",".sui-box-header .sui-button",(function(t){t.preventDefault(),e.clearCache("gravatar",s)})),o.on("submit",(function(t){t.preventDefault();var n=o.find("#rss-expiry-time");n.val(Math.abs(n.val())),e.saveSettings("rss",o)})),u.on("submit",(function(t){t.preventDefault();var n=i('input[name="detection"]:checked',u).val();"auto"!==n&&"none"!==n||i(".wphb-notice.notice-info").slideUp(),e.saveSettings("other_cache",u)})),this},saveSettings:function(e,t){var n=t.find(".sui-box-footer .spinner");n.addClass("visible"),r.a.caching.saveSettings(e,t.serialize()).then((function(t){n.removeClass("visible"),void 0!==t&&t.success?"page_cache"===e?window.location.search+="&updated=true":WPHB_Admin.notices.show("wphb-ajax-update-notice",!0,"success"):WPHB_Admin.notices.show("wphb-ajax-update-notice",!0,"error",wphb.strings.errorSettingsUpdate)}))},clearCache:function(e,t){var n=t.find(".sui-box-header .spinner");n.addClass("visible"),r.a.caching.clearCache(e).then((function(t){void 0!==t&&t.success?"page_cache"===e?(i(".box-caching-summary span.sui-summary-large").html("0"),WPHB_Admin.notices.show("wphb-ajax-update-notice",!0,"success",wphbCachingStrings.successPageCachePurge)):"gravatar"===e&&WPHB_Admin.notices.show("wphb-ajax-update-notice",!0,"success",wphbCachingStrings.successGravatarPurge):WPHB_Admin.notices.show("wphb-ajax-update-notice",!0,"error",wphbCachingStrings.errorCachePurge),n.removeClass("visible")}))},setServer:function(e){r.a.caching.setServer(e)},setCloudflare:function(){i("#wphb-server-type").val("cloudflare").trigger("sui:change"),this.hideCurrentInstructions(),this.setServer("cloudflare"),this.showServerInstructions("cloudflare"),this.selectedServer="cloudflare",setTimeout((function(){i("html, body").animate({scrollTop:i("#cloudflare-steps").offset().top},"slow")}),300)},reloadExpiryTags:function(e){for(var t in e)e.hasOwnProperty(t)&&i("#wphb-caching-expiry-"+t).text(e[t])},hideCurrentInstructions:function(){this.serverInstructions[this.selectedServer]&&this.serverInstructions[this.selectedServer].addClass("sui-hidden")},showServerInstructions:function(e){void 0!==this.serverInstructions[e]&&this.serverInstructions[e].removeClass("sui-hidden"),"apache"===e?i(".enable-cache-wrap-"+e).removeClass("sui-hidden"):i("#enable-cache-wrap").addClass("sui-hidden")},reloadSnippets:function(e){var t=this;for(var n in t.snippets)t.snippets.hasOwnProperty(n)&&(r.a.caching.setExpiration(e),r.a.caching.reloadSnippets(n,e).then((function(e){t.snippets[e.type].text(e.code)})))},getExpiryTimes:function(e){var t=[];if("all"===e){var n=i("#set-expiry-all").val();t={expiry_javascript:n,expiry_css:n,expiry_media:n,expiry_images:n}}else t={expiry_javascript:i("#set-expiry-javascript").val(),expiry_css:i("#set-expiry-css").val(),expiry_media:i("#set-expiry-media").val(),expiry_images:i("#set-expiry-images").val()};return t}}},function(e,t,n){"use strict";n.r(t);var i,r=n(0);i=jQuery,WPHB_Admin.dashboard={module:"dashboard",init:function(){return wphbDashboardStrings&&(this.strings=wphbDashboardStrings),i(".wphb-performance-report-item").click((function(){var e=i(this).data("performance-url");e&&(location.href=e)})),i("#dismiss-cf-notice").click((function(e){e.preventDefault(),r.a.notice.dismissCloudflareDash();var t=i(".cf-dash-notice");t.slideUp(),t.parent().addClass("no-background-image")})),this},skipSetup:function(){r.a.dashboard.skipSetup().then((function(){location.reload()}))},runPerformanceTest:function(){window.SUI.closeModal(),window.SUI.openModal("run-performance-test-modal","wpbody-content",void 0,!1),window.WPHB_Admin.getModule("performance").performanceTest(this.strings.finishedTestURLsLink)}}},function(e,t,n){"use strict";n.r(t);var i,r=n(0);i=jQuery,WPHB_Admin.DashboardCloudFlare={init:function(e){this.currentStep=e.currentStep,this.data=e,this.email=e.email,this.apiKey=e.apiKey,this.$stepsContainer=i("#cloudflare-steps"),this.$infoBox=i("#cloudflare-info"),this.$spinner=i(".cloudflare-spinner"),this.$deactivateButton=i(".cloudflare-deactivate.button"),this.$body=i("body"),this.renderStep(this.currentStep),this.$body.on("click",'input[type="submit"].cloudflare-clear-cache',function(e){e.preventDefault(),this.purgeCache.apply(i(e.target),[this])}.bind(this)),this.$body.on("click","#cf-recheck-zones",function(e){e.preventDefault(),i("#cf-recheck-zones").addClass("sui-button-onload"),this.updateZones.apply(i(e.target),[this])}.bind(this))},purgeCache:function(e){var t=this;t.attr("disabled",!0),e.showSpinner(),r.a.cloudflare.purgeCache().then((function(){WPHB_Admin.notices.show("wphb-ajax-update-notice",!0,"success",wphbCachingStrings.successCloudflarePurge),t.removeAttr("disabled"),e.hideSpinner()}))},renderStep:function(e){var t=WPHB_Admin.DashboardCloudFlare.template("#cloudflare-step-"+e),n=t(this.data),r=this;n&&(this.currentStep=e,this.$stepsContainer.hide().html(t(this.data)).fadeIn().find("form").on("submit",(function(e){e.preventDefault(),r.submitStep.call(r,i(this))})),this.$spinner=this.$stepsContainer.find(".cloudflare-spinner")),this.bindEvents()},bindEvents:function(){var e=i("#cloudflare-how-to");e.hide(),i("a.cloudflare-how-to-title").click((function(t){t.preventDefault(),e.toggle()})),this.$stepsContainer.find("select").each((function(){SUI.suiSelect(this)})),"final"===this.currentStep?this.$deactivateButton.removeClass("hidden"):this.$deactivateButton.addClass("hidden")},emptyInfoBox:function(){this.$infoBox.html(""),this.$infoBox.removeClass()},updateZones:function(e){e.hideInfoBox(),r.a.cloudflare.recheckZones().then((function(t){e.data.zones=t.zones,e.renderStep(e.currentStep),i("#cf-recheck-zones").removeClass("sui-button-onload")})).catch((function(t){e.showInfoBox(t,"warning"),i("#cf-recheck-zones").removeClass("sui-button-onload")}))},showInfoBox:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"error";this.$infoBox.addClass("sui-notice"),this.$infoBox.addClass("sui-notice-"+t),this.$infoBox.addClass("sui-notice-sm"),this.$infoBox.html("<p>"+e+" </p>")},hideInfoBox:function(){this.$infoBox.removeClass(),this.$infoBox.html("")},showSpinner:function(){this.$spinner.css("visibility","visible")},hideSpinner:function(){this.$spinner.css("visibility","hidden")},submitStep:function(e){var t=this;e.find("input[type=submit]").attr("disabled","true"),this.emptyInfoBox(),this.showSpinner(),r.a.cloudflare.connect(this.currentStep,e.serialize(),this.data).then((function(e){t.data=e.newData,t.renderStep(e.nextStep),"final"===e.nextStep&&(window.location.href=e.redirect)})).catch((function(e){t.showInfoBox(e)})),e.find("input[type=submit]").removeAttr("disabled"),t.hideSpinner()}},WPHB_Admin.DashboardCloudFlare.template=_.memoize((function(e){var t,n={evaluate:/<#([\s\S]+?)#>/g,interpolate:/\{\{\{([\s\S]+?)\}\}\}/g,escape:/\{\{([^\}]+?)\}\}(?!\})/g,variable:"data"};return function(r){return _.templateSettings=n,(t=t||_.template(i(e).html()))(r)}}))},function(e,t,n){"use strict";n.r(t);var i,r=n(0);i=jQuery,WPHB_Admin.uptime={module:"uptime",$dataRangeSelector:null,chartData:null,downtimeChartData:null,timer:null,$spinner:null,dataRange:null,dateFormat:"MMM d",init:function(){var e=this;this.$spinner=i(".spinner"),this.strings=wphbUptimeStrings,this.$dataRangeSelector=i("#wphb-uptime-data-range"),this.chartData=i("#uptime-chart-json").val(),this.downtimeChartData=i("#downtime-chart-json").val(),this.$disableUptime=i("#wphb-disable-uptime"),this.dataRange=this.getUrlParameter("data-range"),this.$dataRangeSelector.change((function(){window.location.href=i(this).find(":selected").data("url")}));var t=this;"undefined"!=typeof google&&google.charts.load("current",{packages:["corechart","timeline"]}),this.$disableUptime.on("click",(function(e){e.preventDefault(),t.$spinner.css("visibility","visible"),i(this).is(":checked")&&t.timer?(clearTimeout(t.timer),t.$spinner.css("visibility","hidden")):t.timer=setTimeout((function(){location.href=t.strings.disableUptimeURL}),3e3)})),void 0!==this.dataRange&&i(".wrap-wphb-uptime .wphb-tab a").each((function(){this.href+="&data-range="+t.dataRange})),"day"===this.dataRange&&(this.dateFormat="h:mma"),null!==document.getElementById("uptime-chart")&&google.charts.setOnLoadCallback((function(){return e.drawResponseTimeChart()})),null!==document.getElementById("downtime-chart")&&google.charts.setOnLoadCallback((function(){return e.drawDowntimeChart()})),i("#uptime-re-check-status").on("click",(function(e){e.preventDefault(),location.reload()})),i(".wphb-resend-recipient").on("click",(function(e){r.a.uptime.resendConfirmationEmail(e.currentTarget.dataset.name,e.currentTarget.dataset.email).then((function(e){WPHB_Admin.notices.show("wphb-ajax-update-notice",!1,"success",e.message)}))}))},drawResponseTimeChart:function(){var e=new google.visualization.DataTable;e.addColumn("datetime","Day"),e.addColumn("number","Response Time (ms)"),e.addColumn({type:"string",role:"tooltip",p:{html:!0}});for(var t=JSON.parse(this.chartData),n=0;n<t.length;n++)t[n][0]=new Date(t[n][0]),t[n][1]=Math.round(t[n][1]),t[n][2]=this.createUptimeTooltip(t[n][0],t[n][1]),0===Math.round(t[n][1])&&(t[n][1]=-100);e.addRows(t);var r={chartArea:{left:80,top:20,width:"90%",height:"90%"},colors:["#24ADE5"],curveType:"function",legend:{position:"none"},vAxis:{format:"#### ms",gridlines:{count:5},minorGridlines:{count:0},viewWindow:{min:0}},hAxis:{format:this.dateFormat,minorGridlines:{count:0}},tooltip:{isHtml:!0},series:{0:{axis:"Resp"}},axes:{y:{Resp:{label:"Response Time (ms)"}}}},o=new google.visualization.AreaChart(document.getElementById("uptime-chart"));o.draw(e,r),i(window).resize((function(){o.draw(e,r)}))},drawDowntimeChart:function(){var e=document.getElementById("downtime-chart"),t=new google.visualization.Timeline(e),n=new google.visualization.DataTable;n.addColumn({type:"string"}),n.addColumn({type:"string",id:"Status"}),n.addColumn({type:"string",role:"tooltip",p:{html:!0}}),n.addColumn({type:"datetime",id:"Start Period"}),n.addColumn({type:"datetime",id:"End Period"});for(var r=JSON.parse(this.downtimeChartData),o=0;o<r.length;o++)r[o][0]=r[o][0],r[o][1]=r[o][1],r[o][2]=r[o][2],r[o][3]=new Date(r[o][3]),r[o][4]=new Date(r[o][4]);n.addRows(r);for(var s=[],a={Down:"#FF6D6D",Unknown:"#F8F8F8",Up:"#D1F1EA"},c=0;c<n.getNumberOfRows();c++)s.push(a[n.getValue(c,1)]);var u={timeline:{showBarLabels:!1,showRowLabels:!1,barLabelStyle:{fontSize:33},avoidOverlappingGridLines:!1},hAxis:{format:this.dateFormat},colors:s,height:170},l=[];google.visualization.events.addListener(t,"ready",(function(){var t=e.getElementsByTagName("rect");Array.prototype.forEach.call(t,(function(e){parseFloat(e.getAttribute("x"))>0&&l.push(e.getAttribute("fill"))}))})),google.visualization.events.addListener(t,"onmouseover",(function(t){var n=e.getElementsByTagName("rect");n[n.length-1].setAttribute("fill",l[t.row]);var i=n[n.length-1].getAttribute("width");i>3&&n[n.length-1].setAttribute("width",i-1+"px")})),t.draw(n,u),i(window).resize((function(){t.draw(n,u)}))},createUptimeTooltip:function(e,t){return'<span class="response-time-tooltip">'+t+'ms</span><span class="uptime-date-tooltip">'+this.formatTooltipDate(e)+"</span>"},formatTooltipDate:function(e){var t=e.getDate(),n=e.getMonth(),i=e.getHours(),r=i,o=(e.getMinutes()<10?"0":"")+e.getMinutes(),s="AM";return r>=12&&(r=i-12,s="PM"),0===r&&(r=12),["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"][n]+" "+t+" @ "+r+":"+o+s},getUrlParameter:function(e){var t,n,i=decodeURIComponent(window.location.search.substring(1)).split("&");for(n=0;n<i.length;n++)if((t=i[n].split("="))[0]===e)return void 0===t[1]||t[1]}}},function(e,t,n){"use strict";n.r(t);var i,r=n(0);i=jQuery,WPHB_Admin.cloudflare={module:"cloudflare",init:function(){var e=this,t=i("#set-cf-expiry-button"),n=i("#set-expiry-all");return wphb.cloudflare.is.connected&&t.on("click",(function(t){t.preventDefault(),e.setExpiry.call(e,n)})),this},setExpiry:function(e){var t=i(".wphb-expiry-changes .spinner"),n=i('.wphb-expiry-changes input[type="submit"]');t.addClass("visible"),n.addClass("disabled"),r.a.cloudflare.setExpiration(i(e).val()).then((function(e){i("#wphb-expiry-change-notice").hide(),t.removeClass("visible"),n.removeClass("disabled"),void 0!==e&&e.success?WPHB_Admin.notices.show("wphb-ajax-update-notice",!0,"success"):WPHB_Admin.notices.show("wphb-ajax-update-notice",!0,"error",wphb.strings.errorSettingsUpdate)}))}}},function(e,t,n){"use strict";n.r(t);var i,r=n(0);i=jQuery,WPHB_Admin.advanced={module:"advanced",init:function(){var e=this,t=i("#wphb-system-info-dropdown"),n=window.location.hash;if(i("#wphb-db-delete-all, .wphb-db-row-delete").on("click",(function(t){t.preventDefault(),e.showModal(t.target.dataset.entries,t.target.dataset.type)})),i('form[id="advanced-db-settings"], form[id="advanced-general-settings"]').on("submit",(function(e){e.preventDefault();var t=i(this).parent().find(".sui-icon-loader");t.removeClass("sui-hidden"),r.a.advanced.saveSettings(i(this).serialize(),e.target.id).then((function(n){t.addClass("sui-hidden"),void 0!==n&&n.success?("advanced-db-settings"===e.target.id&&r.a.advanced.scheduleCleanup(),WPHB_Admin.notices.show("wphb-notice-advanced-tools",!0,"success")):WPHB_Admin.notices.show("wphb-notice-advanced-tools",!0,"error",wphb.strings.errorSettingsUpdate)}))})),i('input[id="scheduled_cleanup"]').on("change",(function(){i(".schedule-box").toggle()})),i("#wphb-system-info-php").removeClass("sui-hidden"),n){var o=n.replace("#","");i(".wphb-sys-info-table").addClass("sui-hidden"),i("#wphb-system-info-"+o).removeClass("sui-hidden"),t.val(o).trigger("sui:change")}t.change((function(e){e.preventDefault(),i(".wphb-sys-info-table").addClass("sui-hidden"),i("#wphb-system-info-"+i(this).val()).removeClass("sui-hidden"),location.hash=i(this).val()})),i("#wphb-adv-paste-value").on("click",(function(e){e.preventDefault();var t=i('textarea[name="url_strings"]');""===t.val()?t.val(t.attr("placeholder")):t.val(t.val()+"\n"+t.attr("placeholder"))}));var s=document.getElementById("cart_fragments");return s&&s.addEventListener("change",(function(e){e.preventDefault(),i("#cart_fragments_desc").toggle()})),this},showModal:function(e,t){var n=wphb.strings.db_delete+" "+e+" "+wphb.strings.db_entries+"? "+wphb.strings.db_backup,r=i(".wphb-database-cleanup-modal");r.find("p").html(n),r.find(".wphb-delete-db-row").attr("data-type",t),window.SUI.openModal("wphb-database-cleanup-modal","wpbody-content",void 0,!1)},confirmDelete:function(e){var t;window.SUI.closeModal();var n=i(".box-advanced-db .sui-box-footer"),o=(t="all"===e?n:i(".box-advanced-db .wphb-border-frame").find("div[data-type="+e+"]")).find(".sui-icon-loader"),s=t.find(".wphb-db-row-delete");o.removeClass("sui-hidden"),s.addClass("sui-hidden"),r.a.advanced.deleteSelectedData(e).then((function(e){for(var t in WPHB_Admin.notices.show("wphb-notice-advanced-tools",!1,"success",e.message),o.addClass("sui-hidden"),s.removeClass("sui-hidden"),e.left)if("total"===t){var r=wphb.strings.deleteAll+" ("+e.left[t]+")";n.find(".wphb-db-delete-all").html(r),n.find("#wphb-db-delete-all").attr("data-entries",e.left[t])}else{var a=i(".box-advanced-db div[data-type="+t+"]");a.find(".wphb-db-items").html(e.left[t]),a.find(".wphb-db-row-delete").attr("data-entries",e.left[t])}})).catch((function(e){WPHB_Admin.notices.show("wphb-notice-advanced-tools",!1,"error",e),o.addClass("sui-hidden")}))}}},function(e,t,n){"use strict";n.r(t);var i,r=n(0);i=jQuery,WPHB_Admin.settings={module:"settings",init:function(){var e=i("body"),t=e.find(".wrap-wphb-settings");return e.on("click","button.sui-button",(function(n){n.preventDefault();var o=e.find(".settings-frm").serialize(),s=i("#color_accessible");return s.length&&(s.is(":checked")?t.addClass("sui-color-accessible"):t.removeClass("sui-color-accessible")),r.a.settings.saveSettings(o).then((function(){WPHB_Admin.notices.show("wphb-ajax-update-notice",!0)})),!1})),i("input[name=remove_settings]").on("change",(function(e){var t="remove_settings-false"===e.target.id?"remove_settings-true":"remove_settings-false";e.target.parentNode.classList.add("active"),document.getElementById(t).parentNode.classList.remove("active")})),i("input[name=remove_data]").on("change",(function(e){var t="remove_data-false"===e.target.id?"remove_data-true":"remove_data-false";e.target.parentNode.classList.add("active"),document.getElementById(t).parentNode.classList.remove("active")})),this},confirmReset:function(){r.a.settings.resetSettings().then((function(){window.location.href=wphb.urls.resetSettings}))}}},,,,,,,,,,,,,,,function(e,t,n){"use strict";n.r(t);var i=n(0),r=function(e){return wphb.links[e]||""},o=function(e,t,n){var i=e,r=t.toLowerCase(),o=!1,s=!1,a=!0,c=i.find(".toggle-include"),u=i.find(".toggle-combine"),l=i.find(".toggle-minify"),d=i.find(".toggle-position-footer"),p=i.find(".toggle-defer"),h=i.find(".toggle-inline"),f=i.find(".toggle-cross > i"),v=i.find(".wphb-minification-file-select input[type=checkbox]");return n&&(o=n.toLowerCase()),{hide:function(){i.addClass("out-of-filter"),a=!1},show:function(){i.removeClass("out-of-filter"),a=!0},getElement:function(){return i},getId:function(){return i.attr("id")},getFilter:function(){return r},matchFilter:function(e){return""===e||(e=e.toLowerCase(),r.search(e)>-1)},matchSecondaryFilter:function(e){return""===e||!!o&&(e=e.toLowerCase(),o===e)},isVisible:function(){return a},isSelected:function(){return s},isType:function(e){return e===v.attr("data-type")},select:function(){s=!0,v.prop("checked",!0)},unSelect:function(){s=!1,v.prop("checked",!1)},change:function(e,t){switch(e){case"minify":l.prop("checked",t),l.toggleClass("changed"),l.closest(".wphb-border-row").find("span.wphb-row-status").removeClass("hidden");break;case"combine":u.prop("checked",t),u.toggleClass("changed"),u.closest(".wphb-border-row").find("span.wphb-row-status").removeClass("hidden");break;case"defer":p.prop("checked",t),p.toggleClass("changed"),p.closest(".wphb-border-row").find("span.wphb-row-status").removeClass("hidden");break;case"inline":h.prop("checked",t),h.toggleClass("changed"),h.closest(".wphb-border-row").find("span.wphb-row-status").removeClass("hidden");break;case"include":f.removeClass(),c.prop("checked",t),c.toggleClass("changed"),c.closest(".wphb-border-row").find("span.wphb-row-status").removeClass("hidden"),t?(i.removeClass("disabled"),f.addClass("dev-icon dev-icon-cross"),c.attr("checked",!0)):(i.addClass("disabled"),f.addClass("wdv-icon wdv-icon-refresh"),c.removeAttr("checked"));break;case"footer":d.prop("checked",t),d.toggleClass("changed"),d.closest(".wphb-border-row").find("span.wphb-row-status").removeClass("hidden")}}}};function s(e){return(s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var a,c=function(){var e=[],t="",n="";return{push:function(t){"object"===s(t)&&e.push(t)},getItems:function(){return e},getItem:function(t){return!!e[t]&&e[t]},getItemById:function(t,n){var i=!1;for(var r in e)if("wphb-file-"+t+"-"+n===e[r].getId()){i=e[r];break}return i},getItemsByDataType:function(t){var n=[];for(var i in e)e[i].isType(t)&&n.push(e[i]);return n},getVisibleItems:function(){var t=[];for(var n in e)e[n].isVisible()&&t.push(e[n]);return t},getSelectedItems:function(){var t=[];for(var n in e)e[n].isVisible()&&e[n].isSelected()&&t.push(e[n]);return t},addFilter:function(e,i){"secondary"===i?n=e:t=e},applyFilters:function(){for(var i in e)e[i]&&(e[i].matchFilter(t)&&e[i].matchSecondaryFilter(n)?e[i].show():e[i].hide())}}},u=function(e,t){e=parseInt(e),t=parseInt(t);var n=!1,r={scan:function(){var n=e-t;0!==t?o(n):i.a.minification.startCheck().then((function(){o(n)}))},cancel:function(){return n=!0,i.a.minification.cancelScan()},getProgress:function(){if(n)return 0;var i=e-t;return Math.min(Math.round(100*parseInt(e-i)/e),99)},onFinishStep:function(e){},onFinish:function(e){WPHB_Admin.minification.updateProgressBar(100),void 0!==e.assets_msg&&jQuery(".wphb-assets-modal").find("#assetsFound").html(e.assets_msg),window.SUI.closeModal(),window.SUI.openModal("wphb-assets-modal","wpbody-content",void 0,!1)}},o=function n(o){o>=0?(t=e-o,i.a.minification.checkStep(t).then((function(){o-=1,r.onFinishStep(r.getProgress()),n(o)}))):i.a.minification.finishCheck().then((function(e){r.onFinish(e)}))};return r};a=jQuery,WPHB_Admin.minification={module:"minification",moduleNoticeId:"wphb-notice-minification-advanced-settings-updated",$checkFilesButton:null,$checkFilesResultsContainer:null,checkURLSList:null,checkedURLS:0,init:function(){var e=this,t=this;this.scanner=new u(wphb.minification.get.totalSteps,wphb.minification.get.currentScanStep),this.scanner.onFinishStep=this.updateProgressBar,this.$checkFilesButton=a("#check-files"),this.$checkFilesButton.length&&this.$checkFilesButton.click((function(e){e.preventDefault(),window.SUI.openModal("check-files-modal","wpbody-content",void 0,!1),a(this).attr("disabled",!0),t.updateProgressBar(t.scanner.getProgress()),t.scanner.scan()})),a("body").on("click","#cancel-minification-check",(function(t){t.preventDefault(),e.updateProgressBar(0,!0),e.scanner.cancel().then((function(){window.location.href=r("minification")}))})),a(':input.toggle-checkbox, :input[id*="wphb-minification-include"]').on("change",(function(){var e=a(this).closest(".wphb-border-row"),t=e.find("span.wphb-row-status-changed");a(this).toggleClass("changed"),0!==e.find(".changed").length?t.removeClass("sui-hidden"):t.addClass("sui-hidden"),0!==a(".wphb-minification-files").find("input.changed").length?a("#wphb-publish-changes").removeClass("disabled"):a("#wphb-publish-changes").addClass("disabled")})),a(":input.wphb-minification-file-selector, :input.wphb-minification-bulk-file-selector").on("change",(function(){a(this).toggleClass("changed");var e=a(".wphb-minification-files").find("input.changed"),t=a(".sui-actions-left > #bulk-update");0===e.length?t.addClass("button-notice disabled"):t.removeClass("button-notice disabled")}));var n=document.getElementById("wphb-switch-button");n&&n.addEventListener("change",(function(e){e.preventDefault();var t=e.target.checked;!0===t?window.SUI.openModal("wphb-advanced-minification-modal","wpbody-content",void 0,!1):window.SUI.openModal("wphb-basic-minification-modal","wpbody-content",void 0,!1),e.target.checked=!t})),a("#wphb-minification-filter-button").on("click",(function(e){a(".wphb-minification-filter").toggle("slow"),a("#wphb-minification-filter-button").toggleClass("active")})),a(".wphb-discard").on("click",(function(e){var t;return e.preventDefault(),confirm((t="discardAlert",wphb.strings[t]||""))&&location.reload(),!1})),a(".wphb-enqueued-files input").on("change",(function(){a(".wphb-discard").attr("disabled",!1)}));var o=a("input[type=checkbox][name=use_cdn]");o.change((function(){a("#cdn_file_exclude").toggleClass("sui-hidden");var e=a(this).is(":checked");o.each((function(){this.checked=e})),i.a.minification.toggleCDN(e).then((function(){WPHB_Admin.notices.show(t.moduleNoticeId,!0)}))})),a(".wphb-minification-exclude > :input.toggle-checkbox").on("change",(function(){a(this).closest(".wphb-border-row").toggleClass("disabled");var e=a("label[for='"+a(this).attr("id")+"']");e.hasClass("fileIncluded")?(e.attr("data-tooltip",wphb.strings.includeFile),e.removeClass("fileIncluded")):(e.attr("data-tooltip",wphb.strings.excludeFile),e.addClass("fileIncluded"))})),a(".wphb-compressed .wphb-filename-extension").on("click",(function(){var e=a(this).closest(".wphb-border-row");e.find(".fileinfo-group").removeClass("wphb-compressed"),e.find(".wphb-row-status").removeClass("sui-hidden wphb-row-status-changed").addClass("wphb-row-status-queued sui-tooltip-constrained").attr("data-tooltip",wphb.strings.queuedTooltip).find("i").attr("class","sui-icon-loader sui-loading"),i.a.minification.resetAsset(e.attr("data-filter"))})),a("input[type=checkbox][name=debug_log]").change((function(){var e=a(this).is(":checked");i.a.minification.toggleLog(e).then((function(){WPHB_Admin.notices.show(t.moduleNoticeId,!0),e?a(".wphb-logging-box").show():a(".wphb-logging-box").hide()}))})),a("#wphb-minification-tools-form").on("submit",(function(e){e.preventDefault();var n=a(this).find(".spinner");n.addClass("visible"),i.a.minification.saveCriticalCss(a(this).serialize()).then((function(e){n.removeClass("visible"),void 0!==e&&e.success?WPHB_Admin.notices.show(t.moduleNoticeId,!0,"success",e.message):WPHB_Admin.notices.show(t.moduleNoticeId,!0,"error",e.message)}))}));var s=document.getElementById("file_path");null!==s&&(s.onchange=function(e){e.preventDefault(),i.a.minification.updateAssetPath(a(this).val()).then((function(){WPHB_Admin.notices.show(t.moduleNoticeId,!0,"success")}))}),a("#wphb-network-ao").on("click",(function(){a(".sui-border-frame:first-of-type").toggleClass("sui-hidden")})),a("#wphb-box-minification-network-settings").on("change","input[type=radio]",(function(e){var t=document.querySelectorAll("input[name="+e.target.name+"]");"log"===e.target.name&&a(".wphb-logs-frame").toggle(e.target.value);for(var n=0;n<t.length;++n)t[n].parentNode.classList.remove("active");e.target.parentNode.classList.add("active")})),a("#wphb-ao-network-settings").on("click",(function(e){e.preventDefault();var n=a(".sui-box-footer").find(".spinner");n.addClass("visible");var r=a("#ao-network-settings-form").serialize();i.a.minification.saveNetworkSettings(r).then((function(e){n.removeClass("visible"),void 0!==e&&e.success?WPHB_Admin.notices.show(t.moduleNoticeId,!0,"success"):WPHB_Admin.notices.show(t.moduleNoticeId,!0,"error",wphb.strings.errorSettingsUpdate)}))}));var c=a("#cdn_exclude");c.SUIselect2(),a("#wphb-ao-settings-update").on("click",(function(e){e.preventDefault();var n=a(".sui-box-footer").find(".spinner");n.addClass("visible");for(var r=c.find(":selected"),o={scripts:[],styles:[]},s=0;s<r.length;++s)o[r[s].dataset.type].push(r[s].value);i.a.minification.updateExcludeList(JSON.stringify(o)).then((function(){n.removeClass("visible"),WPHB_Admin.notices.show(t.moduleNoticeId,!0,"success")}))})),this.rowsCollection=new WPHB_Admin.minification.RowsCollection,a(".wphb-border-row").each((function(e,n){var i;i=a(n).data("filter-secondary")?new WPHB_Admin.minification.Row(a(n),a(n).data("filter"),a(n).data("filter-secondary")):new WPHB_Admin.minification.Row(a(n),a(n).data("filter")),t.rowsCollection.push(i)}));var l=a("#wphb-s");l.keydown((function(e){if(13===e.keyCode)return event.preventDefault(),!1})),l.keyup((function(){t.rowsCollection.addFilter(a(this).val(),"primary"),t.rowsCollection.applyFilters()})),a("#wphb-secondary-filter").change((function(){t.rowsCollection.addFilter(a(this).val(),"secondary"),t.rowsCollection.applyFilters()})),a(".filter-toggles").change((function(){var e=a(this),n=e.data("toggles"),i=e.prop("checked"),r=t.rowsCollection.getVisibleItems();for(var o in r)r[o].change(n,i)})),a("input.wphb-minification-file-selector").on("click",(function(){var e=a(this),n=t.rowsCollection.getItemById(e.data("type"),e.data("handle"));n&&(e.is(":checked")?n.select():n.unSelect())})),a(".wphb-minification-bulk-file-selector").click((function(){var e=a(this),n=t.rowsCollection.getItemsByDataType(e.attr("data-type"));for(var i in n)n.hasOwnProperty(i)&&(e.is(":checked")?n[i].select():n[i].unSelect())})),a("body").on("click",".wphb-border-row",(function(){window.innerWidth<783&&(a(this).find(".wphb-minification-row-details").toggle(),a(this).find(".fileinfo-group").toggleClass("opened"))}));var d=_.debounce((function(){window.innerWidth>=783?a(".wphb-minification-row-details").css("display","flex"):a(".wphb-minification-row-details").css("display","none")}),250);return window.addEventListener("resize",d),this},updateProgressBar:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];e>100&&(e=100),a(".sui-progress-block .sui-progress-text span").text(e+"%"),a(".sui-progress-block .sui-progress-bar span").width(e+"%"),e>=90&&a(".sui-progress-state .sui-progress-state-text").text("Finalizing..."),t&&a(".sui-progress-state .sui-progress-state-text").text("Cancelling...")},switchView:function(e){i.a.minification.toggleView(e).then((function(){window.location.href=r("minification")}))},goToSettings:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];window.SUI.closeModal(),e||window.SUI.openModal("wphb-minification-tour","wpbody-content",void 0,!1),i.a.minification.toggleCDN(a("input#enable_cdn").is(":checked")).then((function(){e&&(window.location.href=r("minification"))}))},skipTour:function(){i.a.minification.skipTour().then((function(){window.location.reload()}))}},WPHB_Admin.minification.Row=o,WPHB_Admin.minification.RowsCollection=c}]);
9
  //# sourceMappingURL=wphb-app.min.js.map
admin/assets/js/wphb-app.min.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./_src/js/utils/fetcher.js","webpack:///./node_modules/lodash/_baseGetTag.js","webpack:///./node_modules/lodash/_root.js","webpack:///./node_modules/lodash/isObject.js","webpack:///./node_modules/lodash/isArrayLike.js","webpack:///./node_modules/lodash/isObjectLike.js","webpack:///./node_modules/lodash/_assignValue.js","webpack:///./node_modules/lodash/_baseAssignValue.js","webpack:///./node_modules/lodash/_defineProperty.js","webpack:///./node_modules/lodash/isFunction.js","webpack:///./node_modules/lodash/_Symbol.js","webpack:///./node_modules/lodash/_freeGlobal.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/lodash/eq.js","webpack:///./node_modules/lodash/identity.js","webpack:///./node_modules/lodash/isLength.js","webpack:///./node_modules/lodash/_isIndex.js","webpack:///./node_modules/lodash/_isPrototype.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/lodash/assign.js","webpack:///./node_modules/lodash/_getNative.js","webpack:///./node_modules/lodash/_baseIsNative.js","webpack:///./node_modules/lodash/_getRawTag.js","webpack:///./node_modules/lodash/_objectToString.js","webpack:///./node_modules/lodash/_isMasked.js","webpack:///./node_modules/lodash/_coreJsData.js","webpack:///./node_modules/lodash/_toSource.js","webpack:///./node_modules/lodash/_getValue.js","webpack:///./node_modules/lodash/_copyObject.js","webpack:///./node_modules/lodash/_createAssigner.js","webpack:///./node_modules/lodash/_baseRest.js","webpack:///./node_modules/lodash/_overRest.js","webpack:///./node_modules/lodash/_apply.js","webpack:///./node_modules/lodash/_setToString.js","webpack:///./node_modules/lodash/_baseSetToString.js","webpack:///./node_modules/lodash/constant.js","webpack:///./node_modules/lodash/_shortOut.js","webpack:///./node_modules/lodash/_isIterateeCall.js","webpack:///./node_modules/lodash/keys.js","webpack:///./node_modules/lodash/_arrayLikeKeys.js","webpack:///./node_modules/lodash/_baseTimes.js","webpack:///./node_modules/lodash/isArguments.js","webpack:///./node_modules/lodash/_baseIsArguments.js","webpack:///./node_modules/lodash/isArray.js","webpack:///./node_modules/lodash/isBuffer.js","webpack:///./node_modules/lodash/stubFalse.js","webpack:///./node_modules/lodash/isTypedArray.js","webpack:///./node_modules/lodash/_baseIsTypedArray.js","webpack:///./node_modules/lodash/_baseUnary.js","webpack:///./node_modules/lodash/_nodeUtil.js","webpack:///./node_modules/lodash/_baseKeys.js","webpack:///./node_modules/lodash/_nativeKeys.js","webpack:///./node_modules/lodash/_overArg.js","webpack:///./node_modules/es6-promise/dist/es6-promise.js","webpack:///./node_modules/process/browser.js","webpack:///./_src/js/app.js","webpack:///./_src/js/modules/admin-main.js","webpack:///./_src/js/modules/admin-performance.js","webpack:///./_src/js/modules/admin-caching.js","webpack:///./_src/js/modules/admin-dashboard.js","webpack:///./_src/js/modules/admin-dashboard-cloudflare.js","webpack:///./_src/js/modules/admin-uptime.js","webpack:///./_src/js/modules/admin-cloudflare.js","webpack:///./_src/js/modules/admin-advanced.js","webpack:///./_src/js/modules/admin-settings.js","webpack:///./_src/js/utils/helpers.js","webpack:///./_src/js/minification/Row.js","webpack:///./_src/js/minification/RowsCollection.js","webpack:///./_src/js/modules/admin-minification.js","webpack:///./_src/js/minification/Scanner.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","HBFetcher","fetchUrl","ajaxurl","fetchNonce","wphb","nonces","HBFetchNonce","request","action","data","method","nonce","args","url","Promise","require","resolve","reject","jQuery","ajax","done","fail","then","response","JSON","parse","success","error","Error","message","checkStatus","methods","notice","dismiss","id","actionPrefix","dismissCloudflareDash","caching","activate","saveSettings","clearCache","setExpiration","expiry_times","setServer","reloadSnippets","type","updateHtaccess","recheckExpiry","clearCacheForPost","postId","cancelPreload","cloudflare","connect","step","formData","cfData","purgeCache","recheckZones","dashboard","skipSetup","minification","toggleCDN","toggleLog","toggleView","startCheck","checkStep","finishCheck","cancelScan","saveCriticalCss","form","updateAssetPath","resetAsset","saveNetworkSettings","settings","skipTour","updateExcludeList","performance","runTest","savePerformanceTestSettings","advanced","deleteSelectedData","scheduleCleanup","actionPrefixPro","logger","clear","form_data","resetSettings","common","addRecipient","setting","email","saveReportsSettings","uptime","resendConfirmationEmail","assign","this","getRawTag","objectToString","nullTag","undefinedTag","symToStringTag","undefined","freeGlobal","freeSelf","self","root","Function","isFunction","isLength","length","baseAssignValue","eq","objValue","getNative","func","e","baseGetTag","isObject","asyncTag","funcTag","genTag","proxyTag","tag","global","g","window","other","MAX_SAFE_INTEGER","reIsUint","test","objectProto","Ctor","constructor","webpackPolyfill","deprecate","paths","children","assignValue","copyObject","createAssigner","isArrayLike","isPrototype","keys","source","baseIsNative","getValue","isMasked","toSource","reIsHostCtor","funcProto","funcToString","toString","reIsNative","RegExp","replace","nativeObjectToString","isOwn","unmasked","result","uid","coreJsData","maskSrcKey","exec","IE_PROTO","props","customizer","isNew","index","newValue","baseRest","isIterateeCall","assigner","sources","guard","identity","overRest","setToString","start","apply","nativeMax","Math","max","transform","arguments","array","Array","otherArgs","thisArg","baseSetToString","shortOut","constant","string","HOT_COUNT","HOT_SPAN","nativeNow","Date","now","count","lastCalled","stamp","remaining","isIndex","arrayLikeKeys","baseKeys","baseTimes","isArguments","isArray","isBuffer","isTypedArray","inherited","isArr","isArg","isBuff","isType","skipIndexes","String","push","iteratee","baseIsArguments","isObjectLike","propertyIsEnumerable","argsTag","stubFalse","freeExports","nodeType","freeModule","Buffer","baseIsTypedArray","baseUnary","nodeUtil","nodeIsTypedArray","typedArrayTags","freeProcess","process","types","binding","nativeKeys","overArg","arg","factory","x","len","vertxNext","customSchedulerFn","asap","callback","queue","flush","scheduleFlush","browserWindow","browserGlobal","BrowserMutationObserver","MutationObserver","WebKitMutationObserver","isNode","isWorker","Uint8ClampedArray","importScripts","MessageChannel","useSetTimeout","globalSetTimeout","setTimeout","channel","iterations","observer","node","onFulfillment","onRejection","parent","child","noop","PROMISE_ID","makePromise","_state","invokeCallback","_result","subscribe","resolve$1","promise","nextTick","document","createTextNode","observe","characterData","port1","onmessage","port2","postMessage","vertx","runOnLoop","runOnContext","attemptVertx","random","substring","PENDING","FULFILLED","REJECTED","handleMaybeThenable","maybeThenable","then$$1","thenable","fulfill","reason","handleOwnThenable","sealed","fulfillmentHandler","rejectionHandler","tryThen","_label","handleForeignThenable","TypeError","publishRejection","_onerror","publish","_subscribers","subscribers","settled","detail","hasCallback","succeeded","Enumerator","Constructor","input","_instanceConstructor","_remaining","_enumerate","_eachEntry","entry","resolve$$1","_then","didError","_settledAt","Promise$1","_willSettleAt","state","enumerator","resolver","needsResolver","initializePromise","needsNew","catch","finally","all","entries","race","_","_setScheduler","scheduleFn","_setAsap","asapFn","_asap","polyfill","local","P","promiseToString","cast","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","clearTimeout","currentQueue","draining","queueIndex","cleanUpNextTick","concat","drainQueue","timeout","run","marker","runClearTimeout","Item","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","cwd","chdir","dir","umask","ready","WPHB_Admin","init","$","querySelector","addEventListener","noticeId","parentElement","getAttribute","Fetcher","preventDefault","target","dataset","notices","show","location","search","includes","reportingEmail","emailField","closest","val","removeClass","find","remove","userRow","append","html","attr","class","strings","resendEmail","stringify","appendTo","slideUp","SUI","closeModal","hide","successRecipientAdded","addClass","body","serialize","enabled","text","recipientNotice","confirmRecipient","errorSettingsUpdate","row","slideDown","toggleClass","change","freq","initModule","getModule","top","successUpdate","scrollTo","iteration","progress","timer","pressedKeys","key_timer","wphbPerformanceStrings","wphbSetInterval","onkeyup","clearInterval","event","keyCode","getElementById","style","display","openModal","performanceTest","finishedTestURLsLink","hash","hasClass","trigger","animate","scrollTop","offset","google","wphbHistoricFieldData","charts","load","packages","setOnLoadCallback","drawChart","fcp","resize","fid","otherClass","parentNode","classList","add","divs","querySelectorAll","URL","searchParams","set","setInterval","redirect","updateProgressBar","finished","progressStatus","scanRunning","scanAnalyzing","scanWaiting","scanComplete","chartID","visualization","arrayToDataTable","role","fast","generateTooltip","fast_desc","average","average_desc","slow","slow_desc","BarChart","draw","tooltip","isHtml","colors","chartArea","width","hAxis","baselineColor","gridlines","color","textPosition","isStacked","height","legend","selectedServer","serverSelector","serverInstructions","snippets","selectedExpiryType","pageCachingForm","rssForm","gravatarDiv","cachingHeader","expiryForm","settingsForm","wphbCachingStrings","setCloudflare","intervalToggle","toggle","reload","preloadToggle","each","showServerInstructions","apache","nginx","hideCurrentInstructions","getExpiryTimes","spinner","button","successRecheckStatus","reloadExpiryTags","expiry_values","errorRecheckStatus","htaccessUpdated","htaccessUpdatedFailed","toLowerCase","rss_expiry_time","abs","detection","successPageCachePurge","successGravatarPurge","errorCachePurge","k","server","code","expiry_javascript","expiry_css","expiry_media","expiry_images","wphbDashboardStrings","click","href","cloudFlareDashNotice","runPerformanceTest","DashboardCloudFlare","currentStep","apiKey","$stepsContainer","$infoBox","$spinner","$deactivateButton","$body","renderStep","updateZones","$button","showSpinner","successCloudflarePurge","removeAttr","hideSpinner","template","content","fadeIn","submitStep","bindEvents","$howToInstructions","suiSelect","emptyInfoBox","hideInfoBox","zones","showInfoBox","notice_class","css","$form","newData","nextStep","memoize","compiled","options","evaluate","interpolate","escape","variable","templateSettings","$dataRangeSelector","chartData","downtimeChartData","dataRange","dateFormat","wphbUptimeStrings","$disableUptime","getUrlParameter","is","disableUptimeURL","drawResponseTimeChart","drawDowntimeChart","currentTarget","DataTable","addColumn","chartArray","round","createUptimeTooltip","addRows","left","curveType","position","vAxis","format","minorGridlines","viewWindow","min","series","0","axis","axes","y","Resp","label","chart","AreaChart","container","Timeline","dataTable","colorMap","Down","Unknown","Up","getNumberOfRows","timeline","showBarLabels","showRowLabels","barLabelStyle","fontSize","avoidOverlappingGridLines","origColors","events","bars","getElementsByTagName","forEach","bar","parseFloat","setAttribute","date","responseTime","formatTooltipDate","day","getDate","monthIndex","getMonth","hh","getHours","h","minutes","getMinutes","dd","sParam","sParameterName","sURLVariables","decodeURIComponent","split","cfSetExpiryButton","cfSelector","connected","setExpiry","selector","systemInfoDropdown","showModal","system","urlStrings","fragmentsToggle","items","dialog","db_delete","db_entries","db_backup","modal","confirmDelete","footer","prop","leftString","deleteAll","itemRow","wrap","contrastDiv","confirmReset","urls","getLink","screen","links","Row","_element","_filter","_filter_sec","$el","filter","filterSecondary","selected","visible","$include","$combine","$minify","$posFooter","$defer","$inline","$disableIcon","$selectCheckbox","getElement","getId","getFilter","matchFilter","matchSecondaryFilter","isVisible","isSelected","select","unSelect","what","RowsCollection","currentFilter","currentSecondaryFilter","getItems","getItem","getItemById","getItemsByDataType","getVisibleItems","getSelectedItems","addFilter","applyFilters","MinificationScanner","totalSteps","parseInt","cancelling","obj","scan","remainingSteps","cancel","getProgress","onFinishStep","onFinish","assets_msg","moduleNoticeId","$checkFilesButton","$checkFilesResultsContainer","checkURLSList","checkedURLS","scanner","Scanner","currentScanStep","rowStatus","changed","bulkUpdateButton","switchButton","checked","str","confirm","checkboxes","cdnValue","includeFile","excludeFile","queuedTooltip","textField","onchange","excludeCDN","SUIselect2","scripts","styles","rowsCollection","_row","filterInput","keydown","keyup","element","visibleItems","$this","innerWidth","minificationResizeRows","debounce","switchView","goToSettings","hideTour"],"mappings":"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","file":"wphb-app.min.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 55);\n","/* global ajaxurl */\n/* global wphb */\n\n/**\n * External dependencies\n */\nimport assign from 'lodash/assign';\n\n/**\n * Fetcher.\n *\n * @var {string} wphb.nonces.HBFetchNonce\n * @constructor\n */\nfunction Fetcher() {\n\tconst fetchUrl = ajaxurl;\n\tconst fetchNonce = wphb.nonces.HBFetchNonce;\n\tconst actionPrefix = 'wphb_';\n\tconst actionPrefixPro = 'wphb_pro_';\n\n\t/**\n\t * Request ajax with a promise.\n\t *\n\t * @param {string} action\n\t * @param {Object} data\n\t * @param {string} method\n\t * @return {Promise<any>} Request results.\n\t */\n\tfunction request( action, data = {}, method = 'GET' ) {\n\t\tdata.nonce = fetchNonce;\n\t\tdata.action = action;\n\t\tconst args = { data, method };\n\t\targs.url = fetchUrl;\n\t\tconst Promise = require( 'es6-promise' ).Promise;\n\t\treturn new Promise( ( resolve, reject ) => {\n\t\t\tjQuery.ajax( args ).done( resolve ).fail( reject );\n\t\t} )\n\t\t\t.then( ( response ) => checkStatus( response ) );\n\t}\n\n\tconst methods = {\n\t\t/**\n\t\t * Notices actions.\n\t\t */\n\t\tnotice: {\n\t\t\t/**\n\t\t\t * Dismiss notice\n\t\t\t * @param {string} id\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tdismiss: ( id ) => {\n\t\t\t\tconst action = actionPrefix + 'notice_dismiss';\n\t\t\t\treturn request( action, { id }, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Dismiss CloudFlare dash notice\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tdismissCloudflareDash: () => {\n\t\t\t\tconst action = actionPrefix + 'cf_notice_dismiss';\n\t\t\t\treturn request( action, {}, 'POST' );\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Caching module actions.\n\t\t */\n\t\tcaching: {\n\t\t\t/**\n\t\t\t * Activate browser caching.\n\t\t\t * @since 1.9.0\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tactivate: () => {\n\t\t\t\tconst action = actionPrefix + 'caching_activate';\n\t\t\t\treturn request( action, {}, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Unified save settings method.\n\t\t\t * @since 1.9.0\n\t\t\t * @param {string} module\n\t\t\t * @param {string} data Serialized form data.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tsaveSettings: ( module, data ) => {\n\t\t\t\tconst action = actionPrefix + module + '_save_settings';\n\t\t\t\treturn request( action, { data }, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Clear cache for selected module.\n\t\t\t * @since 1.9.0\n\t\t\t * @param {string} module\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tclearCache: ( module ) => {\n\t\t\t\tconst action = actionPrefix + 'clear_module_cache';\n\t\t\t\treturn request( action, { module }, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Set expiration for browser caching.\n\t\t\t * @param {Object} expiry_times Type expiry times.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tsetExpiration: ( expiry_times ) => {\n\t\t\t\tconst action = actionPrefix + 'caching_set_expiration';\n\t\t\t\treturn request( action, { expiry_times }, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Set server type.\n\t\t\t * @param {string} value Server type.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tsetServer: ( value ) => {\n\t\t\t\tconst action = actionPrefix + 'caching_set_server_type';\n\t\t\t\treturn request( action, { value }, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Reload snippet.\n\t\t\t * @param {string} type Server type.\n\t\t\t * @param {Object} expiry_times Type expiry times.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\treloadSnippets: ( type, expiry_times ) => {\n\t\t\t\tconst action = actionPrefix + 'caching_reload_snippet';\n\t\t\t\treturn request( action, { type, expiry_times }, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Update htaccess file.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tupdateHtaccess: () => {\n\t\t\t\tconst action = actionPrefix + 'caching_update_htaccess';\n\t\t\t\treturn request( action, {}, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Re-check expiry in meta box header button action.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\trecheckExpiry: () => {\n\t\t\t\tconst action = actionPrefix + 'caching_recheck_expiry';\n\t\t\t\treturn request( action, {}, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Clear cache for post.\n\t\t\t * @param {number} postId\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tclearCacheForPost: ( postId ) => {\n\t\t\t\tconst action = actionPrefix + 'gutenberg_clear_post_cache';\n\t\t\t\treturn request( action, { postId }, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Cancel cache preload.\n\t\t\t *\n\t\t\t * @since 2.1.0\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tcancelPreload() {\n\t\t\t\tconst action = actionPrefix + 'preload_cancel';\n\t\t\t\treturn request( action, {}, 'POST' );\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Cloudflare module actions.\n\t\t */\n\t\tcloudflare: {\n\t\t\t/**\n\t\t\t * Connect to Cloudflare.\n\t\t\t * @param {string} step\n\t\t\t * @param {string} formData\n\t\t\t * @param {Array} cfData\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tconnect: ( step, formData, cfData ) => {\n\t\t\t\tconst action = actionPrefix + 'cloudflare_connect';\n\t\t\t\treturn request( action, { step, formData, cfData }, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Set expiry for Cloudflare cache.\n\t\t\t * @param {Object} value Expiry value.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tsetExpiration: ( value ) => {\n\t\t\t\tconst action = actionPrefix + 'cloudflare_set_expiry';\n\t\t\t\treturn request( action, { value }, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Purge Cloudflare cache.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tpurgeCache: () => {\n\t\t\t\tconst action = actionPrefix + 'cloudflare_purge_cache';\n\t\t\t\treturn request( action, {}, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Recheck Cloudflare zones.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\trecheckZones: () => {\n\t\t\t\tconst action = actionPrefix + 'cloudflare_recheck_zones';\n\t\t\t\treturn request( action, {}, 'POST' );\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Dashboard module actions.\n\t\t */\n\t\tdashboard: {\n\t\t\t/**\n\t\t\t * Skip quick setup.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tskipSetup: () => {\n\t\t\t\tconst action = actionPrefix + 'dash_skip_setup';\n\t\t\t\treturn request( action, {}, 'POST' );\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Asset Optimization module actions.\n\t\t */\n\t\tminification: {\n\t\t\t/**\n\t\t\t * Toggle CDN settings.\n\t\t\t * @param {string} value CDN checkbox value.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\ttoggleCDN: ( value ) => {\n\t\t\t\tconst action = actionPrefix + 'minification_toggle_cdn';\n\t\t\t\treturn request( action, { value }, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Toggle logs settings.\n\t\t\t * @param {string} value\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\ttoggleLog: ( value ) => {\n\t\t\t\tconst action = actionPrefix + 'minification_toggle_log';\n\t\t\t\treturn request( action, { value }, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Toggle minification advanced mode.\n\t\t\t * @param {string} value\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\ttoggleView: ( value ) => {\n\t\t\t\tconst action = actionPrefix + 'minification_toggle_view';\n\t\t\t\treturn request( action, { value }, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Start minification check.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tstartCheck: () => {\n\t\t\t\tconst action = actionPrefix + 'minification_start_check';\n\t\t\t\treturn request( action, {}, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Do a step in minification process.\n\t\t\t * @param {number} step\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tcheckStep: ( step ) => {\n\t\t\t\tconst action = actionPrefix + 'minification_check_step';\n\t\t\t\treturn request( action, { step }, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Finish minification process.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tfinishCheck: () => {\n\t\t\t\tconst action = actionPrefix + 'minification_finish_scan';\n\t\t\t\treturn request( action, {}, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Cancel minification scan.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tcancelScan: function cancelScan() {\n\t\t\t\tconst action = actionPrefix + 'minification_cancel_scan';\n\t\t\t\treturn request( action, {}, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Process critical css form.\n\t\t\t * @since 1.8\n\t\t\t * @param {string} form\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tsaveCriticalCss: ( form ) => {\n\t\t\t\tconst action = actionPrefix + 'minification_save_critical_css';\n\t\t\t\treturn request( action, { form }, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Update custom asset path\n\t\t\t * @since 1.9\n\t\t\t * @param {string} value\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tupdateAssetPath: ( value ) => {\n\t\t\t\tconst action = actionPrefix + 'minification_update_asset_path';\n\t\t\t\treturn request( action, { value }, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Reset individual file.\n\t\t\t * @since 1.9.2\n\t\t\t * @param {string} value\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tresetAsset: ( value ) => {\n\t\t\t\tconst action = actionPrefix + 'minification_reset_asset';\n\t\t\t\treturn request( action, { value }, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Save settings in network admin.\n\t\t\t * @since 2.0.0\n\t\t\t * @param {string} settings\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tsaveNetworkSettings: ( settings ) => {\n\t\t\t\tconst action = actionPrefix + 'minification_update_network_settings';\n\t\t\t\treturn request( action, { settings }, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Skip tour.\n\t\t\t *\n\t\t\t * @since 2.1.0\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tskipTour: () => {\n\t\t\t\tconst action = actionPrefix + 'minification_skip_tour';\n\t\t\t\treturn request( action, {}, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Update the CDN exclude list.\n\t\t\t *\n\t\t\t * @since 2.4.0\n\t\t\t * @param {Object} data\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tupdateExcludeList: ( data ) => {\n\t\t\t\tconst action = actionPrefix + 'minification_save_exclude_list';\n\t\t\t\treturn request( action, { data }, 'POST' );\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Performance module actions.\n\t\t */\n\t\tperformance: {\n\t\t\t/**\n\t\t\t * Run performance test.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\trunTest: () => {\n\t\t\t\tconst action = actionPrefix + 'performance_run_test';\n\t\t\t\treturn request( action, {}, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Save performance test settings.\n\t\t\t * @param {string} data From data.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tsavePerformanceTestSettings: ( data ) => {\n\t\t\t\tconst action = actionPrefix + 'performance_save_settings';\n\t\t\t\treturn request( action, { data }, 'POST' );\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Advanced tools module actions.\n\t\t */\n\t\tadvanced: {\n\t\t\t/**\n\t\t\t * Save settings from advanced tools general and db cleanup sections.\n\t\t\t * @param {string} data Type.\n\t\t\t * @param {string} form Serialized form.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tsaveSettings: ( data, form ) => {\n\t\t\t\tconst action = actionPrefix + 'advanced_save_settings';\n\t\t\t\treturn request( action, { data, form }, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Delete selected data from database.\n\t\t\t * @param {string} data\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tdeleteSelectedData: ( data ) => {\n\t\t\t\tconst action = actionPrefix + 'advanced_db_delete_data';\n\t\t\t\treturn request( action, { data }, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Schedule cleanup cron.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tscheduleCleanup: () => {\n\t\t\t\tconst action = actionPrefixPro + 'advanced_db_schedule';\n\t\t\t\treturn request( action, {}, 'POST' );\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Logger module actions.\n\t\t *\n\t\t * @since 1.9.2\n\t\t */\n\t\tlogger: {\n\t\t\t/**\n\t\t\t * Clear logs.\n\t\t\t * @param {string} module Module slug.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tclear: ( module ) => {\n\t\t\t\tconst action = actionPrefix + 'logger_clear';\n\t\t\t\treturn request( action, { module }, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Settings actions.\n\t\t */\n\t\tsettings: {\n\t\t\t/**\n\t\t\t * Save settings from HB admin settings.\n\t\t\t *\n\t\t\t * @param {string} form_data\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tsaveSettings: ( form_data ) => {\n\t\t\t\tconst action = actionPrefix + 'admin_settings_save_settings';\n\t\t\t\treturn request( action, { form_data }, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Reset plugin settings.\n\t\t\t *\n\t\t\t * @since 2.0.0\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tresetSettings: () => {\n\t\t\t\tconst action = actionPrefix + 'reset_settings';\n\t\t\t\treturn request( action, {}, 'POST' );\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Common actions that are used by several modules.\n\t\t *\n\t\t * @since 1.9.3\n\t\t */\n\t\tcommon: {\n\t\t\t/**\n\t\t\t * Add recipient for Performance and Uptime reports.\n\t\t\t *\n\t\t\t * @param {string} module Module name.\n\t\t\t * @param {string} setting Setting name.\n\t\t\t * @param {string} email Email.\n\t\t\t * @param {string} name User.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\taddRecipient: ( module, setting, email, name ) => {\n\t\t\t\tconst action = actionPrefixPro + 'add_recipient';\n\t\t\t\treturn request( action, { module, setting, email, name }, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Save report settings for Performance and Uptime modules.\n\t\t\t *\n\t\t\t * @param {string} module Module name.\n\t\t\t * @param {Array} data From data.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tsaveReportsSettings: ( module, data ) => {\n\t\t\t\tconst action = actionPrefixPro + 'save_report_settings';\n\t\t\t\treturn request( action, { module, data }, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Uptime actions.\n\t\t *\n\t\t * @since 2.3.0\n\t\t */\n\t\tuptime: {\n\t\t\t/**\n\t\t\t * Resend email confirmation.\n\t\t\t *\n\t\t\t * @since 2.3.0\n\t\t\t *\n\t\t\t * @param {string} name JSON encoded recipient name string.\n\t\t\t * @param {string} email JSON encoded recipient email string.\n\t\t\t *\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tresendConfirmationEmail: ( name, email ) => {\n\t\t\t\tconst action = actionPrefixPro + 'resend_confirmation';\n\t\t\t\treturn request( action, { name, email }, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t};\n\n\tassign( this, methods );\n}\n\nconst HBFetcher = new Fetcher();\nexport default HBFetcher;\n\n/**\n * Check status.\n * @param {Object|string} response\n * @return {*} Response\n */\nfunction checkStatus( response ) {\n\tif ( typeof response !== 'object' ) {\n\t\tresponse = JSON.parse( response );\n\t}\n\tif ( response.success ) {\n\t\treturn response.data;\n\t}\n\n\tconst data = response.data || {};\n\tconst error = new Error( data.message || 'Error trying to fetch response from server' );\n\terror.response = response;\n\tthrow error;\n}\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","var assignValue = require('./_assignValue'),\n copyObject = require('./_copyObject'),\n createAssigner = require('./_createAssigner'),\n isArrayLike = require('./isArrayLike'),\n isPrototype = require('./_isPrototype'),\n keys = require('./keys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\nvar assign = createAssigner(function(object, source) {\n if (isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n});\n\nmodule.exports = assign;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n","var baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version v4.2.8+1e68dce6\n */\n\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.ES6Promise = factory());\n}(this, (function () { 'use strict';\n\nfunction objectOrFunction(x) {\n var type = typeof x;\n return x !== null && (type === 'object' || type === 'function');\n}\n\nfunction isFunction(x) {\n return typeof x === 'function';\n}\n\n\n\nvar _isArray = void 0;\nif (Array.isArray) {\n _isArray = Array.isArray;\n} else {\n _isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n}\n\nvar isArray = _isArray;\n\nvar len = 0;\nvar vertxNext = void 0;\nvar customSchedulerFn = void 0;\n\nvar asap = function asap(callback, arg) {\n queue[len] = callback;\n queue[len + 1] = arg;\n len += 2;\n if (len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (customSchedulerFn) {\n customSchedulerFn(flush);\n } else {\n scheduleFlush();\n }\n }\n};\n\nfunction setScheduler(scheduleFn) {\n customSchedulerFn = scheduleFn;\n}\n\nfunction setAsap(asapFn) {\n asap = asapFn;\n}\n\nvar browserWindow = typeof window !== 'undefined' ? window : undefined;\nvar browserGlobal = browserWindow || {};\nvar BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\nvar isNode = typeof self === 'undefined' && typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\n\n// test for web worker but not in IE10\nvar isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';\n\n// node\nfunction useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function () {\n return process.nextTick(flush);\n };\n}\n\n// vertx\nfunction useVertxTimer() {\n if (typeof vertxNext !== 'undefined') {\n return function () {\n vertxNext(flush);\n };\n }\n\n return useSetTimeout();\n}\n\nfunction useMutationObserver() {\n var iterations = 0;\n var observer = new BrowserMutationObserver(flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function () {\n node.data = iterations = ++iterations % 2;\n };\n}\n\n// web worker\nfunction useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = flush;\n return function () {\n return channel.port2.postMessage(0);\n };\n}\n\nfunction useSetTimeout() {\n // Store setTimeout reference so es6-promise will be unaffected by\n // other code modifying setTimeout (like sinon.useFakeTimers())\n var globalSetTimeout = setTimeout;\n return function () {\n return globalSetTimeout(flush, 1);\n };\n}\n\nvar queue = new Array(1000);\nfunction flush() {\n for (var i = 0; i < len; i += 2) {\n var callback = queue[i];\n var arg = queue[i + 1];\n\n callback(arg);\n\n queue[i] = undefined;\n queue[i + 1] = undefined;\n }\n\n len = 0;\n}\n\nfunction attemptVertx() {\n try {\n var vertx = Function('return this')().require('vertx');\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n } catch (e) {\n return useSetTimeout();\n }\n}\n\nvar scheduleFlush = void 0;\n// Decide what async method to use to triggering processing of queued callbacks:\nif (isNode) {\n scheduleFlush = useNextTick();\n} else if (BrowserMutationObserver) {\n scheduleFlush = useMutationObserver();\n} else if (isWorker) {\n scheduleFlush = useMessageChannel();\n} else if (browserWindow === undefined && typeof require === 'function') {\n scheduleFlush = attemptVertx();\n} else {\n scheduleFlush = useSetTimeout();\n}\n\nfunction then(onFulfillment, onRejection) {\n var parent = this;\n\n var child = new this.constructor(noop);\n\n if (child[PROMISE_ID] === undefined) {\n makePromise(child);\n }\n\n var _state = parent._state;\n\n\n if (_state) {\n var callback = arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\n } else {\n subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n}\n\n/**\n `Promise.resolve` returns a promise that will become resolved with the\n passed `value`. It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n resolve(1);\n });\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.resolve(1);\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n @method resolve\n @static\n @param {Any} value value that the returned promise will be resolved with\n Useful for tooling.\n @return {Promise} a promise that will become fulfilled with the given\n `value`\n*/\nfunction resolve$1(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(noop);\n resolve(promise, object);\n return promise;\n}\n\nvar PROMISE_ID = Math.random().toString(36).substring(2);\n\nfunction noop() {}\n\nvar PENDING = void 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\n\nfunction selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n}\n\nfunction cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n}\n\nfunction tryThen(then$$1, value, fulfillmentHandler, rejectionHandler) {\n try {\n then$$1.call(value, fulfillmentHandler, rejectionHandler);\n } catch (e) {\n return e;\n }\n}\n\nfunction handleForeignThenable(promise, thenable, then$$1) {\n asap(function (promise) {\n var sealed = false;\n var error = tryThen(then$$1, thenable, function (value) {\n if (sealed) {\n return;\n }\n sealed = true;\n if (thenable !== value) {\n resolve(promise, value);\n } else {\n fulfill(promise, value);\n }\n }, function (reason) {\n if (sealed) {\n return;\n }\n sealed = true;\n\n reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n reject(promise, error);\n }\n }, promise);\n}\n\nfunction handleOwnThenable(promise, thenable) {\n if (thenable._state === FULFILLED) {\n fulfill(promise, thenable._result);\n } else if (thenable._state === REJECTED) {\n reject(promise, thenable._result);\n } else {\n subscribe(thenable, undefined, function (value) {\n return resolve(promise, value);\n }, function (reason) {\n return reject(promise, reason);\n });\n }\n}\n\nfunction handleMaybeThenable(promise, maybeThenable, then$$1) {\n if (maybeThenable.constructor === promise.constructor && then$$1 === then && maybeThenable.constructor.resolve === resolve$1) {\n handleOwnThenable(promise, maybeThenable);\n } else {\n if (then$$1 === undefined) {\n fulfill(promise, maybeThenable);\n } else if (isFunction(then$$1)) {\n handleForeignThenable(promise, maybeThenable, then$$1);\n } else {\n fulfill(promise, maybeThenable);\n }\n }\n}\n\nfunction resolve(promise, value) {\n if (promise === value) {\n reject(promise, selfFulfillment());\n } else if (objectOrFunction(value)) {\n var then$$1 = void 0;\n try {\n then$$1 = value.then;\n } catch (error) {\n reject(promise, error);\n return;\n }\n handleMaybeThenable(promise, value, then$$1);\n } else {\n fulfill(promise, value);\n }\n}\n\nfunction publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n publish(promise);\n}\n\nfunction fulfill(promise, value) {\n if (promise._state !== PENDING) {\n return;\n }\n\n promise._result = value;\n promise._state = FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n asap(publish, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state !== PENDING) {\n return;\n }\n promise._state = REJECTED;\n promise._result = reason;\n\n asap(publishRejection, promise);\n}\n\nfunction subscribe(parent, child, onFulfillment, onRejection) {\n var _subscribers = parent._subscribers;\n var length = _subscribers.length;\n\n\n parent._onerror = null;\n\n _subscribers[length] = child;\n _subscribers[length + FULFILLED] = onFulfillment;\n _subscribers[length + REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n asap(publish, parent);\n }\n}\n\nfunction publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) {\n return;\n }\n\n var child = void 0,\n callback = void 0,\n detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n}\n\nfunction invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback),\n value = void 0,\n error = void 0,\n succeeded = true;\n\n if (hasCallback) {\n try {\n value = callback(detail);\n } catch (e) {\n succeeded = false;\n error = e;\n }\n\n if (promise === value) {\n reject(promise, cannotReturnOwn());\n return;\n }\n } else {\n value = detail;\n }\n\n if (promise._state !== PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n resolve(promise, value);\n } else if (succeeded === false) {\n reject(promise, error);\n } else if (settled === FULFILLED) {\n fulfill(promise, value);\n } else if (settled === REJECTED) {\n reject(promise, value);\n }\n}\n\nfunction initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value) {\n resolve(promise, value);\n }, function rejectPromise(reason) {\n reject(promise, reason);\n });\n } catch (e) {\n reject(promise, e);\n }\n}\n\nvar id = 0;\nfunction nextId() {\n return id++;\n}\n\nfunction makePromise(promise) {\n promise[PROMISE_ID] = id++;\n promise._state = undefined;\n promise._result = undefined;\n promise._subscribers = [];\n}\n\nfunction validationError() {\n return new Error('Array Methods must be provided an Array');\n}\n\nvar Enumerator = function () {\n function Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(noop);\n\n if (!this.promise[PROMISE_ID]) {\n makePromise(this.promise);\n }\n\n if (isArray(input)) {\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate(input);\n if (this._remaining === 0) {\n fulfill(this.promise, this._result);\n }\n }\n } else {\n reject(this.promise, validationError());\n }\n }\n\n Enumerator.prototype._enumerate = function _enumerate(input) {\n for (var i = 0; this._state === PENDING && i < input.length; i++) {\n this._eachEntry(input[i], i);\n }\n };\n\n Enumerator.prototype._eachEntry = function _eachEntry(entry, i) {\n var c = this._instanceConstructor;\n var resolve$$1 = c.resolve;\n\n\n if (resolve$$1 === resolve$1) {\n var _then = void 0;\n var error = void 0;\n var didError = false;\n try {\n _then = entry.then;\n } catch (e) {\n didError = true;\n error = e;\n }\n\n if (_then === then && entry._state !== PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof _then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === Promise$1) {\n var promise = new c(noop);\n if (didError) {\n reject(promise, error);\n } else {\n handleMaybeThenable(promise, entry, _then);\n }\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function (resolve$$1) {\n return resolve$$1(entry);\n }), i);\n }\n } else {\n this._willSettleAt(resolve$$1(entry), i);\n }\n };\n\n Enumerator.prototype._settledAt = function _settledAt(state, i, value) {\n var promise = this.promise;\n\n\n if (promise._state === PENDING) {\n this._remaining--;\n\n if (state === REJECTED) {\n reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n fulfill(promise, this._result);\n }\n };\n\n Enumerator.prototype._willSettleAt = function _willSettleAt(promise, i) {\n var enumerator = this;\n\n subscribe(promise, undefined, function (value) {\n return enumerator._settledAt(FULFILLED, i, value);\n }, function (reason) {\n return enumerator._settledAt(REJECTED, i, reason);\n });\n };\n\n return Enumerator;\n}();\n\n/**\n `Promise.all` accepts an array of promises, and returns a new promise which\n is fulfilled with an array of fulfillment values for the passed promises, or\n rejected with the reason of the first passed promise to be rejected. It casts all\n elements of the passed iterable to promises as it runs this algorithm.\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = resolve(2);\n let promise3 = resolve(3);\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // The array here would be [ 1, 2, 3 ];\n });\n ```\n\n If any of the `promises` given to `all` are rejected, the first promise\n that is rejected will be given as an argument to the returned promises's\n rejection handler. For example:\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = reject(new Error(\"2\"));\n let promise3 = reject(new Error(\"3\"));\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // Code here never runs because there are rejected promises!\n }, function(error) {\n // error.message === \"2\"\n });\n ```\n\n @method all\n @static\n @param {Array} entries array of promises\n @param {String} label optional string for labeling the promise.\n Useful for tooling.\n @return {Promise} promise that is fulfilled when all `promises` have been\n fulfilled, or rejected if any of them become rejected.\n @static\n*/\nfunction all(entries) {\n return new Enumerator(this, entries).promise;\n}\n\n/**\n `Promise.race` returns a new promise which is settled in the same way as the\n first passed promise to settle.\n\n Example:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 2');\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // result === 'promise 2' because it was resolved before promise1\n // was resolved.\n });\n ```\n\n `Promise.race` is deterministic in that only the state of the first\n settled promise matters. For example, even if other promises given to the\n `promises` array argument are resolved, but the first settled promise has\n become rejected before the other promises became fulfilled, the returned\n promise will become rejected:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n reject(new Error('promise 2'));\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // Code here never runs\n }, function(reason){\n // reason.message === 'promise 2' because promise 2 became rejected before\n // promise 1 became fulfilled\n });\n ```\n\n An example real-world use case is implementing timeouts:\n\n ```javascript\n Promise.race([ajax('foo.json'), timeout(5000)])\n ```\n\n @method race\n @static\n @param {Array} promises array of promises to observe\n Useful for tooling.\n @return {Promise} a promise which settles in the same way as the first passed\n promise to settle.\n*/\nfunction race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (!isArray(entries)) {\n return new Constructor(function (_, reject) {\n return reject(new TypeError('You must pass an array to race.'));\n });\n } else {\n return new Constructor(function (resolve, reject) {\n var length = entries.length;\n for (var i = 0; i < length; i++) {\n Constructor.resolve(entries[i]).then(resolve, reject);\n }\n });\n }\n}\n\n/**\n `Promise.reject` returns a promise rejected with the passed `reason`.\n It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n reject(new Error('WHOOPS'));\n });\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.reject(new Error('WHOOPS'));\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n @method reject\n @static\n @param {Any} reason value that the returned promise will be rejected with.\n Useful for tooling.\n @return {Promise} a promise rejected with the given `reason`.\n*/\nfunction reject$1(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(noop);\n reject(promise, reason);\n return promise;\n}\n\nfunction needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n}\n\nfunction needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n}\n\n/**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n let promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n let xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {Function} resolver\n Useful for tooling.\n @constructor\n*/\n\nvar Promise$1 = function () {\n function Promise(resolver) {\n this[PROMISE_ID] = nextId();\n this._result = this._state = undefined;\n this._subscribers = [];\n\n if (noop !== resolver) {\n typeof resolver !== 'function' && needsResolver();\n this instanceof Promise ? initializePromise(this, resolver) : needsNew();\n }\n }\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n Chaining\n --------\n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n Assimilation\n ------------\n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n If the assimliated promise rejects, then the downstream promise will also reject.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n Simple Example\n --------------\n Synchronous Example\n ```javascript\n let result;\n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n Advanced Example\n --------------\n Synchronous Example\n ```javascript\n let author, books;\n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n function foundBooks(books) {\n }\n function failure(reason) {\n }\n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n\n\n Promise.prototype.catch = function _catch(onRejection) {\n return this.then(null, onRejection);\n };\n\n /**\n `finally` will be invoked regardless of the promise's fate just as native\n try/catch/finally behaves\n \n Synchronous example:\n \n ```js\n findAuthor() {\n if (Math.random() > 0.5) {\n throw new Error();\n }\n return new Author();\n }\n \n try {\n return findAuthor(); // succeed or fail\n } catch(error) {\n return findOtherAuther();\n } finally {\n // always runs\n // doesn't affect the return value\n }\n ```\n \n Asynchronous example:\n \n ```js\n findAuthor().catch(function(reason){\n return findOtherAuther();\n }).finally(function(){\n // author was either found, or not\n });\n ```\n \n @method finally\n @param {Function} callback\n @return {Promise}\n */\n\n\n Promise.prototype.finally = function _finally(callback) {\n var promise = this;\n var constructor = promise.constructor;\n\n if (isFunction(callback)) {\n return promise.then(function (value) {\n return constructor.resolve(callback()).then(function () {\n return value;\n });\n }, function (reason) {\n return constructor.resolve(callback()).then(function () {\n throw reason;\n });\n });\n }\n\n return promise.then(callback, callback);\n };\n\n return Promise;\n}();\n\nPromise$1.prototype.then = then;\nPromise$1.all = all;\nPromise$1.race = race;\nPromise$1.resolve = resolve$1;\nPromise$1.reject = reject$1;\nPromise$1._setScheduler = setScheduler;\nPromise$1._setAsap = setAsap;\nPromise$1._asap = asap;\n\n/*global self*/\nfunction polyfill() {\n var local = void 0;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P) {\n var promiseToString = null;\n try {\n promiseToString = Object.prototype.toString.call(P.resolve());\n } catch (e) {\n // silently ignored\n }\n\n if (promiseToString === '[object Promise]' && !P.cast) {\n return;\n }\n }\n\n local.Promise = Promise$1;\n}\n\n// Strange compat..\nPromise$1.polyfill = polyfill;\nPromise$1.Promise = Promise$1;\n\nreturn Promise$1;\n\n})));\n\n\n\n//# sourceMappingURL=es6-promise.map\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","/**\n * Various scripts for modules.\n */\nrequire( './modules/admin-main.js' );\nrequire( './modules/admin-performance.js' );\nrequire( './modules/admin-caching.js' );\nrequire( './modules/admin-minification.js' );\nrequire( './modules/admin-dashboard.js' );\nrequire( './modules/admin-dashboard-cloudflare.js' );\nrequire( './modules/admin-uptime.js' );\nrequire( './modules/admin-cloudflare.js' );\nrequire( './modules/admin-advanced.js' );\nrequire( './modules/admin-settings.js' );\n\njQuery( document ).ready( function() {\n\twindow.WPHB_Admin.init();\n} );\n","/* global wphb */\n\n/**\n * Internal dependencies\n */\nimport Fetcher from '../utils/fetcher';\n\n( function( $ ) {\n\t'use strict';\n\n\tconst WPHB_Admin = {\n\t\tmodules: [],\n\t\t// Common functionality to all screens\n\t\tinit() {\n\t\t\t// Dismiss notice via an ajax call.\n\t\t\tconst notice = document.querySelector( '#wphb-dismissable > .sui-notice-dismiss' );\n\n\t\t\tif ( notice ) {\n\t\t\t\tnotice.addEventListener( 'click', () => {\n\t\t\t\t\tconst noticeId = notice.parentElement.getAttribute( 'data-id' );\n\t\t\t\t\tFetcher.notice.dismiss( noticeId );\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Clear log button clicked.\n\t\t\t *\n\t\t\t * @since 1.9.2\n\t\t\t */\n\t\t\t$( '.wphb-logging-buttons' ).on( 'click', '.wphb-logs-clear', function( e ) {\n\t\t\t\te.preventDefault();\n\n\t\t\t\tFetcher.logger.clear( e.target.dataset.module )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\tif ( 'undefined' === typeof response.success ) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( response.success ) {\n\t\t\t\t\t\t\tWPHB_Admin.notices.show(\n\t\t\t\t\t\t\t\t'wphb-ajax-update-notice',\n\t\t\t\t\t\t\t\ttrue,\n\t\t\t\t\t\t\t\t'success',\n\t\t\t\t\t\t\t\tresponse.message,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tWPHB_Admin.notices.show(\n\t\t\t\t\t\t\t\t'wphb-ajax-update-notice',\n\t\t\t\t\t\t\t\ttrue,\n\t\t\t\t\t\t\t\t'error',\n\t\t\t\t\t\t\t\tresponse.message,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Add recipient button clicked.\n\t\t\t *\n\t\t\t * On Performance and Uptime recipient modals.\n\t\t\t *\n\t\t\t * @since 1.9.3 Unified two handle both modules.\n\t\t\t */\n\t\t\t$( '#add-recipient' ).on( 'click', function() {\n\t\t\t\tlet module = '';\n\t\t\t\tlet setting = 'reports';\n\n\t\t\t\t// Get the module name from URL.\n\t\t\t\tif ( window.location.search.includes( 'wphb-performance' ) ) {\n\t\t\t\t\tmodule = 'performance';\n\t\t\t\t} else if ( window.location.search.includes( 'wphb-uptime' ) ) {\n\t\t\t\t\tmodule = 'uptime';\n\t\t\t\t\tif ( window.location.search.includes( 'notifications' ) ) {\n\t\t\t\t\t\tsetting = 'notifications';\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst reportingEmail = $( '#reporting-email' );\n\t\t\t\tconst emailField = reportingEmail.closest( '.sui-form-field' );\n\t\t\t\tconst email = reportingEmail.val();\n\t\t\t\tconst name = $( '#reporting-first-name' ).val();\n\n\t\t\t\t// Remove errors.\n\t\t\t\temailField.removeClass( 'sui-form-field-error' );\n\t\t\t\temailField.find( '.sui-error-message' ).remove();\n\n\t\t\t\tFetcher.common.addRecipient( module, setting, email, name )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\tconst userRow = $( '<div class=\"sui-recipient\"/>' );\n\n\t\t\t\t\t\tif ( 'notifications' === setting ) {\n\t\t\t\t\t\t\tuserRow.append( '<span class=\"sui-recipient-status\"><i class=\"sui-icon-clock\" aria-hidden=\"true\"></i></span>' );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tuserRow.append( '<span class=\"sui-recipient-name\"/>' );\n\t\t\t\t\t\tuserRow.find( '.sui-recipient-name' ).append( response.name );\n\n\t\t\t\t\t\tuserRow.append( $( '<span class=\"sui-recipient-email\"/>' ).html( email ) );\n\n\t\t\t\t\t\tif ( 'notifications' === setting ) {\n\t\t\t\t\t\t\tuserRow.append( $( '<button/>' ).attr( {\n\t\t\t\t\t\t\t\tclass: 'sui-button-icon wphb-resend-recipient sui-tooltip',\n\t\t\t\t\t\t\t\ttype: 'button',\n\t\t\t\t\t\t\t\t'data-tooltip': wphb.strings.resendEmail,\n\t\t\t\t\t\t\t} ).html( '<i class=\"sui-icon-send\" aria-hidden=\"true\"></i>' ) );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tuserRow.append( $( '<button/>' ).attr( {\n\t\t\t\t\t\t\tclass: 'sui-button-icon wphb-remove-recipient',\n\t\t\t\t\t\t\ttype: 'button',\n\t\t\t\t\t\t} ).html( '<i class=\"sui-icon-trash\" aria-hidden=\"true\"></i>' ) );\n\n\t\t\t\t\t\t$( '<input>' ).attr( {\n\t\t\t\t\t\t\ttype: 'hidden',\n\t\t\t\t\t\t\tid: 'report-recipient',\n\t\t\t\t\t\t\tname: 'report-recipients[]',\n\t\t\t\t\t\t\tvalue: JSON.stringify( { email: response.email, name: response.name } ),\n\t\t\t\t\t\t} ).appendTo( userRow );\n\n\t\t\t\t\t\t$( '.sui-recipients' ).append( userRow );\n\t\t\t\t\t\t$( '#reporting-email' ).val( '' );\n\t\t\t\t\t\t$( '#reporting-first-name' ).val( '' );\n\n\t\t\t\t\t\t// Hide no recipients notification.\n\t\t\t\t\t\t$( '.wphb-no-recipients' ).slideUp();\n\t\t\t\t\t\twindow.SUI.closeModal();\n\n\t\t\t\t\t\t// Hide top notice.\n\t\t\t\t\t\t$( '.sui-notice-top.sui-notice-success' ).hide();\n\n\t\t\t\t\t\t// Hide the last notice.\n\t\t\t\t\t\t$( '#wphb-pending-sub-notice' ).hide();\n\t\t\t\t\t\t// Show confirm recipients notice.\n\t\t\t\t\t\t$( '#wphb-confirm-sub-notice' ).show();\n\n\t\t\t\t\t\t// Show notice to save settings.\n\t\t\t\t\t\tWPHB_Admin.notices.show(\n\t\t\t\t\t\t\t'wphb-ajax-update-notice',\n\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t\t'info',\n\t\t\t\t\t\t\tname + wphb.strings.successRecipientAdded,\n\t\t\t\t\t\t);\n\t\t\t\t\t} )\n\t\t\t\t\t.catch( ( error ) => {\n\t\t\t\t\t\temailField.addClass( 'sui-form-field-error' );\n\t\t\t\t\t\temailField.append( '<span class=\"sui-error-message\"/>' );\n\t\t\t\t\t\temailField.find( '.sui-error-message' ).append( error.message );\n\t\t\t\t\t} );\n\t\t\t} );\n\n\t\t\tconst body = $( 'body' );\n\n\t\t\t/**\n\t\t\t * Save report settings clicked (performance reports, uptime\n\t\t\t * reports and uptime notifications).\n\t\t\t */\n\t\t\tbody.on( 'submit', '.wphb-report-settings', function( e ) {\n\t\t\t\te.preventDefault();\n\n\t\t\t\t$( '#wphb-confirm-sub-notice' ).slideUp();\n\n\t\t\t\t$( this ).find( '.button' ).attr( 'disabled', 'disabled' );\n\n\t\t\t\tFetcher.common\n\t\t\t\t\t.saveReportsSettings( this.dataset.module, $( this ).serialize() )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\tif ( 'undefined' !== typeof response && response.success ) {\n\t\t\t\t\t\t\tif ( response.enabled || '' !== response.notice ) {\n\t\t\t\t\t\t\t\t$( '.sui-notice-top' ).hide();\n\t\t\t\t\t\t\t\t$( '.sui-box-body > .sui-notice-default:first-of-type' ).addClass( 'sui-notice-success' ).removeClass( 'sui-notice-default' );\n\t\t\t\t\t\t\t\t$( '.sui-box-body > .sui-notice-success:first-of-type > p' ).text( response.recipientNotice );\n\n\t\t\t\t\t\t\t\tWPHB_Admin.notices.show(\n\t\t\t\t\t\t\t\t\t'wphb-ajax-update-notice',\n\t\t\t\t\t\t\t\t\ttrue,\n\t\t\t\t\t\t\t\t\t'success',\n\t\t\t\t\t\t\t\t\tresponse.enabled ? wphb.strings.confirmRecipient : response.notice,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\twindow.location.search += '&updated=true';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tWPHB_Admin.notices.show(\n\t\t\t\t\t\t\t\t'wphb-ajax-update-notice',\n\t\t\t\t\t\t\t\ttrue,\n\t\t\t\t\t\t\t\t'error',\n\t\t\t\t\t\t\t\twphb.strings.errorSettingsUpdate,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Remove recipient button clicked.\n\t\t\t */\n\t\t\tbody.on( 'click', '.wphb-remove-recipient', function() {\n\t\t\t\t$( this ).closest( '.sui-recipient' ).remove();\n\n\t\t\t\tconst id = $( this ).attr( 'data-id' );\n\t\t\t\tconst row = 'input[id=\"report-recipient\"][value=' + id + ']';\n\n\t\t\t\t$( '.wphb-report-settings' ).find( row ).remove();\n\n\t\t\t\tif ( 0 === $( '.sui-recipient' ).length ) {\n\t\t\t\t\t$( '#wphb-pending-sub-notice' ).slideUp();\n\t\t\t\t\t$( '.wphb-no-recipients' ).slideDown();\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Handle the show/hiding of the report schedule.\n\t\t\t */\n\t\t\t$( '#chk1' ).on( 'click', function() {\n\t\t\t\t$( '.schedule-box' ).toggleClass( 'sui-hidden' );\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Schedule show/hide day of week.\n\t\t\t */\n\t\t\t$( 'select[name=\"report-frequency\"]' ).change( function() {\n\t\t\t\tconst freq = $( this ).val();\n\n\t\t\t\tif ( '1' === freq ) {\n\t\t\t\t\t$( this ).closest( '.schedule-box' ).find( 'div.days-container' ).hide();\n\t\t\t\t} else {\n\t\t\t\t\t$( this ).closest( '.schedule-box' ).find( 'div.days-container' ).show();\n\n\t\t\t\t\tif ( '7' === freq ) {\n\t\t\t\t\t\t$( this ).closest( '.schedule-box' ).find( '[data-type=\"week\"]' ).show();\n\t\t\t\t\t\t$( this ).closest( '.schedule-box' ).find( '[data-type=\"month\"]' ).hide();\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$( this ).closest( '.schedule-box' ).find( '[data-type=\"week\"]' ).hide();\n\t\t\t\t\t\t$( this ).closest( '.schedule-box' ).find( '[data-type=\"month\"]' ).show();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ).change();\n\t\t},\n\n\t\tinitModule( module ) {\n\t\t\tif ( this.hasOwnProperty( module ) ) {\n\t\t\t\tthis.modules[ module ] = this[ module ].init();\n\t\t\t\treturn this.modules[ module ];\n\t\t\t}\n\n\t\t\treturn {};\n\t\t},\n\n\t\tgetModule( module ) {\n\t\t\tif ( typeof this.modules[ module ] !== 'undefined' ) {\n\t\t\t\treturn this.modules[ module ];\n\t\t\t}\n\t\t\treturn this.initModule( module );\n\t\t},\n\t};\n\n\t/**\n\t * Admin notices.\n\t */\n\tWPHB_Admin.notices = {\n\t\tinit() {},\n\t\t/**\n\t\t * Show notice.\n\t\t *\n\t\t * @since 1.8\n\t\t *\n\t\t * @param {string} id ID of notice element.\n\t\t * @param {boolean} top Scroll to top.\n\t\t * @param {string} type Error or success.\n\t\t * @param {string} message Message to display.\n\t\t *\n\t\t * @member {Array} wphb\n\t\t */\n\t\tshow( id, top = false, type = '', message = wphb.strings.successUpdate ) {\n\t\t\tconst notice = $( '#' + id );\n\n\t\t\tif ( top ) {\n\t\t\t\twindow.scrollTo( 0, 0 );\n\t\t\t}\n\n\t\t\tif ( '' !== type ) {\n\t\t\t\t// Remove set classes if doing multiple calls per page load.\n\t\t\t\tnotice.removeClass( 'sui-notice-error' );\n\t\t\t\tnotice.removeClass( 'sui-notice-success' );\n\t\t\t\tnotice.removeClass( 'sui-notice-info' );\n\t\t\t\tnotice.addClass( 'sui-notice-' + type );\n\t\t\t}\n\n\t\t\tnotice.find( 'p' ).html( message );\n\n\t\t\tnotice.slideDown();\n\t\t\tsetTimeout( function() {\n\t\t\t\tnotice.slideUp();\n\t\t\t}, 5000 );\n\t\t},\n\t};\n\n\twindow.WPHB_Admin = WPHB_Admin;\n}( jQuery ) );\n","import Fetcher from '../utils/fetcher';\n\n( function( $ ) {\n\t'use strict';\n\tWPHB_Admin.performance = {\n\n\t\tmodule: 'performance',\n\t\titeration: 0,\n\t\tprogress: 0,\n\t\ttimer: false,\n\t\tpressedKeys: [],\n\t\tkey_timer: false,\n\n\t\tinit() {\n\t\t\tconst self = this;\n\n\t\t\t/** @member {Array} wphbPerformanceStrings */\n\t\t\tif ( wphbPerformanceStrings ) {\n\t\t\t\tthis.strings = wphbPerformanceStrings;\n\t\t\t}\n\n\t\t\tthis.wphbSetInterval();\n\n\t\t\tdocument.onkeyup = function( e ) {\n\t\t\t\tclearInterval( self.key_timer );\n\t\t\t\tself.wphbSetInterval();\n\t\t\t\te = e || event;\n\t\t\t\tself.pressedKeys.push( e.keyCode );\n\t\t\t\tconst count = self.pressedKeys.length;\n\t\t\t\tif ( count >= 2 ) {\n\t\t\t\t\t// Get the previous key pressed. If they are H+B, we'll display the error\n\t\t\t\t\tif ( 66 === self.pressedKeys[ count - 1 ] && 72 === self.pressedKeys[ count - 2 ] ) {\n\t\t\t\t\t\tconst errorDetails = document.getElementById( 'wphb-error-details' );\n\t\t\t\t\t\terrorDetails.style.display = 'block';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t// Run performance test from empty report meta box.\n\t\t\t$( '#run-performance-test' ).on( 'click', function( e ) {\n\t\t\t\te.preventDefault();\n\n\t\t\t\twindow.SUI.openModal( 'run-performance-test-modal', 'wpbody-content', undefined, false );\n\t\t\t\t$( this ).attr( 'disabled', true );\n\t\t\t\tself.performanceTest( self.strings.finishedTestURLsLink );\n\t\t\t} );\n\n\t\t\t// If a hash is present in URL, let's open the rule extra content\n\t\t\tconst hash = window.location.hash;\n\t\t\tif ( hash ) {\n\t\t\t\tconst row = $( hash );\n\t\t\t\tif ( row.length && ! row.hasClass( 'sui-box' ) ) {\n\t\t\t\t\trow.find( '.sui-accordion-open-indicator' ).trigger( 'click' );\n\t\t\t\t\t$( 'html, body' ).animate( {\n\t\t\t\t\t\tscrollTop: row.offset().top,\n\t\t\t\t\t}, 1000 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Save performance test settings\n\t\t\t$( 'body' ).on( 'submit', '.settings-frm', function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\tconst formData = $( this ).serialize();\n\n\t\t\t\tFetcher.performance.savePerformanceTestSettings( formData )\n\t\t\t\t\t.then( () =>\n\t\t\t\t\t\tWPHB_Admin.notices.show( 'wphb-notice-performance-report-settings-updated', true ),\n\t\t\t\t\t);\n\t\t\t\treturn false;\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Init Google charts on Historic Field Data meta box page.\n\t\t\t *\n\t\t\t * @since 2.0.0\n\t\t\t */\n\t\t\tif ( 'undefined' !== typeof google && 'undefined' !== typeof wphbHistoricFieldData ) {\n\t\t\t\tgoogle.charts.load( 'current', { packages: [ 'corechart', 'bar' ] } );\n\n\t\t\t\tgoogle.charts.setOnLoadCallback( () => {\n\t\t\t\t\tthis.drawChart( wphbHistoricFieldData.fcp, 'first_contentful_paint' );\n\t\t\t\t\t$( window ).resize( () =>\n\t\t\t\t\t\tthis.drawChart( wphbHistoricFieldData.fcp, 'first_contentful_paint' ),\n\t\t\t\t\t);\n\t\t\t\t} );\n\n\t\t\t\tgoogle.charts.setOnLoadCallback( () => {\n\t\t\t\t\tthis.drawChart( wphbHistoricFieldData.fid, 'first_input_delay' );\n\t\t\t\t\t$( window ).resize( () =>\n\t\t\t\t\t\tthis.drawChart( wphbHistoricFieldData.fid, 'first_input_delay' ),\n\t\t\t\t\t);\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Parse dashboard widget device setting change.\n\t\t\t *\n\t\t\t * @since 2.0.0\n\t\t\t */\n\t\t\t$( 'input[name=desktop-report]' ).on( 'change', function( e ) {\n\t\t\t\tconst otherClass = 'desktop_report-true' === e.target.id ? 'desktop_report-false' : 'desktop_report-true';\n\t\t\t\te.target.parentNode.classList.add( 'active' );\n\t\t\t\tdocument.getElementById( otherClass )\n\t\t\t\t\t.parentNode.classList.remove( 'active' );\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Parse subsite settings change.\n\t\t\t *\n\t\t\t * @since 2.0.0\n\t\t\t */\n\t\t\t$( 'input[name=subsite-tests]' ).on( 'change', function( e ) {\n\t\t\t\tconst otherClass = 'subsite_tests-false' === e.target.id ? 'subsite_tests-true' : 'subsite_tests-false';\n\t\t\t\te.target.parentNode.classList.add( 'active' );\n\t\t\t\tdocument.getElementById( otherClass )\n\t\t\t\t\t.parentNode.classList.remove( 'active' );\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Parse report type setting change.\n\t\t\t *\n\t\t\t * @since 2.0.0\n\t\t\t */\n\t\t\t$( 'input[name=report-type]' ).on( 'change', function( e ) {\n\t\t\t\tconst divs = document.querySelectorAll( 'input[name=report-type]' );\n\t\t\t\tfor ( let i = 0; i < divs.length; ++i ) {\n\t\t\t\t\tdivs[ i ].parentNode.classList.remove( 'active' );\n\t\t\t\t}\n\t\t\t\te.target.parentNode.classList.add( 'active' );\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Refresh page, when selecting a report type.\n\t\t\t *\n\t\t\t * @since 2.0.0\n\t\t\t */\n\t\t\t$( 'select[name=wphb-performance-report-type]' ).on( 'change', function( e ) {\n\t\t\t\tconst url = new URL( window.location );\n\t\t\t\turl.searchParams.set( 'type', e.target.value );\n\t\t\t\twindow.location = url;\n\t\t\t} );\n\n\t\t\treturn this;\n\t\t},\n\n\t\twphbSetInterval() {\n\t\t\tconst self = this;\n\n\t\t\tthis.key_timer = window.setInterval( function() {\n\t\t\t\t// Clean pressedKeys every 1sec\n\t\t\t\tself.pressedKeys = [];\n\t\t\t}, 1000 );\n\t\t},\n\n\t\tperformanceTest( redirect ) {\n\t\t\tconst self = this;\n\n\t\t\tif ( typeof redirect === 'undefined' ) {\n\t\t\t\tredirect = false;\n\t\t\t}\n\n\t\t\t// Update progress bar\n\t\t\tthis.updateProgressBar();\n\n\t\t\tFetcher.performance.runTest()\n\t\t\t\t.then( ( response ) => {\n\t\t\t\t\tif ( ! response.finished ) {\n\t\t\t\t\t\t// Try again 3 seconds later\n\t\t\t\t\t\twindow.setTimeout( function() {\n\t\t\t\t\t\t\tself.performanceTest( redirect );\n\t\t\t\t\t\t}, 3000 );\n\t\t\t\t\t} else if ( redirect ) {\n\t\t\t\t\t\tself.progress = 100;\n\t\t\t\t\t\tself.updateProgressBar();\n\n\t\t\t\t\t\t// Give a second for the report to be saved to the db.\n\t\t\t\t\t\twindow.setTimeout( function() {\n\t\t\t\t\t\t\twindow.location = redirect;\n\t\t\t\t\t\t}, 2000 );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t},\n\n\t\tupdateProgressBar() {\n\t\t\tconst self = this;\n\n\t\t\t// Test has been initialized.\n\t\t\tif ( 0 === this.progress ) {\n\t\t\t\tthis.progress = 2;\n\n\t\t\t\tthis.timer = window.setInterval( function() {\n\t\t\t\t\tself.progress += 1;\n\t\t\t\t\tself.updateProgressBar();\n\t\t\t\t}, 100 );\n\t\t\t}\n\n\t\t\tconst progressStatus = $( '.sui-progress-state .sui-progress-state-text' );\n\n\t\t\tif ( 3 === this.progress ) {\n\t\t\t\tprogressStatus.text( this.strings.scanRunning );\n\t\t\t}\n\n\t\t\tif ( 73 === this.progress ) {\n\t\t\t\tclearInterval( this.timer );\n\t\t\t\tthis.timer = false;\n\n\t\t\t\tthis.timer = window.setInterval( function() {\n\t\t\t\t\tself.progress += 1;\n\t\t\t\t\tself.updateProgressBar();\n\t\t\t\t}, 1000 );\n\n\t\t\t\tprogressStatus.text( this.strings.scanAnalyzing );\n\t\t\t}\n\n\t\t\tif ( 99 === this.progress ) {\n\t\t\t\tprogressStatus.text( this.strings.scanWaiting );\n\t\t\t\tclearInterval( this.timer );\n\t\t\t\tthis.timer = false;\n\t\t\t}\n\n\t\t\t$( '.sui-progress-block .sui-progress-text span' )\n\t\t\t\t.text( this.progress + '%' );\n\t\t\t$( '.sui-progress-block .sui-progress-bar span' )\n\t\t\t\t.attr( 'style', 'width:' + this.progress + '%' );\n\n\t\t\tif ( 100 === this.progress ) {\n\t\t\t\t$( '.sui-progress-block i.sui-icon-loader' )\n\t\t\t\t\t.removeClass( 'sui-icon-loader sui-loading' )\n\t\t\t\t\t.addClass( 'sui-icon-check' );\n\t\t\t\tprogressStatus.text( this.strings.scanComplete );\n\t\t\t\tclearInterval( this.timer );\n\t\t\t\tthis.timer = false;\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Draw chart on Historic Field Data meta box.\n\t\t *\n\t\t * @since 2.0.0\n\t\t *\n\t\t * @param strings\n\t\t * @param chartID\n\t\t */\n\t\tdrawChart( strings, chartID ) {\n\t\t\tconst data = google.visualization.arrayToDataTable( [\n\t\t\t\t[ 'Type', 'Fast', { type: 'string', role: 'tooltip', p: { html: true } }, 'Average', { type: 'string', role: 'tooltip', p: { html: true } }, 'Slow', { type: 'string', role: 'tooltip', p: { html: true } } ],\n\t\t\t\t[ '', strings.fast, this.generateTooltip( 'fast', strings.fast_desc ), strings.average, this.generateTooltip( 'average', strings.average_desc ), strings.slow, this.generateTooltip( 'slow', strings.slow_desc ) ],\n\t\t\t] );\n\n\t\t\tconst options = {\n\t\t\t\ttooltip: { isHtml: true },\n\t\t\t\tcolors: [ '#1ABC9C', '#FECF2F', '#FF6D6D' ],\n\t\t\t\tchartArea: { width: '100%' },\n\t\t\t\thAxis: {\n\t\t\t\t\tbaselineColor: '#fff',\n\t\t\t\t\tgridlines: { color: '#fff', count: 0 },\n\t\t\t\t\ttextPosition: 'none',\n\t\t\t\t},\n\t\t\t\tisStacked: 'percent',\n\t\t\t\theight: 80,\n\t\t\t\tlegend: 'none',\n\t\t\t};\n\n\t\t\tconst chart = new google.visualization.BarChart(\n\t\t\t\tdocument.getElementById( chartID ),\n\t\t\t);\n\t\t\tchart.draw( data, options );\n\t\t},\n\n\t\t/**\n\t\t * Generate custom tooltip.\n\t\t *\n\t\t * @since 2.0.0\n\t\t *\n\t\t * @param {string} type Metrics type. Accepts: fast, average, slow.\n\t\t * @param {string} value Tooltip text.\n\t\t *\n\t\t * @return {string} Div element.\n\t\t */\n\t\tgenerateTooltip( type, value ) {\n\t\t\treturn '<div class=\"wphb-field-data-tooltip wphb-tooltip-' + type + '\">' + value + '</div>';\n\t\t},\n\t};\n}( jQuery ) );\n","/**\n * Internal dependencies\n */\nimport Fetcher from '../utils/fetcher';\n\n( function( $ ) {\n\t'use strict';\n\tWPHB_Admin.caching = {\n\n\t\tmodule: 'caching',\n\t\tselectedServer: '',\n\t\tserverSelector: null,\n\t\tserverInstructions: [],\n\t\tsnippets: [],\n\t\tselectedExpiryType: 'all',\n\n\t\tinit() {\n\t\t\tconst self = this,\n\t\t\t\thash = window.location.hash,\n\t\t\t\tpageCachingForm = $( 'form[id=\"page-caching-form\"]' ),\n\t\t\t\trssForm = $( 'form[id=\"rss-caching-settings\"]' ),\n\t\t\t\tgravatarDiv = $( 'div[id=\"wphb-box-caching-gravatar\"]' ),\n\t\t\t\tcachingHeader = $( '.box-caching-status .sui-box-header' ),\n\t\t\t\texpiryForm = $( 'form[id=\"expiry-settings\"]' ),\n\t\t\t\tsettingsForm = $( 'form[id=\"other-caching-settings\"]' );\n\n\t\t\t// Define selected server.\n\t\t\tself.serverSelector = $( '#wphb-server-type' );\n\t\t\tself.selectedServer = self.serverSelector.val();\n\n\t\t\t/** @var {array} wphbCachingStrings */\n\t\t\tif ( wphbCachingStrings ) {\n\t\t\t\tself.strings = wphbCachingStrings;\n\t\t\t}\n\n\t\t\tif ( hash && $( hash ).length ) {\n\t\t\t\tsetTimeout( function() {\n\t\t\t\t\t$( 'html, body' ).animate( { scrollTop: $( hash ).offset().top }, 'slow' );\n\t\t\t\t}, 300 );\n\t\t\t} else if ( '#connect-cloudflare' === hash ) {\n\t\t\t\tself.setCloudflare();\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * PAGE CACHING\n\t\t\t *\n\t\t\t * @since 1.7.0\n\t\t\t */\n\n\t\t\t// Save page caching settings.\n\t\t\tpageCachingForm.on( 'submit', ( e ) => {\n\t\t\t\te.preventDefault();\n\t\t\t\tself.saveSettings( 'page_cache', pageCachingForm );\n\t\t\t} );\n\n\t\t\t// Clear page cache.\n\t\t\tpageCachingForm.on( 'click', '.sui-box-header .sui-button', ( e ) => {\n\t\t\t\te.preventDefault();\n\t\t\t\tself.clearCache( 'page_cache', pageCachingForm );\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Toggle clear cache settings.\n\t\t\t *\n\t\t\t * @since 2.1.0\n\t\t\t */\n\t\t\tconst intervalToggle = document.getElementById( 'clear_interval' );\n\t\t\tif ( intervalToggle ) {\n\t\t\t\tintervalToggle.addEventListener( 'change', function( e ) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\t$( '#page_cache_clear_interval' ).toggle();\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Cancel cache preload.\n\t\t\t *\n\t\t\t * @since 2.1.0\n\t\t\t */\n\t\t\tconst cancelPreload = document.getElementById( 'wphb-cancel-cache-preload' );\n\t\t\tif ( cancelPreload ) {\n\t\t\t\tcancelPreload.addEventListener( 'click', function( e ) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tFetcher.caching.cancelPreload();\n\t\t\t\t\twindow.location.reload();\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Show/hide preload settings.\n\t\t\t *\n\t\t\t * @since 2.3.0\n\t\t\t */\n\t\t\tconst preloadToggle = document.getElementById( 'preload' );\n\t\t\tif ( preloadToggle ) {\n\t\t\t\tpreloadToggle.addEventListener( 'change', function( e ) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\t$( '#page_cache_preload_type' ).toggle();\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * BROWSER CACHING\n\t\t\t */\n\n\t\t\t// Init server instructions tabs.\n\t\t\t$( '.wphb-server-instructions' ).each( function() {\n\t\t\t\tself.serverInstructions[ $( this ).data( 'server' ) ] = $( this );\n\t\t\t} );\n\t\t\tself.showServerInstructions( this.selectedServer );\n\n\t\t\t// Init code snippets.\n\t\t\tself.snippets.apache = $( '.apache-instructions' ).find( 'pre.sui-code-snippet' );\n\t\t\tself.snippets.nginx = $( '#wphb-server-instructions-nginx' ).find( 'pre.sui-code-snippet' );\n\n\t\t\t// Server type changed.\n\t\t\tself.serverSelector.change( function() {\n\t\t\t\tconst value = $( this ).val();\n\t\t\t\tself.hideCurrentInstructions();\n\t\t\t\tself.showServerInstructions( value );\n\t\t\t\tself.setServer( value );\n\t\t\t\tself.selectedServer = value;\n\t\t\t\t$( '.hb-server-type' ).val( value );\n\t\t\t} );\n\n\t\t\t// Expiry time change between all types and individual type.\n\t\t\tconst expiryInput = $( \"div[data-name='expiry-set-type']\" );\n\t\t\texpiryInput.on( 'click', function() {\n\t\t\t\tconst type = $( this ).data( 'value' );\n\t\t\t\tself.selectedExpiryType = type;\n\t\t\t\tself.reloadSnippets( self.getExpiryTimes( type ) );\n\t\t\t} );\n\n\t\t\t// Expiry value changed.\n\t\t\texpiryForm.on( 'change', 'select[name^=\"set-expiry\"]', function() {\n\t\t\t\tself.reloadSnippets( self.getExpiryTimes( self.selectedExpiryType ) );\n\t\t\t\t$( '#wphb-expiry-change-notice' ).slideDown();\n\t\t\t} );\n\n\t\t\t// Re-check expiry button clicked.\n\t\t\tcachingHeader.on( 'click', 'a.sui-button', ( e ) => {\n\t\t\t\te.preventDefault();\n\n\t\t\t\tconst spinner = cachingHeader.find( '.spinner' );\n\t\t\t\tconst button = cachingHeader.find( 'a.sui-button' );\n\n\t\t\t\tbutton.addClass( 'disabled' );\n\t\t\t\tspinner.addClass( 'visible' );\n\n\t\t\t\tFetcher.caching.recheckExpiry()\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\tbutton.removeClass( 'disabled' );\n\t\t\t\t\t\tspinner.removeClass( 'visible' );\n\n\t\t\t\t\t\tif ( 'undefined' !== typeof response && response.success ) {\n\t\t\t\t\t\t\tWPHB_Admin.notices.show( 'wphb-ajax-update-notice', true, 'success', self.strings.successRecheckStatus );\n\t\t\t\t\t\t\tself.reloadExpiryTags( response.expiry_values );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tWPHB_Admin.notices.show( 'wphb-ajax-update-notice', true, 'error', self.strings.errorRecheckStatus );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t} );\n\n\t\t\t// Update .htaccess clicked.\n\t\t\texpiryForm.on( 'submit', ( e ) => {\n\t\t\t\te.preventDefault();\n\n\t\t\t\tconst button = $( '.update-htaccess' );\n\t\t\t\tconst spinner = $( '.wphb-expiry-changes .spinner' );\n\t\t\t\tconst notice = $( '#wphb-expiry-change-notice' );\n\n\t\t\t\tbutton.addClass( 'disabled' );\n\t\t\t\tspinner.addClass( 'visible' );\n\n\t\t\t\tconst expiry_times = self.getExpiryTimes( self.selectedExpiryType );\n\t\t\t\tFetcher.caching.setExpiration( expiry_times );\n\n\t\t\t\t// Set timeout to allow new expiry values to be saved.\n\t\t\t\tsetTimeout(\n\t\t\t\t\tfunction() {\n\t\t\t\t\t\tFetcher.caching.updateHtaccess()\n\t\t\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\t\t\tbutton.removeClass( 'disabled' );\n\t\t\t\t\t\t\t\tspinner.removeClass( 'visible' );\n\t\t\t\t\t\t\t\tnotice.slideUp( 'slow' );\n\n\t\t\t\t\t\t\t\tif ( 'undefined' !== typeof response && response.success ) {\n\t\t\t\t\t\t\t\t\tWPHB_Admin.notices.show( 'wphb-ajax-update-notice', true, 'success', wphb.strings.htaccessUpdated );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tWPHB_Admin.notices.show( 'wphb-ajax-update-notice', true, 'error', self.strings.htaccessUpdatedFailed );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t}, 1000 );\n\t\t\t} );\n\n\t\t\t// View code clicked (when rules already in .htaccess and expiry values are updated).\n\t\t\t$( '#view-snippet-code' ).on( 'click', function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\tconst serverInstructions = $( '#wphb-server-instructions-' + self.selectedServer.toLowerCase() );\n\t\t\t\tconst selectedServer = self.selectedServer.toLowerCase();\n\n\t\t\t\t$( '#auto-' + selectedServer ).removeClass( 'active' );\n\t\t\t\t$( '#manual-' + selectedServer ).trigger( 'click' ).addClass( 'active' );\n\n\t\t\t\t$( 'html, body' ).animate( { scrollTop: serverInstructions.offset().top - 50 }, 'slow' );\n\t\t\t} );\n\n\t\t\t// Activate button clicked.\n\t\t\t$( '.activate-button' ).on( 'click', function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\t$( this ).addClass( 'sui-button-onload' );\n\t\t\t\t// Update expiration times.\n\t\t\t\tconst expiry_times = self.getExpiryTimes( self.selectedExpiryType );\n\t\t\t\tFetcher.caching.setExpiration( expiry_times );\n\t\t\t\tconst redirect = $( this ).attr( 'href' );\n\t\t\t\t// Set timeout to allow new expiry values to be saved.\n\t\t\t\tsetTimeout(\n\t\t\t\t\tfunction() {\n\t\t\t\t\t\twindow.location = redirect;\n\t\t\t\t\t}, 1000 );\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * CLOUDFLARE\n\t\t\t */\n\n\t\t\t// Connect Cloudflare link clicked.\n\t\t\t$( '.connect-cloudflare-link' ).on( 'click', function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\twindow.location.hash = 'connect-cloudflare';\n\t\t\t\tself.setCloudflare();\n\t\t\t} );\n\n\t\t\t// \"# of your cache types don’t meet the recommended expiry period\" notice clicked.\n\t\t\t$( '#configure-link' ).on( 'click', function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\t$( 'html, body' ).animate( { scrollTop: $( '#wphb-box-caching-settings' ).offset().top }, 'slow' );\n\t\t\t} );\n\n\t\t\t// Cloudflare blue notice dismiss link\n\t\t\t$( '#dismiss-cf-notice' ).on( 'click', function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\tFetcher.notice.dismissCloudflareDash();\n\t\t\t\t$( '.cf-dash-notice' ).slideUp().parent().addClass( 'no-background-image' );\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * GRAVATAR CACHING\n\t\t\t *\n\t\t\t * @since 1.9.0\n\t\t\t */\n\n\t\t\t// Clear cache.\n\t\t\tgravatarDiv.on( 'click', '.sui-box-header .sui-button', ( e ) => {\n\t\t\t\te.preventDefault();\n\t\t\t\tself.clearCache( 'gravatar', gravatarDiv );\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * RSS CACHING\n\t\t\t *\n\t\t\t * @since 1.8\n\t\t\t */\n\n\t\t\t// Parse rss cache settings.\n\t\t\trssForm.on( 'submit', ( e ) => {\n\t\t\t\te.preventDefault();\n\n\t\t\t\t// Make sure a positive value is always reflected for the rss expiry time input.\n\t\t\t\tconst rss_expiry_time = rssForm.find( '#rss-expiry-time' );\n\t\t\t\trss_expiry_time.val( Math.abs( rss_expiry_time.val() ) );\n\n\t\t\t\tself.saveSettings( 'rss', rssForm );\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * SETTINGS\n\t\t\t *\n\t\t\t * @since 1.8.1\n\t\t\t */\n\n\t\t\t// Parse page cache settings.\n\t\t\tsettingsForm.on( 'submit', ( e ) => {\n\t\t\t\te.preventDefault();\n\n\t\t\t\t// Hide the notice if it is showing.\n\t\t\t\tconst detection = $( 'input[name=\"detection\"]:checked', settingsForm ).val();\n\t\t\t\tif ( 'auto' === detection || 'none' === detection ) {\n\t\t\t\t\t$( '.wphb-notice.notice-info' ).slideUp();\n\t\t\t\t}\n\n\t\t\t\tself.saveSettings( 'other_cache', settingsForm );\n\t\t\t} );\n\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * Process form submit from page caching, rss and settings forms.\n\t\t *\n\t\t * @since 1.9.0\n\t\t *\n\t\t * @param {string} module Module name.\n\t\t * @param {Object} form Form.\n\t\t */\n\t\tsaveSettings: ( module, form ) => {\n\t\t\tconst spinner = form.find( '.sui-box-footer .spinner' );\n\t\t\tspinner.addClass( 'visible' );\n\n\t\t\tFetcher.caching.saveSettings( module, form.serialize() )\n\t\t\t\t.then( ( response ) => {\n\t\t\t\t\tspinner.removeClass( 'visible' );\n\n\t\t\t\t\tif ( 'undefined' !== typeof response && response.success ) {\n\t\t\t\t\t\tif ( 'page_cache' === module ) {\n\t\t\t\t\t\t\twindow.location.search += '&updated=true';\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tWPHB_Admin.notices.show( 'wphb-ajax-update-notice', true, 'success' );\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tWPHB_Admin.notices.show( 'wphb-ajax-update-notice', true, 'error', wphb.strings.errorSettingsUpdate );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * Unified clear cache method that clears: page cache, gravatar cache and browser cache.\n\t\t *\n\t\t * @since 1.9.0\n\t\t *\n\t\t * @param {string} module Module for which to clear the cache.\n\t\t * @param {Object} form Form from which the call was made.\n\t\t */\n\t\tclearCache: ( module, form ) => {\n\t\t\tconst spinner = form.find( '.sui-box-header .spinner' );\n\t\t\tspinner.addClass( 'visible' );\n\n\t\t\tFetcher.caching.clearCache( module )\n\t\t\t\t.then( ( response ) => {\n\t\t\t\t\tif ( 'undefined' !== typeof response && response.success ) {\n\t\t\t\t\t\tif ( 'page_cache' === module ) {\n\t\t\t\t\t\t\t$( '.box-caching-summary span.sui-summary-large' ).html( '0' );\n\t\t\t\t\t\t\tWPHB_Admin.notices.show( 'wphb-ajax-update-notice', true, 'success', wphbCachingStrings.successPageCachePurge );\n\t\t\t\t\t\t} else if ( 'gravatar' === module ) {\n\t\t\t\t\t\t\tWPHB_Admin.notices.show( 'wphb-ajax-update-notice', true, 'success', wphbCachingStrings.successGravatarPurge );\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tWPHB_Admin.notices.show( 'wphb-ajax-update-notice', true, 'error', wphbCachingStrings.errorCachePurge );\n\t\t\t\t\t}\n\n\t\t\t\t\tspinner.removeClass( 'visible' );\n\t\t\t\t} );\n\t\t},\n\n\t\tsetServer( value ) {\n\t\t\tFetcher.caching.setServer( value );\n\t\t},\n\n\t\tsetCloudflare() {\n\t\t\t$( '#wphb-server-type' ).val( 'cloudflare' ).trigger( 'sui:change' );\n\t\t\tthis.hideCurrentInstructions();\n\t\t\tthis.setServer( 'cloudflare' );\n\t\t\tthis.showServerInstructions( 'cloudflare' );\n\t\t\tthis.selectedServer = 'cloudflare';\n\n\t\t\tsetTimeout( function() {\n\t\t\t\t$( 'html, body' ).animate( { scrollTop: $( '#cloudflare-steps' ).offset().top }, 'slow' );\n\t\t\t}, 300 );\n\t\t},\n\n\t\treloadExpiryTags( expiry_values ) {\n\t\t\tfor ( const k in expiry_values ) {\n\t\t\t\tif ( expiry_values.hasOwnProperty( k ) ) {\n\t\t\t\t\t$( '#wphb-caching-expiry-' + k ).text( expiry_values[ k ] );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\thideCurrentInstructions() {\n\t\t\tif ( this.serverInstructions[ this.selectedServer ] ) {\n\t\t\t\tthis.serverInstructions[ this.selectedServer ].addClass( 'sui-hidden' );\n\t\t\t}\n\t\t},\n\n\t\tshowServerInstructions( server ) {\n\t\t\tif ( typeof this.serverInstructions[ server ] !== 'undefined' ) {\n\t\t\t\tconst serverTab = this.serverInstructions[ server ];\n\t\t\t\tserverTab.removeClass( 'sui-hidden' );\n\t\t\t}\n\n\t\t\tif ( 'apache' === server ) {\n\t\t\t\t$( '.enable-cache-wrap-' + server ).removeClass( 'sui-hidden' );\n\t\t\t} else {\n\t\t\t\t$( '#enable-cache-wrap' ).addClass( 'sui-hidden' );\n\t\t\t}\n\t\t},\n\n\t\treloadSnippets( expiry_times ) {\n\t\t\tconst self = this;\n\t\t\tconst stop = false;\n\n\t\t\tfor ( const i in self.snippets ) {\n\t\t\t\tif ( self.snippets.hasOwnProperty( i ) ) {\n\t\t\t\t\tFetcher.caching.setExpiration( expiry_times );\n\t\t\t\t\tFetcher.caching.reloadSnippets( i, expiry_times )\n\t\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\t\tif ( stop ) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tself.snippets[ response.type ].text( response.code );\n\t\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tgetExpiryTimes( type ) {\n\t\t\tlet expiry_times = [];\n\t\t\tif ( 'all' === type ) {\n\t\t\t\tconst all = $( '#set-expiry-all' ).val();\n\t\t\t\texpiry_times = {\n\t\t\t\t\texpiry_javascript: all,\n\t\t\t\t\texpiry_css: all,\n\t\t\t\t\texpiry_media: all,\n\t\t\t\t\texpiry_images: all,\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\texpiry_times = {\n\t\t\t\t\texpiry_javascript: $( '#set-expiry-javascript' ).val(),\n\t\t\t\t\texpiry_css: $( '#set-expiry-css' ).val(),\n\t\t\t\t\texpiry_media: $( '#set-expiry-media' ).val(),\n\t\t\t\t\texpiry_images: $( '#set-expiry-images' ).val(),\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn expiry_times;\n\t\t},\n\t};\n}( jQuery ) );\n","import Fetcher from '../utils/fetcher';\n\n( function( $ ) {\n\tWPHB_Admin.dashboard = {\n\t\tmodule: 'dashboard',\n\n\t\tinit: function() {\n\t\t\tif ( wphbDashboardStrings )\n\t\t\t\tthis.strings = wphbDashboardStrings;\n\n\t\t\t$( '.wphb-performance-report-item' ).click( function() {\n\t\t\t\tconst url = $( this ).data( 'performance-url' );\n\t\t\t\tif ( url ) {\n\t\t\t\t\tlocation.href = url;\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t$( '#dismiss-cf-notice' ).click( function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\tFetcher.notice.dismissCloudflareDash();\n\t\t\t\tconst cloudFlareDashNotice = $( '.cf-dash-notice' );\n\t\t\t\tcloudFlareDashNotice.slideUp();\n\t\t\t\tcloudFlareDashNotice.parent().addClass( 'no-background-image' );\n\t\t\t} );\n\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * Skip quick setup.\n\t\t */\n\t\tskipSetup() {\n\t\t\tFetcher.dashboard.skipSetup()\n\t\t\t\t.then( () => {\n\t\t\t\t\tlocation.reload();\n\t\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * Run performance test after quick setup.\n\t\t */\n\t\trunPerformanceTest() {\n\t\t\twindow.SUI.closeModal(); // Hide wphb-quick-setup-modal.\n\t\t\t// Show performance test modal\n\t\t\twindow.SUI.openModal( 'run-performance-test-modal', 'wpbody-content', undefined, false );\n\n\t\t\t// Run performance test\n\t\t\twindow.WPHB_Admin.getModule( 'performance' ).performanceTest( this.strings.finishedTestURLsLink );\n\t\t},\n\t};\n}( jQuery ) );\n","import Fetcher from '../utils/fetcher';\n\n( function( $ ) {\n WPHB_Admin.DashboardCloudFlare = {\n init: function( settings ) {\n this.currentStep = settings.currentStep;\n this.data = settings;\n this.email = settings.email;\n this.apiKey = settings.apiKey;\n this.$stepsContainer = $('#cloudflare-steps');\n this.$infoBox = $( '#cloudflare-info' );\n this.$spinner = $( '.cloudflare-spinner' );\n this.$deactivateButton = $('.cloudflare-deactivate.button');\n this.$body = $('body');\n\n this.renderStep( this.currentStep );\n\n this.$body.on( 'click', 'input[type=\"submit\"].cloudflare-clear-cache', function(e ) {\n e.preventDefault();\n this.purgeCache.apply( $(e.target), [this] );\n }.bind(this));\n\n this.$body.on( 'click', '#cf-recheck-zones', function(e ) {\n e.preventDefault();\n $('#cf-recheck-zones').addClass('sui-button-onload');\n this.updateZones.apply( $(e.target), [this] );\n }.bind(this));\n\n\n },\n\n purgeCache: function( self ) {\n // Show spinner\n\t\t\tconst $button = this;\n\t\t\t$button.attr( 'disabled', true );\n\t\t\tself.showSpinner();\n\n Fetcher.cloudflare.purgeCache()\n .then( () => {\n // Show notice\n\t\t\t\t\tWPHB_Admin.notices.show( 'wphb-ajax-update-notice', true, 'success', wphbCachingStrings.successCloudflarePurge );\n // Remove spinner\n\t\t\t\t\t$button.removeAttr( 'disabled' );\n\t\t\t\t\tself.hideSpinner();\n });\n },\n\n renderStep: function( step ) {\n const template = WPHB_Admin.DashboardCloudFlare.template( '#cloudflare-step-' + step );\n const content = template( this.data );\n const self = this;\n\n if ( content ) {\n this.currentStep = step;\n this.$stepsContainer\n .hide()\n .html( template( this.data ) )\n .fadeIn()\n .find( 'form' )\n .on( 'submit', function( e ) {\n e.preventDefault();\n self.submitStep.call( self, $(this) );\n });\n\n this.$spinner = this.$stepsContainer.find( '.cloudflare-spinner' );\n }\n\n this.bindEvents();\n },\n\n bindEvents: function() {\n const $howToInstructions = $('#cloudflare-how-to');\n\n $howToInstructions.hide();\n\n $('a.cloudflare-how-to-title').click( function( e ) {\n e.preventDefault();\n $howToInstructions.toggle();\n });\n\n this.$stepsContainer.find( 'select' ).each( function() {\n\t\t\t\tSUI.suiSelect( this );\n });\n\n if ( 'final' === this.currentStep ) {\n this.$deactivateButton.removeClass( 'hidden' );\n } else {\n this.$deactivateButton.addClass( 'hidden' );\n }\n },\n\n emptyInfoBox: function() {\n this.$infoBox.html('');\n this.$infoBox.removeClass();\n },\n\n updateZones: function( self ) {\n self.hideInfoBox();\n Fetcher.cloudflare.recheckZones()\n .then( ( response ) => {\n self.data.zones = response.zones;\n self.renderStep(self.currentStep);\n $('#cf-recheck-zones').removeClass('sui-button-onload');\n\n }).catch( ( error ) => {\n self.showInfoBox( error, 'warning' );\n $('#cf-recheck-zones').removeClass('sui-button-onload');\n });\n },\n\n showInfoBox: function( message, notice_class = 'error' ) {\n this.$infoBox.addClass( 'sui-notice' );\n this.$infoBox.addClass( 'sui-notice-' + notice_class );\n this.$infoBox.addClass( 'sui-notice-sm' );\n this.$infoBox.html( '<p>' + message + ' </p>' );\n },\n\n hideInfoBox: function() {\n this.$infoBox.removeClass();\n this.$infoBox.html( '' );\n },\n\n showSpinner: function() {\n this.$spinner.css( 'visibility', 'visible' );\n },\n\n hideSpinner: function() {\n this.$spinner.css( 'visibility', 'hidden' );\n },\n\n submitStep: function( $form ) {\n\t\t\tconst self = this;\n\n\t\t\t$form.find( 'input[type=submit]' ).attr( 'disabled', 'true' );\n\t\t\tthis.emptyInfoBox();\n\t\t\tthis.showSpinner();\n\n\t\t\tFetcher.cloudflare.connect( this.currentStep, $form.serialize(), this.data )\n .then( ( response ) => {\n\t\t\t\t\tself.data = response.newData;\n\t\t\t\t\tself.renderStep( response.nextStep );\n\n\t\t\t\t\tif ( response.nextStep === 'final' ) {\n\t\t\t\t\t\twindow.location.href = response.redirect;\n\t\t\t\t\t}\n })\n\t\t\t\t.catch( ( error ) => {\n\t\t\t\t\tself.showInfoBox( error );\n\t\t\t\t});\n\n\t\t\t$form.find( 'input[type=submit]' ).removeAttr( 'disabled' );\n\t\t\tself.hideSpinner();\n }\n };\n\n WPHB_Admin.DashboardCloudFlare.template = _.memoize(function ( id ) {\n let compiled,\n options = {\n evaluate: /<#([\\s\\S]+?)#>/g,\n interpolate: /\\{\\{\\{([\\s\\S]+?)\\}\\}\\}/g,\n escape: /\\{\\{([^\\}]+?)\\}\\}(?!\\})/g,\n variable: 'data'\n };\n\n return function ( data ) {\n _.templateSettings = options;\n compiled = compiled || _.template( $( id ).html() );\n return compiled( data );\n };\n });\n}(jQuery));\n","/* global WPHB_Admin */\n/* global wphbUptimeStrings */\n/* global wphb */\n/* global google */\n\n/**\n * Internal dependencies\n */\nimport Fetcher from '../utils/fetcher';\n\n( function( $ ) {\n\tWPHB_Admin.uptime = {\n\t\tmodule: 'uptime',\n\t\t$dataRangeSelector: null,\n\t\tchartData: null,\n\t\tdowntimeChartData: null,\n\t\ttimer: null,\n\t\t$spinner: null,\n\t\tdataRange: null,\n\t\tdateFormat: 'MMM d',\n\t\tinit() {\n\t\t\tthis.$spinner = $( '.spinner' );\n\t\t\tthis.strings = wphbUptimeStrings;\n\t\t\tthis.$dataRangeSelector = $( '#wphb-uptime-data-range' );\n\t\t\tthis.chartData = $( '#uptime-chart-json' ).val();\n\t\t\tthis.downtimeChartData = $( '#downtime-chart-json' ).val();\n\t\t\tthis.$disableUptime = $( '#wphb-disable-uptime' );\n\t\t\tthis.dataRange = this.getUrlParameter( 'data-range' );\n\n\t\t\tthis.$dataRangeSelector.change( function() {\n\t\t\t\twindow.location.href = $( this ).find( ':selected' ).data( 'url' );\n\t\t\t} );\n\n\t\t\tconst self = this;\n\n\t\t\tif ( 'undefined' !== typeof google ) {\n\t\t\t\tgoogle.charts.load( 'current', { packages: [ 'corechart', 'timeline' ] } );\n\t\t\t}\n\n\t\t\tthis.$disableUptime.on( 'click', function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\tself.$spinner.css( 'visibility', 'visible' );\n\t\t\t\tconst value = $( this ).is( ':checked' );\n\t\t\t\tif ( value && self.timer ) {\n\t\t\t\t\tclearTimeout( self.timer );\n\t\t\t\t\tself.$spinner.css( 'visibility', 'hidden' );\n\t\t\t\t} else {\n\t\t\t\t\t// you have 3 seconds to change your mind\n\t\t\t\t\tself.timer = setTimeout( function() {\n\t\t\t\t\t\tlocation.href = self.strings.disableUptimeURL;\n\t\t\t\t\t}, 3000 );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t/* If data range has been selected change the tab urls to retain the chosen range */\n\t\t\tif ( undefined !== this.dataRange ) {\n\t\t\t\t$( '.wrap-wphb-uptime .wphb-tab a' ).each( function() {\n\t\t\t\t\tthis.href += '&data-range=' + self.dataRange;\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tif ( 'day' === this.dataRange ) {\n\t\t\t\tthis.dateFormat = 'h:mma';\n\t\t\t}\n\n\t\t\tif ( null !== document.getElementById( 'uptime-chart' ) ) {\n\t\t\t\tgoogle.charts.setOnLoadCallback( () => this.drawResponseTimeChart() );\n\t\t\t}\n\t\t\tif ( null !== document.getElementById( 'downtime-chart' ) ) {\n\t\t\t\tgoogle.charts.setOnLoadCallback( () => this.drawDowntimeChart() );\n\t\t\t}\n\n\t\t\t/* Re-check Uptime status */\n\t\t\t$( '#uptime-re-check-status' ).on( 'click', function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\tlocation.reload();\n\t\t\t} );\n\n\t\t\t// Resend email verification.\n\t\t\t$( '.wphb-resend-recipient' ).on( 'click', ( e ) => {\n\t\t\t\tFetcher.uptime.resendConfirmationEmail( e.currentTarget.dataset.name, e.currentTarget.dataset.email )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\tWPHB_Admin.notices.show(\n\t\t\t\t\t\t\t'wphb-ajax-update-notice',\n\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t\t'success',\n\t\t\t\t\t\t\tresponse.message,\n\t\t\t\t\t\t);\n\t\t\t\t\t} );\n\t\t\t} );\n\t\t},\n\n\t\tdrawResponseTimeChart() {\n\t\t\tconst data = new google.visualization.DataTable();\n\t\t\tdata.addColumn( 'datetime', 'Day' );\n\t\t\tdata.addColumn( 'number', 'Response Time (ms)' );\n\t\t\tdata.addColumn( { type: 'string', role: 'tooltip', p: { html: true } } );\n\t\t\tconst chartArray = JSON.parse( this.chartData );\n\t\t\tfor ( let i = 0; i < chartArray.length; i++ ) {\n\t\t\t\tchartArray[ i ][ 0 ] = new Date( chartArray[ i ][ 0 ] );\n\t\t\t\tchartArray[ i ][ 1 ] = Math.round( chartArray[ i ][ 1 ] );\n\t\t\t\tchartArray[ i ][ 2 ] = this.createUptimeTooltip( chartArray[ i ][ 0 ], chartArray[ i ][ 1 ] );\n\n\t\t\t\t/* brings the graph below the x axis */\n\t\t\t\tif ( Math.round( chartArray[ i ][ 1 ] ) === 0 ) {\n\t\t\t\t\tchartArray[ i ][ 1 ] = -100;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tdata.addRows( chartArray );\n\n\t\t\tconst options = {\n\t\t\t\tchartArea: {\n\t\t\t\t\tleft: 80,\n\t\t\t\t\ttop: 20,\n\t\t\t\t\twidth: '90%',\n\t\t\t\t\theight: '90%',\n\t\t\t\t},\n\t\t\t\tcolors: [ '#24ADE5' ],\n\t\t\t\tcurveType: 'function',\n\t\t\t\t/*interpolateNulls: true,*/\n\t\t\t\tlegend: { position: 'none' },\n\t\t\t\tvAxis: {\n\t\t\t\t\tformat: '#### ms',\n\t\t\t\t\tgridlines: { count: 5 },\n\t\t\t\t\tminorGridlines: { count: 0 },\n\t\t\t\t\tviewWindow: { min: 0 }, /* don't display negative values */\n\t\t\t\t},\n\t\t\t\thAxis: {\n\t\t\t\t\tformat: this.dateFormat,\n\t\t\t\t\tminorGridlines: { count: 0 },\n\t\t\t\t},\n\t\t\t\ttooltip: { isHtml: true },\n\t\t\t\tseries: {\n\t\t\t\t\t0: { axis: 'Resp' },\n\t\t\t\t},\n\t\t\t\taxes: {\n\t\t\t\t\ty: {\n\t\t\t\t\t\tResp: { label: 'Response Time (ms)' },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\n\t\t\tconst chart = new google.visualization.AreaChart( document.getElementById( 'uptime-chart' ) );\n\t\t\tchart.draw( data, options );\n\n\t\t\t$( window ).resize( function() {\n\t\t\t\tchart.draw( data, options );\n\t\t\t} );\n\t\t},\n\n\t\tdrawDowntimeChart() {\n\t\t\tconst container = document.getElementById( 'downtime-chart' );\n\t\t\tconst chart = new google.visualization.Timeline( container );\n\t\t\tconst dataTable = new google.visualization.DataTable();\n\t\t\tdataTable.addColumn( { type: 'string' } );\n\t\t\tdataTable.addColumn( { type: 'string', id: 'Status' } );\n\t\t\tdataTable.addColumn( { type: 'string', role: 'tooltip', p: { html: true } } );\n\t\t\tdataTable.addColumn( { type: 'datetime', id: 'Start Period' } );\n\t\t\tdataTable.addColumn( { type: 'datetime', id: 'End Period' } );\n\t\t\tconst chartArray = JSON.parse( this.downtimeChartData );\n\t\t\tfor ( let i = 0; i < chartArray.length; i++ ) {\n\t\t\t\tchartArray[ i ][ 0 ] = chartArray[ i ][ 0 ];\n\t\t\t\tchartArray[ i ][ 1 ] = chartArray[ i ][ 1 ];\n\t\t\t\tchartArray[ i ][ 2 ] = chartArray[ i ][ 2 ];\n\t\t\t\tchartArray[ i ][ 3 ] = new Date( chartArray[ i ][ 3 ] );\n\t\t\t\tchartArray[ i ][ 4 ] = new Date( chartArray[ i ][ 4 ] );\n\t\t\t}\n\t\t\tdataTable.addRows( chartArray );\n\t\t\tconst colors = [];\n\t\t\tconst colorMap = {\n\t\t\t\t// should contain a map of category -> color for every category\n\t\t\t\tDown: '#FF6D6D',\n\t\t\t\tUnknown: '#F8F8F8',\n\t\t\t\tUp: '#D1F1EA',\n\t\t\t};\n\t\t\tfor ( let i = 0; i < dataTable.getNumberOfRows(); i++ ) {\n\t\t\t\tcolors.push( colorMap[ dataTable.getValue( i, 1 ) ] );\n\t\t\t}\n\t\t\tconst options = {\n\t\t\t\ttimeline: {\n\t\t\t\t\tshowBarLabels: false,\n\t\t\t\t\tshowRowLabels: false,\n\t\t\t\t\tbarLabelStyle: {\n\t\t\t\t\t\tfontSize: 33,\n\t\t\t\t\t},\n\t\t\t\t\tavoidOverlappingGridLines: false,\n\t\t\t\t},\n\t\t\t\thAxis: {\n\t\t\t\t\tformat: this.dateFormat,\n\n\t\t\t\t},\n\t\t\t\tcolors,\n\t\t\t\theight: 170,\n\t\t\t};\n\t\t\tconst origColors = [];\n\t\t\tgoogle.visualization.events.addListener( chart, 'ready', function() {\n\t\t\t\tconst bars = container.getElementsByTagName( 'rect' );\n\t\t\t\tArray.prototype.forEach.call( bars, function( bar ) {\n\t\t\t\t\tif ( parseFloat( bar.getAttribute( 'x' ) ) > 0 ) {\n\t\t\t\t\t\torigColors.push( bar.getAttribute( 'fill' ) );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t} );\n\t\t\tgoogle.visualization.events.addListener( chart, 'onmouseover', function( e ) {\n\t\t\t\t// set original color\n\t\t\t\tconst bars = container.getElementsByTagName( 'rect' );\n\t\t\t\tbars[ bars.length - 1 ].setAttribute( 'fill', origColors[ e.row ] );\n\t\t\t\tconst width = bars[ bars.length - 1 ].getAttribute( 'width' );\n\t\t\t\tif ( width > 3 ) {\n\t\t\t\t\tbars[ bars.length - 1 ].setAttribute( 'width', ( width - 1 ) + 'px' );\n\t\t\t\t}\n\t\t\t} );\n\t\t\tchart.draw( dataTable, options );\n\n\t\t\t$( window ).resize( function() {\n\t\t\t\tchart.draw( dataTable, options );\n\t\t\t} );\n\t\t},\n\n\t\tcreateUptimeTooltip( date, responseTime ) {\n\t\t\tconst formattedDate = this.formatTooltipDate( date );\n\t\t\treturn '<span class=\"response-time-tooltip\">' + responseTime + 'ms</span>' +\n\t\t\t\t'<span class=\"uptime-date-tooltip\">' + formattedDate + '</span>';\n\t\t},\n\n\t\tformatTooltipDate( date ) {\n\t\t\tconst monthNames = [\n\t\t\t\t'Jan', 'Feb', 'Mar',\n\t\t\t\t'Apr', 'May', 'Jun',\n\t\t\t\t'Jul', 'Aug', 'Sep',\n\t\t\t\t'Oct', 'Nov', 'Dec',\n\t\t\t];\n\n\t\t\tconst day = date.getDate();\n\t\t\tconst monthIndex = date.getMonth();\n\t\t\tconst hh = date.getHours();\n\t\t\tlet h = hh;\n\t\t\tconst minutes = ( date.getMinutes() < 10 ? '0' : '' ) + date.getMinutes();\n\t\t\tlet dd = 'AM';\n\t\t\tif ( h >= 12 ) {\n\t\t\t\th = hh - 12;\n\t\t\t\tdd = 'PM';\n\t\t\t}\n\t\t\tif ( h === 0 ) {\n\t\t\t\th = 12;\n\t\t\t}\n\t\t\treturn monthNames[ monthIndex ] + ' ' + day + ' @ ' + h + ':' + minutes + dd;\n\t\t},\n\n\t\tgetUrlParameter: function getUrlParameter( sParam ) {\n\t\t\tconst sPageURL = decodeURIComponent( window.location.search.substring( 1 ) ),\n\t\t\t\tsURLVariables = sPageURL.split( '&' );\n\t\t\tlet sParameterName,\n\t\t\t\ti;\n\n\t\t\tfor ( i = 0; i < sURLVariables.length; i++ ) {\n\t\t\t\tsParameterName = sURLVariables[ i ].split( '=' );\n\n\t\t\t\tif ( sParameterName[ 0 ] === sParam ) {\n\t\t\t\t\treturn sParameterName[ 1 ] === undefined ? true : sParameterName[ 1 ];\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t};\n}( jQuery ) );\n","import Fetcher from '../utils/fetcher';\n\n( function( $ ) {\n\tWPHB_Admin.cloudflare = {\n\t\tmodule: 'cloudflare',\n\n\t\tinit() {\n\t\t\tconst self = this,\n\t\t\t\tcfSetExpiryButton = $( '#set-cf-expiry-button' ),\n\t\t\t\tcfSelector = $( '#set-expiry-all' );\n\n\t\t\t/** @member {Array} wphb */\n\t\t\tif ( wphb.cloudflare.is.connected ) {\n\t\t\t\tcfSetExpiryButton.on( 'click', ( e ) => {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tself.setExpiry.call( self, cfSelector );\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn this;\n\t\t},\n\n\t\tsetExpiry( selector ) {\n\t\t\tconst spinner = $( '.wphb-expiry-changes .spinner' );\n\t\t\tconst button = $( '.wphb-expiry-changes input[type=\"submit\"]' );\n\n\t\t\tspinner.addClass( 'visible' );\n\t\t\tbutton.addClass( 'disabled' );\n\n\t\t\tFetcher.cloudflare.setExpiration( $( selector ).val() )\n\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t//window.location.reload();\n\t\t\t\t\t$( '#wphb-expiry-change-notice' ).hide();\n\t\t\t\t\tspinner.removeClass( 'visible' );\n\t\t\t\t\tbutton.removeClass( 'disabled' );\n\n\t\t\t\t\tif ( 'undefined' !== typeof response && response.success ) {\n\t\t\t\t\t\tWPHB_Admin.notices.show( 'wphb-ajax-update-notice', true, 'success' );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tWPHB_Admin.notices.show( 'wphb-ajax-update-notice', true, 'error', wphb.strings.errorSettingsUpdate );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t},\n\n\t};\n}( jQuery ) );\n","/* global WPHB_Admin */\n/* global wphb */\n\n/**\n * Internal dependencies\n */\nimport Fetcher from '../utils/fetcher';\n\n( function( $ ) {\n\t'use strict';\n\n\tWPHB_Admin.advanced = {\n\t\tmodule: 'advanced',\n\n\t\tinit() {\n\t\t\tconst self = this,\n\t\t\t\tsystemInfoDropdown = $( '#wphb-system-info-dropdown' ),\n\t\t\t\thash = window.location.hash;\n\n\t\t\t/**\n\t\t\t * Process form submit for advanced tools forms\n\t\t\t */\n\t\t\t$( '#wphb-db-delete-all, .wphb-db-row-delete' ).on( 'click', function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\tself.showModal( e.target.dataset.entries, e.target.dataset.type );\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Process form submit for advanced tools forms\n\t\t\t */\n\t\t\t$( 'form[id=\"advanced-db-settings\"], form[id=\"advanced-general-settings\"]' ).on( 'submit', function( e ) {\n\t\t\t\te.preventDefault();\n\n\t\t\t\tconst spinner = $( this ).parent().find( '.sui-icon-loader' );\n\t\t\t\tspinner.removeClass( 'sui-hidden' );\n\n\t\t\t\tFetcher.advanced.saveSettings( $( this ).serialize(), e.target.id )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\tspinner.addClass( 'sui-hidden' );\n\t\t\t\t\t\tif ( 'undefined' !== typeof response && response.success ) {\n\t\t\t\t\t\t\t// Schedule cleanup.\n\t\t\t\t\t\t\tif ( 'advanced-db-settings' === e.target.id ) {\n\t\t\t\t\t\t\t\tFetcher.advanced.scheduleCleanup();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tWPHB_Admin.notices.show( 'wphb-notice-advanced-tools', true, 'success' );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tWPHB_Admin.notices.show( 'wphb-notice-advanced-tools', true, 'error', wphb.strings.errorSettingsUpdate );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Show/hide schedule for database cleanup.\n\t\t\t */\n\t\t\t$( 'input[id=\"scheduled_cleanup\"]' ).on( 'change', function() {\n\t\t\t\t$( '.schedule-box' ).toggle();\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Show initial system information table.\n\t\t\t */\n\t\t\t$( '#wphb-system-info-php' ).removeClass( 'sui-hidden' );\n\t\t\tif ( hash ) {\n\t\t\t\tconst system = hash.replace( '#', '' );\n\t\t\t\t$( '.wphb-sys-info-table' ).addClass( 'sui-hidden' );\n\t\t\t\t$( '#wphb-system-info-' + system ).removeClass( 'sui-hidden' );\n\t\t\t\tsystemInfoDropdown.val( system ).trigger( 'sui:change' );\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Show/hide system information tables on dropdown change.\n\t\t\t */\n\t\t\tsystemInfoDropdown.change( function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\t$( '.wphb-sys-info-table' ).addClass( 'sui-hidden' );\n\t\t\t\t$( '#wphb-system-info-' + $( this ).val() ).removeClass( 'sui-hidden' );\n\t\t\t\tlocation.hash = $( this ).val();\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Paste default values to url strings option.\n\t\t\t *\n\t\t\t * @since 1.9.0\n\t\t\t */\n\t\t\t$( '#wphb-adv-paste-value' ).on( 'click', function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\tconst urlStrings = $( 'textarea[name=\"url_strings\"]' );\n\t\t\t\tif ( '' === urlStrings.val() ) {\n\t\t\t\t\turlStrings.val( urlStrings.attr( 'placeholder' ) );\n\t\t\t\t} else {\n\t\t\t\t\turlStrings.val( urlStrings.val() + '\\n' + urlStrings.attr( 'placeholder' ) );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Toggle woo cart fragments settings.\n\t\t\t *\n\t\t\t * @since 2.2.0\n\t\t\t */\n\t\t\tconst fragmentsToggle = document.getElementById( 'cart_fragments' );\n\t\t\tif ( fragmentsToggle ) {\n\t\t\t\tfragmentsToggle.addEventListener( 'change', function( e ) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\t$( '#cart_fragments_desc' ).toggle();\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * Show the modal window asking if a user is sure he wants to delete the db records.\n\t\t *\n\t\t * @param {string} items Number of records to delete.\n\t\t * @param {string} type Data type to delete from db (See data-type element for each row in the code).\n\t\t */\n\t\tshowModal( items, type ) {\n\t\t\tconst dialog = wphb.strings.db_delete + ' ' + items + ' ' + wphb.strings.db_entries + '? ' + wphb.strings.db_backup;\n\t\t\tconst modal = $( '.wphb-database-cleanup-modal' );\n\n\t\t\tmodal.find( 'p' ).html( dialog );\n\t\t\tmodal.find( '.wphb-delete-db-row' ).attr( 'data-type', type );\n\n\t\t\twindow.SUI.openModal( 'wphb-database-cleanup-modal', 'wpbody-content', undefined, false );\n\t\t},\n\n\t\t/**\n\t\t * Process database cleanup (both individual and all entries).\n\t\t *\n\t\t * @param {string} type Data type to delete from db (See data-type element for each row in the code).\n\t\t */\n\t\tconfirmDelete( type ) {\n\t\t\twindow.SUI.closeModal();\n\n\t\t\tlet row;\n\t\t\tconst footer = $( '.box-advanced-db .sui-box-footer' );\n\n\t\t\tif ( 'all' === type ) {\n\t\t\t\trow = footer;\n\t\t\t} else {\n\t\t\t\trow = $( '.box-advanced-db .wphb-border-frame' ).find( 'div[data-type=' + type + ']' );\n\t\t\t}\n\n\t\t\tconst spinner = row.find( '.sui-icon-loader' );\n\t\t\tconst button = row.find( '.wphb-db-row-delete' );\n\n\t\t\tspinner.removeClass( 'sui-hidden' );\n\t\t\tbutton.addClass( 'sui-hidden' );\n\n\t\t\tFetcher.advanced.deleteSelectedData( type )\n\t\t\t\t.then( ( response ) => {\n\t\t\t\t\tWPHB_Admin.notices.show( 'wphb-notice-advanced-tools', false, 'success', response.message );\n\t\t\t\t\tspinner.addClass( 'sui-hidden' );\n\t\t\t\t\tbutton.removeClass( 'sui-hidden' );\n\n\t\t\t\t\tfor ( const prop in response.left ) {\n\t\t\t\t\t\tif ( 'total' === prop ) {\n\t\t\t\t\t\t\tconst leftString = wphb.strings.deleteAll + ' (' + response.left[ prop ] + ')';\n\t\t\t\t\t\t\tfooter.find( '.wphb-db-delete-all' ).html( leftString );\n\t\t\t\t\t\t\tfooter.find( '#wphb-db-delete-all' ).attr( 'data-entries', response.left[ prop ] );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst itemRow = $( '.box-advanced-db div[data-type=' + prop + ']' );\n\t\t\t\t\t\t\titemRow.find( '.wphb-db-items' ).html( response.left[ prop ] );\n\t\t\t\t\t\t\titemRow.find( '.wphb-db-row-delete' ).attr( 'data-entries', response.left[ prop ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} )\n\t\t\t\t.catch( ( error ) => {\n\t\t\t\t\tWPHB_Admin.notices.show( 'wphb-notice-advanced-tools', false, 'error', error );\n\t\t\t\t\tspinner.addClass( 'sui-hidden' );\n\t\t\t\t} );\n\t\t},\n\t};\n}( jQuery ) );\n","import Fetcher from '../utils/fetcher';\n\n( function( $ ) {\n 'use strict';\n WPHB_Admin.settings = {\n\n module: 'settings',\n\n init: function () {\n\n let body = $('body');\n let wrap = body.find('.wrap-wphb-settings');\n\n // Save settings\n body.on('click', 'button.sui-button', function (e) {\n e.preventDefault();\n const form_data = body.find('.settings-frm').serialize();\n\n const contrastDiv = $('#color_accessible');\n if ( contrastDiv.length ) {\n if ( contrastDiv.is(':checked') ) {\n wrap.addClass('sui-color-accessible');\n } else {\n wrap.removeClass('sui-color-accessible');\n }\n }\n Fetcher.settings.saveSettings( form_data )\n .then( () => {\n\t\t\t\t\t\tWPHB_Admin.notices.show('wphb-ajax-update-notice', true);\n });\n return false;\n });\n\n /**\n * Parse remove settings change.\n */\n $('input[name=remove_settings]').on('change', function (e) {\n const otherClass = 'remove_settings-false' === e.target.id ? 'remove_settings-true' : 'remove_settings-false';\n e.target.parentNode.classList.add('active');\n document.getElementById(otherClass).parentNode.classList.remove('active');\n });\n\n /**\n * Parse remove data change.\n */\n $('input[name=remove_data]').on('change', function (e) {\n const otherClass = 'remove_data-false' === e.target.id ? 'remove_data-true' : 'remove_data-false';\n e.target.parentNode.classList.add('active');\n document.getElementById(otherClass).parentNode.classList.remove('active');\n });\n\n return this;\n },\n\n /**\n * Parse confirm settings reset from the modal.\n *\n * @since 2.0.0\n */\n confirmReset: () => {\n Fetcher.settings.resetSettings()\n .then( () => {\n window.location.href = wphb.urls.resetSettings;\n });\n }\n\n };\n}( jQuery ));\n","/**\n * Strings internationalization\n *\n * @param str\n *\n * @returns {*|string}\n */\nexport const __ = ( str ) => {\n return wphb.strings[ str ] || '';\n};\n\n/**\n * Get a link to a HB screen\n *\n * @param {string} screen Screen slug\n * @returns {string}\n */\nexport const getLink = ( screen ) => {\n return wphb.links[ screen ] || '';\n};\n\n","const Row = ( _element, _filter, _filter_sec ) => {\n let $el = _element,\n filter = _filter.toLowerCase(),\n filterSecondary = false,\n selected = false,\n visible = true;\n\n const $include = $el.find( '.toggle-include' ),\n $combine = $el.find( '.toggle-combine' ),\n $minify = $el.find( '.toggle-minify' ),\n $posFooter = $el.find( '.toggle-position-footer' ),\n $defer = $el.find( '.toggle-defer' ),\n $inline = $el.find( '.toggle-inline' ),\n $disableIcon = $el.find( '.toggle-cross > i' ),\n $selectCheckbox = $el.find( '.wphb-minification-file-select input[type=checkbox]' );\n\n if ( _filter_sec ) {\n filterSecondary = _filter_sec.toLowerCase();\n }\n\n return {\n hide: function() {\n $el.addClass( 'out-of-filter' );\n visible = false;\n },\n\n show: function() {\n $el.removeClass( 'out-of-filter' );\n visible = true;\n },\n\n getElement: function() {\n return $el;\n },\n\n getId: function() {\n return $el.attr( 'id' );\n },\n\n getFilter: function() {\n return filter;\n },\n\n matchFilter: function( text ) {\n if ( text === '' ) {\n return true;\n }\n\n text = text.toLowerCase();\n return filter.search( text ) > - 1;\n },\n\n matchSecondaryFilter: function( text ) {\n if ( text === '' ) {\n return true;\n }\n\n if ( ! filterSecondary ) {\n return false;\n }\n\n text = text.toLowerCase();\n return filterSecondary === text;\n },\n\n isVisible: function() {\n return visible;\n },\n\n isSelected: function() {\n return selected;\n },\n\n isType: function( type ) {\n return type === $selectCheckbox.attr( 'data-type' )\n },\n\n select: function() {\n selected = true;\n\t\t\t$selectCheckbox.prop( 'checked', true );\n },\n\n unSelect: function() {\n selected = false;\n\t\t\t$selectCheckbox.prop( 'checked', false );\n },\n\n change: function( what, value ) {\n switch ( what ) {\n case 'minify': {\n $minify.prop( 'checked', value );\n $minify.toggleClass('changed');\n let row = $minify.closest('.wphb-border-row');\n let row_status = row.find('span.wphb-row-status');\n row_status.removeClass('hidden');\n break;\n }\n case 'combine': {\n $combine.prop( 'checked', value );\n $combine.toggleClass('changed');\n let row = $combine.closest('.wphb-border-row');\n let row_status = row.find('span.wphb-row-status');\n row_status.removeClass('hidden');\n break;\n }\n case 'defer': {\n $defer.prop( 'checked', value );\n $defer.toggleClass('changed');\n let row = $defer.closest('.wphb-border-row');\n let row_status = row.find('span.wphb-row-status');\n row_status.removeClass('hidden');\n break;\n }\n\t\t\t\tcase 'inline': {\n\t\t\t\t\t$inline.prop( 'checked', value );\n\t\t\t\t\t$inline.toggleClass('changed');\n let row = $inline.closest('.wphb-border-row');\n let row_status = row.find('span.wphb-row-status');\n row_status.removeClass('hidden');\n\t\t\t\t\tbreak;\n\t\t\t\t}\n case 'include': {\n $disableIcon.removeClass();\n $include.prop( 'checked', value );\n $include.toggleClass('changed');\n let row = $include.closest('.wphb-border-row');\n let row_status = row.find('span.wphb-row-status');\n row_status.removeClass('hidden');\n if ( value ) {\n $el.removeClass( 'disabled' );\n $disableIcon.addClass( 'dev-icon dev-icon-cross' );\n $include.attr( 'checked', true );\n } else {\n $el.addClass( 'disabled' );\n $disableIcon.addClass( 'wdv-icon wdv-icon-refresh' );\n $include.removeAttr( 'checked' );\n }\n break;\n }\n case 'footer': {\n $posFooter.prop( 'checked', value );\n $posFooter.toggleClass('changed');\n let row = $posFooter.closest('.wphb-border-row');\n let row_status = row.find('span.wphb-row-status');\n row_status.removeClass('hidden');\n break;\n }\n }\n }\n\n };\n};\n\nexport default Row;\n","const RowsCollection = () => {\n let items = [];\n let currentFilter = '';\n let currentSecondaryFilter = '';\n\n return {\n push: function( row ) {\n if ( typeof row === 'object' ) {\n items.push( row );\n }\n },\n\n getItems: function() {\n return items;\n },\n\n getItem: function( i ) {\n if ( items[i] ) {\n return items[i];\n }\n return false;\n },\n\n /**\n * Get a collection item by type and ID\n * @param type\n * @param id\n */\n getItemById: function( type, id ) {\n let value = false;\n for ( let i in items ) {\n if ( 'wphb-file-' + type + '-' + id === items[i].getId() ) {\n value = items[i];\n break;\n }\n }\n return value;\n },\n\n getItemsByDataType: function( type ) {\n\t\t\tlet selected = [];\n\n\t\t\tfor ( let i in items ) {\n\t\t\t\tif ( items[i].isType( type ) ) {\n\t\t\t\t\tselected.push( items[i] );\n }\n\t\t\t}\n\n\t\t\treturn selected;\n },\n\n getVisibleItems: function() {\n let visible = [];\n for ( let i in items ) {\n if ( items[i].isVisible() ) {\n visible.push( items[i] );\n }\n }\n return visible;\n },\n\n getSelectedItems: function() {\n let selected = [];\n\n for ( let i in items ) {\n if ( items[i].isVisible() && items[i].isSelected() ) {\n selected.push( items[i] );\n }\n }\n\n return selected;\n },\n\n addFilter: function( filter, type ) {\n if ( type === 'secondary' ) {\n currentSecondaryFilter = filter;\n }\n else {\n currentFilter = filter;\n }\n },\n\n applyFilters: function() {\n for ( let i in items ) {\n if ( items[i] ) {\n if ( items[i].matchFilter( currentFilter ) && items[i].matchSecondaryFilter( currentSecondaryFilter ) ) {\n items[i].show();\n }\n else {\n items[i].hide();\n }\n }\n\n }\n }\n };\n};\n\nexport default RowsCollection;","/* global WPHB_Admin */\n/* global wphb */\n\n/**\n * Asset Optimization scripts.\n *\n * @package Hummingbird\n */\n\nimport Fetcher from '../utils/fetcher';\nimport { __, getLink } from '../utils/helpers';\nimport Row from '../minification/Row';\nimport RowsCollection from '../minification/RowsCollection';\nimport Scanner from '../minification/Scanner';\n\n( function( $ ) {\n\t'use strict';\n\n\tWPHB_Admin.minification = {\n\n\t\tmodule: 'minification',\n\t\tmoduleNoticeId: 'wphb-notice-minification-advanced-settings-updated',\n\t\t$checkFilesButton: null,\n\t\t$checkFilesResultsContainer: null,\n\t\tcheckURLSList: null,\n\t\tcheckedURLS: 0,\n\n\t\tinit() {\n\t\t\tconst self = this;\n\n\t\t\t// Init files scanner.\n\t\t\tthis.scanner = new Scanner(\n\t\t\t\twphb.minification.get.totalSteps,\n\t\t\t\twphb.minification.get.currentScanStep\n\t\t\t);\n\t\t\tthis.scanner.onFinishStep = this.updateProgressBar;\n\n\t\t\t// Check files button.\n\t\t\tthis.$checkFilesButton = $( '#check-files' );\n\n\t\t\tif ( this.$checkFilesButton.length ) {\n\t\t\t\tthis.$checkFilesButton.click( function( e ) {\n\t\t\t\t\te.preventDefault();\n\n\t\t\t\t\twindow.SUI.openModal( 'check-files-modal', 'wpbody-content', undefined, false );\n\n\t\t\t\t\t$( this ).attr( 'disabled', true );\n\t\t\t\t\tself.updateProgressBar( self.scanner.getProgress() );\n\t\t\t\t\tself.scanner.scan();\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t// Cancel scan button.\n\t\t\t$( 'body' ).on( 'click', '#cancel-minification-check', ( e ) => {\n\t\t\t\te.preventDefault();\n\t\t\t\tthis.updateProgressBar( 0, true );\n\t\t\t\tthis.scanner.cancel()\n\t\t\t\t\t.then( () => {\n\t\t\t\t\t\twindow.location.href = getLink( 'minification' );\n\t\t\t\t\t} );\n\t\t\t} );\n\n\t\t\t// Track changes done to minification files.\n\t\t\t$( ':input.toggle-checkbox, :input[id*=\"wphb-minification-include\"]' )\n\t\t\t\t.on( 'change', function() {\n\t\t\t\t\tconst row = $( this ).closest( '.wphb-border-row' );\n\t\t\t\t\tconst rowStatus = row.find( 'span.wphb-row-status-changed' );\n\t\t\t\t\t$( this ).toggleClass( 'changed' );\n\t\t\t\t\tif ( row.find( '.changed' ).length !== 0 ) {\n\t\t\t\t\t\trowStatus.removeClass( 'sui-hidden' );\n\t\t\t\t\t} else {\n\t\t\t\t\t\trowStatus.addClass( 'sui-hidden' );\n\t\t\t\t\t}\n\t\t\t\t\tconst changed = $( '.wphb-minification-files' ).find( 'input.changed' );\n\t\t\t\t\tif ( changed.length !== 0 ) {\n\t\t\t\t\t\t$( '#wphb-publish-changes' ).removeClass( 'disabled' );\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$( '#wphb-publish-changes' ).addClass( 'disabled' );\n\t\t\t\t\t}\n\t\t\t\t} );\n\n\t\t\t// Enable/disable bulk update button.\n\t\t\t$( ':input.wphb-minification-file-selector, :input.wphb-minification-bulk-file-selector' ).on( 'change', function() {\n\t\t\t\t$( this ).toggleClass( 'changed' );\n\t\t\t\tconst changed = $( '.wphb-minification-files' ).find( 'input.changed' );\n\t\t\t\tconst bulkUpdateButton = $( '.sui-actions-left > #bulk-update' );\n\n\t\t\t\tif ( changed.length === 0 ) {\n\t\t\t\t\tbulkUpdateButton.addClass( 'button-notice disabled' );\n\t\t\t\t} else {\n\t\t\t\t\tbulkUpdateButton.removeClass( 'button-notice disabled' );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t// Show warning before switching to advanced/basic view\n\t\t\tconst switchButton = document.getElementById( 'wphb-switch-button' );\n\t\t\tif ( switchButton ) {\n\t\t\t\tswitchButton.addEventListener( 'change', function( e ) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tconst checked = e.target.checked;\n\n\t\t\t\t\tif ( true === checked ) {\n\t\t\t\t\t\twindow.SUI.openModal( 'wphb-advanced-minification-modal', 'wpbody-content', undefined, false );\n\t\t\t\t\t} else {\n\t\t\t\t\t\twindow.SUI.openModal( 'wphb-basic-minification-modal', 'wpbody-content', undefined, false );\n\t\t\t\t\t}\n\n\t\t\t\t\te.target.checked = ! checked;\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t// Filter action button on Asset Optimization page\n\t\t\t$( '#wphb-minification-filter-button' ).on( 'click', function( e ) {\n\t\t\t\t$( '.wphb-minification-filter' ).toggle( 'slow' );\n\t\t\t\t$( '#wphb-minification-filter-button' ).toggleClass( 'active' );\n\t\t\t} );\n\n\t\t\t// Discard changes button click\n\t\t\t$( '.wphb-discard' ).on( 'click', function( e ) {\n\t\t\t\te.preventDefault();\n\n\t\t\t\tif ( confirm( __( 'discardAlert' ) ) ) {\n\t\t\t\t\tlocation.reload();\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t} );\n\n\t\t\t// Enable discard button on any change\n\t\t\t$( '.wphb-enqueued-files input' ).on( 'change', function() {\n\t\t\t\t$( '.wphb-discard' ).attr( 'disabled', false );\n\t\t\t} );\n\n\t\t\t// CDN checkbox update status\n\t\t\tconst checkboxes = $( 'input[type=checkbox][name=use_cdn]' );\n\t\t\tcheckboxes.change( function() {\n\t\t\t\t$( '#cdn_file_exclude' ).toggleClass( 'sui-hidden' );\n\t\t\t\tconst cdnValue = $( this ).is( ':checked' );\n\n\t\t\t\t// Handle two CDN checkboxes on Asset Optimization page\n\t\t\t\tcheckboxes.each( function() {\n\t\t\t\t\tthis.checked = cdnValue;\n\t\t\t\t} );\n\n\t\t\t\t// Update CDN status\n\t\t\t\tFetcher.minification.toggleCDN( cdnValue )\n\t\t\t\t\t.then( () => {\n\t\t\t\t\t\tWPHB_Admin.notices.show( self.moduleNoticeId, true );\n\t\t\t\t\t} );\n\t\t\t} );\n\n\t\t\t// Exclude file buttons.\n\t\t\tconst excludeButtons = $( '.wphb-minification-exclude > :input.toggle-checkbox' );\n\t\t\texcludeButtons.on( 'change', function() {\n\t\t\t\tconst row = $( this ).closest( '.wphb-border-row' );\n\t\t\t\trow.toggleClass( 'disabled' );\n\t\t\t\tconst label = $( \"label[for='\" + $( this ).attr( 'id' ) + \"']\" );\n\t\t\t\tif ( label.hasClass( 'fileIncluded' ) ) {\n\t\t\t\t\tlabel.attr( 'data-tooltip', wphb.strings.includeFile );\n\t\t\t\t\tlabel.removeClass( 'fileIncluded' );\n\t\t\t\t} else {\n\t\t\t\t\tlabel.attr( 'data-tooltip', wphb.strings.excludeFile );\n\t\t\t\t\tlabel.addClass( 'fileIncluded' );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Regenerate individual file.\n\t\t\t *\n\t\t\t * @since 1.9.2\n\t\t\t */\n\t\t\t$( '.wphb-compressed .wphb-filename-extension' ).on( 'click', function() {\n\t\t\t\tconst row = $( this ).closest( '.wphb-border-row' );\n\n\t\t\t\trow.find( '.fileinfo-group' ).removeClass( 'wphb-compressed' );\n\n\t\t\t\trow.find( '.wphb-row-status' )\n\t\t\t\t\t.removeClass( 'sui-hidden wphb-row-status-changed' )\n\t\t\t\t\t.addClass( 'wphb-row-status-queued sui-tooltip-constrained' )\n\t\t\t\t\t.attr( 'data-tooltip', wphb.strings.queuedTooltip )\n\t\t\t\t\t.find( 'i' ).attr( 'class', 'sui-icon-loader sui-loading' );\n\n\t\t\t\tFetcher.minification.resetAsset( row.attr( 'data-filter' ) );\n\t\t\t} );\n\n\t\t\t$( 'input[type=checkbox][name=debug_log]' ).change( function() {\n\t\t\t\tconst enabled = $( this ).is( ':checked' );\n\t\t\t\tFetcher.minification.toggleLog( enabled )\n\t\t\t\t\t.then( () => {\n\t\t\t\t\t\tWPHB_Admin.notices.show( self.moduleNoticeId, true );\n\t\t\t\t\t\tif ( enabled ) {\n\t\t\t\t\t\t\t$( '.wphb-logging-box' ).show();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$( '.wphb-logging-box' ).hide();\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Save critical css file\n\t\t\t */\n\t\t\t$( '#wphb-minification-tools-form' ).on( 'submit', function( e ) {\n\t\t\t\te.preventDefault();\n\n\t\t\t\tconst spinner = $( this ).find( '.spinner' );\n\t\t\t\tspinner.addClass( 'visible' );\n\n\t\t\t\tFetcher.minification.saveCriticalCss( $( this ).serialize() )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\tspinner.removeClass( 'visible' );\n\t\t\t\t\t\tif ( 'undefined' !== typeof response && response.success ) {\n\t\t\t\t\t\t\tWPHB_Admin.notices.show( self.moduleNoticeId, true, 'success', response.message );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tWPHB_Admin.notices.show( self.moduleNoticeId, true, 'error', response.message );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Parse custom asset dir input\n\t\t\t *\n\t\t\t * @since 1.9\n\t\t\t */\n\t\t\tconst textField = document.getElementById( 'file_path' );\n\t\t\tif ( null !== textField ) {\n\t\t\t\ttextField.onchange = function( e ) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tFetcher.minification.updateAssetPath( $( this ).val() )\n\t\t\t\t\t\t.then( () => {\n\t\t\t\t\t\t\tWPHB_Admin.notices.show( self.moduleNoticeId, true, 'success' );\n\t\t\t\t\t\t} );\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Asset optimization network settings page.\n\t\t\t *\n\t\t\t * @since 2.0.0\n\t\t\t */\n\n\t\t\t// Show/hide settings, based on checkbox value.\n\t\t\t$( '#wphb-network-ao' ).on( 'click', function() {\n\t\t\t\t$( '.sui-border-frame:first-of-type' ).toggleClass( 'sui-hidden' );\n\t\t\t} );\n\n\t\t\t// Handle settings select.\n\t\t\t$( '#wphb-box-minification-network-settings' ).on( 'change', 'input[type=radio]', function( e ) {\n\t\t\t\tconst divs = document.querySelectorAll( 'input[name=' + e.target.name + ']' );\n\n\t\t\t\t// Toggle logs frame.\n\t\t\t\tif ( 'log' === e.target.name ) {\n\t\t\t\t\t$( '.wphb-logs-frame' ).toggle( e.target.value );\n\t\t\t\t}\n\n\t\t\t\tfor ( let i = 0; i < divs.length; ++i ) {\n\t\t\t\t\tdivs[ i ].parentNode.classList.remove( 'active' );\n\t\t\t\t}\n\n\t\t\t\te.target.parentNode.classList.add( 'active' );\n\t\t\t} );\n\n\t\t\t// Submit settings.\n\t\t\t$( '#wphb-ao-network-settings' ).on( 'click', function( e ) {\n\t\t\t\te.preventDefault();\n\n\t\t\t\tconst spinner = $( '.sui-box-footer' ).find( '.spinner' );\n\t\t\t\tspinner.addClass( 'visible' );\n\n\t\t\t\tconst form = $( '#ao-network-settings-form' ).serialize();\n\t\t\t\tFetcher.minification.saveNetworkSettings( form )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\tspinner.removeClass( 'visible' );\n\t\t\t\t\t\tif ( 'undefined' !== typeof response && response.success ) {\n\t\t\t\t\t\t\tWPHB_Admin.notices.show( self.moduleNoticeId, true, 'success' );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tWPHB_Admin.notices.show( self.moduleNoticeId, true, 'error', wphb.strings.errorSettingsUpdate );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Register exclude CDN select and submit settings.\n\t\t\t *\n\t\t\t * @since 2.4.0\n\t\t\t */\n\t\t\tconst excludeCDN = $( '#cdn_exclude' );\n\t\t\texcludeCDN.SUIselect2();\n\n\t\t\t$( '#wphb-ao-settings-update' ).on( 'click', function( e ) {\n\t\t\t\te.preventDefault();\n\n\t\t\t\tconst spinner = $( '.sui-box-footer' ).find( '.spinner' );\n\t\t\t\tspinner.addClass( 'visible' );\n\n\t\t\t\tconst selected = excludeCDN.find( ':selected' );\n\t\t\t\tlet data = { scripts: [], styles: [] };\n\t\t\t\tfor ( let i = 0; i < selected.length; ++i ) {\n\t\t\t\t\tdata[ selected[ i ].dataset.type ].push( selected[ i ].value );\n\t\t\t\t}\n\n\t\t\t\tFetcher.minification.updateExcludeList( JSON.stringify( data ) )\n\t\t\t\t\t.then( () => {\n\t\t\t\t\t\tspinner.removeClass( 'visible' );\n\t\t\t\t\t\tWPHB_Admin.notices.show( self.moduleNoticeId, true, 'success' );\n\t\t\t\t\t} );\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Asset Optimization filters\n\t\t\t *\n\t\t\t * @type {RowsCollection|*}\n\t\t\t */\n\t\t\tthis.rowsCollection = new WPHB_Admin.minification.RowsCollection();\n\n\t\t\tconst rows = $( '.wphb-border-row' );\n\n\t\t\trows.each( function( index, row ) {\n\t\t\t\tlet _row;\n\t\t\t\tif ( $( row ).data( 'filter-secondary' ) ) {\n\t\t\t\t\t_row = new WPHB_Admin.minification.Row(\n\t\t\t\t\t\t$( row ), $( row ).data( 'filter' ),\n\t\t\t\t\t\t$( row ).data( 'filter-secondary' )\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\t_row = new WPHB_Admin.minification.Row( $( row ), $( row ).data( 'filter' ) );\n\t\t\t\t}\n\t\t\t\tself.rowsCollection.push( _row );\n\t\t\t} );\n\n\t\t\t// Filter search box\n\t\t\tconst filterInput = $( '#wphb-s' );\n\t\t\t// Prevent enter submitting form to rescan files.\n\t\t\tfilterInput.keydown( function( e ) {\n\t\t\t\tif ( 13 === e.keyCode ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t} );\n\t\t\tfilterInput.keyup( function() {\n\t\t\t\tself.rowsCollection.addFilter( $( this ).val(), 'primary' );\n\t\t\t\tself.rowsCollection.applyFilters();\n\t\t\t} );\n\n\t\t\t// Filter dropdown\n\t\t\t$( '#wphb-secondary-filter' ).change( function() {\n\t\t\t\tself.rowsCollection.addFilter( $( this ).val(), 'secondary' );\n\t\t\t\tself.rowsCollection.applyFilters();\n\t\t\t} );\n\n\t\t\t// Refresh rows on any filter change\n\t\t\t$( '.filter-toggles' ).change( function() {\n\t\t\t\tconst element = $( this );\n\t\t\t\tconst what = element.data( 'toggles' );\n\t\t\t\tconst value = element.prop( 'checked' );\n\t\t\t\tconst visibleItems = self.rowsCollection.getVisibleItems();\n\n\t\t\t\tfor ( const i in visibleItems ) {\n\t\t\t\t\tvisibleItems[ i ].change( what, value );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t// Files selectors\n\t\t\tconst filesList = $( 'input.wphb-minification-file-selector' );\n\t\t\tfilesList.on( 'click', function() {\n\t\t\t\tconst $this = $( this );\n\t\t\t\tconst element = self.rowsCollection.getItemById( $this.data( 'type' ), $this.data( 'handle' ) );\n\t\t\t\tif ( ! element ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( $this.is( ':checked' ) ) {\n\t\t\t\t\telement.select();\n\t\t\t\t} else {\n\t\t\t\t\telement.unSelect();\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Handle select/deselect of all files of a certain type for\n\t\t\t * use on bulk update.\n\t\t\t *\n\t\t\t * @type {*|jQuery|HTMLElement}\n\t\t\t */\n\t\t\tconst selectAll = $( '.wphb-minification-bulk-file-selector' );\n\t\t\tselectAll.click( function() {\n\t\t\t\tconst $this = $( this );\n\t\t\t\tconst items = self.rowsCollection.getItemsByDataType( $this.attr( 'data-type' ) );\n\t\t\t\tfor ( const i in items ) {\n\t\t\t\t\tif ( items.hasOwnProperty( i ) ) {\n\t\t\t\t\t\tif ( $this.is( ':checked' ) ) {\n\t\t\t\t\t\t\titems[ i ].select();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\titems[ i ].unSelect();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t/* Show details of minification row on mobile devices */\n\t\t\t$( 'body' ).on( 'click', '.wphb-border-row', function() {\n\t\t\t\tif ( window.innerWidth < 783 ) {\n\t\t\t\t\t$( this ).find( '.wphb-minification-row-details' ).toggle();\n\t\t\t\t\t$( this ).find( '.fileinfo-group' ).toggleClass( 'opened' );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Catch window resize and revert styles for responsive dive\n\t\t\t * 1/4 of a second should be enough to trigger during device\n\t\t\t * rotations (from portrait to landscape mode)\n\t\t\t *\n\t\t\t * @type {debounced}\n\t\t\t */\n\t\t\tconst minificationResizeRows = _.debounce( function() {\n\t\t\t\tif ( window.innerWidth >= 783 ) {\n\t\t\t\t\t$( '.wphb-minification-row-details' ).css( 'display', 'flex' );\n\t\t\t\t} else {\n\t\t\t\t\t$( '.wphb-minification-row-details' ).css( 'display', 'none' );\n\t\t\t\t}\n\t\t\t}, 250 );\n\n\t\t\twindow.addEventListener( 'resize', minificationResizeRows );\n\n\t\t\treturn this;\n\t\t},\n\n\t\tupdateProgressBar( progress, cancel = false ) {\n\t\t\tif ( progress > 100 ) {\n\t\t\t\tprogress = 100;\n\t\t\t}\n\t\t\t// Update progress bar\n\t\t\t$( '.sui-progress-block .sui-progress-text span' ).text( progress + '%' );\n\t\t\t$( '.sui-progress-block .sui-progress-bar span' ).width( progress + '%' );\n\t\t\tif ( progress >= 90 ) {\n\t\t\t\t$( '.sui-progress-state .sui-progress-state-text' ).text( 'Finalizing...' );\n\t\t\t}\n\t\t\tif ( cancel ) {\n\t\t\t\t$( '.sui-progress-state .sui-progress-state-text' ).text( 'Cancelling...' );\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Switch from advanced to basic view.\n\t\t * Called from switch view modal.\n\t\t *\n\t\t * @param {string} mode\n\t\t */\n\t\tswitchView( mode ) {\n\t\t\tFetcher.minification\n\t\t\t\t.toggleView( mode )\n\t\t\t\t.then( () => {\n\t\t\t\t\twindow.location.href = getLink( 'minification' );\n\t\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * Go to the Asset Optimization files page.\n\t\t *\n\t\t * @since 1.9.2\n\t\t * @since 2.1.0 Added show_tour parameter.\n\t\t *\n\t\t * @param {boolean} hideTour\n\t\t */\n\t\tgoToSettings( hideTour = true ) {\n\t\t\twindow.SUI.closeModal();\n\n\t\t\tif ( ! hideTour ) {\n\t\t\t\t// Show the modal.\n\t\t\t\twindow.SUI.openModal( 'wphb-minification-tour', 'wpbody-content', undefined, false );\n\t\t\t}\n\n\t\t\tFetcher.minification\n\t\t\t\t.toggleCDN( $( 'input#enable_cdn' ).is( ':checked' ) )\n\t\t\t\t.then( () => {\n\t\t\t\t\tif ( hideTour ) {\n\t\t\t\t\t\twindow.location.href = getLink( 'minification' );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * Skip asset optimization tour.\n\t\t *\n\t\t * @since 2.1.0\n\t\t */\n\t\tskipTour() {\n\t\t\tFetcher.minification.skipTour()\n\t\t\t\t.then( () => {\n\t\t\t\t\twindow.location.reload();\n\t\t\t\t} );\n\t\t},\n\t}; // End WPHB_Admin.minification\n\n\tWPHB_Admin.minification.Row = Row;\n\tWPHB_Admin.minification.RowsCollection = RowsCollection;\n}( jQuery ) );\n","/* global WPHB_Admin */\nimport Fetcher from '../utils/fetcher';\n\nconst MinificationScanner = ( totalSteps, currentStep ) => {\n\ttotalSteps = parseInt( totalSteps );\n\tcurrentStep = parseInt( currentStep );\n\tlet cancelling = false;\n\n\tconst obj = {\n\t\tscan() {\n\t\t\tconst remainingSteps = totalSteps - currentStep;\n\t\t\tif ( currentStep !== 0 ) {\n\t\t\t\t// Scan started on a previous page load\n\t\t\t\tstep( remainingSteps );\n\t\t\t} else {\n\t\t\t\tFetcher.minification.startCheck()\n\t\t\t\t\t.then( () => {\n\t\t\t\t\t\tstep( remainingSteps );\n\t\t\t\t\t} );\n\t\t\t}\n\t\t},\n\t\tcancel() {\n\t\t\tcancelling = true;\n\t\t\treturn Fetcher.minification.cancelScan();\n\t\t},\n\t\tgetProgress() {\n\t\t\tif ( cancelling ) {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t\tconst remainingSteps = totalSteps - currentStep;\n\t\t\treturn Math.min( Math.round( ( parseInt( ( totalSteps - remainingSteps ) ) * 100 ) / totalSteps ), 99 );\n\t\t},\n\t\t// Overridable functions\n\t\tonFinishStep( progress ) {},\n\t\tonFinish( response ) {\n\t\t\tWPHB_Admin.minification.updateProgressBar( 100 );\n\n\t\t\tif ( 'undefined' !== typeof response.assets_msg ) {\n\t\t\t\tjQuery( '.wphb-assets-modal' ).find( '#assetsFound' ).html( response.assets_msg );\n\t\t\t}\n\n\t\t\twindow.SUI.closeModal(); // Hide the check-files-modal modal.\n\t\t\twindow.SUI.openModal( 'wphb-assets-modal', 'wpbody-content', undefined, false );\n\t\t},\n\t};\n\n\t/**\n\t * Execute a scan step recursively\n\t *\n\t * Private to avoid overrdings\n\t *\n\t * @param {number} remainingSteps\n\t */\n\tconst step = function( remainingSteps ) {\n\t\tif ( remainingSteps >= 0 ) {\n\t\t\tcurrentStep = totalSteps - remainingSteps;\n\t\t\tFetcher.minification.checkStep( currentStep )\n\t\t\t\t.then( () => {\n\t\t\t\t\tremainingSteps = remainingSteps - 1;\n\t\t\t\t\tobj.onFinishStep( obj.getProgress() );\n\t\t\t\t\tstep( remainingSteps );\n\t\t\t\t} );\n\t\t} else {\n\t\t\tFetcher.minification.finishCheck()\n\t\t\t\t.then( ( response ) => {\n\t\t\t\t\tobj.onFinish( response );\n\t\t\t\t} );\n\t\t}\n\t};\n\n\treturn obj;\n};\n\nexport default MinificationScanner;\n"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./_src/js/utils/fetcher.js","webpack:///./node_modules/lodash/_baseGetTag.js","webpack:///./node_modules/lodash/_root.js","webpack:///./node_modules/lodash/isObject.js","webpack:///./node_modules/lodash/isArrayLike.js","webpack:///./node_modules/lodash/isObjectLike.js","webpack:///./node_modules/lodash/_assignValue.js","webpack:///./node_modules/lodash/_baseAssignValue.js","webpack:///./node_modules/lodash/_defineProperty.js","webpack:///./node_modules/lodash/isFunction.js","webpack:///./node_modules/lodash/_Symbol.js","webpack:///./node_modules/lodash/_freeGlobal.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/lodash/eq.js","webpack:///./node_modules/lodash/identity.js","webpack:///./node_modules/lodash/isLength.js","webpack:///./node_modules/lodash/_isIndex.js","webpack:///./node_modules/lodash/_isPrototype.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/lodash/assign.js","webpack:///./node_modules/lodash/_getNative.js","webpack:///./node_modules/lodash/_baseIsNative.js","webpack:///./node_modules/lodash/_getRawTag.js","webpack:///./node_modules/lodash/_objectToString.js","webpack:///./node_modules/lodash/_isMasked.js","webpack:///./node_modules/lodash/_coreJsData.js","webpack:///./node_modules/lodash/_toSource.js","webpack:///./node_modules/lodash/_getValue.js","webpack:///./node_modules/lodash/_copyObject.js","webpack:///./node_modules/lodash/_createAssigner.js","webpack:///./node_modules/lodash/_baseRest.js","webpack:///./node_modules/lodash/_overRest.js","webpack:///./node_modules/lodash/_apply.js","webpack:///./node_modules/lodash/_setToString.js","webpack:///./node_modules/lodash/_baseSetToString.js","webpack:///./node_modules/lodash/constant.js","webpack:///./node_modules/lodash/_shortOut.js","webpack:///./node_modules/lodash/_isIterateeCall.js","webpack:///./node_modules/lodash/keys.js","webpack:///./node_modules/lodash/_arrayLikeKeys.js","webpack:///./node_modules/lodash/_baseTimes.js","webpack:///./node_modules/lodash/isArguments.js","webpack:///./node_modules/lodash/_baseIsArguments.js","webpack:///./node_modules/lodash/isArray.js","webpack:///./node_modules/lodash/isBuffer.js","webpack:///./node_modules/lodash/stubFalse.js","webpack:///./node_modules/lodash/isTypedArray.js","webpack:///./node_modules/lodash/_baseIsTypedArray.js","webpack:///./node_modules/lodash/_baseUnary.js","webpack:///./node_modules/lodash/_nodeUtil.js","webpack:///./node_modules/lodash/_baseKeys.js","webpack:///./node_modules/lodash/_nativeKeys.js","webpack:///./node_modules/lodash/_overArg.js","webpack:///./node_modules/es6-promise/dist/es6-promise.js","webpack:///./node_modules/process/browser.js","webpack:///./_src/js/app.js","webpack:///./_src/js/modules/admin-main.js","webpack:///./_src/js/modules/admin-performance.js","webpack:///./_src/js/modules/admin-caching.js","webpack:///./_src/js/modules/admin-dashboard.js","webpack:///./_src/js/modules/admin-dashboard-cloudflare.js","webpack:///./_src/js/modules/admin-uptime.js","webpack:///./_src/js/modules/admin-cloudflare.js","webpack:///./_src/js/modules/admin-advanced.js","webpack:///./_src/js/modules/admin-settings.js","webpack:///./_src/js/utils/helpers.js","webpack:///./_src/js/minification/Row.js","webpack:///./_src/js/minification/RowsCollection.js","webpack:///./_src/js/modules/admin-minification.js","webpack:///./_src/js/minification/Scanner.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","HBFetcher","fetchUrl","ajaxurl","fetchNonce","wphb","nonces","HBFetchNonce","request","action","data","method","nonce","args","url","Promise","require","resolve","reject","jQuery","ajax","done","fail","then","response","checkStatus","methods","notice","dismiss","id","actionPrefix","dismissCloudflareDash","caching","activate","saveSettings","clearCache","setExpiration","expiry_times","setServer","reloadSnippets","type","updateHtaccess","recheckExpiry","clearCacheForPost","postId","cancelPreload","cloudflare","connect","step","formData","cfData","purgeCache","recheckZones","dashboard","skipSetup","minification","toggleCDN","toggleLog","toggleView","startCheck","checkStep","finishCheck","cancelScan","saveCriticalCss","form","updateAssetPath","resetAsset","saveNetworkSettings","settings","skipTour","updateExcludeList","performance","runTest","savePerformanceTestSettings","advanced","deleteSelectedData","scheduleCleanup","actionPrefixPro","logger","clear","form_data","resetSettings","common","addRecipient","setting","email","saveReportsSettings","uptime","resendConfirmationEmail","assign","this","JSON","parse","success","error","Error","message","getRawTag","objectToString","symToStringTag","undefined","freeGlobal","freeSelf","self","root","Function","isFunction","isLength","length","baseAssignValue","eq","objValue","getNative","func","e","baseGetTag","isObject","tag","global","g","window","other","reIsUint","test","objectProto","Ctor","constructor","webpackPolyfill","deprecate","paths","children","assignValue","copyObject","createAssigner","isArrayLike","isPrototype","keys","source","baseIsNative","getValue","isMasked","toSource","reIsHostCtor","funcProto","funcToString","toString","reIsNative","RegExp","replace","nativeObjectToString","isOwn","unmasked","result","uid","coreJsData","maskSrcKey","exec","IE_PROTO","props","customizer","isNew","index","newValue","baseRest","isIterateeCall","assigner","sources","guard","identity","overRest","setToString","start","apply","nativeMax","Math","max","transform","arguments","array","Array","otherArgs","thisArg","baseSetToString","shortOut","constant","string","nativeNow","Date","now","count","lastCalled","stamp","remaining","isIndex","arrayLikeKeys","baseKeys","baseTimes","isArguments","isArray","isBuffer","isTypedArray","inherited","isArr","isArg","isBuff","isType","skipIndexes","String","push","iteratee","baseIsArguments","isObjectLike","propertyIsEnumerable","stubFalse","freeExports","nodeType","freeModule","Buffer","baseIsTypedArray","baseUnary","nodeUtil","nodeIsTypedArray","typedArrayTags","freeProcess","process","types","binding","nativeKeys","overArg","arg","factory","x","len","vertxNext","customSchedulerFn","asap","callback","queue","flush","scheduleFlush","browserWindow","browserGlobal","BrowserMutationObserver","MutationObserver","WebKitMutationObserver","isNode","isWorker","Uint8ClampedArray","importScripts","MessageChannel","useSetTimeout","globalSetTimeout","setTimeout","channel","iterations","observer","node","onFulfillment","onRejection","parent","child","noop","PROMISE_ID","makePromise","_state","invokeCallback","_result","subscribe","resolve$1","promise","nextTick","document","createTextNode","observe","characterData","port1","onmessage","port2","postMessage","vertx","runOnLoop","runOnContext","attemptVertx","random","substring","handleMaybeThenable","maybeThenable","then$$1","thenable","fulfill","reason","handleOwnThenable","sealed","fulfillmentHandler","rejectionHandler","tryThen","_label","handleForeignThenable","TypeError","publishRejection","_onerror","publish","_subscribers","subscribers","settled","detail","hasCallback","succeeded","Enumerator","Constructor","input","_instanceConstructor","_remaining","_enumerate","_eachEntry","entry","resolve$$1","_then","didError","_settledAt","Promise$1","_willSettleAt","state","enumerator","resolver","needsResolver","initializePromise","needsNew","catch","finally","all","entries","race","_","_setScheduler","scheduleFn","_setAsap","asapFn","_asap","polyfill","local","P","promiseToString","cast","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","clearTimeout","currentQueue","draining","queueIndex","cleanUpNextTick","concat","drainQueue","timeout","run","marker","runClearTimeout","Item","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","cwd","chdir","dir","umask","ready","WPHB_Admin","init","$","querySelector","addEventListener","noticeId","parentElement","getAttribute","Fetcher","preventDefault","target","dataset","notices","show","location","search","includes","reportingEmail","emailField","closest","val","removeClass","find","remove","userRow","append","html","attr","class","strings","resendEmail","stringify","appendTo","slideUp","SUI","closeModal","hide","successRecipientAdded","addClass","body","serialize","enabled","text","recipientNotice","confirmRecipient","errorSettingsUpdate","row","slideDown","toggleClass","change","freq","initModule","getModule","top","successUpdate","scrollTo","iteration","progress","timer","pressedKeys","key_timer","wphbPerformanceStrings","wphbSetInterval","onkeyup","clearInterval","event","keyCode","getElementById","style","display","openModal","performanceTest","finishedTestURLsLink","hash","hasClass","trigger","animate","scrollTop","offset","google","wphbHistoricFieldData","charts","load","packages","setOnLoadCallback","drawChart","fcp","resize","fid","otherClass","parentNode","classList","add","divs","querySelectorAll","URL","searchParams","set","setInterval","redirect","updateProgressBar","finished","progressStatus","scanRunning","scanAnalyzing","scanWaiting","scanComplete","chartID","visualization","arrayToDataTable","role","fast","generateTooltip","fast_desc","average","average_desc","slow","slow_desc","BarChart","draw","tooltip","isHtml","colors","chartArea","width","hAxis","baselineColor","gridlines","color","textPosition","isStacked","height","legend","selectedServer","serverSelector","serverInstructions","snippets","selectedExpiryType","pageCachingForm","rssForm","gravatarDiv","cachingHeader","expiryForm","settingsForm","wphbCachingStrings","setCloudflare","intervalToggle","toggle","reload","preloadToggle","each","showServerInstructions","apache","nginx","hideCurrentInstructions","getExpiryTimes","spinner","button","successRecheckStatus","reloadExpiryTags","expiry_values","errorRecheckStatus","htaccessUpdated","htaccessUpdatedFailed","toLowerCase","rss_expiry_time","abs","detection","successPageCachePurge","successGravatarPurge","errorCachePurge","k","server","code","expiry_javascript","expiry_css","expiry_media","expiry_images","wphbDashboardStrings","click","href","cloudFlareDashNotice","runPerformanceTest","DashboardCloudFlare","currentStep","apiKey","$stepsContainer","$infoBox","$spinner","$deactivateButton","$body","renderStep","updateZones","$button","showSpinner","successCloudflarePurge","removeAttr","hideSpinner","template","content","fadeIn","submitStep","bindEvents","$howToInstructions","suiSelect","emptyInfoBox","hideInfoBox","zones","showInfoBox","notice_class","css","$form","newData","nextStep","memoize","compiled","options","evaluate","interpolate","escape","variable","templateSettings","$dataRangeSelector","chartData","downtimeChartData","dataRange","dateFormat","wphbUptimeStrings","$disableUptime","getUrlParameter","is","disableUptimeURL","drawResponseTimeChart","drawDowntimeChart","currentTarget","DataTable","addColumn","chartArray","round","createUptimeTooltip","addRows","left","curveType","position","vAxis","format","minorGridlines","viewWindow","min","series","0","axis","axes","y","Resp","label","chart","AreaChart","container","Timeline","dataTable","colorMap","Down","Unknown","Up","getNumberOfRows","timeline","showBarLabels","showRowLabels","barLabelStyle","fontSize","avoidOverlappingGridLines","origColors","events","bars","getElementsByTagName","forEach","bar","parseFloat","setAttribute","date","responseTime","formatTooltipDate","day","getDate","monthIndex","getMonth","hh","getHours","h","minutes","getMinutes","dd","sParam","sParameterName","sURLVariables","decodeURIComponent","split","cfSetExpiryButton","cfSelector","connected","setExpiry","selector","systemInfoDropdown","showModal","system","urlStrings","fragmentsToggle","items","dialog","db_delete","db_entries","db_backup","modal","confirmDelete","footer","prop","leftString","deleteAll","itemRow","wrap","contrastDiv","confirmReset","urls","getLink","screen","links","Row","_element","_filter","_filter_sec","$el","filter","filterSecondary","selected","visible","$include","$combine","$minify","$posFooter","$defer","$inline","$disableIcon","$selectCheckbox","getElement","getId","getFilter","matchFilter","matchSecondaryFilter","isVisible","isSelected","select","unSelect","what","RowsCollection","currentFilter","currentSecondaryFilter","getItems","getItem","getItemById","getItemsByDataType","getVisibleItems","getSelectedItems","addFilter","applyFilters","MinificationScanner","totalSteps","parseInt","cancelling","obj","scan","remainingSteps","cancel","getProgress","onFinishStep","onFinish","assets_msg","moduleNoticeId","$checkFilesButton","$checkFilesResultsContainer","checkURLSList","checkedURLS","scanner","Scanner","currentScanStep","rowStatus","changed","bulkUpdateButton","switchButton","checked","str","confirm","checkboxes","cdnValue","includeFile","excludeFile","queuedTooltip","textField","onchange","excludeCDN","SUIselect2","scripts","styles","rowsCollection","_row","filterInput","keydown","keyup","element","visibleItems","$this","innerWidth","minificationResizeRows","debounce","switchView","goToSettings","hideTour"],"mappings":"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","file":"wphb-app.min.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 55);\n","/* global ajaxurl */\n/* global wphb */\n\n/**\n * External dependencies\n */\nimport assign from 'lodash/assign';\n\n/**\n * Fetcher.\n *\n * @var {string} wphb.nonces.HBFetchNonce\n * @constructor\n */\nfunction Fetcher() {\n\tconst fetchUrl = ajaxurl;\n\tconst fetchNonce = wphb.nonces.HBFetchNonce;\n\tconst actionPrefix = 'wphb_';\n\tconst actionPrefixPro = 'wphb_pro_';\n\n\t/**\n\t * Request ajax with a promise.\n\t *\n\t * @param {string} action\n\t * @param {Object} data\n\t * @param {string} method\n\t * @return {Promise<any>} Request results.\n\t */\n\tfunction request( action, data = {}, method = 'GET' ) {\n\t\tdata.nonce = fetchNonce;\n\t\tdata.action = action;\n\t\tconst args = { data, method };\n\t\targs.url = fetchUrl;\n\t\tconst Promise = require( 'es6-promise' ).Promise;\n\t\treturn new Promise( ( resolve, reject ) => {\n\t\t\tjQuery.ajax( args ).done( resolve ).fail( reject );\n\t\t} )\n\t\t\t.then( ( response ) => checkStatus( response ) );\n\t}\n\n\tconst methods = {\n\t\t/**\n\t\t * Notices actions.\n\t\t */\n\t\tnotice: {\n\t\t\t/**\n\t\t\t * Dismiss notice\n\t\t\t * @param {string} id\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tdismiss: ( id ) => {\n\t\t\t\tconst action = actionPrefix + 'notice_dismiss';\n\t\t\t\treturn request( action, { id }, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Dismiss CloudFlare dash notice\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tdismissCloudflareDash: () => {\n\t\t\t\tconst action = actionPrefix + 'cf_notice_dismiss';\n\t\t\t\treturn request( action, {}, 'POST' );\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Caching module actions.\n\t\t */\n\t\tcaching: {\n\t\t\t/**\n\t\t\t * Activate browser caching.\n\t\t\t * @since 1.9.0\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tactivate: () => {\n\t\t\t\tconst action = actionPrefix + 'caching_activate';\n\t\t\t\treturn request( action, {}, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Unified save settings method.\n\t\t\t * @since 1.9.0\n\t\t\t * @param {string} module\n\t\t\t * @param {string} data Serialized form data.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tsaveSettings: ( module, data ) => {\n\t\t\t\tconst action = actionPrefix + module + '_save_settings';\n\t\t\t\treturn request( action, { data }, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Clear cache for selected module.\n\t\t\t * @since 1.9.0\n\t\t\t * @param {string} module\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tclearCache: ( module ) => {\n\t\t\t\tconst action = actionPrefix + 'clear_module_cache';\n\t\t\t\treturn request( action, { module }, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Set expiration for browser caching.\n\t\t\t * @param {Object} expiry_times Type expiry times.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tsetExpiration: ( expiry_times ) => {\n\t\t\t\tconst action = actionPrefix + 'caching_set_expiration';\n\t\t\t\treturn request( action, { expiry_times }, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Set server type.\n\t\t\t * @param {string} value Server type.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tsetServer: ( value ) => {\n\t\t\t\tconst action = actionPrefix + 'caching_set_server_type';\n\t\t\t\treturn request( action, { value }, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Reload snippet.\n\t\t\t * @param {string} type Server type.\n\t\t\t * @param {Object} expiry_times Type expiry times.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\treloadSnippets: ( type, expiry_times ) => {\n\t\t\t\tconst action = actionPrefix + 'caching_reload_snippet';\n\t\t\t\treturn request( action, { type, expiry_times }, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Update htaccess file.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tupdateHtaccess: () => {\n\t\t\t\tconst action = actionPrefix + 'caching_update_htaccess';\n\t\t\t\treturn request( action, {}, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Re-check expiry in meta box header button action.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\trecheckExpiry: () => {\n\t\t\t\tconst action = actionPrefix + 'caching_recheck_expiry';\n\t\t\t\treturn request( action, {}, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Clear cache for post.\n\t\t\t * @param {number} postId\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tclearCacheForPost: ( postId ) => {\n\t\t\t\tconst action = actionPrefix + 'gutenberg_clear_post_cache';\n\t\t\t\treturn request( action, { postId }, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Cancel cache preload.\n\t\t\t *\n\t\t\t * @since 2.1.0\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tcancelPreload() {\n\t\t\t\tconst action = actionPrefix + 'preload_cancel';\n\t\t\t\treturn request( action, {}, 'POST' );\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Cloudflare module actions.\n\t\t */\n\t\tcloudflare: {\n\t\t\t/**\n\t\t\t * Connect to Cloudflare.\n\t\t\t * @param {string} step\n\t\t\t * @param {string} formData\n\t\t\t * @param {Array} cfData\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tconnect: ( step, formData, cfData ) => {\n\t\t\t\tconst action = actionPrefix + 'cloudflare_connect';\n\t\t\t\treturn request( action, { step, formData, cfData }, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Set expiry for Cloudflare cache.\n\t\t\t * @param {Object} value Expiry value.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tsetExpiration: ( value ) => {\n\t\t\t\tconst action = actionPrefix + 'cloudflare_set_expiry';\n\t\t\t\treturn request( action, { value }, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Purge Cloudflare cache.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tpurgeCache: () => {\n\t\t\t\tconst action = actionPrefix + 'cloudflare_purge_cache';\n\t\t\t\treturn request( action, {}, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Recheck Cloudflare zones.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\trecheckZones: () => {\n\t\t\t\tconst action = actionPrefix + 'cloudflare_recheck_zones';\n\t\t\t\treturn request( action, {}, 'POST' );\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Dashboard module actions.\n\t\t */\n\t\tdashboard: {\n\t\t\t/**\n\t\t\t * Skip quick setup.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tskipSetup: () => {\n\t\t\t\tconst action = actionPrefix + 'dash_skip_setup';\n\t\t\t\treturn request( action, {}, 'POST' );\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Asset Optimization module actions.\n\t\t */\n\t\tminification: {\n\t\t\t/**\n\t\t\t * Toggle CDN settings.\n\t\t\t * @param {string} value CDN checkbox value.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\ttoggleCDN: ( value ) => {\n\t\t\t\tconst action = actionPrefix + 'minification_toggle_cdn';\n\t\t\t\treturn request( action, { value }, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Toggle logs settings.\n\t\t\t * @param {string} value\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\ttoggleLog: ( value ) => {\n\t\t\t\tconst action = actionPrefix + 'minification_toggle_log';\n\t\t\t\treturn request( action, { value }, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Toggle minification advanced mode.\n\t\t\t * @param {string} value\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\ttoggleView: ( value ) => {\n\t\t\t\tconst action = actionPrefix + 'minification_toggle_view';\n\t\t\t\treturn request( action, { value }, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Start minification check.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tstartCheck: () => {\n\t\t\t\tconst action = actionPrefix + 'minification_start_check';\n\t\t\t\treturn request( action, {}, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Do a step in minification process.\n\t\t\t * @param {number} step\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tcheckStep: ( step ) => {\n\t\t\t\tconst action = actionPrefix + 'minification_check_step';\n\t\t\t\treturn request( action, { step }, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Finish minification process.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tfinishCheck: () => {\n\t\t\t\tconst action = actionPrefix + 'minification_finish_scan';\n\t\t\t\treturn request( action, {}, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Cancel minification scan.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tcancelScan: function cancelScan() {\n\t\t\t\tconst action = actionPrefix + 'minification_cancel_scan';\n\t\t\t\treturn request( action, {}, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Process critical css form.\n\t\t\t * @since 1.8\n\t\t\t * @param {string} form\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tsaveCriticalCss: ( form ) => {\n\t\t\t\tconst action = actionPrefix + 'minification_save_critical_css';\n\t\t\t\treturn request( action, { form }, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Update custom asset path\n\t\t\t * @since 1.9\n\t\t\t * @param {string} value\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tupdateAssetPath: ( value ) => {\n\t\t\t\tconst action = actionPrefix + 'minification_update_asset_path';\n\t\t\t\treturn request( action, { value }, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Reset individual file.\n\t\t\t * @since 1.9.2\n\t\t\t * @param {string} value\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tresetAsset: ( value ) => {\n\t\t\t\tconst action = actionPrefix + 'minification_reset_asset';\n\t\t\t\treturn request( action, { value }, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Save settings in network admin.\n\t\t\t * @since 2.0.0\n\t\t\t * @param {string} settings\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tsaveNetworkSettings: ( settings ) => {\n\t\t\t\tconst action = actionPrefix + 'minification_update_network_settings';\n\t\t\t\treturn request( action, { settings }, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Skip tour.\n\t\t\t *\n\t\t\t * @since 2.1.0\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tskipTour: () => {\n\t\t\t\tconst action = actionPrefix + 'minification_skip_tour';\n\t\t\t\treturn request( action, {}, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Update the CDN exclude list.\n\t\t\t *\n\t\t\t * @since 2.4.0\n\t\t\t * @param {Object} data\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tupdateExcludeList: ( data ) => {\n\t\t\t\tconst action = actionPrefix + 'minification_save_exclude_list';\n\t\t\t\treturn request( action, { data }, 'POST' );\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Performance module actions.\n\t\t */\n\t\tperformance: {\n\t\t\t/**\n\t\t\t * Run performance test.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\trunTest: () => {\n\t\t\t\tconst action = actionPrefix + 'performance_run_test';\n\t\t\t\treturn request( action, {}, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Save performance test settings.\n\t\t\t * @param {string} data From data.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tsavePerformanceTestSettings: ( data ) => {\n\t\t\t\tconst action = actionPrefix + 'performance_save_settings';\n\t\t\t\treturn request( action, { data }, 'POST' );\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Advanced tools module actions.\n\t\t */\n\t\tadvanced: {\n\t\t\t/**\n\t\t\t * Save settings from advanced tools general and db cleanup sections.\n\t\t\t * @param {string} data Type.\n\t\t\t * @param {string} form Serialized form.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tsaveSettings: ( data, form ) => {\n\t\t\t\tconst action = actionPrefix + 'advanced_save_settings';\n\t\t\t\treturn request( action, { data, form }, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Delete selected data from database.\n\t\t\t * @param {string} data\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tdeleteSelectedData: ( data ) => {\n\t\t\t\tconst action = actionPrefix + 'advanced_db_delete_data';\n\t\t\t\treturn request( action, { data }, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Schedule cleanup cron.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tscheduleCleanup: () => {\n\t\t\t\tconst action = actionPrefixPro + 'advanced_db_schedule';\n\t\t\t\treturn request( action, {}, 'POST' );\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Logger module actions.\n\t\t *\n\t\t * @since 1.9.2\n\t\t */\n\t\tlogger: {\n\t\t\t/**\n\t\t\t * Clear logs.\n\t\t\t * @param {string} module Module slug.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tclear: ( module ) => {\n\t\t\t\tconst action = actionPrefix + 'logger_clear';\n\t\t\t\treturn request( action, { module }, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Settings actions.\n\t\t */\n\t\tsettings: {\n\t\t\t/**\n\t\t\t * Save settings from HB admin settings.\n\t\t\t *\n\t\t\t * @param {string} form_data\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tsaveSettings: ( form_data ) => {\n\t\t\t\tconst action = actionPrefix + 'admin_settings_save_settings';\n\t\t\t\treturn request( action, { form_data }, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Reset plugin settings.\n\t\t\t *\n\t\t\t * @since 2.0.0\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tresetSettings: () => {\n\t\t\t\tconst action = actionPrefix + 'reset_settings';\n\t\t\t\treturn request( action, {}, 'POST' );\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Common actions that are used by several modules.\n\t\t *\n\t\t * @since 1.9.3\n\t\t */\n\t\tcommon: {\n\t\t\t/**\n\t\t\t * Add recipient for Performance and Uptime reports.\n\t\t\t *\n\t\t\t * @param {string} module Module name.\n\t\t\t * @param {string} setting Setting name.\n\t\t\t * @param {string} email Email.\n\t\t\t * @param {string} name User.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\taddRecipient: ( module, setting, email, name ) => {\n\t\t\t\tconst action = actionPrefixPro + 'add_recipient';\n\t\t\t\treturn request( action, { module, setting, email, name }, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Save report settings for Performance and Uptime modules.\n\t\t\t *\n\t\t\t * @param {string} module Module name.\n\t\t\t * @param {Array} data From data.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tsaveReportsSettings: ( module, data ) => {\n\t\t\t\tconst action = actionPrefixPro + 'save_report_settings';\n\t\t\t\treturn request( action, { module, data }, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Uptime actions.\n\t\t *\n\t\t * @since 2.3.0\n\t\t */\n\t\tuptime: {\n\t\t\t/**\n\t\t\t * Resend email confirmation.\n\t\t\t *\n\t\t\t * @since 2.3.0\n\t\t\t *\n\t\t\t * @param {string} name JSON encoded recipient name string.\n\t\t\t * @param {string} email JSON encoded recipient email string.\n\t\t\t *\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tresendConfirmationEmail: ( name, email ) => {\n\t\t\t\tconst action = actionPrefixPro + 'resend_confirmation';\n\t\t\t\treturn request( action, { name, email }, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t};\n\n\tassign( this, methods );\n}\n\nconst HBFetcher = new Fetcher();\nexport default HBFetcher;\n\n/**\n * Check status.\n * @param {Object|string} response\n * @return {*} Response\n */\nfunction checkStatus( response ) {\n\tif ( typeof response !== 'object' ) {\n\t\tresponse = JSON.parse( response );\n\t}\n\tif ( response.success ) {\n\t\treturn response.data;\n\t}\n\n\tconst data = response.data || {};\n\tconst error = new Error( data.message || 'Error trying to fetch response from server' );\n\terror.response = response;\n\tthrow error;\n}\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","var assignValue = require('./_assignValue'),\n copyObject = require('./_copyObject'),\n createAssigner = require('./_createAssigner'),\n isArrayLike = require('./isArrayLike'),\n isPrototype = require('./_isPrototype'),\n keys = require('./keys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\nvar assign = createAssigner(function(object, source) {\n if (isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n});\n\nmodule.exports = assign;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n","var baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version v4.2.8+1e68dce6\n */\n\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.ES6Promise = factory());\n}(this, (function () { 'use strict';\n\nfunction objectOrFunction(x) {\n var type = typeof x;\n return x !== null && (type === 'object' || type === 'function');\n}\n\nfunction isFunction(x) {\n return typeof x === 'function';\n}\n\n\n\nvar _isArray = void 0;\nif (Array.isArray) {\n _isArray = Array.isArray;\n} else {\n _isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n}\n\nvar isArray = _isArray;\n\nvar len = 0;\nvar vertxNext = void 0;\nvar customSchedulerFn = void 0;\n\nvar asap = function asap(callback, arg) {\n queue[len] = callback;\n queue[len + 1] = arg;\n len += 2;\n if (len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (customSchedulerFn) {\n customSchedulerFn(flush);\n } else {\n scheduleFlush();\n }\n }\n};\n\nfunction setScheduler(scheduleFn) {\n customSchedulerFn = scheduleFn;\n}\n\nfunction setAsap(asapFn) {\n asap = asapFn;\n}\n\nvar browserWindow = typeof window !== 'undefined' ? window : undefined;\nvar browserGlobal = browserWindow || {};\nvar BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\nvar isNode = typeof self === 'undefined' && typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\n\n// test for web worker but not in IE10\nvar isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';\n\n// node\nfunction useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function () {\n return process.nextTick(flush);\n };\n}\n\n// vertx\nfunction useVertxTimer() {\n if (typeof vertxNext !== 'undefined') {\n return function () {\n vertxNext(flush);\n };\n }\n\n return useSetTimeout();\n}\n\nfunction useMutationObserver() {\n var iterations = 0;\n var observer = new BrowserMutationObserver(flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function () {\n node.data = iterations = ++iterations % 2;\n };\n}\n\n// web worker\nfunction useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = flush;\n return function () {\n return channel.port2.postMessage(0);\n };\n}\n\nfunction useSetTimeout() {\n // Store setTimeout reference so es6-promise will be unaffected by\n // other code modifying setTimeout (like sinon.useFakeTimers())\n var globalSetTimeout = setTimeout;\n return function () {\n return globalSetTimeout(flush, 1);\n };\n}\n\nvar queue = new Array(1000);\nfunction flush() {\n for (var i = 0; i < len; i += 2) {\n var callback = queue[i];\n var arg = queue[i + 1];\n\n callback(arg);\n\n queue[i] = undefined;\n queue[i + 1] = undefined;\n }\n\n len = 0;\n}\n\nfunction attemptVertx() {\n try {\n var vertx = Function('return this')().require('vertx');\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n } catch (e) {\n return useSetTimeout();\n }\n}\n\nvar scheduleFlush = void 0;\n// Decide what async method to use to triggering processing of queued callbacks:\nif (isNode) {\n scheduleFlush = useNextTick();\n} else if (BrowserMutationObserver) {\n scheduleFlush = useMutationObserver();\n} else if (isWorker) {\n scheduleFlush = useMessageChannel();\n} else if (browserWindow === undefined && typeof require === 'function') {\n scheduleFlush = attemptVertx();\n} else {\n scheduleFlush = useSetTimeout();\n}\n\nfunction then(onFulfillment, onRejection) {\n var parent = this;\n\n var child = new this.constructor(noop);\n\n if (child[PROMISE_ID] === undefined) {\n makePromise(child);\n }\n\n var _state = parent._state;\n\n\n if (_state) {\n var callback = arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\n } else {\n subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n}\n\n/**\n `Promise.resolve` returns a promise that will become resolved with the\n passed `value`. It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n resolve(1);\n });\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.resolve(1);\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n @method resolve\n @static\n @param {Any} value value that the returned promise will be resolved with\n Useful for tooling.\n @return {Promise} a promise that will become fulfilled with the given\n `value`\n*/\nfunction resolve$1(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(noop);\n resolve(promise, object);\n return promise;\n}\n\nvar PROMISE_ID = Math.random().toString(36).substring(2);\n\nfunction noop() {}\n\nvar PENDING = void 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\n\nfunction selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n}\n\nfunction cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n}\n\nfunction tryThen(then$$1, value, fulfillmentHandler, rejectionHandler) {\n try {\n then$$1.call(value, fulfillmentHandler, rejectionHandler);\n } catch (e) {\n return e;\n }\n}\n\nfunction handleForeignThenable(promise, thenable, then$$1) {\n asap(function (promise) {\n var sealed = false;\n var error = tryThen(then$$1, thenable, function (value) {\n if (sealed) {\n return;\n }\n sealed = true;\n if (thenable !== value) {\n resolve(promise, value);\n } else {\n fulfill(promise, value);\n }\n }, function (reason) {\n if (sealed) {\n return;\n }\n sealed = true;\n\n reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n reject(promise, error);\n }\n }, promise);\n}\n\nfunction handleOwnThenable(promise, thenable) {\n if (thenable._state === FULFILLED) {\n fulfill(promise, thenable._result);\n } else if (thenable._state === REJECTED) {\n reject(promise, thenable._result);\n } else {\n subscribe(thenable, undefined, function (value) {\n return resolve(promise, value);\n }, function (reason) {\n return reject(promise, reason);\n });\n }\n}\n\nfunction handleMaybeThenable(promise, maybeThenable, then$$1) {\n if (maybeThenable.constructor === promise.constructor && then$$1 === then && maybeThenable.constructor.resolve === resolve$1) {\n handleOwnThenable(promise, maybeThenable);\n } else {\n if (then$$1 === undefined) {\n fulfill(promise, maybeThenable);\n } else if (isFunction(then$$1)) {\n handleForeignThenable(promise, maybeThenable, then$$1);\n } else {\n fulfill(promise, maybeThenable);\n }\n }\n}\n\nfunction resolve(promise, value) {\n if (promise === value) {\n reject(promise, selfFulfillment());\n } else if (objectOrFunction(value)) {\n var then$$1 = void 0;\n try {\n then$$1 = value.then;\n } catch (error) {\n reject(promise, error);\n return;\n }\n handleMaybeThenable(promise, value, then$$1);\n } else {\n fulfill(promise, value);\n }\n}\n\nfunction publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n publish(promise);\n}\n\nfunction fulfill(promise, value) {\n if (promise._state !== PENDING) {\n return;\n }\n\n promise._result = value;\n promise._state = FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n asap(publish, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state !== PENDING) {\n return;\n }\n promise._state = REJECTED;\n promise._result = reason;\n\n asap(publishRejection, promise);\n}\n\nfunction subscribe(parent, child, onFulfillment, onRejection) {\n var _subscribers = parent._subscribers;\n var length = _subscribers.length;\n\n\n parent._onerror = null;\n\n _subscribers[length] = child;\n _subscribers[length + FULFILLED] = onFulfillment;\n _subscribers[length + REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n asap(publish, parent);\n }\n}\n\nfunction publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) {\n return;\n }\n\n var child = void 0,\n callback = void 0,\n detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n}\n\nfunction invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback),\n value = void 0,\n error = void 0,\n succeeded = true;\n\n if (hasCallback) {\n try {\n value = callback(detail);\n } catch (e) {\n succeeded = false;\n error = e;\n }\n\n if (promise === value) {\n reject(promise, cannotReturnOwn());\n return;\n }\n } else {\n value = detail;\n }\n\n if (promise._state !== PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n resolve(promise, value);\n } else if (succeeded === false) {\n reject(promise, error);\n } else if (settled === FULFILLED) {\n fulfill(promise, value);\n } else if (settled === REJECTED) {\n reject(promise, value);\n }\n}\n\nfunction initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value) {\n resolve(promise, value);\n }, function rejectPromise(reason) {\n reject(promise, reason);\n });\n } catch (e) {\n reject(promise, e);\n }\n}\n\nvar id = 0;\nfunction nextId() {\n return id++;\n}\n\nfunction makePromise(promise) {\n promise[PROMISE_ID] = id++;\n promise._state = undefined;\n promise._result = undefined;\n promise._subscribers = [];\n}\n\nfunction validationError() {\n return new Error('Array Methods must be provided an Array');\n}\n\nvar Enumerator = function () {\n function Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(noop);\n\n if (!this.promise[PROMISE_ID]) {\n makePromise(this.promise);\n }\n\n if (isArray(input)) {\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate(input);\n if (this._remaining === 0) {\n fulfill(this.promise, this._result);\n }\n }\n } else {\n reject(this.promise, validationError());\n }\n }\n\n Enumerator.prototype._enumerate = function _enumerate(input) {\n for (var i = 0; this._state === PENDING && i < input.length; i++) {\n this._eachEntry(input[i], i);\n }\n };\n\n Enumerator.prototype._eachEntry = function _eachEntry(entry, i) {\n var c = this._instanceConstructor;\n var resolve$$1 = c.resolve;\n\n\n if (resolve$$1 === resolve$1) {\n var _then = void 0;\n var error = void 0;\n var didError = false;\n try {\n _then = entry.then;\n } catch (e) {\n didError = true;\n error = e;\n }\n\n if (_then === then && entry._state !== PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof _then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === Promise$1) {\n var promise = new c(noop);\n if (didError) {\n reject(promise, error);\n } else {\n handleMaybeThenable(promise, entry, _then);\n }\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function (resolve$$1) {\n return resolve$$1(entry);\n }), i);\n }\n } else {\n this._willSettleAt(resolve$$1(entry), i);\n }\n };\n\n Enumerator.prototype._settledAt = function _settledAt(state, i, value) {\n var promise = this.promise;\n\n\n if (promise._state === PENDING) {\n this._remaining--;\n\n if (state === REJECTED) {\n reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n fulfill(promise, this._result);\n }\n };\n\n Enumerator.prototype._willSettleAt = function _willSettleAt(promise, i) {\n var enumerator = this;\n\n subscribe(promise, undefined, function (value) {\n return enumerator._settledAt(FULFILLED, i, value);\n }, function (reason) {\n return enumerator._settledAt(REJECTED, i, reason);\n });\n };\n\n return Enumerator;\n}();\n\n/**\n `Promise.all` accepts an array of promises, and returns a new promise which\n is fulfilled with an array of fulfillment values for the passed promises, or\n rejected with the reason of the first passed promise to be rejected. It casts all\n elements of the passed iterable to promises as it runs this algorithm.\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = resolve(2);\n let promise3 = resolve(3);\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // The array here would be [ 1, 2, 3 ];\n });\n ```\n\n If any of the `promises` given to `all` are rejected, the first promise\n that is rejected will be given as an argument to the returned promises's\n rejection handler. For example:\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = reject(new Error(\"2\"));\n let promise3 = reject(new Error(\"3\"));\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // Code here never runs because there are rejected promises!\n }, function(error) {\n // error.message === \"2\"\n });\n ```\n\n @method all\n @static\n @param {Array} entries array of promises\n @param {String} label optional string for labeling the promise.\n Useful for tooling.\n @return {Promise} promise that is fulfilled when all `promises` have been\n fulfilled, or rejected if any of them become rejected.\n @static\n*/\nfunction all(entries) {\n return new Enumerator(this, entries).promise;\n}\n\n/**\n `Promise.race` returns a new promise which is settled in the same way as the\n first passed promise to settle.\n\n Example:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 2');\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // result === 'promise 2' because it was resolved before promise1\n // was resolved.\n });\n ```\n\n `Promise.race` is deterministic in that only the state of the first\n settled promise matters. For example, even if other promises given to the\n `promises` array argument are resolved, but the first settled promise has\n become rejected before the other promises became fulfilled, the returned\n promise will become rejected:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n reject(new Error('promise 2'));\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // Code here never runs\n }, function(reason){\n // reason.message === 'promise 2' because promise 2 became rejected before\n // promise 1 became fulfilled\n });\n ```\n\n An example real-world use case is implementing timeouts:\n\n ```javascript\n Promise.race([ajax('foo.json'), timeout(5000)])\n ```\n\n @method race\n @static\n @param {Array} promises array of promises to observe\n Useful for tooling.\n @return {Promise} a promise which settles in the same way as the first passed\n promise to settle.\n*/\nfunction race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (!isArray(entries)) {\n return new Constructor(function (_, reject) {\n return reject(new TypeError('You must pass an array to race.'));\n });\n } else {\n return new Constructor(function (resolve, reject) {\n var length = entries.length;\n for (var i = 0; i < length; i++) {\n Constructor.resolve(entries[i]).then(resolve, reject);\n }\n });\n }\n}\n\n/**\n `Promise.reject` returns a promise rejected with the passed `reason`.\n It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n reject(new Error('WHOOPS'));\n });\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.reject(new Error('WHOOPS'));\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n @method reject\n @static\n @param {Any} reason value that the returned promise will be rejected with.\n Useful for tooling.\n @return {Promise} a promise rejected with the given `reason`.\n*/\nfunction reject$1(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(noop);\n reject(promise, reason);\n return promise;\n}\n\nfunction needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n}\n\nfunction needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n}\n\n/**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n let promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n let xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {Function} resolver\n Useful for tooling.\n @constructor\n*/\n\nvar Promise$1 = function () {\n function Promise(resolver) {\n this[PROMISE_ID] = nextId();\n this._result = this._state = undefined;\n this._subscribers = [];\n\n if (noop !== resolver) {\n typeof resolver !== 'function' && needsResolver();\n this instanceof Promise ? initializePromise(this, resolver) : needsNew();\n }\n }\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n Chaining\n --------\n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n Assimilation\n ------------\n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n If the assimliated promise rejects, then the downstream promise will also reject.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n Simple Example\n --------------\n Synchronous Example\n ```javascript\n let result;\n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n Advanced Example\n --------------\n Synchronous Example\n ```javascript\n let author, books;\n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n function foundBooks(books) {\n }\n function failure(reason) {\n }\n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n\n\n Promise.prototype.catch = function _catch(onRejection) {\n return this.then(null, onRejection);\n };\n\n /**\n `finally` will be invoked regardless of the promise's fate just as native\n try/catch/finally behaves\n \n Synchronous example:\n \n ```js\n findAuthor() {\n if (Math.random() > 0.5) {\n throw new Error();\n }\n return new Author();\n }\n \n try {\n return findAuthor(); // succeed or fail\n } catch(error) {\n return findOtherAuther();\n } finally {\n // always runs\n // doesn't affect the return value\n }\n ```\n \n Asynchronous example:\n \n ```js\n findAuthor().catch(function(reason){\n return findOtherAuther();\n }).finally(function(){\n // author was either found, or not\n });\n ```\n \n @method finally\n @param {Function} callback\n @return {Promise}\n */\n\n\n Promise.prototype.finally = function _finally(callback) {\n var promise = this;\n var constructor = promise.constructor;\n\n if (isFunction(callback)) {\n return promise.then(function (value) {\n return constructor.resolve(callback()).then(function () {\n return value;\n });\n }, function (reason) {\n return constructor.resolve(callback()).then(function () {\n throw reason;\n });\n });\n }\n\n return promise.then(callback, callback);\n };\n\n return Promise;\n}();\n\nPromise$1.prototype.then = then;\nPromise$1.all = all;\nPromise$1.race = race;\nPromise$1.resolve = resolve$1;\nPromise$1.reject = reject$1;\nPromise$1._setScheduler = setScheduler;\nPromise$1._setAsap = setAsap;\nPromise$1._asap = asap;\n\n/*global self*/\nfunction polyfill() {\n var local = void 0;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P) {\n var promiseToString = null;\n try {\n promiseToString = Object.prototype.toString.call(P.resolve());\n } catch (e) {\n // silently ignored\n }\n\n if (promiseToString === '[object Promise]' && !P.cast) {\n return;\n }\n }\n\n local.Promise = Promise$1;\n}\n\n// Strange compat..\nPromise$1.polyfill = polyfill;\nPromise$1.Promise = Promise$1;\n\nreturn Promise$1;\n\n})));\n\n\n\n//# sourceMappingURL=es6-promise.map\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","/**\n * Various scripts for modules.\n */\nrequire( './modules/admin-main.js' );\nrequire( './modules/admin-performance.js' );\nrequire( './modules/admin-caching.js' );\nrequire( './modules/admin-minification.js' );\nrequire( './modules/admin-dashboard.js' );\nrequire( './modules/admin-dashboard-cloudflare.js' );\nrequire( './modules/admin-uptime.js' );\nrequire( './modules/admin-cloudflare.js' );\nrequire( './modules/admin-advanced.js' );\nrequire( './modules/admin-settings.js' );\n\njQuery( document ).ready( function() {\n\twindow.WPHB_Admin.init();\n} );\n","/* global wphb */\n\n/**\n * Internal dependencies\n */\nimport Fetcher from '../utils/fetcher';\n\n( function( $ ) {\n\t'use strict';\n\n\tconst WPHB_Admin = {\n\t\tmodules: [],\n\t\t// Common functionality to all screens\n\t\tinit() {\n\t\t\t// Dismiss notice via an ajax call.\n\t\t\tconst notice = document.querySelector( '#wphb-dismissable > .sui-notice-dismiss' );\n\n\t\t\tif ( notice ) {\n\t\t\t\tnotice.addEventListener( 'click', () => {\n\t\t\t\t\tconst noticeId = notice.parentElement.getAttribute( 'data-id' );\n\t\t\t\t\tFetcher.notice.dismiss( noticeId );\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Clear log button clicked.\n\t\t\t *\n\t\t\t * @since 1.9.2\n\t\t\t */\n\t\t\t$( '.wphb-logging-buttons' ).on( 'click', '.wphb-logs-clear', function( e ) {\n\t\t\t\te.preventDefault();\n\n\t\t\t\tFetcher.logger.clear( e.target.dataset.module )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\tif ( 'undefined' === typeof response.success ) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( response.success ) {\n\t\t\t\t\t\t\tWPHB_Admin.notices.show(\n\t\t\t\t\t\t\t\t'wphb-ajax-update-notice',\n\t\t\t\t\t\t\t\ttrue,\n\t\t\t\t\t\t\t\t'success',\n\t\t\t\t\t\t\t\tresponse.message,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tWPHB_Admin.notices.show(\n\t\t\t\t\t\t\t\t'wphb-ajax-update-notice',\n\t\t\t\t\t\t\t\ttrue,\n\t\t\t\t\t\t\t\t'error',\n\t\t\t\t\t\t\t\tresponse.message,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Add recipient button clicked.\n\t\t\t *\n\t\t\t * On Performance and Uptime recipient modals.\n\t\t\t *\n\t\t\t * @since 1.9.3 Unified two handle both modules.\n\t\t\t */\n\t\t\t$( '#add-recipient' ).on( 'click', function() {\n\t\t\t\tlet module = '';\n\t\t\t\tlet setting = 'reports';\n\n\t\t\t\t// Get the module name from URL.\n\t\t\t\tif ( window.location.search.includes( 'wphb-performance' ) ) {\n\t\t\t\t\tmodule = 'performance';\n\t\t\t\t} else if ( window.location.search.includes( 'wphb-uptime' ) ) {\n\t\t\t\t\tmodule = 'uptime';\n\t\t\t\t\tif ( window.location.search.includes( 'notifications' ) ) {\n\t\t\t\t\t\tsetting = 'notifications';\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst reportingEmail = $( '#reporting-email' );\n\t\t\t\tconst emailField = reportingEmail.closest( '.sui-form-field' );\n\t\t\t\tconst email = reportingEmail.val();\n\t\t\t\tconst name = $( '#reporting-first-name' ).val();\n\n\t\t\t\t// Remove errors.\n\t\t\t\temailField.removeClass( 'sui-form-field-error' );\n\t\t\t\temailField.find( '.sui-error-message' ).remove();\n\n\t\t\t\tFetcher.common.addRecipient( module, setting, email, name )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\tconst userRow = $( '<div class=\"sui-recipient\"/>' );\n\n\t\t\t\t\t\tif ( 'notifications' === setting ) {\n\t\t\t\t\t\t\tuserRow.append( '<span class=\"sui-recipient-status\"><i class=\"sui-icon-clock\" aria-hidden=\"true\"></i></span>' );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tuserRow.append( '<span class=\"sui-recipient-name\"/>' );\n\t\t\t\t\t\tuserRow.find( '.sui-recipient-name' ).append( response.name );\n\n\t\t\t\t\t\tuserRow.append( $( '<span class=\"sui-recipient-email\"/>' ).html( email ) );\n\n\t\t\t\t\t\tif ( 'notifications' === setting ) {\n\t\t\t\t\t\t\tuserRow.append( $( '<button/>' ).attr( {\n\t\t\t\t\t\t\t\tclass: 'sui-button-icon wphb-resend-recipient sui-tooltip',\n\t\t\t\t\t\t\t\ttype: 'button',\n\t\t\t\t\t\t\t\t'data-tooltip': wphb.strings.resendEmail,\n\t\t\t\t\t\t\t} ).html( '<i class=\"sui-icon-send\" aria-hidden=\"true\"></i>' ) );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tuserRow.append( $( '<button/>' ).attr( {\n\t\t\t\t\t\t\tclass: 'sui-button-icon wphb-remove-recipient',\n\t\t\t\t\t\t\ttype: 'button',\n\t\t\t\t\t\t} ).html( '<i class=\"sui-icon-trash\" aria-hidden=\"true\"></i>' ) );\n\n\t\t\t\t\t\t$( '<input>' ).attr( {\n\t\t\t\t\t\t\ttype: 'hidden',\n\t\t\t\t\t\t\tid: 'report-recipient',\n\t\t\t\t\t\t\tname: 'report-recipients[]',\n\t\t\t\t\t\t\tvalue: JSON.stringify( { email: response.email, name: response.name } ),\n\t\t\t\t\t\t} ).appendTo( userRow );\n\n\t\t\t\t\t\t$( '.sui-recipients' ).append( userRow );\n\t\t\t\t\t\t$( '#reporting-email' ).val( '' );\n\t\t\t\t\t\t$( '#reporting-first-name' ).val( '' );\n\n\t\t\t\t\t\t// Hide no recipients notification.\n\t\t\t\t\t\t$( '.wphb-no-recipients' ).slideUp();\n\t\t\t\t\t\twindow.SUI.closeModal();\n\n\t\t\t\t\t\t// Hide top notice.\n\t\t\t\t\t\t$( '.sui-notice-top.sui-notice-success' ).hide();\n\n\t\t\t\t\t\t// Hide the last notice.\n\t\t\t\t\t\t$( '#wphb-pending-sub-notice' ).hide();\n\t\t\t\t\t\t// Show confirm recipients notice.\n\t\t\t\t\t\t$( '#wphb-confirm-sub-notice' ).show();\n\n\t\t\t\t\t\t// Show notice to save settings.\n\t\t\t\t\t\tWPHB_Admin.notices.show(\n\t\t\t\t\t\t\t'wphb-ajax-update-notice',\n\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t\t'info',\n\t\t\t\t\t\t\tname + wphb.strings.successRecipientAdded,\n\t\t\t\t\t\t);\n\t\t\t\t\t} )\n\t\t\t\t\t.catch( ( error ) => {\n\t\t\t\t\t\temailField.addClass( 'sui-form-field-error' );\n\t\t\t\t\t\temailField.append( '<span class=\"sui-error-message\"/>' );\n\t\t\t\t\t\temailField.find( '.sui-error-message' ).append( error.message );\n\t\t\t\t\t} );\n\t\t\t} );\n\n\t\t\tconst body = $( 'body' );\n\n\t\t\t/**\n\t\t\t * Save report settings clicked (performance reports, uptime\n\t\t\t * reports and uptime notifications).\n\t\t\t */\n\t\t\tbody.on( 'submit', '.wphb-report-settings', function( e ) {\n\t\t\t\te.preventDefault();\n\n\t\t\t\t$( '#wphb-confirm-sub-notice' ).slideUp();\n\n\t\t\t\t$( this ).find( '.button' ).attr( 'disabled', 'disabled' );\n\n\t\t\t\tFetcher.common\n\t\t\t\t\t.saveReportsSettings( this.dataset.module, $( this ).serialize() )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\tif ( 'undefined' !== typeof response && response.success ) {\n\t\t\t\t\t\t\tif ( response.enabled || '' !== response.notice ) {\n\t\t\t\t\t\t\t\t$( '.sui-notice-top' ).hide();\n\t\t\t\t\t\t\t\t$( '.sui-box-body > .sui-notice-default:first-of-type' ).addClass( 'sui-notice-success' ).removeClass( 'sui-notice-default' );\n\t\t\t\t\t\t\t\t$( '.sui-box-body > .sui-notice-success:first-of-type > p' ).text( response.recipientNotice );\n\n\t\t\t\t\t\t\t\tWPHB_Admin.notices.show(\n\t\t\t\t\t\t\t\t\t'wphb-ajax-update-notice',\n\t\t\t\t\t\t\t\t\ttrue,\n\t\t\t\t\t\t\t\t\t'success',\n\t\t\t\t\t\t\t\t\tresponse.enabled ? wphb.strings.confirmRecipient : response.notice,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\twindow.location.search += '&updated=true';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tWPHB_Admin.notices.show(\n\t\t\t\t\t\t\t\t'wphb-ajax-update-notice',\n\t\t\t\t\t\t\t\ttrue,\n\t\t\t\t\t\t\t\t'error',\n\t\t\t\t\t\t\t\twphb.strings.errorSettingsUpdate,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Remove recipient button clicked.\n\t\t\t */\n\t\t\tbody.on( 'click', '.wphb-remove-recipient', function() {\n\t\t\t\t$( this ).closest( '.sui-recipient' ).remove();\n\n\t\t\t\tconst id = $( this ).attr( 'data-id' );\n\t\t\t\tconst row = 'input[id=\"report-recipient\"][value=' + id + ']';\n\n\t\t\t\t$( '.wphb-report-settings' ).find( row ).remove();\n\n\t\t\t\tif ( 0 === $( '.sui-recipient' ).length ) {\n\t\t\t\t\t$( '#wphb-pending-sub-notice' ).slideUp();\n\t\t\t\t\t$( '.wphb-no-recipients' ).slideDown();\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Handle the show/hiding of the report schedule.\n\t\t\t */\n\t\t\t$( '#chk1' ).on( 'click', function() {\n\t\t\t\t$( '.schedule-box' ).toggleClass( 'sui-hidden' );\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Schedule show/hide day of week.\n\t\t\t */\n\t\t\t$( 'select[name=\"report-frequency\"]' ).change( function() {\n\t\t\t\tconst freq = $( this ).val();\n\n\t\t\t\tif ( '1' === freq ) {\n\t\t\t\t\t$( this ).closest( '.schedule-box' ).find( 'div.days-container' ).hide();\n\t\t\t\t} else {\n\t\t\t\t\t$( this ).closest( '.schedule-box' ).find( 'div.days-container' ).show();\n\n\t\t\t\t\tif ( '7' === freq ) {\n\t\t\t\t\t\t$( this ).closest( '.schedule-box' ).find( '[data-type=\"week\"]' ).show();\n\t\t\t\t\t\t$( this ).closest( '.schedule-box' ).find( '[data-type=\"month\"]' ).hide();\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$( this ).closest( '.schedule-box' ).find( '[data-type=\"week\"]' ).hide();\n\t\t\t\t\t\t$( this ).closest( '.schedule-box' ).find( '[data-type=\"month\"]' ).show();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ).change();\n\t\t},\n\n\t\tinitModule( module ) {\n\t\t\tif ( this.hasOwnProperty( module ) ) {\n\t\t\t\tthis.modules[ module ] = this[ module ].init();\n\t\t\t\treturn this.modules[ module ];\n\t\t\t}\n\n\t\t\treturn {};\n\t\t},\n\n\t\tgetModule( module ) {\n\t\t\tif ( typeof this.modules[ module ] !== 'undefined' ) {\n\t\t\t\treturn this.modules[ module ];\n\t\t\t}\n\t\t\treturn this.initModule( module );\n\t\t},\n\t};\n\n\t/**\n\t * Admin notices.\n\t */\n\tWPHB_Admin.notices = {\n\t\tinit() {},\n\t\t/**\n\t\t * Show notice.\n\t\t *\n\t\t * @since 1.8\n\t\t *\n\t\t * @param {string} id ID of notice element.\n\t\t * @param {boolean} top Scroll to top.\n\t\t * @param {string} type Error or success.\n\t\t * @param {string} message Message to display.\n\t\t *\n\t\t * @member {Array} wphb\n\t\t */\n\t\tshow( id, top = false, type = '', message = wphb.strings.successUpdate ) {\n\t\t\tconst notice = $( '#' + id );\n\n\t\t\tif ( top ) {\n\t\t\t\twindow.scrollTo( 0, 0 );\n\t\t\t}\n\n\t\t\tif ( '' !== type ) {\n\t\t\t\t// Remove set classes if doing multiple calls per page load.\n\t\t\t\tnotice.removeClass( 'sui-notice-error' );\n\t\t\t\tnotice.removeClass( 'sui-notice-success' );\n\t\t\t\tnotice.removeClass( 'sui-notice-info' );\n\t\t\t\tnotice.addClass( 'sui-notice-' + type );\n\t\t\t}\n\n\t\t\tnotice.find( 'p' ).html( message );\n\n\t\t\tnotice.slideDown();\n\t\t\tsetTimeout( function() {\n\t\t\t\tnotice.slideUp();\n\t\t\t}, 5000 );\n\t\t},\n\t};\n\n\twindow.WPHB_Admin = WPHB_Admin;\n}( jQuery ) );\n","import Fetcher from '../utils/fetcher';\n\n( function( $ ) {\n\t'use strict';\n\tWPHB_Admin.performance = {\n\n\t\tmodule: 'performance',\n\t\titeration: 0,\n\t\tprogress: 0,\n\t\ttimer: false,\n\t\tpressedKeys: [],\n\t\tkey_timer: false,\n\n\t\tinit() {\n\t\t\tconst self = this;\n\n\t\t\t/** @member {Array} wphbPerformanceStrings */\n\t\t\tif ( wphbPerformanceStrings ) {\n\t\t\t\tthis.strings = wphbPerformanceStrings;\n\t\t\t}\n\n\t\t\tthis.wphbSetInterval();\n\n\t\t\tdocument.onkeyup = function( e ) {\n\t\t\t\tclearInterval( self.key_timer );\n\t\t\t\tself.wphbSetInterval();\n\t\t\t\te = e || event;\n\t\t\t\tself.pressedKeys.push( e.keyCode );\n\t\t\t\tconst count = self.pressedKeys.length;\n\t\t\t\tif ( count >= 2 ) {\n\t\t\t\t\t// Get the previous key pressed. If they are H+B, we'll display the error\n\t\t\t\t\tif ( 66 === self.pressedKeys[ count - 1 ] && 72 === self.pressedKeys[ count - 2 ] ) {\n\t\t\t\t\t\tconst errorDetails = document.getElementById( 'wphb-error-details' );\n\t\t\t\t\t\terrorDetails.style.display = 'block';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t// Run performance test from empty report meta box.\n\t\t\t$( '#run-performance-test' ).on( 'click', function( e ) {\n\t\t\t\te.preventDefault();\n\n\t\t\t\twindow.SUI.openModal( 'run-performance-test-modal', 'wpbody-content', undefined, false );\n\t\t\t\t$( this ).attr( 'disabled', true );\n\t\t\t\tself.performanceTest( self.strings.finishedTestURLsLink );\n\t\t\t} );\n\n\t\t\t// If a hash is present in URL, let's open the rule extra content\n\t\t\tconst hash = window.location.hash;\n\t\t\tif ( hash ) {\n\t\t\t\tconst row = $( hash );\n\t\t\t\tif ( row.length && ! row.hasClass( 'sui-box' ) ) {\n\t\t\t\t\trow.find( '.sui-accordion-open-indicator' ).trigger( 'click' );\n\t\t\t\t\t$( 'html, body' ).animate( {\n\t\t\t\t\t\tscrollTop: row.offset().top,\n\t\t\t\t\t}, 1000 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Save performance test settings\n\t\t\t$( 'body' ).on( 'submit', '.settings-frm', function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\tconst formData = $( this ).serialize();\n\n\t\t\t\tFetcher.performance.savePerformanceTestSettings( formData )\n\t\t\t\t\t.then( () =>\n\t\t\t\t\t\tWPHB_Admin.notices.show( 'wphb-notice-performance-report-settings-updated', true ),\n\t\t\t\t\t);\n\t\t\t\treturn false;\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Init Google charts on Historic Field Data meta box page.\n\t\t\t *\n\t\t\t * @since 2.0.0\n\t\t\t */\n\t\t\tif ( 'undefined' !== typeof google && 'undefined' !== typeof wphbHistoricFieldData ) {\n\t\t\t\tgoogle.charts.load( 'current', { packages: [ 'corechart', 'bar' ] } );\n\n\t\t\t\tgoogle.charts.setOnLoadCallback( () => {\n\t\t\t\t\tthis.drawChart( wphbHistoricFieldData.fcp, 'first_contentful_paint' );\n\t\t\t\t\t$( window ).resize( () =>\n\t\t\t\t\t\tthis.drawChart( wphbHistoricFieldData.fcp, 'first_contentful_paint' ),\n\t\t\t\t\t);\n\t\t\t\t} );\n\n\t\t\t\tgoogle.charts.setOnLoadCallback( () => {\n\t\t\t\t\tthis.drawChart( wphbHistoricFieldData.fid, 'first_input_delay' );\n\t\t\t\t\t$( window ).resize( () =>\n\t\t\t\t\t\tthis.drawChart( wphbHistoricFieldData.fid, 'first_input_delay' ),\n\t\t\t\t\t);\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Parse dashboard widget device setting change.\n\t\t\t *\n\t\t\t * @since 2.0.0\n\t\t\t */\n\t\t\t$( 'input[name=desktop-report]' ).on( 'change', function( e ) {\n\t\t\t\tconst otherClass = 'desktop_report-true' === e.target.id ? 'desktop_report-false' : 'desktop_report-true';\n\t\t\t\te.target.parentNode.classList.add( 'active' );\n\t\t\t\tdocument.getElementById( otherClass )\n\t\t\t\t\t.parentNode.classList.remove( 'active' );\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Parse subsite settings change.\n\t\t\t *\n\t\t\t * @since 2.0.0\n\t\t\t */\n\t\t\t$( 'input[name=subsite-tests]' ).on( 'change', function( e ) {\n\t\t\t\tconst otherClass = 'subsite_tests-false' === e.target.id ? 'subsite_tests-true' : 'subsite_tests-false';\n\t\t\t\te.target.parentNode.classList.add( 'active' );\n\t\t\t\tdocument.getElementById( otherClass )\n\t\t\t\t\t.parentNode.classList.remove( 'active' );\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Parse report type setting change.\n\t\t\t *\n\t\t\t * @since 2.0.0\n\t\t\t */\n\t\t\t$( 'input[name=report-type]' ).on( 'change', function( e ) {\n\t\t\t\tconst divs = document.querySelectorAll( 'input[name=report-type]' );\n\t\t\t\tfor ( let i = 0; i < divs.length; ++i ) {\n\t\t\t\t\tdivs[ i ].parentNode.classList.remove( 'active' );\n\t\t\t\t}\n\t\t\t\te.target.parentNode.classList.add( 'active' );\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Refresh page, when selecting a report type.\n\t\t\t *\n\t\t\t * @since 2.0.0\n\t\t\t */\n\t\t\t$( 'select[name=wphb-performance-report-type]' ).on( 'change', function( e ) {\n\t\t\t\tconst url = new URL( window.location );\n\t\t\t\turl.searchParams.set( 'type', e.target.value );\n\t\t\t\twindow.location = url;\n\t\t\t} );\n\n\t\t\treturn this;\n\t\t},\n\n\t\twphbSetInterval() {\n\t\t\tconst self = this;\n\n\t\t\tthis.key_timer = window.setInterval( function() {\n\t\t\t\t// Clean pressedKeys every 1sec\n\t\t\t\tself.pressedKeys = [];\n\t\t\t}, 1000 );\n\t\t},\n\n\t\tperformanceTest( redirect ) {\n\t\t\tconst self = this;\n\n\t\t\tif ( typeof redirect === 'undefined' ) {\n\t\t\t\tredirect = false;\n\t\t\t}\n\n\t\t\t// Update progress bar\n\t\t\tthis.updateProgressBar();\n\n\t\t\tFetcher.performance.runTest()\n\t\t\t\t.then( ( response ) => {\n\t\t\t\t\tif ( ! response.finished ) {\n\t\t\t\t\t\t// Try again 3 seconds later\n\t\t\t\t\t\twindow.setTimeout( function() {\n\t\t\t\t\t\t\tself.performanceTest( redirect );\n\t\t\t\t\t\t}, 3000 );\n\t\t\t\t\t} else if ( redirect ) {\n\t\t\t\t\t\tself.progress = 100;\n\t\t\t\t\t\tself.updateProgressBar();\n\n\t\t\t\t\t\t// Give a second for the report to be saved to the db.\n\t\t\t\t\t\twindow.setTimeout( function() {\n\t\t\t\t\t\t\twindow.location = redirect;\n\t\t\t\t\t\t}, 2000 );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t},\n\n\t\tupdateProgressBar() {\n\t\t\tconst self = this;\n\n\t\t\t// Test has been initialized.\n\t\t\tif ( 0 === this.progress ) {\n\t\t\t\tthis.progress = 2;\n\n\t\t\t\tthis.timer = window.setInterval( function() {\n\t\t\t\t\tself.progress += 1;\n\t\t\t\t\tself.updateProgressBar();\n\t\t\t\t}, 100 );\n\t\t\t}\n\n\t\t\tconst progressStatus = $( '.sui-progress-state .sui-progress-state-text' );\n\n\t\t\tif ( 3 === this.progress ) {\n\t\t\t\tprogressStatus.text( this.strings.scanRunning );\n\t\t\t}\n\n\t\t\tif ( 73 === this.progress ) {\n\t\t\t\tclearInterval( this.timer );\n\t\t\t\tthis.timer = false;\n\n\t\t\t\tthis.timer = window.setInterval( function() {\n\t\t\t\t\tself.progress += 1;\n\t\t\t\t\tself.updateProgressBar();\n\t\t\t\t}, 1000 );\n\n\t\t\t\tprogressStatus.text( this.strings.scanAnalyzing );\n\t\t\t}\n\n\t\t\tif ( 99 === this.progress ) {\n\t\t\t\tprogressStatus.text( this.strings.scanWaiting );\n\t\t\t\tclearInterval( this.timer );\n\t\t\t\tthis.timer = false;\n\t\t\t}\n\n\t\t\t$( '.sui-progress-block .sui-progress-text span' )\n\t\t\t\t.text( this.progress + '%' );\n\t\t\t$( '.sui-progress-block .sui-progress-bar span' )\n\t\t\t\t.attr( 'style', 'width:' + this.progress + '%' );\n\n\t\t\tif ( 100 === this.progress ) {\n\t\t\t\t$( '.sui-progress-block i.sui-icon-loader' )\n\t\t\t\t\t.removeClass( 'sui-icon-loader sui-loading' )\n\t\t\t\t\t.addClass( 'sui-icon-check' );\n\t\t\t\tprogressStatus.text( this.strings.scanComplete );\n\t\t\t\tclearInterval( this.timer );\n\t\t\t\tthis.timer = false;\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Draw chart on Historic Field Data meta box.\n\t\t *\n\t\t * @since 2.0.0\n\t\t *\n\t\t * @param strings\n\t\t * @param chartID\n\t\t */\n\t\tdrawChart( strings, chartID ) {\n\t\t\tconst data = google.visualization.arrayToDataTable( [\n\t\t\t\t[ 'Type', 'Fast', { type: 'string', role: 'tooltip', p: { html: true } }, 'Average', { type: 'string', role: 'tooltip', p: { html: true } }, 'Slow', { type: 'string', role: 'tooltip', p: { html: true } } ],\n\t\t\t\t[ '', strings.fast, this.generateTooltip( 'fast', strings.fast_desc ), strings.average, this.generateTooltip( 'average', strings.average_desc ), strings.slow, this.generateTooltip( 'slow', strings.slow_desc ) ],\n\t\t\t] );\n\n\t\t\tconst options = {\n\t\t\t\ttooltip: { isHtml: true },\n\t\t\t\tcolors: [ '#1ABC9C', '#FECF2F', '#FF6D6D' ],\n\t\t\t\tchartArea: { width: '100%' },\n\t\t\t\thAxis: {\n\t\t\t\t\tbaselineColor: '#fff',\n\t\t\t\t\tgridlines: { color: '#fff', count: 0 },\n\t\t\t\t\ttextPosition: 'none',\n\t\t\t\t},\n\t\t\t\tisStacked: 'percent',\n\t\t\t\theight: 80,\n\t\t\t\tlegend: 'none',\n\t\t\t};\n\n\t\t\tconst chart = new google.visualization.BarChart(\n\t\t\t\tdocument.getElementById( chartID ),\n\t\t\t);\n\t\t\tchart.draw( data, options );\n\t\t},\n\n\t\t/**\n\t\t * Generate custom tooltip.\n\t\t *\n\t\t * @since 2.0.0\n\t\t *\n\t\t * @param {string} type Metrics type. Accepts: fast, average, slow.\n\t\t * @param {string} value Tooltip text.\n\t\t *\n\t\t * @return {string} Div element.\n\t\t */\n\t\tgenerateTooltip( type, value ) {\n\t\t\treturn '<div class=\"wphb-field-data-tooltip wphb-tooltip-' + type + '\">' + value + '</div>';\n\t\t},\n\t};\n}( jQuery ) );\n","/**\n * Internal dependencies\n */\nimport Fetcher from '../utils/fetcher';\n\n( function( $ ) {\n\t'use strict';\n\tWPHB_Admin.caching = {\n\n\t\tmodule: 'caching',\n\t\tselectedServer: '',\n\t\tserverSelector: null,\n\t\tserverInstructions: [],\n\t\tsnippets: [],\n\t\tselectedExpiryType: 'all',\n\n\t\tinit() {\n\t\t\tconst self = this,\n\t\t\t\thash = window.location.hash,\n\t\t\t\tpageCachingForm = $( 'form[id=\"page-caching-form\"]' ),\n\t\t\t\trssForm = $( 'form[id=\"rss-caching-settings\"]' ),\n\t\t\t\tgravatarDiv = $( 'div[id=\"wphb-box-caching-gravatar\"]' ),\n\t\t\t\tcachingHeader = $( '.box-caching-status .sui-box-header' ),\n\t\t\t\texpiryForm = $( 'form[id=\"expiry-settings\"]' ),\n\t\t\t\tsettingsForm = $( 'form[id=\"other-caching-settings\"]' );\n\n\t\t\t// Define selected server.\n\t\t\tself.serverSelector = $( '#wphb-server-type' );\n\t\t\tself.selectedServer = self.serverSelector.val();\n\n\t\t\t/** @var {array} wphbCachingStrings */\n\t\t\tif ( wphbCachingStrings ) {\n\t\t\t\tself.strings = wphbCachingStrings;\n\t\t\t}\n\n\t\t\tif ( hash && $( hash ).length ) {\n\t\t\t\tsetTimeout( function() {\n\t\t\t\t\t$( 'html, body' ).animate( { scrollTop: $( hash ).offset().top }, 'slow' );\n\t\t\t\t}, 300 );\n\t\t\t} else if ( '#connect-cloudflare' === hash ) {\n\t\t\t\tself.setCloudflare();\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * PAGE CACHING\n\t\t\t *\n\t\t\t * @since 1.7.0\n\t\t\t */\n\n\t\t\t// Save page caching settings.\n\t\t\tpageCachingForm.on( 'submit', ( e ) => {\n\t\t\t\te.preventDefault();\n\t\t\t\tself.saveSettings( 'page_cache', pageCachingForm );\n\t\t\t} );\n\n\t\t\t// Clear page cache.\n\t\t\tpageCachingForm.on( 'click', '.sui-box-header .sui-button', ( e ) => {\n\t\t\t\te.preventDefault();\n\t\t\t\tself.clearCache( 'page_cache', pageCachingForm );\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Toggle clear cache settings.\n\t\t\t *\n\t\t\t * @since 2.1.0\n\t\t\t */\n\t\t\tconst intervalToggle = document.getElementById( 'clear_interval' );\n\t\t\tif ( intervalToggle ) {\n\t\t\t\tintervalToggle.addEventListener( 'change', function( e ) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\t$( '#page_cache_clear_interval' ).toggle();\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Cancel cache preload.\n\t\t\t *\n\t\t\t * @since 2.1.0\n\t\t\t */\n\t\t\tconst cancelPreload = document.getElementById( 'wphb-cancel-cache-preload' );\n\t\t\tif ( cancelPreload ) {\n\t\t\t\tcancelPreload.addEventListener( 'click', function( e ) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tFetcher.caching.cancelPreload();\n\t\t\t\t\twindow.location.reload();\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Show/hide preload settings.\n\t\t\t *\n\t\t\t * @since 2.3.0\n\t\t\t */\n\t\t\tconst preloadToggle = document.getElementById( 'preload' );\n\t\t\tif ( preloadToggle ) {\n\t\t\t\tpreloadToggle.addEventListener( 'change', function( e ) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\t$( '#page_cache_preload_type' ).toggle();\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * BROWSER CACHING\n\t\t\t */\n\n\t\t\t// Init server instructions tabs.\n\t\t\t$( '.wphb-server-instructions' ).each( function() {\n\t\t\t\tself.serverInstructions[ $( this ).data( 'server' ) ] = $( this );\n\t\t\t} );\n\t\t\tself.showServerInstructions( this.selectedServer );\n\n\t\t\t// Init code snippets.\n\t\t\tself.snippets.apache = $( '.apache-instructions' ).find( 'pre.sui-code-snippet' );\n\t\t\tself.snippets.nginx = $( '#wphb-server-instructions-nginx' ).find( 'pre.sui-code-snippet' );\n\n\t\t\t// Server type changed.\n\t\t\tself.serverSelector.change( function() {\n\t\t\t\tconst value = $( this ).val();\n\t\t\t\tself.hideCurrentInstructions();\n\t\t\t\tself.showServerInstructions( value );\n\t\t\t\tself.setServer( value );\n\t\t\t\tself.selectedServer = value;\n\t\t\t\t$( '.hb-server-type' ).val( value );\n\t\t\t} );\n\n\t\t\t// Expiry time change between all types and individual type.\n\t\t\tconst expiryInput = $( \"div[data-name='expiry-set-type']\" );\n\t\t\texpiryInput.on( 'click', function() {\n\t\t\t\tconst type = $( this ).data( 'value' );\n\t\t\t\tself.selectedExpiryType = type;\n\t\t\t\tself.reloadSnippets( self.getExpiryTimes( type ) );\n\t\t\t} );\n\n\t\t\t// Expiry value changed.\n\t\t\texpiryForm.on( 'change', 'select[name^=\"set-expiry\"]', function() {\n\t\t\t\tself.reloadSnippets( self.getExpiryTimes( self.selectedExpiryType ) );\n\t\t\t\t$( '#wphb-expiry-change-notice' ).slideDown();\n\t\t\t} );\n\n\t\t\t// Re-check expiry button clicked.\n\t\t\tcachingHeader.on( 'click', 'a.sui-button', ( e ) => {\n\t\t\t\te.preventDefault();\n\n\t\t\t\tconst spinner = cachingHeader.find( '.spinner' );\n\t\t\t\tconst button = cachingHeader.find( 'a.sui-button' );\n\n\t\t\t\tbutton.addClass( 'disabled' );\n\t\t\t\tspinner.addClass( 'visible' );\n\n\t\t\t\tFetcher.caching.recheckExpiry()\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\tbutton.removeClass( 'disabled' );\n\t\t\t\t\t\tspinner.removeClass( 'visible' );\n\n\t\t\t\t\t\tif ( 'undefined' !== typeof response && response.success ) {\n\t\t\t\t\t\t\tWPHB_Admin.notices.show( 'wphb-ajax-update-notice', true, 'success', self.strings.successRecheckStatus );\n\t\t\t\t\t\t\tself.reloadExpiryTags( response.expiry_values );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tWPHB_Admin.notices.show( 'wphb-ajax-update-notice', true, 'error', self.strings.errorRecheckStatus );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t} );\n\n\t\t\t// Update .htaccess clicked.\n\t\t\texpiryForm.on( 'submit', ( e ) => {\n\t\t\t\te.preventDefault();\n\n\t\t\t\tconst button = $( '.update-htaccess' );\n\t\t\t\tconst spinner = $( '.wphb-expiry-changes .spinner' );\n\t\t\t\tconst notice = $( '#wphb-expiry-change-notice' );\n\n\t\t\t\tbutton.addClass( 'disabled' );\n\t\t\t\tspinner.addClass( 'visible' );\n\n\t\t\t\tconst expiry_times = self.getExpiryTimes( self.selectedExpiryType );\n\t\t\t\tFetcher.caching.setExpiration( expiry_times );\n\n\t\t\t\t// Set timeout to allow new expiry values to be saved.\n\t\t\t\tsetTimeout(\n\t\t\t\t\tfunction() {\n\t\t\t\t\t\tFetcher.caching.updateHtaccess()\n\t\t\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\t\t\tbutton.removeClass( 'disabled' );\n\t\t\t\t\t\t\t\tspinner.removeClass( 'visible' );\n\t\t\t\t\t\t\t\tnotice.slideUp( 'slow' );\n\n\t\t\t\t\t\t\t\tif ( 'undefined' !== typeof response && response.success ) {\n\t\t\t\t\t\t\t\t\tWPHB_Admin.notices.show( 'wphb-ajax-update-notice', true, 'success', wphb.strings.htaccessUpdated );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tWPHB_Admin.notices.show( 'wphb-ajax-update-notice', true, 'error', self.strings.htaccessUpdatedFailed );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t}, 1000 );\n\t\t\t} );\n\n\t\t\t// View code clicked (when rules already in .htaccess and expiry values are updated).\n\t\t\t$( '#view-snippet-code' ).on( 'click', function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\tconst serverInstructions = $( '#wphb-server-instructions-' + self.selectedServer.toLowerCase() );\n\t\t\t\tconst selectedServer = self.selectedServer.toLowerCase();\n\n\t\t\t\t$( '#auto-' + selectedServer ).removeClass( 'active' );\n\t\t\t\t$( '#manual-' + selectedServer ).trigger( 'click' ).addClass( 'active' );\n\n\t\t\t\t$( 'html, body' ).animate( { scrollTop: serverInstructions.offset().top - 50 }, 'slow' );\n\t\t\t} );\n\n\t\t\t// Activate button clicked.\n\t\t\t$( '.activate-button' ).on( 'click', function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\t$( this ).addClass( 'sui-button-onload' );\n\t\t\t\t// Update expiration times.\n\t\t\t\tconst expiry_times = self.getExpiryTimes( self.selectedExpiryType );\n\t\t\t\tFetcher.caching.setExpiration( expiry_times );\n\t\t\t\tconst redirect = $( this ).attr( 'href' );\n\t\t\t\t// Set timeout to allow new expiry values to be saved.\n\t\t\t\tsetTimeout(\n\t\t\t\t\tfunction() {\n\t\t\t\t\t\twindow.location = redirect;\n\t\t\t\t\t}, 1000 );\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * CLOUDFLARE\n\t\t\t */\n\n\t\t\t// Connect Cloudflare link clicked.\n\t\t\t$( '.connect-cloudflare-link' ).on( 'click', function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\twindow.location.hash = 'connect-cloudflare';\n\t\t\t\tself.setCloudflare();\n\t\t\t} );\n\n\t\t\t// \"# of your cache types don’t meet the recommended expiry period\" notice clicked.\n\t\t\t$( '#configure-link' ).on( 'click', function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\t$( 'html, body' ).animate( { scrollTop: $( '#wphb-box-caching-settings' ).offset().top }, 'slow' );\n\t\t\t} );\n\n\t\t\t// Cloudflare blue notice dismiss link\n\t\t\t$( '#dismiss-cf-notice' ).on( 'click', function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\tFetcher.notice.dismissCloudflareDash();\n\t\t\t\t$( '.cf-dash-notice' ).slideUp().parent().addClass( 'no-background-image' );\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * GRAVATAR CACHING\n\t\t\t *\n\t\t\t * @since 1.9.0\n\t\t\t */\n\n\t\t\t// Clear cache.\n\t\t\tgravatarDiv.on( 'click', '.sui-box-header .sui-button', ( e ) => {\n\t\t\t\te.preventDefault();\n\t\t\t\tself.clearCache( 'gravatar', gravatarDiv );\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * RSS CACHING\n\t\t\t *\n\t\t\t * @since 1.8\n\t\t\t */\n\n\t\t\t// Parse rss cache settings.\n\t\t\trssForm.on( 'submit', ( e ) => {\n\t\t\t\te.preventDefault();\n\n\t\t\t\t// Make sure a positive value is always reflected for the rss expiry time input.\n\t\t\t\tconst rss_expiry_time = rssForm.find( '#rss-expiry-time' );\n\t\t\t\trss_expiry_time.val( Math.abs( rss_expiry_time.val() ) );\n\n\t\t\t\tself.saveSettings( 'rss', rssForm );\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * SETTINGS\n\t\t\t *\n\t\t\t * @since 1.8.1\n\t\t\t */\n\n\t\t\t// Parse page cache settings.\n\t\t\tsettingsForm.on( 'submit', ( e ) => {\n\t\t\t\te.preventDefault();\n\n\t\t\t\t// Hide the notice if it is showing.\n\t\t\t\tconst detection = $( 'input[name=\"detection\"]:checked', settingsForm ).val();\n\t\t\t\tif ( 'auto' === detection || 'none' === detection ) {\n\t\t\t\t\t$( '.wphb-notice.notice-info' ).slideUp();\n\t\t\t\t}\n\n\t\t\t\tself.saveSettings( 'other_cache', settingsForm );\n\t\t\t} );\n\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * Process form submit from page caching, rss and settings forms.\n\t\t *\n\t\t * @since 1.9.0\n\t\t *\n\t\t * @param {string} module Module name.\n\t\t * @param {Object} form Form.\n\t\t */\n\t\tsaveSettings: ( module, form ) => {\n\t\t\tconst spinner = form.find( '.sui-box-footer .spinner' );\n\t\t\tspinner.addClass( 'visible' );\n\n\t\t\tFetcher.caching.saveSettings( module, form.serialize() )\n\t\t\t\t.then( ( response ) => {\n\t\t\t\t\tspinner.removeClass( 'visible' );\n\n\t\t\t\t\tif ( 'undefined' !== typeof response && response.success ) {\n\t\t\t\t\t\tif ( 'page_cache' === module ) {\n\t\t\t\t\t\t\twindow.location.search += '&updated=true';\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tWPHB_Admin.notices.show( 'wphb-ajax-update-notice', true, 'success' );\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tWPHB_Admin.notices.show( 'wphb-ajax-update-notice', true, 'error', wphb.strings.errorSettingsUpdate );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * Unified clear cache method that clears: page cache, gravatar cache and browser cache.\n\t\t *\n\t\t * @since 1.9.0\n\t\t *\n\t\t * @param {string} module Module for which to clear the cache.\n\t\t * @param {Object} form Form from which the call was made.\n\t\t */\n\t\tclearCache: ( module, form ) => {\n\t\t\tconst spinner = form.find( '.sui-box-header .spinner' );\n\t\t\tspinner.addClass( 'visible' );\n\n\t\t\tFetcher.caching.clearCache( module )\n\t\t\t\t.then( ( response ) => {\n\t\t\t\t\tif ( 'undefined' !== typeof response && response.success ) {\n\t\t\t\t\t\tif ( 'page_cache' === module ) {\n\t\t\t\t\t\t\t$( '.box-caching-summary span.sui-summary-large' ).html( '0' );\n\t\t\t\t\t\t\tWPHB_Admin.notices.show( 'wphb-ajax-update-notice', true, 'success', wphbCachingStrings.successPageCachePurge );\n\t\t\t\t\t\t} else if ( 'gravatar' === module ) {\n\t\t\t\t\t\t\tWPHB_Admin.notices.show( 'wphb-ajax-update-notice', true, 'success', wphbCachingStrings.successGravatarPurge );\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tWPHB_Admin.notices.show( 'wphb-ajax-update-notice', true, 'error', wphbCachingStrings.errorCachePurge );\n\t\t\t\t\t}\n\n\t\t\t\t\tspinner.removeClass( 'visible' );\n\t\t\t\t} );\n\t\t},\n\n\t\tsetServer( value ) {\n\t\t\tFetcher.caching.setServer( value );\n\t\t},\n\n\t\tsetCloudflare() {\n\t\t\t$( '#wphb-server-type' ).val( 'cloudflare' ).trigger( 'sui:change' );\n\t\t\tthis.hideCurrentInstructions();\n\t\t\tthis.setServer( 'cloudflare' );\n\t\t\tthis.showServerInstructions( 'cloudflare' );\n\t\t\tthis.selectedServer = 'cloudflare';\n\n\t\t\tsetTimeout( function() {\n\t\t\t\t$( 'html, body' ).animate( { scrollTop: $( '#cloudflare-steps' ).offset().top }, 'slow' );\n\t\t\t}, 300 );\n\t\t},\n\n\t\treloadExpiryTags( expiry_values ) {\n\t\t\tfor ( const k in expiry_values ) {\n\t\t\t\tif ( expiry_values.hasOwnProperty( k ) ) {\n\t\t\t\t\t$( '#wphb-caching-expiry-' + k ).text( expiry_values[ k ] );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\thideCurrentInstructions() {\n\t\t\tif ( this.serverInstructions[ this.selectedServer ] ) {\n\t\t\t\tthis.serverInstructions[ this.selectedServer ].addClass( 'sui-hidden' );\n\t\t\t}\n\t\t},\n\n\t\tshowServerInstructions( server ) {\n\t\t\tif ( typeof this.serverInstructions[ server ] !== 'undefined' ) {\n\t\t\t\tconst serverTab = this.serverInstructions[ server ];\n\t\t\t\tserverTab.removeClass( 'sui-hidden' );\n\t\t\t}\n\n\t\t\tif ( 'apache' === server ) {\n\t\t\t\t$( '.enable-cache-wrap-' + server ).removeClass( 'sui-hidden' );\n\t\t\t} else {\n\t\t\t\t$( '#enable-cache-wrap' ).addClass( 'sui-hidden' );\n\t\t\t}\n\t\t},\n\n\t\treloadSnippets( expiry_times ) {\n\t\t\tconst self = this;\n\t\t\tconst stop = false;\n\n\t\t\tfor ( const i in self.snippets ) {\n\t\t\t\tif ( self.snippets.hasOwnProperty( i ) ) {\n\t\t\t\t\tFetcher.caching.setExpiration( expiry_times );\n\t\t\t\t\tFetcher.caching.reloadSnippets( i, expiry_times )\n\t\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\t\tif ( stop ) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tself.snippets[ response.type ].text( response.code );\n\t\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tgetExpiryTimes( type ) {\n\t\t\tlet expiry_times = [];\n\t\t\tif ( 'all' === type ) {\n\t\t\t\tconst all = $( '#set-expiry-all' ).val();\n\t\t\t\texpiry_times = {\n\t\t\t\t\texpiry_javascript: all,\n\t\t\t\t\texpiry_css: all,\n\t\t\t\t\texpiry_media: all,\n\t\t\t\t\texpiry_images: all,\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\texpiry_times = {\n\t\t\t\t\texpiry_javascript: $( '#set-expiry-javascript' ).val(),\n\t\t\t\t\texpiry_css: $( '#set-expiry-css' ).val(),\n\t\t\t\t\texpiry_media: $( '#set-expiry-media' ).val(),\n\t\t\t\t\texpiry_images: $( '#set-expiry-images' ).val(),\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn expiry_times;\n\t\t},\n\t};\n}( jQuery ) );\n","import Fetcher from '../utils/fetcher';\n\n( function( $ ) {\n\tWPHB_Admin.dashboard = {\n\t\tmodule: 'dashboard',\n\n\t\tinit: function() {\n\t\t\tif ( wphbDashboardStrings )\n\t\t\t\tthis.strings = wphbDashboardStrings;\n\n\t\t\t$( '.wphb-performance-report-item' ).click( function() {\n\t\t\t\tconst url = $( this ).data( 'performance-url' );\n\t\t\t\tif ( url ) {\n\t\t\t\t\tlocation.href = url;\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t$( '#dismiss-cf-notice' ).click( function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\tFetcher.notice.dismissCloudflareDash();\n\t\t\t\tconst cloudFlareDashNotice = $( '.cf-dash-notice' );\n\t\t\t\tcloudFlareDashNotice.slideUp();\n\t\t\t\tcloudFlareDashNotice.parent().addClass( 'no-background-image' );\n\t\t\t} );\n\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * Skip quick setup.\n\t\t */\n\t\tskipSetup() {\n\t\t\tFetcher.dashboard.skipSetup()\n\t\t\t\t.then( () => {\n\t\t\t\t\tlocation.reload();\n\t\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * Run performance test after quick setup.\n\t\t */\n\t\trunPerformanceTest() {\n\t\t\twindow.SUI.closeModal(); // Hide wphb-quick-setup-modal.\n\t\t\t// Show performance test modal\n\t\t\twindow.SUI.openModal( 'run-performance-test-modal', 'wpbody-content', undefined, false );\n\n\t\t\t// Run performance test\n\t\t\twindow.WPHB_Admin.getModule( 'performance' ).performanceTest( this.strings.finishedTestURLsLink );\n\t\t},\n\t};\n}( jQuery ) );\n","import Fetcher from '../utils/fetcher';\n\n( function( $ ) {\n WPHB_Admin.DashboardCloudFlare = {\n init: function( settings ) {\n this.currentStep = settings.currentStep;\n this.data = settings;\n this.email = settings.email;\n this.apiKey = settings.apiKey;\n this.$stepsContainer = $('#cloudflare-steps');\n this.$infoBox = $( '#cloudflare-info' );\n this.$spinner = $( '.cloudflare-spinner' );\n this.$deactivateButton = $('.cloudflare-deactivate.button');\n this.$body = $('body');\n\n this.renderStep( this.currentStep );\n\n this.$body.on( 'click', 'input[type=\"submit\"].cloudflare-clear-cache', function(e ) {\n e.preventDefault();\n this.purgeCache.apply( $(e.target), [this] );\n }.bind(this));\n\n this.$body.on( 'click', '#cf-recheck-zones', function(e ) {\n e.preventDefault();\n $('#cf-recheck-zones').addClass('sui-button-onload');\n this.updateZones.apply( $(e.target), [this] );\n }.bind(this));\n\n\n },\n\n purgeCache: function( self ) {\n // Show spinner\n\t\t\tconst $button = this;\n\t\t\t$button.attr( 'disabled', true );\n\t\t\tself.showSpinner();\n\n Fetcher.cloudflare.purgeCache()\n .then( () => {\n // Show notice\n\t\t\t\t\tWPHB_Admin.notices.show( 'wphb-ajax-update-notice', true, 'success', wphbCachingStrings.successCloudflarePurge );\n // Remove spinner\n\t\t\t\t\t$button.removeAttr( 'disabled' );\n\t\t\t\t\tself.hideSpinner();\n });\n },\n\n renderStep: function( step ) {\n const template = WPHB_Admin.DashboardCloudFlare.template( '#cloudflare-step-' + step );\n const content = template( this.data );\n const self = this;\n\n if ( content ) {\n this.currentStep = step;\n this.$stepsContainer\n .hide()\n .html( template( this.data ) )\n .fadeIn()\n .find( 'form' )\n .on( 'submit', function( e ) {\n e.preventDefault();\n self.submitStep.call( self, $(this) );\n });\n\n this.$spinner = this.$stepsContainer.find( '.cloudflare-spinner' );\n }\n\n this.bindEvents();\n },\n\n bindEvents: function() {\n const $howToInstructions = $('#cloudflare-how-to');\n\n $howToInstructions.hide();\n\n $('a.cloudflare-how-to-title').click( function( e ) {\n e.preventDefault();\n $howToInstructions.toggle();\n });\n\n this.$stepsContainer.find( 'select' ).each( function() {\n\t\t\t\tSUI.suiSelect( this );\n });\n\n if ( 'final' === this.currentStep ) {\n this.$deactivateButton.removeClass( 'hidden' );\n } else {\n this.$deactivateButton.addClass( 'hidden' );\n }\n },\n\n emptyInfoBox: function() {\n this.$infoBox.html('');\n this.$infoBox.removeClass();\n },\n\n updateZones: function( self ) {\n self.hideInfoBox();\n Fetcher.cloudflare.recheckZones()\n .then( ( response ) => {\n self.data.zones = response.zones;\n self.renderStep(self.currentStep);\n $('#cf-recheck-zones').removeClass('sui-button-onload');\n\n }).catch( ( error ) => {\n self.showInfoBox( error, 'warning' );\n $('#cf-recheck-zones').removeClass('sui-button-onload');\n });\n },\n\n showInfoBox: function( message, notice_class = 'error' ) {\n this.$infoBox.addClass( 'sui-notice' );\n this.$infoBox.addClass( 'sui-notice-' + notice_class );\n this.$infoBox.addClass( 'sui-notice-sm' );\n this.$infoBox.html( '<p>' + message + ' </p>' );\n },\n\n hideInfoBox: function() {\n this.$infoBox.removeClass();\n this.$infoBox.html( '' );\n },\n\n showSpinner: function() {\n this.$spinner.css( 'visibility', 'visible' );\n },\n\n hideSpinner: function() {\n this.$spinner.css( 'visibility', 'hidden' );\n },\n\n submitStep: function( $form ) {\n\t\t\tconst self = this;\n\n\t\t\t$form.find( 'input[type=submit]' ).attr( 'disabled', 'true' );\n\t\t\tthis.emptyInfoBox();\n\t\t\tthis.showSpinner();\n\n\t\t\tFetcher.cloudflare.connect( this.currentStep, $form.serialize(), this.data )\n .then( ( response ) => {\n\t\t\t\t\tself.data = response.newData;\n\t\t\t\t\tself.renderStep( response.nextStep );\n\n\t\t\t\t\tif ( response.nextStep === 'final' ) {\n\t\t\t\t\t\twindow.location.href = response.redirect;\n\t\t\t\t\t}\n })\n\t\t\t\t.catch( ( error ) => {\n\t\t\t\t\tself.showInfoBox( error );\n\t\t\t\t});\n\n\t\t\t$form.find( 'input[type=submit]' ).removeAttr( 'disabled' );\n\t\t\tself.hideSpinner();\n }\n };\n\n WPHB_Admin.DashboardCloudFlare.template = _.memoize(function ( id ) {\n let compiled,\n options = {\n evaluate: /<#([\\s\\S]+?)#>/g,\n interpolate: /\\{\\{\\{([\\s\\S]+?)\\}\\}\\}/g,\n escape: /\\{\\{([^\\}]+?)\\}\\}(?!\\})/g,\n variable: 'data'\n };\n\n return function ( data ) {\n _.templateSettings = options;\n compiled = compiled || _.template( $( id ).html() );\n return compiled( data );\n };\n });\n}(jQuery));\n","/* global WPHB_Admin */\n/* global wphbUptimeStrings */\n/* global wphb */\n/* global google */\n\n/**\n * Internal dependencies\n */\nimport Fetcher from '../utils/fetcher';\n\n( function( $ ) {\n\tWPHB_Admin.uptime = {\n\t\tmodule: 'uptime',\n\t\t$dataRangeSelector: null,\n\t\tchartData: null,\n\t\tdowntimeChartData: null,\n\t\ttimer: null,\n\t\t$spinner: null,\n\t\tdataRange: null,\n\t\tdateFormat: 'MMM d',\n\t\tinit() {\n\t\t\tthis.$spinner = $( '.spinner' );\n\t\t\tthis.strings = wphbUptimeStrings;\n\t\t\tthis.$dataRangeSelector = $( '#wphb-uptime-data-range' );\n\t\t\tthis.chartData = $( '#uptime-chart-json' ).val();\n\t\t\tthis.downtimeChartData = $( '#downtime-chart-json' ).val();\n\t\t\tthis.$disableUptime = $( '#wphb-disable-uptime' );\n\t\t\tthis.dataRange = this.getUrlParameter( 'data-range' );\n\n\t\t\tthis.$dataRangeSelector.change( function() {\n\t\t\t\twindow.location.href = $( this ).find( ':selected' ).data( 'url' );\n\t\t\t} );\n\n\t\t\tconst self = this;\n\n\t\t\tif ( 'undefined' !== typeof google ) {\n\t\t\t\tgoogle.charts.load( 'current', { packages: [ 'corechart', 'timeline' ] } );\n\t\t\t}\n\n\t\t\tthis.$disableUptime.on( 'click', function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\tself.$spinner.css( 'visibility', 'visible' );\n\t\t\t\tconst value = $( this ).is( ':checked' );\n\t\t\t\tif ( value && self.timer ) {\n\t\t\t\t\tclearTimeout( self.timer );\n\t\t\t\t\tself.$spinner.css( 'visibility', 'hidden' );\n\t\t\t\t} else {\n\t\t\t\t\t// you have 3 seconds to change your mind\n\t\t\t\t\tself.timer = setTimeout( function() {\n\t\t\t\t\t\tlocation.href = self.strings.disableUptimeURL;\n\t\t\t\t\t}, 3000 );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t/* If data range has been selected change the tab urls to retain the chosen range */\n\t\t\tif ( undefined !== this.dataRange ) {\n\t\t\t\t$( '.wrap-wphb-uptime .wphb-tab a' ).each( function() {\n\t\t\t\t\tthis.href += '&data-range=' + self.dataRange;\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tif ( 'day' === this.dataRange ) {\n\t\t\t\tthis.dateFormat = 'h:mma';\n\t\t\t}\n\n\t\t\tif ( null !== document.getElementById( 'uptime-chart' ) ) {\n\t\t\t\tgoogle.charts.setOnLoadCallback( () => this.drawResponseTimeChart() );\n\t\t\t}\n\t\t\tif ( null !== document.getElementById( 'downtime-chart' ) ) {\n\t\t\t\tgoogle.charts.setOnLoadCallback( () => this.drawDowntimeChart() );\n\t\t\t}\n\n\t\t\t/* Re-check Uptime status */\n\t\t\t$( '#uptime-re-check-status' ).on( 'click', function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\tlocation.reload();\n\t\t\t} );\n\n\t\t\t// Resend email verification.\n\t\t\t$( '.wphb-resend-recipient' ).on( 'click', ( e ) => {\n\t\t\t\tFetcher.uptime.resendConfirmationEmail( e.currentTarget.dataset.name, e.currentTarget.dataset.email )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\tWPHB_Admin.notices.show(\n\t\t\t\t\t\t\t'wphb-ajax-update-notice',\n\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t\t'success',\n\t\t\t\t\t\t\tresponse.message,\n\t\t\t\t\t\t);\n\t\t\t\t\t} );\n\t\t\t} );\n\t\t},\n\n\t\tdrawResponseTimeChart() {\n\t\t\tconst data = new google.visualization.DataTable();\n\t\t\tdata.addColumn( 'datetime', 'Day' );\n\t\t\tdata.addColumn( 'number', 'Response Time (ms)' );\n\t\t\tdata.addColumn( { type: 'string', role: 'tooltip', p: { html: true } } );\n\t\t\tconst chartArray = JSON.parse( this.chartData );\n\t\t\tfor ( let i = 0; i < chartArray.length; i++ ) {\n\t\t\t\tchartArray[ i ][ 0 ] = new Date( chartArray[ i ][ 0 ] );\n\t\t\t\tchartArray[ i ][ 1 ] = Math.round( chartArray[ i ][ 1 ] );\n\t\t\t\tchartArray[ i ][ 2 ] = this.createUptimeTooltip( chartArray[ i ][ 0 ], chartArray[ i ][ 1 ] );\n\n\t\t\t\t/* brings the graph below the x axis */\n\t\t\t\tif ( Math.round( chartArray[ i ][ 1 ] ) === 0 ) {\n\t\t\t\t\tchartArray[ i ][ 1 ] = -100;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tdata.addRows( chartArray );\n\n\t\t\tconst options = {\n\t\t\t\tchartArea: {\n\t\t\t\t\tleft: 80,\n\t\t\t\t\ttop: 20,\n\t\t\t\t\twidth: '90%',\n\t\t\t\t\theight: '90%',\n\t\t\t\t},\n\t\t\t\tcolors: [ '#24ADE5' ],\n\t\t\t\tcurveType: 'function',\n\t\t\t\t/*interpolateNulls: true,*/\n\t\t\t\tlegend: { position: 'none' },\n\t\t\t\tvAxis: {\n\t\t\t\t\tformat: '#### ms',\n\t\t\t\t\tgridlines: { count: 5 },\n\t\t\t\t\tminorGridlines: { count: 0 },\n\t\t\t\t\tviewWindow: { min: 0 }, /* don't display negative values */\n\t\t\t\t},\n\t\t\t\thAxis: {\n\t\t\t\t\tformat: this.dateFormat,\n\t\t\t\t\tminorGridlines: { count: 0 },\n\t\t\t\t},\n\t\t\t\ttooltip: { isHtml: true },\n\t\t\t\tseries: {\n\t\t\t\t\t0: { axis: 'Resp' },\n\t\t\t\t},\n\t\t\t\taxes: {\n\t\t\t\t\ty: {\n\t\t\t\t\t\tResp: { label: 'Response Time (ms)' },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\n\t\t\tconst chart = new google.visualization.AreaChart( document.getElementById( 'uptime-chart' ) );\n\t\t\tchart.draw( data, options );\n\n\t\t\t$( window ).resize( function() {\n\t\t\t\tchart.draw( data, options );\n\t\t\t} );\n\t\t},\n\n\t\tdrawDowntimeChart() {\n\t\t\tconst container = document.getElementById( 'downtime-chart' );\n\t\t\tconst chart = new google.visualization.Timeline( container );\n\t\t\tconst dataTable = new google.visualization.DataTable();\n\t\t\tdataTable.addColumn( { type: 'string' } );\n\t\t\tdataTable.addColumn( { type: 'string', id: 'Status' } );\n\t\t\tdataTable.addColumn( { type: 'string', role: 'tooltip', p: { html: true } } );\n\t\t\tdataTable.addColumn( { type: 'datetime', id: 'Start Period' } );\n\t\t\tdataTable.addColumn( { type: 'datetime', id: 'End Period' } );\n\t\t\tconst chartArray = JSON.parse( this.downtimeChartData );\n\t\t\tfor ( let i = 0; i < chartArray.length; i++ ) {\n\t\t\t\tchartArray[ i ][ 0 ] = chartArray[ i ][ 0 ];\n\t\t\t\tchartArray[ i ][ 1 ] = chartArray[ i ][ 1 ];\n\t\t\t\tchartArray[ i ][ 2 ] = chartArray[ i ][ 2 ];\n\t\t\t\tchartArray[ i ][ 3 ] = new Date( chartArray[ i ][ 3 ] );\n\t\t\t\tchartArray[ i ][ 4 ] = new Date( chartArray[ i ][ 4 ] );\n\t\t\t}\n\t\t\tdataTable.addRows( chartArray );\n\t\t\tconst colors = [];\n\t\t\tconst colorMap = {\n\t\t\t\t// should contain a map of category -> color for every category\n\t\t\t\tDown: '#FF6D6D',\n\t\t\t\tUnknown: '#F8F8F8',\n\t\t\t\tUp: '#D1F1EA',\n\t\t\t};\n\t\t\tfor ( let i = 0; i < dataTable.getNumberOfRows(); i++ ) {\n\t\t\t\tcolors.push( colorMap[ dataTable.getValue( i, 1 ) ] );\n\t\t\t}\n\t\t\tconst options = {\n\t\t\t\ttimeline: {\n\t\t\t\t\tshowBarLabels: false,\n\t\t\t\t\tshowRowLabels: false,\n\t\t\t\t\tbarLabelStyle: {\n\t\t\t\t\t\tfontSize: 33,\n\t\t\t\t\t},\n\t\t\t\t\tavoidOverlappingGridLines: false,\n\t\t\t\t},\n\t\t\t\thAxis: {\n\t\t\t\t\tformat: this.dateFormat,\n\n\t\t\t\t},\n\t\t\t\tcolors,\n\t\t\t\theight: 170,\n\t\t\t};\n\t\t\tconst origColors = [];\n\t\t\tgoogle.visualization.events.addListener( chart, 'ready', function() {\n\t\t\t\tconst bars = container.getElementsByTagName( 'rect' );\n\t\t\t\tArray.prototype.forEach.call( bars, function( bar ) {\n\t\t\t\t\tif ( parseFloat( bar.getAttribute( 'x' ) ) > 0 ) {\n\t\t\t\t\t\torigColors.push( bar.getAttribute( 'fill' ) );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t} );\n\t\t\tgoogle.visualization.events.addListener( chart, 'onmouseover', function( e ) {\n\t\t\t\t// set original color\n\t\t\t\tconst bars = container.getElementsByTagName( 'rect' );\n\t\t\t\tbars[ bars.length - 1 ].setAttribute( 'fill', origColors[ e.row ] );\n\t\t\t\tconst width = bars[ bars.length - 1 ].getAttribute( 'width' );\n\t\t\t\tif ( width > 3 ) {\n\t\t\t\t\tbars[ bars.length - 1 ].setAttribute( 'width', ( width - 1 ) + 'px' );\n\t\t\t\t}\n\t\t\t} );\n\t\t\tchart.draw( dataTable, options );\n\n\t\t\t$( window ).resize( function() {\n\t\t\t\tchart.draw( dataTable, options );\n\t\t\t} );\n\t\t},\n\n\t\tcreateUptimeTooltip( date, responseTime ) {\n\t\t\tconst formattedDate = this.formatTooltipDate( date );\n\t\t\treturn '<span class=\"response-time-tooltip\">' + responseTime + 'ms</span>' +\n\t\t\t\t'<span class=\"uptime-date-tooltip\">' + formattedDate + '</span>';\n\t\t},\n\n\t\tformatTooltipDate( date ) {\n\t\t\tconst monthNames = [\n\t\t\t\t'Jan', 'Feb', 'Mar',\n\t\t\t\t'Apr', 'May', 'Jun',\n\t\t\t\t'Jul', 'Aug', 'Sep',\n\t\t\t\t'Oct', 'Nov', 'Dec',\n\t\t\t];\n\n\t\t\tconst day = date.getDate();\n\t\t\tconst monthIndex = date.getMonth();\n\t\t\tconst hh = date.getHours();\n\t\t\tlet h = hh;\n\t\t\tconst minutes = ( date.getMinutes() < 10 ? '0' : '' ) + date.getMinutes();\n\t\t\tlet dd = 'AM';\n\t\t\tif ( h >= 12 ) {\n\t\t\t\th = hh - 12;\n\t\t\t\tdd = 'PM';\n\t\t\t}\n\t\t\tif ( h === 0 ) {\n\t\t\t\th = 12;\n\t\t\t}\n\t\t\treturn monthNames[ monthIndex ] + ' ' + day + ' @ ' + h + ':' + minutes + dd;\n\t\t},\n\n\t\tgetUrlParameter: function getUrlParameter( sParam ) {\n\t\t\tconst sPageURL = decodeURIComponent( window.location.search.substring( 1 ) ),\n\t\t\t\tsURLVariables = sPageURL.split( '&' );\n\t\t\tlet sParameterName,\n\t\t\t\ti;\n\n\t\t\tfor ( i = 0; i < sURLVariables.length; i++ ) {\n\t\t\t\tsParameterName = sURLVariables[ i ].split( '=' );\n\n\t\t\t\tif ( sParameterName[ 0 ] === sParam ) {\n\t\t\t\t\treturn sParameterName[ 1 ] === undefined ? true : sParameterName[ 1 ];\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t};\n}( jQuery ) );\n","import Fetcher from '../utils/fetcher';\n\n( function( $ ) {\n\tWPHB_Admin.cloudflare = {\n\t\tmodule: 'cloudflare',\n\n\t\tinit() {\n\t\t\tconst self = this,\n\t\t\t\tcfSetExpiryButton = $( '#set-cf-expiry-button' ),\n\t\t\t\tcfSelector = $( '#set-expiry-all' );\n\n\t\t\t/** @member {Array} wphb */\n\t\t\tif ( wphb.cloudflare.is.connected ) {\n\t\t\t\tcfSetExpiryButton.on( 'click', ( e ) => {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tself.setExpiry.call( self, cfSelector );\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn this;\n\t\t},\n\n\t\tsetExpiry( selector ) {\n\t\t\tconst spinner = $( '.wphb-expiry-changes .spinner' );\n\t\t\tconst button = $( '.wphb-expiry-changes input[type=\"submit\"]' );\n\n\t\t\tspinner.addClass( 'visible' );\n\t\t\tbutton.addClass( 'disabled' );\n\n\t\t\tFetcher.cloudflare.setExpiration( $( selector ).val() )\n\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t//window.location.reload();\n\t\t\t\t\t$( '#wphb-expiry-change-notice' ).hide();\n\t\t\t\t\tspinner.removeClass( 'visible' );\n\t\t\t\t\tbutton.removeClass( 'disabled' );\n\n\t\t\t\t\tif ( 'undefined' !== typeof response && response.success ) {\n\t\t\t\t\t\tWPHB_Admin.notices.show( 'wphb-ajax-update-notice', true, 'success' );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tWPHB_Admin.notices.show( 'wphb-ajax-update-notice', true, 'error', wphb.strings.errorSettingsUpdate );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t},\n\n\t};\n}( jQuery ) );\n","/* global WPHB_Admin */\n/* global wphb */\n\n/**\n * Internal dependencies\n */\nimport Fetcher from '../utils/fetcher';\n\n( function( $ ) {\n\t'use strict';\n\n\tWPHB_Admin.advanced = {\n\t\tmodule: 'advanced',\n\n\t\tinit() {\n\t\t\tconst self = this,\n\t\t\t\tsystemInfoDropdown = $( '#wphb-system-info-dropdown' ),\n\t\t\t\thash = window.location.hash;\n\n\t\t\t/**\n\t\t\t * Process form submit for advanced tools forms\n\t\t\t */\n\t\t\t$( '#wphb-db-delete-all, .wphb-db-row-delete' ).on( 'click', function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\tself.showModal( e.target.dataset.entries, e.target.dataset.type );\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Process form submit for advanced tools forms\n\t\t\t */\n\t\t\t$( 'form[id=\"advanced-db-settings\"], form[id=\"advanced-general-settings\"]' ).on( 'submit', function( e ) {\n\t\t\t\te.preventDefault();\n\n\t\t\t\tconst spinner = $( this ).parent().find( '.sui-icon-loader' );\n\t\t\t\tspinner.removeClass( 'sui-hidden' );\n\n\t\t\t\tFetcher.advanced.saveSettings( $( this ).serialize(), e.target.id )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\tspinner.addClass( 'sui-hidden' );\n\t\t\t\t\t\tif ( 'undefined' !== typeof response && response.success ) {\n\t\t\t\t\t\t\t// Schedule cleanup.\n\t\t\t\t\t\t\tif ( 'advanced-db-settings' === e.target.id ) {\n\t\t\t\t\t\t\t\tFetcher.advanced.scheduleCleanup();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tWPHB_Admin.notices.show( 'wphb-notice-advanced-tools', true, 'success' );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tWPHB_Admin.notices.show( 'wphb-notice-advanced-tools', true, 'error', wphb.strings.errorSettingsUpdate );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Show/hide schedule for database cleanup.\n\t\t\t */\n\t\t\t$( 'input[id=\"scheduled_cleanup\"]' ).on( 'change', function() {\n\t\t\t\t$( '.schedule-box' ).toggle();\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Show initial system information table.\n\t\t\t */\n\t\t\t$( '#wphb-system-info-php' ).removeClass( 'sui-hidden' );\n\t\t\tif ( hash ) {\n\t\t\t\tconst system = hash.replace( '#', '' );\n\t\t\t\t$( '.wphb-sys-info-table' ).addClass( 'sui-hidden' );\n\t\t\t\t$( '#wphb-system-info-' + system ).removeClass( 'sui-hidden' );\n\t\t\t\tsystemInfoDropdown.val( system ).trigger( 'sui:change' );\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Show/hide system information tables on dropdown change.\n\t\t\t */\n\t\t\tsystemInfoDropdown.change( function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\t$( '.wphb-sys-info-table' ).addClass( 'sui-hidden' );\n\t\t\t\t$( '#wphb-system-info-' + $( this ).val() ).removeClass( 'sui-hidden' );\n\t\t\t\tlocation.hash = $( this ).val();\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Paste default values to url strings option.\n\t\t\t *\n\t\t\t * @since 1.9.0\n\t\t\t */\n\t\t\t$( '#wphb-adv-paste-value' ).on( 'click', function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\tconst urlStrings = $( 'textarea[name=\"url_strings\"]' );\n\t\t\t\tif ( '' === urlStrings.val() ) {\n\t\t\t\t\turlStrings.val( urlStrings.attr( 'placeholder' ) );\n\t\t\t\t} else {\n\t\t\t\t\turlStrings.val( urlStrings.val() + '\\n' + urlStrings.attr( 'placeholder' ) );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Toggle woo cart fragments settings.\n\t\t\t *\n\t\t\t * @since 2.2.0\n\t\t\t */\n\t\t\tconst fragmentsToggle = document.getElementById( 'cart_fragments' );\n\t\t\tif ( fragmentsToggle ) {\n\t\t\t\tfragmentsToggle.addEventListener( 'change', function( e ) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\t$( '#cart_fragments_desc' ).toggle();\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * Show the modal window asking if a user is sure he wants to delete the db records.\n\t\t *\n\t\t * @param {string} items Number of records to delete.\n\t\t * @param {string} type Data type to delete from db (See data-type element for each row in the code).\n\t\t */\n\t\tshowModal( items, type ) {\n\t\t\tconst dialog = wphb.strings.db_delete + ' ' + items + ' ' + wphb.strings.db_entries + '? ' + wphb.strings.db_backup;\n\t\t\tconst modal = $( '.wphb-database-cleanup-modal' );\n\n\t\t\tmodal.find( 'p' ).html( dialog );\n\t\t\tmodal.find( '.wphb-delete-db-row' ).attr( 'data-type', type );\n\n\t\t\twindow.SUI.openModal( 'wphb-database-cleanup-modal', 'wpbody-content', undefined, false );\n\t\t},\n\n\t\t/**\n\t\t * Process database cleanup (both individual and all entries).\n\t\t *\n\t\t * @param {string} type Data type to delete from db (See data-type element for each row in the code).\n\t\t */\n\t\tconfirmDelete( type ) {\n\t\t\twindow.SUI.closeModal();\n\n\t\t\tlet row;\n\t\t\tconst footer = $( '.box-advanced-db .sui-box-footer' );\n\n\t\t\tif ( 'all' === type ) {\n\t\t\t\trow = footer;\n\t\t\t} else {\n\t\t\t\trow = $( '.box-advanced-db .wphb-border-frame' ).find( 'div[data-type=' + type + ']' );\n\t\t\t}\n\n\t\t\tconst spinner = row.find( '.sui-icon-loader' );\n\t\t\tconst button = row.find( '.wphb-db-row-delete' );\n\n\t\t\tspinner.removeClass( 'sui-hidden' );\n\t\t\tbutton.addClass( 'sui-hidden' );\n\n\t\t\tFetcher.advanced.deleteSelectedData( type )\n\t\t\t\t.then( ( response ) => {\n\t\t\t\t\tWPHB_Admin.notices.show( 'wphb-notice-advanced-tools', false, 'success', response.message );\n\t\t\t\t\tspinner.addClass( 'sui-hidden' );\n\t\t\t\t\tbutton.removeClass( 'sui-hidden' );\n\n\t\t\t\t\tfor ( const prop in response.left ) {\n\t\t\t\t\t\tif ( 'total' === prop ) {\n\t\t\t\t\t\t\tconst leftString = wphb.strings.deleteAll + ' (' + response.left[ prop ] + ')';\n\t\t\t\t\t\t\tfooter.find( '.wphb-db-delete-all' ).html( leftString );\n\t\t\t\t\t\t\tfooter.find( '#wphb-db-delete-all' ).attr( 'data-entries', response.left[ prop ] );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst itemRow = $( '.box-advanced-db div[data-type=' + prop + ']' );\n\t\t\t\t\t\t\titemRow.find( '.wphb-db-items' ).html( response.left[ prop ] );\n\t\t\t\t\t\t\titemRow.find( '.wphb-db-row-delete' ).attr( 'data-entries', response.left[ prop ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} )\n\t\t\t\t.catch( ( error ) => {\n\t\t\t\t\tWPHB_Admin.notices.show( 'wphb-notice-advanced-tools', false, 'error', error );\n\t\t\t\t\tspinner.addClass( 'sui-hidden' );\n\t\t\t\t} );\n\t\t},\n\t};\n}( jQuery ) );\n","import Fetcher from '../utils/fetcher';\n\n( function( $ ) {\n 'use strict';\n WPHB_Admin.settings = {\n\n module: 'settings',\n\n init: function () {\n\n let body = $('body');\n let wrap = body.find('.wrap-wphb-settings');\n\n // Save settings\n body.on('click', 'button.sui-button', function (e) {\n e.preventDefault();\n const form_data = body.find('.settings-frm').serialize();\n\n const contrastDiv = $('#color_accessible');\n if ( contrastDiv.length ) {\n if ( contrastDiv.is(':checked') ) {\n wrap.addClass('sui-color-accessible');\n } else {\n wrap.removeClass('sui-color-accessible');\n }\n }\n Fetcher.settings.saveSettings( form_data )\n .then( () => {\n\t\t\t\t\t\tWPHB_Admin.notices.show('wphb-ajax-update-notice', true);\n });\n return false;\n });\n\n /**\n * Parse remove settings change.\n */\n $('input[name=remove_settings]').on('change', function (e) {\n const otherClass = 'remove_settings-false' === e.target.id ? 'remove_settings-true' : 'remove_settings-false';\n e.target.parentNode.classList.add('active');\n document.getElementById(otherClass).parentNode.classList.remove('active');\n });\n\n /**\n * Parse remove data change.\n */\n $('input[name=remove_data]').on('change', function (e) {\n const otherClass = 'remove_data-false' === e.target.id ? 'remove_data-true' : 'remove_data-false';\n e.target.parentNode.classList.add('active');\n document.getElementById(otherClass).parentNode.classList.remove('active');\n });\n\n return this;\n },\n\n /**\n * Parse confirm settings reset from the modal.\n *\n * @since 2.0.0\n */\n confirmReset: () => {\n Fetcher.settings.resetSettings()\n .then( () => {\n window.location.href = wphb.urls.resetSettings;\n });\n }\n\n };\n}( jQuery ));\n","/**\n * Strings internationalization\n *\n * @param str\n *\n * @returns {*|string}\n */\nexport const __ = ( str ) => {\n return wphb.strings[ str ] || '';\n};\n\n/**\n * Get a link to a HB screen\n *\n * @param {string} screen Screen slug\n * @returns {string}\n */\nexport const getLink = ( screen ) => {\n return wphb.links[ screen ] || '';\n};\n\n","const Row = ( _element, _filter, _filter_sec ) => {\n let $el = _element,\n filter = _filter.toLowerCase(),\n filterSecondary = false,\n selected = false,\n visible = true;\n\n const $include = $el.find( '.toggle-include' ),\n $combine = $el.find( '.toggle-combine' ),\n $minify = $el.find( '.toggle-minify' ),\n $posFooter = $el.find( '.toggle-position-footer' ),\n $defer = $el.find( '.toggle-defer' ),\n $inline = $el.find( '.toggle-inline' ),\n $disableIcon = $el.find( '.toggle-cross > i' ),\n $selectCheckbox = $el.find( '.wphb-minification-file-select input[type=checkbox]' );\n\n if ( _filter_sec ) {\n filterSecondary = _filter_sec.toLowerCase();\n }\n\n return {\n hide: function() {\n $el.addClass( 'out-of-filter' );\n visible = false;\n },\n\n show: function() {\n $el.removeClass( 'out-of-filter' );\n visible = true;\n },\n\n getElement: function() {\n return $el;\n },\n\n getId: function() {\n return $el.attr( 'id' );\n },\n\n getFilter: function() {\n return filter;\n },\n\n matchFilter: function( text ) {\n if ( text === '' ) {\n return true;\n }\n\n text = text.toLowerCase();\n return filter.search( text ) > - 1;\n },\n\n matchSecondaryFilter: function( text ) {\n if ( text === '' ) {\n return true;\n }\n\n if ( ! filterSecondary ) {\n return false;\n }\n\n text = text.toLowerCase();\n return filterSecondary === text;\n },\n\n isVisible: function() {\n return visible;\n },\n\n isSelected: function() {\n return selected;\n },\n\n isType: function( type ) {\n return type === $selectCheckbox.attr( 'data-type' )\n },\n\n select: function() {\n selected = true;\n\t\t\t$selectCheckbox.prop( 'checked', true );\n },\n\n unSelect: function() {\n selected = false;\n\t\t\t$selectCheckbox.prop( 'checked', false );\n },\n\n change: function( what, value ) {\n switch ( what ) {\n case 'minify': {\n $minify.prop( 'checked', value );\n $minify.toggleClass('changed');\n let row = $minify.closest('.wphb-border-row');\n let row_status = row.find('span.wphb-row-status');\n row_status.removeClass('hidden');\n break;\n }\n case 'combine': {\n $combine.prop( 'checked', value );\n $combine.toggleClass('changed');\n let row = $combine.closest('.wphb-border-row');\n let row_status = row.find('span.wphb-row-status');\n row_status.removeClass('hidden');\n break;\n }\n case 'defer': {\n $defer.prop( 'checked', value );\n $defer.toggleClass('changed');\n let row = $defer.closest('.wphb-border-row');\n let row_status = row.find('span.wphb-row-status');\n row_status.removeClass('hidden');\n break;\n }\n\t\t\t\tcase 'inline': {\n\t\t\t\t\t$inline.prop( 'checked', value );\n\t\t\t\t\t$inline.toggleClass('changed');\n let row = $inline.closest('.wphb-border-row');\n let row_status = row.find('span.wphb-row-status');\n row_status.removeClass('hidden');\n\t\t\t\t\tbreak;\n\t\t\t\t}\n case 'include': {\n $disableIcon.removeClass();\n $include.prop( 'checked', value );\n $include.toggleClass('changed');\n let row = $include.closest('.wphb-border-row');\n let row_status = row.find('span.wphb-row-status');\n row_status.removeClass('hidden');\n if ( value ) {\n $el.removeClass( 'disabled' );\n $disableIcon.addClass( 'dev-icon dev-icon-cross' );\n $include.attr( 'checked', true );\n } else {\n $el.addClass( 'disabled' );\n $disableIcon.addClass( 'wdv-icon wdv-icon-refresh' );\n $include.removeAttr( 'checked' );\n }\n break;\n }\n case 'footer': {\n $posFooter.prop( 'checked', value );\n $posFooter.toggleClass('changed');\n let row = $posFooter.closest('.wphb-border-row');\n let row_status = row.find('span.wphb-row-status');\n row_status.removeClass('hidden');\n break;\n }\n }\n }\n\n };\n};\n\nexport default Row;\n","const RowsCollection = () => {\n let items = [];\n let currentFilter = '';\n let currentSecondaryFilter = '';\n\n return {\n push: function( row ) {\n if ( typeof row === 'object' ) {\n items.push( row );\n }\n },\n\n getItems: function() {\n return items;\n },\n\n getItem: function( i ) {\n if ( items[i] ) {\n return items[i];\n }\n return false;\n },\n\n /**\n * Get a collection item by type and ID\n * @param type\n * @param id\n */\n getItemById: function( type, id ) {\n let value = false;\n for ( let i in items ) {\n if ( 'wphb-file-' + type + '-' + id === items[i].getId() ) {\n value = items[i];\n break;\n }\n }\n return value;\n },\n\n getItemsByDataType: function( type ) {\n\t\t\tlet selected = [];\n\n\t\t\tfor ( let i in items ) {\n\t\t\t\tif ( items[i].isType( type ) ) {\n\t\t\t\t\tselected.push( items[i] );\n }\n\t\t\t}\n\n\t\t\treturn selected;\n },\n\n getVisibleItems: function() {\n let visible = [];\n for ( let i in items ) {\n if ( items[i].isVisible() ) {\n visible.push( items[i] );\n }\n }\n return visible;\n },\n\n getSelectedItems: function() {\n let selected = [];\n\n for ( let i in items ) {\n if ( items[i].isVisible() && items[i].isSelected() ) {\n selected.push( items[i] );\n }\n }\n\n return selected;\n },\n\n addFilter: function( filter, type ) {\n if ( type === 'secondary' ) {\n currentSecondaryFilter = filter;\n }\n else {\n currentFilter = filter;\n }\n },\n\n applyFilters: function() {\n for ( let i in items ) {\n if ( items[i] ) {\n if ( items[i].matchFilter( currentFilter ) && items[i].matchSecondaryFilter( currentSecondaryFilter ) ) {\n items[i].show();\n }\n else {\n items[i].hide();\n }\n }\n\n }\n }\n };\n};\n\nexport default RowsCollection;","/* global WPHB_Admin */\n/* global wphb */\n\n/**\n * Asset Optimization scripts.\n *\n * @package Hummingbird\n */\n\nimport Fetcher from '../utils/fetcher';\nimport { __, getLink } from '../utils/helpers';\nimport Row from '../minification/Row';\nimport RowsCollection from '../minification/RowsCollection';\nimport Scanner from '../minification/Scanner';\n\n( function( $ ) {\n\t'use strict';\n\n\tWPHB_Admin.minification = {\n\n\t\tmodule: 'minification',\n\t\tmoduleNoticeId: 'wphb-notice-minification-advanced-settings-updated',\n\t\t$checkFilesButton: null,\n\t\t$checkFilesResultsContainer: null,\n\t\tcheckURLSList: null,\n\t\tcheckedURLS: 0,\n\n\t\tinit() {\n\t\t\tconst self = this;\n\n\t\t\t// Init files scanner.\n\t\t\tthis.scanner = new Scanner(\n\t\t\t\twphb.minification.get.totalSteps,\n\t\t\t\twphb.minification.get.currentScanStep\n\t\t\t);\n\t\t\tthis.scanner.onFinishStep = this.updateProgressBar;\n\n\t\t\t// Check files button.\n\t\t\tthis.$checkFilesButton = $( '#check-files' );\n\n\t\t\tif ( this.$checkFilesButton.length ) {\n\t\t\t\tthis.$checkFilesButton.click( function( e ) {\n\t\t\t\t\te.preventDefault();\n\n\t\t\t\t\twindow.SUI.openModal( 'check-files-modal', 'wpbody-content', undefined, false );\n\n\t\t\t\t\t$( this ).attr( 'disabled', true );\n\t\t\t\t\tself.updateProgressBar( self.scanner.getProgress() );\n\t\t\t\t\tself.scanner.scan();\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t// Cancel scan button.\n\t\t\t$( 'body' ).on( 'click', '#cancel-minification-check', ( e ) => {\n\t\t\t\te.preventDefault();\n\t\t\t\tthis.updateProgressBar( 0, true );\n\t\t\t\tthis.scanner.cancel()\n\t\t\t\t\t.then( () => {\n\t\t\t\t\t\twindow.location.href = getLink( 'minification' );\n\t\t\t\t\t} );\n\t\t\t} );\n\n\t\t\t// Track changes done to minification files.\n\t\t\t$( ':input.toggle-checkbox, :input[id*=\"wphb-minification-include\"]' )\n\t\t\t\t.on( 'change', function() {\n\t\t\t\t\tconst row = $( this ).closest( '.wphb-border-row' );\n\t\t\t\t\tconst rowStatus = row.find( 'span.wphb-row-status-changed' );\n\t\t\t\t\t$( this ).toggleClass( 'changed' );\n\t\t\t\t\tif ( row.find( '.changed' ).length !== 0 ) {\n\t\t\t\t\t\trowStatus.removeClass( 'sui-hidden' );\n\t\t\t\t\t} else {\n\t\t\t\t\t\trowStatus.addClass( 'sui-hidden' );\n\t\t\t\t\t}\n\t\t\t\t\tconst changed = $( '.wphb-minification-files' ).find( 'input.changed' );\n\t\t\t\t\tif ( changed.length !== 0 ) {\n\t\t\t\t\t\t$( '#wphb-publish-changes' ).removeClass( 'disabled' );\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$( '#wphb-publish-changes' ).addClass( 'disabled' );\n\t\t\t\t\t}\n\t\t\t\t} );\n\n\t\t\t// Enable/disable bulk update button.\n\t\t\t$( ':input.wphb-minification-file-selector, :input.wphb-minification-bulk-file-selector' ).on( 'change', function() {\n\t\t\t\t$( this ).toggleClass( 'changed' );\n\t\t\t\tconst changed = $( '.wphb-minification-files' ).find( 'input.changed' );\n\t\t\t\tconst bulkUpdateButton = $( '.sui-actions-left > #bulk-update' );\n\n\t\t\t\tif ( changed.length === 0 ) {\n\t\t\t\t\tbulkUpdateButton.addClass( 'button-notice disabled' );\n\t\t\t\t} else {\n\t\t\t\t\tbulkUpdateButton.removeClass( 'button-notice disabled' );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t// Show warning before switching to advanced/basic view\n\t\t\tconst switchButton = document.getElementById( 'wphb-switch-button' );\n\t\t\tif ( switchButton ) {\n\t\t\t\tswitchButton.addEventListener( 'change', function( e ) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tconst checked = e.target.checked;\n\n\t\t\t\t\tif ( true === checked ) {\n\t\t\t\t\t\twindow.SUI.openModal( 'wphb-advanced-minification-modal', 'wpbody-content', undefined, false );\n\t\t\t\t\t} else {\n\t\t\t\t\t\twindow.SUI.openModal( 'wphb-basic-minification-modal', 'wpbody-content', undefined, false );\n\t\t\t\t\t}\n\n\t\t\t\t\te.target.checked = ! checked;\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t// Filter action button on Asset Optimization page\n\t\t\t$( '#wphb-minification-filter-button' ).on( 'click', function( e ) {\n\t\t\t\t$( '.wphb-minification-filter' ).toggle( 'slow' );\n\t\t\t\t$( '#wphb-minification-filter-button' ).toggleClass( 'active' );\n\t\t\t} );\n\n\t\t\t// Discard changes button click\n\t\t\t$( '.wphb-discard' ).on( 'click', function( e ) {\n\t\t\t\te.preventDefault();\n\n\t\t\t\tif ( confirm( __( 'discardAlert' ) ) ) {\n\t\t\t\t\tlocation.reload();\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t} );\n\n\t\t\t// Enable discard button on any change\n\t\t\t$( '.wphb-enqueued-files input' ).on( 'change', function() {\n\t\t\t\t$( '.wphb-discard' ).attr( 'disabled', false );\n\t\t\t} );\n\n\t\t\t// CDN checkbox update status\n\t\t\tconst checkboxes = $( 'input[type=checkbox][name=use_cdn]' );\n\t\t\tcheckboxes.change( function() {\n\t\t\t\t$( '#cdn_file_exclude' ).toggleClass( 'sui-hidden' );\n\t\t\t\tconst cdnValue = $( this ).is( ':checked' );\n\n\t\t\t\t// Handle two CDN checkboxes on Asset Optimization page\n\t\t\t\tcheckboxes.each( function() {\n\t\t\t\t\tthis.checked = cdnValue;\n\t\t\t\t} );\n\n\t\t\t\t// Update CDN status\n\t\t\t\tFetcher.minification.toggleCDN( cdnValue )\n\t\t\t\t\t.then( () => {\n\t\t\t\t\t\tWPHB_Admin.notices.show( self.moduleNoticeId, true );\n\t\t\t\t\t} );\n\t\t\t} );\n\n\t\t\t// Exclude file buttons.\n\t\t\tconst excludeButtons = $( '.wphb-minification-exclude > :input.toggle-checkbox' );\n\t\t\texcludeButtons.on( 'change', function() {\n\t\t\t\tconst row = $( this ).closest( '.wphb-border-row' );\n\t\t\t\trow.toggleClass( 'disabled' );\n\t\t\t\tconst label = $( \"label[for='\" + $( this ).attr( 'id' ) + \"']\" );\n\t\t\t\tif ( label.hasClass( 'fileIncluded' ) ) {\n\t\t\t\t\tlabel.attr( 'data-tooltip', wphb.strings.includeFile );\n\t\t\t\t\tlabel.removeClass( 'fileIncluded' );\n\t\t\t\t} else {\n\t\t\t\t\tlabel.attr( 'data-tooltip', wphb.strings.excludeFile );\n\t\t\t\t\tlabel.addClass( 'fileIncluded' );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Regenerate individual file.\n\t\t\t *\n\t\t\t * @since 1.9.2\n\t\t\t */\n\t\t\t$( '.wphb-compressed .wphb-filename-extension' ).on( 'click', function() {\n\t\t\t\tconst row = $( this ).closest( '.wphb-border-row' );\n\n\t\t\t\trow.find( '.fileinfo-group' ).removeClass( 'wphb-compressed' );\n\n\t\t\t\trow.find( '.wphb-row-status' )\n\t\t\t\t\t.removeClass( 'sui-hidden wphb-row-status-changed' )\n\t\t\t\t\t.addClass( 'wphb-row-status-queued sui-tooltip-constrained' )\n\t\t\t\t\t.attr( 'data-tooltip', wphb.strings.queuedTooltip )\n\t\t\t\t\t.find( 'i' ).attr( 'class', 'sui-icon-loader sui-loading' );\n\n\t\t\t\tFetcher.minification.resetAsset( row.attr( 'data-filter' ) );\n\t\t\t} );\n\n\t\t\t$( 'input[type=checkbox][name=debug_log]' ).change( function() {\n\t\t\t\tconst enabled = $( this ).is( ':checked' );\n\t\t\t\tFetcher.minification.toggleLog( enabled )\n\t\t\t\t\t.then( () => {\n\t\t\t\t\t\tWPHB_Admin.notices.show( self.moduleNoticeId, true );\n\t\t\t\t\t\tif ( enabled ) {\n\t\t\t\t\t\t\t$( '.wphb-logging-box' ).show();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$( '.wphb-logging-box' ).hide();\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Save critical css file\n\t\t\t */\n\t\t\t$( '#wphb-minification-tools-form' ).on( 'submit', function( e ) {\n\t\t\t\te.preventDefault();\n\n\t\t\t\tconst spinner = $( this ).find( '.spinner' );\n\t\t\t\tspinner.addClass( 'visible' );\n\n\t\t\t\tFetcher.minification.saveCriticalCss( $( this ).serialize() )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\tspinner.removeClass( 'visible' );\n\t\t\t\t\t\tif ( 'undefined' !== typeof response && response.success ) {\n\t\t\t\t\t\t\tWPHB_Admin.notices.show( self.moduleNoticeId, true, 'success', response.message );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tWPHB_Admin.notices.show( self.moduleNoticeId, true, 'error', response.message );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Parse custom asset dir input\n\t\t\t *\n\t\t\t * @since 1.9\n\t\t\t */\n\t\t\tconst textField = document.getElementById( 'file_path' );\n\t\t\tif ( null !== textField ) {\n\t\t\t\ttextField.onchange = function( e ) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tFetcher.minification.updateAssetPath( $( this ).val() )\n\t\t\t\t\t\t.then( () => {\n\t\t\t\t\t\t\tWPHB_Admin.notices.show( self.moduleNoticeId, true, 'success' );\n\t\t\t\t\t\t} );\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Asset optimization network settings page.\n\t\t\t *\n\t\t\t * @since 2.0.0\n\t\t\t */\n\n\t\t\t// Show/hide settings, based on checkbox value.\n\t\t\t$( '#wphb-network-ao' ).on( 'click', function() {\n\t\t\t\t$( '.sui-border-frame:first-of-type' ).toggleClass( 'sui-hidden' );\n\t\t\t} );\n\n\t\t\t// Handle settings select.\n\t\t\t$( '#wphb-box-minification-network-settings' ).on( 'change', 'input[type=radio]', function( e ) {\n\t\t\t\tconst divs = document.querySelectorAll( 'input[name=' + e.target.name + ']' );\n\n\t\t\t\t// Toggle logs frame.\n\t\t\t\tif ( 'log' === e.target.name ) {\n\t\t\t\t\t$( '.wphb-logs-frame' ).toggle( e.target.value );\n\t\t\t\t}\n\n\t\t\t\tfor ( let i = 0; i < divs.length; ++i ) {\n\t\t\t\t\tdivs[ i ].parentNode.classList.remove( 'active' );\n\t\t\t\t}\n\n\t\t\t\te.target.parentNode.classList.add( 'active' );\n\t\t\t} );\n\n\t\t\t// Submit settings.\n\t\t\t$( '#wphb-ao-network-settings' ).on( 'click', function( e ) {\n\t\t\t\te.preventDefault();\n\n\t\t\t\tconst spinner = $( '.sui-box-footer' ).find( '.spinner' );\n\t\t\t\tspinner.addClass( 'visible' );\n\n\t\t\t\tconst form = $( '#ao-network-settings-form' ).serialize();\n\t\t\t\tFetcher.minification.saveNetworkSettings( form )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\tspinner.removeClass( 'visible' );\n\t\t\t\t\t\tif ( 'undefined' !== typeof response && response.success ) {\n\t\t\t\t\t\t\tWPHB_Admin.notices.show( self.moduleNoticeId, true, 'success' );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tWPHB_Admin.notices.show( self.moduleNoticeId, true, 'error', wphb.strings.errorSettingsUpdate );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Register exclude CDN select and submit settings.\n\t\t\t *\n\t\t\t * @since 2.4.0\n\t\t\t */\n\t\t\tconst excludeCDN = $( '#cdn_exclude' );\n\t\t\texcludeCDN.SUIselect2();\n\n\t\t\t$( '#wphb-ao-settings-update' ).on( 'click', function( e ) {\n\t\t\t\te.preventDefault();\n\n\t\t\t\tconst spinner = $( '.sui-box-footer' ).find( '.spinner' );\n\t\t\t\tspinner.addClass( 'visible' );\n\n\t\t\t\tconst selected = excludeCDN.find( ':selected' );\n\t\t\t\tlet data = { scripts: [], styles: [] };\n\t\t\t\tfor ( let i = 0; i < selected.length; ++i ) {\n\t\t\t\t\tdata[ selected[ i ].dataset.type ].push( selected[ i ].value );\n\t\t\t\t}\n\n\t\t\t\tFetcher.minification.updateExcludeList( JSON.stringify( data ) )\n\t\t\t\t\t.then( () => {\n\t\t\t\t\t\tspinner.removeClass( 'visible' );\n\t\t\t\t\t\tWPHB_Admin.notices.show( self.moduleNoticeId, true, 'success' );\n\t\t\t\t\t} );\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Asset Optimization filters\n\t\t\t *\n\t\t\t * @type {RowsCollection|*}\n\t\t\t */\n\t\t\tthis.rowsCollection = new WPHB_Admin.minification.RowsCollection();\n\n\t\t\tconst rows = $( '.wphb-border-row' );\n\n\t\t\trows.each( function( index, row ) {\n\t\t\t\tlet _row;\n\t\t\t\tif ( $( row ).data( 'filter-secondary' ) ) {\n\t\t\t\t\t_row = new WPHB_Admin.minification.Row(\n\t\t\t\t\t\t$( row ), $( row ).data( 'filter' ),\n\t\t\t\t\t\t$( row ).data( 'filter-secondary' )\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\t_row = new WPHB_Admin.minification.Row( $( row ), $( row ).data( 'filter' ) );\n\t\t\t\t}\n\t\t\t\tself.rowsCollection.push( _row );\n\t\t\t} );\n\n\t\t\t// Filter search box\n\t\t\tconst filterInput = $( '#wphb-s' );\n\t\t\t// Prevent enter submitting form to rescan files.\n\t\t\tfilterInput.keydown( function( e ) {\n\t\t\t\tif ( 13 === e.keyCode ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t} );\n\t\t\tfilterInput.keyup( function() {\n\t\t\t\tself.rowsCollection.addFilter( $( this ).val(), 'primary' );\n\t\t\t\tself.rowsCollection.applyFilters();\n\t\t\t} );\n\n\t\t\t// Filter dropdown\n\t\t\t$( '#wphb-secondary-filter' ).change( function() {\n\t\t\t\tself.rowsCollection.addFilter( $( this ).val(), 'secondary' );\n\t\t\t\tself.rowsCollection.applyFilters();\n\t\t\t} );\n\n\t\t\t// Refresh rows on any filter change\n\t\t\t$( '.filter-toggles' ).change( function() {\n\t\t\t\tconst element = $( this );\n\t\t\t\tconst what = element.data( 'toggles' );\n\t\t\t\tconst value = element.prop( 'checked' );\n\t\t\t\tconst visibleItems = self.rowsCollection.getVisibleItems();\n\n\t\t\t\tfor ( const i in visibleItems ) {\n\t\t\t\t\tvisibleItems[ i ].change( what, value );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t// Files selectors\n\t\t\tconst filesList = $( 'input.wphb-minification-file-selector' );\n\t\t\tfilesList.on( 'click', function() {\n\t\t\t\tconst $this = $( this );\n\t\t\t\tconst element = self.rowsCollection.getItemById( $this.data( 'type' ), $this.data( 'handle' ) );\n\t\t\t\tif ( ! element ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( $this.is( ':checked' ) ) {\n\t\t\t\t\telement.select();\n\t\t\t\t} else {\n\t\t\t\t\telement.unSelect();\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Handle select/deselect of all files of a certain type for\n\t\t\t * use on bulk update.\n\t\t\t *\n\t\t\t * @type {*|jQuery|HTMLElement}\n\t\t\t */\n\t\t\tconst selectAll = $( '.wphb-minification-bulk-file-selector' );\n\t\t\tselectAll.click( function() {\n\t\t\t\tconst $this = $( this );\n\t\t\t\tconst items = self.rowsCollection.getItemsByDataType( $this.attr( 'data-type' ) );\n\t\t\t\tfor ( const i in items ) {\n\t\t\t\t\tif ( items.hasOwnProperty( i ) ) {\n\t\t\t\t\t\tif ( $this.is( ':checked' ) ) {\n\t\t\t\t\t\t\titems[ i ].select();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\titems[ i ].unSelect();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t/* Show details of minification row on mobile devices */\n\t\t\t$( 'body' ).on( 'click', '.wphb-border-row', function() {\n\t\t\t\tif ( window.innerWidth < 783 ) {\n\t\t\t\t\t$( this ).find( '.wphb-minification-row-details' ).toggle();\n\t\t\t\t\t$( this ).find( '.fileinfo-group' ).toggleClass( 'opened' );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Catch window resize and revert styles for responsive dive\n\t\t\t * 1/4 of a second should be enough to trigger during device\n\t\t\t * rotations (from portrait to landscape mode)\n\t\t\t *\n\t\t\t * @type {debounced}\n\t\t\t */\n\t\t\tconst minificationResizeRows = _.debounce( function() {\n\t\t\t\tif ( window.innerWidth >= 783 ) {\n\t\t\t\t\t$( '.wphb-minification-row-details' ).css( 'display', 'flex' );\n\t\t\t\t} else {\n\t\t\t\t\t$( '.wphb-minification-row-details' ).css( 'display', 'none' );\n\t\t\t\t}\n\t\t\t}, 250 );\n\n\t\t\twindow.addEventListener( 'resize', minificationResizeRows );\n\n\t\t\treturn this;\n\t\t},\n\n\t\tupdateProgressBar( progress, cancel = false ) {\n\t\t\tif ( progress > 100 ) {\n\t\t\t\tprogress = 100;\n\t\t\t}\n\t\t\t// Update progress bar\n\t\t\t$( '.sui-progress-block .sui-progress-text span' ).text( progress + '%' );\n\t\t\t$( '.sui-progress-block .sui-progress-bar span' ).width( progress + '%' );\n\t\t\tif ( progress >= 90 ) {\n\t\t\t\t$( '.sui-progress-state .sui-progress-state-text' ).text( 'Finalizing...' );\n\t\t\t}\n\t\t\tif ( cancel ) {\n\t\t\t\t$( '.sui-progress-state .sui-progress-state-text' ).text( 'Cancelling...' );\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Switch from advanced to basic view.\n\t\t * Called from switch view modal.\n\t\t *\n\t\t * @param {string} mode\n\t\t */\n\t\tswitchView( mode ) {\n\t\t\tFetcher.minification\n\t\t\t\t.toggleView( mode )\n\t\t\t\t.then( () => {\n\t\t\t\t\twindow.location.href = getLink( 'minification' );\n\t\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * Go to the Asset Optimization files page.\n\t\t *\n\t\t * @since 1.9.2\n\t\t * @since 2.1.0 Added show_tour parameter.\n\t\t *\n\t\t * @param {boolean} hideTour\n\t\t */\n\t\tgoToSettings( hideTour = true ) {\n\t\t\twindow.SUI.closeModal();\n\n\t\t\tif ( ! hideTour ) {\n\t\t\t\t// Show the modal.\n\t\t\t\twindow.SUI.openModal( 'wphb-minification-tour', 'wpbody-content', undefined, false );\n\t\t\t}\n\n\t\t\tFetcher.minification\n\t\t\t\t.toggleCDN( $( 'input#enable_cdn' ).is( ':checked' ) )\n\t\t\t\t.then( () => {\n\t\t\t\t\tif ( hideTour ) {\n\t\t\t\t\t\twindow.location.href = getLink( 'minification' );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * Skip asset optimization tour.\n\t\t *\n\t\t * @since 2.1.0\n\t\t */\n\t\tskipTour() {\n\t\t\tFetcher.minification.skipTour()\n\t\t\t\t.then( () => {\n\t\t\t\t\twindow.location.reload();\n\t\t\t\t} );\n\t\t},\n\t}; // End WPHB_Admin.minification\n\n\tWPHB_Admin.minification.Row = Row;\n\tWPHB_Admin.minification.RowsCollection = RowsCollection;\n}( jQuery ) );\n","/* global WPHB_Admin */\nimport Fetcher from '../utils/fetcher';\n\nconst MinificationScanner = ( totalSteps, currentStep ) => {\n\ttotalSteps = parseInt( totalSteps );\n\tcurrentStep = parseInt( currentStep );\n\tlet cancelling = false;\n\n\tconst obj = {\n\t\tscan() {\n\t\t\tconst remainingSteps = totalSteps - currentStep;\n\t\t\tif ( currentStep !== 0 ) {\n\t\t\t\t// Scan started on a previous page load\n\t\t\t\tstep( remainingSteps );\n\t\t\t} else {\n\t\t\t\tFetcher.minification.startCheck()\n\t\t\t\t\t.then( () => {\n\t\t\t\t\t\tstep( remainingSteps );\n\t\t\t\t\t} );\n\t\t\t}\n\t\t},\n\t\tcancel() {\n\t\t\tcancelling = true;\n\t\t\treturn Fetcher.minification.cancelScan();\n\t\t},\n\t\tgetProgress() {\n\t\t\tif ( cancelling ) {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t\tconst remainingSteps = totalSteps - currentStep;\n\t\t\treturn Math.min( Math.round( ( parseInt( ( totalSteps - remainingSteps ) ) * 100 ) / totalSteps ), 99 );\n\t\t},\n\t\t// Overridable functions\n\t\tonFinishStep( progress ) {},\n\t\tonFinish( response ) {\n\t\t\tWPHB_Admin.minification.updateProgressBar( 100 );\n\n\t\t\tif ( 'undefined' !== typeof response.assets_msg ) {\n\t\t\t\tjQuery( '.wphb-assets-modal' ).find( '#assetsFound' ).html( response.assets_msg );\n\t\t\t}\n\n\t\t\twindow.SUI.closeModal(); // Hide the check-files-modal modal.\n\t\t\twindow.SUI.openModal( 'wphb-assets-modal', 'wpbody-content', undefined, false );\n\t\t},\n\t};\n\n\t/**\n\t * Execute a scan step recursively\n\t *\n\t * Private to avoid overrdings\n\t *\n\t * @param {number} remainingSteps\n\t */\n\tconst step = function( remainingSteps ) {\n\t\tif ( remainingSteps >= 0 ) {\n\t\t\tcurrentStep = totalSteps - remainingSteps;\n\t\t\tFetcher.minification.checkStep( currentStep )\n\t\t\t\t.then( () => {\n\t\t\t\t\tremainingSteps = remainingSteps - 1;\n\t\t\t\t\tobj.onFinishStep( obj.getProgress() );\n\t\t\t\t\tstep( remainingSteps );\n\t\t\t\t} );\n\t\t} else {\n\t\t\tFetcher.minification.finishCheck()\n\t\t\t\t.then( ( response ) => {\n\t\t\t\t\tobj.onFinish( response );\n\t\t\t\t} );\n\t\t}\n\t};\n\n\treturn obj;\n};\n\nexport default MinificationScanner;\n"],"sourceRoot":""}
admin/assets/js/wphb-gb-block.min.js CHANGED
@@ -1,9 +1,9 @@
1
- !function(t){var n={};function e(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,e),o.l=!0,o.exports}e.m=t,e.c=n,e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{enumerable:!0,get:r})},e.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},e.t=function(t,n){if(1&n&&(t=e(t)),8&n)return t;if(4&n&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(e.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&n&&"string"!=typeof t)for(var o in t)e.d(r,o,function(n){return t[n]}.bind(null,o));return r},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,n){return Object.prototype.hasOwnProperty.call(t,n)},e.p="",e(e.s=78)}([function(t,n,e){"use strict";var r=e(19),o=e.n(r);function i(t){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var c=new function(){var t=ajaxurl,n=wphb.nonces.HBFetchNonce;function r(r){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"GET";o.nonce=n,o.action=r;var u={data:o,method:c};return u.url=t,new(0,e(53).Promise)((function(t,n){jQuery.ajax(u).done(t).fail(n)})).then((function(t){return function(t){"object"!==i(t)&&(t=JSON.parse(t));if(t.success)return t.data;var n=t.data||{},e=new Error(n.message||"Error trying to fetch response from server");throw e.response=t,e}(t)}))}var c={notice:{dismiss:function(t){return r("wphb_notice_dismiss",{id:t},"POST")},dismissCloudflareDash:function(){return r("wphb_cf_notice_dismiss",{},"POST")}},caching:{activate:function(){return r("wphb_caching_activate",{},"POST").then((function(t){return t}))},saveSettings:function(t,n){return r("wphb_"+t+"_save_settings",{data:n},"POST").then((function(t){return t}))},clearCache:function(t){return r("wphb_clear_module_cache",{module:t},"POST").then((function(t){return t}))},setExpiration:function(t){return r("wphb_caching_set_expiration",{expiry_times:t},"POST").then((function(t){return t}))},setServer:function(t){return r("wphb_caching_set_server_type",{value:t},"POST")},reloadSnippets:function(t,n){return r("wphb_caching_reload_snippet",{type:t,expiry_times:n},"POST").then((function(t){return t}))},updateHtaccess:function(){return r("wphb_caching_update_htaccess",{},"POST").then((function(t){return t}))},recheckExpiry:function(){return r("wphb_caching_recheck_expiry",{},"POST").then((function(t){return t}))},clearCacheForPost:function(t){return r("wphb_gutenberg_clear_post_cache",{postId:t},"POST")},cancelPreload:function(){return r("wphb_preload_cancel",{},"POST")}},cloudflare:{connect:function(t,n,e){return r("wphb_cloudflare_connect",{step:t,formData:n,cfData:e},"POST").then((function(t){return t}))},setExpiration:function(t){return r("wphb_cloudflare_set_expiry",{value:t},"POST")},purgeCache:function(){return r("wphb_cloudflare_purge_cache",{},"POST")},recheckZones:function(){return r("wphb_cloudflare_recheck_zones",{},"POST")}},dashboard:{skipSetup:function(){return r("wphb_dash_skip_setup",{},"POST")}},minification:{toggleCDN:function(t){return r("wphb_minification_toggle_cdn",{value:t},"POST")},toggleLog:function(t){return r("wphb_minification_toggle_log",{value:t},"POST")},toggleView:function(t){return r("wphb_minification_toggle_view",{value:t},"POST")},startCheck:function(){return r("wphb_minification_start_check",{},"POST")},checkStep:function(t){return r("wphb_minification_check_step",{step:t},"POST").then((function(t){return t}))},finishCheck:function(){return r("wphb_minification_finish_scan",{},"POST").then((function(t){return t}))},cancelScan:function(){return r("wphb_minification_cancel_scan",{},"POST")},saveCriticalCss:function(t){return r("wphb_minification_save_critical_css",{form:t},"POST").then((function(t){return t}))},updateAssetPath:function(t){return r("wphb_minification_update_asset_path",{value:t},"POST")},resetAsset:function(t){return r("wphb_minification_reset_asset",{value:t},"POST")},saveNetworkSettings:function(t){return r("wphb_minification_update_network_settings",{settings:t},"POST")},skipTour:function(){return r("wphb_minification_skip_tour",{},"POST")},updateExcludeList:function(t){return r("wphb_minification_save_exclude_list",{data:t},"POST")}},performance:{runTest:function(){return r("wphb_performance_run_test",{},"POST").then((function(t){return t}))},savePerformanceTestSettings:function(t){return r("wphb_performance_save_settings",{data:t},"POST")}},advanced:{saveSettings:function(t,n){return r("wphb_advanced_save_settings",{data:t,form:n},"POST").then((function(t){return t}))},deleteSelectedData:function(t){return r("wphb_advanced_db_delete_data",{data:t},"POST").then((function(t){return t}))},scheduleCleanup:function(){return r("wphb_pro_advanced_db_schedule",{},"POST")}},logger:{clear:function(t){return r("wphb_logger_clear",{module:t},"POST").then((function(t){return t}))}},settings:{saveSettings:function(t){return r("wphb_admin_settings_save_settings",{form_data:t},"POST").then((function(t){return t}))},resetSettings:function(){return r("wphb_reset_settings",{},"POST")}},common:{addRecipient:function(t,n,e,o){return r("wphb_pro_add_recipient",{module:t,setting:n,email:e,name:o},"POST").then((function(t){return t}))},saveReportsSettings:function(t,n){return r("wphb_pro_save_report_settings",{module:t,data:n},"POST").then((function(t){return t}))}},uptime:{resendConfirmationEmail:function(t,n){return r("wphb_pro_resend_confirmation",{name:t,email:n},"POST").then((function(t){return t}))}}};o()(this,c)};n.a=c},function(t,n,e){var r=e(10),o=e(22),i=e(23),c="[object Null]",u="[object Undefined]",a=r?r.toStringTag:void 0;t.exports=function(t){return null==t?void 0===t?u:c:a&&a in Object(t)?o(t):i(t)}},function(t,n,e){var r=e(11),o="object"==typeof self&&self&&self.Object===Object&&self,i=r||o||Function("return this")();t.exports=i},function(t,n){t.exports=function(t){var n=typeof t;return null!=t&&("object"==n||"function"==n)}},function(t,n,e){var r=e(9),o=e(15);t.exports=function(t){return null!=t&&o(t.length)&&!r(t)}},function(t,n){t.exports=function(t){return null!=t&&"object"==typeof t}},function(t,n,e){var r=e(7),o=e(13),i=Object.prototype.hasOwnProperty;t.exports=function(t,n,e){var c=t[n];i.call(t,n)&&o(c,e)&&(void 0!==e||n in t)||r(t,n,e)}},function(t,n,e){var r=e(8);t.exports=function(t,n,e){"__proto__"==n&&r?r(t,n,{configurable:!0,enumerable:!0,value:e,writable:!0}):t[n]=e}},function(t,n,e){var r=e(20),o=function(){try{var t=r(Object,"defineProperty");return t({},"",{}),t}catch(t){}}();t.exports=o},function(t,n,e){var r=e(1),o=e(3),i="[object AsyncFunction]",c="[object Function]",u="[object GeneratorFunction]",a="[object Proxy]";t.exports=function(t){if(!o(t))return!1;var n=r(t);return n==c||n==u||n==i||n==a}},function(t,n,e){var r=e(2).Symbol;t.exports=r},function(t,n,e){(function(n){var e="object"==typeof n&&n&&n.Object===Object&&n;t.exports=e}).call(this,e(12))},function(t,n){var e;e=function(){return this}();try{e=e||new Function("return this")()}catch(t){"object"==typeof window&&(e=window)}t.exports=e},function(t,n){t.exports=function(t,n){return t===n||t!=t&&n!=n}},function(t,n){t.exports=function(t){return t}},function(t,n){var e=9007199254740991;t.exports=function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=e}},function(t,n){var e=9007199254740991,r=/^(?:0|[1-9]\d*)$/;t.exports=function(t,n){var o=typeof t;return!!(n=null==n?e:n)&&("number"==o||"symbol"!=o&&r.test(t))&&t>-1&&t%1==0&&t<n}},function(t,n){var e=Object.prototype;t.exports=function(t){var n=t&&t.constructor;return t===("function"==typeof n&&n.prototype||e)}},function(t,n){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}},function(t,n,e){var r=e(6),o=e(28),i=e(29),c=e(4),u=e(17),a=e(38),s=Object.prototype.hasOwnProperty,f=i((function(t,n){if(u(n)||c(n))o(n,a(n),t);else for(var e in n)s.call(n,e)&&r(t,e,n[e])}));t.exports=f},function(t,n,e){var r=e(21),o=e(27);t.exports=function(t,n){var e=o(t,n);return r(e)?e:void 0}},function(t,n,e){var r=e(9),o=e(24),i=e(3),c=e(26),u=/^\[object .+?Constructor\]$/,a=Function.prototype,s=Object.prototype,f=a.toString,l=s.hasOwnProperty,p=RegExp("^"+f.call(l).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");t.exports=function(t){return!(!i(t)||o(t))&&(r(t)?p:u).test(c(t))}},function(t,n,e){var r=e(10),o=Object.prototype,i=o.hasOwnProperty,c=o.toString,u=r?r.toStringTag:void 0;t.exports=function(t){var n=i.call(t,u),e=t[u];try{t[u]=void 0;var r=!0}catch(t){}var o=c.call(t);return r&&(n?t[u]=e:delete t[u]),o}},function(t,n){var e=Object.prototype.toString;t.exports=function(t){return e.call(t)}},function(t,n,e){var r,o=e(25),i=(r=/[^.]+$/.exec(o&&o.keys&&o.keys.IE_PROTO||""))?"Symbol(src)_1."+r:"";t.exports=function(t){return!!i&&i in t}},function(t,n,e){var r=e(2)["__core-js_shared__"];t.exports=r},function(t,n){var e=Function.prototype.toString;t.exports=function(t){if(null!=t){try{return e.call(t)}catch(t){}try{return t+""}catch(t){}}return""}},function(t,n){t.exports=function(t,n){return null==t?void 0:t[n]}},function(t,n,e){var r=e(6),o=e(7);t.exports=function(t,n,e,i){var c=!e;e||(e={});for(var u=-1,a=n.length;++u<a;){var s=n[u],f=i?i(e[s],t[s],s,e,t):void 0;void 0===f&&(f=t[s]),c?o(e,s,f):r(e,s,f)}return e}},function(t,n,e){var r=e(30),o=e(37);t.exports=function(t){return r((function(n,e){var r=-1,i=e.length,c=i>1?e[i-1]:void 0,u=i>2?e[2]:void 0;for(c=t.length>3&&"function"==typeof c?(i--,c):void 0,u&&o(e[0],e[1],u)&&(c=i<3?void 0:c,i=1),n=Object(n);++r<i;){var a=e[r];a&&t(n,a,r,c)}return n}))}},function(t,n,e){var r=e(14),o=e(31),i=e(33);t.exports=function(t,n){return i(o(t,n,r),t+"")}},function(t,n,e){var r=e(32),o=Math.max;t.exports=function(t,n,e){return n=o(void 0===n?t.length-1:n,0),function(){for(var i=arguments,c=-1,u=o(i.length-n,0),a=Array(u);++c<u;)a[c]=i[n+c];c=-1;for(var s=Array(n+1);++c<n;)s[c]=i[c];return s[n]=e(a),r(t,this,s)}}},function(t,n){t.exports=function(t,n,e){switch(e.length){case 0:return t.call(n);case 1:return t.call(n,e[0]);case 2:return t.call(n,e[0],e[1]);case 3:return t.call(n,e[0],e[1],e[2])}return t.apply(n,e)}},function(t,n,e){var r=e(34),o=e(36)(r);t.exports=o},function(t,n,e){var r=e(35),o=e(8),i=e(14),c=o?function(t,n){return o(t,"toString",{configurable:!0,enumerable:!1,value:r(n),writable:!0})}:i;t.exports=c},function(t,n){t.exports=function(t){return function(){return t}}},function(t,n){var e=800,r=16,o=Date.now;t.exports=function(t){var n=0,i=0;return function(){var c=o(),u=r-(c-i);if(i=c,u>0){if(++n>=e)return arguments[0]}else n=0;return t.apply(void 0,arguments)}}},function(t,n,e){var r=e(13),o=e(4),i=e(16),c=e(3);t.exports=function(t,n,e){if(!c(e))return!1;var u=typeof n;return!!("number"==u?o(e)&&i(n,e.length):"string"==u&&n in e)&&r(e[n],t)}},function(t,n,e){var r=e(39),o=e(50),i=e(4);t.exports=function(t){return i(t)?r(t):o(t)}},function(t,n,e){var r=e(40),o=e(41),i=e(43),c=e(44),u=e(16),a=e(46),s=Object.prototype.hasOwnProperty;t.exports=function(t,n){var e=i(t),f=!e&&o(t),l=!e&&!f&&c(t),p=!e&&!f&&!l&&a(t),h=e||f||l||p,v=h?r(t.length,String):[],d=v.length;for(var _ in t)!n&&!s.call(t,_)||h&&("length"==_||l&&("offset"==_||"parent"==_)||p&&("buffer"==_||"byteLength"==_||"byteOffset"==_)||u(_,d))||v.push(_);return v}},function(t,n){t.exports=function(t,n){for(var e=-1,r=Array(t);++e<t;)r[e]=n(e);return r}},function(t,n,e){var r=e(42),o=e(5),i=Object.prototype,c=i.hasOwnProperty,u=i.propertyIsEnumerable,a=r(function(){return arguments}())?r:function(t){return o(t)&&c.call(t,"callee")&&!u.call(t,"callee")};t.exports=a},function(t,n,e){var r=e(1),o=e(5),i="[object Arguments]";t.exports=function(t){return o(t)&&r(t)==i}},function(t,n){var e=Array.isArray;t.exports=e},function(t,n,e){(function(t){var r=e(2),o=e(45),i=n&&!n.nodeType&&n,c=i&&"object"==typeof t&&t&&!t.nodeType&&t,u=c&&c.exports===i?r.Buffer:void 0,a=(u?u.isBuffer:void 0)||o;t.exports=a}).call(this,e(18)(t))},function(t,n){t.exports=function(){return!1}},function(t,n,e){var r=e(47),o=e(48),i=e(49),c=i&&i.isTypedArray,u=c?o(c):r;t.exports=u},function(t,n,e){var r=e(1),o=e(15),i=e(5),c={};c["[object Float32Array]"]=c["[object Float64Array]"]=c["[object Int8Array]"]=c["[object Int16Array]"]=c["[object Int32Array]"]=c["[object Uint8Array]"]=c["[object Uint8ClampedArray]"]=c["[object Uint16Array]"]=c["[object Uint32Array]"]=!0,c["[object Arguments]"]=c["[object Array]"]=c["[object ArrayBuffer]"]=c["[object Boolean]"]=c["[object DataView]"]=c["[object Date]"]=c["[object Error]"]=c["[object Function]"]=c["[object Map]"]=c["[object Number]"]=c["[object Object]"]=c["[object RegExp]"]=c["[object Set]"]=c["[object String]"]=c["[object WeakMap]"]=!1,t.exports=function(t){return i(t)&&o(t.length)&&!!c[r(t)]}},function(t,n){t.exports=function(t){return function(n){return t(n)}}},function(t,n,e){(function(t){var r=e(11),o=n&&!n.nodeType&&n,i=o&&"object"==typeof t&&t&&!t.nodeType&&t,c=i&&i.exports===o&&r.process,u=function(){try{var t=i&&i.require&&i.require("util").types;return t||c&&c.binding&&c.binding("util")}catch(t){}}();t.exports=u}).call(this,e(18)(t))},function(t,n,e){var r=e(17),o=e(51),i=Object.prototype.hasOwnProperty;t.exports=function(t){if(!r(t))return o(t);var n=[];for(var e in Object(t))i.call(t,e)&&"constructor"!=e&&n.push(e);return n}},function(t,n,e){var r=e(52)(Object.keys,Object);t.exports=r},function(t,n){t.exports=function(t,n){return function(e){return t(n(e))}}},function(t,n,e){(function(n,e){
2
  /*!
3
  * @overview es6-promise - a tiny implementation of Promises/A+.
4
  * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)
5
  * @license Licensed under MIT license
6
  * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE
7
  * @version v4.2.8+1e68dce6
8
- */var r;r=function(){"use strict";function t(t){return"function"==typeof t}var r=Array.isArray?Array.isArray:function(t){return"[object Array]"===Object.prototype.toString.call(t)},o=0,i=void 0,c=void 0,u=function(t,n){v[o]=t,v[o+1]=n,2===(o+=2)&&(c?c(d):m())},a="undefined"!=typeof window?window:void 0,s=a||{},f=s.MutationObserver||s.WebKitMutationObserver,l="undefined"==typeof self&&void 0!==n&&"[object process]"==={}.toString.call(n),p="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel;function h(){var t=setTimeout;return function(){return t(d,1)}}var v=new Array(1e3);function d(){for(var t=0;t<o;t+=2)(0,v[t])(v[t+1]),v[t]=void 0,v[t+1]=void 0;o=0}var _,b,y,g,m=void 0;function w(t,n){var e=this,r=new this.constructor(j);void 0===r[S]&&I(r);var o=e._state;if(o){var i=arguments[o-1];u((function(){return D(o,r,i,e._result)}))}else M(e,r,t,n);return r}function O(t){if(t&&"object"==typeof t&&t.constructor===this)return t;var n=new this(j);return E(n,t),n}l?m=function(){return n.nextTick(d)}:f?(b=0,y=new f(d),g=document.createTextNode(""),y.observe(g,{characterData:!0}),m=function(){g.data=b=++b%2}):p?((_=new MessageChannel).port1.onmessage=d,m=function(){return _.port2.postMessage(0)}):m=void 0===a?function(){try{var t=Function("return this")().require("vertx");return void 0!==(i=t.runOnLoop||t.runOnContext)?function(){i(d)}:h()}catch(t){return h()}}():h();var S=Math.random().toString(36).substring(2);function j(){}var x=void 0,T=1,P=2;function A(n,e,r){e.constructor===n.constructor&&r===w&&e.constructor.resolve===O?function(t,n){n._state===T?C(t,n._result):n._state===P?F(t,n._result):M(n,void 0,(function(n){return E(t,n)}),(function(n){return F(t,n)}))}(n,e):void 0===r?C(n,e):t(r)?function(t,n,e){u((function(t){var r=!1,o=function(t,n,e,r){try{t.call(n,e,r)}catch(t){return t}}(e,n,(function(e){r||(r=!0,n!==e?E(t,e):C(t,e))}),(function(n){r||(r=!0,F(t,n))}),t._label);!r&&o&&(r=!0,F(t,o))}),t)}(n,e,r):C(n,e)}function E(t,n){if(t===n)F(t,new TypeError("You cannot resolve a promise with itself"));else if(o=typeof(r=n),null===r||"object"!==o&&"function"!==o)C(t,n);else{var e=void 0;try{e=n.then}catch(n){return void F(t,n)}A(t,n,e)}var r,o}function k(t){t._onerror&&t._onerror(t._result),N(t)}function C(t,n){t._state===x&&(t._result=n,t._state=T,0!==t._subscribers.length&&u(N,t))}function F(t,n){t._state===x&&(t._state=P,t._result=n,u(k,t))}function M(t,n,e,r){var o=t._subscribers,i=o.length;t._onerror=null,o[i]=n,o[i+T]=e,o[i+P]=r,0===i&&t._state&&u(N,t)}function N(t){var n=t._subscribers,e=t._state;if(0!==n.length){for(var r=void 0,o=void 0,i=t._result,c=0;c<n.length;c+=3)r=n[c],o=n[c+e],r?D(e,r,o,i):o(i);t._subscribers.length=0}}function D(n,e,r,o){var i=t(r),c=void 0,u=void 0,a=!0;if(i){try{c=r(o)}catch(t){a=!1,u=t}if(e===c)return void F(e,new TypeError("A promises callback cannot return that same promise."))}else c=o;e._state!==x||(i&&a?E(e,c):!1===a?F(e,u):n===T?C(e,c):n===P&&F(e,c))}var L=0;function I(t){t[S]=L++,t._state=void 0,t._result=void 0,t._subscribers=[]}var R=function(){function t(t,n){this._instanceConstructor=t,this.promise=new t(j),this.promise[S]||I(this.promise),r(n)?(this.length=n.length,this._remaining=n.length,this._result=new Array(this.length),0===this.length?C(this.promise,this._result):(this.length=this.length||0,this._enumerate(n),0===this._remaining&&C(this.promise,this._result))):F(this.promise,new Error("Array Methods must be provided an Array"))}return t.prototype._enumerate=function(t){for(var n=0;this._state===x&&n<t.length;n++)this._eachEntry(t[n],n)},t.prototype._eachEntry=function(t,n){var e=this._instanceConstructor,r=e.resolve;if(r===O){var o=void 0,i=void 0,c=!1;try{o=t.then}catch(t){c=!0,i=t}if(o===w&&t._state!==x)this._settledAt(t._state,n,t._result);else if("function"!=typeof o)this._remaining--,this._result[n]=t;else if(e===$){var u=new e(j);c?F(u,i):A(u,t,o),this._willSettleAt(u,n)}else this._willSettleAt(new e((function(n){return n(t)})),n)}else this._willSettleAt(r(t),n)},t.prototype._settledAt=function(t,n,e){var r=this.promise;r._state===x&&(this._remaining--,t===P?F(r,e):this._result[n]=e),0===this._remaining&&C(r,this._result)},t.prototype._willSettleAt=function(t,n){var e=this;M(t,void 0,(function(t){return e._settledAt(T,n,t)}),(function(t){return e._settledAt(P,n,t)}))},t}(),$=function(){function n(t){this[S]=L++,this._result=this._state=void 0,this._subscribers=[],j!==t&&("function"!=typeof t&&function(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}(),this instanceof n?function(t,n){try{n((function(n){E(t,n)}),(function(n){F(t,n)}))}catch(n){F(t,n)}}(this,t):function(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}())}return n.prototype.catch=function(t){return this.then(null,t)},n.prototype.finally=function(n){var e=this.constructor;return t(n)?this.then((function(t){return e.resolve(n()).then((function(){return t}))}),(function(t){return e.resolve(n()).then((function(){throw t}))})):this.then(n,n)},n}();return $.prototype.then=w,$.all=function(t){return new R(this,t).promise},$.race=function(t){var n=this;return r(t)?new n((function(e,r){for(var o=t.length,i=0;i<o;i++)n.resolve(t[i]).then(e,r)})):new n((function(t,n){return n(new TypeError("You must pass an array to race."))}))},$.resolve=O,$.reject=function(t){var n=new this(j);return F(n,t),n},$._setScheduler=function(t){c=t},$._setAsap=function(t){u=t},$._asap=u,$.polyfill=function(){var t=void 0;if(void 0!==e)t=e;else if("undefined"!=typeof self)t=self;else try{t=Function("return this")()}catch(t){throw new Error("polyfill failed because global object is unavailable in this environment")}var n=t.Promise;if(n){var r=null;try{r=Object.prototype.toString.call(n.resolve())}catch(t){}if("[object Promise]"===r&&!n.cast)return}t.Promise=$},$.Promise=$,$},t.exports=r()}).call(this,e(54),e(12))},function(t,n){var e,r,o=t.exports={};function i(){throw new Error("setTimeout has not been defined")}function c(){throw new Error("clearTimeout has not been defined")}function u(t){if(e===setTimeout)return setTimeout(t,0);if((e===i||!e)&&setTimeout)return e=setTimeout,setTimeout(t,0);try{return e(t,0)}catch(n){try{return e.call(null,t,0)}catch(n){return e.call(this,t,0)}}}!function(){try{e="function"==typeof setTimeout?setTimeout:i}catch(t){e=i}try{r="function"==typeof clearTimeout?clearTimeout:c}catch(t){r=c}}();var a,s=[],f=!1,l=-1;function p(){f&&a&&(f=!1,a.length?s=a.concat(s):l=-1,s.length&&h())}function h(){if(!f){var t=u(p);f=!0;for(var n=s.length;n;){for(a=s,s=[];++l<n;)a&&a[l].run();l=-1,n=s.length}a=null,f=!1,function(t){if(r===clearTimeout)return clearTimeout(t);if((r===c||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(t);try{r(t)}catch(n){try{return r.call(null,t)}catch(n){return r.call(this,t)}}}(t)}}function v(t,n){this.fun=t,this.array=n}function d(){}o.nextTick=function(t){var n=new Array(arguments.length-1);if(arguments.length>1)for(var e=1;e<arguments.length;e++)n[e-1]=arguments[e];s.push(new v(t,n)),1!==s.length||f||u(h)},v.prototype.run=function(){this.fun.apply(null,this.array)},o.title="browser",o.browser=!0,o.env={},o.argv=[],o.version="",o.versions={},o.on=d,o.addListener=d,o.once=d,o.off=d,o.removeListener=d,o.removeAllListeners=d,o.emit=d,o.prependListener=d,o.prependOnceListener=d,o.listeners=function(t){return[]},o.binding=function(t){throw new Error("process.binding is not supported")},o.cwd=function(){return"/"},o.chdir=function(t){throw new Error("process.chdir is not supported")},o.umask=function(){return 0}},,,,,,,,,,,,,,,,,,,,,,,,function(t,n,e){"use strict";e.r(n);var r=e(0),o=wp.editPost.PluginPostStatusInfo,i=wp.plugins.registerPlugin,c=wp.data,u=c.select,a=c.dispatch,s=function(){var t=u("core/editor").getCurrentPostId();r.a.caching.clearCacheForPost(t).then(f)},f=function(){u("core/notices").getNotices().find((function(t){return"wphb-gb-notice"===t.id}))||a("core/notices").createNotice("success",wphb.strings.notice,{id:"wphb-gb-notice"})};i("wphb",{render:function(){return React.createElement(o,{className:"wphb-clear-cache"},React.createElement("input",{type:"submit",value:wphb.strings.button,onClick:s,className:"components-button is-button is-default is-large editor-post-trash"}))}})}]);
9
  //# sourceMappingURL=wphb-gb-block.min.js.map
1
+ !function(t){var n={};function e(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,e),o.l=!0,o.exports}e.m=t,e.c=n,e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{enumerable:!0,get:r})},e.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},e.t=function(t,n){if(1&n&&(t=e(t)),8&n)return t;if(4&n&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(e.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&n&&"string"!=typeof t)for(var o in t)e.d(r,o,function(n){return t[n]}.bind(null,o));return r},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,n){return Object.prototype.hasOwnProperty.call(t,n)},e.p="",e(e.s=78)}([function(t,n,e){"use strict";var r=e(19),o=e.n(r);function i(t){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var c=new function(){var t=ajaxurl,n=wphb.nonces.HBFetchNonce;function r(r){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"GET";o.nonce=n,o.action=r;var c={data:o,method:i};c.url=t;var a=e(53).Promise;return new a((function(t,n){jQuery.ajax(c).done(t).fail(n)})).then((function(t){return u(t)}))}var i={notice:{dismiss:function(t){return r("wphb_notice_dismiss",{id:t},"POST")},dismissCloudflareDash:function(){return r("wphb_cf_notice_dismiss",{},"POST")}},caching:{activate:function(){return r("wphb_caching_activate",{},"POST").then((function(t){return t}))},saveSettings:function(t,n){return r("wphb_"+t+"_save_settings",{data:n},"POST").then((function(t){return t}))},clearCache:function(t){return r("wphb_clear_module_cache",{module:t},"POST").then((function(t){return t}))},setExpiration:function(t){return r("wphb_caching_set_expiration",{expiry_times:t},"POST").then((function(t){return t}))},setServer:function(t){return r("wphb_caching_set_server_type",{value:t},"POST")},reloadSnippets:function(t,n){return r("wphb_caching_reload_snippet",{type:t,expiry_times:n},"POST").then((function(t){return t}))},updateHtaccess:function(){return r("wphb_caching_update_htaccess",{},"POST").then((function(t){return t}))},recheckExpiry:function(){return r("wphb_caching_recheck_expiry",{},"POST").then((function(t){return t}))},clearCacheForPost:function(t){return r("wphb_gutenberg_clear_post_cache",{postId:t},"POST")},cancelPreload:function(){return r("wphb_preload_cancel",{},"POST")}},cloudflare:{connect:function(t,n,e){return r("wphb_cloudflare_connect",{step:t,formData:n,cfData:e},"POST").then((function(t){return t}))},setExpiration:function(t){return r("wphb_cloudflare_set_expiry",{value:t},"POST")},purgeCache:function(){return r("wphb_cloudflare_purge_cache",{},"POST")},recheckZones:function(){return r("wphb_cloudflare_recheck_zones",{},"POST")}},dashboard:{skipSetup:function(){return r("wphb_dash_skip_setup",{},"POST")}},minification:{toggleCDN:function(t){return r("wphb_minification_toggle_cdn",{value:t},"POST")},toggleLog:function(t){return r("wphb_minification_toggle_log",{value:t},"POST")},toggleView:function(t){return r("wphb_minification_toggle_view",{value:t},"POST")},startCheck:function(){return r("wphb_minification_start_check",{},"POST")},checkStep:function(t){return r("wphb_minification_check_step",{step:t},"POST").then((function(t){return t}))},finishCheck:function(){return r("wphb_minification_finish_scan",{},"POST").then((function(t){return t}))},cancelScan:function(){return r("wphb_minification_cancel_scan",{},"POST")},saveCriticalCss:function(t){return r("wphb_minification_save_critical_css",{form:t},"POST").then((function(t){return t}))},updateAssetPath:function(t){return r("wphb_minification_update_asset_path",{value:t},"POST")},resetAsset:function(t){return r("wphb_minification_reset_asset",{value:t},"POST")},saveNetworkSettings:function(t){return r("wphb_minification_update_network_settings",{settings:t},"POST")},skipTour:function(){return r("wphb_minification_skip_tour",{},"POST")},updateExcludeList:function(t){return r("wphb_minification_save_exclude_list",{data:t},"POST")}},performance:{runTest:function(){return r("wphb_performance_run_test",{},"POST").then((function(t){return t}))},savePerformanceTestSettings:function(t){return r("wphb_performance_save_settings",{data:t},"POST")}},advanced:{saveSettings:function(t,n){return r("wphb_advanced_save_settings",{data:t,form:n},"POST").then((function(t){return t}))},deleteSelectedData:function(t){return r("wphb_advanced_db_delete_data",{data:t},"POST").then((function(t){return t}))},scheduleCleanup:function(){return r("wphb_pro_advanced_db_schedule",{},"POST")}},logger:{clear:function(t){return r("wphb_logger_clear",{module:t},"POST").then((function(t){return t}))}},settings:{saveSettings:function(t){return r("wphb_admin_settings_save_settings",{form_data:t},"POST").then((function(t){return t}))},resetSettings:function(){return r("wphb_reset_settings",{},"POST")}},common:{addRecipient:function(t,n,e,o){return r("wphb_pro_add_recipient",{module:t,setting:n,email:e,name:o},"POST").then((function(t){return t}))},saveReportsSettings:function(t,n){return r("wphb_pro_save_report_settings",{module:t,data:n},"POST").then((function(t){return t}))}},uptime:{resendConfirmationEmail:function(t,n){return r("wphb_pro_resend_confirmation",{name:t,email:n},"POST").then((function(t){return t}))}}};o()(this,i)};function u(t){if("object"!==i(t)&&(t=JSON.parse(t)),t.success)return t.data;var n=t.data||{},e=new Error(n.message||"Error trying to fetch response from server");throw e.response=t,e}n.a=c},function(t,n,e){var r=e(10),o=e(22),i=e(23),c=r?r.toStringTag:void 0;t.exports=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":c&&c in Object(t)?o(t):i(t)}},function(t,n,e){var r=e(11),o="object"==typeof self&&self&&self.Object===Object&&self,i=r||o||Function("return this")();t.exports=i},function(t,n){t.exports=function(t){var n=typeof t;return null!=t&&("object"==n||"function"==n)}},function(t,n,e){var r=e(9),o=e(15);t.exports=function(t){return null!=t&&o(t.length)&&!r(t)}},function(t,n){t.exports=function(t){return null!=t&&"object"==typeof t}},function(t,n,e){var r=e(7),o=e(13),i=Object.prototype.hasOwnProperty;t.exports=function(t,n,e){var c=t[n];i.call(t,n)&&o(c,e)&&(void 0!==e||n in t)||r(t,n,e)}},function(t,n,e){var r=e(8);t.exports=function(t,n,e){"__proto__"==n&&r?r(t,n,{configurable:!0,enumerable:!0,value:e,writable:!0}):t[n]=e}},function(t,n,e){var r=e(20),o=function(){try{var t=r(Object,"defineProperty");return t({},"",{}),t}catch(t){}}();t.exports=o},function(t,n,e){var r=e(1),o=e(3);t.exports=function(t){if(!o(t))return!1;var n=r(t);return"[object Function]"==n||"[object GeneratorFunction]"==n||"[object AsyncFunction]"==n||"[object Proxy]"==n}},function(t,n,e){var r=e(2).Symbol;t.exports=r},function(t,n,e){(function(n){var e="object"==typeof n&&n&&n.Object===Object&&n;t.exports=e}).call(this,e(12))},function(t,n){var e;e=function(){return this}();try{e=e||new Function("return this")()}catch(t){"object"==typeof window&&(e=window)}t.exports=e},function(t,n){t.exports=function(t,n){return t===n||t!=t&&n!=n}},function(t,n){t.exports=function(t){return t}},function(t,n){t.exports=function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=9007199254740991}},function(t,n){var e=/^(?:0|[1-9]\d*)$/;t.exports=function(t,n){var r=typeof t;return!!(n=null==n?9007199254740991:n)&&("number"==r||"symbol"!=r&&e.test(t))&&t>-1&&t%1==0&&t<n}},function(t,n){var e=Object.prototype;t.exports=function(t){var n=t&&t.constructor;return t===("function"==typeof n&&n.prototype||e)}},function(t,n){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}},function(t,n,e){var r=e(6),o=e(28),i=e(29),c=e(4),u=e(17),a=e(38),s=Object.prototype.hasOwnProperty,f=i((function(t,n){if(u(n)||c(n))o(n,a(n),t);else for(var e in n)s.call(n,e)&&r(t,e,n[e])}));t.exports=f},function(t,n,e){var r=e(21),o=e(27);t.exports=function(t,n){var e=o(t,n);return r(e)?e:void 0}},function(t,n,e){var r=e(9),o=e(24),i=e(3),c=e(26),u=/^\[object .+?Constructor\]$/,a=Function.prototype,s=Object.prototype,f=a.toString,l=s.hasOwnProperty,p=RegExp("^"+f.call(l).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");t.exports=function(t){return!(!i(t)||o(t))&&(r(t)?p:u).test(c(t))}},function(t,n,e){var r=e(10),o=Object.prototype,i=o.hasOwnProperty,c=o.toString,u=r?r.toStringTag:void 0;t.exports=function(t){var n=i.call(t,u),e=t[u];try{t[u]=void 0;var r=!0}catch(t){}var o=c.call(t);return r&&(n?t[u]=e:delete t[u]),o}},function(t,n){var e=Object.prototype.toString;t.exports=function(t){return e.call(t)}},function(t,n,e){var r,o=e(25),i=(r=/[^.]+$/.exec(o&&o.keys&&o.keys.IE_PROTO||""))?"Symbol(src)_1."+r:"";t.exports=function(t){return!!i&&i in t}},function(t,n,e){var r=e(2)["__core-js_shared__"];t.exports=r},function(t,n){var e=Function.prototype.toString;t.exports=function(t){if(null!=t){try{return e.call(t)}catch(t){}try{return t+""}catch(t){}}return""}},function(t,n){t.exports=function(t,n){return null==t?void 0:t[n]}},function(t,n,e){var r=e(6),o=e(7);t.exports=function(t,n,e,i){var c=!e;e||(e={});for(var u=-1,a=n.length;++u<a;){var s=n[u],f=i?i(e[s],t[s],s,e,t):void 0;void 0===f&&(f=t[s]),c?o(e,s,f):r(e,s,f)}return e}},function(t,n,e){var r=e(30),o=e(37);t.exports=function(t){return r((function(n,e){var r=-1,i=e.length,c=i>1?e[i-1]:void 0,u=i>2?e[2]:void 0;for(c=t.length>3&&"function"==typeof c?(i--,c):void 0,u&&o(e[0],e[1],u)&&(c=i<3?void 0:c,i=1),n=Object(n);++r<i;){var a=e[r];a&&t(n,a,r,c)}return n}))}},function(t,n,e){var r=e(14),o=e(31),i=e(33);t.exports=function(t,n){return i(o(t,n,r),t+"")}},function(t,n,e){var r=e(32),o=Math.max;t.exports=function(t,n,e){return n=o(void 0===n?t.length-1:n,0),function(){for(var i=arguments,c=-1,u=o(i.length-n,0),a=Array(u);++c<u;)a[c]=i[n+c];c=-1;for(var s=Array(n+1);++c<n;)s[c]=i[c];return s[n]=e(a),r(t,this,s)}}},function(t,n){t.exports=function(t,n,e){switch(e.length){case 0:return t.call(n);case 1:return t.call(n,e[0]);case 2:return t.call(n,e[0],e[1]);case 3:return t.call(n,e[0],e[1],e[2])}return t.apply(n,e)}},function(t,n,e){var r=e(34),o=e(36)(r);t.exports=o},function(t,n,e){var r=e(35),o=e(8),i=e(14),c=o?function(t,n){return o(t,"toString",{configurable:!0,enumerable:!1,value:r(n),writable:!0})}:i;t.exports=c},function(t,n){t.exports=function(t){return function(){return t}}},function(t,n){var e=Date.now;t.exports=function(t){var n=0,r=0;return function(){var o=e(),i=16-(o-r);if(r=o,i>0){if(++n>=800)return arguments[0]}else n=0;return t.apply(void 0,arguments)}}},function(t,n,e){var r=e(13),o=e(4),i=e(16),c=e(3);t.exports=function(t,n,e){if(!c(e))return!1;var u=typeof n;return!!("number"==u?o(e)&&i(n,e.length):"string"==u&&n in e)&&r(e[n],t)}},function(t,n,e){var r=e(39),o=e(50),i=e(4);t.exports=function(t){return i(t)?r(t):o(t)}},function(t,n,e){var r=e(40),o=e(41),i=e(43),c=e(44),u=e(16),a=e(46),s=Object.prototype.hasOwnProperty;t.exports=function(t,n){var e=i(t),f=!e&&o(t),l=!e&&!f&&c(t),p=!e&&!f&&!l&&a(t),h=e||f||l||p,v=h?r(t.length,String):[],d=v.length;for(var _ in t)!n&&!s.call(t,_)||h&&("length"==_||l&&("offset"==_||"parent"==_)||p&&("buffer"==_||"byteLength"==_||"byteOffset"==_)||u(_,d))||v.push(_);return v}},function(t,n){t.exports=function(t,n){for(var e=-1,r=Array(t);++e<t;)r[e]=n(e);return r}},function(t,n,e){var r=e(42),o=e(5),i=Object.prototype,c=i.hasOwnProperty,u=i.propertyIsEnumerable,a=r(function(){return arguments}())?r:function(t){return o(t)&&c.call(t,"callee")&&!u.call(t,"callee")};t.exports=a},function(t,n,e){var r=e(1),o=e(5);t.exports=function(t){return o(t)&&"[object Arguments]"==r(t)}},function(t,n){var e=Array.isArray;t.exports=e},function(t,n,e){(function(t){var r=e(2),o=e(45),i=n&&!n.nodeType&&n,c=i&&"object"==typeof t&&t&&!t.nodeType&&t,u=c&&c.exports===i?r.Buffer:void 0,a=(u?u.isBuffer:void 0)||o;t.exports=a}).call(this,e(18)(t))},function(t,n){t.exports=function(){return!1}},function(t,n,e){var r=e(47),o=e(48),i=e(49),c=i&&i.isTypedArray,u=c?o(c):r;t.exports=u},function(t,n,e){var r=e(1),o=e(15),i=e(5),c={};c["[object Float32Array]"]=c["[object Float64Array]"]=c["[object Int8Array]"]=c["[object Int16Array]"]=c["[object Int32Array]"]=c["[object Uint8Array]"]=c["[object Uint8ClampedArray]"]=c["[object Uint16Array]"]=c["[object Uint32Array]"]=!0,c["[object Arguments]"]=c["[object Array]"]=c["[object ArrayBuffer]"]=c["[object Boolean]"]=c["[object DataView]"]=c["[object Date]"]=c["[object Error]"]=c["[object Function]"]=c["[object Map]"]=c["[object Number]"]=c["[object Object]"]=c["[object RegExp]"]=c["[object Set]"]=c["[object String]"]=c["[object WeakMap]"]=!1,t.exports=function(t){return i(t)&&o(t.length)&&!!c[r(t)]}},function(t,n){t.exports=function(t){return function(n){return t(n)}}},function(t,n,e){(function(t){var r=e(11),o=n&&!n.nodeType&&n,i=o&&"object"==typeof t&&t&&!t.nodeType&&t,c=i&&i.exports===o&&r.process,u=function(){try{var t=i&&i.require&&i.require("util").types;return t||c&&c.binding&&c.binding("util")}catch(t){}}();t.exports=u}).call(this,e(18)(t))},function(t,n,e){var r=e(17),o=e(51),i=Object.prototype.hasOwnProperty;t.exports=function(t){if(!r(t))return o(t);var n=[];for(var e in Object(t))i.call(t,e)&&"constructor"!=e&&n.push(e);return n}},function(t,n,e){var r=e(52)(Object.keys,Object);t.exports=r},function(t,n){t.exports=function(t,n){return function(e){return t(n(e))}}},function(t,n,e){(function(n,e){
2
  /*!
3
  * @overview es6-promise - a tiny implementation of Promises/A+.
4
  * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)
5
  * @license Licensed under MIT license
6
  * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE
7
  * @version v4.2.8+1e68dce6
8
+ */var r;r=function(){"use strict";function t(t){return"function"==typeof t}var r=Array.isArray?Array.isArray:function(t){return"[object Array]"===Object.prototype.toString.call(t)},o=0,i=void 0,c=void 0,u=function(t,n){v[o]=t,v[o+1]=n,2===(o+=2)&&(c?c(d):m())},a="undefined"!=typeof window?window:void 0,s=a||{},f=s.MutationObserver||s.WebKitMutationObserver,l="undefined"==typeof self&&void 0!==n&&"[object process]"==={}.toString.call(n),p="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel;function h(){var t=setTimeout;return function(){return t(d,1)}}var v=new Array(1e3);function d(){for(var t=0;t<o;t+=2)(0,v[t])(v[t+1]),v[t]=void 0,v[t+1]=void 0;o=0}var _,b,y,g,m=void 0;function w(t,n){var e=this,r=new this.constructor(j);void 0===r[S]&&N(r);var o=e._state;if(o){var i=arguments[o-1];u((function(){return F(o,r,i,e._result)}))}else k(e,r,t,n);return r}function O(t){if(t&&"object"==typeof t&&t.constructor===this)return t;var n=new this(j);return T(n,t),n}l?m=function(){return n.nextTick(d)}:f?(b=0,y=new f(d),g=document.createTextNode(""),y.observe(g,{characterData:!0}),m=function(){g.data=b=++b%2}):p?((_=new MessageChannel).port1.onmessage=d,m=function(){return _.port2.postMessage(0)}):m=void 0===a?function(){try{var t=Function("return this")().require("vertx");return void 0!==(i=t.runOnLoop||t.runOnContext)?function(){i(d)}:h()}catch(t){return h()}}():h();var S=Math.random().toString(36).substring(2);function j(){}function x(n,e,r){e.constructor===n.constructor&&r===w&&e.constructor.resolve===O?function(t,n){1===n._state?A(t,n._result):2===n._state?E(t,n._result):k(n,void 0,(function(n){return T(t,n)}),(function(n){return E(t,n)}))}(n,e):void 0===r?A(n,e):t(r)?function(t,n,e){u((function(t){var r=!1,o=function(t,n,e,r){try{t.call(n,e,r)}catch(t){return t}}(e,n,(function(e){r||(r=!0,n!==e?T(t,e):A(t,e))}),(function(n){r||(r=!0,E(t,n))}),t._label);!r&&o&&(r=!0,E(t,o))}),t)}(n,e,r):A(n,e)}function T(t,n){if(t===n)E(t,new TypeError("You cannot resolve a promise with itself"));else if(o=typeof(r=n),null===r||"object"!==o&&"function"!==o)A(t,n);else{var e=void 0;try{e=n.then}catch(n){return void E(t,n)}x(t,n,e)}var r,o}function P(t){t._onerror&&t._onerror(t._result),C(t)}function A(t,n){void 0===t._state&&(t._result=n,t._state=1,0!==t._subscribers.length&&u(C,t))}function E(t,n){void 0===t._state&&(t._state=2,t._result=n,u(P,t))}function k(t,n,e,r){var o=t._subscribers,i=o.length;t._onerror=null,o[i]=n,o[i+1]=e,o[i+2]=r,0===i&&t._state&&u(C,t)}function C(t){var n=t._subscribers,e=t._state;if(0!==n.length){for(var r=void 0,o=void 0,i=t._result,c=0;c<n.length;c+=3)r=n[c],o=n[c+e],r?F(e,r,o,i):o(i);t._subscribers.length=0}}function F(n,e,r,o){var i=t(r),c=void 0,u=void 0,a=!0;if(i){try{c=r(o)}catch(t){a=!1,u=t}if(e===c)return void E(e,new TypeError("A promises callback cannot return that same promise."))}else c=o;void 0!==e._state||(i&&a?T(e,c):!1===a?E(e,u):1===n?A(e,c):2===n&&E(e,c))}var M=0;function N(t){t[S]=M++,t._state=void 0,t._result=void 0,t._subscribers=[]}var D=function(){function t(t,n){this._instanceConstructor=t,this.promise=new t(j),this.promise[S]||N(this.promise),r(n)?(this.length=n.length,this._remaining=n.length,this._result=new Array(this.length),0===this.length?A(this.promise,this._result):(this.length=this.length||0,this._enumerate(n),0===this._remaining&&A(this.promise,this._result))):E(this.promise,new Error("Array Methods must be provided an Array"))}return t.prototype._enumerate=function(t){for(var n=0;void 0===this._state&&n<t.length;n++)this._eachEntry(t[n],n)},t.prototype._eachEntry=function(t,n){var e=this._instanceConstructor,r=e.resolve;if(r===O){var o=void 0,i=void 0,c=!1;try{o=t.then}catch(t){c=!0,i=t}if(o===w&&void 0!==t._state)this._settledAt(t._state,n,t._result);else if("function"!=typeof o)this._remaining--,this._result[n]=t;else if(e===L){var u=new e(j);c?E(u,i):x(u,t,o),this._willSettleAt(u,n)}else this._willSettleAt(new e((function(n){return n(t)})),n)}else this._willSettleAt(r(t),n)},t.prototype._settledAt=function(t,n,e){var r=this.promise;void 0===r._state&&(this._remaining--,2===t?E(r,e):this._result[n]=e),0===this._remaining&&A(r,this._result)},t.prototype._willSettleAt=function(t,n){var e=this;k(t,void 0,(function(t){return e._settledAt(1,n,t)}),(function(t){return e._settledAt(2,n,t)}))},t}(),L=function(){function n(t){this[S]=M++,this._result=this._state=void 0,this._subscribers=[],j!==t&&("function"!=typeof t&&function(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}(),this instanceof n?function(t,n){try{n((function(n){T(t,n)}),(function(n){E(t,n)}))}catch(n){E(t,n)}}(this,t):function(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}())}return n.prototype.catch=function(t){return this.then(null,t)},n.prototype.finally=function(n){var e=this.constructor;return t(n)?this.then((function(t){return e.resolve(n()).then((function(){return t}))}),(function(t){return e.resolve(n()).then((function(){throw t}))})):this.then(n,n)},n}();return L.prototype.then=w,L.all=function(t){return new D(this,t).promise},L.race=function(t){var n=this;return r(t)?new n((function(e,r){for(var o=t.length,i=0;i<o;i++)n.resolve(t[i]).then(e,r)})):new n((function(t,n){return n(new TypeError("You must pass an array to race."))}))},L.resolve=O,L.reject=function(t){var n=new this(j);return E(n,t),n},L._setScheduler=function(t){c=t},L._setAsap=function(t){u=t},L._asap=u,L.polyfill=function(){var t=void 0;if(void 0!==e)t=e;else if("undefined"!=typeof self)t=self;else try{t=Function("return this")()}catch(t){throw new Error("polyfill failed because global object is unavailable in this environment")}var n=t.Promise;if(n){var r=null;try{r=Object.prototype.toString.call(n.resolve())}catch(t){}if("[object Promise]"===r&&!n.cast)return}t.Promise=L},L.Promise=L,L},t.exports=r()}).call(this,e(54),e(12))},function(t,n){var e,r,o=t.exports={};function i(){throw new Error("setTimeout has not been defined")}function c(){throw new Error("clearTimeout has not been defined")}function u(t){if(e===setTimeout)return setTimeout(t,0);if((e===i||!e)&&setTimeout)return e=setTimeout,setTimeout(t,0);try{return e(t,0)}catch(n){try{return e.call(null,t,0)}catch(n){return e.call(this,t,0)}}}!function(){try{e="function"==typeof setTimeout?setTimeout:i}catch(t){e=i}try{r="function"==typeof clearTimeout?clearTimeout:c}catch(t){r=c}}();var a,s=[],f=!1,l=-1;function p(){f&&a&&(f=!1,a.length?s=a.concat(s):l=-1,s.length&&h())}function h(){if(!f){var t=u(p);f=!0;for(var n=s.length;n;){for(a=s,s=[];++l<n;)a&&a[l].run();l=-1,n=s.length}a=null,f=!1,function(t){if(r===clearTimeout)return clearTimeout(t);if((r===c||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(t);try{r(t)}catch(n){try{return r.call(null,t)}catch(n){return r.call(this,t)}}}(t)}}function v(t,n){this.fun=t,this.array=n}function d(){}o.nextTick=function(t){var n=new Array(arguments.length-1);if(arguments.length>1)for(var e=1;e<arguments.length;e++)n[e-1]=arguments[e];s.push(new v(t,n)),1!==s.length||f||u(h)},v.prototype.run=function(){this.fun.apply(null,this.array)},o.title="browser",o.browser=!0,o.env={},o.argv=[],o.version="",o.versions={},o.on=d,o.addListener=d,o.once=d,o.off=d,o.removeListener=d,o.removeAllListeners=d,o.emit=d,o.prependListener=d,o.prependOnceListener=d,o.listeners=function(t){return[]},o.binding=function(t){throw new Error("process.binding is not supported")},o.cwd=function(){return"/"},o.chdir=function(t){throw new Error("process.chdir is not supported")},o.umask=function(){return 0}},,,,,,,,,,,,,,,,,,,,,,,,function(t,n,e){"use strict";e.r(n);var r=e(0),o=wp.editPost.PluginPostStatusInfo,i=wp.plugins.registerPlugin,c=wp.data,u=c.select,a=c.dispatch,s=function(){var t=u("core/editor").getCurrentPostId();r.a.caching.clearCacheForPost(t).then(f)},f=function(){u("core/notices").getNotices().find((function(t){return"wphb-gb-notice"===t.id}))||a("core/notices").createNotice("success",wphb.strings.notice,{id:"wphb-gb-notice"})};i("wphb",{render:function(){return React.createElement(o,{className:"wphb-clear-cache"},React.createElement("input",{type:"submit",value:wphb.strings.button,onClick:s,className:"components-button is-button is-default is-large editor-post-trash"}))}})}]);
9
  //# sourceMappingURL=wphb-gb-block.min.js.map
admin/assets/js/wphb-gb-block.min.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./_src/js/utils/fetcher.js","webpack:///./node_modules/lodash/_baseGetTag.js","webpack:///./node_modules/lodash/_root.js","webpack:///./node_modules/lodash/isObject.js","webpack:///./node_modules/lodash/isArrayLike.js","webpack:///./node_modules/lodash/isObjectLike.js","webpack:///./node_modules/lodash/_assignValue.js","webpack:///./node_modules/lodash/_baseAssignValue.js","webpack:///./node_modules/lodash/_defineProperty.js","webpack:///./node_modules/lodash/isFunction.js","webpack:///./node_modules/lodash/_Symbol.js","webpack:///./node_modules/lodash/_freeGlobal.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/lodash/eq.js","webpack:///./node_modules/lodash/identity.js","webpack:///./node_modules/lodash/isLength.js","webpack:///./node_modules/lodash/_isIndex.js","webpack:///./node_modules/lodash/_isPrototype.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/lodash/assign.js","webpack:///./node_modules/lodash/_getNative.js","webpack:///./node_modules/lodash/_baseIsNative.js","webpack:///./node_modules/lodash/_getRawTag.js","webpack:///./node_modules/lodash/_objectToString.js","webpack:///./node_modules/lodash/_isMasked.js","webpack:///./node_modules/lodash/_coreJsData.js","webpack:///./node_modules/lodash/_toSource.js","webpack:///./node_modules/lodash/_getValue.js","webpack:///./node_modules/lodash/_copyObject.js","webpack:///./node_modules/lodash/_createAssigner.js","webpack:///./node_modules/lodash/_baseRest.js","webpack:///./node_modules/lodash/_overRest.js","webpack:///./node_modules/lodash/_apply.js","webpack:///./node_modules/lodash/_setToString.js","webpack:///./node_modules/lodash/_baseSetToString.js","webpack:///./node_modules/lodash/constant.js","webpack:///./node_modules/lodash/_shortOut.js","webpack:///./node_modules/lodash/_isIterateeCall.js","webpack:///./node_modules/lodash/keys.js","webpack:///./node_modules/lodash/_arrayLikeKeys.js","webpack:///./node_modules/lodash/_baseTimes.js","webpack:///./node_modules/lodash/isArguments.js","webpack:///./node_modules/lodash/_baseIsArguments.js","webpack:///./node_modules/lodash/isArray.js","webpack:///./node_modules/lodash/isBuffer.js","webpack:///./node_modules/lodash/stubFalse.js","webpack:///./node_modules/lodash/isTypedArray.js","webpack:///./node_modules/lodash/_baseIsTypedArray.js","webpack:///./node_modules/lodash/_baseUnary.js","webpack:///./node_modules/lodash/_nodeUtil.js","webpack:///./node_modules/lodash/_baseKeys.js","webpack:///./node_modules/lodash/_nativeKeys.js","webpack:///./node_modules/lodash/_overArg.js","webpack:///./node_modules/es6-promise/dist/es6-promise.js","webpack:///./node_modules/process/browser.js","webpack:///./_src/js/block.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","HBFetcher","fetchUrl","ajaxurl","fetchNonce","wphb","nonces","HBFetchNonce","request","action","data","method","nonce","args","url","Promise","require","resolve","reject","jQuery","ajax","done","fail","then","response","JSON","parse","success","error","Error","message","checkStatus","methods","notice","dismiss","id","actionPrefix","dismissCloudflareDash","caching","activate","saveSettings","clearCache","setExpiration","expiry_times","setServer","reloadSnippets","type","updateHtaccess","recheckExpiry","clearCacheForPost","postId","cancelPreload","cloudflare","connect","step","formData","cfData","purgeCache","recheckZones","dashboard","skipSetup","minification","toggleCDN","toggleLog","toggleView","startCheck","checkStep","finishCheck","cancelScan","saveCriticalCss","form","updateAssetPath","resetAsset","saveNetworkSettings","settings","skipTour","updateExcludeList","performance","runTest","savePerformanceTestSettings","advanced","deleteSelectedData","scheduleCleanup","actionPrefixPro","logger","clear","form_data","resetSettings","common","addRecipient","setting","email","saveReportsSettings","uptime","resendConfirmationEmail","assign","this","getRawTag","objectToString","nullTag","undefinedTag","symToStringTag","undefined","freeGlobal","freeSelf","self","root","Function","isFunction","isLength","length","baseAssignValue","eq","objValue","getNative","func","e","baseGetTag","isObject","asyncTag","funcTag","genTag","proxyTag","tag","global","g","window","other","MAX_SAFE_INTEGER","reIsUint","test","objectProto","Ctor","constructor","webpackPolyfill","deprecate","paths","children","assignValue","copyObject","createAssigner","isArrayLike","isPrototype","keys","source","baseIsNative","getValue","isMasked","toSource","reIsHostCtor","funcProto","funcToString","toString","reIsNative","RegExp","replace","nativeObjectToString","isOwn","unmasked","result","uid","coreJsData","maskSrcKey","exec","IE_PROTO","props","customizer","isNew","index","newValue","baseRest","isIterateeCall","assigner","sources","guard","identity","overRest","setToString","start","apply","nativeMax","Math","max","transform","arguments","array","Array","otherArgs","thisArg","baseSetToString","shortOut","constant","string","HOT_COUNT","HOT_SPAN","nativeNow","Date","now","count","lastCalled","stamp","remaining","isIndex","arrayLikeKeys","baseKeys","baseTimes","isArguments","isArray","isBuffer","isTypedArray","inherited","isArr","isArg","isBuff","isType","skipIndexes","String","push","iteratee","baseIsArguments","isObjectLike","propertyIsEnumerable","argsTag","stubFalse","freeExports","nodeType","freeModule","Buffer","baseIsTypedArray","baseUnary","nodeUtil","nodeIsTypedArray","typedArrayTags","freeProcess","process","types","binding","nativeKeys","overArg","arg","factory","x","len","vertxNext","customSchedulerFn","asap","callback","queue","flush","scheduleFlush","browserWindow","browserGlobal","BrowserMutationObserver","MutationObserver","WebKitMutationObserver","isNode","isWorker","Uint8ClampedArray","importScripts","MessageChannel","useSetTimeout","globalSetTimeout","setTimeout","channel","iterations","observer","node","onFulfillment","onRejection","parent","child","noop","PROMISE_ID","makePromise","_state","invokeCallback","_result","subscribe","resolve$1","promise","nextTick","document","createTextNode","observe","characterData","port1","onmessage","port2","postMessage","vertx","runOnLoop","runOnContext","attemptVertx","random","substring","PENDING","FULFILLED","REJECTED","handleMaybeThenable","maybeThenable","then$$1","thenable","fulfill","reason","handleOwnThenable","sealed","fulfillmentHandler","rejectionHandler","tryThen","_label","handleForeignThenable","TypeError","publishRejection","_onerror","publish","_subscribers","subscribers","settled","detail","hasCallback","succeeded","Enumerator","Constructor","input","_instanceConstructor","_remaining","_enumerate","_eachEntry","entry","resolve$$1","_then","didError","_settledAt","Promise$1","_willSettleAt","state","enumerator","resolver","needsResolver","initializePromise","needsNew","catch","finally","all","entries","race","_","_setScheduler","scheduleFn","_setAsap","asapFn","_asap","polyfill","local","P","promiseToString","cast","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","clearTimeout","currentQueue","draining","queueIndex","cleanUpNextTick","concat","drainQueue","timeout","run","marker","runClearTimeout","Item","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","cwd","chdir","dir","umask","PluginPostStatusInfo","wp","editPost","registerPlugin","plugins","select","dispatch","handleClearCache","getCurrentPostId","Fetcher","showNotice","getNotices","find","createNotice","strings","render","className","button","onClick"],"mappings":"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","file":"wphb-gb-block.min.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 78);\n","/* global ajaxurl */\n/* global wphb */\n\n/**\n * External dependencies\n */\nimport assign from 'lodash/assign';\n\n/**\n * Fetcher.\n *\n * @var {string} wphb.nonces.HBFetchNonce\n * @constructor\n */\nfunction Fetcher() {\n\tconst fetchUrl = ajaxurl;\n\tconst fetchNonce = wphb.nonces.HBFetchNonce;\n\tconst actionPrefix = 'wphb_';\n\tconst actionPrefixPro = 'wphb_pro_';\n\n\t/**\n\t * Request ajax with a promise.\n\t *\n\t * @param {string} action\n\t * @param {Object} data\n\t * @param {string} method\n\t * @return {Promise<any>} Request results.\n\t */\n\tfunction request( action, data = {}, method = 'GET' ) {\n\t\tdata.nonce = fetchNonce;\n\t\tdata.action = action;\n\t\tconst args = { data, method };\n\t\targs.url = fetchUrl;\n\t\tconst Promise = require( 'es6-promise' ).Promise;\n\t\treturn new Promise( ( resolve, reject ) => {\n\t\t\tjQuery.ajax( args ).done( resolve ).fail( reject );\n\t\t} )\n\t\t\t.then( ( response ) => checkStatus( response ) );\n\t}\n\n\tconst methods = {\n\t\t/**\n\t\t * Notices actions.\n\t\t */\n\t\tnotice: {\n\t\t\t/**\n\t\t\t * Dismiss notice\n\t\t\t * @param {string} id\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tdismiss: ( id ) => {\n\t\t\t\tconst action = actionPrefix + 'notice_dismiss';\n\t\t\t\treturn request( action, { id }, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Dismiss CloudFlare dash notice\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tdismissCloudflareDash: () => {\n\t\t\t\tconst action = actionPrefix + 'cf_notice_dismiss';\n\t\t\t\treturn request( action, {}, 'POST' );\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Caching module actions.\n\t\t */\n\t\tcaching: {\n\t\t\t/**\n\t\t\t * Activate browser caching.\n\t\t\t * @since 1.9.0\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tactivate: () => {\n\t\t\t\tconst action = actionPrefix + 'caching_activate';\n\t\t\t\treturn request( action, {}, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Unified save settings method.\n\t\t\t * @since 1.9.0\n\t\t\t * @param {string} module\n\t\t\t * @param {string} data Serialized form data.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tsaveSettings: ( module, data ) => {\n\t\t\t\tconst action = actionPrefix + module + '_save_settings';\n\t\t\t\treturn request( action, { data }, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Clear cache for selected module.\n\t\t\t * @since 1.9.0\n\t\t\t * @param {string} module\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tclearCache: ( module ) => {\n\t\t\t\tconst action = actionPrefix + 'clear_module_cache';\n\t\t\t\treturn request( action, { module }, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Set expiration for browser caching.\n\t\t\t * @param {Object} expiry_times Type expiry times.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tsetExpiration: ( expiry_times ) => {\n\t\t\t\tconst action = actionPrefix + 'caching_set_expiration';\n\t\t\t\treturn request( action, { expiry_times }, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Set server type.\n\t\t\t * @param {string} value Server type.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tsetServer: ( value ) => {\n\t\t\t\tconst action = actionPrefix + 'caching_set_server_type';\n\t\t\t\treturn request( action, { value }, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Reload snippet.\n\t\t\t * @param {string} type Server type.\n\t\t\t * @param {Object} expiry_times Type expiry times.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\treloadSnippets: ( type, expiry_times ) => {\n\t\t\t\tconst action = actionPrefix + 'caching_reload_snippet';\n\t\t\t\treturn request( action, { type, expiry_times }, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Update htaccess file.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tupdateHtaccess: () => {\n\t\t\t\tconst action = actionPrefix + 'caching_update_htaccess';\n\t\t\t\treturn request( action, {}, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Re-check expiry in meta box header button action.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\trecheckExpiry: () => {\n\t\t\t\tconst action = actionPrefix + 'caching_recheck_expiry';\n\t\t\t\treturn request( action, {}, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Clear cache for post.\n\t\t\t * @param {number} postId\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tclearCacheForPost: ( postId ) => {\n\t\t\t\tconst action = actionPrefix + 'gutenberg_clear_post_cache';\n\t\t\t\treturn request( action, { postId }, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Cancel cache preload.\n\t\t\t *\n\t\t\t * @since 2.1.0\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tcancelPreload() {\n\t\t\t\tconst action = actionPrefix + 'preload_cancel';\n\t\t\t\treturn request( action, {}, 'POST' );\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Cloudflare module actions.\n\t\t */\n\t\tcloudflare: {\n\t\t\t/**\n\t\t\t * Connect to Cloudflare.\n\t\t\t * @param {string} step\n\t\t\t * @param {string} formData\n\t\t\t * @param {Array} cfData\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tconnect: ( step, formData, cfData ) => {\n\t\t\t\tconst action = actionPrefix + 'cloudflare_connect';\n\t\t\t\treturn request( action, { step, formData, cfData }, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Set expiry for Cloudflare cache.\n\t\t\t * @param {Object} value Expiry value.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tsetExpiration: ( value ) => {\n\t\t\t\tconst action = actionPrefix + 'cloudflare_set_expiry';\n\t\t\t\treturn request( action, { value }, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Purge Cloudflare cache.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tpurgeCache: () => {\n\t\t\t\tconst action = actionPrefix + 'cloudflare_purge_cache';\n\t\t\t\treturn request( action, {}, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Recheck Cloudflare zones.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\trecheckZones: () => {\n\t\t\t\tconst action = actionPrefix + 'cloudflare_recheck_zones';\n\t\t\t\treturn request( action, {}, 'POST' );\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Dashboard module actions.\n\t\t */\n\t\tdashboard: {\n\t\t\t/**\n\t\t\t * Skip quick setup.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tskipSetup: () => {\n\t\t\t\tconst action = actionPrefix + 'dash_skip_setup';\n\t\t\t\treturn request( action, {}, 'POST' );\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Asset Optimization module actions.\n\t\t */\n\t\tminification: {\n\t\t\t/**\n\t\t\t * Toggle CDN settings.\n\t\t\t * @param {string} value CDN checkbox value.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\ttoggleCDN: ( value ) => {\n\t\t\t\tconst action = actionPrefix + 'minification_toggle_cdn';\n\t\t\t\treturn request( action, { value }, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Toggle logs settings.\n\t\t\t * @param {string} value\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\ttoggleLog: ( value ) => {\n\t\t\t\tconst action = actionPrefix + 'minification_toggle_log';\n\t\t\t\treturn request( action, { value }, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Toggle minification advanced mode.\n\t\t\t * @param {string} value\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\ttoggleView: ( value ) => {\n\t\t\t\tconst action = actionPrefix + 'minification_toggle_view';\n\t\t\t\treturn request( action, { value }, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Start minification check.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tstartCheck: () => {\n\t\t\t\tconst action = actionPrefix + 'minification_start_check';\n\t\t\t\treturn request( action, {}, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Do a step in minification process.\n\t\t\t * @param {number} step\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tcheckStep: ( step ) => {\n\t\t\t\tconst action = actionPrefix + 'minification_check_step';\n\t\t\t\treturn request( action, { step }, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Finish minification process.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tfinishCheck: () => {\n\t\t\t\tconst action = actionPrefix + 'minification_finish_scan';\n\t\t\t\treturn request( action, {}, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Cancel minification scan.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tcancelScan: function cancelScan() {\n\t\t\t\tconst action = actionPrefix + 'minification_cancel_scan';\n\t\t\t\treturn request( action, {}, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Process critical css form.\n\t\t\t * @since 1.8\n\t\t\t * @param {string} form\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tsaveCriticalCss: ( form ) => {\n\t\t\t\tconst action = actionPrefix + 'minification_save_critical_css';\n\t\t\t\treturn request( action, { form }, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Update custom asset path\n\t\t\t * @since 1.9\n\t\t\t * @param {string} value\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tupdateAssetPath: ( value ) => {\n\t\t\t\tconst action = actionPrefix + 'minification_update_asset_path';\n\t\t\t\treturn request( action, { value }, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Reset individual file.\n\t\t\t * @since 1.9.2\n\t\t\t * @param {string} value\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tresetAsset: ( value ) => {\n\t\t\t\tconst action = actionPrefix + 'minification_reset_asset';\n\t\t\t\treturn request( action, { value }, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Save settings in network admin.\n\t\t\t * @since 2.0.0\n\t\t\t * @param {string} settings\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tsaveNetworkSettings: ( settings ) => {\n\t\t\t\tconst action = actionPrefix + 'minification_update_network_settings';\n\t\t\t\treturn request( action, { settings }, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Skip tour.\n\t\t\t *\n\t\t\t * @since 2.1.0\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tskipTour: () => {\n\t\t\t\tconst action = actionPrefix + 'minification_skip_tour';\n\t\t\t\treturn request( action, {}, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Update the CDN exclude list.\n\t\t\t *\n\t\t\t * @since 2.4.0\n\t\t\t * @param {Object} data\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tupdateExcludeList: ( data ) => {\n\t\t\t\tconst action = actionPrefix + 'minification_save_exclude_list';\n\t\t\t\treturn request( action, { data }, 'POST' );\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Performance module actions.\n\t\t */\n\t\tperformance: {\n\t\t\t/**\n\t\t\t * Run performance test.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\trunTest: () => {\n\t\t\t\tconst action = actionPrefix + 'performance_run_test';\n\t\t\t\treturn request( action, {}, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Save performance test settings.\n\t\t\t * @param {string} data From data.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tsavePerformanceTestSettings: ( data ) => {\n\t\t\t\tconst action = actionPrefix + 'performance_save_settings';\n\t\t\t\treturn request( action, { data }, 'POST' );\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Advanced tools module actions.\n\t\t */\n\t\tadvanced: {\n\t\t\t/**\n\t\t\t * Save settings from advanced tools general and db cleanup sections.\n\t\t\t * @param {string} data Type.\n\t\t\t * @param {string} form Serialized form.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tsaveSettings: ( data, form ) => {\n\t\t\t\tconst action = actionPrefix + 'advanced_save_settings';\n\t\t\t\treturn request( action, { data, form }, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Delete selected data from database.\n\t\t\t * @param {string} data\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tdeleteSelectedData: ( data ) => {\n\t\t\t\tconst action = actionPrefix + 'advanced_db_delete_data';\n\t\t\t\treturn request( action, { data }, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Schedule cleanup cron.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tscheduleCleanup: () => {\n\t\t\t\tconst action = actionPrefixPro + 'advanced_db_schedule';\n\t\t\t\treturn request( action, {}, 'POST' );\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Logger module actions.\n\t\t *\n\t\t * @since 1.9.2\n\t\t */\n\t\tlogger: {\n\t\t\t/**\n\t\t\t * Clear logs.\n\t\t\t * @param {string} module Module slug.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tclear: ( module ) => {\n\t\t\t\tconst action = actionPrefix + 'logger_clear';\n\t\t\t\treturn request( action, { module }, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Settings actions.\n\t\t */\n\t\tsettings: {\n\t\t\t/**\n\t\t\t * Save settings from HB admin settings.\n\t\t\t *\n\t\t\t * @param {string} form_data\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tsaveSettings: ( form_data ) => {\n\t\t\t\tconst action = actionPrefix + 'admin_settings_save_settings';\n\t\t\t\treturn request( action, { form_data }, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Reset plugin settings.\n\t\t\t *\n\t\t\t * @since 2.0.0\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tresetSettings: () => {\n\t\t\t\tconst action = actionPrefix + 'reset_settings';\n\t\t\t\treturn request( action, {}, 'POST' );\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Common actions that are used by several modules.\n\t\t *\n\t\t * @since 1.9.3\n\t\t */\n\t\tcommon: {\n\t\t\t/**\n\t\t\t * Add recipient for Performance and Uptime reports.\n\t\t\t *\n\t\t\t * @param {string} module Module name.\n\t\t\t * @param {string} setting Setting name.\n\t\t\t * @param {string} email Email.\n\t\t\t * @param {string} name User.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\taddRecipient: ( module, setting, email, name ) => {\n\t\t\t\tconst action = actionPrefixPro + 'add_recipient';\n\t\t\t\treturn request( action, { module, setting, email, name }, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Save report settings for Performance and Uptime modules.\n\t\t\t *\n\t\t\t * @param {string} module Module name.\n\t\t\t * @param {Array} data From data.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tsaveReportsSettings: ( module, data ) => {\n\t\t\t\tconst action = actionPrefixPro + 'save_report_settings';\n\t\t\t\treturn request( action, { module, data }, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Uptime actions.\n\t\t *\n\t\t * @since 2.3.0\n\t\t */\n\t\tuptime: {\n\t\t\t/**\n\t\t\t * Resend email confirmation.\n\t\t\t *\n\t\t\t * @since 2.3.0\n\t\t\t *\n\t\t\t * @param {string} name JSON encoded recipient name string.\n\t\t\t * @param {string} email JSON encoded recipient email string.\n\t\t\t *\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tresendConfirmationEmail: ( name, email ) => {\n\t\t\t\tconst action = actionPrefixPro + 'resend_confirmation';\n\t\t\t\treturn request( action, { name, email }, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t};\n\n\tassign( this, methods );\n}\n\nconst HBFetcher = new Fetcher();\nexport default HBFetcher;\n\n/**\n * Check status.\n * @param {Object|string} response\n * @return {*} Response\n */\nfunction checkStatus( response ) {\n\tif ( typeof response !== 'object' ) {\n\t\tresponse = JSON.parse( response );\n\t}\n\tif ( response.success ) {\n\t\treturn response.data;\n\t}\n\n\tconst data = response.data || {};\n\tconst error = new Error( data.message || 'Error trying to fetch response from server' );\n\terror.response = response;\n\tthrow error;\n}\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","var assignValue = require('./_assignValue'),\n copyObject = require('./_copyObject'),\n createAssigner = require('./_createAssigner'),\n isArrayLike = require('./isArrayLike'),\n isPrototype = require('./_isPrototype'),\n keys = require('./keys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\nvar assign = createAssigner(function(object, source) {\n if (isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n});\n\nmodule.exports = assign;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n","var baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version v4.2.8+1e68dce6\n */\n\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.ES6Promise = factory());\n}(this, (function () { 'use strict';\n\nfunction objectOrFunction(x) {\n var type = typeof x;\n return x !== null && (type === 'object' || type === 'function');\n}\n\nfunction isFunction(x) {\n return typeof x === 'function';\n}\n\n\n\nvar _isArray = void 0;\nif (Array.isArray) {\n _isArray = Array.isArray;\n} else {\n _isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n}\n\nvar isArray = _isArray;\n\nvar len = 0;\nvar vertxNext = void 0;\nvar customSchedulerFn = void 0;\n\nvar asap = function asap(callback, arg) {\n queue[len] = callback;\n queue[len + 1] = arg;\n len += 2;\n if (len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (customSchedulerFn) {\n customSchedulerFn(flush);\n } else {\n scheduleFlush();\n }\n }\n};\n\nfunction setScheduler(scheduleFn) {\n customSchedulerFn = scheduleFn;\n}\n\nfunction setAsap(asapFn) {\n asap = asapFn;\n}\n\nvar browserWindow = typeof window !== 'undefined' ? window : undefined;\nvar browserGlobal = browserWindow || {};\nvar BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\nvar isNode = typeof self === 'undefined' && typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\n\n// test for web worker but not in IE10\nvar isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';\n\n// node\nfunction useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function () {\n return process.nextTick(flush);\n };\n}\n\n// vertx\nfunction useVertxTimer() {\n if (typeof vertxNext !== 'undefined') {\n return function () {\n vertxNext(flush);\n };\n }\n\n return useSetTimeout();\n}\n\nfunction useMutationObserver() {\n var iterations = 0;\n var observer = new BrowserMutationObserver(flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function () {\n node.data = iterations = ++iterations % 2;\n };\n}\n\n// web worker\nfunction useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = flush;\n return function () {\n return channel.port2.postMessage(0);\n };\n}\n\nfunction useSetTimeout() {\n // Store setTimeout reference so es6-promise will be unaffected by\n // other code modifying setTimeout (like sinon.useFakeTimers())\n var globalSetTimeout = setTimeout;\n return function () {\n return globalSetTimeout(flush, 1);\n };\n}\n\nvar queue = new Array(1000);\nfunction flush() {\n for (var i = 0; i < len; i += 2) {\n var callback = queue[i];\n var arg = queue[i + 1];\n\n callback(arg);\n\n queue[i] = undefined;\n queue[i + 1] = undefined;\n }\n\n len = 0;\n}\n\nfunction attemptVertx() {\n try {\n var vertx = Function('return this')().require('vertx');\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n } catch (e) {\n return useSetTimeout();\n }\n}\n\nvar scheduleFlush = void 0;\n// Decide what async method to use to triggering processing of queued callbacks:\nif (isNode) {\n scheduleFlush = useNextTick();\n} else if (BrowserMutationObserver) {\n scheduleFlush = useMutationObserver();\n} else if (isWorker) {\n scheduleFlush = useMessageChannel();\n} else if (browserWindow === undefined && typeof require === 'function') {\n scheduleFlush = attemptVertx();\n} else {\n scheduleFlush = useSetTimeout();\n}\n\nfunction then(onFulfillment, onRejection) {\n var parent = this;\n\n var child = new this.constructor(noop);\n\n if (child[PROMISE_ID] === undefined) {\n makePromise(child);\n }\n\n var _state = parent._state;\n\n\n if (_state) {\n var callback = arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\n } else {\n subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n}\n\n/**\n `Promise.resolve` returns a promise that will become resolved with the\n passed `value`. It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n resolve(1);\n });\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.resolve(1);\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n @method resolve\n @static\n @param {Any} value value that the returned promise will be resolved with\n Useful for tooling.\n @return {Promise} a promise that will become fulfilled with the given\n `value`\n*/\nfunction resolve$1(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(noop);\n resolve(promise, object);\n return promise;\n}\n\nvar PROMISE_ID = Math.random().toString(36).substring(2);\n\nfunction noop() {}\n\nvar PENDING = void 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\n\nfunction selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n}\n\nfunction cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n}\n\nfunction tryThen(then$$1, value, fulfillmentHandler, rejectionHandler) {\n try {\n then$$1.call(value, fulfillmentHandler, rejectionHandler);\n } catch (e) {\n return e;\n }\n}\n\nfunction handleForeignThenable(promise, thenable, then$$1) {\n asap(function (promise) {\n var sealed = false;\n var error = tryThen(then$$1, thenable, function (value) {\n if (sealed) {\n return;\n }\n sealed = true;\n if (thenable !== value) {\n resolve(promise, value);\n } else {\n fulfill(promise, value);\n }\n }, function (reason) {\n if (sealed) {\n return;\n }\n sealed = true;\n\n reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n reject(promise, error);\n }\n }, promise);\n}\n\nfunction handleOwnThenable(promise, thenable) {\n if (thenable._state === FULFILLED) {\n fulfill(promise, thenable._result);\n } else if (thenable._state === REJECTED) {\n reject(promise, thenable._result);\n } else {\n subscribe(thenable, undefined, function (value) {\n return resolve(promise, value);\n }, function (reason) {\n return reject(promise, reason);\n });\n }\n}\n\nfunction handleMaybeThenable(promise, maybeThenable, then$$1) {\n if (maybeThenable.constructor === promise.constructor && then$$1 === then && maybeThenable.constructor.resolve === resolve$1) {\n handleOwnThenable(promise, maybeThenable);\n } else {\n if (then$$1 === undefined) {\n fulfill(promise, maybeThenable);\n } else if (isFunction(then$$1)) {\n handleForeignThenable(promise, maybeThenable, then$$1);\n } else {\n fulfill(promise, maybeThenable);\n }\n }\n}\n\nfunction resolve(promise, value) {\n if (promise === value) {\n reject(promise, selfFulfillment());\n } else if (objectOrFunction(value)) {\n var then$$1 = void 0;\n try {\n then$$1 = value.then;\n } catch (error) {\n reject(promise, error);\n return;\n }\n handleMaybeThenable(promise, value, then$$1);\n } else {\n fulfill(promise, value);\n }\n}\n\nfunction publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n publish(promise);\n}\n\nfunction fulfill(promise, value) {\n if (promise._state !== PENDING) {\n return;\n }\n\n promise._result = value;\n promise._state = FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n asap(publish, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state !== PENDING) {\n return;\n }\n promise._state = REJECTED;\n promise._result = reason;\n\n asap(publishRejection, promise);\n}\n\nfunction subscribe(parent, child, onFulfillment, onRejection) {\n var _subscribers = parent._subscribers;\n var length = _subscribers.length;\n\n\n parent._onerror = null;\n\n _subscribers[length] = child;\n _subscribers[length + FULFILLED] = onFulfillment;\n _subscribers[length + REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n asap(publish, parent);\n }\n}\n\nfunction publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) {\n return;\n }\n\n var child = void 0,\n callback = void 0,\n detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n}\n\nfunction invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback),\n value = void 0,\n error = void 0,\n succeeded = true;\n\n if (hasCallback) {\n try {\n value = callback(detail);\n } catch (e) {\n succeeded = false;\n error = e;\n }\n\n if (promise === value) {\n reject(promise, cannotReturnOwn());\n return;\n }\n } else {\n value = detail;\n }\n\n if (promise._state !== PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n resolve(promise, value);\n } else if (succeeded === false) {\n reject(promise, error);\n } else if (settled === FULFILLED) {\n fulfill(promise, value);\n } else if (settled === REJECTED) {\n reject(promise, value);\n }\n}\n\nfunction initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value) {\n resolve(promise, value);\n }, function rejectPromise(reason) {\n reject(promise, reason);\n });\n } catch (e) {\n reject(promise, e);\n }\n}\n\nvar id = 0;\nfunction nextId() {\n return id++;\n}\n\nfunction makePromise(promise) {\n promise[PROMISE_ID] = id++;\n promise._state = undefined;\n promise._result = undefined;\n promise._subscribers = [];\n}\n\nfunction validationError() {\n return new Error('Array Methods must be provided an Array');\n}\n\nvar Enumerator = function () {\n function Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(noop);\n\n if (!this.promise[PROMISE_ID]) {\n makePromise(this.promise);\n }\n\n if (isArray(input)) {\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate(input);\n if (this._remaining === 0) {\n fulfill(this.promise, this._result);\n }\n }\n } else {\n reject(this.promise, validationError());\n }\n }\n\n Enumerator.prototype._enumerate = function _enumerate(input) {\n for (var i = 0; this._state === PENDING && i < input.length; i++) {\n this._eachEntry(input[i], i);\n }\n };\n\n Enumerator.prototype._eachEntry = function _eachEntry(entry, i) {\n var c = this._instanceConstructor;\n var resolve$$1 = c.resolve;\n\n\n if (resolve$$1 === resolve$1) {\n var _then = void 0;\n var error = void 0;\n var didError = false;\n try {\n _then = entry.then;\n } catch (e) {\n didError = true;\n error = e;\n }\n\n if (_then === then && entry._state !== PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof _then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === Promise$1) {\n var promise = new c(noop);\n if (didError) {\n reject(promise, error);\n } else {\n handleMaybeThenable(promise, entry, _then);\n }\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function (resolve$$1) {\n return resolve$$1(entry);\n }), i);\n }\n } else {\n this._willSettleAt(resolve$$1(entry), i);\n }\n };\n\n Enumerator.prototype._settledAt = function _settledAt(state, i, value) {\n var promise = this.promise;\n\n\n if (promise._state === PENDING) {\n this._remaining--;\n\n if (state === REJECTED) {\n reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n fulfill(promise, this._result);\n }\n };\n\n Enumerator.prototype._willSettleAt = function _willSettleAt(promise, i) {\n var enumerator = this;\n\n subscribe(promise, undefined, function (value) {\n return enumerator._settledAt(FULFILLED, i, value);\n }, function (reason) {\n return enumerator._settledAt(REJECTED, i, reason);\n });\n };\n\n return Enumerator;\n}();\n\n/**\n `Promise.all` accepts an array of promises, and returns a new promise which\n is fulfilled with an array of fulfillment values for the passed promises, or\n rejected with the reason of the first passed promise to be rejected. It casts all\n elements of the passed iterable to promises as it runs this algorithm.\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = resolve(2);\n let promise3 = resolve(3);\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // The array here would be [ 1, 2, 3 ];\n });\n ```\n\n If any of the `promises` given to `all` are rejected, the first promise\n that is rejected will be given as an argument to the returned promises's\n rejection handler. For example:\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = reject(new Error(\"2\"));\n let promise3 = reject(new Error(\"3\"));\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // Code here never runs because there are rejected promises!\n }, function(error) {\n // error.message === \"2\"\n });\n ```\n\n @method all\n @static\n @param {Array} entries array of promises\n @param {String} label optional string for labeling the promise.\n Useful for tooling.\n @return {Promise} promise that is fulfilled when all `promises` have been\n fulfilled, or rejected if any of them become rejected.\n @static\n*/\nfunction all(entries) {\n return new Enumerator(this, entries).promise;\n}\n\n/**\n `Promise.race` returns a new promise which is settled in the same way as the\n first passed promise to settle.\n\n Example:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 2');\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // result === 'promise 2' because it was resolved before promise1\n // was resolved.\n });\n ```\n\n `Promise.race` is deterministic in that only the state of the first\n settled promise matters. For example, even if other promises given to the\n `promises` array argument are resolved, but the first settled promise has\n become rejected before the other promises became fulfilled, the returned\n promise will become rejected:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n reject(new Error('promise 2'));\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // Code here never runs\n }, function(reason){\n // reason.message === 'promise 2' because promise 2 became rejected before\n // promise 1 became fulfilled\n });\n ```\n\n An example real-world use case is implementing timeouts:\n\n ```javascript\n Promise.race([ajax('foo.json'), timeout(5000)])\n ```\n\n @method race\n @static\n @param {Array} promises array of promises to observe\n Useful for tooling.\n @return {Promise} a promise which settles in the same way as the first passed\n promise to settle.\n*/\nfunction race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (!isArray(entries)) {\n return new Constructor(function (_, reject) {\n return reject(new TypeError('You must pass an array to race.'));\n });\n } else {\n return new Constructor(function (resolve, reject) {\n var length = entries.length;\n for (var i = 0; i < length; i++) {\n Constructor.resolve(entries[i]).then(resolve, reject);\n }\n });\n }\n}\n\n/**\n `Promise.reject` returns a promise rejected with the passed `reason`.\n It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n reject(new Error('WHOOPS'));\n });\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.reject(new Error('WHOOPS'));\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n @method reject\n @static\n @param {Any} reason value that the returned promise will be rejected with.\n Useful for tooling.\n @return {Promise} a promise rejected with the given `reason`.\n*/\nfunction reject$1(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(noop);\n reject(promise, reason);\n return promise;\n}\n\nfunction needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n}\n\nfunction needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n}\n\n/**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n let promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n let xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {Function} resolver\n Useful for tooling.\n @constructor\n*/\n\nvar Promise$1 = function () {\n function Promise(resolver) {\n this[PROMISE_ID] = nextId();\n this._result = this._state = undefined;\n this._subscribers = [];\n\n if (noop !== resolver) {\n typeof resolver !== 'function' && needsResolver();\n this instanceof Promise ? initializePromise(this, resolver) : needsNew();\n }\n }\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n Chaining\n --------\n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n Assimilation\n ------------\n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n If the assimliated promise rejects, then the downstream promise will also reject.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n Simple Example\n --------------\n Synchronous Example\n ```javascript\n let result;\n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n Advanced Example\n --------------\n Synchronous Example\n ```javascript\n let author, books;\n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n function foundBooks(books) {\n }\n function failure(reason) {\n }\n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n\n\n Promise.prototype.catch = function _catch(onRejection) {\n return this.then(null, onRejection);\n };\n\n /**\n `finally` will be invoked regardless of the promise's fate just as native\n try/catch/finally behaves\n \n Synchronous example:\n \n ```js\n findAuthor() {\n if (Math.random() > 0.5) {\n throw new Error();\n }\n return new Author();\n }\n \n try {\n return findAuthor(); // succeed or fail\n } catch(error) {\n return findOtherAuther();\n } finally {\n // always runs\n // doesn't affect the return value\n }\n ```\n \n Asynchronous example:\n \n ```js\n findAuthor().catch(function(reason){\n return findOtherAuther();\n }).finally(function(){\n // author was either found, or not\n });\n ```\n \n @method finally\n @param {Function} callback\n @return {Promise}\n */\n\n\n Promise.prototype.finally = function _finally(callback) {\n var promise = this;\n var constructor = promise.constructor;\n\n if (isFunction(callback)) {\n return promise.then(function (value) {\n return constructor.resolve(callback()).then(function () {\n return value;\n });\n }, function (reason) {\n return constructor.resolve(callback()).then(function () {\n throw reason;\n });\n });\n }\n\n return promise.then(callback, callback);\n };\n\n return Promise;\n}();\n\nPromise$1.prototype.then = then;\nPromise$1.all = all;\nPromise$1.race = race;\nPromise$1.resolve = resolve$1;\nPromise$1.reject = reject$1;\nPromise$1._setScheduler = setScheduler;\nPromise$1._setAsap = setAsap;\nPromise$1._asap = asap;\n\n/*global self*/\nfunction polyfill() {\n var local = void 0;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P) {\n var promiseToString = null;\n try {\n promiseToString = Object.prototype.toString.call(P.resolve());\n } catch (e) {\n // silently ignored\n }\n\n if (promiseToString === '[object Promise]' && !P.cast) {\n return;\n }\n }\n\n local.Promise = Promise$1;\n}\n\n// Strange compat..\nPromise$1.polyfill = polyfill;\nPromise$1.Promise = Promise$1;\n\nreturn Promise$1;\n\n})));\n\n\n\n//# sourceMappingURL=es6-promise.map\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","/* global wphb */\n\nimport Fetcher from './utils/fetcher';\n\nconst { PluginPostStatusInfo } = wp.editPost;\nconst { registerPlugin } = wp.plugins;\nconst { select, dispatch } = wp.data;\n\n/**\n * Handle clear cache action.\n */\nconst handleClearCache = () => {\n\tconst postId = select( 'core/editor' ).getCurrentPostId();\n\tFetcher.caching.clearCacheForPost( postId ).then( showNotice );\n};\n\n/**\n * Show notice.\n */\nconst showNotice = () => {\n\tconst notices = select( 'core/notices' ).getNotices();\n\tif ( ! notices.find( ( notice ) => notice.id === 'wphb-gb-notice' ) ) {\n\t\tdispatch( 'core/notices' ).createNotice( 'success', wphb.strings.notice, { id: 'wphb-gb-notice' } );\n\t}\n};\n\n/**\n * Add clear cache button.\n *\n * @return {*} Element\n * @class\n */\nconst MyPluginPostStatusInfo = () => (\n\t<PluginPostStatusInfo className=\"wphb-clear-cache\">\n\t\t<input type=\"submit\" value={ wphb.strings.button } onClick={ handleClearCache }\n\t\t\tclassName=\"components-button is-button is-default is-large editor-post-trash\" />\n\t</PluginPostStatusInfo>\n);\n\nregisterPlugin( 'wphb', { render: MyPluginPostStatusInfo } );\n"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./_src/js/utils/fetcher.js","webpack:///./node_modules/lodash/_baseGetTag.js","webpack:///./node_modules/lodash/_root.js","webpack:///./node_modules/lodash/isObject.js","webpack:///./node_modules/lodash/isArrayLike.js","webpack:///./node_modules/lodash/isObjectLike.js","webpack:///./node_modules/lodash/_assignValue.js","webpack:///./node_modules/lodash/_baseAssignValue.js","webpack:///./node_modules/lodash/_defineProperty.js","webpack:///./node_modules/lodash/isFunction.js","webpack:///./node_modules/lodash/_Symbol.js","webpack:///./node_modules/lodash/_freeGlobal.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/lodash/eq.js","webpack:///./node_modules/lodash/identity.js","webpack:///./node_modules/lodash/isLength.js","webpack:///./node_modules/lodash/_isIndex.js","webpack:///./node_modules/lodash/_isPrototype.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/lodash/assign.js","webpack:///./node_modules/lodash/_getNative.js","webpack:///./node_modules/lodash/_baseIsNative.js","webpack:///./node_modules/lodash/_getRawTag.js","webpack:///./node_modules/lodash/_objectToString.js","webpack:///./node_modules/lodash/_isMasked.js","webpack:///./node_modules/lodash/_coreJsData.js","webpack:///./node_modules/lodash/_toSource.js","webpack:///./node_modules/lodash/_getValue.js","webpack:///./node_modules/lodash/_copyObject.js","webpack:///./node_modules/lodash/_createAssigner.js","webpack:///./node_modules/lodash/_baseRest.js","webpack:///./node_modules/lodash/_overRest.js","webpack:///./node_modules/lodash/_apply.js","webpack:///./node_modules/lodash/_setToString.js","webpack:///./node_modules/lodash/_baseSetToString.js","webpack:///./node_modules/lodash/constant.js","webpack:///./node_modules/lodash/_shortOut.js","webpack:///./node_modules/lodash/_isIterateeCall.js","webpack:///./node_modules/lodash/keys.js","webpack:///./node_modules/lodash/_arrayLikeKeys.js","webpack:///./node_modules/lodash/_baseTimes.js","webpack:///./node_modules/lodash/isArguments.js","webpack:///./node_modules/lodash/_baseIsArguments.js","webpack:///./node_modules/lodash/isArray.js","webpack:///./node_modules/lodash/isBuffer.js","webpack:///./node_modules/lodash/stubFalse.js","webpack:///./node_modules/lodash/isTypedArray.js","webpack:///./node_modules/lodash/_baseIsTypedArray.js","webpack:///./node_modules/lodash/_baseUnary.js","webpack:///./node_modules/lodash/_nodeUtil.js","webpack:///./node_modules/lodash/_baseKeys.js","webpack:///./node_modules/lodash/_nativeKeys.js","webpack:///./node_modules/lodash/_overArg.js","webpack:///./node_modules/es6-promise/dist/es6-promise.js","webpack:///./node_modules/process/browser.js","webpack:///./_src/js/block.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","HBFetcher","fetchUrl","ajaxurl","fetchNonce","wphb","nonces","HBFetchNonce","request","action","data","method","nonce","args","url","Promise","require","resolve","reject","jQuery","ajax","done","fail","then","response","checkStatus","methods","notice","dismiss","id","actionPrefix","dismissCloudflareDash","caching","activate","saveSettings","clearCache","setExpiration","expiry_times","setServer","reloadSnippets","type","updateHtaccess","recheckExpiry","clearCacheForPost","postId","cancelPreload","cloudflare","connect","step","formData","cfData","purgeCache","recheckZones","dashboard","skipSetup","minification","toggleCDN","toggleLog","toggleView","startCheck","checkStep","finishCheck","cancelScan","saveCriticalCss","form","updateAssetPath","resetAsset","saveNetworkSettings","settings","skipTour","updateExcludeList","performance","runTest","savePerformanceTestSettings","advanced","deleteSelectedData","scheduleCleanup","actionPrefixPro","logger","clear","form_data","resetSettings","common","addRecipient","setting","email","saveReportsSettings","uptime","resendConfirmationEmail","assign","this","JSON","parse","success","error","Error","message","getRawTag","objectToString","symToStringTag","undefined","freeGlobal","freeSelf","self","root","Function","isFunction","isLength","length","baseAssignValue","eq","objValue","getNative","func","e","baseGetTag","isObject","tag","global","g","window","other","reIsUint","test","objectProto","Ctor","constructor","webpackPolyfill","deprecate","paths","children","assignValue","copyObject","createAssigner","isArrayLike","isPrototype","keys","source","baseIsNative","getValue","isMasked","toSource","reIsHostCtor","funcProto","funcToString","toString","reIsNative","RegExp","replace","nativeObjectToString","isOwn","unmasked","result","uid","coreJsData","maskSrcKey","exec","IE_PROTO","props","customizer","isNew","index","newValue","baseRest","isIterateeCall","assigner","sources","guard","identity","overRest","setToString","start","apply","nativeMax","Math","max","transform","arguments","array","Array","otherArgs","thisArg","baseSetToString","shortOut","constant","string","nativeNow","Date","now","count","lastCalled","stamp","remaining","isIndex","arrayLikeKeys","baseKeys","baseTimes","isArguments","isArray","isBuffer","isTypedArray","inherited","isArr","isArg","isBuff","isType","skipIndexes","String","push","iteratee","baseIsArguments","isObjectLike","propertyIsEnumerable","stubFalse","freeExports","nodeType","freeModule","Buffer","baseIsTypedArray","baseUnary","nodeUtil","nodeIsTypedArray","typedArrayTags","freeProcess","process","types","binding","nativeKeys","overArg","arg","factory","x","len","vertxNext","customSchedulerFn","asap","callback","queue","flush","scheduleFlush","browserWindow","browserGlobal","BrowserMutationObserver","MutationObserver","WebKitMutationObserver","isNode","isWorker","Uint8ClampedArray","importScripts","MessageChannel","useSetTimeout","globalSetTimeout","setTimeout","channel","iterations","observer","node","onFulfillment","onRejection","parent","child","noop","PROMISE_ID","makePromise","_state","invokeCallback","_result","subscribe","resolve$1","promise","nextTick","document","createTextNode","observe","characterData","port1","onmessage","port2","postMessage","vertx","runOnLoop","runOnContext","attemptVertx","random","substring","handleMaybeThenable","maybeThenable","then$$1","thenable","fulfill","reason","handleOwnThenable","sealed","fulfillmentHandler","rejectionHandler","tryThen","_label","handleForeignThenable","TypeError","publishRejection","_onerror","publish","_subscribers","subscribers","settled","detail","hasCallback","succeeded","Enumerator","Constructor","input","_instanceConstructor","_remaining","_enumerate","_eachEntry","entry","resolve$$1","_then","didError","_settledAt","Promise$1","_willSettleAt","state","enumerator","resolver","needsResolver","initializePromise","needsNew","catch","finally","all","entries","race","_","_setScheduler","scheduleFn","_setAsap","asapFn","_asap","polyfill","local","P","promiseToString","cast","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","clearTimeout","currentQueue","draining","queueIndex","cleanUpNextTick","concat","drainQueue","timeout","run","marker","runClearTimeout","Item","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","cwd","chdir","dir","umask","PluginPostStatusInfo","wp","editPost","registerPlugin","plugins","select","dispatch","handleClearCache","getCurrentPostId","Fetcher","showNotice","getNotices","find","createNotice","strings","render","className","button","onClick"],"mappings":"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","file":"wphb-gb-block.min.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 78);\n","/* global ajaxurl */\n/* global wphb */\n\n/**\n * External dependencies\n */\nimport assign from 'lodash/assign';\n\n/**\n * Fetcher.\n *\n * @var {string} wphb.nonces.HBFetchNonce\n * @constructor\n */\nfunction Fetcher() {\n\tconst fetchUrl = ajaxurl;\n\tconst fetchNonce = wphb.nonces.HBFetchNonce;\n\tconst actionPrefix = 'wphb_';\n\tconst actionPrefixPro = 'wphb_pro_';\n\n\t/**\n\t * Request ajax with a promise.\n\t *\n\t * @param {string} action\n\t * @param {Object} data\n\t * @param {string} method\n\t * @return {Promise<any>} Request results.\n\t */\n\tfunction request( action, data = {}, method = 'GET' ) {\n\t\tdata.nonce = fetchNonce;\n\t\tdata.action = action;\n\t\tconst args = { data, method };\n\t\targs.url = fetchUrl;\n\t\tconst Promise = require( 'es6-promise' ).Promise;\n\t\treturn new Promise( ( resolve, reject ) => {\n\t\t\tjQuery.ajax( args ).done( resolve ).fail( reject );\n\t\t} )\n\t\t\t.then( ( response ) => checkStatus( response ) );\n\t}\n\n\tconst methods = {\n\t\t/**\n\t\t * Notices actions.\n\t\t */\n\t\tnotice: {\n\t\t\t/**\n\t\t\t * Dismiss notice\n\t\t\t * @param {string} id\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tdismiss: ( id ) => {\n\t\t\t\tconst action = actionPrefix + 'notice_dismiss';\n\t\t\t\treturn request( action, { id }, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Dismiss CloudFlare dash notice\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tdismissCloudflareDash: () => {\n\t\t\t\tconst action = actionPrefix + 'cf_notice_dismiss';\n\t\t\t\treturn request( action, {}, 'POST' );\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Caching module actions.\n\t\t */\n\t\tcaching: {\n\t\t\t/**\n\t\t\t * Activate browser caching.\n\t\t\t * @since 1.9.0\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tactivate: () => {\n\t\t\t\tconst action = actionPrefix + 'caching_activate';\n\t\t\t\treturn request( action, {}, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Unified save settings method.\n\t\t\t * @since 1.9.0\n\t\t\t * @param {string} module\n\t\t\t * @param {string} data Serialized form data.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tsaveSettings: ( module, data ) => {\n\t\t\t\tconst action = actionPrefix + module + '_save_settings';\n\t\t\t\treturn request( action, { data }, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Clear cache for selected module.\n\t\t\t * @since 1.9.0\n\t\t\t * @param {string} module\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tclearCache: ( module ) => {\n\t\t\t\tconst action = actionPrefix + 'clear_module_cache';\n\t\t\t\treturn request( action, { module }, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Set expiration for browser caching.\n\t\t\t * @param {Object} expiry_times Type expiry times.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tsetExpiration: ( expiry_times ) => {\n\t\t\t\tconst action = actionPrefix + 'caching_set_expiration';\n\t\t\t\treturn request( action, { expiry_times }, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Set server type.\n\t\t\t * @param {string} value Server type.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tsetServer: ( value ) => {\n\t\t\t\tconst action = actionPrefix + 'caching_set_server_type';\n\t\t\t\treturn request( action, { value }, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Reload snippet.\n\t\t\t * @param {string} type Server type.\n\t\t\t * @param {Object} expiry_times Type expiry times.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\treloadSnippets: ( type, expiry_times ) => {\n\t\t\t\tconst action = actionPrefix + 'caching_reload_snippet';\n\t\t\t\treturn request( action, { type, expiry_times }, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Update htaccess file.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tupdateHtaccess: () => {\n\t\t\t\tconst action = actionPrefix + 'caching_update_htaccess';\n\t\t\t\treturn request( action, {}, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Re-check expiry in meta box header button action.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\trecheckExpiry: () => {\n\t\t\t\tconst action = actionPrefix + 'caching_recheck_expiry';\n\t\t\t\treturn request( action, {}, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Clear cache for post.\n\t\t\t * @param {number} postId\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tclearCacheForPost: ( postId ) => {\n\t\t\t\tconst action = actionPrefix + 'gutenberg_clear_post_cache';\n\t\t\t\treturn request( action, { postId }, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Cancel cache preload.\n\t\t\t *\n\t\t\t * @since 2.1.0\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tcancelPreload() {\n\t\t\t\tconst action = actionPrefix + 'preload_cancel';\n\t\t\t\treturn request( action, {}, 'POST' );\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Cloudflare module actions.\n\t\t */\n\t\tcloudflare: {\n\t\t\t/**\n\t\t\t * Connect to Cloudflare.\n\t\t\t * @param {string} step\n\t\t\t * @param {string} formData\n\t\t\t * @param {Array} cfData\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tconnect: ( step, formData, cfData ) => {\n\t\t\t\tconst action = actionPrefix + 'cloudflare_connect';\n\t\t\t\treturn request( action, { step, formData, cfData }, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Set expiry for Cloudflare cache.\n\t\t\t * @param {Object} value Expiry value.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tsetExpiration: ( value ) => {\n\t\t\t\tconst action = actionPrefix + 'cloudflare_set_expiry';\n\t\t\t\treturn request( action, { value }, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Purge Cloudflare cache.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tpurgeCache: () => {\n\t\t\t\tconst action = actionPrefix + 'cloudflare_purge_cache';\n\t\t\t\treturn request( action, {}, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Recheck Cloudflare zones.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\trecheckZones: () => {\n\t\t\t\tconst action = actionPrefix + 'cloudflare_recheck_zones';\n\t\t\t\treturn request( action, {}, 'POST' );\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Dashboard module actions.\n\t\t */\n\t\tdashboard: {\n\t\t\t/**\n\t\t\t * Skip quick setup.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tskipSetup: () => {\n\t\t\t\tconst action = actionPrefix + 'dash_skip_setup';\n\t\t\t\treturn request( action, {}, 'POST' );\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Asset Optimization module actions.\n\t\t */\n\t\tminification: {\n\t\t\t/**\n\t\t\t * Toggle CDN settings.\n\t\t\t * @param {string} value CDN checkbox value.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\ttoggleCDN: ( value ) => {\n\t\t\t\tconst action = actionPrefix + 'minification_toggle_cdn';\n\t\t\t\treturn request( action, { value }, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Toggle logs settings.\n\t\t\t * @param {string} value\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\ttoggleLog: ( value ) => {\n\t\t\t\tconst action = actionPrefix + 'minification_toggle_log';\n\t\t\t\treturn request( action, { value }, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Toggle minification advanced mode.\n\t\t\t * @param {string} value\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\ttoggleView: ( value ) => {\n\t\t\t\tconst action = actionPrefix + 'minification_toggle_view';\n\t\t\t\treturn request( action, { value }, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Start minification check.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tstartCheck: () => {\n\t\t\t\tconst action = actionPrefix + 'minification_start_check';\n\t\t\t\treturn request( action, {}, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Do a step in minification process.\n\t\t\t * @param {number} step\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tcheckStep: ( step ) => {\n\t\t\t\tconst action = actionPrefix + 'minification_check_step';\n\t\t\t\treturn request( action, { step }, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Finish minification process.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tfinishCheck: () => {\n\t\t\t\tconst action = actionPrefix + 'minification_finish_scan';\n\t\t\t\treturn request( action, {}, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Cancel minification scan.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tcancelScan: function cancelScan() {\n\t\t\t\tconst action = actionPrefix + 'minification_cancel_scan';\n\t\t\t\treturn request( action, {}, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Process critical css form.\n\t\t\t * @since 1.8\n\t\t\t * @param {string} form\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tsaveCriticalCss: ( form ) => {\n\t\t\t\tconst action = actionPrefix + 'minification_save_critical_css';\n\t\t\t\treturn request( action, { form }, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Update custom asset path\n\t\t\t * @since 1.9\n\t\t\t * @param {string} value\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tupdateAssetPath: ( value ) => {\n\t\t\t\tconst action = actionPrefix + 'minification_update_asset_path';\n\t\t\t\treturn request( action, { value }, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Reset individual file.\n\t\t\t * @since 1.9.2\n\t\t\t * @param {string} value\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tresetAsset: ( value ) => {\n\t\t\t\tconst action = actionPrefix + 'minification_reset_asset';\n\t\t\t\treturn request( action, { value }, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Save settings in network admin.\n\t\t\t * @since 2.0.0\n\t\t\t * @param {string} settings\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tsaveNetworkSettings: ( settings ) => {\n\t\t\t\tconst action = actionPrefix + 'minification_update_network_settings';\n\t\t\t\treturn request( action, { settings }, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Skip tour.\n\t\t\t *\n\t\t\t * @since 2.1.0\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tskipTour: () => {\n\t\t\t\tconst action = actionPrefix + 'minification_skip_tour';\n\t\t\t\treturn request( action, {}, 'POST' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Update the CDN exclude list.\n\t\t\t *\n\t\t\t * @since 2.4.0\n\t\t\t * @param {Object} data\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tupdateExcludeList: ( data ) => {\n\t\t\t\tconst action = actionPrefix + 'minification_save_exclude_list';\n\t\t\t\treturn request( action, { data }, 'POST' );\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Performance module actions.\n\t\t */\n\t\tperformance: {\n\t\t\t/**\n\t\t\t * Run performance test.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\trunTest: () => {\n\t\t\t\tconst action = actionPrefix + 'performance_run_test';\n\t\t\t\treturn request( action, {}, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Save performance test settings.\n\t\t\t * @param {string} data From data.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tsavePerformanceTestSettings: ( data ) => {\n\t\t\t\tconst action = actionPrefix + 'performance_save_settings';\n\t\t\t\treturn request( action, { data }, 'POST' );\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Advanced tools module actions.\n\t\t */\n\t\tadvanced: {\n\t\t\t/**\n\t\t\t * Save settings from advanced tools general and db cleanup sections.\n\t\t\t * @param {string} data Type.\n\t\t\t * @param {string} form Serialized form.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tsaveSettings: ( data, form ) => {\n\t\t\t\tconst action = actionPrefix + 'advanced_save_settings';\n\t\t\t\treturn request( action, { data, form }, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Delete selected data from database.\n\t\t\t * @param {string} data\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tdeleteSelectedData: ( data ) => {\n\t\t\t\tconst action = actionPrefix + 'advanced_db_delete_data';\n\t\t\t\treturn request( action, { data }, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Schedule cleanup cron.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tscheduleCleanup: () => {\n\t\t\t\tconst action = actionPrefixPro + 'advanced_db_schedule';\n\t\t\t\treturn request( action, {}, 'POST' );\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Logger module actions.\n\t\t *\n\t\t * @since 1.9.2\n\t\t */\n\t\tlogger: {\n\t\t\t/**\n\t\t\t * Clear logs.\n\t\t\t * @param {string} module Module slug.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tclear: ( module ) => {\n\t\t\t\tconst action = actionPrefix + 'logger_clear';\n\t\t\t\treturn request( action, { module }, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Settings actions.\n\t\t */\n\t\tsettings: {\n\t\t\t/**\n\t\t\t * Save settings from HB admin settings.\n\t\t\t *\n\t\t\t * @param {string} form_data\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tsaveSettings: ( form_data ) => {\n\t\t\t\tconst action = actionPrefix + 'admin_settings_save_settings';\n\t\t\t\treturn request( action, { form_data }, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Reset plugin settings.\n\t\t\t *\n\t\t\t * @since 2.0.0\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tresetSettings: () => {\n\t\t\t\tconst action = actionPrefix + 'reset_settings';\n\t\t\t\treturn request( action, {}, 'POST' );\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Common actions that are used by several modules.\n\t\t *\n\t\t * @since 1.9.3\n\t\t */\n\t\tcommon: {\n\t\t\t/**\n\t\t\t * Add recipient for Performance and Uptime reports.\n\t\t\t *\n\t\t\t * @param {string} module Module name.\n\t\t\t * @param {string} setting Setting name.\n\t\t\t * @param {string} email Email.\n\t\t\t * @param {string} name User.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\taddRecipient: ( module, setting, email, name ) => {\n\t\t\t\tconst action = actionPrefixPro + 'add_recipient';\n\t\t\t\treturn request( action, { module, setting, email, name }, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Save report settings for Performance and Uptime modules.\n\t\t\t *\n\t\t\t * @param {string} module Module name.\n\t\t\t * @param {Array} data From data.\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tsaveReportsSettings: ( module, data ) => {\n\t\t\t\tconst action = actionPrefixPro + 'save_report_settings';\n\t\t\t\treturn request( action, { module, data }, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Uptime actions.\n\t\t *\n\t\t * @since 2.3.0\n\t\t */\n\t\tuptime: {\n\t\t\t/**\n\t\t\t * Resend email confirmation.\n\t\t\t *\n\t\t\t * @since 2.3.0\n\t\t\t *\n\t\t\t * @param {string} name JSON encoded recipient name string.\n\t\t\t * @param {string} email JSON encoded recipient email string.\n\t\t\t *\n\t\t\t * @return {Promise<any>} Response\n\t\t\t */\n\t\t\tresendConfirmationEmail: ( name, email ) => {\n\t\t\t\tconst action = actionPrefixPro + 'resend_confirmation';\n\t\t\t\treturn request( action, { name, email }, 'POST' )\n\t\t\t\t\t.then( ( response ) => {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t};\n\n\tassign( this, methods );\n}\n\nconst HBFetcher = new Fetcher();\nexport default HBFetcher;\n\n/**\n * Check status.\n * @param {Object|string} response\n * @return {*} Response\n */\nfunction checkStatus( response ) {\n\tif ( typeof response !== 'object' ) {\n\t\tresponse = JSON.parse( response );\n\t}\n\tif ( response.success ) {\n\t\treturn response.data;\n\t}\n\n\tconst data = response.data || {};\n\tconst error = new Error( data.message || 'Error trying to fetch response from server' );\n\terror.response = response;\n\tthrow error;\n}\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","var assignValue = require('./_assignValue'),\n copyObject = require('./_copyObject'),\n createAssigner = require('./_createAssigner'),\n isArrayLike = require('./isArrayLike'),\n isPrototype = require('./_isPrototype'),\n keys = require('./keys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\nvar assign = createAssigner(function(object, source) {\n if (isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n});\n\nmodule.exports = assign;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n","var baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version v4.2.8+1e68dce6\n */\n\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.ES6Promise = factory());\n}(this, (function () { 'use strict';\n\nfunction objectOrFunction(x) {\n var type = typeof x;\n return x !== null && (type === 'object' || type === 'function');\n}\n\nfunction isFunction(x) {\n return typeof x === 'function';\n}\n\n\n\nvar _isArray = void 0;\nif (Array.isArray) {\n _isArray = Array.isArray;\n} else {\n _isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n}\n\nvar isArray = _isArray;\n\nvar len = 0;\nvar vertxNext = void 0;\nvar customSchedulerFn = void 0;\n\nvar asap = function asap(callback, arg) {\n queue[len] = callback;\n queue[len + 1] = arg;\n len += 2;\n if (len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (customSchedulerFn) {\n customSchedulerFn(flush);\n } else {\n scheduleFlush();\n }\n }\n};\n\nfunction setScheduler(scheduleFn) {\n customSchedulerFn = scheduleFn;\n}\n\nfunction setAsap(asapFn) {\n asap = asapFn;\n}\n\nvar browserWindow = typeof window !== 'undefined' ? window : undefined;\nvar browserGlobal = browserWindow || {};\nvar BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\nvar isNode = typeof self === 'undefined' && typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\n\n// test for web worker but not in IE10\nvar isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';\n\n// node\nfunction useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function () {\n return process.nextTick(flush);\n };\n}\n\n// vertx\nfunction useVertxTimer() {\n if (typeof vertxNext !== 'undefined') {\n return function () {\n vertxNext(flush);\n };\n }\n\n return useSetTimeout();\n}\n\nfunction useMutationObserver() {\n var iterations = 0;\n var observer = new BrowserMutationObserver(flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function () {\n node.data = iterations = ++iterations % 2;\n };\n}\n\n// web worker\nfunction useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = flush;\n return function () {\n return channel.port2.postMessage(0);\n };\n}\n\nfunction useSetTimeout() {\n // Store setTimeout reference so es6-promise will be unaffected by\n // other code modifying setTimeout (like sinon.useFakeTimers())\n var globalSetTimeout = setTimeout;\n return function () {\n return globalSetTimeout(flush, 1);\n };\n}\n\nvar queue = new Array(1000);\nfunction flush() {\n for (var i = 0; i < len; i += 2) {\n var callback = queue[i];\n var arg = queue[i + 1];\n\n callback(arg);\n\n queue[i] = undefined;\n queue[i + 1] = undefined;\n }\n\n len = 0;\n}\n\nfunction attemptVertx() {\n try {\n var vertx = Function('return this')().require('vertx');\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n } catch (e) {\n return useSetTimeout();\n }\n}\n\nvar scheduleFlush = void 0;\n// Decide what async method to use to triggering processing of queued callbacks:\nif (isNode) {\n scheduleFlush = useNextTick();\n} else if (BrowserMutationObserver) {\n scheduleFlush = useMutationObserver();\n} else if (isWorker) {\n scheduleFlush = useMessageChannel();\n} else if (browserWindow === undefined && typeof require === 'function') {\n scheduleFlush = attemptVertx();\n} else {\n scheduleFlush = useSetTimeout();\n}\n\nfunction then(onFulfillment, onRejection) {\n var parent = this;\n\n var child = new this.constructor(noop);\n\n if (child[PROMISE_ID] === undefined) {\n makePromise(child);\n }\n\n var _state = parent._state;\n\n\n if (_state) {\n var callback = arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\n } else {\n subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n}\n\n/**\n `Promise.resolve` returns a promise that will become resolved with the\n passed `value`. It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n resolve(1);\n });\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.resolve(1);\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n @method resolve\n @static\n @param {Any} value value that the returned promise will be resolved with\n Useful for tooling.\n @return {Promise} a promise that will become fulfilled with the given\n `value`\n*/\nfunction resolve$1(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(noop);\n resolve(promise, object);\n return promise;\n}\n\nvar PROMISE_ID = Math.random().toString(36).substring(2);\n\nfunction noop() {}\n\nvar PENDING = void 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\n\nfunction selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n}\n\nfunction cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n}\n\nfunction tryThen(then$$1, value, fulfillmentHandler, rejectionHandler) {\n try {\n then$$1.call(value, fulfillmentHandler, rejectionHandler);\n } catch (e) {\n return e;\n }\n}\n\nfunction handleForeignThenable(promise, thenable, then$$1) {\n asap(function (promise) {\n var sealed = false;\n var error = tryThen(then$$1, thenable, function (value) {\n if (sealed) {\n return;\n }\n sealed = true;\n if (thenable !== value) {\n resolve(promise, value);\n } else {\n fulfill(promise, value);\n }\n }, function (reason) {\n if (sealed) {\n return;\n }\n sealed = true;\n\n reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n reject(promise, error);\n }\n }, promise);\n}\n\nfunction handleOwnThenable(promise, thenable) {\n if (thenable._state === FULFILLED) {\n fulfill(promise, thenable._result);\n } else if (thenable._state === REJECTED) {\n reject(promise, thenable._result);\n } else {\n subscribe(thenable, undefined, function (value) {\n return resolve(promise, value);\n }, function (reason) {\n return reject(promise, reason);\n });\n }\n}\n\nfunction handleMaybeThenable(promise, maybeThenable, then$$1) {\n if (maybeThenable.constructor === promise.constructor && then$$1 === then && maybeThenable.constructor.resolve === resolve$1) {\n handleOwnThenable(promise, maybeThenable);\n } else {\n if (then$$1 === undefined) {\n fulfill(promise, maybeThenable);\n } else if (isFunction(then$$1)) {\n handleForeignThenable(promise, maybeThenable, then$$1);\n } else {\n fulfill(promise, maybeThenable);\n }\n }\n}\n\nfunction resolve(promise, value) {\n if (promise === value) {\n reject(promise, selfFulfillment());\n } else if (objectOrFunction(value)) {\n var then$$1 = void 0;\n try {\n then$$1 = value.then;\n } catch (error) {\n reject(promise, error);\n return;\n }\n handleMaybeThenable(promise, value, then$$1);\n } else {\n fulfill(promise, value);\n }\n}\n\nfunction publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n publish(promise);\n}\n\nfunction fulfill(promise, value) {\n if (promise._state !== PENDING) {\n return;\n }\n\n promise._result = value;\n promise._state = FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n asap(publish, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state !== PENDING) {\n return;\n }\n promise._state = REJECTED;\n promise._result = reason;\n\n asap(publishRejection, promise);\n}\n\nfunction subscribe(parent, child, onFulfillment, onRejection) {\n var _subscribers = parent._subscribers;\n var length = _subscribers.length;\n\n\n parent._onerror = null;\n\n _subscribers[length] = child;\n _subscribers[length + FULFILLED] = onFulfillment;\n _subscribers[length + REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n asap(publish, parent);\n }\n}\n\nfunction publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) {\n return;\n }\n\n var child = void 0,\n callback = void 0,\n detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n}\n\nfunction invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback),\n value = void 0,\n error = void 0,\n succeeded = true;\n\n if (hasCallback) {\n try {\n value = callback(detail);\n } catch (e) {\n succeeded = false;\n error = e;\n }\n\n if (promise === value) {\n reject(promise, cannotReturnOwn());\n return;\n }\n } else {\n value = detail;\n }\n\n if (promise._state !== PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n resolve(promise, value);\n } else if (succeeded === false) {\n reject(promise, error);\n } else if (settled === FULFILLED) {\n fulfill(promise, value);\n } else if (settled === REJECTED) {\n reject(promise, value);\n }\n}\n\nfunction initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value) {\n resolve(promise, value);\n }, function rejectPromise(reason) {\n reject(promise, reason);\n });\n } catch (e) {\n reject(promise, e);\n }\n}\n\nvar id = 0;\nfunction nextId() {\n return id++;\n}\n\nfunction makePromise(promise) {\n promise[PROMISE_ID] = id++;\n promise._state = undefined;\n promise._result = undefined;\n promise._subscribers = [];\n}\n\nfunction validationError() {\n return new Error('Array Methods must be provided an Array');\n}\n\nvar Enumerator = function () {\n function Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(noop);\n\n if (!this.promise[PROMISE_ID]) {\n makePromise(this.promise);\n }\n\n if (isArray(input)) {\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate(input);\n if (this._remaining === 0) {\n fulfill(this.promise, this._result);\n }\n }\n } else {\n reject(this.promise, validationError());\n }\n }\n\n Enumerator.prototype._enumerate = function _enumerate(input) {\n for (var i = 0; this._state === PENDING && i < input.length; i++) {\n this._eachEntry(input[i], i);\n }\n };\n\n Enumerator.prototype._eachEntry = function _eachEntry(entry, i) {\n var c = this._instanceConstructor;\n var resolve$$1 = c.resolve;\n\n\n if (resolve$$1 === resolve$1) {\n var _then = void 0;\n var error = void 0;\n var didError = false;\n try {\n _then = entry.then;\n } catch (e) {\n didError = true;\n error = e;\n }\n\n if (_then === then && entry._state !== PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof _then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === Promise$1) {\n var promise = new c(noop);\n if (didError) {\n reject(promise, error);\n } else {\n handleMaybeThenable(promise, entry, _then);\n }\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function (resolve$$1) {\n return resolve$$1(entry);\n }), i);\n }\n } else {\n this._willSettleAt(resolve$$1(entry), i);\n }\n };\n\n Enumerator.prototype._settledAt = function _settledAt(state, i, value) {\n var promise = this.promise;\n\n\n if (promise._state === PENDING) {\n this._remaining--;\n\n if (state === REJECTED) {\n reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n fulfill(promise, this._result);\n }\n };\n\n Enumerator.prototype._willSettleAt = function _willSettleAt(promise, i) {\n var enumerator = this;\n\n subscribe(promise, undefined, function (value) {\n return enumerator._settledAt(FULFILLED, i, value);\n }, function (reason) {\n return enumerator._settledAt(REJECTED, i, reason);\n });\n };\n\n return Enumerator;\n}();\n\n/**\n `Promise.all` accepts an array of promises, and returns a new promise which\n is fulfilled with an array of fulfillment values for the passed promises, or\n rejected with the reason of the first passed promise to be rejected. It casts all\n elements of the passed iterable to promises as it runs this algorithm.\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = resolve(2);\n let promise3 = resolve(3);\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // The array here would be [ 1, 2, 3 ];\n });\n ```\n\n If any of the `promises` given to `all` are rejected, the first promise\n that is rejected will be given as an argument to the returned promises's\n rejection handler. For example:\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = reject(new Error(\"2\"));\n let promise3 = reject(new Error(\"3\"));\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // Code here never runs because there are rejected promises!\n }, function(error) {\n // error.message === \"2\"\n });\n ```\n\n @method all\n @static\n @param {Array} entries array of promises\n @param {String} label optional string for labeling the promise.\n Useful for tooling.\n @return {Promise} promise that is fulfilled when all `promises` have been\n fulfilled, or rejected if any of them become rejected.\n @static\n*/\nfunction all(entries) {\n return new Enumerator(this, entries).promise;\n}\n\n/**\n `Promise.race` returns a new promise which is settled in the same way as the\n first passed promise to settle.\n\n Example:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 2');\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // result === 'promise 2' because it was resolved before promise1\n // was resolved.\n });\n ```\n\n `Promise.race` is deterministic in that only the state of the first\n settled promise matters. For example, even if other promises given to the\n `promises` array argument are resolved, but the first settled promise has\n become rejected before the other promises became fulfilled, the returned\n promise will become rejected:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n reject(new Error('promise 2'));\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // Code here never runs\n }, function(reason){\n // reason.message === 'promise 2' because promise 2 became rejected before\n // promise 1 became fulfilled\n });\n ```\n\n An example real-world use case is implementing timeouts:\n\n ```javascript\n Promise.race([ajax('foo.json'), timeout(5000)])\n ```\n\n @method race\n @static\n @param {Array} promises array of promises to observe\n Useful for tooling.\n @return {Promise} a promise which settles in the same way as the first passed\n promise to settle.\n*/\nfunction race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (!isArray(entries)) {\n return new Constructor(function (_, reject) {\n return reject(new TypeError('You must pass an array to race.'));\n });\n } else {\n return new Constructor(function (resolve, reject) {\n var length = entries.length;\n for (var i = 0; i < length; i++) {\n Constructor.resolve(entries[i]).then(resolve, reject);\n }\n });\n }\n}\n\n/**\n `Promise.reject` returns a promise rejected with the passed `reason`.\n It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n reject(new Error('WHOOPS'));\n });\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.reject(new Error('WHOOPS'));\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n @method reject\n @static\n @param {Any} reason value that the returned promise will be rejected with.\n Useful for tooling.\n @return {Promise} a promise rejected with the given `reason`.\n*/\nfunction reject$1(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(noop);\n reject(promise, reason);\n return promise;\n}\n\nfunction needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n}\n\nfunction needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n}\n\n/**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n let promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n let xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {Function} resolver\n Useful for tooling.\n @constructor\n*/\n\nvar Promise$1 = function () {\n function Promise(resolver) {\n this[PROMISE_ID] = nextId();\n this._result = this._state = undefined;\n this._subscribers = [];\n\n if (noop !== resolver) {\n typeof resolver !== 'function' && needsResolver();\n this instanceof Promise ? initializePromise(this, resolver) : needsNew();\n }\n }\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n Chaining\n --------\n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n Assimilation\n ------------\n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n If the assimliated promise rejects, then the downstream promise will also reject.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n Simple Example\n --------------\n Synchronous Example\n ```javascript\n let result;\n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n Advanced Example\n --------------\n Synchronous Example\n ```javascript\n let author, books;\n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n function foundBooks(books) {\n }\n function failure(reason) {\n }\n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n\n\n Promise.prototype.catch = function _catch(onRejection) {\n return this.then(null, onRejection);\n };\n\n /**\n `finally` will be invoked regardless of the promise's fate just as native\n try/catch/finally behaves\n \n Synchronous example:\n \n ```js\n findAuthor() {\n if (Math.random() > 0.5) {\n throw new Error();\n }\n return new Author();\n }\n \n try {\n return findAuthor(); // succeed or fail\n } catch(error) {\n return findOtherAuther();\n } finally {\n // always runs\n // doesn't affect the return value\n }\n ```\n \n Asynchronous example:\n \n ```js\n findAuthor().catch(function(reason){\n return findOtherAuther();\n }).finally(function(){\n // author was either found, or not\n });\n ```\n \n @method finally\n @param {Function} callback\n @return {Promise}\n */\n\n\n Promise.prototype.finally = function _finally(callback) {\n var promise = this;\n var constructor = promise.constructor;\n\n if (isFunction(callback)) {\n return promise.then(function (value) {\n return constructor.resolve(callback()).then(function () {\n return value;\n });\n }, function (reason) {\n return constructor.resolve(callback()).then(function () {\n throw reason;\n });\n });\n }\n\n return promise.then(callback, callback);\n };\n\n return Promise;\n}();\n\nPromise$1.prototype.then = then;\nPromise$1.all = all;\nPromise$1.race = race;\nPromise$1.resolve = resolve$1;\nPromise$1.reject = reject$1;\nPromise$1._setScheduler = setScheduler;\nPromise$1._setAsap = setAsap;\nPromise$1._asap = asap;\n\n/*global self*/\nfunction polyfill() {\n var local = void 0;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P) {\n var promiseToString = null;\n try {\n promiseToString = Object.prototype.toString.call(P.resolve());\n } catch (e) {\n // silently ignored\n }\n\n if (promiseToString === '[object Promise]' && !P.cast) {\n return;\n }\n }\n\n local.Promise = Promise$1;\n}\n\n// Strange compat..\nPromise$1.polyfill = polyfill;\nPromise$1.Promise = Promise$1;\n\nreturn Promise$1;\n\n})));\n\n\n\n//# sourceMappingURL=es6-promise.map\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","/* global wphb */\n\nimport Fetcher from './utils/fetcher';\n\nconst { PluginPostStatusInfo } = wp.editPost;\nconst { registerPlugin } = wp.plugins;\nconst { select, dispatch } = wp.data;\n\n/**\n * Handle clear cache action.\n */\nconst handleClearCache = () => {\n\tconst postId = select( 'core/editor' ).getCurrentPostId();\n\tFetcher.caching.clearCacheForPost( postId ).then( showNotice );\n};\n\n/**\n * Show notice.\n */\nconst showNotice = () => {\n\tconst notices = select( 'core/notices' ).getNotices();\n\tif ( ! notices.find( ( notice ) => notice.id === 'wphb-gb-notice' ) ) {\n\t\tdispatch( 'core/notices' ).createNotice( 'success', wphb.strings.notice, { id: 'wphb-gb-notice' } );\n\t}\n};\n\n/**\n * Add clear cache button.\n *\n * @return {*} Element\n * @class\n */\nconst MyPluginPostStatusInfo = () => (\n\t<PluginPostStatusInfo className=\"wphb-clear-cache\">\n\t\t<input type=\"submit\" value={ wphb.strings.button } onClick={ handleClearCache }\n\t\t\tclassName=\"components-button is-button is-default is-large editor-post-trash\" />\n\t</PluginPostStatusInfo>\n);\n\nregisterPlugin( 'wphb', { render: MyPluginPostStatusInfo } );\n"],"sourceRoot":""}
admin/assets/js/wphb-react-gzip.min.js CHANGED
@@ -1,36 +1,36 @@
1
- !function(e){var t={};function n(r){if(t[r])return t[r].exports;var a=t[r]={i:r,l:!1,exports:{}};return e[r].call(a.exports,a,a.exports,n),a.l=!0,a.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)n.d(r,a,function(t){return e[t]}.bind(null,a));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=16)}([function(e,t,n){"use strict";e.exports=n(7)},function(e,t,n){var r;
2
  /*!
3
  Copyright (c) 2017 Jed Watson.
4
  Licensed under the MIT License (MIT), see
5
  http://jedwatson.github.io/classnames
6
- */!function(){"use strict";var n={}.hasOwnProperty;function a(){for(var e=[],t=0;t<arguments.length;t++){var r=arguments[t];if(r){var o=typeof r;if("string"===o||"number"===o)e.push(r);else if(Array.isArray(r)&&r.length){var i=a.apply(null,r);i&&e.push(i)}else if("object"===o)for(var l in r)n.call(r,l)&&r[l]&&e.push(l)}}return e.join(" ")}e.exports?(a.default=a,e.exports=a):void 0===(r=function(){return a}.apply(t,[]))||(e.exports=r)}()},function(e,t,n){e.exports=n(11)()},function(e,t,n){var r;!function(){"use strict";var a={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[+-]/};function o(e){return function(e,t){var n,r,i,l,u,s,c,f,p,d=1,h=e.length,m="";for(r=0;r<h;r++)if("string"==typeof e[r])m+=e[r];else if("object"==typeof e[r]){if((l=e[r]).keys)for(n=t[d],i=0;i<l.keys.length;i++){if(null==n)throw new Error(o('[sprintf] Cannot access property "%s" of undefined value "%s"',l.keys[i],l.keys[i-1]));n=n[l.keys[i]]}else n=l.param_no?t[l.param_no]:t[d++];if(a.not_type.test(l.type)&&a.not_primitive.test(l.type)&&n instanceof Function&&(n=n()),a.numeric_arg.test(l.type)&&"number"!=typeof n&&isNaN(n))throw new TypeError(o("[sprintf] expecting number but found %T",n));switch(a.number.test(l.type)&&(f=n>=0),l.type){case"b":n=parseInt(n,10).toString(2);break;case"c":n=String.fromCharCode(parseInt(n,10));break;case"d":case"i":n=parseInt(n,10);break;case"j":n=JSON.stringify(n,null,l.width?parseInt(l.width):0);break;case"e":n=l.precision?parseFloat(n).toExponential(l.precision):parseFloat(n).toExponential();break;case"f":n=l.precision?parseFloat(n).toFixed(l.precision):parseFloat(n);break;case"g":n=l.precision?String(Number(n.toPrecision(l.precision))):parseFloat(n);break;case"o":n=(parseInt(n,10)>>>0).toString(8);break;case"s":n=String(n),n=l.precision?n.substring(0,l.precision):n;break;case"t":n=String(!!n),n=l.precision?n.substring(0,l.precision):n;break;case"T":n=Object.prototype.toString.call(n).slice(8,-1).toLowerCase(),n=l.precision?n.substring(0,l.precision):n;break;case"u":n=parseInt(n,10)>>>0;break;case"v":n=n.valueOf(),n=l.precision?n.substring(0,l.precision):n;break;case"x":n=(parseInt(n,10)>>>0).toString(16);break;case"X":n=(parseInt(n,10)>>>0).toString(16).toUpperCase()}a.json.test(l.type)?m+=n:(!a.number.test(l.type)||f&&!l.sign?p="":(p=f?"+":"-",n=n.toString().replace(a.sign,"")),s=l.pad_char?"0"===l.pad_char?"0":l.pad_char.charAt(1):" ",c=l.width-(p+n).length,u=l.width&&c>0?s.repeat(c):"",m+=l.align?p+n+u:"0"===s?p+u+n:u+p+n)}return m}(function(e){if(l[e])return l[e];var t,n=e,r=[],o=0;for(;n;){if(null!==(t=a.text.exec(n)))r.push(t[0]);else if(null!==(t=a.modulo.exec(n)))r.push("%");else{if(null===(t=a.placeholder.exec(n)))throw new SyntaxError("[sprintf] unexpected placeholder");if(t[2]){o|=1;var i=[],u=t[2],s=[];if(null===(s=a.key.exec(u)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(i.push(s[1]);""!==(u=u.substring(s[0].length));)if(null!==(s=a.key_access.exec(u)))i.push(s[1]);else{if(null===(s=a.index_access.exec(u)))throw new SyntaxError("[sprintf] failed to parse named argument key");i.push(s[1])}t[2]=i}else o|=2;if(3===o)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");r.push({placeholder:t[0],param_no:t[1],keys:t[2],sign:t[3],pad_char:t[4],align:t[5],width:t[6],precision:t[7],type:t[8]})}n=n.substring(t[0].length)}return l[e]=r}(e),arguments)}function i(e,t){return o.apply(null,[e].concat(t||[]))}var l=Object.create(null);t.sprintf=o,t.vsprintf=i,"undefined"!=typeof window&&(window.sprintf=o,window.vsprintf=i,void 0===(r=function(){return{sprintf:o,vsprintf:i}}.call(t,n,t,e))||(e.exports=r))}()},function(e,t,n){"use strict";
7
  /*
8
  object-assign
9
  (c) Sindre Sorhus
10
  @license MIT
11
- */var r=Object.getOwnPropertySymbols,a=Object.prototype.hasOwnProperty,o=Object.prototype.propertyIsEnumerable;function i(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var n,l,u=i(e),s=1;s<arguments.length;s++){for(var c in n=Object(arguments[s]))a.call(n,c)&&(u[c]=n[c]);if(r){l=r(n);for(var f=0;f<l.length;f++)o.call(n,l[f])&&(u[l[f]]=n[l[f]])}}return u}},function(e,t,n){"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE){0;try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}}(),e.exports=n(8)},function(e,t,n){e.exports=function(e,t){var n,r,a,o=0;function i(){var t,i,l=r,u=arguments.length;e:for(;l;){if(l.args.length===arguments.length){for(i=0;i<u;i++)if(l.args[i]!==arguments[i]){l=l.next;continue e}return l!==r&&(l===a&&(a=l.prev),l.prev.next=l.next,l.next&&(l.next.prev=l.prev),l.next=r,l.prev=null,r.prev=l,r=l),l.val}l=l.next}for(t=new Array(u),i=0;i<u;i++)t[i]=arguments[i];return l={args:t,val:e.apply(null,t)},r?(r.prev=l,l.next=r):a=l,o===n?(a=a.prev).next=null:o++,r=l,l.val}return t&&t.maxSize&&(n=t.maxSize),i.clear=function(){r=null,a=null,o=0},i}},function(e,t,n){"use strict";
12
- /** @license React v16.12.0
13
  * react.production.min.js
14
  *
15
  * Copyright (c) Facebook, Inc. and its affiliates.
16
  *
17
  * This source code is licensed under the MIT license found in the
18
  * LICENSE file in the root directory of this source tree.
19
- */var r=n(4),a="function"==typeof Symbol&&Symbol.for,o=a?Symbol.for("react.element"):60103,i=a?Symbol.for("react.portal"):60106,l=a?Symbol.for("react.fragment"):60107,u=a?Symbol.for("react.strict_mode"):60108,s=a?Symbol.for("react.profiler"):60114,c=a?Symbol.for("react.provider"):60109,f=a?Symbol.for("react.context"):60110,p=a?Symbol.for("react.forward_ref"):60112,d=a?Symbol.for("react.suspense"):60113;a&&Symbol.for("react.suspense_list");var h=a?Symbol.for("react.memo"):60115,m=a?Symbol.for("react.lazy"):60116;a&&Symbol.for("react.fundamental"),a&&Symbol.for("react.responder"),a&&Symbol.for("react.scope");var y="function"==typeof Symbol&&Symbol.iterator;function b(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var v={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g={};function w(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||v}function E(){}function k(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||v}w.prototype.isReactComponent={},w.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error(b(85));this.updater.enqueueSetState(this,e,t,"setState")},w.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},E.prototype=w.prototype;var x=k.prototype=new E;x.constructor=k,r(x,w.prototype),x.isPureReactComponent=!0;var S={current:null},T={current:null},_=Object.prototype.hasOwnProperty,C={key:!0,ref:!0,__self:!0,__source:!0};function P(e,t,n){var r,a={},i=null,l=null;if(null!=t)for(r in void 0!==t.ref&&(l=t.ref),void 0!==t.key&&(i=""+t.key),t)_.call(t,r)&&!C.hasOwnProperty(r)&&(a[r]=t[r]);var u=arguments.length-2;if(1===u)a.children=n;else if(1<u){for(var s=Array(u),c=0;c<u;c++)s[c]=arguments[c+2];a.children=s}if(e&&e.defaultProps)for(r in u=e.defaultProps)void 0===a[r]&&(a[r]=u[r]);return{$$typeof:o,type:e,key:i,ref:l,props:a,_owner:T.current}}function O(e){return"object"==typeof e&&null!==e&&e.$$typeof===o}var N=/\/+/g,I=[];function z(e,t,n,r){if(I.length){var a=I.pop();return a.result=e,a.keyPrefix=t,a.func=n,a.context=r,a.count=0,a}return{result:e,keyPrefix:t,func:n,context:r,count:0}}function j(e){e.result=null,e.keyPrefix=null,e.func=null,e.context=null,e.count=0,10>I.length&&I.push(e)}function F(e,t,n){return null==e?0:function e(t,n,r,a){var l=typeof t;"undefined"!==l&&"boolean"!==l||(t=null);var u=!1;if(null===t)u=!0;else switch(l){case"string":case"number":u=!0;break;case"object":switch(t.$$typeof){case o:case i:u=!0}}if(u)return r(a,t,""===n?"."+M(t,0):n),1;if(u=0,n=""===n?".":n+":",Array.isArray(t))for(var s=0;s<t.length;s++){var c=n+M(l=t[s],s);u+=e(l,c,r,a)}else if(null===t||"object"!=typeof t?c=null:c="function"==typeof(c=y&&t[y]||t["@@iterator"])?c:null,"function"==typeof c)for(t=c.call(t),s=0;!(l=t.next()).done;)u+=e(l=l.value,c=n+M(l,s++),r,a);else if("object"===l)throw r=""+t,Error(b(31,"[object Object]"===r?"object with keys {"+Object.keys(t).join(", ")+"}":r,""));return u}(e,"",t,n)}function M(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+(""+e).replace(/[=:]/g,(function(e){return t[e]}))}(e.key):t.toString(36)}function R(e,t){e.func.call(e.context,t,e.count++)}function U(e,t,n){var r=e.result,a=e.keyPrefix;e=e.func.call(e.context,t,e.count++),Array.isArray(e)?D(e,r,n,(function(e){return e})):null!=e&&(O(e)&&(e=function(e,t){return{$$typeof:o,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(e,a+(!e.key||t&&t.key===e.key?"":(""+e.key).replace(N,"$&/")+"/")+n)),r.push(e))}function D(e,t,n,r,a){var o="";null!=n&&(o=(""+n).replace(N,"$&/")+"/"),F(e,U,t=z(t,o,r,a)),j(t)}function A(){var e=S.current;if(null===e)throw Error(b(321));return e}var L={Children:{map:function(e,t,n){if(null==e)return e;var r=[];return D(e,r,null,t,n),r},forEach:function(e,t,n){if(null==e)return e;F(e,R,t=z(null,null,t,n)),j(t)},count:function(e){return F(e,(function(){return null}),null)},toArray:function(e){var t=[];return D(e,t,null,(function(e){return e})),t},only:function(e){if(!O(e))throw Error(b(143));return e}},createRef:function(){return{current:null}},Component:w,PureComponent:k,createContext:function(e,t){return void 0===t&&(t=null),(e={$$typeof:f,_calculateChangedBits:t,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider={$$typeof:c,_context:e},e.Consumer=e},forwardRef:function(e){return{$$typeof:p,render:e}},lazy:function(e){return{$$typeof:m,_ctor:e,_status:-1,_result:null}},memo:function(e,t){return{$$typeof:h,type:e,compare:void 0===t?null:t}},useCallback:function(e,t){return A().useCallback(e,t)},useContext:function(e,t){return A().useContext(e,t)},useEffect:function(e,t){return A().useEffect(e,t)},useImperativeHandle:function(e,t,n){return A().useImperativeHandle(e,t,n)},useDebugValue:function(){},useLayoutEffect:function(e,t){return A().useLayoutEffect(e,t)},useMemo:function(e,t){return A().useMemo(e,t)},useReducer:function(e,t,n){return A().useReducer(e,t,n)},useRef:function(e){return A().useRef(e)},useState:function(e){return A().useState(e)},Fragment:l,Profiler:s,StrictMode:u,Suspense:d,createElement:P,cloneElement:function(e,t,n){if(null==e)throw Error(b(267,e));var a=r({},e.props),i=e.key,l=e.ref,u=e._owner;if(null!=t){if(void 0!==t.ref&&(l=t.ref,u=T.current),void 0!==t.key&&(i=""+t.key),e.type&&e.type.defaultProps)var s=e.type.defaultProps;for(c in t)_.call(t,c)&&!C.hasOwnProperty(c)&&(a[c]=void 0===t[c]&&void 0!==s?s[c]:t[c])}var c=arguments.length-2;if(1===c)a.children=n;else if(1<c){s=Array(c);for(var f=0;f<c;f++)s[f]=arguments[f+2];a.children=s}return{$$typeof:o,type:e.type,key:i,ref:l,props:a,_owner:u}},createFactory:function(e){var t=P.bind(null,e);return t.type=e,t},isValidElement:O,version:"16.12.0",__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:{ReactCurrentDispatcher:S,ReactCurrentBatchConfig:{suspense:null},ReactCurrentOwner:T,IsSomeRendererActing:{current:!1},assign:r}},B={default:L},W=B&&L||B;e.exports=W.default||W},function(e,t,n){"use strict";
20
- /** @license React v16.12.0
21
  * react-dom.production.min.js
22
  *
23
  * Copyright (c) Facebook, Inc. and its affiliates.
24
  *
25
  * This source code is licensed under the MIT license found in the
26
  * LICENSE file in the root directory of this source tree.
27
- */var r=n(0),a=n(4),o=n(9);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}if(!r)throw Error(i(227));var l=null,u={};function s(){if(l)for(var e in u){var t=u[e],n=l.indexOf(e);if(!(-1<n))throw Error(i(96,e));if(!f[n]){if(!t.extractEvents)throw Error(i(97,e));for(var r in f[n]=t,n=t.eventTypes){var a=void 0,o=n[r],s=t,d=r;if(p.hasOwnProperty(d))throw Error(i(99,d));p[d]=o;var h=o.phasedRegistrationNames;if(h){for(a in h)h.hasOwnProperty(a)&&c(h[a],s,d);a=!0}else o.registrationName?(c(o.registrationName,s,d),a=!0):a=!1;if(!a)throw Error(i(98,r,e))}}}}function c(e,t,n){if(d[e])throw Error(i(100,e));d[e]=t,h[e]=t.eventTypes[n].dependencies}var f=[],p={},d={},h={};function m(e,t,n,r,a,o,i,l,u){var s=Array.prototype.slice.call(arguments,3);try{t.apply(n,s)}catch(e){this.onError(e)}}var y=!1,b=null,v=!1,g=null,w={onError:function(e){y=!0,b=e}};function E(e,t,n,r,a,o,i,l,u){y=!1,b=null,m.apply(w,arguments)}var k=null,x=null,S=null;function T(e,t,n){var r=e.type||"unknown-event";e.currentTarget=S(n),function(e,t,n,r,a,o,l,u,s){if(E.apply(this,arguments),y){if(!y)throw Error(i(198));var c=b;y=!1,b=null,v||(v=!0,g=c)}}(r,t,void 0,e),e.currentTarget=null}function _(e,t){if(null==t)throw Error(i(30));return null==e?t:Array.isArray(e)?Array.isArray(t)?(e.push.apply(e,t),e):(e.push(t),e):Array.isArray(t)?[e].concat(t):[e,t]}function C(e,t,n){Array.isArray(e)?e.forEach(t,n):e&&t.call(n,e)}var P=null;function O(e){if(e){var t=e._dispatchListeners,n=e._dispatchInstances;if(Array.isArray(t))for(var r=0;r<t.length&&!e.isPropagationStopped();r++)T(e,t[r],n[r]);else t&&T(e,t,n);e._dispatchListeners=null,e._dispatchInstances=null,e.isPersistent()||e.constructor.release(e)}}function N(e){if(null!==e&&(P=_(P,e)),e=P,P=null,e){if(C(e,O),P)throw Error(i(95));if(v)throw e=g,v=!1,g=null,e}}var I={injectEventPluginOrder:function(e){if(l)throw Error(i(101));l=Array.prototype.slice.call(e),s()},injectEventPluginsByName:function(e){var t,n=!1;for(t in e)if(e.hasOwnProperty(t)){var r=e[t];if(!u.hasOwnProperty(t)||u[t]!==r){if(u[t])throw Error(i(102,t));u[t]=r,n=!0}}n&&s()}};function z(e,t){var n=e.stateNode;if(!n)return null;var r=k(n);if(!r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw Error(i(231,t,typeof n));return n}var j=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;j.hasOwnProperty("ReactCurrentDispatcher")||(j.ReactCurrentDispatcher={current:null}),j.hasOwnProperty("ReactCurrentBatchConfig")||(j.ReactCurrentBatchConfig={suspense:null});var F=/^(.*)[\\\/]/,M="function"==typeof Symbol&&Symbol.for,R=M?Symbol.for("react.element"):60103,U=M?Symbol.for("react.portal"):60106,D=M?Symbol.for("react.fragment"):60107,A=M?Symbol.for("react.strict_mode"):60108,L=M?Symbol.for("react.profiler"):60114,B=M?Symbol.for("react.provider"):60109,W=M?Symbol.for("react.context"):60110,V=M?Symbol.for("react.concurrent_mode"):60111,H=M?Symbol.for("react.forward_ref"):60112,$=M?Symbol.for("react.suspense"):60113,Q=M?Symbol.for("react.suspense_list"):60120,K=M?Symbol.for("react.memo"):60115,q=M?Symbol.for("react.lazy"):60116;M&&Symbol.for("react.fundamental"),M&&Symbol.for("react.responder"),M&&Symbol.for("react.scope");var G="function"==typeof Symbol&&Symbol.iterator;function X(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=G&&e[G]||e["@@iterator"])?e:null}function Y(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case D:return"Fragment";case U:return"Portal";case L:return"Profiler";case A:return"StrictMode";case $:return"Suspense";case Q:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case W:return"Context.Consumer";case B:return"Context.Provider";case H:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(""!==t?"ForwardRef("+t+")":"ForwardRef");case K:return Y(e.type);case q:if(e=1===e._status?e._result:null)return Y(e)}return null}function Z(e){var t="";do{e:switch(e.tag){case 3:case 4:case 6:case 7:case 10:case 9:var n="";break e;default:var r=e._debugOwner,a=e._debugSource,o=Y(e.type);n=null,r&&(n=Y(r.type)),r=o,o="",a?o=" (at "+a.fileName.replace(F,"")+":"+a.lineNumber+")":n&&(o=" (created by "+n+")"),n="\n in "+(r||"Unknown")+o}t+=n,e=e.return}while(e);return t}var J=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),ee=null,te=null,ne=null;function re(e){if(e=x(e)){if("function"!=typeof ee)throw Error(i(280));var t=k(e.stateNode);ee(e.stateNode,e.type,t)}}function ae(e){te?ne?ne.push(e):ne=[e]:te=e}function oe(){if(te){var e=te,t=ne;if(ne=te=null,re(e),t)for(e=0;e<t.length;e++)re(t[e])}}function ie(e,t){return e(t)}function le(e,t,n,r){return e(t,n,r)}function ue(){}var se=ie,ce=!1,fe=!1;function pe(){null===te&&null===ne||(ue(),oe())}new Map;var de=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,he=Object.prototype.hasOwnProperty,me={},ye={};function be(e,t,n,r,a,o){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=a,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o}var ve={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){ve[e]=new be(e,0,!1,e,null,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];ve[t]=new be(t,1,!1,e[1],null,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){ve[e]=new be(e,2,!1,e.toLowerCase(),null,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){ve[e]=new be(e,2,!1,e,null,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){ve[e]=new be(e,3,!1,e.toLowerCase(),null,!1)})),["checked","multiple","muted","selected"].forEach((function(e){ve[e]=new be(e,3,!0,e,null,!1)})),["capture","download"].forEach((function(e){ve[e]=new be(e,4,!1,e,null,!1)})),["cols","rows","size","span"].forEach((function(e){ve[e]=new be(e,6,!1,e,null,!1)})),["rowSpan","start"].forEach((function(e){ve[e]=new be(e,5,!1,e.toLowerCase(),null,!1)}));var ge=/[\-:]([a-z])/g;function we(e){return e[1].toUpperCase()}function Ee(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function ke(e,t,n,r){var a=ve.hasOwnProperty(t)?ve[t]:null;(null!==a?0===a.type:!r&&(2<t.length&&("o"===t[0]||"O"===t[0])&&("n"===t[1]||"N"===t[1])))||(function(e,t,n,r){if(null==t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,a,r)&&(n=null),r||null===a?function(e){return!!he.call(ye,e)||!he.call(me,e)&&(de.test(e)?ye[e]=!0:(me[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):a.mustUseProperty?e[a.propertyName]=null===n?3!==a.type&&"":n:(t=a.attributeName,r=a.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(a=a.type)||4===a&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}function xe(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function Se(e){e._valueTracker||(e._valueTracker=function(e){var t=xe(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var a=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(e){r=""+e,o.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function Te(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=xe(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function _e(e,t){var n=t.checked;return a({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function Ce(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=Ee(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function Pe(e,t){null!=(t=t.checked)&&ke(e,"checked",t,!1)}function Oe(e,t){Pe(e,t);var n=Ee(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?Ie(e,t.type,n):t.hasOwnProperty("defaultValue")&&Ie(e,t.type,Ee(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function Ne(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!e.defaultChecked,e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function Ie(e,t,n){"number"===t&&e.ownerDocument.activeElement===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}function ze(e,t){return e=a({children:void 0},t),(t=function(e){var t="";return r.Children.forEach(e,(function(e){null!=e&&(t+=e)})),t}(t.children))&&(e.children=t),e}function je(e,t,n,r){if(e=e.options,t){t={};for(var a=0;a<n.length;a++)t["$"+n[a]]=!0;for(n=0;n<e.length;n++)a=t.hasOwnProperty("$"+e[n].value),e[n].selected!==a&&(e[n].selected=a),a&&r&&(e[n].defaultSelected=!0)}else{for(n=""+Ee(n),t=null,a=0;a<e.length;a++){if(e[a].value===n)return e[a].selected=!0,void(r&&(e[a].defaultSelected=!0));null!==t||e[a].disabled||(t=e[a])}null!==t&&(t.selected=!0)}}function Fe(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(i(91));return a({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function Me(e,t){var n=t.value;if(null==n){if(n=t.defaultValue,null!=(t=t.children)){if(null!=n)throw Error(i(92));if(Array.isArray(t)){if(!(1>=t.length))throw Error(i(93));t=t[0]}n=t}null==n&&(n="")}e._wrapperState={initialValue:Ee(n)}}function Re(e,t){var n=Ee(t.value),r=Ee(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function Ue(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(ge,we);ve[t]=new be(t,1,!1,e,null,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(ge,we);ve[t]=new be(t,1,!1,e,"http://www.w3.org/1999/xlink",!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(ge,we);ve[t]=new be(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1)})),["tabIndex","crossOrigin"].forEach((function(e){ve[e]=new be(e,1,!1,e.toLowerCase(),null,!1)})),ve.xlinkHref=new be("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0),["src","href","action","formAction"].forEach((function(e){ve[e]=new be(e,1,!1,e.toLowerCase(),null,!0)}));var De={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"};function Ae(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function Le(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?Ae(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var Be,We=function(e){return"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(t,n,r,a){MSApp.execUnsafeLocalFunction((function(){return e(t,n)}))}:e}((function(e,t){if(e.namespaceURI!==De.svg||"innerHTML"in e)e.innerHTML=t;else{for((Be=Be||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=Be.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}}));function Ve(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}function He(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var $e={animationend:He("Animation","AnimationEnd"),animationiteration:He("Animation","AnimationIteration"),animationstart:He("Animation","AnimationStart"),transitionend:He("Transition","TransitionEnd")},Qe={},Ke={};function qe(e){if(Qe[e])return Qe[e];if(!$e[e])return e;var t,n=$e[e];for(t in n)if(n.hasOwnProperty(t)&&t in Ke)return Qe[e]=n[t];return e}J&&(Ke=document.createElement("div").style,"AnimationEvent"in window||(delete $e.animationend.animation,delete $e.animationiteration.animation,delete $e.animationstart.animation),"TransitionEvent"in window||delete $e.transitionend.transition);var Ge=qe("animationend"),Xe=qe("animationiteration"),Ye=qe("animationstart"),Ze=qe("transitionend"),Je="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" ");function et(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!=(1026&(t=e).effectTag)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function tt(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function nt(e){if(et(e)!==e)throw Error(i(188))}function rt(e){if(!(e=function(e){var t=e.alternate;if(!t){if(null===(t=et(e)))throw Error(i(188));return t!==e?null:e}for(var n=e,r=t;;){var a=n.return;if(null===a)break;var o=a.alternate;if(null===o){if(null!==(r=a.return)){n=r;continue}break}if(a.child===o.child){for(o=a.child;o;){if(o===n)return nt(a),e;if(o===r)return nt(a),t;o=o.sibling}throw Error(i(188))}if(n.return!==r.return)n=a,r=o;else{for(var l=!1,u=a.child;u;){if(u===n){l=!0,n=a,r=o;break}if(u===r){l=!0,r=a,n=o;break}u=u.sibling}if(!l){for(u=o.child;u;){if(u===n){l=!0,n=o,r=a;break}if(u===r){l=!0,r=o,n=a;break}u=u.sibling}if(!l)throw Error(i(189))}}if(n.alternate!==r)throw Error(i(190))}if(3!==n.tag)throw Error(i(188));return n.stateNode.current===n?e:t}(e)))return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}var at,ot,it,lt=!1,ut=[],st=null,ct=null,ft=null,pt=new Map,dt=new Map,ht=[],mt="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput close cancel copy cut paste click change contextmenu reset submit".split(" "),yt="focus blur dragenter dragleave mouseover mouseout pointerover pointerout gotpointercapture lostpointercapture".split(" ");function bt(e,t,n,r){return{blockedOn:e,topLevelType:t,eventSystemFlags:32|n,nativeEvent:r}}function vt(e,t){switch(e){case"focus":case"blur":st=null;break;case"dragenter":case"dragleave":ct=null;break;case"mouseover":case"mouseout":ft=null;break;case"pointerover":case"pointerout":pt.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":dt.delete(t.pointerId)}}function gt(e,t,n,r,a){return null===e||e.nativeEvent!==a?(e=bt(t,n,r,a),null!==t&&(null!==(t=dr(t))&&ot(t)),e):(e.eventSystemFlags|=r,e)}function wt(e){var t=pr(e.target);if(null!==t){var n=et(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=tt(n)))return e.blockedOn=t,void o.unstable_runWithPriority(e.priority,(function(){it(n)}))}else if(3===t&&n.stateNode.hydrate)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function Et(e){if(null!==e.blockedOn)return!1;var t=In(e.topLevelType,e.eventSystemFlags,e.nativeEvent);if(null!==t){var n=dr(t);return null!==n&&ot(n),e.blockedOn=t,!1}return!0}function kt(e,t,n){Et(e)&&n.delete(t)}function xt(){for(lt=!1;0<ut.length;){var e=ut[0];if(null!==e.blockedOn){null!==(e=dr(e.blockedOn))&&at(e);break}var t=In(e.topLevelType,e.eventSystemFlags,e.nativeEvent);null!==t?e.blockedOn=t:ut.shift()}null!==st&&Et(st)&&(st=null),null!==ct&&Et(ct)&&(ct=null),null!==ft&&Et(ft)&&(ft=null),pt.forEach(kt),dt.forEach(kt)}function St(e,t){e.blockedOn===t&&(e.blockedOn=null,lt||(lt=!0,o.unstable_scheduleCallback(o.unstable_NormalPriority,xt)))}function Tt(e){function t(t){return St(t,e)}if(0<ut.length){St(ut[0],e);for(var n=1;n<ut.length;n++){var r=ut[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==st&&St(st,e),null!==ct&&St(ct,e),null!==ft&&St(ft,e),pt.forEach(t),dt.forEach(t),n=0;n<ht.length;n++)(r=ht[n]).blockedOn===e&&(r.blockedOn=null);for(;0<ht.length&&null===(n=ht[0]).blockedOn;)wt(n),null===n.blockedOn&&ht.shift()}function _t(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}function Ct(e){do{e=e.return}while(e&&5!==e.tag);return e||null}function Pt(e,t,n){(t=z(e,n.dispatchConfig.phasedRegistrationNames[t]))&&(n._dispatchListeners=_(n._dispatchListeners,t),n._dispatchInstances=_(n._dispatchInstances,e))}function Ot(e){if(e&&e.dispatchConfig.phasedRegistrationNames){for(var t=e._targetInst,n=[];t;)n.push(t),t=Ct(t);for(t=n.length;0<t--;)Pt(n[t],"captured",e);for(t=0;t<n.length;t++)Pt(n[t],"bubbled",e)}}function Nt(e,t,n){e&&n&&n.dispatchConfig.registrationName&&(t=z(e,n.dispatchConfig.registrationName))&&(n._dispatchListeners=_(n._dispatchListeners,t),n._dispatchInstances=_(n._dispatchInstances,e))}function It(e){e&&e.dispatchConfig.registrationName&&Nt(e._targetInst,null,e)}function zt(e){C(e,Ot)}function jt(){return!0}function Ft(){return!1}function Mt(e,t,n,r){for(var a in this.dispatchConfig=e,this._targetInst=t,this.nativeEvent=n,e=this.constructor.Interface)e.hasOwnProperty(a)&&((t=e[a])?this[a]=t(n):"target"===a?this.target=r:this[a]=n[a]);return this.isDefaultPrevented=(null!=n.defaultPrevented?n.defaultPrevented:!1===n.returnValue)?jt:Ft,this.isPropagationStopped=Ft,this}function Rt(e,t,n,r){if(this.eventPool.length){var a=this.eventPool.pop();return this.call(a,e,t,n,r),a}return new this(e,t,n,r)}function Ut(e){if(!(e instanceof this))throw Error(i(279));e.destructor(),10>this.eventPool.length&&this.eventPool.push(e)}function Dt(e){e.eventPool=[],e.getPooled=Rt,e.release=Ut}a(Mt.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=jt)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=jt)},persist:function(){this.isPersistent=jt},isPersistent:Ft,destructor:function(){var e,t=this.constructor.Interface;for(e in t)this[e]=null;this.nativeEvent=this._targetInst=this.dispatchConfig=null,this.isPropagationStopped=this.isDefaultPrevented=Ft,this._dispatchInstances=this._dispatchListeners=null}}),Mt.Interface={type:null,target:null,currentTarget:function(){return null},eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null},Mt.extend=function(e){function t(){}function n(){return r.apply(this,arguments)}var r=this;t.prototype=r.prototype;var o=new t;return a(o,n.prototype),n.prototype=o,n.prototype.constructor=n,n.Interface=a({},r.Interface,e),n.extend=r.extend,Dt(n),n},Dt(Mt);var At=Mt.extend({animationName:null,elapsedTime:null,pseudoElement:null}),Lt=Mt.extend({clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),Bt=Mt.extend({view:null,detail:null}),Wt=Bt.extend({relatedTarget:null});function Vt(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}var Ht={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},$t={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Qt={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Kt(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=Qt[e])&&!!t[e]}function qt(){return Kt}for(var Gt=Bt.extend({key:function(e){if(e.key){var t=Ht[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=Vt(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?$t[e.keyCode]||"Unidentified":""},location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:qt,charCode:function(e){return"keypress"===e.type?Vt(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?Vt(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),Xt=0,Yt=0,Zt=!1,Jt=!1,en=Bt.extend({screenX:null,screenY:null,clientX:null,clientY:null,pageX:null,pageY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:qt,button:null,buttons:null,relatedTarget:function(e){return e.relatedTarget||(e.fromElement===e.srcElement?e.toElement:e.fromElement)},movementX:function(e){if("movementX"in e)return e.movementX;var t=Xt;return Xt=e.screenX,Zt?"mousemove"===e.type?e.screenX-t:0:(Zt=!0,0)},movementY:function(e){if("movementY"in e)return e.movementY;var t=Yt;return Yt=e.screenY,Jt?"mousemove"===e.type?e.screenY-t:0:(Jt=!0,0)}}),tn=en.extend({pointerId:null,width:null,height:null,pressure:null,tangentialPressure:null,tiltX:null,tiltY:null,twist:null,pointerType:null,isPrimary:null}),nn=en.extend({dataTransfer:null}),rn=Bt.extend({touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:qt}),an=Mt.extend({propertyName:null,elapsedTime:null,pseudoElement:null}),on=en.extend({deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:null,deltaMode:null}),ln=[["blur","blur",0],["cancel","cancel",0],["click","click",0],["close","close",0],["contextmenu","contextMenu",0],["copy","copy",0],["cut","cut",0],["auxclick","auxClick",0],["dblclick","doubleClick",0],["dragend","dragEnd",0],["dragstart","dragStart",0],["drop","drop",0],["focus","focus",0],["input","input",0],["invalid","invalid",0],["keydown","keyDown",0],["keypress","keyPress",0],["keyup","keyUp",0],["mousedown","mouseDown",0],["mouseup","mouseUp",0],["paste","paste",0],["pause","pause",0],["play","play",0],["pointercancel","pointerCancel",0],["pointerdown","pointerDown",0],["pointerup","pointerUp",0],["ratechange","rateChange",0],["reset","reset",0],["seeked","seeked",0],["submit","submit",0],["touchcancel","touchCancel",0],["touchend","touchEnd",0],["touchstart","touchStart",0],["volumechange","volumeChange",0],["drag","drag",1],["dragenter","dragEnter",1],["dragexit","dragExit",1],["dragleave","dragLeave",1],["dragover","dragOver",1],["mousemove","mouseMove",1],["mouseout","mouseOut",1],["mouseover","mouseOver",1],["pointermove","pointerMove",1],["pointerout","pointerOut",1],["pointerover","pointerOver",1],["scroll","scroll",1],["toggle","toggle",1],["touchmove","touchMove",1],["wheel","wheel",1],["abort","abort",2],[Ge,"animationEnd",2],[Xe,"animationIteration",2],[Ye,"animationStart",2],["canplay","canPlay",2],["canplaythrough","canPlayThrough",2],["durationchange","durationChange",2],["emptied","emptied",2],["encrypted","encrypted",2],["ended","ended",2],["error","error",2],["gotpointercapture","gotPointerCapture",2],["load","load",2],["loadeddata","loadedData",2],["loadedmetadata","loadedMetadata",2],["loadstart","loadStart",2],["lostpointercapture","lostPointerCapture",2],["playing","playing",2],["progress","progress",2],["seeking","seeking",2],["stalled","stalled",2],["suspend","suspend",2],["timeupdate","timeUpdate",2],[Ze,"transitionEnd",2],["waiting","waiting",2]],un={},sn={},cn=0;cn<ln.length;cn++){var fn=ln[cn],pn=fn[0],dn=fn[1],hn=fn[2],mn="on"+(dn[0].toUpperCase()+dn.slice(1)),yn={phasedRegistrationNames:{bubbled:mn,captured:mn+"Capture"},dependencies:[pn],eventPriority:hn};un[dn]=yn,sn[pn]=yn}var bn={eventTypes:un,getEventPriority:function(e){return void 0!==(e=sn[e])?e.eventPriority:2},extractEvents:function(e,t,n,r){var a=sn[e];if(!a)return null;switch(e){case"keypress":if(0===Vt(n))return null;case"keydown":case"keyup":e=Gt;break;case"blur":case"focus":e=Wt;break;case"click":if(2===n.button)return null;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":e=en;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":e=nn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":e=rn;break;case Ge:case Xe:case Ye:e=At;break;case Ze:e=an;break;case"scroll":e=Bt;break;case"wheel":e=on;break;case"copy":case"cut":case"paste":e=Lt;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":e=tn;break;default:e=Mt}return zt(t=e.getPooled(a,t,n,r)),t}},vn=o.unstable_UserBlockingPriority,gn=o.unstable_runWithPriority,wn=bn.getEventPriority,En=10,kn=[];function xn(e){var t=e.targetInst,n=t;do{if(!n){e.ancestors.push(n);break}var r=n;if(3===r.tag)r=r.stateNode.containerInfo;else{for(;r.return;)r=r.return;r=3!==r.tag?null:r.stateNode.containerInfo}if(!r)break;5!==(t=n.tag)&&6!==t||e.ancestors.push(n),n=pr(r)}while(n);for(n=0;n<e.ancestors.length;n++){t=e.ancestors[n];var a=_t(e.nativeEvent);r=e.topLevelType;for(var o=e.nativeEvent,i=e.eventSystemFlags,l=null,u=0;u<f.length;u++){var s=f[u];s&&(s=s.extractEvents(r,t,o,a,i))&&(l=_(l,s))}N(l)}}var Sn=!0;function Tn(e,t){_n(t,e,!1)}function _n(e,t,n){switch(wn(t)){case 0:var r=Cn.bind(null,t,1);break;case 1:r=Pn.bind(null,t,1);break;default:r=Nn.bind(null,t,1)}n?e.addEventListener(t,r,!0):e.addEventListener(t,r,!1)}function Cn(e,t,n){ce||ue();var r=Nn,a=ce;ce=!0;try{le(r,e,t,n)}finally{(ce=a)||pe()}}function Pn(e,t,n){gn(vn,Nn.bind(null,e,t,n))}function On(e,t,n,r){if(kn.length){var a=kn.pop();a.topLevelType=e,a.eventSystemFlags=t,a.nativeEvent=n,a.targetInst=r,e=a}else e={topLevelType:e,eventSystemFlags:t,nativeEvent:n,targetInst:r,ancestors:[]};try{if(t=xn,n=e,fe)t(n,void 0);else{fe=!0;try{se(t,n,void 0)}finally{fe=!1,pe()}}}finally{e.topLevelType=null,e.nativeEvent=null,e.targetInst=null,e.ancestors.length=0,kn.length<En&&kn.push(e)}}function Nn(e,t,n){if(Sn)if(0<ut.length&&-1<mt.indexOf(e))e=bt(null,e,t,n),ut.push(e);else{var r=In(e,t,n);null===r?vt(e,n):-1<mt.indexOf(e)?(e=bt(r,e,t,n),ut.push(e)):function(e,t,n,r){switch(t){case"focus":return st=gt(st,e,t,n,r),!0;case"dragenter":return ct=gt(ct,e,t,n,r),!0;case"mouseover":return ft=gt(ft,e,t,n,r),!0;case"pointerover":var a=r.pointerId;return pt.set(a,gt(pt.get(a)||null,e,t,n,r)),!0;case"gotpointercapture":return a=r.pointerId,dt.set(a,gt(dt.get(a)||null,e,t,n,r)),!0}return!1}(r,e,t,n)||(vt(e,n),On(e,t,n,null))}}function In(e,t,n){var r=_t(n);if(null!==(r=pr(r))){var a=et(r);if(null===a)r=null;else{var o=a.tag;if(13===o){if(null!==(r=tt(a)))return r;r=null}else if(3===o){if(a.stateNode.hydrate)return 3===a.tag?a.stateNode.containerInfo:null;r=null}else a!==r&&(r=null)}}return On(e,t,n,r),null}function zn(e){if(!J)return!1;var t=(e="on"+e)in document;return t||((t=document.createElement("div")).setAttribute(e,"return;"),t="function"==typeof t[e]),t}var jn=new("function"==typeof WeakMap?WeakMap:Map);function Fn(e){var t=jn.get(e);return void 0===t&&(t=new Set,jn.set(e,t)),t}function Mn(e,t,n){if(!n.has(e)){switch(e){case"scroll":_n(t,"scroll",!0);break;case"focus":case"blur":_n(t,"focus",!0),_n(t,"blur",!0),n.add("blur"),n.add("focus");break;case"cancel":case"close":zn(e)&&_n(t,e,!0);break;case"invalid":case"submit":case"reset":break;default:-1===Je.indexOf(e)&&Tn(e,t)}n.add(e)}}var Rn={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Un=["Webkit","ms","Moz","O"];function Dn(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||Rn.hasOwnProperty(e)&&Rn[e]?(""+t).trim():t+"px"}function An(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),a=Dn(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,a):e[n]=a}}Object.keys(Rn).forEach((function(e){Un.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Rn[t]=Rn[e]}))}));var Ln=a({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Bn(e,t){if(t){if(Ln[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(i(137,e,""));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(i(60));if(!("object"==typeof t.dangerouslySetInnerHTML&&"__html"in t.dangerouslySetInnerHTML))throw Error(i(61))}if(null!=t.style&&"object"!=typeof t.style)throw Error(i(62,""))}}function Wn(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function Vn(e,t){var n=Fn(e=9===e.nodeType||11===e.nodeType?e:e.ownerDocument);t=h[t];for(var r=0;r<t.length;r++)Mn(t[r],e,n)}function Hn(){}function $n(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function Qn(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function Kn(e,t){var n,r=Qn(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=Qn(r)}}function qn(){for(var e=window,t=$n();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(e){n=!1}if(!n)break;t=$n((e=t.contentWindow).document)}return t}function Gn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}var Xn="$",Yn="/$",Zn="$?",Jn="$!",er=null,tr=null;function nr(e,t){switch(e){case"button":case"input":case"select":case"textarea":return!!t.autoFocus}return!1}function rr(e,t){return"textarea"===e||"option"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var ar="function"==typeof setTimeout?setTimeout:void 0,or="function"==typeof clearTimeout?clearTimeout:void 0;function ir(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break}return e}function lr(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if(n===Xn||n===Jn||n===Zn){if(0===t)return e;t--}else n===Yn&&t++}e=e.previousSibling}return null}var ur=Math.random().toString(36).slice(2),sr="__reactInternalInstance$"+ur,cr="__reactEventHandlers$"+ur,fr="__reactContainere$"+ur;function pr(e){var t=e[sr];if(t)return t;for(var n=e.parentNode;n;){if(t=n[fr]||n[sr]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=lr(e);null!==e;){if(n=e[sr])return n;e=lr(e)}return t}n=(e=n).parentNode}return null}function dr(e){return!(e=e[sr]||e[fr])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function hr(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(i(33))}function mr(e){return e[cr]||null}var yr=null,br=null,vr=null;function gr(){if(vr)return vr;var e,t,n=br,r=n.length,a="value"in yr?yr.value:yr.textContent,o=a.length;for(e=0;e<r&&n[e]===a[e];e++);var i=r-e;for(t=1;t<=i&&n[r-t]===a[o-t];t++);return vr=a.slice(e,1<t?1-t:void 0)}var wr=Mt.extend({data:null}),Er=Mt.extend({data:null}),kr=[9,13,27,32],xr=J&&"CompositionEvent"in window,Sr=null;J&&"documentMode"in document&&(Sr=document.documentMode);var Tr=J&&"TextEvent"in window&&!Sr,_r=J&&(!xr||Sr&&8<Sr&&11>=Sr),Cr=String.fromCharCode(32),Pr={beforeInput:{phasedRegistrationNames:{bubbled:"onBeforeInput",captured:"onBeforeInputCapture"},dependencies:["compositionend","keypress","textInput","paste"]},compositionEnd:{phasedRegistrationNames:{bubbled:"onCompositionEnd",captured:"onCompositionEndCapture"},dependencies:"blur compositionend keydown keypress keyup mousedown".split(" ")},compositionStart:{phasedRegistrationNames:{bubbled:"onCompositionStart",captured:"onCompositionStartCapture"},dependencies:"blur compositionstart keydown keypress keyup mousedown".split(" ")},compositionUpdate:{phasedRegistrationNames:{bubbled:"onCompositionUpdate",captured:"onCompositionUpdateCapture"},dependencies:"blur compositionupdate keydown keypress keyup mousedown".split(" ")}},Or=!1;function Nr(e,t){switch(e){case"keyup":return-1!==kr.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"blur":return!0;default:return!1}}function Ir(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var zr=!1;var jr={eventTypes:Pr,extractEvents:function(e,t,n,r){var a;if(xr)e:{switch(e){case"compositionstart":var o=Pr.compositionStart;break e;case"compositionend":o=Pr.compositionEnd;break e;case"compositionupdate":o=Pr.compositionUpdate;break e}o=void 0}else zr?Nr(e,n)&&(o=Pr.compositionEnd):"keydown"===e&&229===n.keyCode&&(o=Pr.compositionStart);return o?(_r&&"ko"!==n.locale&&(zr||o!==Pr.compositionStart?o===Pr.compositionEnd&&zr&&(a=gr()):(br="value"in(yr=r)?yr.value:yr.textContent,zr=!0)),o=wr.getPooled(o,t,n,r),a?o.data=a:null!==(a=Ir(n))&&(o.data=a),zt(o),a=o):a=null,(e=Tr?function(e,t){switch(e){case"compositionend":return Ir(t);case"keypress":return 32!==t.which?null:(Or=!0,Cr);case"textInput":return(e=t.data)===Cr&&Or?null:e;default:return null}}(e,n):function(e,t){if(zr)return"compositionend"===e||!xr&&Nr(e,t)?(e=gr(),vr=br=yr=null,zr=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return _r&&"ko"!==t.locale?null:t.data;default:return null}}(e,n))?((t=Er.getPooled(Pr.beforeInput,t,n,r)).data=e,zt(t)):t=null,null===a?t:null===t?a:[a,t]}},Fr={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Mr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Fr[e.type]:"textarea"===t}var Rr={change:{phasedRegistrationNames:{bubbled:"onChange",captured:"onChangeCapture"},dependencies:"blur change click focus input keydown keyup selectionchange".split(" ")}};function Ur(e,t,n){return(e=Mt.getPooled(Rr.change,e,t,n)).type="change",ae(n),zt(e),e}var Dr=null,Ar=null;function Lr(e){N(e)}function Br(e){if(Te(hr(e)))return e}function Wr(e,t){if("change"===e)return t}var Vr=!1;function Hr(){Dr&&(Dr.detachEvent("onpropertychange",$r),Ar=Dr=null)}function $r(e){if("value"===e.propertyName&&Br(Ar))if(e=Ur(Ar,e,_t(e)),ce)N(e);else{ce=!0;try{ie(Lr,e)}finally{ce=!1,pe()}}}function Qr(e,t,n){"focus"===e?(Hr(),Ar=n,(Dr=t).attachEvent("onpropertychange",$r)):"blur"===e&&Hr()}function Kr(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Br(Ar)}function qr(e,t){if("click"===e)return Br(t)}function Gr(e,t){if("input"===e||"change"===e)return Br(t)}J&&(Vr=zn("input")&&(!document.documentMode||9<document.documentMode));var Xr,Yr={eventTypes:Rr,_isInputEventSupported:Vr,extractEvents:function(e,t,n,r){var a=t?hr(t):window,o=a.nodeName&&a.nodeName.toLowerCase();if("select"===o||"input"===o&&"file"===a.type)var i=Wr;else if(Mr(a))if(Vr)i=Gr;else{i=Kr;var l=Qr}else(o=a.nodeName)&&"input"===o.toLowerCase()&&("checkbox"===a.type||"radio"===a.type)&&(i=qr);if(i&&(i=i(e,t)))return Ur(i,n,r);l&&l(e,a,t),"blur"===e&&(e=a._wrapperState)&&e.controlled&&"number"===a.type&&Ie(a,"number",a.value)}},Zr={mouseEnter:{registrationName:"onMouseEnter",dependencies:["mouseout","mouseover"]},mouseLeave:{registrationName:"onMouseLeave",dependencies:["mouseout","mouseover"]},pointerEnter:{registrationName:"onPointerEnter",dependencies:["pointerout","pointerover"]},pointerLeave:{registrationName:"onPointerLeave",dependencies:["pointerout","pointerover"]}},Jr={eventTypes:Zr,extractEvents:function(e,t,n,r,a){var o="mouseover"===e||"pointerover"===e,i="mouseout"===e||"pointerout"===e;if(o&&0==(32&a)&&(n.relatedTarget||n.fromElement)||!i&&!o)return null;if(a=r.window===r?r:(a=r.ownerDocument)?a.defaultView||a.parentWindow:window,i?(i=t,null!==(t=(t=n.relatedTarget||n.toElement)?pr(t):null)&&(t!==(o=et(t))||5!==t.tag&&6!==t.tag)&&(t=null)):i=null,i===t)return null;if("mouseout"===e||"mouseover"===e)var l=en,u=Zr.mouseLeave,s=Zr.mouseEnter,c="mouse";else"pointerout"!==e&&"pointerover"!==e||(l=tn,u=Zr.pointerLeave,s=Zr.pointerEnter,c="pointer");if(e=null==i?a:hr(i),a=null==t?a:hr(t),(u=l.getPooled(u,i,n,r)).type=c+"leave",u.target=e,u.relatedTarget=a,(r=l.getPooled(s,t,n,r)).type=c+"enter",r.target=a,r.relatedTarget=e,c=t,(l=i)&&c)e:{for(e=c,i=0,t=s=l;t;t=Ct(t))i++;for(t=0,a=e;a;a=Ct(a))t++;for(;0<i-t;)s=Ct(s),i--;for(;0<t-i;)e=Ct(e),t--;for(;i--;){if(s===e||s===e.alternate)break e;s=Ct(s),e=Ct(e)}s=null}else s=null;for(e=s,s=[];l&&l!==e&&(null===(i=l.alternate)||i!==e);)s.push(l),l=Ct(l);for(l=[];c&&c!==e&&(null===(i=c.alternate)||i!==e);)l.push(c),c=Ct(c);for(c=0;c<s.length;c++)Nt(s[c],"bubbled",u);for(c=l.length;0<c--;)Nt(l[c],"captured",r);return n===Xr?(Xr=null,[u]):(Xr=n,[u,r])}};var ea="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},ta=Object.prototype.hasOwnProperty;function na(e,t){if(ea(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++)if(!ta.call(t,n[r])||!ea(e[n[r]],t[n[r]]))return!1;return!0}var ra=J&&"documentMode"in document&&11>=document.documentMode,aa={select:{phasedRegistrationNames:{bubbled:"onSelect",captured:"onSelectCapture"},dependencies:"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange".split(" ")}},oa=null,ia=null,la=null,ua=!1;function sa(e,t){var n=t.window===t?t.document:9===t.nodeType?t:t.ownerDocument;return ua||null==oa||oa!==$n(n)?null:("selectionStart"in(n=oa)&&Gn(n)?n={start:n.selectionStart,end:n.selectionEnd}:n={anchorNode:(n=(n.ownerDocument&&n.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:n.anchorOffset,focusNode:n.focusNode,focusOffset:n.focusOffset},la&&na(la,n)?null:(la=n,(e=Mt.getPooled(aa.select,ia,e,t)).type="select",e.target=oa,zt(e),e))}var ca={eventTypes:aa,extractEvents:function(e,t,n,r){var a,o=r.window===r?r.document:9===r.nodeType?r:r.ownerDocument;if(!(a=!o)){e:{o=Fn(o),a=h.onSelect;for(var i=0;i<a.length;i++)if(!o.has(a[i])){o=!1;break e}o=!0}a=!o}if(a)return null;switch(o=t?hr(t):window,e){case"focus":(Mr(o)||"true"===o.contentEditable)&&(oa=o,ia=t,la=null);break;case"blur":la=ia=oa=null;break;case"mousedown":ua=!0;break;case"contextmenu":case"mouseup":case"dragend":return ua=!1,sa(n,r);case"selectionchange":if(ra)break;case"keydown":case"keyup":return sa(n,r)}return null}};I.injectEventPluginOrder("ResponderEventPlugin SimpleEventPlugin EnterLeaveEventPlugin ChangeEventPlugin SelectEventPlugin BeforeInputEventPlugin".split(" ")),k=mr,x=dr,S=hr,I.injectEventPluginsByName({SimpleEventPlugin:bn,EnterLeaveEventPlugin:Jr,ChangeEventPlugin:Yr,SelectEventPlugin:ca,BeforeInputEventPlugin:jr}),new Set;var fa=[],pa=-1;function da(e){0>pa||(e.current=fa[pa],fa[pa]=null,pa--)}function ha(e,t){pa++,fa[pa]=e.current,e.current=t}var ma={},ya={current:ma},ba={current:!1},va=ma;function ga(e,t){var n=e.type.contextTypes;if(!n)return ma;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var a,o={};for(a in n)o[a]=t[a];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function wa(e){return null!=(e=e.childContextTypes)}function Ea(e){da(ba),da(ya)}function ka(e){da(ba),da(ya)}function xa(e,t,n){if(ya.current!==ma)throw Error(i(168));ha(ya,t),ha(ba,n)}function Sa(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var o in r=r.getChildContext())if(!(o in e))throw Error(i(108,Y(t)||"Unknown",o));return a({},n,{},r)}function Ta(e){var t=e.stateNode;return t=t&&t.__reactInternalMemoizedMergedChildContext||ma,va=ya.current,ha(ya,t),ha(ba,ba.current),!0}function _a(e,t,n){var r=e.stateNode;if(!r)throw Error(i(169));n?(t=Sa(e,t,va),r.__reactInternalMemoizedMergedChildContext=t,da(ba),da(ya),ha(ya,t)):da(ba),ha(ba,n)}var Ca=o.unstable_runWithPriority,Pa=o.unstable_scheduleCallback,Oa=o.unstable_cancelCallback,Na=o.unstable_shouldYield,Ia=o.unstable_requestPaint,za=o.unstable_now,ja=o.unstable_getCurrentPriorityLevel,Fa=o.unstable_ImmediatePriority,Ma=o.unstable_UserBlockingPriority,Ra=o.unstable_NormalPriority,Ua=o.unstable_LowPriority,Da=o.unstable_IdlePriority,Aa={},La=void 0!==Ia?Ia:function(){},Ba=null,Wa=null,Va=!1,Ha=za(),$a=1e4>Ha?za:function(){return za()-Ha};function Qa(){switch(ja()){case Fa:return 99;case Ma:return 98;case Ra:return 97;case Ua:return 96;case Da:return 95;default:throw Error(i(332))}}function Ka(e){switch(e){case 99:return Fa;case 98:return Ma;case 97:return Ra;case 96:return Ua;case 95:return Da;default:throw Error(i(332))}}function qa(e,t){return e=Ka(e),Ca(e,t)}function Ga(e,t,n){return e=Ka(e),Pa(e,t,n)}function Xa(e){return null===Ba?(Ba=[e],Wa=Pa(Fa,Za)):Ba.push(e),Aa}function Ya(){if(null!==Wa){var e=Wa;Wa=null,Oa(e)}Za()}function Za(){if(!Va&&null!==Ba){Va=!0;var e=0;try{var t=Ba;qa(99,(function(){for(;e<t.length;e++){var n=t[e];do{n=n(!0)}while(null!==n)}})),Ba=null}catch(t){throw null!==Ba&&(Ba=Ba.slice(e+1)),Pa(Fa,Ya),t}finally{Va=!1}}}var Ja=3;function eo(e,t,n){return 1073741821-(1+((1073741821-e+t/10)/(n/=10)|0))*n}function to(e,t){if(e&&e.defaultProps)for(var n in t=a({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}var no={current:null},ro=null,ao=null,oo=null;function io(){oo=ao=ro=null}function lo(e,t){var n=e.type._context;ha(no,n._currentValue),n._currentValue=t}function uo(e){var t=no.current;da(no),e.type._context._currentValue=t}function so(e,t){for(;null!==e;){var n=e.alternate;if(e.childExpirationTime<t)e.childExpirationTime=t,null!==n&&n.childExpirationTime<t&&(n.childExpirationTime=t);else{if(!(null!==n&&n.childExpirationTime<t))break;n.childExpirationTime=t}e=e.return}}function co(e,t){ro=e,oo=ao=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(e.expirationTime>=t&&($i=!0),e.firstContext=null)}function fo(e,t){if(oo!==e&&!1!==t&&0!==t)if("number"==typeof t&&1073741823!==t||(oo=e,t=1073741823),t={context:e,observedBits:t,next:null},null===ao){if(null===ro)throw Error(i(308));ao=t,ro.dependencies={expirationTime:0,firstContext:t,responders:null}}else ao=ao.next=t;return e._currentValue}var po=!1;function ho(e){return{baseState:e,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function mo(e){return{baseState:e.baseState,firstUpdate:e.firstUpdate,lastUpdate:e.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function yo(e,t){return{expirationTime:e,suspenseConfig:t,tag:0,payload:null,callback:null,next:null,nextEffect:null}}function bo(e,t){null===e.lastUpdate?e.firstUpdate=e.lastUpdate=t:(e.lastUpdate.next=t,e.lastUpdate=t)}function vo(e,t){var n=e.alternate;if(null===n){var r=e.updateQueue,a=null;null===r&&(r=e.updateQueue=ho(e.memoizedState))}else r=e.updateQueue,a=n.updateQueue,null===r?null===a?(r=e.updateQueue=ho(e.memoizedState),a=n.updateQueue=ho(n.memoizedState)):r=e.updateQueue=mo(a):null===a&&(a=n.updateQueue=mo(r));null===a||r===a?bo(r,t):null===r.lastUpdate||null===a.lastUpdate?(bo(r,t),bo(a,t)):(bo(r,t),a.lastUpdate=t)}function go(e,t){var n=e.updateQueue;null===(n=null===n?e.updateQueue=ho(e.memoizedState):wo(e,n)).lastCapturedUpdate?n.firstCapturedUpdate=n.lastCapturedUpdate=t:(n.lastCapturedUpdate.next=t,n.lastCapturedUpdate=t)}function wo(e,t){var n=e.alternate;return null!==n&&t===n.updateQueue&&(t=e.updateQueue=mo(t)),t}function Eo(e,t,n,r,o,i){switch(n.tag){case 1:return"function"==typeof(e=n.payload)?e.call(i,r,o):e;case 3:e.effectTag=-4097&e.effectTag|64;case 0:if(null==(o="function"==typeof(e=n.payload)?e.call(i,r,o):e))break;return a({},r,o);case 2:po=!0}return r}function ko(e,t,n,r,a){po=!1;for(var o=(t=wo(e,t)).baseState,i=null,l=0,u=t.firstUpdate,s=o;null!==u;){var c=u.expirationTime;c<a?(null===i&&(i=u,o=s),l<c&&(l=c)):(Cu(c,u.suspenseConfig),s=Eo(e,0,u,s,n,r),null!==u.callback&&(e.effectTag|=32,u.nextEffect=null,null===t.lastEffect?t.firstEffect=t.lastEffect=u:(t.lastEffect.nextEffect=u,t.lastEffect=u))),u=u.next}for(c=null,u=t.firstCapturedUpdate;null!==u;){var f=u.expirationTime;f<a?(null===c&&(c=u,null===i&&(o=s)),l<f&&(l=f)):(s=Eo(e,0,u,s,n,r),null!==u.callback&&(e.effectTag|=32,u.nextEffect=null,null===t.lastCapturedEffect?t.firstCapturedEffect=t.lastCapturedEffect=u:(t.lastCapturedEffect.nextEffect=u,t.lastCapturedEffect=u))),u=u.next}null===i&&(t.lastUpdate=null),null===c?t.lastCapturedUpdate=null:e.effectTag|=32,null===i&&null===c&&(o=s),t.baseState=o,t.firstUpdate=i,t.firstCapturedUpdate=c,Pu(l),e.expirationTime=l,e.memoizedState=s}function xo(e,t,n){null!==t.firstCapturedUpdate&&(null!==t.lastUpdate&&(t.lastUpdate.next=t.firstCapturedUpdate,t.lastUpdate=t.lastCapturedUpdate),t.firstCapturedUpdate=t.lastCapturedUpdate=null),So(t.firstEffect,n),t.firstEffect=t.lastEffect=null,So(t.firstCapturedEffect,n),t.firstCapturedEffect=t.lastCapturedEffect=null}function So(e,t){for(;null!==e;){var n=e.callback;if(null!==n){e.callback=null;var r=t;if("function"!=typeof n)throw Error(i(191,n));n.call(r)}e=e.nextEffect}}var To=j.ReactCurrentBatchConfig,_o=(new r.Component).refs;function Co(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:a({},t,n),e.memoizedState=n,null!==(r=e.updateQueue)&&0===e.expirationTime&&(r.baseState=n)}var Po={isMounted:function(e){return!!(e=e._reactInternalFiber)&&et(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternalFiber;var r=hu(),a=To.suspense;(a=yo(r=mu(r,e,a),a)).payload=t,null!=n&&(a.callback=n),vo(e,a),yu(e,r)},enqueueReplaceState:function(e,t,n){e=e._reactInternalFiber;var r=hu(),a=To.suspense;(a=yo(r=mu(r,e,a),a)).tag=1,a.payload=t,null!=n&&(a.callback=n),vo(e,a),yu(e,r)},enqueueForceUpdate:function(e,t){e=e._reactInternalFiber;var n=hu(),r=To.suspense;(r=yo(n=mu(n,e,r),r)).tag=2,null!=t&&(r.callback=t),vo(e,r),yu(e,n)}};function Oo(e,t,n,r,a,o,i){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,o,i):!t.prototype||!t.prototype.isPureReactComponent||(!na(n,r)||!na(a,o))}function No(e,t,n){var r=!1,a=ma,o=t.contextType;return"object"==typeof o&&null!==o?o=fo(o):(a=wa(t)?va:ya.current,o=(r=null!=(r=t.contextTypes))?ga(e,a):ma),t=new t(n,o),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=Po,e.stateNode=t,t._reactInternalFiber=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=a,e.__reactInternalMemoizedMaskedChildContext=o),t}function Io(e,t,n,r){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&Po.enqueueReplaceState(t,t.state,null)}function zo(e,t,n,r){var a=e.stateNode;a.props=n,a.state=e.memoizedState,a.refs=_o;var o=t.contextType;"object"==typeof o&&null!==o?a.context=fo(o):(o=wa(t)?va:ya.current,a.context=ga(e,o)),null!==(o=e.updateQueue)&&(ko(e,o,n,a,r),a.state=e.memoizedState),"function"==typeof(o=t.getDerivedStateFromProps)&&(Co(e,t,o,n),a.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof a.getSnapshotBeforeUpdate||"function"!=typeof a.UNSAFE_componentWillMount&&"function"!=typeof a.componentWillMount||(t=a.state,"function"==typeof a.componentWillMount&&a.componentWillMount(),"function"==typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount(),t!==a.state&&Po.enqueueReplaceState(a,a.state,null),null!==(o=e.updateQueue)&&(ko(e,o,n,a,r),a.state=e.memoizedState)),"function"==typeof a.componentDidMount&&(e.effectTag|=4)}var jo=Array.isArray;function Fo(e,t,n){if(null!==(e=n.ref)&&"function"!=typeof e&&"object"!=typeof e){if(n._owner){if(n=n._owner){if(1!==n.tag)throw Error(i(309));var r=n.stateNode}if(!r)throw Error(i(147,e));var a=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===a?t.ref:((t=function(e){var t=r.refs;t===_o&&(t=r.refs={}),null===e?delete t[a]:t[a]=e})._stringRef=a,t)}if("string"!=typeof e)throw Error(i(284));if(!n._owner)throw Error(i(290,e))}return e}function Mo(e,t){if("textarea"!==e.type)throw Error(i(31,"[object Object]"===Object.prototype.toString.call(t)?"object with keys {"+Object.keys(t).join(", ")+"}":t,""))}function Ro(e){function t(t,n){if(e){var r=t.lastEffect;null!==r?(r.nextEffect=n,t.lastEffect=n):t.firstEffect=t.lastEffect=n,n.nextEffect=null,n.effectTag=8}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function a(e,t,n){return(e=qu(e,t)).index=0,e.sibling=null,e}function o(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.effectTag=2,n):r:(t.effectTag=2,n):n}function l(t){return e&&null===t.alternate&&(t.effectTag=2),t}function u(e,t,n,r){return null===t||6!==t.tag?((t=Yu(n,e.mode,r)).return=e,t):((t=a(t,n)).return=e,t)}function s(e,t,n,r){return null!==t&&t.elementType===n.type?((r=a(t,n.props)).ref=Fo(e,t,n),r.return=e,r):((r=Gu(n.type,n.key,n.props,null,e.mode,r)).ref=Fo(e,t,n),r.return=e,r)}function c(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Zu(n,e.mode,r)).return=e,t):((t=a(t,n.children||[])).return=e,t)}function f(e,t,n,r,o){return null===t||7!==t.tag?((t=Xu(n,e.mode,r,o)).return=e,t):((t=a(t,n)).return=e,t)}function p(e,t,n){if("string"==typeof t||"number"==typeof t)return(t=Yu(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case R:return(n=Gu(t.type,t.key,t.props,null,e.mode,n)).ref=Fo(e,null,t),n.return=e,n;case U:return(t=Zu(t,e.mode,n)).return=e,t}if(jo(t)||X(t))return(t=Xu(t,e.mode,n,null)).return=e,t;Mo(e,t)}return null}function d(e,t,n,r){var a=null!==t?t.key:null;if("string"==typeof n||"number"==typeof n)return null!==a?null:u(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case R:return n.key===a?n.type===D?f(e,t,n.props.children,r,a):s(e,t,n,r):null;case U:return n.key===a?c(e,t,n,r):null}if(jo(n)||X(n))return null!==a?null:f(e,t,n,r,null);Mo(e,n)}return null}function h(e,t,n,r,a){if("string"==typeof r||"number"==typeof r)return u(t,e=e.get(n)||null,""+r,a);if("object"==typeof r&&null!==r){switch(r.$$typeof){case R:return e=e.get(null===r.key?n:r.key)||null,r.type===D?f(t,e,r.props.children,a,r.key):s(t,e,r,a);case U:return c(t,e=e.get(null===r.key?n:r.key)||null,r,a)}if(jo(r)||X(r))return f(t,e=e.get(n)||null,r,a,null);Mo(t,r)}return null}function m(a,i,l,u){for(var s=null,c=null,f=i,m=i=0,y=null;null!==f&&m<l.length;m++){f.index>m?(y=f,f=null):y=f.sibling;var b=d(a,f,l[m],u);if(null===b){null===f&&(f=y);break}e&&f&&null===b.alternate&&t(a,f),i=o(b,i,m),null===c?s=b:c.sibling=b,c=b,f=y}if(m===l.length)return n(a,f),s;if(null===f){for(;m<l.length;m++)null!==(f=p(a,l[m],u))&&(i=o(f,i,m),null===c?s=f:c.sibling=f,c=f);return s}for(f=r(a,f);m<l.length;m++)null!==(y=h(f,a,m,l[m],u))&&(e&&null!==y.alternate&&f.delete(null===y.key?m:y.key),i=o(y,i,m),null===c?s=y:c.sibling=y,c=y);return e&&f.forEach((function(e){return t(a,e)})),s}function y(a,l,u,s){var c=X(u);if("function"!=typeof c)throw Error(i(150));if(null==(u=c.call(u)))throw Error(i(151));for(var f=c=null,m=l,y=l=0,b=null,v=u.next();null!==m&&!v.done;y++,v=u.next()){m.index>y?(b=m,m=null):b=m.sibling;var g=d(a,m,v.value,s);if(null===g){null===m&&(m=b);break}e&&m&&null===g.alternate&&t(a,m),l=o(g,l,y),null===f?c=g:f.sibling=g,f=g,m=b}if(v.done)return n(a,m),c;if(null===m){for(;!v.done;y++,v=u.next())null!==(v=p(a,v.value,s))&&(l=o(v,l,y),null===f?c=v:f.sibling=v,f=v);return c}for(m=r(a,m);!v.done;y++,v=u.next())null!==(v=h(m,a,y,v.value,s))&&(e&&null!==v.alternate&&m.delete(null===v.key?y:v.key),l=o(v,l,y),null===f?c=v:f.sibling=v,f=v);return e&&m.forEach((function(e){return t(a,e)})),c}return function(e,r,o,u){var s="object"==typeof o&&null!==o&&o.type===D&&null===o.key;s&&(o=o.props.children);var c="object"==typeof o&&null!==o;if(c)switch(o.$$typeof){case R:e:{for(c=o.key,s=r;null!==s;){if(s.key===c){if(7===s.tag?o.type===D:s.elementType===o.type){n(e,s.sibling),(r=a(s,o.type===D?o.props.children:o.props)).ref=Fo(e,s,o),r.return=e,e=r;break e}n(e,s);break}t(e,s),s=s.sibling}o.type===D?((r=Xu(o.props.children,e.mode,u,o.key)).return=e,e=r):((u=Gu(o.type,o.key,o.props,null,e.mode,u)).ref=Fo(e,r,o),u.return=e,e=u)}return l(e);case U:e:{for(s=o.key;null!==r;){if(r.key===s){if(4===r.tag&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),(r=a(r,o.children||[])).return=e,e=r;break e}n(e,r);break}t(e,r),r=r.sibling}(r=Zu(o,e.mode,u)).return=e,e=r}return l(e)}if("string"==typeof o||"number"==typeof o)return o=""+o,null!==r&&6===r.tag?(n(e,r.sibling),(r=a(r,o)).return=e,e=r):(n(e,r),(r=Yu(o,e.mode,u)).return=e,e=r),l(e);if(jo(o))return m(e,r,o,u);if(X(o))return y(e,r,o,u);if(c&&Mo(e,o),void 0===o&&!s)switch(e.tag){case 1:case 0:throw e=e.type,Error(i(152,e.displayName||e.name||"Component"))}return n(e,r)}}var Uo=Ro(!0),Do=Ro(!1),Ao={},Lo={current:Ao},Bo={current:Ao},Wo={current:Ao};function Vo(e){if(e===Ao)throw Error(i(174));return e}function Ho(e,t){ha(Wo,t),ha(Bo,e),ha(Lo,Ao);var n=t.nodeType;switch(n){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:Le(null,"");break;default:t=Le(t=(n=8===n?t.parentNode:t).namespaceURI||null,n=n.tagName)}da(Lo),ha(Lo,t)}function $o(e){da(Lo),da(Bo),da(Wo)}function Qo(e){Vo(Wo.current);var t=Vo(Lo.current),n=Le(t,e.type);t!==n&&(ha(Bo,e),ha(Lo,n))}function Ko(e){Bo.current===e&&(da(Lo),da(Bo))}var qo={current:0};function Go(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||n.data===Zn||n.data===Jn))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!=(64&t.effectTag))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}function Xo(e,t){return{responder:e,props:t}}var Yo=j.ReactCurrentDispatcher,Zo=j.ReactCurrentBatchConfig,Jo=0,ei=null,ti=null,ni=null,ri=null,ai=null,oi=null,ii=0,li=null,ui=0,si=!1,ci=null,fi=0;function pi(){throw Error(i(321))}function di(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!ea(e[n],t[n]))return!1;return!0}function hi(e,t,n,r,a,o){if(Jo=o,ei=t,ni=null!==e?e.memoizedState:null,Yo.current=null===ni?ji:Fi,t=n(r,a),si){do{si=!1,fi+=1,ni=null!==e?e.memoizedState:null,oi=ri,li=ai=ti=null,Yo.current=Fi,t=n(r,a)}while(si);ci=null,fi=0}if(Yo.current=zi,(e=ei).memoizedState=ri,e.expirationTime=ii,e.updateQueue=li,e.effectTag|=ui,e=null!==ti&&null!==ti.next,Jo=0,oi=ai=ri=ni=ti=ei=null,ii=0,li=null,ui=0,e)throw Error(i(300));return t}function mi(){Yo.current=zi,Jo=0,oi=ai=ri=ni=ti=ei=null,ii=0,li=null,ui=0,si=!1,ci=null,fi=0}function yi(){var e={memoizedState:null,baseState:null,queue:null,baseUpdate:null,next:null};return null===ai?ri=ai=e:ai=ai.next=e,ai}function bi(){if(null!==oi)oi=(ai=oi).next,ni=null!==(ti=ni)?ti.next:null;else{if(null===ni)throw Error(i(310));var e={memoizedState:(ti=ni).memoizedState,baseState:ti.baseState,queue:ti.queue,baseUpdate:ti.baseUpdate,next:null};ai=null===ai?ri=e:ai.next=e,ni=ti.next}return ai}function vi(e,t){return"function"==typeof t?t(e):t}function gi(e){var t=bi(),n=t.queue;if(null===n)throw Error(i(311));if(n.lastRenderedReducer=e,0<fi){var r=n.dispatch;if(null!==ci){var a=ci.get(n);if(void 0!==a){ci.delete(n);var o=t.memoizedState;do{o=e(o,a.action),a=a.next}while(null!==a);return ea(o,t.memoizedState)||($i=!0),t.memoizedState=o,t.baseUpdate===n.last&&(t.baseState=o),n.lastRenderedState=o,[o,r]}}return[t.memoizedState,r]}r=n.last;var l=t.baseUpdate;if(o=t.baseState,null!==l?(null!==r&&(r.next=null),r=l.next):r=null!==r?r.next:null,null!==r){var u=a=null,s=r,c=!1;do{var f=s.expirationTime;f<Jo?(c||(c=!0,u=l,a=o),f>ii&&Pu(ii=f)):(Cu(f,s.suspenseConfig),o=s.eagerReducer===e?s.eagerState:e(o,s.action)),l=s,s=s.next}while(null!==s&&s!==r);c||(u=l,a=o),ea(o,t.memoizedState)||($i=!0),t.memoizedState=o,t.baseUpdate=u,t.baseState=a,n.lastRenderedState=o}return[t.memoizedState,n.dispatch]}function wi(e){var t=yi();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=(e=t.queue={last:null,dispatch:null,lastRenderedReducer:vi,lastRenderedState:e}).dispatch=Ii.bind(null,ei,e),[t.memoizedState,e]}function Ei(e){return gi(vi)}function ki(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===li?(li={lastEffect:null}).lastEffect=e.next=e:null===(t=li.lastEffect)?li.lastEffect=e.next=e:(n=t.next,t.next=e,e.next=n,li.lastEffect=e),e}function xi(e,t,n,r){var a=yi();ui|=e,a.memoizedState=ki(t,n,void 0,void 0===r?null:r)}function Si(e,t,n,r){var a=bi();r=void 0===r?null:r;var o=void 0;if(null!==ti){var i=ti.memoizedState;if(o=i.destroy,null!==r&&di(r,i.deps))return void ki(0,n,o,r)}ui|=e,a.memoizedState=ki(t,n,o,r)}function Ti(e,t){return xi(516,192,e,t)}function _i(e,t){return Si(516,192,e,t)}function Ci(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function Pi(){}function Oi(e,t){return yi().memoizedState=[e,void 0===t?null:t],e}function Ni(e,t){var n=bi();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&di(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Ii(e,t,n){if(!(25>fi))throw Error(i(301));var r=e.alternate;if(e===ei||null!==r&&r===ei)if(si=!0,e={expirationTime:Jo,suspenseConfig:null,action:n,eagerReducer:null,eagerState:null,next:null},null===ci&&(ci=new Map),void 0===(n=ci.get(t)))ci.set(t,e);else{for(t=n;null!==t.next;)t=t.next;t.next=e}else{var a=hu(),o=To.suspense;o={expirationTime:a=mu(a,e,o),suspenseConfig:o,action:n,eagerReducer:null,eagerState:null,next:null};var l=t.last;if(null===l)o.next=o;else{var u=l.next;null!==u&&(o.next=u),l.next=o}if(t.last=o,0===e.expirationTime&&(null===r||0===r.expirationTime)&&null!==(r=t.lastRenderedReducer))try{var s=t.lastRenderedState,c=r(s,n);if(o.eagerReducer=r,o.eagerState=c,ea(c,s))return}catch(e){}yu(e,a)}}var zi={readContext:fo,useCallback:pi,useContext:pi,useEffect:pi,useImperativeHandle:pi,useLayoutEffect:pi,useMemo:pi,useReducer:pi,useRef:pi,useState:pi,useDebugValue:pi,useResponder:pi,useDeferredValue:pi,useTransition:pi},ji={readContext:fo,useCallback:Oi,useContext:fo,useEffect:Ti,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,xi(4,36,Ci.bind(null,t,e),n)},useLayoutEffect:function(e,t){return xi(4,36,e,t)},useMemo:function(e,t){var n=yi();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=yi();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e=(e=r.queue={last:null,dispatch:null,lastRenderedReducer:e,lastRenderedState:t}).dispatch=Ii.bind(null,ei,e),[r.memoizedState,e]},useRef:function(e){return e={current:e},yi().memoizedState=e},useState:wi,useDebugValue:Pi,useResponder:Xo,useDeferredValue:function(e,t){var n=wi(e),r=n[0],a=n[1];return Ti((function(){o.unstable_next((function(){var n=Zo.suspense;Zo.suspense=void 0===t?null:t;try{a(e)}finally{Zo.suspense=n}}))}),[e,t]),r},useTransition:function(e){var t=wi(!1),n=t[0],r=t[1];return[Oi((function(t){r(!0),o.unstable_next((function(){var n=Zo.suspense;Zo.suspense=void 0===e?null:e;try{r(!1),t()}finally{Zo.suspense=n}}))}),[e,n]),n]}},Fi={readContext:fo,useCallback:Ni,useContext:fo,useEffect:_i,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,Si(4,36,Ci.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Si(4,36,e,t)},useMemo:function(e,t){var n=bi();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&di(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)},useReducer:gi,useRef:function(){return bi().memoizedState},useState:Ei,useDebugValue:Pi,useResponder:Xo,useDeferredValue:function(e,t){var n=Ei(),r=n[0],a=n[1];return _i((function(){o.unstable_next((function(){var n=Zo.suspense;Zo.suspense=void 0===t?null:t;try{a(e)}finally{Zo.suspense=n}}))}),[e,t]),r},useTransition:function(e){var t=Ei(),n=t[0],r=t[1];return[Ni((function(t){r(!0),o.unstable_next((function(){var n=Zo.suspense;Zo.suspense=void 0===e?null:e;try{r(!1),t()}finally{Zo.suspense=n}}))}),[e,n]),n]}},Mi=null,Ri=null,Ui=!1;function Di(e,t){var n=Qu(5,null,null,0);n.elementType="DELETED",n.type="DELETED",n.stateNode=t,n.return=e,n.effectTag=8,null!==e.lastEffect?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function Ai(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,!0);case 13:default:return!1}}function Li(e){if(Ui){var t=Ri;if(t){var n=t;if(!Ai(e,t)){if(!(t=ir(n.nextSibling))||!Ai(e,t))return e.effectTag=-1025&e.effectTag|2,Ui=!1,void(Mi=e);Di(Mi,n)}Mi=e,Ri=ir(t.firstChild)}else e.effectTag=-1025&e.effectTag|2,Ui=!1,Mi=e}}function Bi(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;Mi=e}function Wi(e){if(e!==Mi)return!1;if(!Ui)return Bi(e),Ui=!0,!1;var t=e.type;if(5!==e.tag||"head"!==t&&"body"!==t&&!rr(t,e.memoizedProps))for(t=Ri;t;)Di(e,t),t=ir(t.nextSibling);if(Bi(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(i(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if(n===Yn){if(0===t){Ri=ir(e.nextSibling);break e}t--}else n!==Xn&&n!==Jn&&n!==Zn||t++}e=e.nextSibling}Ri=null}}else Ri=Mi?ir(e.stateNode.nextSibling):null;return!0}function Vi(){Ri=Mi=null,Ui=!1}var Hi=j.ReactCurrentOwner,$i=!1;function Qi(e,t,n,r){t.child=null===e?Do(t,null,n,r):Uo(t,e.child,n,r)}function Ki(e,t,n,r,a){n=n.render;var o=t.ref;return co(t,a),r=hi(e,t,n,r,o,a),null===e||$i?(t.effectTag|=1,Qi(e,t,r,a),t.child):(t.updateQueue=e.updateQueue,t.effectTag&=-517,e.expirationTime<=a&&(e.expirationTime=0),cl(e,t,a))}function qi(e,t,n,r,a,o){if(null===e){var i=n.type;return"function"!=typeof i||Ku(i)||void 0!==i.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Gu(n.type,null,r,null,t.mode,o)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=i,Gi(e,t,i,r,a,o))}return i=e.child,a<o&&(a=i.memoizedProps,(n=null!==(n=n.compare)?n:na)(a,r)&&e.ref===t.ref)?cl(e,t,o):(t.effectTag|=1,(e=qu(i,r)).ref=t.ref,e.return=t,t.child=e)}function Gi(e,t,n,r,a,o){return null!==e&&na(e.memoizedProps,r)&&e.ref===t.ref&&($i=!1,a<o)?cl(e,t,o):Yi(e,t,n,r,o)}function Xi(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.effectTag|=128)}function Yi(e,t,n,r,a){var o=wa(n)?va:ya.current;return o=ga(t,o),co(t,a),n=hi(e,t,n,r,o,a),null===e||$i?(t.effectTag|=1,Qi(e,t,n,a),t.child):(t.updateQueue=e.updateQueue,t.effectTag&=-517,e.expirationTime<=a&&(e.expirationTime=0),cl(e,t,a))}function Zi(e,t,n,r,a){if(wa(n)){var o=!0;Ta(t)}else o=!1;if(co(t,a),null===t.stateNode)null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),No(t,n,r),zo(t,n,r,a),r=!0;else if(null===e){var i=t.stateNode,l=t.memoizedProps;i.props=l;var u=i.context,s=n.contextType;"object"==typeof s&&null!==s?s=fo(s):s=ga(t,s=wa(n)?va:ya.current);var c=n.getDerivedStateFromProps,f="function"==typeof c||"function"==typeof i.getSnapshotBeforeUpdate;f||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==r||u!==s)&&Io(t,i,r,s),po=!1;var p=t.memoizedState;u=i.state=p;var d=t.updateQueue;null!==d&&(ko(t,d,r,i,a),u=t.memoizedState),l!==r||p!==u||ba.current||po?("function"==typeof c&&(Co(t,n,c,r),u=t.memoizedState),(l=po||Oo(t,n,l,r,p,u,s))?(f||"function"!=typeof i.UNSAFE_componentWillMount&&"function"!=typeof i.componentWillMount||("function"==typeof i.componentWillMount&&i.componentWillMount(),"function"==typeof i.UNSAFE_componentWillMount&&i.UNSAFE_componentWillMount()),"function"==typeof i.componentDidMount&&(t.effectTag|=4)):("function"==typeof i.componentDidMount&&(t.effectTag|=4),t.memoizedProps=r,t.memoizedState=u),i.props=r,i.state=u,i.context=s,r=l):("function"==typeof i.componentDidMount&&(t.effectTag|=4),r=!1)}else i=t.stateNode,l=t.memoizedProps,i.props=t.type===t.elementType?l:to(t.type,l),u=i.context,"object"==typeof(s=n.contextType)&&null!==s?s=fo(s):s=ga(t,s=wa(n)?va:ya.current),(f="function"==typeof(c=n.getDerivedStateFromProps)||"function"==typeof i.getSnapshotBeforeUpdate)||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==r||u!==s)&&Io(t,i,r,s),po=!1,u=t.memoizedState,p=i.state=u,null!==(d=t.updateQueue)&&(ko(t,d,r,i,a),p=t.memoizedState),l!==r||u!==p||ba.current||po?("function"==typeof c&&(Co(t,n,c,r),p=t.memoizedState),(c=po||Oo(t,n,l,r,u,p,s))?(f||"function"!=typeof i.UNSAFE_componentWillUpdate&&"function"!=typeof i.componentWillUpdate||("function"==typeof i.componentWillUpdate&&i.componentWillUpdate(r,p,s),"function"==typeof i.UNSAFE_componentWillUpdate&&i.UNSAFE_componentWillUpdate(r,p,s)),"function"==typeof i.componentDidUpdate&&(t.effectTag|=4),"function"==typeof i.getSnapshotBeforeUpdate&&(t.effectTag|=256)):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&u===e.memoizedState||(t.effectTag|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&u===e.memoizedState||(t.effectTag|=256),t.memoizedProps=r,t.memoizedState=p),i.props=r,i.state=p,i.context=s,r=c):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&u===e.memoizedState||(t.effectTag|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&u===e.memoizedState||(t.effectTag|=256),r=!1);return Ji(e,t,n,r,o,a)}function Ji(e,t,n,r,a,o){Xi(e,t);var i=0!=(64&t.effectTag);if(!r&&!i)return a&&_a(t,n,!1),cl(e,t,o);r=t.stateNode,Hi.current=t;var l=i&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.effectTag|=1,null!==e&&i?(t.child=Uo(t,e.child,null,o),t.child=Uo(t,null,l,o)):Qi(e,t,l,o),t.memoizedState=r.state,a&&_a(t,n,!0),t.child}function el(e){var t=e.stateNode;t.pendingContext?xa(0,t.pendingContext,t.pendingContext!==t.context):t.context&&xa(0,t.context,!1),Ho(e,t.containerInfo)}var tl,nl,rl,al,ol={dehydrated:null,retryTime:0};function il(e,t,n){var r,a=t.mode,o=t.pendingProps,i=qo.current,l=!1;if((r=0!=(64&t.effectTag))||(r=0!=(2&i)&&(null===e||null!==e.memoizedState)),r?(l=!0,t.effectTag&=-65):null!==e&&null===e.memoizedState||void 0===o.fallback||!0===o.unstable_avoidThisFallback||(i|=1),ha(qo,1&i),null===e){if(void 0!==o.fallback&&Li(t),l){if(l=o.fallback,(o=Xu(null,a,0,null)).return=t,0==(2&t.mode))for(e=null!==t.memoizedState?t.child.child:t.child,o.child=e;null!==e;)e.return=o,e=e.sibling;return(n=Xu(l,a,n,null)).return=t,o.sibling=n,t.memoizedState=ol,t.child=o,n}return a=o.children,t.memoizedState=null,t.child=Do(t,null,a,n)}if(null!==e.memoizedState){if(a=(e=e.child).sibling,l){if(o=o.fallback,(n=qu(e,e.pendingProps)).return=t,0==(2&t.mode)&&(l=null!==t.memoizedState?t.child.child:t.child)!==e.child)for(n.child=l;null!==l;)l.return=n,l=l.sibling;return(a=qu(a,o,a.expirationTime)).return=t,n.sibling=a,n.childExpirationTime=0,t.memoizedState=ol,t.child=n,a}return n=Uo(t,e.child,o.children,n),t.memoizedState=null,t.child=n}if(e=e.child,l){if(l=o.fallback,(o=Xu(null,a,0,null)).return=t,o.child=e,null!==e&&(e.return=o),0==(2&t.mode))for(e=null!==t.memoizedState?t.child.child:t.child,o.child=e;null!==e;)e.return=o,e=e.sibling;return(n=Xu(l,a,n,null)).return=t,o.sibling=n,n.effectTag|=2,o.childExpirationTime=0,t.memoizedState=ol,t.child=o,n}return t.memoizedState=null,t.child=Uo(t,e,o.children,n)}function ll(e,t){e.expirationTime<t&&(e.expirationTime=t);var n=e.alternate;null!==n&&n.expirationTime<t&&(n.expirationTime=t),so(e.return,t)}function ul(e,t,n,r,a,o){var i=e.memoizedState;null===i?e.memoizedState={isBackwards:t,rendering:null,last:r,tail:n,tailExpiration:0,tailMode:a,lastEffect:o}:(i.isBackwards=t,i.rendering=null,i.last=r,i.tail=n,i.tailExpiration=0,i.tailMode=a,i.lastEffect=o)}function sl(e,t,n){var r=t.pendingProps,a=r.revealOrder,o=r.tail;if(Qi(e,t,r.children,n),0!=(2&(r=qo.current)))r=1&r|2,t.effectTag|=64;else{if(null!==e&&0!=(64&e.effectTag))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&ll(e,n);else if(19===e.tag)ll(e,n);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(ha(qo,r),0==(2&t.mode))t.memoizedState=null;else switch(a){case"forwards":for(n=t.child,a=null;null!==n;)null!==(e=n.alternate)&&null===Go(e)&&(a=n),n=n.sibling;null===(n=a)?(a=t.child,t.child=null):(a=n.sibling,n.sibling=null),ul(t,!1,a,n,o,t.lastEffect);break;case"backwards":for(n=null,a=t.child,t.child=null;null!==a;){if(null!==(e=a.alternate)&&null===Go(e)){t.child=a;break}e=a.sibling,a.sibling=n,n=a,a=e}ul(t,!0,n,null,o,t.lastEffect);break;case"together":ul(t,!1,null,null,void 0,t.lastEffect);break;default:t.memoizedState=null}return t.child}function cl(e,t,n){null!==e&&(t.dependencies=e.dependencies);var r=t.expirationTime;if(0!==r&&Pu(r),t.childExpirationTime<n)return null;if(null!==e&&t.child!==e.child)throw Error(i(153));if(null!==t.child){for(n=qu(e=t.child,e.pendingProps,e.expirationTime),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=qu(e,e.pendingProps,e.expirationTime)).return=t;n.sibling=null}return t.child}function fl(e){e.effectTag|=4}function pl(e,t){switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function dl(e){switch(e.tag){case 1:wa(e.type)&&Ea();var t=e.effectTag;return 4096&t?(e.effectTag=-4097&t|64,e):null;case 3:if($o(),ka(),0!=(64&(t=e.effectTag)))throw Error(i(285));return e.effectTag=-4097&t|64,e;case 5:return Ko(e),null;case 13:return da(qo),4096&(t=e.effectTag)?(e.effectTag=-4097&t|64,e):null;case 19:return da(qo),null;case 4:return $o(),null;case 10:return uo(e),null;default:return null}}function hl(e,t){return{value:e,source:t,stack:Z(t)}}tl=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},nl=function(){},rl=function(e,t,n,r,o){var i=e.memoizedProps;if(i!==r){var l,u,s=t.stateNode;switch(Vo(Lo.current),e=null,n){case"input":i=_e(s,i),r=_e(s,r),e=[];break;case"option":i=ze(s,i),r=ze(s,r),e=[];break;case"select":i=a({},i,{value:void 0}),r=a({},r,{value:void 0}),e=[];break;case"textarea":i=Fe(s,i),r=Fe(s,r),e=[];break;default:"function"!=typeof i.onClick&&"function"==typeof r.onClick&&(s.onclick=Hn)}for(l in Bn(n,r),n=null,i)if(!r.hasOwnProperty(l)&&i.hasOwnProperty(l)&&null!=i[l])if("style"===l)for(u in s=i[l])s.hasOwnProperty(u)&&(n||(n={}),n[u]="");else"dangerouslySetInnerHTML"!==l&&"children"!==l&&"suppressContentEditableWarning"!==l&&"suppressHydrationWarning"!==l&&"autoFocus"!==l&&(d.hasOwnProperty(l)?e||(e=[]):(e=e||[]).push(l,null));for(l in r){var c=r[l];if(s=null!=i?i[l]:void 0,r.hasOwnProperty(l)&&c!==s&&(null!=c||null!=s))if("style"===l)if(s){for(u in s)!s.hasOwnProperty(u)||c&&c.hasOwnProperty(u)||(n||(n={}),n[u]="");for(u in c)c.hasOwnProperty(u)&&s[u]!==c[u]&&(n||(n={}),n[u]=c[u])}else n||(e||(e=[]),e.push(l,n)),n=c;else"dangerouslySetInnerHTML"===l?(c=c?c.__html:void 0,s=s?s.__html:void 0,null!=c&&s!==c&&(e=e||[]).push(l,""+c)):"children"===l?s===c||"string"!=typeof c&&"number"!=typeof c||(e=e||[]).push(l,""+c):"suppressContentEditableWarning"!==l&&"suppressHydrationWarning"!==l&&(d.hasOwnProperty(l)?(null!=c&&Vn(o,l),e||s===c||(e=[])):(e=e||[]).push(l,c))}n&&(e=e||[]).push("style",n),o=e,(t.updateQueue=o)&&fl(t)}},al=function(e,t,n,r){n!==r&&fl(t)};var ml="function"==typeof WeakSet?WeakSet:Set;function yl(e,t){var n=t.source,r=t.stack;null===r&&null!==n&&(r=Z(n)),null!==n&&Y(n.type),t=t.value,null!==e&&1===e.tag&&Y(e.type);try{console.error(t)}catch(e){setTimeout((function(){throw e}))}}function bl(e){var t=e.ref;if(null!==t)if("function"==typeof t)try{t(null)}catch(t){Lu(e,t)}else t.current=null}function vl(e,t){switch(t.tag){case 0:case 11:case 15:gl(2,0,t);break;case 1:if(256&t.effectTag&&null!==e){var n=e.memoizedProps,r=e.memoizedState;t=(e=t.stateNode).getSnapshotBeforeUpdate(t.elementType===t.type?n:to(t.type,n),r),e.__reactInternalSnapshotBeforeUpdate=t}break;case 3:case 5:case 6:case 4:case 17:break;default:throw Error(i(163))}}function gl(e,t,n){if(null!==(n=null!==(n=n.updateQueue)?n.lastEffect:null)){var r=n=n.next;do{if(0!=(r.tag&e)){var a=r.destroy;r.destroy=void 0,void 0!==a&&a()}0!=(r.tag&t)&&(a=r.create,r.destroy=a()),r=r.next}while(r!==n)}}function wl(e,t,n){switch("function"==typeof Hu&&Hu(t),t.tag){case 0:case 11:case 14:case 15:if(null!==(e=t.updateQueue)&&null!==(e=e.lastEffect)){var r=e.next;qa(97<n?97:n,(function(){var e=r;do{var n=e.destroy;if(void 0!==n){var a=t;try{n()}catch(e){Lu(a,e)}}e=e.next}while(e!==r)}))}break;case 1:bl(t),"function"==typeof(n=t.stateNode).componentWillUnmount&&function(e,t){try{t.props=e.memoizedProps,t.state=e.memoizedState,t.componentWillUnmount()}catch(t){Lu(e,t)}}(t,n);break;case 5:bl(t);break;case 4:Sl(e,t,n)}}function El(e){var t=e.alternate;e.return=null,e.child=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null,e.alternate=null,e.firstEffect=null,e.lastEffect=null,e.pendingProps=null,e.memoizedProps=null,null!==t&&El(t)}function kl(e){return 5===e.tag||3===e.tag||4===e.tag}function xl(e){e:{for(var t=e.return;null!==t;){if(kl(t)){var n=t;break e}t=t.return}throw Error(i(160))}switch(t=n.stateNode,n.tag){case 5:var r=!1;break;case 3:case 4:t=t.containerInfo,r=!0;break;default:throw Error(i(161))}16&n.effectTag&&(Ve(t,""),n.effectTag&=-17);e:t:for(n=e;;){for(;null===n.sibling;){if(null===n.return||kl(n.return)){n=null;break e}n=n.return}for(n.sibling.return=n.return,n=n.sibling;5!==n.tag&&6!==n.tag&&18!==n.tag;){if(2&n.effectTag)continue t;if(null===n.child||4===n.tag)continue t;n.child.return=n,n=n.child}if(!(2&n.effectTag)){n=n.stateNode;break e}}for(var a=e;;){var o=5===a.tag||6===a.tag;if(o){var l=o?a.stateNode:a.stateNode.instance;if(n)if(r){var u=l;l=n,8===(o=t).nodeType?o.parentNode.insertBefore(u,l):o.insertBefore(u,l)}else t.insertBefore(l,n);else r?(8===(u=t).nodeType?(o=u.parentNode).insertBefore(l,u):(o=u).appendChild(l),null!=(u=u._reactRootContainer)||null!==o.onclick||(o.onclick=Hn)):t.appendChild(l)}else if(4!==a.tag&&null!==a.child){a.child.return=a,a=a.child;continue}if(a===e)break;for(;null===a.sibling;){if(null===a.return||a.return===e)return;a=a.return}a.sibling.return=a.return,a=a.sibling}}function Sl(e,t,n){for(var r,a,o=t,l=!1;;){if(!l){l=o.return;e:for(;;){if(null===l)throw Error(i(160));switch(r=l.stateNode,l.tag){case 5:a=!1;break e;case 3:case 4:r=r.containerInfo,a=!0;break e}l=l.return}l=!0}if(5===o.tag||6===o.tag){e:for(var u=e,s=o,c=n,f=s;;)if(wl(u,f,c),null!==f.child&&4!==f.tag)f.child.return=f,f=f.child;else{if(f===s)break;for(;null===f.sibling;){if(null===f.return||f.return===s)break e;f=f.return}f.sibling.return=f.return,f=f.sibling}a?(u=r,s=o.stateNode,8===u.nodeType?u.parentNode.removeChild(s):u.removeChild(s)):r.removeChild(o.stateNode)}else if(4===o.tag){if(null!==o.child){r=o.stateNode.containerInfo,a=!0,o.child.return=o,o=o.child;continue}}else if(wl(e,o,n),null!==o.child){o.child.return=o,o=o.child;continue}if(o===t)break;for(;null===o.sibling;){if(null===o.return||o.return===t)return;4===(o=o.return).tag&&(l=!1)}o.sibling.return=o.return,o=o.sibling}}function Tl(e,t){switch(t.tag){case 0:case 11:case 14:case 15:gl(4,8,t);break;case 1:break;case 5:var n=t.stateNode;if(null!=n){var r=t.memoizedProps,a=null!==e?e.memoizedProps:r;e=t.type;var o=t.updateQueue;if(t.updateQueue=null,null!==o){for(n[cr]=r,"input"===e&&"radio"===r.type&&null!=r.name&&Pe(n,r),Wn(e,a),t=Wn(e,r),a=0;a<o.length;a+=2){var l=o[a],u=o[a+1];"style"===l?An(n,u):"dangerouslySetInnerHTML"===l?We(n,u):"children"===l?Ve(n,u):ke(n,l,u,t)}switch(e){case"input":Oe(n,r);break;case"textarea":Re(n,r);break;case"select":t=n._wrapperState.wasMultiple,n._wrapperState.wasMultiple=!!r.multiple,null!=(e=r.value)?je(n,!!r.multiple,e,!1):t!==!!r.multiple&&(null!=r.defaultValue?je(n,!!r.multiple,r.defaultValue,!0):je(n,!!r.multiple,r.multiple?[]:"",!1))}}}break;case 6:if(null===t.stateNode)throw Error(i(162));t.stateNode.nodeValue=t.memoizedProps;break;case 3:(t=t.stateNode).hydrate&&(t.hydrate=!1,Tt(t.containerInfo));break;case 12:break;case 13:if(n=t,null===t.memoizedState?r=!1:(r=!0,n=t.child,tu=$a()),null!==n)e:for(e=n;;){if(5===e.tag)o=e.stateNode,r?"function"==typeof(o=o.style).setProperty?o.setProperty("display","none","important"):o.display="none":(o=e.stateNode,a=null!=(a=e.memoizedProps.style)&&a.hasOwnProperty("display")?a.display:null,o.style.display=Dn("display",a));else if(6===e.tag)e.stateNode.nodeValue=r?"":e.memoizedProps;else{if(13===e.tag&&null!==e.memoizedState&&null===e.memoizedState.dehydrated){(o=e.child.sibling).return=e,e=o;continue}if(null!==e.child){e.child.return=e,e=e.child;continue}}if(e===n)break e;for(;null===e.sibling;){if(null===e.return||e.return===n)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}_l(t);break;case 19:_l(t);break;case 17:case 20:case 21:break;default:throw Error(i(163))}}function _l(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new ml),t.forEach((function(t){var r=Wu.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}var Cl="function"==typeof WeakMap?WeakMap:Map;function Pl(e,t,n){(n=yo(n,null)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){au||(au=!0,ou=r),yl(e,t)},n}function Ol(e,t,n){(n=yo(n,null)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var a=t.value;n.payload=function(){return yl(e,t),r(a)}}var o=e.stateNode;return null!==o&&"function"==typeof o.componentDidCatch&&(n.callback=function(){"function"!=typeof r&&(null===iu?iu=new Set([this]):iu.add(this),yl(e,t));var n=t.stack;this.componentDidCatch(t.value,{componentStack:null!==n?n:""})}),n}var Nl,Il=Math.ceil,zl=j.ReactCurrentDispatcher,jl=j.ReactCurrentOwner,Fl=0,Ml=8,Rl=16,Ul=32,Dl=0,Al=1,Ll=2,Bl=3,Wl=4,Vl=5,Hl=Fl,$l=null,Ql=null,Kl=0,ql=Dl,Gl=null,Xl=1073741823,Yl=1073741823,Zl=null,Jl=0,eu=!1,tu=0,nu=500,ru=null,au=!1,ou=null,iu=null,lu=!1,uu=null,su=90,cu=null,fu=0,pu=null,du=0;function hu(){return(Hl&(Rl|Ul))!==Fl?1073741821-($a()/10|0):0!==du?du:du=1073741821-($a()/10|0)}function mu(e,t,n){if(0==(2&(t=t.mode)))return 1073741823;var r=Qa();if(0==(4&t))return 99===r?1073741823:1073741822;if((Hl&Rl)!==Fl)return Kl;if(null!==n)e=eo(e,0|n.timeoutMs||5e3,250);else switch(r){case 99:e=1073741823;break;case 98:e=eo(e,150,100);break;case 97:case 96:e=eo(e,5e3,250);break;case 95:e=2;break;default:throw Error(i(326))}return null!==$l&&e===Kl&&--e,e}function yu(e,t){if(50<fu)throw fu=0,pu=null,Error(i(185));if(null!==(e=bu(e,t))){var n=Qa();1073741823===t?(Hl&Ml)!==Fl&&(Hl&(Rl|Ul))===Fl?Eu(e):(gu(e),Hl===Fl&&Ya()):gu(e),(4&Hl)===Fl||98!==n&&99!==n||(null===cu?cu=new Map([[e,t]]):(void 0===(n=cu.get(e))||n>t)&&cu.set(e,t))}}function bu(e,t){e.expirationTime<t&&(e.expirationTime=t);var n=e.alternate;null!==n&&n.expirationTime<t&&(n.expirationTime=t);var r=e.return,a=null;if(null===r&&3===e.tag)a=e.stateNode;else for(;null!==r;){if(n=r.alternate,r.childExpirationTime<t&&(r.childExpirationTime=t),null!==n&&n.childExpirationTime<t&&(n.childExpirationTime=t),null===r.return&&3===r.tag){a=r.stateNode;break}r=r.return}return null!==a&&($l===a&&(Pu(t),ql===Wl&&ts(a,Kl)),ns(a,t)),a}function vu(e){var t=e.lastExpiredTime;return 0!==t?t:es(e,t=e.firstPendingTime)?(t=e.lastPingedTime)>(e=e.nextKnownPendingLevel)?t:e:t}function gu(e){if(0!==e.lastExpiredTime)e.callbackExpirationTime=1073741823,e.callbackPriority=99,e.callbackNode=Xa(Eu.bind(null,e));else{var t=vu(e),n=e.callbackNode;if(0===t)null!==n&&(e.callbackNode=null,e.callbackExpirationTime=0,e.callbackPriority=90);else{var r=hu();if(1073741823===t?r=99:1===t||2===t?r=95:r=0>=(r=10*(1073741821-t)-10*(1073741821-r))?99:250>=r?98:5250>=r?97:95,null!==n){var a=e.callbackPriority;if(e.callbackExpirationTime===t&&a>=r)return;n!==Aa&&Oa(n)}e.callbackExpirationTime=t,e.callbackPriority=r,t=1073741823===t?Xa(Eu.bind(null,e)):Ga(r,wu.bind(null,e),{timeout:10*(1073741821-t)-$a()}),e.callbackNode=t}}}function wu(e,t){if(du=0,t)return rs(e,t=hu()),gu(e),null;var n=vu(e);if(0!==n){if(t=e.callbackNode,(Hl&(Rl|Ul))!==Fl)throw Error(i(327));if(Uu(),e===$l&&n===Kl||Su(e,n),null!==Ql){var r=Hl;Hl|=Rl;for(var a=_u();;)try{Nu();break}catch(t){Tu(e,t)}if(io(),Hl=r,zl.current=a,ql===Al)throw t=Gl,Su(e,n),ts(e,n),gu(e),t;if(null===Ql)switch(a=e.finishedWork=e.current.alternate,e.finishedExpirationTime=n,r=ql,$l=null,r){case Dl:case Al:throw Error(i(345));case Ll:rs(e,2<n?2:n);break;case Bl:if(ts(e,n),n===(r=e.lastSuspendedTime)&&(e.nextKnownPendingLevel=ju(a)),1073741823===Xl&&10<(a=tu+nu-$a())){if(eu){var o=e.lastPingedTime;if(0===o||o>=n){e.lastPingedTime=n,Su(e,n);break}}if(0!==(o=vu(e))&&o!==n)break;if(0!==r&&r!==n){e.lastPingedTime=r;break}e.timeoutHandle=ar(Fu.bind(null,e),a);break}Fu(e);break;case Wl:if(ts(e,n),n===(r=e.lastSuspendedTime)&&(e.nextKnownPendingLevel=ju(a)),eu&&(0===(a=e.lastPingedTime)||a>=n)){e.lastPingedTime=n,Su(e,n);break}if(0!==(a=vu(e))&&a!==n)break;if(0!==r&&r!==n){e.lastPingedTime=r;break}if(1073741823!==Yl?r=10*(1073741821-Yl)-$a():1073741823===Xl?r=0:(r=10*(1073741821-Xl)-5e3,0>(r=(a=$a())-r)&&(r=0),(n=10*(1073741821-n)-a)<(r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*Il(r/1960))-r)&&(r=n)),10<r){e.timeoutHandle=ar(Fu.bind(null,e),r);break}Fu(e);break;case Vl:if(1073741823!==Xl&&null!==Zl){o=Xl;var l=Zl;if(0>=(r=0|l.busyMinDurationMs)?r=0:(a=0|l.busyDelayMs,r=(o=$a()-(10*(1073741821-o)-(0|l.timeoutMs||5e3)))<=a?0:a+r-o),10<r){ts(e,n),e.timeoutHandle=ar(Fu.bind(null,e),r);break}}Fu(e);break;default:throw Error(i(329))}if(gu(e),e.callbackNode===t)return wu.bind(null,e)}}return null}function Eu(e){var t=e.lastExpiredTime;if(t=0!==t?t:1073741823,e.finishedExpirationTime===t)Fu(e);else{if((Hl&(Rl|Ul))!==Fl)throw Error(i(327));if(Uu(),e===$l&&t===Kl||Su(e,t),null!==Ql){var n=Hl;Hl|=Rl;for(var r=_u();;)try{Ou();break}catch(t){Tu(e,t)}if(io(),Hl=n,zl.current=r,ql===Al)throw n=Gl,Su(e,t),ts(e,t),gu(e),n;if(null!==Ql)throw Error(i(261));e.finishedWork=e.current.alternate,e.finishedExpirationTime=t,$l=null,Fu(e),gu(e)}}return null}function ku(e,t){var n=Hl;Hl|=1;try{return e(t)}finally{(Hl=n)===Fl&&Ya()}}function xu(e,t){var n=Hl;Hl&=-2,Hl|=Ml;try{return e(t)}finally{(Hl=n)===Fl&&Ya()}}function Su(e,t){e.finishedWork=null,e.finishedExpirationTime=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,or(n)),null!==Ql)for(n=Ql.return;null!==n;){var r=n;switch(r.tag){case 1:var a=r.type.childContextTypes;null!=a&&Ea();break;case 3:$o(),ka();break;case 5:Ko(r);break;case 4:$o();break;case 13:case 19:da(qo);break;case 10:uo(r)}n=n.return}$l=e,Ql=qu(e.current,null),Kl=t,ql=Dl,Gl=null,Yl=Xl=1073741823,Zl=null,Jl=0,eu=!1}function Tu(e,t){for(;;){try{if(io(),mi(),null===Ql||null===Ql.return)return ql=Al,Gl=t,null;e:{var n=e,r=Ql.return,a=Ql,o=t;if(t=Kl,a.effectTag|=2048,a.firstEffect=a.lastEffect=null,null!==o&&"object"==typeof o&&"function"==typeof o.then){var i=o,l=0!=(1&qo.current),u=r;do{var s;if(s=13===u.tag){var c=u.memoizedState;if(null!==c)s=null!==c.dehydrated;else{var f=u.memoizedProps;s=void 0!==f.fallback&&(!0!==f.unstable_avoidThisFallback||!l)}}if(s){var p=u.updateQueue;if(null===p){var d=new Set;d.add(i),u.updateQueue=d}else p.add(i);if(0==(2&u.mode)){if(u.effectTag|=64,a.effectTag&=-2981,1===a.tag)if(null===a.alternate)a.tag=17;else{var h=yo(1073741823,null);h.tag=2,vo(a,h)}a.expirationTime=1073741823;break e}o=void 0,a=t;var m=n.pingCache;if(null===m?(m=n.pingCache=new Cl,o=new Set,m.set(i,o)):void 0===(o=m.get(i))&&(o=new Set,m.set(i,o)),!o.has(a)){o.add(a);var y=Bu.bind(null,n,i,a);i.then(y,y)}u.effectTag|=4096,u.expirationTime=t;break e}u=u.return}while(null!==u);o=Error((Y(a.type)||"A React component")+" suspended while rendering, but no fallback UI was specified.\n\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display."+Z(a))}ql!==Vl&&(ql=Ll),o=hl(o,a),u=r;do{switch(u.tag){case 3:i=o,u.effectTag|=4096,u.expirationTime=t,go(u,Pl(u,i,t));break e;case 1:i=o;var b=u.type,v=u.stateNode;if(0==(64&u.effectTag)&&("function"==typeof b.getDerivedStateFromError||null!==v&&"function"==typeof v.componentDidCatch&&(null===iu||!iu.has(v)))){u.effectTag|=4096,u.expirationTime=t,go(u,Ol(u,i,t));break e}}u=u.return}while(null!==u)}Ql=zu(Ql)}catch(e){t=e;continue}break}}function _u(){var e=zl.current;return zl.current=zi,null===e?zi:e}function Cu(e,t){e<Xl&&2<e&&(Xl=e),null!==t&&e<Yl&&2<e&&(Yl=e,Zl=t)}function Pu(e){e>Jl&&(Jl=e)}function Ou(){for(;null!==Ql;)Ql=Iu(Ql)}function Nu(){for(;null!==Ql&&!Na();)Ql=Iu(Ql)}function Iu(e){var t=Nl(e.alternate,e,Kl);return e.memoizedProps=e.pendingProps,null===t&&(t=zu(e)),jl.current=null,t}function zu(e){Ql=e;do{var t=Ql.alternate;if(e=Ql.return,0==(2048&Ql.effectTag)){e:{var n=t,r=Kl,o=(t=Ql).pendingProps;switch(t.tag){case 2:case 16:break;case 15:case 0:break;case 1:wa(t.type)&&Ea();break;case 3:$o(),ka(),(o=t.stateNode).pendingContext&&(o.context=o.pendingContext,o.pendingContext=null),(null===n||null===n.child)&&Wi(t)&&fl(t),nl(t);break;case 5:Ko(t),r=Vo(Wo.current);var l=t.type;if(null!==n&&null!=t.stateNode)rl(n,t,l,o,r),n.ref!==t.ref&&(t.effectTag|=128);else if(o){var u=Vo(Lo.current);if(Wi(t)){var s=(o=t).stateNode;n=o.type;var c=o.memoizedProps,f=r;switch(s[sr]=o,s[cr]=c,l=void 0,r=s,n){case"iframe":case"object":case"embed":Tn("load",r);break;case"video":case"audio":for(s=0;s<Je.length;s++)Tn(Je[s],r);break;case"source":Tn("error",r);break;case"img":case"image":case"link":Tn("error",r),Tn("load",r);break;case"form":Tn("reset",r),Tn("submit",r);break;case"details":Tn("toggle",r);break;case"input":Ce(r,c),Tn("invalid",r),Vn(f,"onChange");break;case"select":r._wrapperState={wasMultiple:!!c.multiple},Tn("invalid",r),Vn(f,"onChange");break;case"textarea":Me(r,c),Tn("invalid",r),Vn(f,"onChange")}for(l in Bn(n,c),s=null,c)c.hasOwnProperty(l)&&(u=c[l],"children"===l?"string"==typeof u?r.textContent!==u&&(s=["children",u]):"number"==typeof u&&r.textContent!==""+u&&(s=["children",""+u]):d.hasOwnProperty(l)&&null!=u&&Vn(f,l));switch(n){case"input":Se(r),Ne(r,c,!0);break;case"textarea":Se(r),Ue(r);break;case"select":case"option":break;default:"function"==typeof c.onClick&&(r.onclick=Hn)}l=s,o.updateQueue=l,(o=null!==l)&&fl(t)}else{n=t,f=l,c=o,s=9===r.nodeType?r:r.ownerDocument,u===De.html&&(u=Ae(f)),u===De.html?"script"===f?((c=s.createElement("div")).innerHTML="<script><\/script>",s=c.removeChild(c.firstChild)):"string"==typeof c.is?s=s.createElement(f,{is:c.is}):(s=s.createElement(f),"select"===f&&(f=s,c.multiple?f.multiple=!0:c.size&&(f.size=c.size))):s=s.createElementNS(u,f),(c=s)[sr]=n,c[cr]=o,tl(c,t,!1,!1),t.stateNode=c;var p=r,h=Wn(f=l,n=o);switch(f){case"iframe":case"object":case"embed":Tn("load",c),r=n;break;case"video":case"audio":for(r=0;r<Je.length;r++)Tn(Je[r],c);r=n;break;case"source":Tn("error",c),r=n;break;case"img":case"image":case"link":Tn("error",c),Tn("load",c),r=n;break;case"form":Tn("reset",c),Tn("submit",c),r=n;break;case"details":Tn("toggle",c),r=n;break;case"input":Ce(c,n),r=_e(c,n),Tn("invalid",c),Vn(p,"onChange");break;case"option":r=ze(c,n);break;case"select":c._wrapperState={wasMultiple:!!n.multiple},r=a({},n,{value:void 0}),Tn("invalid",c),Vn(p,"onChange");break;case"textarea":Me(c,n),r=Fe(c,n),Tn("invalid",c),Vn(p,"onChange");break;default:r=n}Bn(f,r),s=void 0,u=f;var m=c,y=r;for(s in y)if(y.hasOwnProperty(s)){var b=y[s];"style"===s?An(m,b):"dangerouslySetInnerHTML"===s?null!=(b=b?b.__html:void 0)&&We(m,b):"children"===s?"string"==typeof b?("textarea"!==u||""!==b)&&Ve(m,b):"number"==typeof b&&Ve(m,""+b):"suppressContentEditableWarning"!==s&&"suppressHydrationWarning"!==s&&"autoFocus"!==s&&(d.hasOwnProperty(s)?null!=b&&Vn(p,s):null!=b&&ke(m,s,b,h))}switch(f){case"input":Se(c),Ne(c,n,!1);break;case"textarea":Se(c),Ue(c);break;case"option":null!=n.value&&c.setAttribute("value",""+Ee(n.value));break;case"select":(r=c).multiple=!!n.multiple,null!=(c=n.value)?je(r,!!n.multiple,c,!1):null!=n.defaultValue&&je(r,!!n.multiple,n.defaultValue,!0);break;default:"function"==typeof r.onClick&&(c.onclick=Hn)}(o=nr(l,o))&&fl(t)}null!==t.ref&&(t.effectTag|=128)}else if(null===t.stateNode)throw Error(i(166));break;case 6:if(n&&null!=t.stateNode)al(n,t,n.memoizedProps,o);else{if("string"!=typeof o&&null===t.stateNode)throw Error(i(166));r=Vo(Wo.current),Vo(Lo.current),Wi(t)?(l=(o=t).stateNode,r=o.memoizedProps,l[sr]=o,(o=l.nodeValue!==r)&&fl(t)):(l=t,(o=(9===r.nodeType?r:r.ownerDocument).createTextNode(o))[sr]=l,t.stateNode=o)}break;case 11:break;case 13:if(da(qo),o=t.memoizedState,0!=(64&t.effectTag)){t.expirationTime=r;break e}o=null!==o,l=!1,null===n?void 0!==t.memoizedProps.fallback&&Wi(t):(l=null!==(r=n.memoizedState),o||null===r||null!==(r=n.child.sibling)&&(null!==(c=t.firstEffect)?(t.firstEffect=r,r.nextEffect=c):(t.firstEffect=t.lastEffect=r,r.nextEffect=null),r.effectTag=8)),o&&!l&&0!=(2&t.mode)&&(null===n&&!0!==t.memoizedProps.unstable_avoidThisFallback||0!=(1&qo.current)?ql===Dl&&(ql=Bl):(ql!==Dl&&ql!==Bl||(ql=Wl),0!==Jl&&null!==$l&&(ts($l,Kl),ns($l,Jl)))),(o||l)&&(t.effectTag|=4);break;case 7:case 8:case 12:break;case 4:$o(),nl(t);break;case 10:uo(t);break;case 9:case 14:break;case 17:wa(t.type)&&Ea();break;case 19:if(da(qo),null===(o=t.memoizedState))break;if(l=0!=(64&t.effectTag),null===(c=o.rendering)){if(l)pl(o,!1);else if(ql!==Dl||null!==n&&0!=(64&n.effectTag))for(n=t.child;null!==n;){if(null!==(c=Go(n))){for(t.effectTag|=64,pl(o,!1),null!==(l=c.updateQueue)&&(t.updateQueue=l,t.effectTag|=4),null===o.lastEffect&&(t.firstEffect=null),t.lastEffect=o.lastEffect,o=r,l=t.child;null!==l;)n=o,(r=l).effectTag&=2,r.nextEffect=null,r.firstEffect=null,r.lastEffect=null,null===(c=r.alternate)?(r.childExpirationTime=0,r.expirationTime=n,r.child=null,r.memoizedProps=null,r.memoizedState=null,r.updateQueue=null,r.dependencies=null):(r.childExpirationTime=c.childExpirationTime,r.expirationTime=c.expirationTime,r.child=c.child,r.memoizedProps=c.memoizedProps,r.memoizedState=c.memoizedState,r.updateQueue=c.updateQueue,n=c.dependencies,r.dependencies=null===n?null:{expirationTime:n.expirationTime,firstContext:n.firstContext,responders:n.responders}),l=l.sibling;ha(qo,1&qo.current|2),t=t.child;break e}n=n.sibling}}else{if(!l)if(null!==(n=Go(c))){if(t.effectTag|=64,l=!0,null!==(r=n.updateQueue)&&(t.updateQueue=r,t.effectTag|=4),pl(o,!0),null===o.tail&&"hidden"===o.tailMode&&!c.alternate){null!==(t=t.lastEffect=o.lastEffect)&&(t.nextEffect=null);break}}else $a()>o.tailExpiration&&1<r&&(t.effectTag|=64,l=!0,pl(o,!1),t.expirationTime=t.childExpirationTime=r-1);o.isBackwards?(c.sibling=t.child,t.child=c):(null!==(r=o.last)?r.sibling=c:t.child=c,o.last=c)}if(null!==o.tail){0===o.tailExpiration&&(o.tailExpiration=$a()+500),r=o.tail,o.rendering=r,o.tail=r.sibling,o.lastEffect=t.lastEffect,r.sibling=null,o=qo.current,ha(qo,o=l?1&o|2:1&o),t=r;break e}break;case 20:case 21:break;default:throw Error(i(156,t.tag))}t=null}if(o=Ql,1===Kl||1!==o.childExpirationTime){for(l=0,r=o.child;null!==r;)(n=r.expirationTime)>l&&(l=n),(c=r.childExpirationTime)>l&&(l=c),r=r.sibling;o.childExpirationTime=l}if(null!==t)return t;null!==e&&0==(2048&e.effectTag)&&(null===e.firstEffect&&(e.firstEffect=Ql.firstEffect),null!==Ql.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=Ql.firstEffect),e.lastEffect=Ql.lastEffect),1<Ql.effectTag&&(null!==e.lastEffect?e.lastEffect.nextEffect=Ql:e.firstEffect=Ql,e.lastEffect=Ql))}else{if(null!==(t=dl(Ql)))return t.effectTag&=2047,t;null!==e&&(e.firstEffect=e.lastEffect=null,e.effectTag|=2048)}if(null!==(t=Ql.sibling))return t;Ql=e}while(null!==Ql);return ql===Dl&&(ql=Vl),null}function ju(e){var t=e.expirationTime;return t>(e=e.childExpirationTime)?t:e}function Fu(e){var t=Qa();return qa(99,Mu.bind(null,e,t)),null}function Mu(e,t){do{Uu()}while(null!==uu);if((Hl&(Rl|Ul))!==Fl)throw Error(i(327));var n=e.finishedWork,r=e.finishedExpirationTime;if(null===n)return null;if(e.finishedWork=null,e.finishedExpirationTime=0,n===e.current)throw Error(i(177));e.callbackNode=null,e.callbackExpirationTime=0,e.callbackPriority=90,e.nextKnownPendingLevel=0;var a=ju(n);if(e.firstPendingTime=a,r<=e.lastSuspendedTime?e.firstSuspendedTime=e.lastSuspendedTime=e.nextKnownPendingLevel=0:r<=e.firstSuspendedTime&&(e.firstSuspendedTime=r-1),r<=e.lastPingedTime&&(e.lastPingedTime=0),r<=e.lastExpiredTime&&(e.lastExpiredTime=0),e===$l&&(Ql=$l=null,Kl=0),1<n.effectTag?null!==n.lastEffect?(n.lastEffect.nextEffect=n,a=n.firstEffect):a=n:a=n.firstEffect,null!==a){var o=Hl;Hl|=Ul,jl.current=null,er=Sn;var l=qn();if(Gn(l)){if("selectionStart"in l)var u={start:l.selectionStart,end:l.selectionEnd};else e:{var s=(u=(u=l.ownerDocument)&&u.defaultView||window).getSelection&&u.getSelection();if(s&&0!==s.rangeCount){u=s.anchorNode;var c=s.anchorOffset,f=s.focusNode;s=s.focusOffset;try{u.nodeType,f.nodeType}catch(e){u=null;break e}var p=0,d=-1,h=-1,m=0,y=0,b=l,v=null;t:for(;;){for(var g;b!==u||0!==c&&3!==b.nodeType||(d=p+c),b!==f||0!==s&&3!==b.nodeType||(h=p+s),3===b.nodeType&&(p+=b.nodeValue.length),null!==(g=b.firstChild);)v=b,b=g;for(;;){if(b===l)break t;if(v===u&&++m===c&&(d=p),v===f&&++y===s&&(h=p),null!==(g=b.nextSibling))break;v=(b=v).parentNode}b=g}u=-1===d||-1===h?null:{start:d,end:h}}else u=null}u=u||{start:0,end:0}}else u=null;tr={focusedElem:l,selectionRange:u},Sn=!1,ru=a;do{try{Ru()}catch(e){if(null===ru)throw Error(i(330));Lu(ru,e),ru=ru.nextEffect}}while(null!==ru);ru=a;do{try{for(l=e,u=t;null!==ru;){var w=ru.effectTag;if(16&w&&Ve(ru.stateNode,""),128&w){var E=ru.alternate;if(null!==E){var k=E.ref;null!==k&&("function"==typeof k?k(null):k.current=null)}}switch(1038&w){case 2:xl(ru),ru.effectTag&=-3;break;case 6:xl(ru),ru.effectTag&=-3,Tl(ru.alternate,ru);break;case 1024:ru.effectTag&=-1025;break;case 1028:ru.effectTag&=-1025,Tl(ru.alternate,ru);break;case 4:Tl(ru.alternate,ru);break;case 8:Sl(l,c=ru,u),El(c)}ru=ru.nextEffect}}catch(e){if(null===ru)throw Error(i(330));Lu(ru,e),ru=ru.nextEffect}}while(null!==ru);if(k=tr,E=qn(),w=k.focusedElem,u=k.selectionRange,E!==w&&w&&w.ownerDocument&&function e(t,n){return!(!t||!n)&&(t===n||(!t||3!==t.nodeType)&&(n&&3===n.nodeType?e(t,n.parentNode):"contains"in t?t.contains(n):!!t.compareDocumentPosition&&!!(16&t.compareDocumentPosition(n))))}(w.ownerDocument.documentElement,w)){null!==u&&Gn(w)&&(E=u.start,void 0===(k=u.end)&&(k=E),"selectionStart"in w?(w.selectionStart=E,w.selectionEnd=Math.min(k,w.value.length)):(k=(E=w.ownerDocument||document)&&E.defaultView||window).getSelection&&(k=k.getSelection(),c=w.textContent.length,l=Math.min(u.start,c),u=void 0===u.end?l:Math.min(u.end,c),!k.extend&&l>u&&(c=u,u=l,l=c),c=Kn(w,l),f=Kn(w,u),c&&f&&(1!==k.rangeCount||k.anchorNode!==c.node||k.anchorOffset!==c.offset||k.focusNode!==f.node||k.focusOffset!==f.offset)&&((E=E.createRange()).setStart(c.node,c.offset),k.removeAllRanges(),l>u?(k.addRange(E),k.extend(f.node,f.offset)):(E.setEnd(f.node,f.offset),k.addRange(E))))),E=[];for(k=w;k=k.parentNode;)1===k.nodeType&&E.push({element:k,left:k.scrollLeft,top:k.scrollTop});for("function"==typeof w.focus&&w.focus(),w=0;w<E.length;w++)(k=E[w]).element.scrollLeft=k.left,k.element.scrollTop=k.top}tr=null,Sn=!!er,er=null,e.current=n,ru=a;do{try{for(w=r;null!==ru;){var x=ru.effectTag;if(36&x){var S=ru.alternate;switch(k=w,(E=ru).tag){case 0:case 11:case 15:gl(16,32,E);break;case 1:var T=E.stateNode;if(4&E.effectTag)if(null===S)T.componentDidMount();else{var _=E.elementType===E.type?S.memoizedProps:to(E.type,S.memoizedProps);T.componentDidUpdate(_,S.memoizedState,T.__reactInternalSnapshotBeforeUpdate)}var C=E.updateQueue;null!==C&&xo(0,C,T);break;case 3:var P=E.updateQueue;if(null!==P){if(l=null,null!==E.child)switch(E.child.tag){case 5:l=E.child.stateNode;break;case 1:l=E.child.stateNode}xo(0,P,l)}break;case 5:var O=E.stateNode;null===S&&4&E.effectTag&&nr(E.type,E.memoizedProps)&&O.focus();break;case 6:case 4:case 12:break;case 13:if(null===E.memoizedState){var N=E.alternate;if(null!==N){var I=N.memoizedState;if(null!==I){var z=I.dehydrated;null!==z&&Tt(z)}}}break;case 19:case 17:case 20:case 21:break;default:throw Error(i(163))}}if(128&x){E=void 0;var j=ru.ref;if(null!==j){var F=ru.stateNode;switch(ru.tag){case 5:E=F;break;default:E=F}"function"==typeof j?j(E):j.current=E}}ru=ru.nextEffect}}catch(e){if(null===ru)throw Error(i(330));Lu(ru,e),ru=ru.nextEffect}}while(null!==ru);ru=null,La(),Hl=o}else e.current=n;if(lu)lu=!1,uu=e,su=t;else for(ru=a;null!==ru;)t=ru.nextEffect,ru.nextEffect=null,ru=t;if(0===(t=e.firstPendingTime)&&(iu=null),1073741823===t?e===pu?fu++:(fu=0,pu=e):fu=0,"function"==typeof Vu&&Vu(n.stateNode,r),gu(e),au)throw au=!1,e=ou,ou=null,e;return(Hl&Ml)!==Fl?null:(Ya(),null)}function Ru(){for(;null!==ru;){var e=ru.effectTag;0!=(256&e)&&vl(ru.alternate,ru),0==(512&e)||lu||(lu=!0,Ga(97,(function(){return Uu(),null}))),ru=ru.nextEffect}}function Uu(){if(90!==su){var e=97<su?97:su;return su=90,qa(e,Du)}}function Du(){if(null===uu)return!1;var e=uu;if(uu=null,(Hl&(Rl|Ul))!==Fl)throw Error(i(331));var t=Hl;for(Hl|=Ul,e=e.current.firstEffect;null!==e;){try{var n=e;if(0!=(512&n.effectTag))switch(n.tag){case 0:case 11:case 15:gl(128,0,n),gl(0,64,n)}}catch(t){if(null===e)throw Error(i(330));Lu(e,t)}n=e.nextEffect,e.nextEffect=null,e=n}return Hl=t,Ya(),!0}function Au(e,t,n){vo(e,t=Pl(e,t=hl(n,t),1073741823)),null!==(e=bu(e,1073741823))&&gu(e)}function Lu(e,t){if(3===e.tag)Au(e,e,t);else for(var n=e.return;null!==n;){if(3===n.tag){Au(n,e,t);break}if(1===n.tag){var r=n.stateNode;if("function"==typeof n.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===iu||!iu.has(r))){vo(n,e=Ol(n,e=hl(t,e),1073741823)),null!==(n=bu(n,1073741823))&&gu(n);break}}n=n.return}}function Bu(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),$l===e&&Kl===n?ql===Wl||ql===Bl&&1073741823===Xl&&$a()-tu<nu?Su(e,Kl):eu=!0:es(e,n)&&(0!==(t=e.lastPingedTime)&&t<n||(e.lastPingedTime=n,e.finishedExpirationTime===n&&(e.finishedExpirationTime=0,e.finishedWork=null),gu(e)))}function Wu(e,t){var n=e.stateNode;null!==n&&n.delete(t),0===(t=0)&&(t=mu(t=hu(),e,null)),null!==(e=bu(e,t))&&gu(e)}Nl=function(e,t,n){var r=t.expirationTime;if(null!==e){var a=t.pendingProps;if(e.memoizedProps!==a||ba.current)$i=!0;else{if(r<n){switch($i=!1,t.tag){case 3:el(t),Vi();break;case 5:if(Qo(t),4&t.mode&&1!==n&&a.hidden)return t.expirationTime=t.childExpirationTime=1,null;break;case 1:wa(t.type)&&Ta(t);break;case 4:Ho(t,t.stateNode.containerInfo);break;case 10:lo(t,t.memoizedProps.value);break;case 13:if(null!==t.memoizedState)return 0!==(r=t.child.childExpirationTime)&&r>=n?il(e,t,n):(ha(qo,1&qo.current),null!==(t=cl(e,t,n))?t.sibling:null);ha(qo,1&qo.current);break;case 19:if(r=t.childExpirationTime>=n,0!=(64&e.effectTag)){if(r)return sl(e,t,n);t.effectTag|=64}if(null!==(a=t.memoizedState)&&(a.rendering=null,a.tail=null),ha(qo,qo.current),!r)return null}return cl(e,t,n)}$i=!1}}else $i=!1;switch(t.expirationTime=0,t.tag){case 2:if(r=t.type,null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),e=t.pendingProps,a=ga(t,ya.current),co(t,n),a=hi(null,t,r,e,a,n),t.effectTag|=1,"object"==typeof a&&null!==a&&"function"==typeof a.render&&void 0===a.$$typeof){if(t.tag=1,mi(),wa(r)){var o=!0;Ta(t)}else o=!1;t.memoizedState=null!==a.state&&void 0!==a.state?a.state:null;var l=r.getDerivedStateFromProps;"function"==typeof l&&Co(t,r,l,e),a.updater=Po,t.stateNode=a,a._reactInternalFiber=t,zo(t,r,e,n),t=Ji(null,t,r,!0,o,n)}else t.tag=0,Qi(null,t,a,n),t=t.child;return t;case 16:if(a=t.elementType,null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),e=t.pendingProps,function(e){if(-1===e._status){e._status=0;var t=e._ctor;t=t(),e._result=t,t.then((function(t){0===e._status&&(t=t.default,e._status=1,e._result=t)}),(function(t){0===e._status&&(e._status=2,e._result=t)}))}}(a),1!==a._status)throw a._result;switch(a=a._result,t.type=a,o=t.tag=function(e){if("function"==typeof e)return Ku(e)?1:0;if(null!=e){if((e=e.$$typeof)===H)return 11;if(e===K)return 14}return 2}(a),e=to(a,e),o){case 0:t=Yi(null,t,a,e,n);break;case 1:t=Zi(null,t,a,e,n);break;case 11:t=Ki(null,t,a,e,n);break;case 14:t=qi(null,t,a,to(a.type,e),r,n);break;default:throw Error(i(306,a,""))}return t;case 0:return r=t.type,a=t.pendingProps,Yi(e,t,r,a=t.elementType===r?a:to(r,a),n);case 1:return r=t.type,a=t.pendingProps,Zi(e,t,r,a=t.elementType===r?a:to(r,a),n);case 3:if(el(t),null===(r=t.updateQueue))throw Error(i(282));if(a=null!==(a=t.memoizedState)?a.element:null,ko(t,r,t.pendingProps,null,n),(r=t.memoizedState.element)===a)Vi(),t=cl(e,t,n);else{if((a=t.stateNode.hydrate)&&(Ri=ir(t.stateNode.containerInfo.firstChild),Mi=t,a=Ui=!0),a)for(n=Do(t,null,r,n),t.child=n;n;)n.effectTag=-3&n.effectTag|1024,n=n.sibling;else Qi(e,t,r,n),Vi();t=t.child}return t;case 5:return Qo(t),null===e&&Li(t),r=t.type,a=t.pendingProps,o=null!==e?e.memoizedProps:null,l=a.children,rr(r,a)?l=null:null!==o&&rr(r,o)&&(t.effectTag|=16),Xi(e,t),4&t.mode&&1!==n&&a.hidden?(t.expirationTime=t.childExpirationTime=1,t=null):(Qi(e,t,l,n),t=t.child),t;case 6:return null===e&&Li(t),null;case 13:return il(e,t,n);case 4:return Ho(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=Uo(t,null,r,n):Qi(e,t,r,n),t.child;case 11:return r=t.type,a=t.pendingProps,Ki(e,t,r,a=t.elementType===r?a:to(r,a),n);case 7:return Qi(e,t,t.pendingProps,n),t.child;case 8:case 12:return Qi(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,a=t.pendingProps,l=t.memoizedProps,lo(t,o=a.value),null!==l){var u=l.value;if(0===(o=ea(u,o)?0:0|("function"==typeof r._calculateChangedBits?r._calculateChangedBits(u,o):1073741823))){if(l.children===a.children&&!ba.current){t=cl(e,t,n);break e}}else for(null!==(u=t.child)&&(u.return=t);null!==u;){var s=u.dependencies;if(null!==s){l=u.child;for(var c=s.firstContext;null!==c;){if(c.context===r&&0!=(c.observedBits&o)){1===u.tag&&((c=yo(n,null)).tag=2,vo(u,c)),u.expirationTime<n&&(u.expirationTime=n),null!==(c=u.alternate)&&c.expirationTime<n&&(c.expirationTime=n),so(u.return,n),s.expirationTime<n&&(s.expirationTime=n);break}c=c.next}}else l=10===u.tag&&u.type===t.type?null:u.child;if(null!==l)l.return=u;else for(l=u;null!==l;){if(l===t){l=null;break}if(null!==(u=l.sibling)){u.return=l.return,l=u;break}l=l.return}u=l}}Qi(e,t,a.children,n),t=t.child}return t;case 9:return a=t.type,r=(o=t.pendingProps).children,co(t,n),r=r(a=fo(a,o.unstable_observedBits)),t.effectTag|=1,Qi(e,t,r,n),t.child;case 14:return o=to(a=t.type,t.pendingProps),qi(e,t,a,o=to(a.type,o),r,n);case 15:return Gi(e,t,t.type,t.pendingProps,r,n);case 17:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:to(r,a),null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),t.tag=1,wa(r)?(e=!0,Ta(t)):e=!1,co(t,n),No(t,r,a),zo(t,r,a,n),Ji(null,t,r,!0,e,n);case 19:return sl(e,t,n)}throw Error(i(156,t.tag))};var Vu=null,Hu=null;function $u(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.effectTag=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childExpirationTime=this.expirationTime=0,this.alternate=null}function Qu(e,t,n,r){return new $u(e,t,n,r)}function Ku(e){return!(!(e=e.prototype)||!e.isReactComponent)}function qu(e,t){var n=e.alternate;return null===n?((n=Qu(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.effectTag=0,n.nextEffect=null,n.firstEffect=null,n.lastEffect=null),n.childExpirationTime=e.childExpirationTime,n.expirationTime=e.expirationTime,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{expirationTime:t.expirationTime,firstContext:t.firstContext,responders:t.responders},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Gu(e,t,n,r,a,o){var l=2;if(r=e,"function"==typeof e)Ku(e)&&(l=1);else if("string"==typeof e)l=5;else e:switch(e){case D:return Xu(n.children,a,o,t);case V:l=8,a|=7;break;case A:l=8,a|=1;break;case L:return(e=Qu(12,n,t,8|a)).elementType=L,e.type=L,e.expirationTime=o,e;case $:return(e=Qu(13,n,t,a)).type=$,e.elementType=$,e.expirationTime=o,e;case Q:return(e=Qu(19,n,t,a)).elementType=Q,e.expirationTime=o,e;default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case B:l=10;break e;case W:l=9;break e;case H:l=11;break e;case K:l=14;break e;case q:l=16,r=null;break e}throw Error(i(130,null==e?e:typeof e,""))}return(t=Qu(l,n,t,a)).elementType=e,t.type=r,t.expirationTime=o,t}function Xu(e,t,n,r){return(e=Qu(7,e,r,t)).expirationTime=n,e}function Yu(e,t,n){return(e=Qu(6,e,null,t)).expirationTime=n,e}function Zu(e,t,n){return(t=Qu(4,null!==e.children?e.children:[],e.key,t)).expirationTime=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Ju(e,t,n){this.tag=t,this.current=null,this.containerInfo=e,this.pingCache=this.pendingChildren=null,this.finishedExpirationTime=0,this.finishedWork=null,this.timeoutHandle=-1,this.pendingContext=this.context=null,this.hydrate=n,this.callbackNode=null,this.callbackPriority=90,this.lastExpiredTime=this.lastPingedTime=this.nextKnownPendingLevel=this.lastSuspendedTime=this.firstSuspendedTime=this.firstPendingTime=0}function es(e,t){var n=e.firstSuspendedTime;return e=e.lastSuspendedTime,0!==n&&n>=t&&e<=t}function ts(e,t){var n=e.firstSuspendedTime,r=e.lastSuspendedTime;n<t&&(e.firstSuspendedTime=t),(r>t||0===n)&&(e.lastSuspendedTime=t),t<=e.lastPingedTime&&(e.lastPingedTime=0),t<=e.lastExpiredTime&&(e.lastExpiredTime=0)}function ns(e,t){t>e.firstPendingTime&&(e.firstPendingTime=t);var n=e.firstSuspendedTime;0!==n&&(t>=n?e.firstSuspendedTime=e.lastSuspendedTime=e.nextKnownPendingLevel=0:t>=e.lastSuspendedTime&&(e.lastSuspendedTime=t+1),t>e.nextKnownPendingLevel&&(e.nextKnownPendingLevel=t))}function rs(e,t){var n=e.lastExpiredTime;(0===n||n>t)&&(e.lastExpiredTime=t)}function as(e,t,n,r){var a=t.current,o=hu(),l=To.suspense;o=mu(o,a,l);e:if(n){t:{if(et(n=n._reactInternalFiber)!==n||1!==n.tag)throw Error(i(170));var u=n;do{switch(u.tag){case 3:u=u.stateNode.context;break t;case 1:if(wa(u.type)){u=u.stateNode.__reactInternalMemoizedMergedChildContext;break t}}u=u.return}while(null!==u);throw Error(i(171))}if(1===n.tag){var s=n.type;if(wa(s)){n=Sa(n,s,u);break e}}n=u}else n=ma;return null===t.context?t.context=n:t.pendingContext=n,(t=yo(o,l)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),vo(a,t),yu(a,o),o}function os(e){if(!(e=e.current).child)return null;switch(e.child.tag){case 5:default:return e.child.stateNode}}function is(e,t){null!==(e=e.memoizedState)&&null!==e.dehydrated&&e.retryTime<t&&(e.retryTime=t)}function ls(e,t){is(e,t),(e=e.alternate)&&is(e,t)}function us(e,t,n){var r=new Ju(e,t,n=null!=n&&!0===n.hydrate),a=Qu(3,null,null,2===t?7:1===t?3:0);r.current=a,a.stateNode=r,e[fr]=r.current,n&&0!==t&&function(e){var t=Fn(e);mt.forEach((function(n){Mn(n,e,t)})),yt.forEach((function(n){Mn(n,e,t)}))}(9===e.nodeType?e:e.ownerDocument),this._internalRoot=r}function ss(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function cs(e,t,n,r,a){var o=n._reactRootContainer;if(o){var i=o._internalRoot;if("function"==typeof a){var l=a;a=function(){var e=os(i);l.call(e)}}as(t,i,e,a)}else{if(o=n._reactRootContainer=function(e,t){if(t||(t=!(!(t=e?9===e.nodeType?e.documentElement:e.firstChild:null)||1!==t.nodeType||!t.hasAttribute("data-reactroot"))),!t)for(var n;n=e.lastChild;)e.removeChild(n);return new us(e,0,t?{hydrate:!0}:void 0)}(n,r),i=o._internalRoot,"function"==typeof a){var u=a;a=function(){var e=os(i);u.call(e)}}xu((function(){as(t,i,e,a)}))}return os(i)}function fs(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!ss(t))throw Error(i(200));return function(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:U,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}(e,t,null,n)}us.prototype.render=function(e,t){as(e,this._internalRoot,null,void 0===t?null:t)},us.prototype.unmount=function(e){var t=this._internalRoot,n=void 0===e?null:e,r=t.containerInfo;as(null,t,null,(function(){r[fr]=null,null!==n&&n()}))},at=function(e){if(13===e.tag){var t=eo(hu(),150,100);yu(e,t),ls(e,t)}},ot=function(e){if(13===e.tag){hu();var t=Ja++;yu(e,t),ls(e,t)}},it=function(e){if(13===e.tag){var t=hu();yu(e,t=mu(t,e,null)),ls(e,t)}},ee=function(e,t,n){switch(t){case"input":if(Oe(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var a=mr(r);if(!a)throw Error(i(90));Te(r),Oe(r,a)}}}break;case"textarea":Re(e,n);break;case"select":null!=(t=n.value)&&je(e,!!n.multiple,t,!1)}},ie=ku,le=function(e,t,n,r){var a=Hl;Hl|=4;try{return qa(98,e.bind(null,t,n,r))}finally{(Hl=a)===Fl&&Ya()}},ue=function(){(Hl&(1|Rl|Ul))===Fl&&(function(){if(null!==cu){var e=cu;cu=null,e.forEach((function(e,t){rs(t,e),gu(t)})),Ya()}}(),Uu())},se=function(e,t){var n=Hl;Hl|=2;try{return e(t)}finally{(Hl=n)===Fl&&Ya()}};var ps,ds,hs={createPortal:fs,findDOMNode:function(e){if(null==e)return null;if(1===e.nodeType)return e;var t=e._reactInternalFiber;if(void 0===t){if("function"==typeof e.render)throw Error(i(188));throw Error(i(268,Object.keys(e)))}return e=null===(e=rt(t))?null:e.stateNode},hydrate:function(e,t,n){if(!ss(t))throw Error(i(200));return cs(null,e,t,!0,n)},render:function(e,t,n){if(!ss(t))throw Error(i(200));return cs(null,e,t,!1,n)},unstable_renderSubtreeIntoContainer:function(e,t,n,r){if(!ss(n))throw Error(i(200));if(null==e||void 0===e._reactInternalFiber)throw Error(i(38));return cs(e,t,n,!1,r)},unmountComponentAtNode:function(e){if(!ss(e))throw Error(i(40));return!!e._reactRootContainer&&(xu((function(){cs(null,null,e,!1,(function(){e._reactRootContainer=null,e[fr]=null}))})),!0)},unstable_createPortal:function(){return fs.apply(void 0,arguments)},unstable_batchedUpdates:ku,flushSync:function(e,t){if((Hl&(Rl|Ul))!==Fl)throw Error(i(187));var n=Hl;Hl|=1;try{return qa(99,e.bind(null,t))}finally{Hl=n,Ya()}},__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:{Events:[dr,hr,mr,I.injectEventPluginsByName,p,zt,function(e){C(e,It)},ae,oe,Nn,N,Uu,{current:!1}]}};ds=(ps={findFiberByHostInstance:pr,bundleType:0,version:"16.12.0",rendererPackageName:"react-dom"}).findFiberByHostInstance,function(e){if("undefined"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)return!1;var t=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(t.isDisabled||!t.supportsFiber)return!0;try{var n=t.inject(e);Vu=function(e){try{t.onCommitFiberRoot(n,e,void 0,64==(64&e.current.effectTag))}catch(e){}},Hu=function(e){try{t.onCommitFiberUnmount(n,e)}catch(e){}}}catch(e){}}(a({},ps,{overrideHookState:null,overrideProps:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:j.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=rt(e))?null:e.stateNode},findFiberByHostInstance:function(e){return ds?ds(e):null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null}));var ms={default:hs},ys=ms&&hs||ms;e.exports=ys.default||ys},function(e,t,n){"use strict";e.exports=n(10)},function(e,t,n){"use strict";
28
- /** @license React v0.18.0
1
+ !function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=16)}([function(e,t,n){"use strict";e.exports=n(7)},function(e,t,n){var r;
2
  /*!
3
  Copyright (c) 2017 Jed Watson.
4
  Licensed under the MIT License (MIT), see
5
  http://jedwatson.github.io/classnames
6
+ */!function(){"use strict";var n={}.hasOwnProperty;function o(){for(var e=[],t=0;t<arguments.length;t++){var r=arguments[t];if(r){var i=typeof r;if("string"===i||"number"===i)e.push(r);else if(Array.isArray(r)&&r.length){var a=o.apply(null,r);a&&e.push(a)}else if("object"===i)for(var l in r)n.call(r,l)&&r[l]&&e.push(l)}}return e.join(" ")}e.exports?(o.default=o,e.exports=o):void 0===(r=function(){return o}.apply(t,[]))||(e.exports=r)}()},function(e,t,n){e.exports=n(11)()},function(e,t,n){var r;!function(){"use strict";var o={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[+-]/};function i(e){return l(s(e),arguments)}function a(e,t){return i.apply(null,[e].concat(t||[]))}function l(e,t){var n,r,a,l,u,s,c,f,p,d=1,h=e.length,m="";for(r=0;r<h;r++)if("string"==typeof e[r])m+=e[r];else if("object"==typeof e[r]){if((l=e[r]).keys)for(n=t[d],a=0;a<l.keys.length;a++){if(null==n)throw new Error(i('[sprintf] Cannot access property "%s" of undefined value "%s"',l.keys[a],l.keys[a-1]));n=n[l.keys[a]]}else n=l.param_no?t[l.param_no]:t[d++];if(o.not_type.test(l.type)&&o.not_primitive.test(l.type)&&n instanceof Function&&(n=n()),o.numeric_arg.test(l.type)&&"number"!=typeof n&&isNaN(n))throw new TypeError(i("[sprintf] expecting number but found %T",n));switch(o.number.test(l.type)&&(f=n>=0),l.type){case"b":n=parseInt(n,10).toString(2);break;case"c":n=String.fromCharCode(parseInt(n,10));break;case"d":case"i":n=parseInt(n,10);break;case"j":n=JSON.stringify(n,null,l.width?parseInt(l.width):0);break;case"e":n=l.precision?parseFloat(n).toExponential(l.precision):parseFloat(n).toExponential();break;case"f":n=l.precision?parseFloat(n).toFixed(l.precision):parseFloat(n);break;case"g":n=l.precision?String(Number(n.toPrecision(l.precision))):parseFloat(n);break;case"o":n=(parseInt(n,10)>>>0).toString(8);break;case"s":n=String(n),n=l.precision?n.substring(0,l.precision):n;break;case"t":n=String(!!n),n=l.precision?n.substring(0,l.precision):n;break;case"T":n=Object.prototype.toString.call(n).slice(8,-1).toLowerCase(),n=l.precision?n.substring(0,l.precision):n;break;case"u":n=parseInt(n,10)>>>0;break;case"v":n=n.valueOf(),n=l.precision?n.substring(0,l.precision):n;break;case"x":n=(parseInt(n,10)>>>0).toString(16);break;case"X":n=(parseInt(n,10)>>>0).toString(16).toUpperCase()}o.json.test(l.type)?m+=n:(!o.number.test(l.type)||f&&!l.sign?p="":(p=f?"+":"-",n=n.toString().replace(o.sign,"")),s=l.pad_char?"0"===l.pad_char?"0":l.pad_char.charAt(1):" ",c=l.width-(p+n).length,u=l.width&&c>0?s.repeat(c):"",m+=l.align?p+n+u:"0"===s?p+u+n:u+p+n)}return m}var u=Object.create(null);function s(e){if(u[e])return u[e];for(var t,n=e,r=[],i=0;n;){if(null!==(t=o.text.exec(n)))r.push(t[0]);else if(null!==(t=o.modulo.exec(n)))r.push("%");else{if(null===(t=o.placeholder.exec(n)))throw new SyntaxError("[sprintf] unexpected placeholder");if(t[2]){i|=1;var a=[],l=t[2],s=[];if(null===(s=o.key.exec(l)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(a.push(s[1]);""!==(l=l.substring(s[0].length));)if(null!==(s=o.key_access.exec(l)))a.push(s[1]);else{if(null===(s=o.index_access.exec(l)))throw new SyntaxError("[sprintf] failed to parse named argument key");a.push(s[1])}t[2]=a}else i|=2;if(3===i)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");r.push({placeholder:t[0],param_no:t[1],keys:t[2],sign:t[3],pad_char:t[4],align:t[5],width:t[6],precision:t[7],type:t[8]})}n=n.substring(t[0].length)}return u[e]=r}t.sprintf=i,t.vsprintf=a,"undefined"!=typeof window&&(window.sprintf=i,window.vsprintf=a,void 0===(r=function(){return{sprintf:i,vsprintf:a}}.call(t,n,t,e))||(e.exports=r))}()},function(e,t,n){"use strict";
7
  /*
8
  object-assign
9
  (c) Sindre Sorhus
10
  @license MIT
11
+ */var r=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable;function a(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var n,l,u=a(e),s=1;s<arguments.length;s++){for(var c in n=Object(arguments[s]))o.call(n,c)&&(u[c]=n[c]);if(r){l=r(n);for(var f=0;f<l.length;f++)i.call(n,l[f])&&(u[l[f]]=n[l[f]])}}return u}},function(e,t,n){"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE){0;try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}}(),e.exports=n(8)},function(e,t,n){e.exports=function(e,t){var n,r,o,i=0;function a(){var t,a,l=r,u=arguments.length;e:for(;l;){if(l.args.length===arguments.length){for(a=0;a<u;a++)if(l.args[a]!==arguments[a]){l=l.next;continue e}return l!==r&&(l===o&&(o=l.prev),l.prev.next=l.next,l.next&&(l.next.prev=l.prev),l.next=r,l.prev=null,r.prev=l,r=l),l.val}l=l.next}for(t=new Array(u),a=0;a<u;a++)t[a]=arguments[a];return l={args:t,val:e.apply(null,t)},r?(r.prev=l,l.next=r):o=l,i===n?(o=o.prev).next=null:i++,r=l,l.val}return t&&t.maxSize&&(n=t.maxSize),a.clear=function(){r=null,o=null,i=0},a}},function(e,t,n){"use strict";
12
+ /** @license React v16.13.0
13
  * react.production.min.js
14
  *
15
  * Copyright (c) Facebook, Inc. and its affiliates.
16
  *
17
  * This source code is licensed under the MIT license found in the
18
  * LICENSE file in the root directory of this source tree.
19
+ */var r=n(4),o="function"==typeof Symbol&&Symbol.for,i=o?Symbol.for("react.element"):60103,a=o?Symbol.for("react.portal"):60106,l=o?Symbol.for("react.fragment"):60107,u=o?Symbol.for("react.strict_mode"):60108,s=o?Symbol.for("react.profiler"):60114,c=o?Symbol.for("react.provider"):60109,f=o?Symbol.for("react.context"):60110,p=o?Symbol.for("react.forward_ref"):60112,d=o?Symbol.for("react.suspense"):60113,h=o?Symbol.for("react.memo"):60115,m=o?Symbol.for("react.lazy"):60116,y="function"==typeof Symbol&&Symbol.iterator;function b(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var v={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g={};function w(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||v}function k(){}function E(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||v}w.prototype.isReactComponent={},w.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error(b(85));this.updater.enqueueSetState(this,e,t,"setState")},w.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},k.prototype=w.prototype;var x=E.prototype=new k;x.constructor=E,r(x,w.prototype),x.isPureReactComponent=!0;var T={current:null},S=Object.prototype.hasOwnProperty,_={key:!0,ref:!0,__self:!0,__source:!0};function C(e,t,n){var r,o={},a=null,l=null;if(null!=t)for(r in void 0!==t.ref&&(l=t.ref),void 0!==t.key&&(a=""+t.key),t)S.call(t,r)&&!_.hasOwnProperty(r)&&(o[r]=t[r]);var u=arguments.length-2;if(1===u)o.children=n;else if(1<u){for(var s=Array(u),c=0;c<u;c++)s[c]=arguments[c+2];o.children=s}if(e&&e.defaultProps)for(r in u=e.defaultProps)void 0===o[r]&&(o[r]=u[r]);return{$$typeof:i,type:e,key:a,ref:l,props:o,_owner:T.current}}function P(e){return"object"==typeof e&&null!==e&&e.$$typeof===i}var O=/\/+/g,N=[];function I(e,t,n,r){if(N.length){var o=N.pop();return o.result=e,o.keyPrefix=t,o.func=n,o.context=r,o.count=0,o}return{result:e,keyPrefix:t,func:n,context:r,count:0}}function z(e){e.result=null,e.keyPrefix=null,e.func=null,e.context=null,e.count=0,10>N.length&&N.push(e)}function j(e,t,n){return null==e?0:function e(t,n,r,o){var l=typeof t;"undefined"!==l&&"boolean"!==l||(t=null);var u=!1;if(null===t)u=!0;else switch(l){case"string":case"number":u=!0;break;case"object":switch(t.$$typeof){case i:case a:u=!0}}if(u)return r(o,t,""===n?"."+F(t,0):n),1;if(u=0,n=""===n?".":n+":",Array.isArray(t))for(var s=0;s<t.length;s++){var c=n+F(l=t[s],s);u+=e(l,c,r,o)}else if(null===t||"object"!=typeof t?c=null:c="function"==typeof(c=y&&t[y]||t["@@iterator"])?c:null,"function"==typeof c)for(t=c.call(t),s=0;!(l=t.next()).done;)u+=e(l=l.value,c=n+F(l,s++),r,o);else if("object"===l)throw r=""+t,Error(b(31,"[object Object]"===r?"object with keys {"+Object.keys(t).join(", ")+"}":r,""));return u}(e,"",t,n)}function F(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+(""+e).replace(/[=:]/g,(function(e){return t[e]}))}(e.key):t.toString(36)}function R(e,t){e.func.call(e.context,t,e.count++)}function M(e,t,n){var r=e.result,o=e.keyPrefix;e=e.func.call(e.context,t,e.count++),Array.isArray(e)?D(e,r,n,(function(e){return e})):null!=e&&(P(e)&&(e=function(e,t){return{$$typeof:i,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(e,o+(!e.key||t&&t.key===e.key?"":(""+e.key).replace(O,"$&/")+"/")+n)),r.push(e))}function D(e,t,n,r,o){var i="";null!=n&&(i=(""+n).replace(O,"$&/")+"/"),j(e,M,t=I(t,i,r,o)),z(t)}var A={current:null};function L(){var e=A.current;if(null===e)throw Error(b(321));return e}var U={ReactCurrentDispatcher:A,ReactCurrentBatchConfig:{suspense:null},ReactCurrentOwner:T,IsSomeRendererActing:{current:!1},assign:r};t.Children={map:function(e,t,n){if(null==e)return e;var r=[];return D(e,r,null,t,n),r},forEach:function(e,t,n){if(null==e)return e;j(e,R,t=I(null,null,t,n)),z(t)},count:function(e){return j(e,(function(){return null}),null)},toArray:function(e){var t=[];return D(e,t,null,(function(e){return e})),t},only:function(e){if(!P(e))throw Error(b(143));return e}},t.Component=w,t.Fragment=l,t.Profiler=s,t.PureComponent=E,t.StrictMode=u,t.Suspense=d,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=U,t.cloneElement=function(e,t,n){if(null==e)throw Error(b(267,e));var o=r({},e.props),a=e.key,l=e.ref,u=e._owner;if(null!=t){if(void 0!==t.ref&&(l=t.ref,u=T.current),void 0!==t.key&&(a=""+t.key),e.type&&e.type.defaultProps)var s=e.type.defaultProps;for(c in t)S.call(t,c)&&!_.hasOwnProperty(c)&&(o[c]=void 0===t[c]&&void 0!==s?s[c]:t[c])}var c=arguments.length-2;if(1===c)o.children=n;else if(1<c){s=Array(c);for(var f=0;f<c;f++)s[f]=arguments[f+2];o.children=s}return{$$typeof:i,type:e.type,key:a,ref:l,props:o,_owner:u}},t.createContext=function(e,t){return void 0===t&&(t=null),(e={$$typeof:f,_calculateChangedBits:t,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider={$$typeof:c,_context:e},e.Consumer=e},t.createElement=C,t.createFactory=function(e){var t=C.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:p,render:e}},t.isValidElement=P,t.lazy=function(e){return{$$typeof:m,_ctor:e,_status:-1,_result:null}},t.memo=function(e,t){return{$$typeof:h,type:e,compare:void 0===t?null:t}},t.useCallback=function(e,t){return L().useCallback(e,t)},t.useContext=function(e,t){return L().useContext(e,t)},t.useDebugValue=function(){},t.useEffect=function(e,t){return L().useEffect(e,t)},t.useImperativeHandle=function(e,t,n){return L().useImperativeHandle(e,t,n)},t.useLayoutEffect=function(e,t){return L().useLayoutEffect(e,t)},t.useMemo=function(e,t){return L().useMemo(e,t)},t.useReducer=function(e,t,n){return L().useReducer(e,t,n)},t.useRef=function(e){return L().useRef(e)},t.useState=function(e){return L().useState(e)},t.version="16.13.0"},function(e,t,n){"use strict";
20
+ /** @license React v16.13.0
21
  * react-dom.production.min.js
22
  *
23
  * Copyright (c) Facebook, Inc. and its affiliates.
24
  *
25
  * This source code is licensed under the MIT license found in the
26
  * LICENSE file in the root directory of this source tree.
27
+ */var r=n(0),o=n(4),i=n(9);function a(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}if(!r)throw Error(a(227));function l(e,t,n,r,o,i,a,l,u){var s=Array.prototype.slice.call(arguments,3);try{t.apply(n,s)}catch(e){this.onError(e)}}var u=!1,s=null,c=!1,f=null,p={onError:function(e){u=!0,s=e}};function d(e,t,n,r,o,i,a,c,f){u=!1,s=null,l.apply(p,arguments)}var h=null,m=null,y=null;function b(e,t,n){var r=e.type||"unknown-event";e.currentTarget=y(n),function(e,t,n,r,o,i,l,p,h){if(d.apply(this,arguments),u){if(!u)throw Error(a(198));var m=s;u=!1,s=null,c||(c=!0,f=m)}}(r,t,void 0,e),e.currentTarget=null}var v=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;v.hasOwnProperty("ReactCurrentDispatcher")||(v.ReactCurrentDispatcher={current:null}),v.hasOwnProperty("ReactCurrentBatchConfig")||(v.ReactCurrentBatchConfig={suspense:null});var g=/^(.*)[\\\/]/,w="function"==typeof Symbol&&Symbol.for,k=w?Symbol.for("react.element"):60103,E=w?Symbol.for("react.portal"):60106,x=w?Symbol.for("react.fragment"):60107,T=w?Symbol.for("react.strict_mode"):60108,S=w?Symbol.for("react.profiler"):60114,_=w?Symbol.for("react.provider"):60109,C=w?Symbol.for("react.context"):60110,P=w?Symbol.for("react.concurrent_mode"):60111,O=w?Symbol.for("react.forward_ref"):60112,N=w?Symbol.for("react.suspense"):60113,I=w?Symbol.for("react.suspense_list"):60120,z=w?Symbol.for("react.memo"):60115,j=w?Symbol.for("react.lazy"):60116,F=w?Symbol.for("react.block"):60121,R="function"==typeof Symbol&&Symbol.iterator;function M(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=R&&e[R]||e["@@iterator"])?e:null}function D(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case x:return"Fragment";case E:return"Portal";case S:return"Profiler";case T:return"StrictMode";case N:return"Suspense";case I:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case C:return"Context.Consumer";case _:return"Context.Provider";case O:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(""!==t?"ForwardRef("+t+")":"ForwardRef");case z:return D(e.type);case F:return D(e.render);case j:if(e=1===e._status?e._result:null)return D(e)}return null}function A(e){var t="";do{e:switch(e.tag){case 3:case 4:case 6:case 7:case 10:case 9:var n="";break e;default:var r=e._debugOwner,o=e._debugSource,i=D(e.type);n=null,r&&(n=D(r.type)),r=i,i="",o?i=" (at "+o.fileName.replace(g,"")+":"+o.lineNumber+")":n&&(i=" (created by "+n+")"),n="\n in "+(r||"Unknown")+i}t+=n,e=e.return}while(e);return t}var L=null,U={};function B(){if(L)for(var e in U){var t=U[e],n=L.indexOf(e);if(!(-1<n))throw Error(a(96,e));if(!V[n]){if(!t.extractEvents)throw Error(a(97,e));for(var r in V[n]=t,n=t.eventTypes){var o=void 0,i=n[r],l=t,u=r;if(H.hasOwnProperty(u))throw Error(a(99,u));H[u]=i;var s=i.phasedRegistrationNames;if(s){for(o in s)s.hasOwnProperty(o)&&W(s[o],l,u);o=!0}else i.registrationName?(W(i.registrationName,l,u),o=!0):o=!1;if(!o)throw Error(a(98,r,e))}}}}function W(e,t,n){if($[e])throw Error(a(100,e));$[e]=t,Q[e]=t.eventTypes[n].dependencies}var V=[],H={},$={},Q={};function K(e){var t,n=!1;for(t in e)if(e.hasOwnProperty(t)){var r=e[t];if(!U.hasOwnProperty(t)||U[t]!==r){if(U[t])throw Error(a(102,t));U[t]=r,n=!0}}n&&B()}var q=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),G=null,X=null,Y=null;function Z(e){if(e=m(e)){if("function"!=typeof G)throw Error(a(280));var t=e.stateNode;t&&(t=h(t),G(e.stateNode,e.type,t))}}function J(e){X?Y?Y.push(e):Y=[e]:X=e}function ee(){if(X){var e=X,t=Y;if(Y=X=null,Z(e),t)for(e=0;e<t.length;e++)Z(t[e])}}function te(e,t){return e(t)}function ne(e,t,n,r,o){return e(t,n,r,o)}function re(){}var oe=te,ie=!1,ae=!1;function le(){null===X&&null===Y||(re(),ee())}function ue(e,t,n){if(ae)return e(t,n);ae=!0;try{return oe(e,t,n)}finally{ae=!1,le()}}var se=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,ce=Object.prototype.hasOwnProperty,fe={},pe={};function de(e,t,n,r,o,i){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=o,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=i}var he={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){he[e]=new de(e,0,!1,e,null,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];he[t]=new de(t,1,!1,e[1],null,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){he[e]=new de(e,2,!1,e.toLowerCase(),null,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){he[e]=new de(e,2,!1,e,null,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){he[e]=new de(e,3,!1,e.toLowerCase(),null,!1)})),["checked","multiple","muted","selected"].forEach((function(e){he[e]=new de(e,3,!0,e,null,!1)})),["capture","download"].forEach((function(e){he[e]=new de(e,4,!1,e,null,!1)})),["cols","rows","size","span"].forEach((function(e){he[e]=new de(e,6,!1,e,null,!1)})),["rowSpan","start"].forEach((function(e){he[e]=new de(e,5,!1,e.toLowerCase(),null,!1)}));var me=/[\-:]([a-z])/g;function ye(e){return e[1].toUpperCase()}function be(e,t,n,r){var o=he.hasOwnProperty(t)?he[t]:null;(null!==o?0===o.type:!r&&(2<t.length&&("o"===t[0]||"O"===t[0])&&("n"===t[1]||"N"===t[1])))||(function(e,t,n,r){if(null==t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,o,r)&&(n=null),r||null===o?function(e){return!!ce.call(pe,e)||!ce.call(fe,e)&&(se.test(e)?pe[e]=!0:(fe[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):o.mustUseProperty?e[o.propertyName]=null===n?3!==o.type&&"":n:(t=o.attributeName,r=o.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(o=o.type)||4===o&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}function ve(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function ge(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function we(e){e._valueTracker||(e._valueTracker=function(e){var t=ge(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var o=n.get,i=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(e){r=""+e,i.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function ke(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=ge(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function Ee(e,t){var n=t.checked;return o({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function xe(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=ve(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function Te(e,t){null!=(t=t.checked)&&be(e,"checked",t,!1)}function Se(e,t){Te(e,t);var n=ve(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?Ce(e,t.type,n):t.hasOwnProperty("defaultValue")&&Ce(e,t.type,ve(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function _e(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function Ce(e,t,n){"number"===t&&e.ownerDocument.activeElement===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}function Pe(e,t){return e=o({children:void 0},t),(t=function(e){var t="";return r.Children.forEach(e,(function(e){null!=e&&(t+=e)})),t}(t.children))&&(e.children=t),e}function Oe(e,t,n,r){if(e=e.options,t){t={};for(var o=0;o<n.length;o++)t["$"+n[o]]=!0;for(n=0;n<e.length;n++)o=t.hasOwnProperty("$"+e[n].value),e[n].selected!==o&&(e[n].selected=o),o&&r&&(e[n].defaultSelected=!0)}else{for(n=""+ve(n),t=null,o=0;o<e.length;o++){if(e[o].value===n)return e[o].selected=!0,void(r&&(e[o].defaultSelected=!0));null!==t||e[o].disabled||(t=e[o])}null!==t&&(t.selected=!0)}}function Ne(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(a(91));return o({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function Ie(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(a(92));if(Array.isArray(n)){if(!(1>=n.length))throw Error(a(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:ve(n)}}function ze(e,t){var n=ve(t.value),r=ve(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function je(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(me,ye);he[t]=new de(t,1,!1,e,null,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(me,ye);he[t]=new de(t,1,!1,e,"http://www.w3.org/1999/xlink",!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(me,ye);he[t]=new de(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1)})),["tabIndex","crossOrigin"].forEach((function(e){he[e]=new de(e,1,!1,e.toLowerCase(),null,!1)})),he.xlinkHref=new de("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0),["src","href","action","formAction"].forEach((function(e){he[e]=new de(e,1,!1,e.toLowerCase(),null,!0)}));var Fe="http://www.w3.org/1999/xhtml",Re="http://www.w3.org/2000/svg";function Me(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function De(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?Me(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var Ae,Le=function(e){return"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(t,n,r,o){MSApp.execUnsafeLocalFunction((function(){return e(t,n)}))}:e}((function(e,t){if(e.namespaceURI!==Re||"innerHTML"in e)e.innerHTML=t;else{for((Ae=Ae||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=Ae.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}}));function Ue(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}function Be(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var We={animationend:Be("Animation","AnimationEnd"),animationiteration:Be("Animation","AnimationIteration"),animationstart:Be("Animation","AnimationStart"),transitionend:Be("Transition","TransitionEnd")},Ve={},He={};function $e(e){if(Ve[e])return Ve[e];if(!We[e])return e;var t,n=We[e];for(t in n)if(n.hasOwnProperty(t)&&t in He)return Ve[e]=n[t];return e}q&&(He=document.createElement("div").style,"AnimationEvent"in window||(delete We.animationend.animation,delete We.animationiteration.animation,delete We.animationstart.animation),"TransitionEvent"in window||delete We.transitionend.transition);var Qe=$e("animationend"),Ke=$e("animationiteration"),qe=$e("animationstart"),Ge=$e("transitionend"),Xe="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Ye=new("function"==typeof WeakMap?WeakMap:Map);function Ze(e){var t=Ye.get(e);return void 0===t&&(t=new Map,Ye.set(e,t)),t}function Je(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!=(1026&(t=e).effectTag)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function et(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function tt(e){if(Je(e)!==e)throw Error(a(188))}function nt(e){if(!(e=function(e){var t=e.alternate;if(!t){if(null===(t=Je(e)))throw Error(a(188));return t!==e?null:e}for(var n=e,r=t;;){var o=n.return;if(null===o)break;var i=o.alternate;if(null===i){if(null!==(r=o.return)){n=r;continue}break}if(o.child===i.child){for(i=o.child;i;){if(i===n)return tt(o),e;if(i===r)return tt(o),t;i=i.sibling}throw Error(a(188))}if(n.return!==r.return)n=o,r=i;else{for(var l=!1,u=o.child;u;){if(u===n){l=!0,n=o,r=i;break}if(u===r){l=!0,r=o,n=i;break}u=u.sibling}if(!l){for(u=i.child;u;){if(u===n){l=!0,n=i,r=o;break}if(u===r){l=!0,r=i,n=o;break}u=u.sibling}if(!l)throw Error(a(189))}}if(n.alternate!==r)throw Error(a(190))}if(3!==n.tag)throw Error(a(188));return n.stateNode.current===n?e:t}(e)))return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}function rt(e,t){if(null==t)throw Error(a(30));return null==e?t:Array.isArray(e)?Array.isArray(t)?(e.push.apply(e,t),e):(e.push(t),e):Array.isArray(t)?[e].concat(t):[e,t]}function ot(e,t,n){Array.isArray(e)?e.forEach(t,n):e&&t.call(n,e)}var it=null;function at(e){if(e){var t=e._dispatchListeners,n=e._dispatchInstances;if(Array.isArray(t))for(var r=0;r<t.length&&!e.isPropagationStopped();r++)b(e,t[r],n[r]);else t&&b(e,t,n);e._dispatchListeners=null,e._dispatchInstances=null,e.isPersistent()||e.constructor.release(e)}}function lt(e){if(null!==e&&(it=rt(it,e)),e=it,it=null,e){if(ot(e,at),it)throw Error(a(95));if(c)throw e=f,c=!1,f=null,e}}function ut(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}function st(e){if(!q)return!1;var t=(e="on"+e)in document;return t||((t=document.createElement("div")).setAttribute(e,"return;"),t="function"==typeof t[e]),t}var ct=[];function ft(e){e.topLevelType=null,e.nativeEvent=null,e.targetInst=null,e.ancestors.length=0,10>ct.length&&ct.push(e)}function pt(e,t,n,r){if(ct.length){var o=ct.pop();return o.topLevelType=e,o.eventSystemFlags=r,o.nativeEvent=t,o.targetInst=n,o}return{topLevelType:e,eventSystemFlags:r,nativeEvent:t,targetInst:n,ancestors:[]}}function dt(e){var t=e.targetInst,n=t;do{if(!n){e.ancestors.push(n);break}var r=n;if(3===r.tag)r=r.stateNode.containerInfo;else{for(;r.return;)r=r.return;r=3!==r.tag?null:r.stateNode.containerInfo}if(!r)break;5!==(t=n.tag)&&6!==t||e.ancestors.push(n),n=Cn(r)}while(n);for(n=0;n<e.ancestors.length;n++){t=e.ancestors[n];var o=ut(e.nativeEvent);r=e.topLevelType;var i=e.nativeEvent,a=e.eventSystemFlags;0===n&&(a|=64);for(var l=null,u=0;u<V.length;u++){var s=V[u];s&&(s=s.extractEvents(r,t,i,o,a))&&(l=rt(l,s))}lt(l)}}function ht(e,t,n){if(!n.has(e)){switch(e){case"scroll":qt(t,"scroll",!0);break;case"focus":case"blur":qt(t,"focus",!0),qt(t,"blur",!0),n.set("blur",null),n.set("focus",null);break;case"cancel":case"close":st(e)&&qt(t,e,!0);break;case"invalid":case"submit":case"reset":break;default:-1===Xe.indexOf(e)&&Kt(e,t)}n.set(e,null)}}var mt,yt,bt,vt=!1,gt=[],wt=null,kt=null,Et=null,xt=new Map,Tt=new Map,St=[],_t="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput close cancel copy cut paste click change contextmenu reset submit".split(" "),Ct="focus blur dragenter dragleave mouseover mouseout pointerover pointerout gotpointercapture lostpointercapture".split(" ");function Pt(e,t,n,r,o){return{blockedOn:e,topLevelType:t,eventSystemFlags:32|n,nativeEvent:o,container:r}}function Ot(e,t){switch(e){case"focus":case"blur":wt=null;break;case"dragenter":case"dragleave":kt=null;break;case"mouseover":case"mouseout":Et=null;break;case"pointerover":case"pointerout":xt.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":Tt.delete(t.pointerId)}}function Nt(e,t,n,r,o,i){return null===e||e.nativeEvent!==i?(e=Pt(t,n,r,o,i),null!==t&&(null!==(t=Pn(t))&&yt(t)),e):(e.eventSystemFlags|=r,e)}function It(e){var t=Cn(e.target);if(null!==t){var n=Je(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=et(n)))return e.blockedOn=t,void i.unstable_runWithPriority(e.priority,(function(){bt(n)}))}else if(3===t&&n.stateNode.hydrate)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function zt(e){if(null!==e.blockedOn)return!1;var t=Zt(e.topLevelType,e.eventSystemFlags,e.container,e.nativeEvent);if(null!==t){var n=Pn(t);return null!==n&&yt(n),e.blockedOn=t,!1}return!0}function jt(e,t,n){zt(e)&&n.delete(t)}function Ft(){for(vt=!1;0<gt.length;){var e=gt[0];if(null!==e.blockedOn){null!==(e=Pn(e.blockedOn))&&mt(e);break}var t=Zt(e.topLevelType,e.eventSystemFlags,e.container,e.nativeEvent);null!==t?e.blockedOn=t:gt.shift()}null!==wt&&zt(wt)&&(wt=null),null!==kt&&zt(kt)&&(kt=null),null!==Et&&zt(Et)&&(Et=null),xt.forEach(jt),Tt.forEach(jt)}function Rt(e,t){e.blockedOn===t&&(e.blockedOn=null,vt||(vt=!0,i.unstable_scheduleCallback(i.unstable_NormalPriority,Ft)))}function Mt(e){function t(t){return Rt(t,e)}if(0<gt.length){Rt(gt[0],e);for(var n=1;n<gt.length;n++){var r=gt[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==wt&&Rt(wt,e),null!==kt&&Rt(kt,e),null!==Et&&Rt(Et,e),xt.forEach(t),Tt.forEach(t),n=0;n<St.length;n++)(r=St[n]).blockedOn===e&&(r.blockedOn=null);for(;0<St.length&&null===(n=St[0]).blockedOn;)It(n),null===n.blockedOn&&St.shift()}var Dt={},At=new Map,Lt=new Map,Ut=["abort","abort",Qe,"animationEnd",Ke,"animationIteration",qe,"animationStart","canplay","canPlay","canplaythrough","canPlayThrough","durationchange","durationChange","emptied","emptied","encrypted","encrypted","ended","ended","error","error","gotpointercapture","gotPointerCapture","load","load","loadeddata","loadedData","loadedmetadata","loadedMetadata","loadstart","loadStart","lostpointercapture","lostPointerCapture","playing","playing","progress","progress","seeking","seeking","stalled","stalled","suspend","suspend","timeupdate","timeUpdate",Ge,"transitionEnd","waiting","waiting"];function Bt(e,t){for(var n=0;n<e.length;n+=2){var r=e[n],o=e[n+1],i="on"+(o[0].toUpperCase()+o.slice(1));i={phasedRegistrationNames:{bubbled:i,captured:i+"Capture"},dependencies:[r],eventPriority:t},Lt.set(r,t),At.set(r,i),Dt[o]=i}}Bt("blur blur cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focus focus input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange".split(" "),0),Bt("drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel".split(" "),1),Bt(Ut,2);for(var Wt="change selectionchange textInput compositionstart compositionend compositionupdate".split(" "),Vt=0;Vt<Wt.length;Vt++)Lt.set(Wt[Vt],0);var Ht=i.unstable_UserBlockingPriority,$t=i.unstable_runWithPriority,Qt=!0;function Kt(e,t){qt(t,e,!1)}function qt(e,t,n){var r=Lt.get(t);switch(void 0===r?2:r){case 0:r=Gt.bind(null,t,1,e);break;case 1:r=Xt.bind(null,t,1,e);break;default:r=Yt.bind(null,t,1,e)}n?e.addEventListener(t,r,!0):e.add