Hummingbird Page Speed Optimization - Version 1.7.1

Version Description

( 2017-01-15 ) = - New: Download log button in page caching module - New: Minification screen has been split into beginner and advanced views - New: Minification advanced view allows manipulations with jquery, jquery-core and jquery-migrate files - Enhance: Page caching module checking for wp-content directory and wp-config.php file - Enhance: Hummingbird will convert any path to regex expression in exclusion rules in page caching module - Enhance: Compatibility with Bedrock - Enhance: Detection and handling of WP_CACHE constant in wp-config.php file - Enhance: More informative tooltips for caching modules - Fix: Minification not always correctly detecting when HTTP/2 is used - Fix: Cloudflare integration shows empty zone when website domain includes www - Fix: Notices during page/post edit when page caching is active

Download this release

Release Info

Developer jdailey
Plugin Icon 128x128 Hummingbird Page Speed Optimization
Version 1.7.1
Comparing to
See all releases

Code changes from version 1.7.0.3 to 1.7.1

Files changed (81) hide show
  1. _src/admin/fonts/hummingbird.eot +0 -0
  2. _src/admin/fonts/hummingbird.svg +34 -0
  3. _src/admin/fonts/hummingbird.ttf +0 -0
  4. _src/admin/fonts/hummingbird.woff +0 -0
  5. _src/admin/fonts/wphb.eot +0 -0
  6. _src/admin/fonts/wphb.svg +11 -0
  7. _src/admin/fonts/wphb.ttf +0 -0
  8. _src/admin/fonts/wphb.woff +0 -0
  9. _src/admin/image/dev-team.png +0 -0
  10. _src/admin/image/dev-team@2x.png +0 -0
  11. _src/admin/image/graphic-hb-cf-sell@2x.png +0 -0
  12. _src/admin/image/graphic-hb-minify-summary.png +0 -0
  13. _src/admin/image/graphic-hb-minify-summary@2x.png +0 -0
  14. _src/admin/image/hb-graphic-dash-top.png +0 -0
  15. _src/admin/image/hb-graphic-dash-top@2x.png +0 -0
  16. _src/admin/image/hb-graphic-gravatarcaching-disabled.png +0 -0
  17. _src/admin/image/hb-graphic-gravatarcaching-disabled@2x.png +0 -0
  18. _src/admin/image/hb-graphic-minify-summary.png +0 -0
  19. _src/admin/image/hb-graphic-minify-summary@2x.png +0 -0
  20. _src/admin/image/hb-graphic-pagecaching-disabled.png +0 -0
  21. _src/admin/image/hb-graphic-pagecaching-disabled@2x.png +0 -0
  22. _src/admin/image/hb-graphic-performancetest-top.png +0 -0
  23. _src/admin/image/hb-graphic-reports-disabled@1x.png +0 -0
  24. _src/admin/image/hb-graphic-reports-disabled@2x.png +0 -0
  25. _src/admin/image/hb-graphic-upsell-reports.png +0 -0
  26. _src/admin/image/hb-graphic-upsell-reports@2x.png +0 -0
  27. _src/admin/image/hb-graphic-upsell-uptime.png +0 -0
  28. _src/admin/image/hb-graphic-upsell-uptime@2x.png +0 -0
  29. _src/admin/image/hb-graphic-uptime-disabled@1x.png +0 -0
  30. _src/admin/image/hb-graphic-uptime-disabled@2x.png +0 -0
  31. _src/admin/image/hb-graphic-uptime-up.png +0 -0
  32. _src/admin/image/hb-graphic-uptime-up@2x.png +0 -0
  33. _src/admin/image/hummingbird-circle.png +0 -0
  34. _src/admin/image/hummingbird-circle@1x.jpg +0 -0
  35. _src/admin/image/hummingbird-modal-quicksetup.png +0 -0
  36. _src/admin/image/hummingbird-modal-quicksetup@2x.png +0 -0
  37. _src/admin/image/hummingbird-upsell-minify.png +0 -0
  38. _src/admin/image/hummingbird-upsell-minify@2x.png +0 -0
  39. _src/admin/image/icon-uptime-small.png +0 -0
  40. _src/admin/image/icon-uptime.png +0 -0
  41. _src/admin/image/smush-share-widget.png +0 -0
  42. _src/admin/image/smush-share-widget@2x.png +0 -0
  43. _src/admin/image/uptime-average-response-time-placeholder.png +0 -0
  44. _src/admin/image/websiteup.png +0 -0
  45. _src/admin/js/admin-caching.js +114 -2
  46. _src/admin/js/admin-cloudflare.js +5 -9
  47. _src/admin/js/admin-minification.js +96 -53
  48. _src/admin/js/minification/Row.js +8 -1
  49. _src/admin/js/minification/RowsCollection.js +12 -0
  50. _src/admin/js/utils/fetcher.js +34 -0
  51. _src/admin/scss/app.scss +2230 -4
  52. _src/admin/scss/common/_buttons.scss +289 -0
  53. _src/admin/scss/{modules → common}/_classes.scss +12 -5
  54. _src/admin/scss/{modules → common}/_functions.scss +3 -3
  55. _src/admin/scss/common/_layout.scss +242 -0
  56. _src/admin/scss/common/_mixins.scss +90 -0
  57. _src/admin/scss/common/_modals.scss +126 -0
  58. _src/admin/scss/common/_overwrites.scss +146 -0
  59. _src/admin/scss/common/_typography.scss +216 -0
  60. _src/admin/scss/{modules → common}/_variables.scss +3 -23
  61. _src/admin/scss/modules/_caching.scss +361 -0
  62. _src/admin/scss/modules/_dashboard.scss +377 -0
  63. _src/admin/scss/modules/_gzip.scss +67 -0
  64. _src/admin/scss/modules/_minification.scss +616 -0
  65. _src/admin/scss/modules/_mixins.scss +0 -90
  66. _src/admin/scss/modules/_performance.scss +242 -0
  67. _src/admin/scss/modules/_uptime.scss +48 -0
  68. admin/abstract-class-admin-page.php +6 -10
  69. admin/assets/css/admin.css +0 -4088
  70. admin/assets/css/app.css +1 -1
  71. admin/assets/css/app.css.map +1 -1
  72. admin/assets/fonts/hummingbird.eot +0 -0
  73. admin/assets/fonts/hummingbird.svg +2 -0
  74. admin/assets/fonts/hummingbird.ttf +0 -0
  75. admin/assets/fonts/hummingbird.woff +0 -0
  76. admin/assets/image/hb-graphic-minify-summary.png +0 -0
  77. admin/assets/image/hb-graphic-minify-summary@2x.png +0 -0
  78. admin/assets/image/hb-graphic-reports-disabled@1x.png +0 -0
  79. admin/assets/image/hb-graphic-reports-disabled@2x.png +0 -0
  80. admin/assets/js/admin.min.js +4 -4
  81. admin/assets/js/admin.min.js.map +0 -1
_src/admin/fonts/hummingbird.eot ADDED
Binary file
_src/admin/fonts/hummingbird.svg ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
3
+ <svg xmlns="http://www.w3.org/2000/svg">
4
+ <metadata>Generated by IcoMoon</metadata>
5
+ <defs>
6
+ <font id="hummingbird" horiz-adv-x="1024">
7
+ <font-face units-per-em="1024" ascent="960" descent="-64" />
8
+ <missing-glyph horiz-adv-x="1024" />
9
+ <glyph unicode="&#x20;" horiz-adv-x="512" d="" />
10
+ <glyph unicode="&#x7a;" glyph-name="fi-filter" d="M1024 728.576c-0.063 44.774-35.52 81.246-79.888 82.939l-860.997 0.005c-0.072 0-0.157 0-0.243 0-45.903 0-83.115-37.212-83.115-83.115 0-26.158 12.084-49.494 30.974-64.73l386.036-386.343v-238.933c0.665-15.332 9.197-28.533 21.637-35.729l0.209-0.111 103.424-59.733c6.303-3.758 13.9-5.98 22.016-5.98 24.035 0 43.52 19.485 43.52 43.52 0 0.062 0 0.124 0 0.187 0 1.185 0 2.209 0 3.404v0 293.376l389.803 389.632c16.397 15.17 26.628 36.8 26.628 60.82 0 0.278-0.001 0.555-0.004 0.833zM284.843 645.291v0z" />
11
+ <glyph unicode="&#x7b;" glyph-name="fi-settings-slider-control" horiz-adv-x="978" d="M803.84 448c-0.001-67.298-54.557-121.854-121.856-121.854s-121.856 54.557-121.856 121.856c0 67.299 54.557 121.856 121.856 121.856 0.24 0 0.48-0.001 0.72-0.002 66.968-0.387 121.136-54.795 121.136-121.854 0-0.001 0-0.001 0-0.002zM494.933 355.328h-462.507c0 0 0 0 0 0-17.909 0-32.427 14.518-32.427 32.427 0 0.060 0 0.12 0 0.18v97.271c0 17.909 14.518 32.427 32.427 32.427h462.507zM868.693 355.328h77.141c17.87 0.096 32.33 14.557 32.427 32.417v97.289c0 17.909-14.518 32.427-32.427 32.427h-77.141zM803.84 838.144c-0.001-67.298-54.557-121.854-121.856-121.854s-121.856 54.557-121.856 121.856c0 67.299 54.557 121.856 121.856 121.856 0.24 0 0.48-0.001 0.72-0.002 66.968-0.387 121.136-54.795 121.136-121.854 0-0.001 0-0.001 0-0.002zM494.933 745.472h-462.507c-17.909 0-32.427 14.518-32.427 32.427v96.768c0 17.909 14.518 32.427 32.427 32.427h462.507zM868.693 745.472h77.141c17.909 0 32.427 14.518 32.427 32.427v96.768c0 17.909-14.518 32.427-32.427 32.427h-77.141zM174.592 57.856c0-67.299 54.557-121.856 121.856-121.856s121.856 54.557 121.856 121.856c0 67.299-54.557 121.856-121.856 121.856s-121.856-54.557-121.856-121.856zM482.816-34.645h463.019c17.909 0 32.427 14.518 32.427 32.427v97.28c0 17.909-14.518 32.427-32.427 32.427h-463.019zM109.568-34.645h-77.141c-17.909 0-32.427 14.518-32.427 32.427v97.28c0.096 17.87 14.557 32.33 32.417 32.427h77.151z" />
12
+ <glyph unicode="&#xe900;" glyph-name="icon-audit" d="M716.8 608.137c-26.123-19.54-48.301-43.688-65.351-71.25-21.784 47.187-43.918 104.997-66.403 173.474l-103.264-737.457c-2.893-20.479-20.425-36.009-41.639-36.862-0.614 0-1.227-0.043-1.841-0.043-20.425 0-38.308 13.823-42.778 33.406l-143.325 627.766-79.64-206.838c-6.443-16.639-22.792-27.689-41.069-27.689h-131.491v85.329h101.116l120.84 313.627c6.794 17.663 24.238 28.969 44.137 27.604 19.329-1.323 35.459-14.89 39.71-33.321l122.155-535.227 98.399 702.386c2.849 20.223 19.943 35.625 40.85 36.819 20.907 1.664 39.754-12.074 45.014-31.87 29.498-110.629 68.375-229.834 104.579-319.856zM844.8 550.4c98.829 0 179.2-80.371 179.2-179.2s-80.371-179.2-179.2-179.2c-98.829 0-179.2 80.371-179.2 179.2s80.371 179.2 179.2 179.2zM844.8 460.8c-49.504 0-89.6-40.096-89.6-89.6s40.096-89.6 89.6-89.6c49.504 0 89.6 40.096 89.6 89.6s-40.096 89.6-89.6 89.6z" />
13
+ <glyph unicode="&#xe901;" glyph-name="wpmudev-icon-cross" d="M512 520.408l-117.396 117.396c-19.995 19.995-52.413 19.995-72.408 0s-19.995-52.413 0-72.408l117.396-117.396-117.396-117.396c-19.995-19.995-19.995-52.413 0-72.408s52.413-19.995 72.408 0l117.396 117.396 117.396-117.396c19.995-19.995 52.413-19.995 72.408 0s19.995 52.413 0 72.408l-117.396 117.396 117.396 117.396c19.995 19.995 19.995 52.413 0 72.408s-52.413 19.995-72.408 0l-117.396-117.396zM512 960c282.77 0 512-229.23 512-512s-229.23-512-512-512c-282.77 0-512 229.23-512 512s229.23 512 512 512z" />
14
+ <glyph unicode="&#xe902;" glyph-name="wpmudev-icon-info" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512c282.77 0 512 229.23 512 512s-229.23 512-512 512zM563.2 448.472v-205.744c0-27.638-22.923-50.728-51.2-50.728-28.474 0-51.2 22.712-51.2 50.728v205.744c0 27.638 22.923 50.728 51.2 50.728 28.474 0 51.2-22.712 51.2-50.728zM588.8 627.2c0-42.711-34.385-76.8-76.8-76.8-42.711 0-76.8 34.385-76.8 76.8 0 42.711 34.385 76.8 76.8 76.8 42.711 0 76.8-34.385 76.8-76.8z" />
15
+ <glyph unicode="&#xe903;" glyph-name="wpmudev-icon-tick" d="M512 960c282.77 0 512-229.23 512-512s-229.23-512-512-512c-282.77 0-512 229.23-512 512s229.23 512 512 512zM337.735 469.234c-21.661 18.176-53.956 15.351-72.132-6.311s-15.351-53.956 6.311-72.132l205.624-172.539 265.625 316.559c18.176 21.661 15.351 53.956-6.311 72.132s-53.956 15.351-72.132-6.311l-199.803-238.116-127.181 106.718z" />
16
+ <glyph unicode="&#xe904;" glyph-name="wpmudev-icon-warning" d="M512-64c-282.77 0-512 229.23-512 512s229.23 512 512 512c282.77 0 512-229.23 512-512s-229.23-512-512-512zM563.2 447.528v205.744c0 27.638-22.923 50.728-51.2 50.728-28.474 0-51.2-22.712-51.2-50.728v-205.744c0-27.638 22.923-50.728 51.2-50.728 28.474 0 51.2 22.712 51.2 50.728zM588.8 268.8c0 42.711-34.385 76.8-76.8 76.8-42.711 0-76.8-34.385-76.8-76.8 0-42.711 34.385-76.8 76.8-76.8 42.711 0 76.8 34.385 76.8 76.8z" />
17
+ <glyph unicode="&#xe905;" glyph-name="icon-cache" d="M0 240.042c3.708 17.161 6.603 34.551 11.299 51.448 8.704 31.285 23.111 60.169 39.636 88.029 18.856 31.78 37.57 63.647 56.32 95.497 1.66 2.807 3.178 5.703 5.191 9.34-17.002 11.105-33.933 21.575-50.176 33.015-8.333 5.862-16.596 12.588-22.828 20.515-11.758 14.972-9.993 32.15 4.467 44.562 7.415 6.356 16.402 11.511 25.494 15.237 55.737 22.775 111.668 45.056 167.6 67.355 5.844 2.313 11.952 4.202 18.114 5.473 31.903 6.585 58.138-11.758 62.87-43.838 0.865-5.915 1.448-11.935 1.483-17.902 0.265-57.98 0.618-115.96 0.265-173.94-0.053-9.763-1.977-20.021-5.455-29.114-6.638-17.373-22.493-25.229-40.448-20.498-8.845 2.33-17.249 6.762-25.459 11.017-6.479 3.337-12.341 7.857-18.485 11.847-6.144 3.972-12.288 7.945-19.138 12.376-1.624-2.119-3.337-3.972-4.608-6.109-18.273-30.579-36.564-61.14-54.678-91.825-10.558-17.885-18.803-36.67-21.839-57.468-6.532-44.774 13.347-80.102 56.161-94.88 17.020-5.862 35.663-9.11 53.671-9.604 47.598-1.306 95.267-0.441 143.73-0.441v-127.418c-2.278-0.212-4.82-0.636-7.362-0.636-47.651-0.018-95.32-0.689-142.953 0.265-52.559 1.024-103.388 10.54-149.097 38.418-46.521 28.354-74.575 69.279-81.99 123.728-0.265 1.907-1.183 3.708-1.783 5.561v39.989zM529.99 960c8.033-1.801 16.137-3.355 24.099-5.42 55.102-14.371 97.385-47.916 129.765-92.902 26.182-36.352 48.092-75.794 71.821-113.93 5.402-8.686 10.434-17.585 16.137-27.242 17.726 11.652 34.339 23.234 51.623 33.686 8.686 5.244 18.255 9.781 28.036 12.306 16.861 4.343 31.779-3.125 38.259-19.191 3.637-9.040 5.897-19.28 5.967-28.99 0.388-59.304 0.088-118.608-0.371-177.912-0.053-8.21-1.342-16.702-3.796-24.541-9.657-30.879-39.918-43.785-73.94-31.056-39.565 14.777-78.795 30.473-118.13 45.815-19.527 7.627-39.088 15.113-58.456 23.128-15.854 6.55-30.543 15.448-32.662 34.357-2.136 19.015 10.505 30.72 24.523 40.572 13.047 9.181 26.536 17.708 40.148 26.73-0.477 1.518-0.618 2.843-1.236 3.867-22.175 37.164-43.396 74.947-67.072 111.105-10.558 16.119-24.47 31.038-39.671 42.902-32.415 25.282-72.916 25.53-105.472 0.371-15.748-12.164-28.248-28.778-41.207-44.244-6.744-8.033-11.282-17.92-17.090-27.419-33.88 20.233-67.231 40.148-100.987 60.31 34.551 60.452 75.175 113.753 140.482 142.072 16.843 7.292 35.434 10.523 53.23 15.625h35.999zM735.889 160.060c30.985 0.6 60.928-2.366 90.359 5.703 56.655 15.519 82.573 60.981 63.77 116.737-7.345 21.804-20.039 41.843-30.79 62.429-5.349 10.275-11.794 19.986-18.361 30.985 32.944 19.739 65.412 39.159 97.597 58.439 1.095-0.477 1.995-0.565 2.26-1.006 30.226-50.123 62.764-99.134 76.27-157.362 12.341-53.248 10.099-104.661-20.692-151.888-26.818-41.137-66.683-64.089-112.498-78.019-31.126-9.446-63.152-13.33-95.585-13.912-16.949-0.3-33.898-0.053-52.224-0.053 0-16.808 0.494-33.015-0.194-49.17-0.388-8.863-1.554-18.061-4.52-26.342-5.932-16.402-20.974-23.958-37.817-19.191-8.492 2.401-16.878 6.303-24.329 11.088-53.477 34.445-106.76 69.191-159.99 104.007-39.3 25.706-39.106 61.387 0.441 87.235 49.893 32.627 99.875 65.113 149.839 97.634 5.579 3.637 11.087 7.398 16.896 10.664 32.132 18.132 58.262 3.566 59.462-33.457 0.583-17.638 0.106-35.293 0.106-54.52z" />
18
+ <glyph unicode="&#xe906;" glyph-name="icon-cloudflare" d="M157.569 399.14c-12.601 48.599 0.489 89.238 43.354 116.587 43.289 27.621 86.217 20.578 126.953-10.669 24.466 75.172 73.002 128.355 148.405 156.089 49.465 18.195 100.165 19.155 150.506 3.923 59.684-18.056 105.658-53.992 136.94-107.167 31.233-53.092 38.256-110.063 24.847-171.853 5.338 3.668 8.465 5.986 11.756 8.052 49.368 31.011 100.823 34.4 151.671 5.958 52.049-29.115 75.612-75.35 71.553-133.933-0.981-14.155-6.561-28.102-10.986-41.845-0.908-2.817-5.933-4.699-9.414-6.245-1.956-0.867-4.639-0.164-6.995-0.164-325.329 0-650.657 0.063-975.984-0.273-11.326-0.012-15.161 3.298-17.402 13.951-16.019 76.112 39.282 154.285 117.458 164.766 11.919 1.599 24.024 1.853 37.34 2.823zM981.825 589.732c-20.335-24.367-40.671-48.735-61.008-73.102 0.414-0.685 0.826-1.37 1.24-2.055 28.699 7.199 57.401 14.398 86.102 21.597 0.26-0.432 0.521-0.861 0.781-1.293-23.186-16.483-46.374-32.965-69.56-49.448 0.061-0.732 0.121-1.465 0.182-2.195 24.801-1.069 49.602-2.136 74.403-3.203 0.19-0.697 0.382-1.395 0.571-2.092-16.328-7.14-32.632-14.335-49.035-21.312-1.231-0.523-3.27 0.236-4.732 0.855-35.036 14.861-71.48 19.784-109.888 14.438-2.372 12.326-4.199 24.277-7.019 36.002-8.017 33.323-22.005 64.133-40.933 92.927-2.439 3.711-3.359 9.976-2.057 14.188 6.587 21.326 14.14 42.365 23.129 63.359 3.046-30.728 6.095-61.457 9.143-92.185 0.741-0.275 1.484-0.552 2.225-0.829 15.981 25.103 31.962 50.204 47.943 75.305 0.773-0.263 1.548-0.525 2.324-0.788-5.719-29.976-11.437-59.95-17.154-89.925 0.66-0.354 1.32-0.711 1.978-1.065 21.779 20.358 43.556 40.718 65.335 61.077 0.525-0.281 1.052-0.564 1.579-0.845l-33.835-76.892c0.408-0.629 0.816-1.259 1.223-1.888 25.286 13.531 50.571 27.064 75.857 40.598 0.402-0.41 0.806-0.819 1.207-1.229zM764.304 678.285c5.166-15.819 9.888-30.285 14.782-45.269-17.977 10.841-23.636 25.141-14.782 45.269z" />
19
+ <glyph unicode="&#xe907;" glyph-name="icon-gzip" horiz-adv-x="870" d="M466.537 404.299v80.826l227.404-80.831h-146.345c73.056-0.007 143.737-0.021 203.106-0.035 32.626 0 48.694-23.043 36.417-51.972-22.307-52.51-74.864-86.701-134.313-86.822-84.585-0.191-169.188-0.052-253.792-0.052-83.080 0-166.178-0.017-249.258 0-86.235 0.017-149.384 60.011-149.547 142.805-0.272 137.769-0.272 275.539-0.036 413.325 0.127 76.056 64.745 138.012 144.143 138.134 169.587 0.243 339.175 0.695 508.744-0.26 62.55-0.347 107.255-30.405 133.189-84.791 14.49-30.405-2.067-53.76-36.943-53.76-151.071-0.035-374.684 0.017-525.755 0.017-48.332 0-78.419-28.79-78.437-74.997-0.036-87.881-0.054-175.745-0.054-263.627 0.018-50.635 29.053-78.036 82.155-78.001 69.133 0.032 153.612 0.042 239.323 0.040zM471.063 213.049h217.629v-121.204c26.841 0 16.467-0.191 42.365 0.278 2.775 0.052 6.057 3.473 8.125 6.060 20.638 25.647 54.19 35.111 84.893 23.702 30.015-11.148 48.948-40.476 46.029-71.316-2.902-30.579-26.514-55.775-59.213-61.54-28.927-5.088-52.848 4.341-70.802 26.481-4.153 5.123-8.052 7.172-14.799 7.067-23.74-0.434-11.244-0.174-34.857-0.174 0-29.849-30.142-86.405-110.193-86.405-76.17 0-109.359 60.202-109.359 86.405-25.789 0-15.506 0.174-41.476-0.278-2.775-0.052-6.039-3.49-8.107-6.060-20.657-25.665-54.153-35.111-84.912-23.702-29.997 11.113-48.912 40.459-46.010 71.316 2.884 30.596 26.514 55.792 59.213 61.54 28.927 5.088 52.848-4.341 70.802-26.481 4.171-5.123 8.052-7.172 14.799-7.067 23.722 0.434 11.19 0.174 35.872 0.174v121.204zM693.946 601.058l-227.404 80.831v80.814l227.404-80.814v-80.831zM693.946 739.853l-227.404 80.831h227.404v-80.831zM693.946 462.264l-227.404 80.831v80.814l227.404-80.814v-80.831z" />
20
+ <glyph unicode="&#xe908;" glyph-name="icon-minify-combine" d="M715.731 383.715h-247.323l-358.048-358.048c-25.403-25.403-66.093-25.389-91.198-0.285-25.28 25.28-24.977 65.935 0.285 91.198l331.421 331.421-331.421 331.421c-25.262 25.262-25.565 65.918-0.285 91.198 25.105 25.105 65.795 25.118 91.198-0.285l358.048-358.048h247.323v163.14c0 17.961 11.44 23.27 25.222 12.124l270.982-219.152c13.93-11.265 13.782-29.649 0-40.795l-270.982-219.152c-13.93-11.265-25.222-5.399-25.222 12.124v163.14z" />
21
+ <glyph unicode="&#xe909;" glyph-name="icon-minify-defer" d="M192.478 639.717h-174.694c-17.773 0-23.148 11.273-11.905 25.178l230.119 284.628c11.345 14.033 29.47 13.905 40.713 0l230.119-284.628c11.345-14.033 5.912-25.178-11.905-25.178h-174.639v-638.62c0-35.589-28.611-64.343-63.904-64.343-35.539 0-63.904 28.807-63.904 64.343v638.62zM831.52 256.283h174.639c17.818 0 23.25-11.146 11.905-25.178l-230.119-284.628c-11.243-13.905-29.367-14.033-40.713 0l-230.119 284.628c-11.242 13.906-5.868 25.178 11.905 25.178h174.694v638.62c0 35.536 28.365 64.343 63.904 64.343 35.293 0 63.904-28.754 63.904-64.343v-638.62z" />
22
+ <glyph unicode="&#xe90a;" glyph-name="icon-minify-footer" d="M0 384c0 18 6.167 33.167 18.5 45.5s27.5 18.5 45.5 18.5h896c17.333 0 32.333-6.333 45-19s19-27.667 19-45v-384c0-18-6.167-33.167-18.5-45.5s-27.5-18.5-45.5-18.5h-896c-17.333 0-32.333 6.333-45 19s-19 27.667-19 45v384zM0 672c0 8.667 3.167 16.167 9.5 22.5s13.833 9.5 22.5 9.5h960c8.667 0 16.167-3.167 22.5-9.5s9.5-13.833 9.5-22.5c0-8.667-3.167-16.167-9.5-22.5s-13.833-9.5-22.5-9.5h-960c-8.667 0-16.167 3.167-22.5 9.5s-9.5 13.833-9.5 22.5zM0 800c0 8.667 3.167 16.167 9.5 22.5s13.833 9.5 22.5 9.5h960c8.667 0 16.167-3.167 22.5-9.5s9.5-13.833 9.5-22.5c0-8.667-3.167-16.167-9.5-22.5s-13.833-9.5-22.5-9.5h-960c-8.667 0-16.167 3.167-22.5 9.5s-9.5 13.833-9.5 22.5zM0 928c0 8.667 3.167 16.167 9.5 22.5s13.833 9.5 22.5 9.5h960c8.667 0 16.167-3.167 22.5-9.5s9.5-13.833 9.5-22.5c0-8.667-3.167-16.167-9.5-22.5s-13.833-9.5-22.5-9.5h-960c-8.667 0-16.167 3.167-22.5 9.5s-9.5 13.833-9.5 22.5zM0 544c0 8.667 3.167 16.167 9.5 22.5s13.833 9.5 22.5 9.5h960c8.667 0 16.167-3.167 22.5-9.5s9.5-13.833 9.5-22.5c0-8.667-3.167-16.167-9.5-22.5s-13.833-9.5-22.5-9.5h-960c-8.667 0-16.167 3.167-22.5 9.5s-9.5 13.833-9.5 22.5z" />
23
+ <glyph unicode="&#xe90b;" glyph-name="icon-minify" d="M244.547 72.901c-2.278-3.513-4.025-7.556-6.921-10.47-34.48-34.728-68.943-69.491-103.812-103.83-23.181-22.846-57.132-28.743-86.369-15.996-28.495 12.429-48.022 42.249-47.263 73.092 0.53 21.787 8.686 40.466 24.205 55.949 33.845 33.774 67.566 67.655 101.429 101.394 2.931 2.931 6.515 5.191 10.734 8.492-4.59 4.961-7.45 8.263-10.558 11.37-29.749 29.784-59.551 59.551-89.353 89.318-1.871 1.889-4.696 3.478-5.402 5.738-2.278 7.203-6.762 15.801-4.573 21.681 1.73 4.696 11.988 8.598 18.52 8.722 43.237 0.742 86.493 0.371 129.73 0.371 59.551-0.018 119.102-0.035 178.67-0.053 3.407-0.018 6.85 0.071 10.222-0.335 14.265-1.66 18.414-6.003 18.52-20.568 0.23-29.979 0.141-59.957 0.141-89.936 0-74.77 0.018-149.522-0.035-224.291-0.018-8.58 1.589-18.079-9.304-22.122-10.275-3.831-17.514 1.677-24.135 8.316-30.596 30.579-61.14 61.193-91.507 92.001-3.16 3.196-4.961 7.733-7.398 11.635-1.854-0.159-3.69-0.318-5.544-0.477zM886.027 186.007c5.756-6.215 8.21-9.022 10.823-11.652 34.586-34.675 69.438-69.085 103.706-104.077 21.31-21.787 28.46-48.040 19.756-77.542-8.545-28.955-28.107-47.598-57.379-54.325-28.178-6.462-53.371 0.689-74.152 21.416-34.675 34.604-69.279 69.244-103.936 103.848-2.383 2.383-4.89 4.643-7.945 7.521-3.319-3.107-6.391-5.844-9.287-8.757-29.802-29.802-59.568-59.639-89.37-89.441-2.666-2.684-5.12-6.462-8.386-7.503-6.426-2.030-14.442-5.049-19.738-2.807-4.308 1.801-7.839 10.717-7.874 16.508-0.512 73.287-0.335 146.591-0.318 219.878 0 32.662-0.088 65.324 0.141 97.986 0.106 16.578 5.191 21.804 21.998 21.839 105.896 0.106 211.791 0.106 317.704-0.071 15.96-0.035 22.74-13.118 14.212-26.748-2.383-3.796-5.756-7.044-8.969-10.24-29.802-29.802-59.586-59.622-89.6-89.212-2.895-2.86-7.221-4.255-11.388-6.621zM245.691 823.257c31.55 31.497 60.804 60.716 90.077 89.918 5.65 5.632 10.593 12.535 17.284 16.366 5.932 3.407 14.195 5.455 20.78 4.326 8.563-1.483 8.439-10.346 8.439-17.743-0.053-105.19-0.053-210.397-0.177-315.586-0.018-18.573-4.89-23.128-24.029-23.128-104.377-0.053-208.772-0.159-313.149 0.3-6.25 0.035-14.76 3.249-18.149 7.945-5.297 7.309-1.801 16.207 4.502 22.669 15.413 15.731 31.055 31.232 46.645 46.786 19.050 18.997 38.135 37.941 57.891 57.609-3.531 3.725-6.268 6.744-9.163 9.64-34.551 34.692-69.455 69.067-103.618 104.166-21.257 21.822-28.213 48.234-19.121 77.648 9.039 29.29 29.308 47.687 59.127 53.937 27.913 5.862 52.542-1.977 72.863-22.334 34.074-34.11 68.166-68.202 102.17-102.418 2.648-2.666 4.608-6.056 7.627-10.099zM775.107 822.418c39.936 40.042 76.676 77.365 113.964 114.123 38.082 37.535 100.087 28.548 125.175-17.673 16.967-31.285 11.582-67.902-14.46-94.226-33.916-34.269-68.166-68.202-102.259-102.294-2.878-2.895-5.597-5.967-9.551-10.187 21.204-20.833 41.807-40.978 62.287-61.228 13.489-13.347 27.224-26.483 40.042-40.466 4.29-4.679 7.698-11.476 8.545-17.708 1.359-9.905-5.491-15.219-17.867-15.289-31.514-0.159-63.011-0.071-94.508-0.053-72.492 0.035-144.984 0.088-217.476 0.141-23.587 0-27.648 4.078-27.63 27.913 0.053 102.912 0.159 205.807 0.23 308.719 0.018 7.98-0.918 16.455 8.616 20.286 9.551 3.814 17.108-0.477 23.552-6.886 30.402-30.279 60.681-60.663 90.836-91.171 3.708-3.761 6.409-8.492 10.505-14.001z" />
24
+ <glyph unicode="&#xe90c;" glyph-name="icon-performancetest" d="M414.582 28.434c0 0 47.76-56.244 94.35-92.434-281.355 1.654-508.932 230.226-508.932 511.98 0 121.119 42.080 232.392 112.38 320.061 45.419-18.706 88.372-38.523 105.367-53.542 0 0 39.525-78.040 66.888-136.822 27.364-58.784 46.621-91.215 54.728-161.147s65.874-184.457 168.235-221.958c-66.89-96.282-93.017-166.138-93.017-166.138zM486.997 592.482c0 0-31.085 196.004-244.927 145.327-41.987 18.926-81.243 34.231-116.173 46.426 93.863 107.695 232.029 175.765 386.104 175.765 190.936 0 357.439-104.533 445.464-259.481-62.831-10.027-227.191-34.434-402.291-45.478-33.885-2.138-56.036-36.23-68.177-62.559zM625.494 376.95l392.255 151.125c4.101-26.098 6.25-52.844 6.25-80.095 0-261.811-196.503-477.695-450.059-508.278-0.155 19.095 0.341 36.429 1.25 51.945 2.538 43.363 11.636 86.080 26.945 126.729 15.191 40.335 38.054 118.875 31.131 213.019-1.132 15.42-3.853 30.652-7.773 45.554z" />
25
+ <glyph unicode="&#xe90d;" glyph-name="icon-reports" d="M42.667 178.59v414.476h170.667v-414.476h-170.667zM554.667 178.59v704.61h170.709v-704.61h-170.709zM810.667 178.59v580.267h170.667v-580.267h-170.667zM298.667 178.59v580.267h170.667v-580.267h-170.667zM981.333 95.695c23.552 0 42.667-18.569 42.667-41.448s-19.115-41.448-42.667-41.448h-938.667c-23.552 0-42.667 18.569-42.667 41.448s19.115 41.448 42.667 41.448h938.667z" />
26
+ <glyph unicode="&#xe90e;" glyph-name="icon-restore" d="M902.64 323.64c-54.449-169.391-209.853-291.64-393.065-291.64-132.494 0-254.648 64.449-332.218 171.518l94.867 72.464c55.492-76.596 142.639-122.575 237.351-122.575 130.156 0 240.664 86.376 280.121 206.348l-66.184-49.013c-23.042-17.064-54.657-11.593-70.614 12.219s-10.213 56.949 12.829 74.013l220.862 163.561 129.987-228.053c14.243-24.988 6.22-57.64-17.919-72.932s-55.254-7.431-69.497 17.557l-26.522 46.531zM121.36 572.36c54.449 169.391 209.853 291.64 393.065 291.64 132.494 0 254.648-64.449 332.218-171.518l-94.867-72.464c-55.492 76.596-142.639 122.575-237.351 122.575-130.156 0-240.664-86.376-280.121-206.348l66.184 49.013c23.042 17.064 54.657 11.593 70.614-12.219s10.213-56.949-12.829-74.013l-220.862-163.561-129.987 228.053c-14.243 24.988-6.22 57.64 17.919 72.932s55.254 7.431 69.497-17.557l26.522-46.531z" />
27
+ <glyph unicode="&#xe90f;" glyph-name="icon-smush" d="M0 908.8l51.757-92.949 460.375-828.651 511.868 921.6h-1024zM512.002 104.813l-414.733 747.178h829.463l-414.73-747.178zM213.99 782.555l298.011-536.892 298.008 536.892h-596.019zM311.259 722.586h401.485l-200.742-361.655-200.742 361.655z" />
28
+ <glyph unicode="&#xe910;" glyph-name="icon-minify-inline" d="M42.667 960h938.667c23.564 0 42.667-19.103 42.667-42.667v0c0-23.564-19.103-42.667-42.667-42.667h-938.667c-23.564 0-42.667 19.103-42.667 42.667v0 0c0 23.564 19.103 42.667 42.667 42.667v0zM42.667 362.667h938.667c23.564 0 42.667-19.103 42.667-42.667s-19.103-42.667-42.667-42.667h-938.667c-23.564 0-42.667 19.103-42.667 42.667s19.103 42.667 42.667 42.667v0zM42.667 192h938.667c23.564 0 42.667-19.103 42.667-42.667s-19.103-42.667-42.667-42.667h-938.667c-23.564 0-42.667 19.103-42.667 42.667s19.103 42.667 42.667 42.667v0zM42.667 21.333h938.667c23.564 0 42.667-19.103 42.667-42.667s-19.103-42.667-42.667-42.667h-938.667c-23.564 0-42.667 19.103-42.667 42.667s19.103 42.667 42.667 42.667v0zM85.333 789.333h853.333c47.128 0 85.333-38.205 85.333-85.333v-170.667c0-47.128-38.205-85.333-85.333-85.333h-853.333c-47.128 0-85.333 38.205-85.333 85.333v170.667c0 47.128 38.205 85.333 85.333 85.333v0z" />
29
+ <glyph unicode="&#xe911;" glyph-name="wpmudev-icon-eye" d="M512 223.915c123.759 0 224.085 100.326 224.085 224.085s-100.326 224.085-224.085 224.085c-123.759 0-224.085-100.326-224.085-224.085s100.326-224.085 224.085-224.085zM0 448s136.533 352.085 512 352.085 512-352.085 512-352.085-136.533-352.085-512-352.085-512 352.085-512 352.085zM512 352.085c52.972 0 95.915 42.942 95.915 95.915s-42.942 95.915-95.915 95.915c-52.972 0-95.915-42.942-95.915-95.915s42.942-95.915 95.915-95.915z" />
30
+ <glyph unicode="&#xe912;" glyph-name="wpmudev-icon-wrench-tool" d="M985.6 795.307l-162.133-162.133c-2.102-0.132-4.559-0.207-7.034-0.207-65.98 0-119.467 53.487-119.467 119.467 0 2.475 0.075 4.931 0.224 7.369l62.106 61.788 100.011 100.011c1.55 1.519 2.51 3.634 2.51 5.973s-0.961 4.454-2.509 5.972c-0.592 0.532-1.266 0.988-1.998 1.344l-0.052 0.023h-1.365c-33.663 15.322-73.006 24.252-114.435 24.252-155.806 0-282.112-126.306-282.112-282.112 0-30.298 4.776-59.48 13.616-86.835l-294.958-292.404c-98.646-1.646-177.982-81.999-177.982-180.883 0-99.912 80.995-180.907 180.907-180.907 98.884 0 179.237 79.336 180.881 177.827l294.402 294.725c25.684-8.52 55.252-13.435 85.968-13.435 155.618 0 281.771 126.153 281.771 281.771 0 41.642-9.033 81.175-25.248 116.745l0.72-0.228c-0.311 0.584-0.651 1.087-1.036 1.551-1.507 1.535-3.622 2.495-5.961 2.495s-4.454-0.961-5.972-2.509zM256 116.907c-0.194-41.137-33.587-74.41-74.751-74.41-41.284 0-74.752 33.468-74.752 74.752 0 41.164 33.273 74.557 74.391 74.751 0.12 0.001 0.24 0.001 0.361 0.001 41.284 0 74.752-33.468 74.752-74.752 0-0.12 0-0.241-0.001-0.361z" />
31
+ <glyph unicode="&#xe913;" glyph-name="wpmudev-icon-profile-male" horiz-adv-x="1019" d="M978.261 134.144c-43.008 70.997-144.043 85.333-194.56 102.4s-147.627 87.893-147.627 87.893v51.2c19.87 18.419 36.867 39.546 50.502 62.877l0.698 1.294c2.048 3.584 3.755 6.997 5.461 10.24v1.365c1.365 3.072 2.56 5.803 3.584 8.533v1.877c0.943 2.416 1.88 5.437 2.626 8.532 1.791 8.072 3.238 17.391 4.129 26.872 9.117 3.338 13.725-1.612 25.331 28.255 13.141 34.133 35.328 109.909 20.821 125.952-3.371 3.949-8.353 6.437-13.916 6.437-3.855 0-7.432-1.195-10.379-3.234 7.133 29.653 11.189 63.652 11.189 98.599 0 8.856-0.26 17.651-0.774 26.378-6.599 106.316-111.73 167.927-209.010 177.484-107.861 10.581-105.131-8.363-116.736-46.763-78.848 1.195-112.299-71.339-112.299-71.339-19.115-43.691-20.309-100.693-3.584-182.613-2.887 2-6.463 3.195-10.318 3.195-5.563 0-10.546-2.488-13.895-6.412-14.528-16.068 7.659-92.356 20.8-125.977s17.067-24.235 26.965-27.819c0-4.437 1.365-22.187 2.389-26.795 13.335-37.939 35.415-69.97 63.908-94.837l0.263-52.79s-97.28-70.997-147.797-87.893-151.381-31.744-194.389-102.4-41.643-198.656-41.643-198.656h1019.392s1.877 127.147-41.131 198.144z" />
32
+ <glyph unicode="&#xe914;" glyph-name="wpmudev-icon-page" horiz-adv-x="717" d="M716.8 891.733v0 47.787c0 11.311-9.169 20.48-20.48 20.48h-389.12l-307.2-307.2v-696.32c0-11.311 9.169-20.48 20.48-20.48h675.84c11.311 0 20.48 9.169 20.48 20.48v29.013zM117.931 53.931v557.909h209.749c11.311 0 20.48 9.169 20.48 20.48v209.749h250.88v-788.139z" />
33
+ <glyph unicode="&#xe915;" glyph-name="wpmudev-icon-academy" horiz-adv-x="1353" d="M676.352 42.325c-73.045 0-382.976 69.973-382.976 210.091v157.013l370.859-151.723c3.558-1.498 7.693-2.369 12.032-2.369s8.474 0.87 12.241 2.446l366.553 149.938 4.096-2.048v-153.6c0-140.117-309.76-210.091-382.805-210.091zM1266.517 21.333l-71.851 87.211-72.021-87.211v403.968c0 3.755 0 18.603 0 18.603l-201.728 102.4 345.941-76.8zM1184.427 529.067l-394.069 77.312c-0.322 0.050-0.694 0.079-1.072 0.079-4.053 0-7.339-3.286-7.339-7.339 0-2.399 1.151-4.529 2.931-5.868l212.328-140.814-320.853-131.243-676.352 276.821 676.352 276.651 676.352-276.651z" />
34
+ </font></defs></svg>
_src/admin/fonts/hummingbird.ttf ADDED
Binary file
_src/admin/fonts/hummingbird.woff ADDED
Binary file
_src/admin/fonts/wphb.eot ADDED
Binary file
_src/admin/fonts/wphb.svg ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
3
+ <svg xmlns="http://www.w3.org/2000/svg">
4
+ <metadata>Generated by IcoMoon</metadata>
5
+ <defs>
6
+ <font id="icomoon" horiz-adv-x="1024">
7
+ <font-face units-per-em="1024" ascent="960" descent="-64" />
8
+ <missing-glyph horiz-adv-x="1024" />
9
+ <glyph unicode="&#x20;" horiz-adv-x="512" d="" />
10
+ <glyph unicode="&#xe900;" glyph-name="hb-black" d="M243.833 739.689c215.087 51.368 249.263-143.657 249.263-143.657s18.679 66.415 57.352 66.415c131.446 0 335.534 30.406 405.165 41.509-90.137 154.223-254.902 256.186-443.482 256.186-151.958 0-288.453-66.206-382.213-171.347zM414.955 25.971s4.531 48.428 90.836 170.465c-181.569 86.478-172.644 284.235-172.644 284.235s-51.368 100.487-113.874 231.484l-106.333 56.591c-70.355-86.948-112.947-198.882-112.947-320.763 0-282.741 229.207-511.948 511.948-511.948 0.015 0 0.029 0 0.044 0h2.592zM626.306 377.97c23.799-252.238-43.862-177.833-49.95-437.958 253.747 33.26 447.628 248.132 447.628 508.288 0 28.158-2.271 55.786-6.641 82.709-151.702-62.653-358.211-142.109-391.038-153.039z" />
11
+ </font></defs></svg>
_src/admin/fonts/wphb.ttf ADDED
Binary file
_src/admin/fonts/wphb.woff ADDED
Binary file
_src/admin/image/dev-team.png ADDED
Binary file
_src/admin/image/dev-team@2x.png ADDED
Binary file
_src/admin/image/graphic-hb-cf-sell@2x.png ADDED
Binary file
_src/admin/image/graphic-hb-minify-summary.png ADDED
Binary file
_src/admin/image/graphic-hb-minify-summary@2x.png ADDED
Binary file
_src/admin/image/hb-graphic-dash-top.png ADDED
Binary file
_src/admin/image/hb-graphic-dash-top@2x.png ADDED
Binary file
_src/admin/image/hb-graphic-gravatarcaching-disabled.png ADDED
Binary file
_src/admin/image/hb-graphic-gravatarcaching-disabled@2x.png ADDED
Binary file
_src/admin/image/hb-graphic-minify-summary.png ADDED
Binary file
_src/admin/image/hb-graphic-minify-summary@2x.png ADDED
Binary file
_src/admin/image/hb-graphic-pagecaching-disabled.png ADDED
Binary file
_src/admin/image/hb-graphic-pagecaching-disabled@2x.png ADDED
Binary file
_src/admin/image/hb-graphic-performancetest-top.png ADDED
Binary file
_src/admin/image/hb-graphic-reports-disabled@1x.png ADDED
Binary file
_src/admin/image/hb-graphic-reports-disabled@2x.png ADDED
Binary file
_src/admin/image/hb-graphic-upsell-reports.png ADDED
Binary file
_src/admin/image/hb-graphic-upsell-reports@2x.png ADDED
Binary file
_src/admin/image/hb-graphic-upsell-uptime.png ADDED
Binary file
_src/admin/image/hb-graphic-upsell-uptime@2x.png ADDED
Binary file
_src/admin/image/hb-graphic-uptime-disabled@1x.png ADDED
Binary file
_src/admin/image/hb-graphic-uptime-disabled@2x.png ADDED
Binary file
_src/admin/image/hb-graphic-uptime-up.png ADDED
Binary file
_src/admin/image/hb-graphic-uptime-up@2x.png ADDED
Binary file
_src/admin/image/hummingbird-circle.png ADDED
Binary file
_src/admin/image/hummingbird-circle@1x.jpg ADDED
Binary file
_src/admin/image/hummingbird-modal-quicksetup.png ADDED
Binary file
_src/admin/image/hummingbird-modal-quicksetup@2x.png ADDED
Binary file
_src/admin/image/hummingbird-upsell-minify.png ADDED
Binary file
_src/admin/image/hummingbird-upsell-minify@2x.png ADDED
Binary file
_src/admin/image/icon-uptime-small.png ADDED
Binary file
_src/admin/image/icon-uptime.png ADDED
Binary file
_src/admin/image/smush-share-widget.png ADDED
Binary file
_src/admin/image/smush-share-widget@2x.png ADDED
Binary file
_src/admin/image/uptime-average-response-time-placeholder.png ADDED
Binary file
_src/admin/image/websiteup.png ADDED
Binary file
_src/admin/js/admin-caching.js CHANGED
@@ -10,10 +10,14 @@ import Fetcher from './utils/fetcher';
10
  $serverSelector: null,
11
  $serverInstructions: [],
12
  $snippets: [],
 
13
 
14
  init: function () {
15
  let self = this,
16
- cloudflareLink = $('#wphb-box-caching-settings #connect-cloudflare-link');
 
 
 
17
 
18
  new Clipboard('.wphb-code-snippet .button');
19
 
@@ -37,11 +41,49 @@ import Fetcher from './utils/fetcher';
37
  self.$snippets.LiteSpeed = $('#wphb-code-snippet-litespeed').find('pre').first();
38
  self.$snippets.nginx = $('#wphb-code-snippet-nginx').find('pre').first();
39
 
 
 
 
 
 
 
 
 
 
40
  let instructionsList = $( '.wphb-server-instructions' );
41
  instructionsList.each( function() {
42
  self.$serverInstructions[ $(this).data('server') ] = $(this);
43
  });
44
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
45
  this.showServerInstructions( this.selectedServer );
46
 
47
  this.$serverSelector.change( function() {
@@ -62,20 +104,30 @@ import Fetcher from './utils/fetcher';
62
  if ( 'expiry-all-types' === $(this).attr('id') ) {
63
  expirySettingsForm.find( "[data='expiry-single-type']" ).hide();
64
  expirySettingsForm.find( "[data='expiry-all-types']" ).show();
 
65
  } else if ( 'expiry-single-type' === $(this).attr('id') ) {
66
  expirySettingsForm.find( "[data='expiry-all-types']" ).hide();
67
  expirySettingsForm.find( "[data='expiry-single-type']" ).show();
 
68
  }
69
  }
70
  });
71
  expiryInput.on( 'click', function () {
 
72
  if ( 'expiry-all-types' === $(this).attr('id') ) {
73
  expirySettingsForm.find( "[data='expiry-single-type']" ).hide();
74
  expirySettingsForm.find( "[data='expiry-all-types']" ).show();
 
 
75
  } else if ( 'expiry-single-type' === $(this).attr('id') ) {
76
  expirySettingsForm.find( "[data='expiry-all-types']" ).hide();
77
  expirySettingsForm.find( "[data='expiry-single-type']" ).show();
 
 
78
  }
 
 
 
79
  });
80
 
81
  $( '.tab label' ).on( 'click', function() {
@@ -83,6 +135,28 @@ import Fetcher from './utils/fetcher';
83
  $( this ).addClass( 'active' );
84
  });
85
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
86
  return this;
87
  },
88
 
@@ -94,7 +168,6 @@ import Fetcher from './utils/fetcher';
94
  let jq = $( '#wphb-server-instructions-' + this.selectedServer.toLowerCase() ).find( '.tabs' ),
95
  current = jq.find('.tab > input:checked').parent(),
96
  content = current.find('.content');
97
-
98
  jq.height( content.outerHeight() + current.outerHeight() - 6 );
99
  },
100
 
@@ -119,6 +192,45 @@ import Fetcher from './utils/fetcher';
119
  else {
120
  $( '#enable-cache-wrap' ).hide();
121
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
122
  }
123
  };
124
  }( jQuery ));
10
  $serverSelector: null,
11
  $serverInstructions: [],
12
  $snippets: [],
13
+ selectedExpiryType: '',
14
 
15
  init: function () {
16
  let self = this,
17
+ cloudflareLink = $('#wphb-box-caching-settings #connect-cloudflare-link, #wphb-box-caching-summary #connect-cloudflare-link'),
18
+ cloudFlareDismissLink = $('#dismiss-cf-notice'),
19
+ cloudFlareDashNotice = $('.cf-dash-notice'),
20
+ viewSnippetLink = $('#view-snippet-code');
21
 
22
  new Clipboard('.wphb-code-snippet .button');
23
 
41
  self.$snippets.LiteSpeed = $('#wphb-code-snippet-litespeed').find('pre').first();
42
  self.$snippets.nginx = $('#wphb-code-snippet-nginx').find('pre').first();
43
 
44
+ viewSnippetLink.on('click', function(e) {
45
+ e.preventDefault();
46
+ let serverInstructions = $( '#wphb-server-instructions-' + self.selectedServer.toLowerCase() );
47
+ $('#manual-' + self.selectedServer.toLowerCase() ).trigger("click");
48
+ let caching = window.WPHB_Admin.getModule( 'caching' );
49
+ caching.updateTabSize();
50
+ $('html, body').animate({ scrollTop: serverInstructions.offset().top - 50 }, 'slow');
51
+ });
52
+
53
  let instructionsList = $( '.wphb-server-instructions' );
54
  instructionsList.each( function() {
55
  self.$serverInstructions[ $(this).data('server') ] = $(this);
56
  });
57
 
58
+ let expirySelectors = $( '.wphb-expiry-select' );
59
+ let expiryChangeNotice = $( '#wphb-expiry-change-notice' );
60
+
61
+ expirySelectors.each( function() {
62
+ const type = $(this).data('type');
63
+ if ( type ) {
64
+ $(this).change( function() {
65
+ // Expiration selector has changed
66
+ ( function() {
67
+ let expiry_times = [];
68
+ if ( 'all' === type ) {
69
+ expiry_times = self.getExpiryTimes( 'all' );
70
+ } else {
71
+ expiry_times = self.getExpiryTimes();
72
+ }
73
+ // Reload the code snippet
74
+ self.reloadSnippets( expiry_times );
75
+ expiryChangeNotice.slideDown();
76
+
77
+ })( this );
78
+ });
79
+ } else {
80
+ $(this).change( function () {
81
+ expiryChangeNotice.slideDown();
82
+ })
83
+ }
84
+
85
+ });
86
+
87
  this.showServerInstructions( this.selectedServer );
88
 
89
  this.$serverSelector.change( function() {
104
  if ( 'expiry-all-types' === $(this).attr('id') ) {
105
  expirySettingsForm.find( "[data='expiry-single-type']" ).hide();
106
  expirySettingsForm.find( "[data='expiry-all-types']" ).show();
107
+ self.selectedExpiryType = 'all';
108
  } else if ( 'expiry-single-type' === $(this).attr('id') ) {
109
  expirySettingsForm.find( "[data='expiry-all-types']" ).hide();
110
  expirySettingsForm.find( "[data='expiry-single-type']" ).show();
111
+ self.selectedExpiryType = 'single';
112
  }
113
  }
114
  });
115
  expiryInput.on( 'click', function () {
116
+ let expiry_times = [];
117
  if ( 'expiry-all-types' === $(this).attr('id') ) {
118
  expirySettingsForm.find( "[data='expiry-single-type']" ).hide();
119
  expirySettingsForm.find( "[data='expiry-all-types']" ).show();
120
+ expiry_times = self.getExpiryTimes( 'all' );
121
+ self.selectedExpiryType = 'all';
122
  } else if ( 'expiry-single-type' === $(this).attr('id') ) {
123
  expirySettingsForm.find( "[data='expiry-all-types']" ).hide();
124
  expirySettingsForm.find( "[data='expiry-single-type']" ).show();
125
+ expiry_times = self.getExpiryTimes();
126
+ self.selectedExpiryType = 'single';
127
  }
128
+
129
+ // Reload the code snippet
130
+ self.reloadSnippets( expiry_times );
131
  });
132
 
133
  $( '.tab label' ).on( 'click', function() {
135
  $( this ).addClass( 'active' );
136
  });
137
 
138
+
139
+ cloudFlareDismissLink.click( function(e) {
140
+ e.preventDefault();
141
+ Fetcher.notice.dismissCloudflareDash();
142
+ cloudFlareDashNotice.slideUp();
143
+ cloudFlareDashNotice.parent().addClass('no-background-image');
144
+
145
+ });
146
+
147
+ let activateButton = $( '.activate-button' );
148
+ activateButton.click( function () {
149
+ let expiry_times = [];
150
+ if ( '' !== self.selectedExpiryType ) {
151
+ if ('all' === self.selectedExpiryType) {
152
+ expiry_times = self.getExpiryTimes('all');
153
+ } else {
154
+ expiry_times = self.getExpiryTimes();
155
+ }
156
+ Fetcher.caching.setExpiration( self.selectedExpiryType, expiry_times );
157
+ }
158
+ });
159
+
160
  return this;
161
  },
162
 
168
  let jq = $( '#wphb-server-instructions-' + this.selectedServer.toLowerCase() ).find( '.tabs' ),
169
  current = jq.find('.tab > input:checked').parent(),
170
  content = current.find('.content');
 
171
  jq.height( content.outerHeight() + current.outerHeight() - 6 );
172
  },
173
 
192
  else {
193
  $( '#enable-cache-wrap' ).hide();
194
  }
195
+ },
196
+
197
+ reloadSnippets: function( expiry_times ) {
198
+ let self = this;
199
+ let stop = false;
200
+
201
+ for ( let i in self.$snippets ) {
202
+ if ( self.$snippets.hasOwnProperty( i ) ) {
203
+ Fetcher.caching.reloadSnippets( i, expiry_times )
204
+ .then( ( response ) => {
205
+ if ( stop ) {
206
+ return;
207
+ }
208
+
209
+ self.$snippets[response.type].text( response.code );
210
+ });
211
+ }
212
+ }
213
+ },
214
+
215
+ getExpiryTimes: function( type ) {
216
+ let expiry_times = [];
217
+ if ( 'all' === type ){
218
+ let all = $('#set-expiry-all').val();
219
+ expiry_times = {
220
+ caching_expiry_javascript: all,
221
+ caching_expiry_css: all,
222
+ caching_expiry_media: all,
223
+ caching_expiry_images: all,
224
+ }
225
+ } else {
226
+ expiry_times = {
227
+ caching_expiry_javascript: $('#set-expiry-javascript').val(),
228
+ caching_expiry_css: $('#set-expiry-css').val(),
229
+ caching_expiry_media: $('#set-expiry-media').val(),
230
+ caching_expiry_images: $('#set-expiry-images').val(),
231
+ };
232
+ }
233
+ return expiry_times;
234
  }
235
  };
236
  }( jQuery ));
_src/admin/js/admin-cloudflare.js CHANGED
@@ -4,15 +4,15 @@ import Fetcher from './utils/fetcher';
4
  WPHB_Admin.cloudflare = {
5
  module: 'cloudflare',
6
  $cfSelector: false,
7
- $spinner: false,
8
 
9
  init: function () {
10
- this.$spinner = $('.wphb-spinner');
11
  this.$cfSelector = $('#set-expiry-all');
 
12
  let self = this;
13
  if ( wphb.cloudflare.is.connected ) {
14
- this.$cfSelector.change( function() {
15
- self.setExpiry.call( self, [this] );
 
16
  } );
17
  }
18
 
@@ -20,16 +20,12 @@ import Fetcher from './utils/fetcher';
20
  },
21
 
22
  setExpiry: function( selector ) {
23
- this.displaySpinner();
24
  const value = $(selector).val();
25
  Fetcher.cloudflare.setExpiration( value )
26
  .then( () => {
27
  window.location.reload();
28
  });
29
- },
30
-
31
- displaySpinner: function() {
32
- this.$spinner.css( 'visibility', 'visible' );
33
  }
 
34
  };
35
  }( jQuery ) );
4
  WPHB_Admin.cloudflare = {
5
  module: 'cloudflare',
6
  $cfSelector: false,
 
7
 
8
  init: function () {
 
9
  this.$cfSelector = $('#set-expiry-all');
10
+ let cfSetExpiryButton = $('#set-cf-expiry-button');
11
  let self = this;
12
  if ( wphb.cloudflare.is.connected ) {
13
+ cfSetExpiryButton.click( function(e) {
14
+ e.preventDefault();
15
+ self.setExpiry.call( self, self.$cfSelector );
16
  } );
17
  }
18
 
20
  },
21
 
22
  setExpiry: function( selector ) {
 
23
  const value = $(selector).val();
24
  Fetcher.cloudflare.setExpiration( value )
25
  .then( () => {
26
  window.location.reload();
27
  });
 
 
 
 
28
  }
29
+
30
  };
31
  }( jQuery ) );
_src/admin/js/admin-minification.js CHANGED
@@ -9,12 +9,11 @@ import Scanner from './minification/Scanner';
9
 
10
  WPHB_Admin.minification = {
11
 
 
12
  $checkFilesButton: null,
13
  $checkFilesResultsContainer : null,
14
- module: 'minification',
15
  checkURLSList: null,
16
  checkedURLS: 0,
17
- $spinner: null,
18
 
19
  init: function() {
20
  const self = this;
@@ -24,17 +23,16 @@ import Scanner from './minification/Scanner';
24
  this.scanner.onFinishStep = this.updateProgressBar;
25
  this.scanner.onFinish = ( response ) => {
26
  this.updateProgressBar( 100 );
27
- if ( wphb.minification.get.showCDNModal && true === response.show_cdn && $('#enable-cdn-modal').length ) {
28
- window.WDP.showOverlay( '#enable-cdn-modal', { class: 'wphb-modal small wphb-progress-modal no-close' } );
29
- } else {
30
- window.location.href = getLink( 'minification' );
31
- }
32
- };
33
 
 
 
 
 
 
 
34
 
35
  // Check files button
36
  this.$checkFilesButton = $( '#check-files' );
37
- this.$spinner = $('.spinner');
38
 
39
  if ( this.$checkFilesButton.length ) {
40
  this.$checkFilesButton.click( function( e ) {
@@ -50,19 +48,68 @@ import Scanner from './minification/Scanner';
50
  $('body').on( 'click', '#cancel-minification-check', ( e ) => {
51
  e.preventDefault();
52
  this.updateProgressBar( 0, true );
53
- this.scanner.cancel()
54
  .then( () => {
55
  window.location.href = getLink( 'minification' );
56
  });
57
 
58
  });
59
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
60
  // Filter action button on Minification page
61
  $('#wphb-minification-filter-button').on('click', function(e) {
62
  e.preventDefault();
63
- $('#wphb-minification-filter').toggle('slow');
 
64
  });
65
 
 
66
  $('.wphb-discard').click( function(e) {
67
  e.preventDefault();
68
 
@@ -70,15 +117,24 @@ import Scanner from './minification/Scanner';
70
  location.reload();
71
  }
72
  return false;
73
-
74
  });
75
 
 
76
  $( '.wphb-enqueued-files input' ).on( 'change', function() {
77
  $('.wphb-discard').attr( 'disabled', false );
78
  });
79
 
80
- $('#use_cdn').change( function() {
 
 
81
  const cdn_value = $(this).is(':checked');
 
 
 
 
 
 
 
82
  Fetcher.minification.toggleCDN( cdn_value )
83
  .then( () => {
84
  const notice = $('#wphb-notice-minification-advanced-settings-updated');
@@ -89,7 +145,11 @@ import Scanner from './minification/Scanner';
89
  });
90
  });
91
 
92
- this.rowsCollection = new WPHB_Admin.minification.RowsCollection();
 
 
 
 
93
 
94
  const rows = $('.wphb-border-row');
95
 
@@ -104,16 +164,19 @@ import Scanner from './minification/Scanner';
104
  self.rowsCollection.push( _row );
105
  });
106
 
 
107
  $('#wphb-s').keyup( function() {
108
  self.rowsCollection.addFilter( $(this).val(), 'primary' );
109
  self.rowsCollection.applyFilters();
110
  });
111
 
 
112
  $('#wphb-secondary-filter').change( function() {
113
  self.rowsCollection.addFilter( $(this).val(), 'secondary' );
114
  self.rowsCollection.applyFilters();
115
  });
116
 
 
117
  $('.filter-toggles').change( function() {
118
  const element = $(this);
119
  const what = element.data('toggles');
@@ -142,48 +205,28 @@ import Scanner from './minification/Scanner';
142
  }
143
  });
144
 
145
- const selectAll = $('#minification-bulk-file');
146
- selectAll.click( function() {
147
- const $this = $( this );
148
- let items = self.rowsCollection.getItems();
149
- for ( let i in items ) {
150
- if ( items.hasOwnProperty( i ) ) {
151
- if ( $this.is( ':checked' ) ) {
152
- items[i].select();
153
- }
154
- else {
155
- items[i].unSelect();
156
- }
157
- }
158
- }
159
- });
160
-
161
- // Include/exclude file checkbox
162
- $('.toggle-cross').on('click', function() {
163
- const $this = $(this);
164
- const checkbox = $this.find( 'input.toggle-include' );
165
- const row = self.rowsCollection.getItemById( $this.data( 'type' ), $this.data( 'handle' ) );
166
- // Mark the item as include or not in the rows list
167
- if ( row ) {
168
- row.change( 'include', ! checkbox.prop( 'checked' ) );
169
- row.getElement().find( 'input:not(.toggle-include)' ).prop('disabled', ! checkbox.prop( 'checked' ) );
170
- }
171
- });
172
-
173
- // Handle two CDN checkboxes on Minification page
174
- const checkboxes = $("input[type=checkbox][name=use_cdn]");
175
- checkboxes.change( function() {
176
- const checkedState = $(this).prop('checked');
177
-
178
- checkboxes.each( function() {
179
- this.checked = checkedState;
180
- });
181
- });
182
 
183
  /* Show details of minification row on mobile devices */
184
- $('body').on('click', '.wphb-minification-file-details', function() {
185
  if ( window.innerWidth < 783 ) {
186
- $(this).parent().find('.wphb-minification-row-details').toggle('slow');
 
187
  }
188
  });
189
 
9
 
10
  WPHB_Admin.minification = {
11
 
12
+ module: 'minification',
13
  $checkFilesButton: null,
14
  $checkFilesResultsContainer : null,
 
15
  checkURLSList: null,
16
  checkedURLS: 0,
 
17
 
18
  init: function() {
19
  const self = this;
23
  this.scanner.onFinishStep = this.updateProgressBar;
24
  this.scanner.onFinish = ( response ) => {
25
  this.updateProgressBar( 100 );
 
 
 
 
 
 
26
 
27
+ Fetcher.minification
28
+ .toggleCDN( $( 'input#enable_cdn' ).is(':checked') )
29
+ .then( () => {
30
+ window.location.href = getLink( 'minification' );
31
+ });
32
+ };
33
 
34
  // Check files button
35
  this.$checkFilesButton = $( '#check-files' );
 
36
 
37
  if ( this.$checkFilesButton.length ) {
38
  this.$checkFilesButton.click( function( e ) {
48
  $('body').on( 'click', '#cancel-minification-check', ( e ) => {
49
  e.preventDefault();
50
  this.updateProgressBar( 0, true );
51
+ this.scanner.cancel()
52
  .then( () => {
53
  window.location.href = getLink( 'minification' );
54
  });
55
 
56
  });
57
 
58
+ // Track changes done to minification files.
59
+ $(':input.toggle-checkbox').on('change', function() {
60
+ $(this).toggleClass('changed');
61
+ let changed = $('.wphb-minification-files').find('input.changed');
62
+
63
+ if ( changed.length === 0 ) {
64
+ $('.wphb-minification-changed-notice').slideUp('slow');
65
+ $('input[type=submit]').addClass('disabled');
66
+ } else {
67
+ $('.wphb-minification-changed-notice').slideDown('slow');
68
+ $('input[type=submit]').removeClass('disabled');
69
+ }
70
+ });
71
+
72
+ // Enable/disable bulk update button.
73
+ $(':input.wphb-minification-file-selector, :input.wphb-minification-bulk-file-selector').on('change', function() {
74
+ $(this).toggleClass('changed');
75
+ let changed = $('.wphb-minification-files').find('input.changed');
76
+ let bulkUpdateButton = $('#bulk-update');
77
+
78
+ if ( changed.length === 0 ) {
79
+ bulkUpdateButton.removeClass('button-grey');
80
+ bulkUpdateButton.addClass('button-notice disabled');
81
+ } else {
82
+ bulkUpdateButton.removeClass('button-notice disabled');
83
+ bulkUpdateButton.addClass('button-grey');
84
+ }
85
+ });
86
+
87
+ // Show warning before switching to advanced view
88
+ let switchButtons = $('.box-title-basic > a.wphb-switch-button, #wphb-dismissable a.wphb-switch-button');
89
+ switchButtons.on('click', function(e) {
90
+ e.preventDefault();
91
+ window.WDP.showOverlay("#wphb-advanced-minification-modal" );
92
+ Fetcher.minification.toggleView( 'advanced' );
93
+ });
94
+
95
+ // Switch back to basic mode
96
+ $('.box-title-advanced > a').on('click', function(e) {
97
+ e.preventDefault();
98
+ Fetcher.minification
99
+ .toggleView( 'basic' )
100
+ .then( () => {
101
+ window.location.href = getLink( 'minification' );
102
+ });
103
+ });
104
+
105
  // Filter action button on Minification page
106
  $('#wphb-minification-filter-button').on('click', function(e) {
107
  e.preventDefault();
108
+ $('.wphb-minification-filter').toggle('slow');
109
+ $('#wphb-minification-filter-button').toggleClass('active');
110
  });
111
 
112
+ // Discard changes button click
113
  $('.wphb-discard').click( function(e) {
114
  e.preventDefault();
115
 
117
  location.reload();
118
  }
119
  return false;
 
120
  });
121
 
122
+ // Enable discard button on any change
123
  $( '.wphb-enqueued-files input' ).on( 'change', function() {
124
  $('.wphb-discard').attr( 'disabled', false );
125
  });
126
 
127
+ // CDN checkbox update status
128
+ const checkboxes = $("input[type=checkbox][name=use_cdn]");
129
+ checkboxes.change( function() {
130
  const cdn_value = $(this).is(':checked');
131
+
132
+ // Handle two CDN checkboxes on Minification page
133
+ checkboxes.each( function() {
134
+ this.checked = cdn_value;
135
+ });
136
+
137
+ // Update CDN status
138
  Fetcher.minification.toggleCDN( cdn_value )
139
  .then( () => {
140
  const notice = $('#wphb-notice-minification-advanced-settings-updated');
145
  });
146
  });
147
 
148
+ /**
149
+ * Minification filters
150
+ * @type {RowsCollection|*}
151
+ */
152
+ this.rowsCollection = new WPHB_Admin.minification.RowsCollection();
153
 
154
  const rows = $('.wphb-border-row');
155
 
164
  self.rowsCollection.push( _row );
165
  });
166
 
167
+ // Filter search box
168
  $('#wphb-s').keyup( function() {
169
  self.rowsCollection.addFilter( $(this).val(), 'primary' );
170
  self.rowsCollection.applyFilters();
171
  });
172
 
173
+ // Filter dropdown
174
  $('#wphb-secondary-filter').change( function() {
175
  self.rowsCollection.addFilter( $(this).val(), 'secondary' );
176
  self.rowsCollection.applyFilters();
177
  });
178
 
179
+ // Refresh rows on any filter change
180
  $('.filter-toggles').change( function() {
181
  const element = $(this);
182
  const what = element.data('toggles');
205
  }
206
  });
207
 
208
+ // Handle select/deselect of all files of a certain type for use on bulk update
209
+ const selectAll = $('.wphb-minification-bulk-file-selector');
210
+ selectAll.click( function() {
211
+ const $this = $( this );
212
+ let items = self.rowsCollection.getItemsByDataType( $this.attr( 'data-type' ) );
213
+ for ( let i in items ) {
214
+ if ( items.hasOwnProperty( i ) ) {
215
+ if ( $this.is( ':checked' ) ) {
216
+ items[i].select();
217
+ }
218
+ else {
219
+ items[i].unSelect();
220
+ }
221
+ }
222
+ }
223
+ });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
224
 
225
  /* Show details of minification row on mobile devices */
226
+ $('body').on('click', '.wphb-border-row', function() {
227
  if ( window.innerWidth < 783 ) {
228
+ $(this).find('.wphb-minification-row-details').toggle();
229
+ $(this).find('.fileinfo-group').toggleClass('opened');
230
  }
231
  });
232
 
_src/admin/js/minification/Row.js CHANGED
@@ -11,7 +11,8 @@ const Row = ( _element, _filter, _filter_sec ) => {
11
  $posFooter = $el.find( '.toggle-position-footer' ),
12
  $defer = $el.find( '.toggle-defer' ),
13
  $inline = $el.find( '.toggle-inline' ),
14
- $disableIcon = $el.find( '.toggle-cross > i' );
 
15
 
16
  if ( _filter_sec ) {
17
  filterSecondary = _filter_sec.toLowerCase();
@@ -70,12 +71,18 @@ const Row = ( _element, _filter, _filter_sec ) => {
70
  return selected;
71
  },
72
 
 
 
 
 
73
  select: function() {
74
  selected = true;
 
75
  },
76
 
77
  unSelect: function() {
78
  selected = false;
 
79
  },
80
 
81
  change: function( what, value ) {
11
  $posFooter = $el.find( '.toggle-position-footer' ),
12
  $defer = $el.find( '.toggle-defer' ),
13
  $inline = $el.find( '.toggle-inline' ),
14
+ $disableIcon = $el.find( '.toggle-cross > i' ),
15
+ $selectCheckbox = $el.find( '.wphb-minification-file-select input[type=checkbox]' );
16
 
17
  if ( _filter_sec ) {
18
  filterSecondary = _filter_sec.toLowerCase();
71
  return selected;
72
  },
73
 
74
+ isType: function( type ) {
75
+ return type === $selectCheckbox.attr( 'data-type' )
76
+ },
77
+
78
  select: function() {
79
  selected = true;
80
+ $selectCheckbox.prop( 'checked', true );
81
  },
82
 
83
  unSelect: function() {
84
  selected = false;
85
+ $selectCheckbox.prop( 'checked', false );
86
  },
87
 
88
  change: function( what, value ) {
_src/admin/js/minification/RowsCollection.js CHANGED
@@ -37,6 +37,18 @@ const RowsCollection = () => {
37
  return value;
38
  },
39
 
 
 
 
 
 
 
 
 
 
 
 
 
40
  getVisibleItems: function() {
41
  let visible = [];
42
  for ( let i in items ) {
37
  return value;
38
  },
39
 
40
+ getItemsByDataType: function( type ) {
41
+ let selected = [];
42
+
43
+ for ( let i in items ) {
44
+ if ( items[i].isType( type ) ) {
45
+ selected.push( items[i] );
46
+ }
47
+ }
48
+
49
+ return selected;
50
+ },
51
+
52
  getVisibleItems: function() {
53
  let visible = [];
54
  for ( let i in items ) {
_src/admin/js/utils/fetcher.js CHANGED
@@ -44,6 +44,16 @@ function Fetcher() {
44
  * Caching module actions.
45
  */
46
  caching: {
 
 
 
 
 
 
 
 
 
 
47
  /**
48
  * Set server type.
49
  *
@@ -52,6 +62,20 @@ function Fetcher() {
52
  setServer: ( value ) => {
53
  const action = actionPrefix + 'caching_set_server_type';
54
  return request( action, { value }, 'POST' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
55
  }
56
  },
57
 
@@ -140,6 +164,16 @@ function Fetcher() {
140
  return request( action, { value }, 'POST' );
141
  },
142
 
 
 
 
 
 
 
 
 
 
 
143
  /**
144
  * Start minification check.
145
  *
44
  * Caching module actions.
45
  */
46
  caching: {
47
+ /**
48
+ * Set expiration for browser caching.
49
+ *
50
+ * @param type File type.
51
+ * @param expiry_times Type expiry times.
52
+ */
53
+ setExpiration: ( type, expiry_times ) => {
54
+ const action = actionPrefix + 'caching_set_expiration';
55
+ return request( action, { type, expiry_times }, 'POST' );
56
+ },
57
  /**
58
  * Set server type.
59
  *
62
  setServer: ( value ) => {
63
  const action = actionPrefix + 'caching_set_server_type';
64
  return request( action, { value }, 'POST' );
65
+ },
66
+
67
+ /**
68
+ * Reload snippet.
69
+ *
70
+ * @param type Server type.
71
+ * @param expiry_times Type expiry times.
72
+ */
73
+ reloadSnippets: ( type, expiry_times ) => {
74
+ const action = actionPrefix + 'caching_reload_snippet';
75
+ return request( action, { type, expiry_times }, 'POST' )
76
+ .then( ( response ) => {
77
+ return response;
78
+ });
79
  }
80
  },
81
 
164
  return request( action, { value }, 'POST' );
165
  },
166
 
167
+ /**
168
+ * Toggle minification advanced mode.
169
+ *
170
+ * @param value
171
+ */
172
+ toggleView: ( value ) => {
173
+ const action = actionPrefix + 'minification_toggle_view';
174
+ return request( action, { value }, 'POST' );
175
+ },
176
+
177
  /**
178
  * Start minification check.
179
  *
_src/admin/scss/app.scss CHANGED
@@ -1,5 +1,2231 @@
 
 
 
 
 
 
 
 
 
 
1
  // Modules
2
- @import "modules/_variables";
3
- @import "modules/_functions";
4
- @import "modules/_mixins";
5
- @import "modules/_classes";
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // Common
2
+ @import "common/_variables";
3
+ @import "common/_functions";
4
+ @import "common/_mixins";
5
+ @import "common/_classes";
6
+ @import "common/_overwrites";
7
+ @import "common/_typography";
8
+ @import "common/_buttons";
9
+ @import "common/_layout";
10
+ @import "common/_modals";
11
  // Modules
12
+ @import "modules/_dashboard";
13
+ @import "modules/_performance";
14
+ @import "modules/_caching";
15
+ @import "modules/_gzip";
16
+ @import "modules/_minification";
17
+ @import "modules/_uptime";
18
+
19
+ /**
20
+ *
21
+ * -----------------------------------------------------------------------------
22
+ *
23
+ * 1. Extend/Override WPMU DEV Dashboard Styles
24
+ * 2. Common/General Styles
25
+ * 3. Components/Modules
26
+ * 10: Responsive/MQ
27
+ *
28
+ * -----------------------------------------------------------------------------
29
+ */
30
+
31
+ /* ****************************************************************************
32
+ * 1. EXTEND/OVERRIDE WPMUDEV DASHBOARD/WP STYLES
33
+ */
34
+ .wpmud .wrap-wp-hummingbird .mline {
35
+ margin-bottom: 30px;
36
+ }
37
+
38
+ .wpmud .select-list-container .list-value {
39
+ font-weight: 500 !important;
40
+ }
41
+
42
+ #wpbody-content {
43
+ padding-bottom: 25px;
44
+ }
45
+
46
+ .wpmud .with-bottom-border {
47
+ border-bottom: 1px solid #E6E6E6;
48
+ padding-bottom: 30px;
49
+ }
50
+
51
+ .wpmud #header {
52
+ position: relative;
53
+ margin-bottom: 0;
54
+ }
55
+
56
+ .wpmud .dev-overlay .title .title-action {
57
+ font-family: 'Roboto', sans-serif;
58
+ margin-top: 5px;
59
+ vertical-align: middle;
60
+ color: #888888;
61
+ font-size: 13px;
62
+ line-height: 30px;
63
+ margin-right: -20px;
64
+ }
65
+
66
+ .wpmud #header .actions.status {
67
+ left: 200px;
68
+ margin-top: 1px;
69
+ }
70
+
71
+ .wpmud .wrap-wphb-uptime > #header .actions.status {
72
+ left: 120px;
73
+ margin-top: 1px !important;
74
+ }
75
+
76
+ .wpmud #header .actions.status [tooltip]:after {
77
+ margin-left: 27px;
78
+ bottom: -60%;
79
+ }
80
+
81
+ .wpmud #header .actions.status [tooltip]:before {
82
+ bottom: 25%;
83
+ left: 100%;
84
+ border-right-color: #0B2F3F;
85
+ border-top: 5px solid transparent;
86
+ }
87
+
88
+ .wpmud #header .actions {
89
+ position: absolute;
90
+ display: flex;
91
+ align-items: center;
92
+ top: 5px;
93
+ right: 0;
94
+ }
95
+
96
+ .wpmud #header .actions > * {
97
+ display: inline-block;
98
+ margin-left: 10px;
99
+ }
100
+
101
+ .wpmud #header .actions.label-and-button > *:first-child {
102
+ margin-left: 0;
103
+ }
104
+
105
+ .wpmud #header .actions.label-and-button .actions-label {
106
+ color: #888888;
107
+ font-size: 13px;
108
+ line-height: 18px;
109
+ margin: 0;
110
+ text-align: right;
111
+ }
112
+
113
+ .wpmud #header .actions .header-label {
114
+ font-size: 12px;
115
+ color: #AAAAAA;
116
+ }
117
+
118
+ .wpmud #header ~ .sub-header {
119
+ margin-top: -15px;
120
+ margin-bottom: 30px;
121
+ }
122
+
123
+ .wpmud .select-list-container {
124
+ min-width: 100px;
125
+ }
126
+
127
+ .wpmud .select-list-container .list-value {
128
+ color: #333333;
129
+ font-weight: 400;
130
+ padding: 6px 8px 6px 15px;
131
+ }
132
+
133
+ .wpmud .list-table > tbody > tr:last-child > td {
134
+ border-bottom: 1px solid #eee;
135
+ }
136
+
137
+ .wpmud .list-table > thead > tr > th {
138
+ text-transform: none;
139
+ font-size: 13px;
140
+ font-weight: bold;
141
+ }
142
+
143
+ .wpmud .wphb-border-frame .table-header,
144
+ .wpmud .wphb-border-frame .table-row {
145
+ display: flex;
146
+ justify-content: space-between;
147
+ padding: 15px 80px 15px 30px;
148
+ }
149
+
150
+ .wpmud .wphb-border-frame .table-header {
151
+ color: #333333;
152
+ font-size: 13px;
153
+ font-weight: bold;
154
+ border-bottom: 1px solid #E6E6E6;
155
+ }
156
+
157
+ .wpmud .wphb-border-frame .table-row {
158
+ border-bottom: 1px solid #E6E6E6;
159
+ }
160
+
161
+ .wpmud .wphb-border-frame .table-row:last-child {
162
+ border-bottom: 0;
163
+ }
164
+
165
+ .wpmud .wphb-border-frame .list-table > thead > tr > th {
166
+ color: #333333;
167
+ font-size: 13px;
168
+ padding: 8px 0;
169
+ }
170
+
171
+ .wpmud .wphb-border-frame .list-table > thead > tr > th:first-child {
172
+ padding: 27px 30px;
173
+ }
174
+
175
+ .wpmud .wphb-border-frame .list-table > tbody > tr > td:first-child {
176
+ padding-left: 30px;
177
+ }
178
+
179
+ .wpmud .list-table > tbody > tr > td {
180
+ padding: 12px 10px;
181
+ }
182
+
183
+ .wpmud .list-table .radio-group.with-icon {
184
+ display: inline-table;
185
+ }
186
+
187
+ .wpmud .list-table .radio-group.with-icon .dev-icon {
188
+ vertical-align: middle;
189
+ }
190
+
191
+ .wpmud .dev-list {
192
+ margin: -30px 0 20px;
193
+ }
194
+
195
+ .wpmud .dev-list .content {
196
+ padding: 30px 0;
197
+ border-bottom: 1px solid #EEEEEE;
198
+ }
199
+
200
+ .wpmud .dev-list > li.list-header {
201
+ text-transform: none;
202
+ color: #333333;
203
+ font-size: 13px;
204
+ }
205
+
206
+ .wpmud .dev-list .list-header .list-label {
207
+ font-weight: bold;
208
+ }
209
+
210
+ .wpmud .dev-list > li .list-label {
211
+ font-size: 13px;
212
+ font-weight: 500;
213
+ line-height: 21px;
214
+ padding: 15px 10px 15px 0
215
+ }
216
+
217
+ .wpmud .dev-list > li .list-data {
218
+ border-bottom: 1px solid #EEE;
219
+ cursor: default;
220
+ display: table-cell;
221
+ padding: 10px;
222
+ vertical-align: middle;
223
+ }
224
+
225
+ .wpmud .dev-list > li:last-child .list-label,
226
+ .wpmud .dev-list > li:last-child .list-detail {
227
+ border-bottom: 1px solid #eee;
228
+ }
229
+
230
+ .wpmud .box-dashboard-welcome .dev-list > li:last-child .list-label,
231
+ .wpmud .box-dashboard-welcome .dev-list > li:last-child .list-detail,
232
+ .wpmud .box-performance-welcome .dev-list > li:last-child .list-label,
233
+ .wpmud .box-performance-welcome .dev-list > li:last-child .list-detail,
234
+ .wpmud .box-minification-summary-meta-box .dev-list > li:last-child .list-label,
235
+ .wpmud .box-minification-summary-meta-box .dev-list > li:last-child .list-detail,
236
+ .wpmud .box-uptime-summary .dev-list > li:last-child .list-label,
237
+ .wpmud .box-uptime-summary .dev-list > li:last-child .list-detail {
238
+ border-bottom: 1px solid transparent;
239
+ }
240
+
241
+ .wpmud .dev-list > li:last-child .list-data {
242
+ border-bottom: 1px solid transparent;
243
+ }
244
+
245
+ .wpmud .dev-list > li .list-detail .wphb-dash-numbers {
246
+ font-family: 'Roboto Condensed', sans-serif;
247
+ font-size: 18px;
248
+ color: #666666;
249
+ line-height: 30px;
250
+ text-align: right;
251
+ font-weight: 400;
252
+ /*text-transform: uppercase;*/
253
+ }
254
+
255
+ .wpmud .dev-list-stats-border > li:first-child .list-label,
256
+ .wpmud .dev-list-stats-border > li:first-child .list-data,
257
+ .wpmud .dev-list-stats-border > li:first-child .list-detail {
258
+ border-top: 1px solid #eee;
259
+ }
260
+
261
+ .wpmud .dev-list-stats-border > li:last-child .list-label,
262
+ .wpmud .dev-list-stats-border > li:last-child .list-data,
263
+ .wpmud .dev-list-stats-border > li:last-child .list-detail {
264
+ border-bottom-color: #eee;
265
+ }
266
+
267
+ .wpmud .dev-list-stats > li .list-label-stats,
268
+ .wpmud .dev-list-stats > li .list-detail-stats-heading {
269
+ color: #333;
270
+ font: 500 13px/30px 'Roboto', Arial, sans-serif;
271
+ }
272
+
273
+ .wpmud .dev-list-stats > li .list-detail-stats-heading {
274
+ font-weight: 400;
275
+ font-size: 18px;
276
+ color: #666;
277
+ }
278
+
279
+ .wpmud .dev-list-stats > li .list-detail-stats-heading-extra-info {
280
+ color: #BABABA;
281
+ display: block;
282
+ font: 500 12px/16px 'Roboto', Arial, sans-serif;
283
+ margin-top: 5px;
284
+ }
285
+
286
+ .wpmud .dev-list-stats.standalone {
287
+ margin: 0;
288
+ }
289
+
290
+ .wpmud .dev-list-stats.small > li .list-label-stats,
291
+ .wpmud .dev-list-stats.small > li .list-detail-stats-heading {
292
+ line-height: 26px;
293
+ }
294
+
295
+ .wpmud .dev-list-stats > li .list-detail-stats-heading.small {
296
+ font-size: 26px;
297
+ }
298
+
299
+ .wpmud .dev-list-stats .wphb-pills-group {
300
+ font-size: 0;
301
+ line-height: 1em;
302
+ }
303
+
304
+ .wpmud .dev-list-stats > li .list-label-stats-date {
305
+ margin-right: 30px;
306
+ }
307
+
308
+ .wpmud .list-label-link {
309
+ color: #19B4CF;
310
+ }
311
+
312
+ .wpmud input[type="checkbox"] {
313
+ border-radius: 4px;
314
+ border: 1px solid #E6E6E6;
315
+ background-color: #F8F8F8;
316
+ }
317
+
318
+ .wpmud [tooltip]:after {
319
+ font: 500 12px/18px 'Roboto';
320
+ padding: 8px 12px;
321
+ background: #333333;
322
+ min-width: 50px;
323
+ max-width: 250px;
324
+ transition: all 0.2s ease;
325
+ text-transform: none;
326
+ }
327
+
328
+ .wpmud .tooltip-box {
329
+ overflow: hidden;
330
+ }
331
+
332
+ .wpmud .tooltip-box:hover {
333
+ overflow: visible;
334
+ }
335
+
336
+ .wpmud .radio-group input[type="radio"] + label > [tooltip] {
337
+ position: absolute;
338
+ left: 0;
339
+ top: 0;
340
+ bottom: 0;
341
+ right: 0;
342
+ z-index: 9;
343
+ }
344
+
345
+ .wpmud .wphb-dashboard-caching-cloudflare-box p {
346
+ margin-top: 30px;
347
+ margin-bottom: 20px;
348
+ }
349
+
350
+ .wpmud #wphb-box-dashboard-cloudflare .cloudflare-step form label {
351
+ text-align: left;
352
+ font-weight: 400;
353
+ padding-left: 0;
354
+ padding-right: 0;
355
+ }
356
+
357
+ .wpmud .cloudflare-step {
358
+ margin-top: 30px;
359
+ }
360
+
361
+ .wpmud .cloudflare-step form label input {
362
+ margin-top: 5px;
363
+ background-color: #F8F8F8;
364
+ }
365
+
366
+ .wpmud .cloudflare-step form label input::-webkit-input-placeholder {
367
+ color: #AAAAAA;
368
+ }
369
+
370
+ .wpmud .cloudflare-step form label input::-moz-placeholder {
371
+ color: #AAAAAA;
372
+ }
373
+
374
+ /* Firefox 19+ */
375
+ .wpmud .cloudflare-step form label input:-moz-placeholder {
376
+ color: #AAAAAA;
377
+ }
378
+
379
+ /* Firefox 18- */
380
+ .wpmud .cloudflare-step form label input:-ms-input-placeholder {
381
+ color: #AAAAAA;
382
+ }
383
+
384
+ .wpmud .cloudflare-step > p:first-child {
385
+ text-align: left;
386
+ }
387
+
388
+ .wpmud .cloudflare-spinner {
389
+ display: inline-block;
390
+ float: right;
391
+ }
392
+
393
+ .wpmud .cloudflare-step p.cloudflare-submit,
394
+ .wpmud #cloudflare-how-to-title {
395
+ position: relative;
396
+ margin-top: 11px;
397
+ }
398
+
399
+ .wpmud .cloudflare-step p.cloudflare-submit input[type="submit"] {
400
+ display: inline-block;
401
+ margin-top: 0;
402
+ }
403
+
404
+ .wpmud #cloudflare-how-to {
405
+ clear: both;
406
+ margin-left: 0;
407
+ margin-bottom: 0;
408
+ list-style-position: inside;
409
+ }
410
+
411
+ .wpmud .cloudflare-step > p {
412
+ margin-bottom: 30px;
413
+ }
414
+
415
+ .wpmud .cloudflare-step p.cloudflare-submit {
416
+ float: right;
417
+ }
418
+
419
+ .wpmud .cloudflare-step hr {
420
+ margin-top: 20px;
421
+ margin-bottom: 20px;
422
+ }
423
+
424
+ .wpmud .cloudflare-step p.cloudflare-clear-cache-text {
425
+ text-align: left;
426
+ }
427
+
428
+ .wpmud #cloudflare-how-to-title {
429
+ float: left;
430
+ line-height: 15px;
431
+ padding-top: 7px;
432
+ font-size: 13px;
433
+ }
434
+
435
+ .wpmud .cloudflare-step .cloudflare-data {
436
+ text-align: left;
437
+ margin-top: 30px;
438
+ margin-bottom: 0;
439
+ }
440
+
441
+ .wpmud .cloudflare-data > span {
442
+ display: inline-block;
443
+ margin-right: 20px;
444
+ }
445
+
446
+ /* Button Labels */
447
+ .wpmud .wphb-button-label {
448
+ border: 1px solid transparent;
449
+ border-radius: 15px;
450
+ color: #fff;
451
+ font: 500 12px/26px 'Roboto';
452
+ display: inline-block;
453
+ height: 26px;
454
+ margin: 0;
455
+ padding: 0 12px;
456
+ text-decoration: none;
457
+ text-shadow: none;
458
+ text-transform: none;
459
+ white-space: nowrap;
460
+ }
461
+
462
+ .wpmud .wphb-button-label-red {
463
+ background: #fd6e70;
464
+ }
465
+
466
+ .wpmud .wphb-button-label-yellow {
467
+ background: #FFD000;
468
+ color: #333333;
469
+ }
470
+
471
+ .wpmud .wphb-button-label-green {
472
+ background: #1ABC9C;
473
+ }
474
+
475
+ .wpmud .wphb-button-label-light {
476
+ color: #333333;
477
+ background-color: #F2F2F2;
478
+ }
479
+
480
+ /* Labels */
481
+ .wpmud .wrap-wp-hummingbird .wphb-label {
482
+ color: #fff;
483
+ display: block;
484
+ font: 500 15px/20px 'Roboto';
485
+ text-shadow: none;
486
+ white-space: nowrap;
487
+ }
488
+
489
+ .wpmud .wrap-wp-hummingbird .wphb-label-notice {
490
+ background: #14485F;
491
+ border-radius: 3px;
492
+ padding: 5px 10px;
493
+ }
494
+
495
+ .wpmud .wrap-wp-hummingbird .wphb-label-notice-warning {
496
+ background: #FECF2F;
497
+ color: #4E4B10;
498
+ }
499
+
500
+ .wpmud .wrap-wp-hummingbird .wphb-label-notice-inline {
501
+ display: inline-block;
502
+ font-size: 13px;
503
+ color: #888888;
504
+ }
505
+
506
+ .wpmud .wrap-wp-hummingbird .wphb-label-disabled {
507
+ background: #F2F2F2;
508
+ border-radius: 20px;
509
+ color: #C0C0C0;
510
+ display: inline-block;
511
+ font: 500 12px/20px 'Roboto', Arial, sans-serif;
512
+ min-width: 120px;
513
+ padding: 5px;
514
+ text-align: center;
515
+ text-transform: uppercase;
516
+ }
517
+
518
+ /* ****************************************************************************
519
+ * 2. COMMON/GENERAL STYLES
520
+ */
521
+ .wpmud .footer-love {
522
+ text-align: center;
523
+ margin-top: 50px;
524
+ color: #C0C0C0;
525
+ font-size: 13px;
526
+ }
527
+
528
+ .wpmud .footer-love > .dashicons-heart {
529
+ font-size: 14px;
530
+ line-height: 22px;
531
+ }
532
+
533
+ /* Tables */
534
+ .wpmud .wphb-table-wrapper.complex {
535
+ min-height: .01%;
536
+ overflow-x: auto;
537
+ border-bottom: 1px solid #eee;
538
+ }
539
+
540
+ .wpmud .wphb-table {
541
+ font-weight: 400;
542
+ max-width: 100%;
543
+ width: 100%;
544
+ color: #333333;
545
+ }
546
+
547
+ .wpmud .wphb-border-frame {
548
+ border: 1px solid #E6E6E6;
549
+ border-radius: 5px;
550
+ margin: 10px 0 0 !important;
551
+ }
552
+
553
+ .wpmud .list-table.wphb-table tr:hover .wphb-table-td-has-tooltip {
554
+ z-index: 3;
555
+ }
556
+
557
+ .box-dashboard-welcome .box-content,
558
+ .box-performance-welcome .box-content,
559
+ .box-minification-summary-meta-box .box-content,
560
+ .box-uptime-summary .box-content {
561
+ padding: 30px 30px 10px !important;
562
+ }
563
+
564
+ .box-dashboard-welcome .wphb-block-entry,
565
+ .box-performance-welcome .wphb-block-entry,
566
+ .box-minification-summary-meta-box .wphb-block-entry,
567
+ .box-uptime-summary .wphb-block-entry {
568
+ width: 100%;
569
+ min-height: 172px;
570
+ }
571
+
572
+ /* Images */
573
+ .wpmud section[class^="box-dashboard-"] .box-title:before {
574
+ font-family: 'hummingbird', sans-serif;
575
+ color: #333333;
576
+ float: left;
577
+ font-size: 20px;
578
+ margin: 18px 10px 18px 0;
579
+ }
580
+
581
+ .wpmud section[class^="box-dashboard-performance"] .box-title:before {
582
+ content: '\e90c';
583
+ }
584
+
585
+ .wpmud section[class^="box-dashboard-minification"] .box-title:before {
586
+ content: '\e90b';
587
+ }
588
+
589
+ .wpmud section[class^="box-dashboard-browser"] .box-title:before {
590
+ content: '\e905';
591
+ }
592
+
593
+ .wpmud section[class^="box-dashboard-gzip"] .box-title:before {
594
+ content: '\e907';
595
+ }
596
+
597
+ .wpmud section[class^="box-dashboard-uptime"] .box-title:before {
598
+ content: '\e900';
599
+ }
600
+
601
+ .wpmud section[class^="box-dashboard-smush"] .box-title:before {
602
+ content: '\e90f';
603
+ }
604
+
605
+ .wpmud section[class^="box-dashboard-cloudflare"] .box-title:before {
606
+ content: '\e906';
607
+ }
608
+
609
+ .wpmud section[class^="box-dashboard-reports"] .box-title:before {
610
+ content: '\e90d';
611
+ }
612
+
613
+ .wpmud section[class^="box-dashboard-caching-gravatar"] .box-title:before {
614
+ content: '\e913';
615
+ }
616
+
617
+ .wpmud section[class^="box-dashboard-caching-page"] .box-title:before {
618
+ content: '\e914';
619
+ }
620
+
621
+ .wpmud .wphb-image,
622
+ .wpmud .wphb-image-icon-content {
623
+ display: block;
624
+ height: auto;
625
+ max-width: 100%;
626
+ }
627
+
628
+ .wpmud .wphb-image-center,
629
+ .wpmud .wphb-image-icon-content-center {
630
+ margin-right: auto;
631
+ margin-left: auto;
632
+ }
633
+
634
+ .wpmud .wphb-image-icon-content-top {
635
+ margin-bottom: 30px;
636
+ }
637
+
638
+ /* Lists */
639
+ .wpmud .wphb-listing {
640
+ margin: 0;
641
+ }
642
+
643
+ .wpmud .wphb-listing li {
644
+ font-family: 'Roboto', Arial, sans-serif;
645
+ font-size: 15px;
646
+ font-weight: 400;
647
+ line-height: 21px;
648
+ margin-top: 10px;
649
+ margin-bottom: 0;
650
+ }
651
+
652
+ .wpmud .wphb-listing li:first-child {
653
+ margin-top: 0;
654
+ }
655
+
656
+ .wpmud .wphb-listing.bold li {
657
+ font-weight: 500;
658
+ }
659
+
660
+ .wpmud .wphb-listing-ordered {
661
+ padding-left: 20px;
662
+ }
663
+
664
+ .wpmud .wphb-listing li strong {
665
+ font-weight: 500;
666
+ }
667
+
668
+ .wpmud .wphb-listing li:before {
669
+ color: #17A8E3;
670
+ top: 0;
671
+ }
672
+
673
+ .wpmud .wphb-listing li p {
674
+ font-size: 13px;
675
+ line-height: 22px;
676
+ margin-top: 5px;
677
+ }
678
+
679
+ /* Forms */
680
+ .wpmud .wphb-select-group {
681
+ clear: both;
682
+ }
683
+
684
+ .wpmud .wphb-select-group:after {
685
+ content: '';
686
+ display: table;
687
+ clear: both;
688
+ }
689
+
690
+ .wpmud .wphb-select-group > label,
691
+ .wpmud .wphb-select-group > div {
692
+ float: left;
693
+ display: block;
694
+ }
695
+
696
+ .wpmud .wphb-select-group > label {
697
+ line-height: 43px;
698
+ margin-right: 10px;
699
+ }
700
+
701
+ .wpmud .select-container {
702
+ overflow: hidden;
703
+ }
704
+
705
+ .wpmud .select-container.active {
706
+ overflow: visible;
707
+ }
708
+
709
+ .wpmud .wphb-select-group .spinner {
710
+ margin: 11px;
711
+ }
712
+
713
+ /* Notices */
714
+ .wpmud .wrap-wp-hummingbird .notice {
715
+ margin: 15px 0 0;
716
+ }
717
+
718
+ .wpmud .wrap-wp-hummingbird > .wphb-notice:not(.notice) {
719
+ width: 600px;
720
+ box-shadow: 0 5px 25px 0 rgba(0, 0, 0, 0.15);
721
+ border-radius: 0 0 5px 5px;
722
+ padding: 10px 30px;
723
+ position: absolute !important;
724
+ z-index: 100;
725
+ left: 50%;
726
+ margin-left: -300px;
727
+ top: 0;
728
+ }
729
+
730
+ .wpmud .wphb-notice:not(.notice) {
731
+ /*background: #fff;*/
732
+ border-radius: 5px;
733
+ color: #333;
734
+ font-family: 'Roboto', Arial, sans-serif;
735
+ font-size: 15px;
736
+ font-weight: 400;
737
+ line-height: 18px;
738
+ padding: 15px 30px;
739
+ position: relative;
740
+ width: 100%;
741
+ }
742
+
743
+ .wpmud .wphb-notice.notice p {
744
+ font-size: 14px;
745
+ line-height: 1.5;
746
+ margin: 10px 0;
747
+ }
748
+
749
+ .wpmud .wphb-notice p,
750
+ .wpmud .wphb-notice p a {
751
+ color: #333333;
752
+ font-weight: 400;
753
+ }
754
+
755
+ .wpmud .wphb-notice:not(.notice) p,
756
+ .wpmud .wphb-notice:not(.notice) span,
757
+ .wpmud .wphb-notice ul,
758
+ .wpmud .wphb-notice strong {
759
+ margin: 0 0 10px -30px;
760
+ padding: 0 0 0 30px;
761
+ }
762
+
763
+ .wpmud .wphb-notice:not(.notice) p:last-of-type {
764
+ margin: 0;
765
+ }
766
+
767
+ .wpmud .wphb-notice p a {
768
+ font-weight: 500;
769
+ }
770
+
771
+ .wpmud .wphb-notice p a:hover {
772
+ color: #333;
773
+ }
774
+
775
+ .wpmud .wphb-notice .wphb-icon,
776
+ .wpmud .wphb-notice .wphb-icon .wdv-icon {
777
+ font-size: 22px;
778
+ height: 22px;
779
+ line-height: 22px;
780
+ width: 22px;
781
+ }
782
+
783
+ .wpmud .wphb-notice.can-close .close {
784
+ cursor: pointer;
785
+ color: #333333;
786
+ font-size: 12px;
787
+ font-weight: bold;
788
+ line-height: 36px;
789
+ margin-left: 0;
790
+ opacity: 0.5;
791
+ text-transform: uppercase;
792
+ }
793
+
794
+ .wpmud .wphb-block-entry-third span.status-ok:before,
795
+ .wpmud span.dash-cloudflare-connected-status:before,
796
+ .wpmud .wphb-notice-error.can-close p:before,
797
+ .wpmud .wphb-notice-success.can-close p:before,
798
+ .wpmud .wphb-notice-success p:first-child:before,
799
+ .wpmud .wphb-notice-error p:first-child:before,
800
+ .wpmud .wphb-notice-warning p:first-child:before,
801
+ .wpmud .wphb-notice-grey p:before,
802
+ .wpmud .wphb-notice-grey-info p:before,
803
+ .wpmud .wphb-notice-blue p:first-child:before,
804
+ .wpmud .wphb-notice-blue-info p:first-child:before {
805
+ font-family: 'hummingbird', sans-serif;
806
+ font-size: 20px;
807
+ vertical-align: middle;
808
+ line-height: 20px;
809
+ top: -2px;
810
+ position: relative;
811
+ margin-left: -30px;
812
+ margin-right: 10px;
813
+ }
814
+
815
+ .wpmud span.dash-cloudflare-connected-status:before {
816
+ color: #17A8E3;
817
+ content: '\e903';
818
+ font-size: 16px;
819
+ margin-right: 8px;
820
+ }
821
+
822
+ .wpmud .wphb-notice-success {
823
+ background-color: #D1F1EA;
824
+ }
825
+
826
+ .wpmud .wphb-notice-error {
827
+ background-color: #FFE5E9;
828
+ }
829
+
830
+ .wpmud .wphb-notice-warning {
831
+ background-color: #FFF5D5;
832
+ color: #333333;
833
+ }
834
+
835
+ .wpmud .wphb-notice-blue,
836
+ .wpmud .wphb-notice-blue-info {
837
+ background-color: #E1F6FF;
838
+ margin-top: 30px;
839
+ }
840
+
841
+ .wpmud .wphb-notice-grey,
842
+ .wpmud .wphb-notice-grey-info {
843
+ background-color: #F2F2F2;
844
+ margin-top: 10px;
845
+ }
846
+
847
+ .wpmud .cloudflare-step .wphb-notice-blue {
848
+ margin-top: 0;
849
+ }
850
+
851
+ .wpmud .wphb-block-entry-third span.status-ok:before,
852
+ .wpmud .wphb-notice-success p:before {
853
+ content: '\e903';
854
+ color: #1ABC9C;
855
+ }
856
+
857
+ .wpmud .wphb-block-entry-third span.status-ok:before {
858
+ margin-right: 0;
859
+ line-height: 20px;
860
+ }
861
+
862
+ .wpmud .wphb-notice-error p:before {
863
+ content: '\e904';
864
+ color: #FF7F83;
865
+ }
866
+
867
+ .wpmud .wphb-notice-warning p:before {
868
+ content: '\e902';
869
+ color: #FECF2F;
870
+ font-size: 18px;
871
+ line-height: 18px;
872
+ }
873
+
874
+ .wpmud .wphb-notice-blue p:before {
875
+ content: '\e903';
876
+ color: #17A8E3;
877
+ }
878
+
879
+ .wpmud .wphb-notice-blue-info p:before {
880
+ content: '\e902';
881
+ color: #17A8E3;
882
+ }
883
+
884
+ .wpmud .wphb-notice-grey p:before,
885
+ .wpmud .wphb-notice-grey-info p:before {
886
+ content: '\e902';
887
+ color: #888888;
888
+ }
889
+
890
+ .wpmud .dev-overlay .wphb-notice-warning p {
891
+ font-size: 14px;
892
+ line-height: 22px;
893
+ }
894
+
895
+ .wpmud .wphb-notice-warning p,
896
+ .wpmud .wphb-notice-warning p a {
897
+ color: #333333;
898
+ }
899
+
900
+ .wpmud .wphb-heading-status-green {
901
+ color: #1ABC9C;
902
+ }
903
+
904
+ .wpmud .wphb-heading-status {
905
+ font-family: 'Roboto Condensed', 'Roboto', sans-serif;
906
+ font-size: 30px;
907
+ margin-top: 0;
908
+ }
909
+
910
+ /* Toggles */
911
+ .wpmud .toggle .toggle-label {
912
+ text-align: left;
913
+ }
914
+
915
+ .wpmud .toggle .toggle-cross {
916
+ color: rgba(221, 221, 221, 1);
917
+ }
918
+
919
+ .wpmud .toggle-group {
920
+ display: inline-block;
921
+ }
922
+
923
+ .wpmud .toggle .toggle-checkbox:checked:disabled + .toggle-label {
924
+ background: transparent;
925
+ }
926
+
927
+ .wpmud .toggle .toggle-checkbox:checked:disabled + .toggle-label:before {
928
+ bottom: 0;
929
+ left: 0;
930
+ right: 0;
931
+ top: 0;
932
+ }
933
+
934
+ .wpmud .toggle .toggle-checkbox:checked:disabled + .toggle-label:after {
935
+ margin-left: 1px;
936
+ }
937
+
938
+ .wpmud .toggle-item.bordered,
939
+ .wpmud .wphb-block-entry.bordered {
940
+ border-top: 1px solid #E6E6E6;
941
+ padding-top: 30px;
942
+ }
943
+
944
+ .wpmud .toggle-item.space-top-small {
945
+ margin: 15px 0 0;
946
+ }
947
+
948
+ .wpmud .toggle-item label {
949
+ text-align: left;
950
+ }
951
+
952
+ .wpmud .toggle-item .toggle-item-group {
953
+ display: table;
954
+ width: 100%;
955
+ }
956
+
957
+ .wpmud .toggle-item .toggle-info,
958
+ .wpmud .toggle-item .toggle-actions {
959
+ display: table-cell;
960
+ }
961
+
962
+ .wpmud .toggle-item .toggle-item-title {
963
+ color: #555;
964
+ font: 400 15px/20px 'Roboto', Arial, sans-serif;
965
+ margin: 0;
966
+ }
967
+
968
+ .wpmud .toggle-item .toggle-actions {
969
+ padding-left: 30px;
970
+ vertical-align: middle;
971
+ text-align: right;
972
+ }
973
+
974
+ /* ****************************************************************************
975
+ * 3. COMPONENTS/MODULES
976
+ */
977
+ /* Pills */
978
+ .wphb-pills {
979
+ display: inline-block;
980
+ background-color: #FFD000;
981
+ color: #333333;
982
+ border-radius: 15px;
983
+ width: 39px;
984
+ height: 26px;
985
+ font-size: 12px;
986
+ line-height: 26px;
987
+ text-align: center;
988
+ font-weight: 500;
989
+ }
990
+
991
+ .wpmud .box-title .wphb-pills {
992
+ margin: 16px 0 0 10px;
993
+ }
994
+
995
+ .wphb-pills.grey {
996
+ background-color: #F2F2F2;
997
+ color: #666;
998
+ }
999
+
1000
+ .wphb-pills.red {
1001
+ background-color: #FF6D6D;
1002
+ color: #fff;
1003
+ }
1004
+
1005
+ .wphb-pills.green {
1006
+ background-color: #1ABC9C;
1007
+ color: #fff;
1008
+ }
1009
+
1010
+ .wphb-pills.with-arrow:after {
1011
+ border: 8px solid transparent;
1012
+ content: '';
1013
+ height: 0;
1014
+ pointer-events: none;
1015
+ position: absolute;
1016
+ width: 0;
1017
+ z-index: 1;
1018
+ }
1019
+
1020
+ .wphb-pills.with-arrow.right:after {
1021
+ border-left-color: #19B4CF;
1022
+ left: 50%;
1023
+ margin-top: -8px;
1024
+ top: 50%;
1025
+ }
1026
+
1027
+ .wphb-pills.with-arrow.left:after {
1028
+ border-right-color: #19B4CF;
1029
+ right: 100%;
1030
+ margin-top: -8px;
1031
+ top: 50%;
1032
+ }
1033
+
1034
+ .wphb-pills.with-arrow.right.grey:after {
1035
+ border-left-color: #F2F2F2;
1036
+ }
1037
+
1038
+ .wphb-pills.with-arrow.left.grey:after {
1039
+ border-right-color: #F2F2F2;
1040
+ }
1041
+
1042
+ .wphb-pills-group {
1043
+ border-collapse: collapse;
1044
+ border-spacing: 0;
1045
+ font-size: 0;
1046
+ display: inline-block;
1047
+ position: relative;
1048
+ }
1049
+
1050
+ .wphb-pills-group.stacked .wphb-pills {
1051
+ font-size: 10px;
1052
+ line-height: 12px;
1053
+ height: 12px;
1054
+ text-align: left;
1055
+ max-width: 69px;
1056
+ color: #888888;
1057
+ display: block;
1058
+ background-color: transparent;
1059
+ }
1060
+
1061
+ .wphb-pills-group.stacked .wphb-pills:last-child {
1062
+ color: #1ABC9C;
1063
+ background-color: transparent;
1064
+ }
1065
+
1066
+ .wphb-pills-group.stacked .dev-icon.dev-icon-caret_down {
1067
+ color: #1ABC9C;
1068
+ margin-left: 7px;
1069
+ }
1070
+
1071
+ .wphb-pills-group .wphb-pills {
1072
+ border-radius: 0;
1073
+ width: 80px;
1074
+ line-height: 30px;
1075
+ height: 30px;
1076
+ margin: 0;
1077
+ }
1078
+
1079
+ .wphb-pills-group .wphb-pills:first-child {
1080
+ border-radius: 5px 0 0 5px !important;
1081
+ }
1082
+
1083
+ .wphb-pills-group .wphb-pills:last-child {
1084
+ background-color: #17A8E3;
1085
+ color: #FFFFFF;
1086
+ border-radius: 0 5px 5px 0 !important;
1087
+ }
1088
+
1089
+ /* Block: Section */
1090
+ .wpmud .wphb-block-section {
1091
+ margin-top: 40px;
1092
+ }
1093
+
1094
+ .wpmud .wphb-block-section:first-child {
1095
+ margin-top: 0;
1096
+ }
1097
+
1098
+ .wpmud .wphb-block-section-content * {
1099
+ color: #555;
1100
+ line-height: 20px;
1101
+ }
1102
+
1103
+ /* Box: Content */
1104
+ .wpmud .content-box .wphb-block-entry-image-bottom {
1105
+ margin-bottom: -30px;
1106
+ }
1107
+
1108
+ .wpmud .content-box .wphb-block-entry-image-center {
1109
+ margin-top: 30px;
1110
+ }
1111
+
1112
+ .wpmud .content-box .wphb-block-entry-image-center img {
1113
+ margin-left: auto;
1114
+ margin-right: auto;
1115
+ }
1116
+
1117
+ /* Box: Content One Col */
1118
+ .wpmud .content-box-one-col {
1119
+ }
1120
+
1121
+ /* Box: Content One Col Center */
1122
+ .wpmud .content-box-one-col-center .box-content {
1123
+ text-align: left;
1124
+ }
1125
+
1126
+ .wpmud .content-box-one-col-center .wphb-block-entry-content {
1127
+ margin: 0 auto;
1128
+ }
1129
+
1130
+ .wpmud .content-box-flex {
1131
+ display: flex;
1132
+ justify-content: space-between;
1133
+ align-items: flex-end;
1134
+ }
1135
+
1136
+ /* Box: Content w/Image (left) */
1137
+ .wpmud .content-box-two-cols-image-left .box-content {
1138
+ text-align: left;
1139
+ }
1140
+
1141
+ .wpmud .content-box-two-cols-image-left .wphb-block-entry-image,
1142
+ .wpmud .content-box-two-cols-image-left .wphb-block-entry-content {
1143
+ display: block;
1144
+ }
1145
+
1146
+ .wpmud .content-box-two-cols-image-left .wphb-block-entry-image {
1147
+ float: left;
1148
+ max-width: 192px;
1149
+ }
1150
+
1151
+ .wpmud .content-box-two-cols-image-left .wphb-block-entry-content {
1152
+ margin: 30px 0 0 285px;
1153
+ }
1154
+
1155
+ .wpmud .box-dashboard-smush-no-membership .content-box-two-cols-image-left .wphb-block-entry-content {
1156
+ margin-top: 45px;
1157
+ }
1158
+
1159
+ .wpmud .content-box-two-cols-image-left .wphb-block-entry-content .title {
1160
+ text-align: left;
1161
+ }
1162
+
1163
+ /* Block: Content */
1164
+ .wpmud .wphb-block + .wphb-block {
1165
+ margin-top: 30px;
1166
+ }
1167
+
1168
+ .wpmud .wphb-block-header {
1169
+ margin-bottom: 30px;
1170
+ }
1171
+
1172
+ .wpmud .wphb-block-title {
1173
+ font-family: 'Roboto Condensed', 'Roboto', sans-serif;
1174
+ font-size: 22px;
1175
+ line-height: 26px;
1176
+ margin: 0;
1177
+ overflow: hidden;
1178
+ text-align: left;
1179
+ text-overflow: ellipsis;
1180
+ white-space: nowrap;
1181
+ }
1182
+
1183
+ .wpmud .wphb-block-content + .wphb-block-content {
1184
+ margin-top: 30px;
1185
+ }
1186
+
1187
+ .wpmud .wphb-block-content > *:last-child {
1188
+ margin-bottom: 0;
1189
+ }
1190
+
1191
+ #wphb-box-dashboard-cloudflare .wphb-block-entry .wphb-block-entry-content {
1192
+ padding-top: 0;
1193
+ }
1194
+
1195
+ .wpmud .wphb-block-content-center {
1196
+ text-align: center;
1197
+ }
1198
+
1199
+ .wpmud .wphb-block-content pre {
1200
+ font-weight: 500;
1201
+ font-family: Roboto;
1202
+ font-size: 13px;
1203
+ line-height: 18px;
1204
+ background-color: #F8F8F8;
1205
+ border: 1px solid #E6E6E6;
1206
+ border-radius: 5px;
1207
+ margin: 0;
1208
+ padding: 20px 30px;
1209
+ white-space: pre;
1210
+ overflow-x: scroll;
1211
+ max-width: 100%;
1212
+ }
1213
+
1214
+ .wpmud .wphb-server-instructions .wphb-block-content pre {
1215
+ max-height: 240px;
1216
+ }
1217
+
1218
+ .wpmud .wphb-block-content-blue {
1219
+ background-color: #e0f6ff;
1220
+ border-radius: 5px;
1221
+ padding: 20px 30px;
1222
+ }
1223
+
1224
+ .wpmud .wphb-block-content .tooltip-box,
1225
+ .wpmud .wphb-block-content .toggle,
1226
+ .wpmud .wphb-block-content .toggle .toggle-label {
1227
+ height: 21px;
1228
+ vertical-align: top;
1229
+ }
1230
+
1231
+ .wpmud .wphb-block-content-group {
1232
+ border-collapse: separate;
1233
+ border-spacing: 0;
1234
+ display: table;
1235
+ width: 100%;
1236
+ }
1237
+
1238
+ .wpmud .wphb-block-content-group-inner {
1239
+ display: table-row;
1240
+ }
1241
+
1242
+ .wpmud .wphb-block-content-group-item {
1243
+ display: table-cell;
1244
+ vertical-align: middle;
1245
+ width: 100%;
1246
+ }
1247
+
1248
+ .wpmud .wphb-block-content-group-item .wphb-block-content {
1249
+ margin-left: 30px;
1250
+ }
1251
+
1252
+ .wpmud .wphb-block-content-group-item:first-child .wphb-block-content {
1253
+ margin-left: 0;
1254
+ }
1255
+
1256
+ .wpmud .wphb-block-content-group .wphb-block-content.small {
1257
+ padding: 20px 23px;
1258
+ width: 80px;
1259
+ }
1260
+
1261
+ /* Block: Entry Content */
1262
+ .wpmud .wphb-block-entry:after {
1263
+ content: '';
1264
+ clear: both;
1265
+ display: block;
1266
+ }
1267
+
1268
+ .wpmud .wphb-block-entry-content .title {
1269
+ color: #333333;
1270
+ font-size: 22px;
1271
+ font-weight: bold;
1272
+ line-height: 1.333em;
1273
+ margin: 0 0 0.5em;
1274
+ max-width: 100%;
1275
+ text-transform: uppercase;
1276
+ }
1277
+
1278
+ .wpmud .wphb-block-entry-content .title,
1279
+ .wpmud .wphb-block-entry-content .content > p {
1280
+ margin: 0 0 20px;
1281
+ }
1282
+
1283
+ .wpmud .wphb-block-entry-content .content > p:last-child,
1284
+ .wpmud .wphb-block-entry-content .content > p:last-of-type {
1285
+ margin-bottom: 0;
1286
+ }
1287
+
1288
+ /* Progress bar */
1289
+ @keyframes spinner {
1290
+ 0% {
1291
+ -webkit-transform: rotate(0deg);
1292
+ transform: rotate(0deg)
1293
+ }
1294
+
1295
+ 50% {
1296
+ -webkit-transform: rotate(180deg);
1297
+ transform: rotate(180deg)
1298
+ }
1299
+
1300
+ 100% {
1301
+ -webkit-transform: rotate(360deg);
1302
+ transform: rotate(360deg)
1303
+ }
1304
+ }
1305
+
1306
+ .wphb-scan-progress {
1307
+ overflow: hidden;
1308
+ width: 100%;
1309
+ }
1310
+
1311
+ .not-present .wphb-scan-progress-text:before,
1312
+ .wphb-scan-progress .wphb-scan-progress-text:before {
1313
+ content: " ";
1314
+ width: 18px;
1315
+ height: 18px;
1316
+ display: inline-block;
1317
+ position: relative;
1318
+ top: 5px;
1319
+ left: 1px;
1320
+ margin-right: 10px;
1321
+ border: 2px solid #A9E0EC;
1322
+ border-bottom-color: #17A8E3;
1323
+ border-radius: 100%;
1324
+ background: 0 0;
1325
+ box-sizing: border-box;
1326
+ animation: spinner .75s 0s linear infinite;
1327
+ }
1328
+
1329
+ .wphb-scan-progress .wphb-scan-progress-text {
1330
+ width: 65px;
1331
+ float: left;
1332
+ text-align: left;
1333
+ }
1334
+
1335
+ .wphb-scan-progress .wphb-scan-progress-text img {
1336
+ display: inline-block;
1337
+ vertical-align: middle;
1338
+ margin-right: 10px;
1339
+ }
1340
+
1341
+ .wphb-scan-progress .wphb-scan-progress-text span {
1342
+ font-weight: bold;
1343
+ font-family: "Roboto Condensed", sans-serif;
1344
+ font-size: 13px;
1345
+ color: #333333;
1346
+ vertical-align: middle;
1347
+ line-height: 30px;
1348
+ }
1349
+
1350
+ .wphb-scan-progress .wphb-scan-progress-bar {
1351
+ background: #E6E6E6;
1352
+ -webkit-border-radius: 5px;
1353
+ -moz-border-radius: 5px;
1354
+ border-radius: 5px;
1355
+ height: 10px;
1356
+ width: 70%;
1357
+ overflow: hidden;
1358
+ margin-top: 10px;
1359
+ position: relative;
1360
+ }
1361
+
1362
+ .wphb-scan-progress .wphb-scan-progress-bar span {
1363
+ background: #17A8E3;
1364
+ height: 10px;
1365
+ display: inline-block;
1366
+ position: absolute;
1367
+ top: 0;
1368
+ left: 0;
1369
+ -webkit-transition: 1000ms width ease-in-out;
1370
+ -moz-transition: 1000ms width ease-in-out;
1371
+ transition: 1000ms width ease-in-out;
1372
+ }
1373
+
1374
+ /* Block: Test with progress bar */
1375
+ .wphb-block-test {
1376
+ background-color: #F9F9F9;
1377
+ border-radius: 5px;
1378
+ max-width: 700px;
1379
+ width: 100%;
1380
+ height: 60px;
1381
+ padding: 15px 30px;
1382
+ }
1383
+
1384
+ .wphb-block-test-header {
1385
+ margin-bottom: 10px;
1386
+ }
1387
+
1388
+ .wphb-progress-state {
1389
+ margin-top: 10px;
1390
+ text-align: center;
1391
+ }
1392
+
1393
+ .wphb-progress-state .wphb-progress-state-text {
1394
+ color: #8B8B8B;
1395
+ font-size: 13px;
1396
+ line-height: 22px;
1397
+ }
1398
+
1399
+ .wphb-block-test-standalone {
1400
+ max-width: 100%;
1401
+ text-align: center;
1402
+ margin-top: 25px;
1403
+ }
1404
+
1405
+ .wphb-block-test-standalone .wphb-progress {
1406
+ margin: 0 auto;
1407
+ }
1408
+
1409
+ /* Filename Extensions Icons */
1410
+ .wphb-filename-extension {
1411
+ border-radius: 4px;
1412
+ display: block;
1413
+ float: left;
1414
+ font-family: 'Roboto', sans-serif;
1415
+ font-size: 9px;
1416
+ color: #fff;
1417
+ text-transform: uppercase;
1418
+ text-align: center;
1419
+ line-height: 43px;
1420
+ height: 30px;
1421
+ margin: 0 10px 0 0;
1422
+ width: 30px;
1423
+ }
1424
+
1425
+ .wphb-filename-extension-html {
1426
+ background-color: #F56418;
1427
+ }
1428
+
1429
+ .wphb-filename-extension-other {
1430
+ background-color: #AAAAAA;
1431
+ }
1432
+
1433
+ .wphb-filename-extension-css {
1434
+ background-color: #25A8DE;
1435
+ }
1436
+
1437
+ .wphb-filename-extension-media {
1438
+ background-color: #55DDB8;
1439
+ }
1440
+
1441
+ .wphb-filename-extension-images {
1442
+ background-color: #BDF2F7;
1443
+ color: #333333;
1444
+ }
1445
+
1446
+ .wphb-filename-extension-javascript,
1447
+ .wphb-filename-extension-js {
1448
+ background-color: #F7E100;
1449
+ color: #333333;
1450
+ }
1451
+
1452
+ /* Performance Results */
1453
+ .wphb-score {
1454
+ display: inline-block;
1455
+ position: relative;
1456
+ }
1457
+
1458
+ .wphb-score-type-circle {
1459
+ border-radius: 100%;
1460
+ height: 30px;
1461
+ width: 30px;
1462
+ }
1463
+
1464
+ .wphb-score-type-circle.large {
1465
+ height: 80px;
1466
+ width: 80px;
1467
+ }
1468
+
1469
+ .wphb-score-type-circle .wphb-score-graph-circle {
1470
+ stroke: #E5E5E5;
1471
+ stroke-dashoffset: 80;
1472
+ stroke-width: 5px;
1473
+ /*-ms-transition: stroke-dashoffset 1s linear;*/
1474
+ -moz-transition: stroke-dashoffset 1s linear;
1475
+ -webkit-transition: stroke-dashoffset 1s linear;
1476
+ transition: stroke-dashoffset 1s linear;
1477
+ }
1478
+
1479
+ .wphb-score-type-circle.large .wphb-score-graph-circle {
1480
+ stroke-dashoffset: 219.8;
1481
+ stroke-width: 10px;
1482
+ }
1483
+
1484
+ .wphb-score-type-circle .wphb-score-graph-result {
1485
+ transform: rotate(-80deg) translateX(-27px) translateY(2.5px);
1486
+ -moz-transform: rotate(-80deg) translateX(-27px) translateY(2.5px);
1487
+ -webkit-transform: rotate(-80deg) translateX(-27px) translateY(2.5px);
1488
+ }
1489
+
1490
+ .wphb-score-type-circle.large .wphb-score-graph-result {
1491
+ transform: rotate(-80deg) translateX(-72.5px) translateY(6.5px);
1492
+ -moz-transform: rotate(-80deg) translateX(-72.5px) translateY(6.5px);
1493
+ -webkit-transform: rotate(-80deg) translateX(-72.5px) translateY(6.5px);
1494
+ }
1495
+
1496
+ .wpmud .wphb-performance-report-item-score,
1497
+ .wpmud .wphb-button-label,
1498
+ .wpmud .wphb-score-result {
1499
+ cursor: pointer;
1500
+ position: relative;
1501
+ }
1502
+
1503
+ .wpmud .list-table.hover-effect > tbody > tr[class*="wphb-table-score"] td:first-child {
1504
+ padding-left: 30px;
1505
+ }
1506
+
1507
+ .wpmud .list-table.hover-effect > tbody > tr[class*="wphb-table-score"] td:first-child:before {
1508
+ font-family: 'hummingbird', sans-serif;
1509
+ speak: none;
1510
+ font-style: normal;
1511
+ font-weight: normal;
1512
+ font-variant: normal;
1513
+ text-transform: none;
1514
+ line-height: 1;
1515
+ -webkit-font-smoothing: antialiased;
1516
+ -moz-osx-font-smoothing: grayscale;
1517
+ font-size: 20px;
1518
+ vertical-align: middle;
1519
+ margin-right: 10px;
1520
+ }
1521
+
1522
+ .wpmud .list-table.hover-effect > tbody > tr.wphb-table-score-success:hover > td:first-child:after,
1523
+ .wpmud .list-table.hover-effect > tbody > tr.wphb-table-score-warning:hover td:first-child:after,
1524
+ .wpmud .list-table.hover-effect > tbody > tr.wphb-table-score-dismissed:hover td:first-child:after,
1525
+ .wpmud .list-table.hover-effect > tbody > tr.wphb-table-score-error:hover td:first-child:after {
1526
+ content: normal;
1527
+ }
1528
+
1529
+ .wpmud .list-table.hover-effect > tbody > tr.wphb-table-score-success:hover td:first-child,
1530
+ .wpmud .list-table.hover-effect > tbody > tr.wphb-table-additional-success td:first-child,
1531
+ .wphb-table-score-success td:first-child {
1532
+ border-left: 4px solid #1ABC9C;
1533
+ }
1534
+
1535
+ .wpmud .list-table.hover-effect > tbody > tr.wphb-table-score-success td:first-child:before {
1536
+ color: #1ABC9C;
1537
+ content: "\e903";
1538
+ }
1539
+
1540
+ .wpmud .list-table.hover-effect > tbody > tr.wphb-table-score-warning:hover td:first-child,
1541
+ .wpmud .list-table.hover-effect > tbody > tr.wphb-table-additional-warning td:first-child,
1542
+ .wphb-table-score-warning td:first-child {
1543
+ border-left: 4px solid #FFD000;
1544
+ }
1545
+
1546
+ .wpmud .list-table.hover-effect > tbody > tr.wphb-table-score-warning td:first-child:before {
1547
+ color: #FFD000;
1548
+ content: "\e904";
1549
+ }
1550
+
1551
+ .wpmud .list-table.hover-effect > tbody > tr.wphb-table-score-error:hover td:first-child,
1552
+ .wpmud .list-table.hover-effect > tbody > tr.wphb-table-additional-error td:first-child,
1553
+ .wphb-table-score-error td:first-child {
1554
+ border-left: 4px solid #FF6D6D;
1555
+ }
1556
+
1557
+ .wpmud .list-table.hover-effect > tbody > tr.wphb-table-score-error td:first-child:before {
1558
+ color: #FF6D6D;
1559
+ content: "\e904";
1560
+ }
1561
+
1562
+ .wpmud .list-table.hover-effect > tbody > tr.wphb-table-score-dismissed:hover td:first-child,
1563
+ .wpmud .list-table.hover-effect > tbody > tr.wphb-table-additional-dismissed td:first-child,
1564
+ .wphb-table-score-dismissed td:first-child {
1565
+ border-left: 4px solid #888888;
1566
+ }
1567
+
1568
+ .wpmud .list-table.hover-effect > tbody > tr.wphb-table-score-dismissed td:first-child:before {
1569
+ color: #888888;
1570
+ content: "\e904";
1571
+ }
1572
+
1573
+ .wphb-score-result-grade-aplus,
1574
+ .wphb-score-result-grade-a {
1575
+ color: #1ABC9C;
1576
+ }
1577
+
1578
+ .wphb-score-result-grade-aplus .wphb-score-type-circle .wphb-score-graph-result,
1579
+ .wphb-score-result-grade-a .wphb-score-type-circle .wphb-score-graph-result {
1580
+ stroke: #1ABC9C;
1581
+ }
1582
+
1583
+ .wphb-score-result-grade-b {
1584
+ color: #1ABC9C;
1585
+ }
1586
+
1587
+ .wphb-score-result-grade-b .wphb-score-type-circle .wphb-score-graph-result {
1588
+ stroke: #1ABC9C;
1589
+ }
1590
+
1591
+ .wphb-score-result-grade-c {
1592
+ color: #FFD000;
1593
+ }
1594
+
1595
+ .wphb-score-result-grade-c .wphb-score-type-circle .wphb-score-graph-result {
1596
+ stroke: #FFD000;
1597
+ }
1598
+
1599
+ .wphb-score-result-grade-d {
1600
+ color: #FFD000;
1601
+ }
1602
+
1603
+ .wphb-score-result-grade-d .wphb-score-type-circle .wphb-score-graph-result {
1604
+ stroke: #FFD000;
1605
+ }
1606
+
1607
+ .wphb-score-result-grade-e,
1608
+ .wphb-score-result-grade-f {
1609
+ color: #FF6D6D;
1610
+ }
1611
+
1612
+ .wphb-score-result-grade-e .wphb-score-type-circle .wphb-score-graph-result,
1613
+ .wphb-score-result-grade-f .wphb-score-type-circle .wphb-score-graph-result {
1614
+ stroke: #FF6D6D;
1615
+ }
1616
+
1617
+ .wphb-score-result-grade-dismissed {
1618
+ color: #AAAAAA;
1619
+ }
1620
+
1621
+ .wphb-score-result-grade-dismissed .wphb-score-type-circle .wphb-score-graph-result {
1622
+ stroke: #AAAAAA;
1623
+ }
1624
+
1625
+ .wphb-score-have-label .wphb-score-type,
1626
+ .wphb-score-have-label .wphb-score-result-label {
1627
+ float: left;
1628
+ display: block;
1629
+ }
1630
+
1631
+ .wphb-score-have-label.inside .wphb-score-type,
1632
+ .wphb-score-have-label.inside .wphb-score-result-label {
1633
+ float: none;
1634
+ }
1635
+
1636
+ .wphb-score-have-label .wphb-score-result-label {
1637
+ font-family: 'Roboto', Arial, sans-serif;
1638
+ font-size: 15px;
1639
+ color: #888888;
1640
+ padding-left: 10px;
1641
+ }
1642
+
1643
+ .wphb-score-have-label .wphb-score-type-circle + .wphb-score-result-label {
1644
+ line-height: 30px;
1645
+ min-width: 35px;
1646
+ text-align: left;
1647
+ }
1648
+
1649
+ .wphb-score-have-label.inside .wphb-score-type {
1650
+ position: relative;
1651
+ }
1652
+
1653
+ .wphb-score-have-label.inside .wphb-score-result-label {
1654
+ font-size: 26px;
1655
+ left: 0;
1656
+ line-height: 34px;
1657
+ margin: -17px 0 0;
1658
+ min-width: 100%;
1659
+ padding: 0;
1660
+ position: absolute;
1661
+ right: 0;
1662
+ text-align: center;
1663
+ top: 50%;
1664
+ }
1665
+
1666
+ #wphb-error-details {
1667
+ display: none;
1668
+ }
1669
+
1670
+ #wphb-error-details-link {
1671
+ color: white;
1672
+ text-decoration: none;
1673
+ margin-top: 10px;
1674
+ margin-bottom: 10px;
1675
+ display: inline-block;
1676
+ font-weight: 400;
1677
+ }
1678
+
1679
+ #wphb-error-details-link > .dashicons {
1680
+ text-decoration: none;
1681
+ }
1682
+
1683
+ #wphb-error-details-link.expanded {
1684
+ display: none;
1685
+ }
1686
+
1687
+ /* Tabs */
1688
+ .wpmud .wphb-tabs a {
1689
+ color: #333;
1690
+ display: block;
1691
+ }
1692
+
1693
+ .wpmud .wphb-tabs .wphb-tab {
1694
+ padding: 5px 20px;
1695
+ height: 30px;
1696
+ }
1697
+
1698
+ .wpmud .wphb-tabs .wphb-tab.current {
1699
+ background-color: #E6E6E6;
1700
+ border-radius: 20px;
1701
+ font-weight: 500;
1702
+ }
1703
+
1704
+ .wpmud .wphb-tab .wphb-button-label {
1705
+ position: relative;
1706
+ top: -25px;
1707
+ left: 100%;
1708
+ margin-left: -22px;
1709
+ width: 39px;
1710
+ height: 26px;
1711
+ text-align: center;
1712
+ font-size: 12px;
1713
+ font-weight: 500;
1714
+ line-height: 24px;
1715
+ }
1716
+
1717
+ .wpmud .wphb-tab > i {
1718
+ color: #FF6D6D;
1719
+ position: relative;
1720
+ top: -23px;
1721
+ left: 100%;
1722
+ margin-left: -5px;
1723
+ font-size: 21px;
1724
+ }
1725
+
1726
+ .wpmud .wphb-tab > i.hb-wpmudev-icon-tick {
1727
+ color: #1ABC9C;
1728
+ }
1729
+
1730
+ /* ****************************************************************************
1731
+ * 10. RESPONSIVE/MQ
1732
+ */
1733
+ /* LARGE DESKTOP */
1734
+ @media screen and (max-width: 1200px) {
1735
+
1736
+ /* Responsive Class Helpers */
1737
+ .hide-to-large {
1738
+ display: none;
1739
+ }
1740
+
1741
+ /* Block: Steps */
1742
+ .wphb-steps {
1743
+ text-align: center;
1744
+ }
1745
+ .wphb-step-number {
1746
+ float: none;
1747
+ margin-bottom: 10px;
1748
+ }
1749
+ .wphb-step-number-inner {
1750
+ margin: 0 auto;
1751
+ }
1752
+ .wphb-step-content {
1753
+ margin-left: 0;
1754
+ }
1755
+
1756
+ /* Page: Dashboard */
1757
+ .wpmud .box-dashboard-smush-no-membership .content-box-two-cols-image-left .wphb-block-entry-content {
1758
+ margin-top: 65px;
1759
+ }
1760
+ .wpmud .content-box-two-cols-image-left .wphb-block-entry-content {
1761
+ margin-top: 65px;
1762
+ }
1763
+
1764
+ /* Page: Performance */
1765
+ .wpmud .performance-report-table .wphb-performance-report-item-score,
1766
+ .wpmud .performance-report-table .wphb-performance-report-item-type {
1767
+ width: 115px;
1768
+ }
1769
+ .wpmud .performance-report-table .wphb-performance-report-item-cta {
1770
+ width: 180px;
1771
+ }
1772
+ .wpmud .box-reporting-summary .box-footer .wphb-block-entry-content {
1773
+ margin-top: 0;
1774
+ }
1775
+
1776
+ /* Page: Caching */
1777
+ .wpmud .wrap-wphb-caching .row {
1778
+ display: block;
1779
+ table-layout: inherit;
1780
+ }
1781
+ .wpmud .wrap-wphb .row .col-half,
1782
+ .wpmud .wrap-wphb-caching .row .col-half,
1783
+ .wpmud .wrap-wphb-gzip .row .col-half {
1784
+ display: block;
1785
+ margin-top: 30px;
1786
+ padding: 0;
1787
+ width: 100%;
1788
+ }
1789
+ .wpmud .wrap-wphb .row .col-half:first-child,
1790
+ .wpmud .wrap-wphb-caching .row .col-half:first-child,
1791
+ .wpmud .wrap-wphb-gzip .row .col-half:first-child {
1792
+ margin-top: 0;
1793
+ }
1794
+ }
1795
+
1796
+ /* DESKTOP */
1797
+ @media screen and (max-width: 1100px) {
1798
+
1799
+ /* Box: Content w/Image (left) */
1800
+ .wpmud .content-box-two-cols-image-left .wphb-block-entry {
1801
+ text-align: center;
1802
+ min-height: 100%;
1803
+ }
1804
+ .wpmud .content-box-two-cols-image-left .wphb-block-entry-image {
1805
+ display: none;
1806
+ }
1807
+ .wpmud .wphb-block-entry-third {
1808
+ width: 49%;
1809
+ }
1810
+ .wpmud .content-box-two-cols-image-left .wphb-block-entry-image .wphb-image {
1811
+ margin: 0 auto;
1812
+ }
1813
+ .wpmud .content-box-two-cols-image-left .wphb-block-entry-content {
1814
+ margin: 35px 0 0 155px;
1815
+ }
1816
+ .wpmud .content-box-two-cols-image-left .wphb-block-entry-content .title {
1817
+ text-align: center;
1818
+ }
1819
+
1820
+ .wpmud .wphb-block-entry-third {
1821
+ text-align: left;
1822
+ padding-left: 0;
1823
+ }
1824
+
1825
+ /* Responsive Uitlities */
1826
+ .hide-to-desktop {
1827
+ display: none !important;
1828
+ }
1829
+
1830
+ /* Page: Dashboard */
1831
+ .wpmud .box-dashboard-uptime-no-membership .wphb-block-entry-image,
1832
+ .wpmud .box-dashboard-reports-no-membership .wphb-block-entry-image {
1833
+ display: none;
1834
+ }
1835
+ .wpmud .wphb-cf-notice p,
1836
+ .wpmud .wphb-upsell-free-message p {
1837
+ margin-left: auto;
1838
+ margin-top: 30px;
1839
+ }
1840
+ .wpmud .wphb-cf-notice p:after,
1841
+ .wpmud .wphb-upsell-free-message p:after {
1842
+ display: none;
1843
+ }
1844
+
1845
+ /* Page: Performance */
1846
+ .wpmud .performance-report-table .wphb-performance-report-item-type {
1847
+ width: 105px;
1848
+ }
1849
+ .wpmud .performance-report-table .wphb-performance-report-item-cta {
1850
+ width: 165px;
1851
+ }
1852
+ .wpmud .performance-report-table .wphb-performance-report-item-score {
1853
+ width: 105px;
1854
+ padding-left: 20px !important;
1855
+ }
1856
+ }
1857
+
1858
+ @media screen and (max-width: 1060px) {
1859
+ .wpmud .wphb-border-row-header,
1860
+ .wpmud .wphb-border-row {
1861
+ padding: 15px 15px;
1862
+ }
1863
+ }
1864
+
1865
+ /* SMALL DESKTOP */
1866
+ @media screen and (max-width: 960px) {
1867
+ /* Generic */
1868
+ .wpmud .row {
1869
+ display: block;
1870
+ }
1871
+ .wpmud .row .col-fifth {
1872
+ display: block;
1873
+ width: 100%;
1874
+ padding: 0;
1875
+ }
1876
+ .wpmud .row .col-four-fifths {
1877
+ display: block;
1878
+ width: 100%;
1879
+ padding: 0;
1880
+ }
1881
+
1882
+ .wpmud .dev-overlay {
1883
+ left: 35px;
1884
+ top: 15px;
1885
+ }
1886
+
1887
+ .wpmud .wphb-table.stack {
1888
+ display: block;
1889
+ }
1890
+ .wpmud .wphb-table.stack > thead,
1891
+ .wpmud .wphb-table.stack > tfoot {
1892
+ display: none;
1893
+ }
1894
+ .wpmud .wphb-table.stack > tbody {
1895
+ display: block;
1896
+ width: 100%;
1897
+ }
1898
+ .wpmud .wphb-table.stack > tbody > tr {
1899
+ display: block;
1900
+ position: relative;
1901
+ width: 100%;
1902
+ }
1903
+ .wpmud .wphb-table.stack > tbody > tr:before {
1904
+ background: transparent;
1905
+ border-top: 1px solid #EAEAEA;
1906
+ border-bottom: 1px solid transparent;
1907
+ bottom: 0;
1908
+ content: "";
1909
+ display: block;
1910
+ left: 0;
1911
+ margin: 0 -30px;
1912
+ position: absolute;
1913
+ right: 0;
1914
+ top: 0;
1915
+ }
1916
+ .wpmud .wphb-table.stack > tbody > tr:first-child:before {
1917
+ border-top-color: transparent;
1918
+ }
1919
+ .wpmud .wphb-table.stack > tbody > tr > td {
1920
+ border-bottom: none;
1921
+ display: block;
1922
+ padding-left: 0;
1923
+ position: relative;
1924
+ text-align: left;
1925
+ width: 100%;
1926
+ }
1927
+ .wpmud .wphb-table.stack > tbody > tr > td:before {
1928
+ content: attr(th-data);
1929
+ display: block;
1930
+ float: left;
1931
+ font-size: 15px;
1932
+ font-weight: 700;
1933
+ line-height: 1.5em;
1934
+ min-width: 150px;
1935
+ max-width: 300px;
1936
+ margin-right: 20px;
1937
+ text-transform: uppercase;
1938
+ /*width: 40%;*/
1939
+ }
1940
+ .wpmud .wphb-table.stack > tbody > tr > td.has-button-label:before {
1941
+ line-height: 2em;
1942
+ }
1943
+ .wpmud .wphb-table.stack > tbody > tr > td.has-select {
1944
+ max-height: 64px;
1945
+ }
1946
+ .wpmud .wphb-table.stack > tbody > tr > td.has-select:before {
1947
+ line-height: 2.867em;
1948
+ }
1949
+ .wpmud .wphb-table.stack > tbody > tr,
1950
+ .wpmud .wphb-table.stack > tbody > tr > td:first-child {
1951
+ border-top: none;
1952
+ }
1953
+ .wpmud .wphb-table.stack > tbody > tr > td:last-child {
1954
+ border-bottom: none;
1955
+ }
1956
+ .wpmud .wphb-table.stack > tbody > tr:hover:before {
1957
+ background: #FBFBFB;
1958
+ }
1959
+ .wpmud .wphb-table.stack > tbody > tr:first-child:hover:before {
1960
+ border-top-color: #EAEAEA;
1961
+ }
1962
+ .wpmud .wphb-table.stack > tbody > tr:last-child:hover:before {
1963
+ border-bottom-color: #EAEAEA;
1964
+ }
1965
+ .wpmud .wphb-table.stack > tbody > tr:hover > td {
1966
+ border-bottom: none;
1967
+ }
1968
+ .wpmud .wphb-table.stack > tbody > tr:hover > td:first-child:after,
1969
+ .wpmud .wphb-table.stack > tbody > tr:hover > td:last-child:after {
1970
+ display: none;
1971
+ }
1972
+ .wpmud .wphb-table.stack > tbody > tr > td > * {
1973
+ display: inline-block;
1974
+ }
1975
+ .wpmud .wphb-block-entry-third {
1976
+ padding-left: 0;
1977
+ }
1978
+ }
1979
+
1980
+ /* TABLET */
1981
+ @media screen and (max-width: 783px) {
1982
+ /* Generic */
1983
+ .wpmud #header .actions {
1984
+ position: relative;
1985
+ display: flex;
1986
+ align-items: center;
1987
+ top: 0;
1988
+ margin: 10px 0 10px;
1989
+ float: none;
1990
+ padding-bottom: 0;
1991
+ }
1992
+ .wpmud #header .actions .button:first-child {
1993
+ margin-left: 0;
1994
+ }
1995
+ .wpmud #header .actions [tooltip].tooltip-bottom:after {
1996
+ margin-left: -54px;
1997
+ }
1998
+ .wpmud .box-content .with-padding {
1999
+ padding: 0;
2000
+ }
2001
+ .wpmud .dev-overlay {
2002
+ left: 0;
2003
+ top: 0;
2004
+ }
2005
+ .wpmud .row,
2006
+ .wpmud .row-sep {
2007
+ display: block;
2008
+ table-layout: inherit;
2009
+ }
2010
+ .wpmud .row .col-third,
2011
+ .wpmud .row .col-two-third,
2012
+ .wpmud .row .col-half,
2013
+ .wpmud .row .col-quarter,
2014
+ .wpmud .row .col-three-quarters {
2015
+ display: block;
2016
+ margin-top: 30px;
2017
+ padding: 0;
2018
+ width: 100%;
2019
+ }
2020
+ .wpmud .row .col-third:first-child,
2021
+ .wpmud .row .col-two-third:first-child,
2022
+ .wpmud .row .col-half:first-child,
2023
+ .wpmud .row .col-quarter:first-child,
2024
+ .wpmud .row .col-three-quarters:first-child {
2025
+ margin-top: 0;
2026
+ }
2027
+ .wpmud .content-box-two-cols-image-left .wphb-block-entry-image {
2028
+ display: none;
2029
+ }
2030
+
2031
+ .wpmud .wphb-border-frame {
2032
+ border: 0
2033
+ }
2034
+
2035
+ .wpmud .wphb-table-wrapper.complex {
2036
+ overflow-y: hidden;
2037
+ width: 100%;
2038
+ padding: 0;
2039
+ }
2040
+ .wpmud .wphb-table-wrapper.complex p {
2041
+ padding: 0 20px;
2042
+ }
2043
+ .wpmud .wphb-table-wrapper.complex .alignleft {
2044
+ padding-left: 20px;
2045
+ }
2046
+ .wpmud .wphb-table-wrapper.complex .alignright {
2047
+ padding-right: 20px;
2048
+ }
2049
+
2050
+ .wpmud .list-table > thead > tr > th,
2051
+ .wpmud .list-table > tbody > tr > td {
2052
+ width: 100%;
2053
+ }
2054
+
2055
+ .wpmud .wphb-table.stack > tbody > tr > td:before {
2056
+ max-width: 220px;
2057
+ width: 40%;
2058
+ }
2059
+
2060
+ .wpmud .dev-box .box-title .toggle-group {
2061
+ margin-top: 0;
2062
+ }
2063
+
2064
+ .wpmud .wrap-wp-hummingbird > .wphb-notice {
2065
+ width: 85%;
2066
+ }
2067
+ .wpmud #header .after-header-actions .button {
2068
+ margin-top: -15px;
2069
+ }
2070
+
2071
+ /* Page: Dashboard */
2072
+ .wpmud .callout-box .callout-title {
2073
+ line-height: 30px;
2074
+ }
2075
+
2076
+ /* Page: Performance */
2077
+ .wpmud .performance-report-table th,
2078
+ .wpmud .performance-report-table td {
2079
+ width: 70% !important;
2080
+ }
2081
+ .wpmud .wphb-performance-report-heading.wphb-performance-report-heading-type,
2082
+ .wpmud .wphb-performance-report-item-type,
2083
+ .wpmud .wphb-performance-report-item-cta > button {
2084
+ display: none !important;
2085
+ }
2086
+ }
2087
+
2088
+ /* LARGE MOBILE */
2089
+ @media screen and (max-width: 600px) {
2090
+ /* Responsive Class Helpers */
2091
+ .hide-to-mobile {
2092
+ display: none !important;
2093
+ }
2094
+
2095
+ .wpmud .wphb-block-entry-third {
2096
+ display: block;
2097
+ text-align: center;
2098
+ width: 100%;
2099
+ }
2100
+ .wpmud .wphb-block-entry-third .dev-list {
2101
+ text-align: left;
2102
+ }
2103
+
2104
+ /* Generic */
2105
+ .wpmud .dev-box .box-title .actions,
2106
+ .wpmud .dev-box .box-title .extra,
2107
+ .wpmud .dev-box .box-title .test-results {
2108
+ float: none;
2109
+ display: block;
2110
+ }
2111
+ .wpmud .dev-box .box-title .actions,
2112
+ .wpmud .dev-box .box-title .extra {
2113
+ margin-top: 15px;
2114
+ }
2115
+ .wpmud .dev-box .box-title {
2116
+ padding: 15px 20px;
2117
+ }
2118
+ .wpmud .dev-box .box-title .buttons {
2119
+ margin-top: 2px;
2120
+ float: right;
2121
+ }
2122
+ .wpmud .dev-box .box-title .wphb-pills {
2123
+ margin: 4px 0 0 10px;
2124
+ }
2125
+ .wpmud .dev-box .box-title h3 {
2126
+ line-height: 34px;
2127
+ display: inline-block;
2128
+ }
2129
+ .wpmud section[class^="box-dashboard-"] .box-title:before {
2130
+ margin: 5px 10px 5px 0;
2131
+ }
2132
+ .wphb-pills {
2133
+ margin: 0 0 0 10px;
2134
+ }
2135
+ .wphb-pills-group .wphb-pills:first-child {
2136
+ border-radius: 5px 5px 0 0 !important;
2137
+ }
2138
+ .wphb-pills-group .wphb-pills:last-child {
2139
+ border-radius: 0 0 5px 5px !important;
2140
+ }
2141
+ .wpmud .wrap-wp-hummingbird > .wphb-notice {
2142
+ width: 100%;
2143
+ top: 46px;
2144
+ margin-left: -251px;
2145
+ }
2146
+
2147
+ /* Page: Dashboard */
2148
+ .wpmud .wphb-block-entry-third .current-performance-score {
2149
+ margin-bottom: 5px;
2150
+ }
2151
+ .wpmud .content-box-two-cols-image-left .wphb-block-entry-content.wphb-cf-notice {
2152
+ margin: 35px 0 0 0;
2153
+ }
2154
+ .box-dashboard-browser-caching-module .box-content {
2155
+ background-image: none;
2156
+ }
2157
+ /* Page: Browser Caching */
2158
+ .wpmud .box-caching-summary .box-content > .box-content {
2159
+ background-image: none;
2160
+ }
2161
+ }
2162
+
2163
+ /* MOBILE */
2164
+ @media screen and (max-width: 480px) {
2165
+ /* Compoents: Pills */
2166
+ .wphb-pills-group {
2167
+ border-collapse: inherit;
2168
+ border-spacing: inherit;
2169
+ }
2170
+ .box-dashboard-minification-module .wphb-pills {
2171
+ display: block;
2172
+ }
2173
+ .wphb-pills.with-arrow.right:after,
2174
+ .wphb-pills.with-arrow.left:after {
2175
+ border-top-color: #19B4CF;
2176
+ margin-top: 0;
2177
+ margin-left: -8px;
2178
+ top: 50%;
2179
+ }
2180
+ .wphb-pills.with-arrow.right:after {
2181
+ border-left-color: transparent;
2182
+ left: 50%;
2183
+ }
2184
+ .wphb-pills.with-arrow.left:after {
2185
+ border-right-color: transparent;
2186
+ right: 50%;
2187
+ }
2188
+ .wphb-pills.with-arrow.right.grey:after {
2189
+ border-top-color: #eee;
2190
+ border-left-color: transparent;
2191
+ }
2192
+ .wphb-pills.with-arrow.left.grey:after {
2193
+ border-top-color: #eee;
2194
+ border-right-color: transparent;
2195
+ }
2196
+
2197
+ /* Page: Dashboard */
2198
+ .wpmud .box-dashboard-performance-module .wphb-score-result-label {
2199
+ margin-left: 3px;
2200
+ margin-right: 5px;
2201
+ }
2202
+ .wpmud .box-dashboard-performance-module .wphb-dash-table .button-ghost {
2203
+ padding: 5px 6px 7px !important;
2204
+ }
2205
+ .wpmud .wphb-score.wphb-score-have-label {
2206
+ width: 65px;
2207
+ }
2208
+ .wpmud .dev-box .status-text {
2209
+ line-height: 15px;
2210
+ margin-top: 0;
2211
+ padding-left: 10px;
2212
+ word-wrap: break-word;
2213
+ max-width: 150px;
2214
+ }
2215
+
2216
+ /* Performance reports */
2217
+ .wpmud .wrap-wphb-performance .recipient,
2218
+ .wpmud .wrap-wphb-performance .recipient .name,
2219
+ .wpmud .wrap-wphb-performance .add-recipient {
2220
+ flex-flow: row wrap;
2221
+ }
2222
+ .wpmud .wrap-wphb-performance .add-recipient > button,
2223
+ .wpmud .wrap-wphb-performance .add-recipient #wphb-first-name {
2224
+ border-radius: 0 !important;
2225
+ margin-bottom: 5px;
2226
+ border: 1px solid #E6E6E6;
2227
+ }
2228
+ .wpmud .wrap-wphb-performance .add-recipient > button {
2229
+ margin-top: 10px !important;
2230
+ }
2231
+ }
_src/admin/scss/common/_buttons.scss ADDED
@@ -0,0 +1,289 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* ****************************************************************************
2
+ * COMMON: BUTTONS
3
+ */
4
+
5
+ /* Box-content with buttons */
6
+ .wpmud .box-content .buttons {
7
+ margin-top: 30px;
8
+ }
9
+
10
+ .wpmud .box-content .buttons.buttons-on-left {
11
+ text-align: left;
12
+ }
13
+
14
+ .wpmud .box-content .buttons.buttons-on-right {
15
+ text-align: right;
16
+ }
17
+
18
+ /* Box-footer with buttons */
19
+ .wpmud .box-footer .buttons.buttons-on-left {
20
+ text-align: left;
21
+ }
22
+
23
+ .wpmud .box-footer .buttons.buttons-on-right {
24
+ text-align: right;
25
+ }
26
+
27
+ .wpmud .wphb-notice:not(.notice) .buttons {
28
+ margin: 10px 30px 0;
29
+ }
30
+
31
+ .wpmud #header .button[disabled] {
32
+ background-color: #E6E6E6 !important;
33
+ border-radius: 4px;
34
+ color: #AAAAAA !important;
35
+ }
36
+
37
+ .wpmud .documentation-button:before {
38
+ content: '\e915';
39
+ color: #888888;
40
+ font-family: 'hummingbird', sans-serif;
41
+ font-size: 12px;
42
+ vertical-align: middle;
43
+ line-height: 16px;
44
+ top: -2px;
45
+ position: relative;
46
+ margin-right: 5px;
47
+ }
48
+
49
+ .wpmud .documentation-button:hover:before,
50
+ .wpmud .documentation-button:focus:before {
51
+ color: #FFFFFF;
52
+ }
53
+
54
+ .wpmud .wphb-modal .wphb-dialog-content .button {
55
+ margin-bottom: 15px;
56
+ }
57
+
58
+ .wpmud .wphb-modal .alignleft,
59
+ .wpmud .wphb-modal .button {
60
+ margin-bottom: 0 !important;
61
+ }
62
+
63
+ .wpmud .wphb-block-entry-content .buttons-group .button {
64
+ display: inline-block;
65
+ }
66
+
67
+ .wpmud .wrap-wp-hummingbird .report-status button {
68
+ border-radius: 20px !important;
69
+ margin-top: 10px !important;
70
+ background-color: #D1F1EA !important;
71
+ color: #1ABC9C !important;
72
+ }
73
+
74
+ .wpmud .wrap-wp-hummingbird .report-status button i {
75
+ color: #1ABC9C;
76
+ font-size: 16px;
77
+ position: relative;
78
+ line-height: 10px;
79
+ top: 3px;
80
+ }
81
+
82
+ .wpmud .wrap-wp-hummingbird .report-status button.inactive {
83
+ background-color: #E6E6E6 !important;
84
+ color: #AAAAAA !important;
85
+ }
86
+
87
+ .wpmud .wrap-wphb-performance .scan-settings .buttons {
88
+ margin-top: 30px;
89
+ }
90
+
91
+ .wpmud .wrap-wphb-performance .add-recipient > button {
92
+ background-color: #888888 !important;
93
+ border-radius: 0 4px 4px 0 !important;
94
+ }
95
+
96
+ .wpmud .wrap-wphb-gzip #enable-cache-wrap .button,
97
+ .wpmud .wrap-wphb-caching #enable-cache-wrap .button {
98
+ margin-top: 30px;
99
+ }
100
+
101
+ .wpmud .wphb-code-snippet .button {
102
+ position: absolute;
103
+ left: 100%;
104
+ margin-left: -90px !important;
105
+ margin-top: 15px !important;
106
+ }
107
+
108
+ .wpmud .box-page-caching .box-footer .buttons > .button {
109
+ margin-top: -20px;
110
+ }
111
+
112
+ .wpmud .box-caching-gravatar .button-large {
113
+ margin: 0 !important;
114
+ }
115
+
116
+ .wrap-wp-hummingbird .button-cta-green:hover {
117
+ box-shadow: none;
118
+ }
119
+
120
+ .wphb-scan-progress .wphb-scan-cancel-button {
121
+ float: right;
122
+ margin-top: -13px;
123
+ }
124
+
125
+ .wphb-scan-progress .wphb-scan-cancel-button > a {
126
+ font-size: 12px;
127
+ color: #AAAAAA;
128
+ text-transform: uppercase;
129
+ }
130
+
131
+ /* Buttons */
132
+ .wpmud .wphb-modal button:not(.wph-button):not(#collapse-button),
133
+ .wpmud .wphb-modal .button:hover:not(:focus):not(:active):not(.wph-button):not(#collapse-button):not([tooltip]) {
134
+ background: #17A8E3;
135
+ }
136
+
137
+ .wpmud .wrap-wp-hummingbird .wpdui-btn,
138
+ .wpmud .wphb-modal .button:not(.notice-dismiss),
139
+ .wpmud .wrap-wp-hummingbird button:not(.notice-dismiss),
140
+ .wpmud .wrap-wp-hummingbird .button,
141
+ .wpmud .wrap-wp-hummingbird button:not(.wph-button):not(#collapse-button):not(.notice-dismiss) {
142
+ font: 500 12px/16px 'Roboto' !important;
143
+ padding: 7px 16px;
144
+ height: 30px;
145
+ background-color: #17A8E3;
146
+ color: #FFFFFF;
147
+ border-radius: 3px;
148
+ -moz-border-radius: 3px;
149
+ transition: all .3s ease;
150
+ -webkit-transition: all .3s ease;
151
+ text-shadow: none !important;
152
+ }
153
+
154
+ .wpmud .wrap-wp-hummingbird button:hover:not(:focus):not(:active):not(.wph-button):not(#collapse-button):not([tooltip]):not(.notice-dismiss),
155
+ .wpmud .wrap-wp-hummingbird .button:hover:not(:focus):not(:active):not(.wph-button):not(#collapse-button):not([tooltip]),
156
+ .wpmud .wphb-modal .button:hover:not(:focus):not(:active):not(.wph-button):not(#collapse-button):not([tooltip]),
157
+ .wpmud .wrap-wp-hummingbird button:active,
158
+ .wpmud .wrap-wp-hummingbird button:focus,
159
+ .wpmud .wrap-wp-hummingbird .button:active,
160
+ .wpmud .wrap-wp-hummingbird .button:focus,
161
+ .wpmud .wphb-modal .button:focus,
162
+ .wpmud .wphb-modal .button:active {
163
+ background: #0A9BD6;
164
+ }
165
+
166
+ .wpmud .wrap-wp-hummingbird .button-disabled {
167
+ border-radius: 15px;
168
+ background-color: #F8F8F8;
169
+ color: #C0C0C0;
170
+ }
171
+
172
+ .wpmud .wphb-modal .button.button-large,
173
+ .wpmud .wrap-wp-hummingbird .wpdui-btn--full,
174
+ .wpmud .wrap-wp-hummingbird button.button-large:not(.wph-button):not(#collapse-button),
175
+ .wpmud .wrap-wp-hummingbird button.button-large,
176
+ .wpmud .wrap-wp-hummingbird .button.button-large {
177
+ font: 500 15px/20px 'Roboto' !important;
178
+ height: 40px !important;
179
+ padding: 11px 20px 9px;
180
+ }
181
+
182
+ .wpmud .wrap-wp-hummingbird button.button-ghost:not(.wph-button):not(#collapse-button),
183
+ .wpmud .wrap-wp-hummingbird .button-ghost,
184
+ .wpmud .wphb-modal .button-ghost {
185
+ padding: 5px 16px 7px !important;
186
+ background-color: transparent !important;
187
+ border: 2px solid #DDDDDD;
188
+ color: #888888 !important;
189
+ }
190
+
191
+ .wpmud .wrap-wp-hummingbird button.button-ghost:hover:not(.wph-button):not(#collapse-button),
192
+ .wpmud .wrap-wp-hummingbird .button-ghost:hover:not(:focus):not(:active),
193
+ .wpmud .wphb-modal .button-ghost:hover:not(:focus):not(:active),
194
+ .wpmud .wrap-wp-hummingbird .button-ghost:active,
195
+ .wpmud .wrap-wp-hummingbird .button-ghost.active,
196
+ .wpmud .wrap-wp-hummingbird .button-ghost:hover:enabled,
197
+ .wpmud .wrap-wp-hummingbird .button-ghost:focus,
198
+ .wpmud .wphb-modal .button-ghost:active,
199
+ .wpmud .wphb-modal .button-ghost:hover:enabled,
200
+ .wpmud .wphb-modal .button-ghost:focus,
201
+ .wpmud .wrap-wp-hummingbird .button-grey:hover {
202
+ background-color: #7B7B7B !important;
203
+ border-color: #7B7B7B;
204
+ color: #FFFFFF !important;
205
+ }
206
+
207
+ .wpmud .wrap-wp-hummingbird button.button-ghost.button-large:not(.wph-button):not(#collapse-button),
208
+ .wpmud .wrap-wp-hummingbird .button-ghost.button-large,
209
+ .wpmud .wphb-modal .button-ghost.button-large {
210
+ padding: 9px 20px 9px !important;
211
+ }
212
+
213
+ .wpmud .wphb-modal .button-content-cta {
214
+ box-shadow: none;
215
+ background-color: #1ABC9C !important;
216
+ color: #FFFFFF;
217
+ }
218
+
219
+ .wpmud .wrap-wp-hummingbird .button-content-cta {
220
+ box-shadow: none;
221
+ background-color: #1ABC9C;
222
+ color: #FFFFFF;
223
+ }
224
+
225
+ .wpmud .wrap-wp-hummingbird .button-content-cta:hover:not(:focus):not(:active),
226
+ .wpmud .wphb-modal .button-content-cta:hover:not(:focus):not(:active),
227
+ .wpmud .wrap-wp-hummingbird .button-content-cta:active,
228
+ .wpmud .wrap-wp-hummingbird .button-content-cta:focus,
229
+ .wpmud .wphb-modal .button-content-cta:active,
230
+ .wpmud .wphb-modal .button-content-cta:focus {
231
+ background: #0DAF8F !important;
232
+ border-color: #0DAF8F;
233
+ }
234
+
235
+ .wpmud .wrap-wp-hummingbird .button-content-cta.button-ghost {
236
+ background: transparent;
237
+ color: #1ABC9C !important;
238
+ border-color: #1ABC9C;
239
+ border-radius: 20px;
240
+ }
241
+
242
+ .wpmud .wrap-wp-hummingbird .button-content-cta.button-ghost:active {
243
+ color: #FFFFFF !important;
244
+ border-color: #0DAF8F;
245
+ }
246
+
247
+ .wpmud .wrap-wp-hummingbird .button-notice {
248
+ background-color: #E6E6E6 !important;
249
+ color: #AAAAAA !important;
250
+ }
251
+
252
+ .wpmud .wrap-wp-hummingbird .button-notice:hover:not(:focus):not(:active):not(.wph-button):not(#collapse-button):not([tooltip]),
253
+ .wpmud .wrap-wp-hummingbird .button-notice:hover:not(:focus):not(:active),
254
+ .wpmud .wrap-wp-hummingbird .button-notice:active,
255
+ .wpmud .wrap-wp-hummingbird .button-notice:focus {
256
+ background-color: #888888 !important;
257
+ color: #FFFFFF !important;
258
+ }
259
+
260
+ .wpmud .wrap-wp-hummingbird .button-grey {
261
+ background-color: #888888 !important;
262
+ color: #FFFFFF !important;
263
+ }
264
+
265
+ .wrap-wp-hummingbird .button-load-more {
266
+ background-color: transparent;
267
+ border: 1px solid #ddd;
268
+ border-radius: 50%;
269
+ color: #bababa;
270
+ font-family: 'Roboto Condensed', 'Roboto', Arial, sans-serif;
271
+ font-size: 13px;
272
+ font-weight: 700;
273
+ line-height: 18px;
274
+ height: 140px;
275
+ padding: 0;
276
+ transition: color .4s, background-color .4s;
277
+ width: 140px;
278
+ }
279
+
280
+ .wrap-wp-hummingbird .button-load-more:hover:not(:focus):not(:active) {
281
+ background-color: #fafafa;
282
+ border-color: #ddd;
283
+ color: #777771;
284
+ }
285
+
286
+ .wrap-wp-hummingbird .button-load-more:active,
287
+ .wrap-wp-hummingbird .button-load-more:focus {
288
+ background: #777771;
289
+ }
_src/admin/scss/{modules → common}/_classes.scss RENAMED
@@ -2,6 +2,10 @@
2
  * MODULE: CLASSES
3
  */
4
 
 
 
 
 
5
  // Clearfix
6
  .cf {
7
  &:after {
@@ -10,15 +14,18 @@
10
  clear: both;
11
  }
12
  }
 
 
 
13
 
14
  // Responsive Helpers
15
- .hide-to-large {
16
- @include bp(desktop-large) {
17
  display: none;
18
  }
19
  }
20
- .hide-to-desktop {
21
- @include bp(desktop) {
22
  display: none;
23
  }
24
- }
2
  * MODULE: CLASSES
3
  */
4
 
5
+ .hidden {
6
+ display: none;
7
+ }
8
+
9
  // Clearfix
10
  .cf {
11
  &:after {
14
  clear: both;
15
  }
16
  }
17
+ .wpmud .wrap-wp-hummingbird .clear {
18
+ padding: 0;
19
+ }
20
 
21
  // Responsive Helpers
22
+ @media screen and (min-width: $desktop--small) {
23
+ .hide-on-large {
24
  display: none;
25
  }
26
  }
27
+ .hide-on-mobile {
28
+ @include bp(desktop-small) {
29
  display: none;
30
  }
31
+ }
_src/admin/scss/{modules → common}/_functions.scss RENAMED
@@ -1,9 +1,9 @@
1
  /* ****************************************************************************
2
- * MODULE: FUNCTIONS
3
  */
4
-
5
  $browser-context: 16;
6
 
7
  @function getEm($pixels, $context: $browser-context) {
8
- @return #{$pixels/$context}em;
9
  }
1
  /* ****************************************************************************
2
+ * COMMON: FUNCTIONS
3
  */
4
+
5
  $browser-context: 16;
6
 
7
  @function getEm($pixels, $context: $browser-context) {
8
+ @return #{$pixels/$context}em;
9
  }
_src/admin/scss/common/_layout.scss ADDED
@@ -0,0 +1,242 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* ****************************************************************************
2
+ * COMMON: LAYOUT
3
+ */
4
+
5
+ /* .row */
6
+ .wpmud .row {
7
+ margin-top: 30px;
8
+ }
9
+
10
+ .wpmud .box-content .row:first-of-type {
11
+ margin-top: 0;
12
+ }
13
+
14
+ .wpmud .row-space-large {
15
+ margin-bottom: 40px;
16
+ }
17
+
18
+ .wpmud .row .col-center {
19
+ display: block;
20
+ margin-right: auto;
21
+ margin-left: auto;
22
+ }
23
+
24
+ .wpmud .row .col-quarter,
25
+ .wpmud .row .col-three-quarters,
26
+ .wpmud .row .col-fifth,
27
+ .wpmud .row .col-four-fifths {
28
+ display: table-cell;
29
+ padding: 0 15px 0 15px;
30
+ position: relative;
31
+ vertical-align: top;
32
+ }
33
+
34
+ .wpmud .row .col-quarter {
35
+ width: 25%;
36
+ }
37
+
38
+ .wpmud .row .col-three-quarters {
39
+ width: 75%;
40
+ }
41
+
42
+ .wpmud .row .col-fifth {
43
+ width: 20%;
44
+ }
45
+
46
+ .wpmud .row .col-four-fifths {
47
+ width: 80%;
48
+ }
49
+
50
+ .wpmud .row .col-four-fifths.hidden {
51
+ display: none;
52
+ }
53
+
54
+ .wpmud .row .col-quarter:first-child,
55
+ .wpmud .row .col-three-quarters:first-child,
56
+ .wpmud .row .col-fifth:first-child,
57
+ .wpmud .row .col-four-fifths:first-child {
58
+ padding-left: 0;
59
+ }
60
+
61
+ .wpmud .row .col-quarter:last-child,
62
+ .wpmud .row .col-three-quarters:last-child,
63
+ .wpmud .row .col-fifth:last-child,
64
+ .wpmud .row .col-four-fifths:last-child {
65
+ padding-right: 0;
66
+ }
67
+
68
+ /* .dev-box */
69
+ .wpmud .dev-box {
70
+ padding: 0;
71
+ }
72
+
73
+ .wpmud .dev-box:last-child {
74
+ margin-bottom: 0;
75
+ }
76
+
77
+ .wpmud .dev-box .box-title {
78
+ clear: both;
79
+ height: inherit;
80
+ margin: 0;
81
+ padding: 0 30px;
82
+ }
83
+
84
+ .wpmud .dev-box .box-title h3 {
85
+ font-size: 16px;
86
+ color: #333333;
87
+ float: left;
88
+ }
89
+
90
+ .wpmud .dev-box .box-title .wphb-label-notice-inline {
91
+ margin: 2px 15px;
92
+ }
93
+
94
+ .wpmud .dev-box .box-title:after {
95
+ content: '';
96
+ display: table;
97
+ clear: both;
98
+ }
99
+
100
+ .wpmud .dev-box .box-title .extra {
101
+ float: right;
102
+ }
103
+
104
+ .wpmud .dev-box .box-title .extra-text {
105
+ margin: 20px 0 0;
106
+ }
107
+
108
+ .wpmud .dev-box .box-title .extra-label {
109
+ display: inline-block;
110
+ margin: 0;
111
+ line-height: 20px;
112
+ }
113
+
114
+ .wpmud .dev-box .box-title .extra-label-value {
115
+ color: #477B92;
116
+ font-weight: 400;
117
+ text-transform: uppercase;
118
+ }
119
+
120
+ .wpmud .dev-box .box-title .wphb-select-group {
121
+ margin: 10px 0 0;
122
+ }
123
+
124
+ .wpmud .dev-box .box-title .test-results {
125
+ float: right;
126
+ margin-top: 15px;
127
+ }
128
+
129
+ .wpmud .dev-box .box-title .test-results-label {
130
+ display: block;
131
+ float: left;
132
+ font-family: 'Roboto Condensed', 'Roboto', Arial, sans-serif;
133
+ font-weight: 700;
134
+ line-height: 30px;
135
+ margin-right: 10px;
136
+ text-transform: uppercase;
137
+ }
138
+
139
+ .wpmud .dev-box .box-title .test-results .wphb-score {
140
+ display: block;
141
+ float: left;
142
+ }
143
+
144
+ .wpmud .dev-box .box-title .toggle-group {
145
+ margin: 6px 15px 0 0;
146
+ }
147
+
148
+ .wpmud .dev-box .box-content {
149
+ padding: 30px;
150
+ word-wrap: break-word;
151
+ }
152
+
153
+ .wpmud .dev-box .box-content > * {
154
+ margin-bottom: 20px;
155
+ }
156
+
157
+ .wpmud .dev-box .box-content > *:last-child {
158
+ margin-bottom: 0;
159
+ }
160
+
161
+ .wpmud .dev-box .box-content .row-space-large {
162
+ margin-bottom: 40px;
163
+ }
164
+
165
+ /* .box-content */
166
+
167
+ .wpmud .box-content.no-padding {
168
+ padding: 0;
169
+ }
170
+
171
+ .wpmud .box-content.no-vertical-padding {
172
+ padding-top: 0;
173
+ padding-bottom: 0;
174
+ }
175
+
176
+ .wpmud .wphb-modal .no-side-padding,
177
+ .wpmud .box-content.no-side-padding {
178
+ padding-right: 0;
179
+ padding-left: 0;
180
+ }
181
+
182
+ .wpmud .box-content .with-padding {
183
+ padding: 30px;
184
+ }
185
+
186
+ .wpmud .box-content .add-side-padding {
187
+ padding-right: 30px;
188
+ padding-left: 30px;
189
+ }
190
+
191
+ .wpmud .box-content .no-top-padding {
192
+ padding-top: 0;
193
+ }
194
+
195
+ .wpmud .box-footer {
196
+ margin-top: 0;
197
+ padding: 30px;
198
+ border-top: 1px solid #EAEAEA;
199
+ }
200
+
201
+ /* Settings forms */
202
+ .wpmud .settings-form span.sub {
203
+ display: block;
204
+ font-size: 13px;
205
+ color: #888;
206
+ line-height: 22px;
207
+ margin: 10px 0 0;
208
+ }
209
+
210
+ .wpmud .wphb-dash-table-row span.sub {
211
+ margin: 0;
212
+ }
213
+
214
+ .wpmud .settings-form .col-two-third > label {
215
+ display: inline-block;
216
+ padding: 2px 10px 0;
217
+ color: #333;
218
+ line-height: 30px;
219
+ margin: 0;
220
+ }
221
+
222
+ .wpmud .settings-form .wphb-border-frame label {
223
+ margin-top: 25px;
224
+ padding: 0;
225
+ color: #888888;
226
+ font-size: 13px;
227
+ }
228
+
229
+ .wpmud .settings-form .wphb-border-frame small {
230
+ display: block;
231
+ font-size: 13px;
232
+ color: #888;
233
+ line-height: 22px;
234
+ }
235
+
236
+ .wpmud .settings-form.disabled {
237
+ background-color: rgba(242, 242, 242, 0.5) !important;
238
+ }
239
+
240
+ .wpmud .settings-form.disabled > * {
241
+ opacity: 0.5;
242
+ }
_src/admin/scss/common/_mixins.scss ADDED
@@ -0,0 +1,90 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* ****************************************************************************
2
+ * COMMON: MIXINS
3
+ */
4
+
5
+ // Base at-root
6
+ @mixin optional-at-root($sel) {
7
+ @at-root #{if(not &, $sel, selector-append(&, $sel))} {
8
+ @content;
9
+ }
10
+ }
11
+
12
+ // Form Input Placeholder
13
+ @mixin form-placeholder {
14
+ @include optional-at-root('&::-webkit-input-placeholder') {
15
+ @content;
16
+ }
17
+
18
+ @include optional-at-root('&:-moz-placeholder') {
19
+ @content;
20
+ }
21
+
22
+ @include optional-at-root('&::-moz-placeholder') {
23
+ @content;
24
+ }
25
+
26
+ @include optional-at-root('&:-ms-input-placeholder') {
27
+ @content;
28
+ }
29
+ }
30
+
31
+ // Breakpoints
32
+ @mixin bp($point) {
33
+
34
+ // Phone: < 480px
35
+ @if $point == phone {
36
+ @media only screen and (max-width: $phone) {
37
+ @content;
38
+ }
39
+ }
40
+
41
+ // Phone Large: < 600px
42
+ @if $point == phone-large {
43
+ @media only screen and (max-width: $phone--large) {
44
+ @content;
45
+ }
46
+ }
47
+
48
+ // Tablet: < 783px
49
+ @if $point == tablet {
50
+ @media only screen and (max-width: $tablet) {
51
+ @content;
52
+ }
53
+ }
54
+
55
+ // Desktop Small: < 960px
56
+ @if $point == desktop-small {
57
+ @media only screen and (max-width: $desktop--small) {
58
+ @content;
59
+ }
60
+ }
61
+
62
+ // Desktop: < 1100px
63
+ @if $point == desktop {
64
+ @media only screen and (max-width: $desktop) {
65
+ @content;
66
+ }
67
+ }
68
+
69
+ // Desktop Large: < 1200px
70
+ @if $point == desktop-large {
71
+ @media only screen and (max-width: $desktop--large) {
72
+ @content;
73
+ }
74
+ }
75
+
76
+ // Desktop Wide: < 1440px
77
+ @if $point == desktop-wide {
78
+ @media only screen and (max-width: $desktop--wide) {
79
+ @content;
80
+ }
81
+ }
82
+
83
+ // Desktop Very Large: < 1600px
84
+ @if $point == desktop-very-large {
85
+ @media only screen and (max-width: $desktop--very-large) {
86
+ @content;
87
+ }
88
+ }
89
+
90
+ }
_src/admin/scss/common/_modals.scss ADDED
@@ -0,0 +1,126 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* ****************************************************************************
2
+ * COMMON: MODALS
3
+ */
4
+
5
+ .wpmud .dev-overlay .title .close {
6
+ color: #888888;
7
+ font-size: 34px;
8
+ }
9
+
10
+ .wpmud .wphb-modal * {
11
+ -webkit-box-sizing: border-box;
12
+ box-sizing: border-box;
13
+ font-family: 'Roboto', sans-serif;
14
+ }
15
+
16
+ .wpmud .wphb-modal .wphb-dialog-content > * {
17
+ margin-bottom: 30px;
18
+ }
19
+
20
+ .wpmud .wphb-modal .wphb-dialog-content > *:last-child {
21
+ margin-bottom: 0;
22
+ }
23
+
24
+ .wpmud .wphb-modal .wphb-dialog-content .wphb-modal-image-bottom {
25
+ margin-bottom: -30px;
26
+ }
27
+
28
+ .wpmud .wphb-modal .wphb-progress-state {
29
+ margin-top: -20px;
30
+ }
31
+
32
+ .wpmud .wphb-modal .wphb-dialog-footer {
33
+ border-top: 1px solid #EAEAEA;
34
+ margin: 30px -30px;
35
+ padding: 30px 30px 0;
36
+ }
37
+
38
+ .wpmud .wphb-progress-modal .wphb-progress,
39
+ .wpmud .wphb-progress-modal .wphb-block-test {
40
+ max-width: 100%;
41
+ }
42
+
43
+ .wpmud .wphb-progress-modal .wphb-dialog-content p {
44
+ color: #666666;
45
+ }
46
+
47
+ .wpmud .wphb-progress-modal .wphb-notice-box p {
48
+ color: #333333;
49
+ font-size: 13px;
50
+ line-height: 22px;
51
+ }
52
+
53
+ /* CDN modal */
54
+ .wphb-cdn-block {
55
+ border: 1px solid #E6E6E6;
56
+ border-radius: 5px;
57
+ padding: 18px 0;
58
+ }
59
+
60
+ .wphb-cdn-block > div {
61
+ display: flex;
62
+ align-content: center;
63
+ align-items: center;
64
+ height: auto;
65
+ padding: 20px 30px 0;
66
+ }
67
+
68
+ .wphb-cdn-block > div > label {
69
+ margin: 2px 0 0 0;
70
+ color: #666666;
71
+ }
72
+
73
+ .wphb-cdn-block > p {
74
+ color: #888888 !important;
75
+ padding: 0 30px 0 76px;
76
+ }
77
+
78
+ .wpmud .wphb-modal.wphb-quick-setup-modal .wphb-block-test,
79
+ .wpmud.hummingbird_page_wphb-minification .wphb-modal .wphb-block-test,
80
+ .wpmud.toplevel_page_wphb-minification .wphb-modal .wphb-block-test {
81
+ display: flex;
82
+ align-content: center;
83
+ align-items: center;
84
+ height: auto;
85
+ padding: 20px 30px;
86
+ margin-bottom: 30px;
87
+ }
88
+
89
+ .wpmud.hummingbird_page_wphb-minification .wphb-modal .wphb-block-test {
90
+ margin-bottom: 10px;
91
+ }
92
+
93
+ .wpmud .wphb-modal.wphb-quick-setup-modal .wphb-block-test > p {
94
+ font-size: 13px;
95
+ line-height: 22px;
96
+ margin-right: 14px;
97
+ margin-bottom: 0;
98
+ }
99
+
100
+ .wpmud.hummingbird_page_wphb-minification .wphb-modal .wphb-block-test > label {
101
+ margin: 0;
102
+ }
103
+
104
+ .wpmud .dev-overlay.dismiss-report .box {
105
+ width: 400px;
106
+ margin-left: -250px;
107
+ }
108
+
109
+ .wpmud .dev-overlay.dismiss-report .title {
110
+ margin-bottom: 30px;
111
+ }
112
+
113
+ .wpmud .dev-overlay.dismiss-report .title h3 {
114
+ font-size: 15px;
115
+ text-transform: none;
116
+ }
117
+
118
+ .wpmud .dev-overlay.dismiss-report .wphb-dialog-content > p {
119
+ color: #888888;
120
+ font-size: 13px;
121
+ line-height: 22px;
122
+ }
123
+
124
+ .wpmud .dev-overlay.dismiss-report .wphb-dialog-footer {
125
+ border: none;
126
+ }
_src/admin/scss/common/_overwrites.scss ADDED
@@ -0,0 +1,146 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* ****************************************************************************
2
+ * COMMON: OVERWRITES
3
+ * Extend/override WPMUDEV dashboard/wp styles
4
+ */
5
+
6
+ /* Overwrite for the default notifications */
7
+ button.notice-dismiss {
8
+ position: absolute;
9
+ top: 0;
10
+ right: 1px;
11
+ border: none !important;
12
+ margin: 0 !important;
13
+ padding: 9px !important;
14
+ background: none !important;
15
+ color: #72777c !important;
16
+ cursor: pointer !important;
17
+ }
18
+
19
+ .wpmud #header .actions .button + .button {
20
+ margin-left: 10px;
21
+ }
22
+
23
+ .wpmud .wphb-dismiss {
24
+ float: right;
25
+ }
26
+
27
+ .wpmud #wpbody-content > .notice {
28
+ margin: 5px 20px 2px 5px;
29
+ }
30
+
31
+ /* Fix for tooltip-below */
32
+ .wpmud [tooltip].tooltip-bottom:before {
33
+ margin-top: 2px;
34
+ }
35
+
36
+ .wpmud [tooltip].tooltip-bottom:after {
37
+ margin-top: 12px;
38
+ }
39
+
40
+ /* Fix for overflowing tooltips */
41
+ .wpmud .list-table > tbody > tr > td {
42
+ z-index: 0;
43
+ }
44
+
45
+ .wpmud [tooltip].tooltip-s.tooltip-right:after {
46
+ margin-left: -150px;
47
+ }
48
+
49
+ .wpmud .wrap-wp-hummingbird a:not('.wdpun-button') {
50
+ color: #17A8E3;
51
+ }
52
+
53
+ .wpmud .wrap-wp-hummingbird strong {
54
+ color: #333333;
55
+ }
56
+
57
+ .wpmud .dev-overlay .back {
58
+ background-color: rgba(51, 51, 51, 0.95);
59
+ }
60
+
61
+ .wpmud .dev-overlay .box {
62
+ padding: 40px 30px 30px;
63
+ }
64
+
65
+ .wpmud .wrap-wp-hummingbird i.wdv-icon-chevron-down {
66
+ color: #8A8A8A;
67
+ }
68
+
69
+ .wpmud .select-container:not(.mobile-nav) i.wdv-icon-reorder:before {
70
+ content: "\f078";
71
+ }
72
+
73
+ .wpmud .select-container:not(.mobile-nav) {
74
+ border: 1px solid #E6E6E6;
75
+ background-color: #F8F8F8;
76
+ }
77
+
78
+ .wpmud .select-container:not(.mobile-nav) .dropdown-handle {
79
+ background-color: #F8F8F8;
80
+ color: #898989;
81
+ }
82
+
83
+ /* Install dashboard message */
84
+ .wpmud #wpmu-install-dashboard {
85
+ margin-left: 0;
86
+ }
87
+
88
+ .wpmud #wpcontent #wpmu-install-dashboard * {
89
+ -webkit-box-sizing: content-box;
90
+ box-sizing: content-box;
91
+ }
92
+
93
+ .wpmud #wpmu-install-dashboard .wpmu-message {
94
+ font-family: inherit;
95
+ font-weight: inherit;
96
+ line-height: inherit;
97
+ }
98
+
99
+ /* Toggles */
100
+ .wpmud .toggle .toggle-checkbox:checked + .toggle-label:before,
101
+ .wpmud .toggle .toggle-checkbox:checked + .toggle-label {
102
+ background-color: #17A8E3;
103
+ }
104
+
105
+ .wpmud .toggle .toggle-label:before {
106
+ background: #AAA;
107
+ }
108
+
109
+ .wpmud .toggle .toggle-label {
110
+ width: 44px;
111
+ }
112
+
113
+ .wpmud .toggle .toggle-checkbox:checked + .toggle-label:after {
114
+ margin-left: 24px;
115
+ }
116
+
117
+ .wpmud .toggle .toggle-label.small {
118
+ width: 36px;
119
+ height: 16px;
120
+ }
121
+
122
+ .wpmud .toggle .toggle-label.small:after {
123
+ width: 14px;
124
+ height: 14px;
125
+ }
126
+
127
+ .wpmud .toggle .toggle-checkbox:checked + .toggle-label.small:after {
128
+ margin-left: 21px;
129
+ }
130
+
131
+ .wpmud .spinner.standalone {
132
+ float: none;
133
+ margin: 0;
134
+ }
135
+
136
+ .wpmud .spinner.left {
137
+ float: left;
138
+ }
139
+
140
+ .wpmud .spinner.hide { /* Don't take/render block on layout */
141
+ display: none;
142
+ }
143
+
144
+ .wpmud .spinner.visible { /* Re-set visibility to visible */
145
+ visibility: visible;
146
+ }
_src/admin/scss/common/_typography.scss ADDED
@@ -0,0 +1,216 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* ****************************************************************************
2
+ * COMMON: TYPOGRAPHY
3
+ */
4
+ @import "_variables";
5
+
6
+ /* Fonts */
7
+ @font-face {
8
+ font-family: 'Hummingbird';
9
+ src: url('#{$font--path}/hummingbird.eot?9gcsp9');
10
+ src: url('#{$font--path}/hummingbird.eot?9gcsp9#iefix') format('embedded-opentype'),
11
+ url('#{$font--path}/hummingbird.ttf?9gcsp9') format('truetype'),
12
+ url('#{$font--path}/hummingbird.woff?9gcsp9') format('woff'),
13
+ url('#{$font--path}/hummingbird.svg?9gcsp9#hummingbird') format('svg');
14
+ font-weight: normal;
15
+ font-style: normal;
16
+ }
17
+
18
+ [class^="hb-"], [class*=" hb-"] {
19
+ /* use !important to prevent issues with browser extensions that change fonts */
20
+ font-family: $font--icons !important;
21
+ speak: none;
22
+ font-size: 15px;
23
+ font-style: normal;
24
+ font-weight: normal;
25
+ font-variant: normal;
26
+ text-transform: none;
27
+ line-height: 1;
28
+
29
+ /* Better Font Rendering =========== */
30
+ -webkit-font-smoothing: antialiased;
31
+ -moz-osx-font-smoothing: grayscale;
32
+ }
33
+
34
+ .hb-fi-settings-slider-control {
35
+ &:before {
36
+ content: "\7b";
37
+ }
38
+ }
39
+
40
+ .hb-fi-filter {
41
+ &:before {
42
+ content: "\7a";
43
+ }
44
+ }
45
+
46
+ .hb-icon-audit {
47
+ &:before {
48
+ content: "\e900";
49
+ }
50
+ }
51
+
52
+ .hb-wpmudev-icon-cross {
53
+ &:before {
54
+ content: "\e901";
55
+ }
56
+ }
57
+
58
+ .hb-wpmudev-icon-info {
59
+ &:before {
60
+ content: "\e902";
61
+ }
62
+ }
63
+
64
+ .hb-wpmudev-icon-tick {
65
+ &:before {
66
+ content: "\e903";
67
+ }
68
+ }
69
+
70
+ .hb-wpmudev-icon-warning {
71
+ &:before {
72
+ content: "\e904";
73
+ }
74
+ }
75
+
76
+ .hb-icon-cache {
77
+ &:before {
78
+ content: "\e905";
79
+ }
80
+ }
81
+
82
+ .hb-icon-cloudflare {
83
+ &:before {
84
+ content: "\e906";
85
+ }
86
+ }
87
+
88
+ .hb-icon-gzip {
89
+ &:before {
90
+ content: "\e907";
91
+ }
92
+ }
93
+
94
+ .hb-icon-minify-combine {
95
+ &:before {
96
+ content: "\e908";
97
+ }
98
+ }
99
+
100
+ .hb-icon-minify-defer {
101
+ &:before {
102
+ content: "\e909";
103
+ }
104
+ }
105
+
106
+ .hb-icon-minify-footer {
107
+ &:before {
108
+ content: "\e90a";
109
+ }
110
+ }
111
+
112
+ .hb-icon-minify {
113
+ &:before {
114
+ content: "\e90b";
115
+ }
116
+ }
117
+
118
+ .hb-icon-performancetest {
119
+ &:before {
120
+ content: "\e90c";
121
+ }
122
+ }
123
+
124
+ .hb-icon-reports {
125
+ &:before {
126
+ content: "\e90d";
127
+ }
128
+ }
129
+
130
+ .hb-icon-restore {
131
+ &:before {
132
+ content: "\e90e";
133
+ }
134
+ }
135
+
136
+ .hb-icon-smush {
137
+ &:before {
138
+ content: "\e90f";
139
+ }
140
+ }
141
+
142
+ .hb-icon-minify-inline {
143
+ &:before {
144
+ content: "\e910";
145
+ }
146
+ }
147
+
148
+ .hb-wpmudev-icon-eye {
149
+ &:before {
150
+ content: "\e911";
151
+ }
152
+ }
153
+
154
+ .hb-wpmudev-icon-wrench-tool {
155
+ &:before {
156
+ content: "\e912";
157
+ }
158
+ }
159
+
160
+ .hb-wpmudev-icon-profile-male {
161
+ &:before {
162
+ content: "\e913";
163
+ }
164
+ }
165
+
166
+ .hb-wpmudev-icon-page {
167
+ &:before {
168
+ content: "\e914";
169
+ }
170
+ }
171
+
172
+ .hb-wpmudev-icon-academy {
173
+ &:before {
174
+ content: "\e915";
175
+ }
176
+ }
177
+
178
+ .wpmud .wphb-icon {
179
+ position: relative;
180
+ }
181
+
182
+ .wpmud .wphb-icon-left {
183
+ display: block;
184
+ float: left;
185
+ }
186
+
187
+ .wpmud .wphb-dash-icon {
188
+ font-size: 12px;
189
+ padding-right: 2px;
190
+ }
191
+
192
+ .wpmud .cf-dismiss {
193
+ display: block;
194
+ margin-top: 6px;
195
+ }
196
+
197
+ .wpmud .wphb-cf-notice .cf-dismiss a {
198
+ text-transform: uppercase;
199
+ text-decoration: none;
200
+ color: #888;
201
+ }
202
+
203
+ /* General typography */
204
+ .wpmud .wrap-wp-hummingbird p {
205
+ color: #666;
206
+ }
207
+
208
+ .wpmud #header h1 {
209
+ color: #333;
210
+ margin: 0;
211
+ }
212
+
213
+ .wpmud .dev-overlay .title h3 {
214
+ font-size: 16px;
215
+ color: #333;
216
+ }
_src/admin/scss/{modules → common}/_variables.scss RENAMED
@@ -1,5 +1,5 @@
1
  /* ****************************************************************************
2
- * MODULE: VARIABLES
3
  */
4
 
5
  // Colors
@@ -19,6 +19,8 @@ $color--warning: #FECF2F;
19
  // Typo
20
  $font: 'Roboto', Arial, sans-serif;
21
  $font--alt: 'Roboto Condensed', 'Roboto', Arial, sans-serif;
 
 
22
 
23
  // Space
24
  $space: 30px;
@@ -30,28 +32,6 @@ $space--l: 40px;
30
  $space--xl: 50px;
31
  $space--xxl: 60px;
32
 
33
- // Brands
34
- $color--twitter: #00aced;
35
- $color--facebook: #3b5998;
36
- $color--google-plus: #dd4b39;
37
- $color--pinterest: #cb2027;
38
- $color--linkedin: #007bb6;
39
- $color--youtube: #bb0000;
40
- $color--vimeo: #aad450;
41
- $color--tumblr: #32506d;
42
- $color--instagram: #517fa4;
43
- $color--flickr: #ff0084;
44
- $color--dribbble: #ea4c89;
45
- $color--quora: #a82400;
46
- $color--foursquare: #0072b1;
47
- $color--forrst: #5B9A68;
48
- $color--vk: #45668e;
49
- $color--wordpress: #21759b;
50
- $color--stumbleupon: #EB4823;
51
- $color--yahoo: #7B0099;
52
- $color--blogger: #fb8f3d;
53
- $color--soundcloud: #ff3a00;
54
-
55
  // Responsive Sizes:
56
  $phone: 480px;
57
  $phone--large: 600px;
1
  /* ****************************************************************************
2
+ * COMMON: VARIABLES
3
  */
4
 
5
  // Colors
19
  // Typo
20
  $font: 'Roboto', Arial, sans-serif;
21
  $font--alt: 'Roboto Condensed', 'Roboto', Arial, sans-serif;
22
+ $font--icons: 'Hummingbird', Arial, sans-serif;
23
+ $font--path: "../fonts" !default;
24
 
25
  // Space
26
  $space: 30px;
32
  $space--xl: 50px;
33
  $space--xxl: 60px;
34
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
35
  // Responsive Sizes:
36
  $phone: 480px;
37
  $phone--large: 600px;
_src/admin/scss/modules/_caching.scss ADDED
@@ -0,0 +1,361 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* ****************************************************************************
2
+ * MODULES: CACHING MODULES
3
+ */
4
+ .wpmud .wphb-caching-error {
5
+ text-align: left;
6
+ }
7
+
8
+ .wpmud .wphb-caching-error a {
9
+ text-decoration: underline;
10
+ }
11
+
12
+ .wpmud .wrap-wphb-caching .wphb-spinner {
13
+ float: none;
14
+ background-size: 15px 15px;
15
+ }
16
+
17
+ .wpmud .wphb-caching-cloudflare-box > p {
18
+ margin: 0 0 20px 0;
19
+ }
20
+
21
+ .wpmud .box-caching-enable .buttons {
22
+ margin-top: -20px;
23
+ }
24
+
25
+ .wpmud .caching-table {
26
+ margin: 30px 0 0;
27
+ }
28
+
29
+ .wpmud .wphb-caching-summary-heading,
30
+ .wpmud .box-gzip-summary .list-label {
31
+ text-transform: none !important;
32
+ color: #333333;
33
+ font-size: 13px;
34
+ }
35
+
36
+ .wpmud #cloudflare-how-to-title,
37
+ .wpmud #cloudflare-how-to {
38
+ text-align: left;
39
+ }
40
+
41
+ .wpmud #cloudflare-how-to a {
42
+ font-weight: 500;
43
+ text-decoration: underline;
44
+ color: inherit;
45
+ }
46
+
47
+ .wpmud #cloudflare-info {
48
+ clear: both;
49
+ }
50
+
51
+ .wpmud #cloudflare-info.wphb-notice {
52
+ margin-top: 30px;
53
+ }
54
+
55
+ .wpmud .cloudflare-submit {
56
+ margin-bottom: 0;
57
+ }
58
+
59
+ .wpmud #cloudflare-zone .clear {
60
+ padding: 0;
61
+ }
62
+
63
+ .wpmud #cloudflare-zone label {
64
+ margin-bottom: 13px;
65
+ }
66
+
67
+ .wpmud #cloudflare-zone .cloudflare-submit {
68
+ margin-top: 22px;
69
+ }
70
+
71
+ .wpmud #cloudflare-steps .wphb-notice-success {
72
+ margin-top: 0;
73
+ }
74
+
75
+ .wpmud .cloudflare-clear-cache-tooltip[tooltip]:after {
76
+ margin-left: -137px;
77
+ }
78
+
79
+ .wpmud .box-caching-summary .box-content > .box-content {
80
+ background: no-repeat 30px 100%;
81
+ }
82
+
83
+ .wpmud .box-caching-summary .box-content > .box-content {
84
+ background-image: url('../image/graphic-hb-cf-sell@2x.png');
85
+ background-size: 107px 148px;
86
+ }
87
+
88
+ .wpmud .box-caching-summary .box-content > .box-content.no-background-image {
89
+ background-image: none;
90
+ }
91
+
92
+ .wpmud .box-caching-settings .select-container.server-type {
93
+ max-width: 240px;
94
+ }
95
+
96
+ .wpmud.wphb-notice {
97
+ margin-top: 30px;
98
+ }
99
+
100
+ .wpmud .box-caching-settings .wphb-expiry-select-box label {
101
+ margin-top: 0;
102
+ }
103
+
104
+ .wpmud .wphb-expiry-select-box .wphb-expiry-select {
105
+ max-width: 240px;
106
+ }
107
+
108
+ @media screen and (max-width: 1200px) and (min-width: 783px) {
109
+ .wpmud #cloudflare-how-to-title {
110
+ float: none;
111
+ display: block;
112
+ text-align: center;
113
+ margin-bottom: 0;
114
+ }
115
+ .wpmud .cloudflare-step p.cloudflare-submit {
116
+ float: none;
117
+ position: relative;
118
+ }
119
+ .wpmud .cloudflare-step p.cloudflare-submit .cloudflare-spinner {
120
+ position: absolute;
121
+ right: 0;
122
+ top: 10px;
123
+ }
124
+ }
125
+
126
+ .wpmud .wphb-server-instructions .wphb-notice,
127
+ .wpmud .box-caching-summary .wphb-notice,
128
+ .wpmud .box-gzip-summary .wphb-notice {
129
+ margin-bottom: 30px !important;
130
+ }
131
+
132
+ .wpmud .wphb-caching-active.wphb-notice.wphb-notice-blue {
133
+ margin-bottom: 0 !important;
134
+ }
135
+
136
+ .wpmud .wphb-caching-success.wphb-notice.wphb-notice-success {
137
+ margin-top: 30px;
138
+ }
139
+
140
+ .wpmud .wphb-server-instructions .wphb-notice.wphb-notice-blue p {
141
+ font-size: 13px;
142
+ line-height: 22px;
143
+ color: #333;
144
+ }
145
+
146
+ .wpmud .wphb-server-instructions .wphb-notice.wphb-notice-blue p:before {
147
+ font-size: 16px;
148
+ line-height: 16px;
149
+ }
150
+
151
+ .wpmud .wphb-expiry-changes.wphb-notice.wphb-notice-warning {
152
+ margin-top: 30px;
153
+ }
154
+
155
+ .wpmud .wphb-expiry-changes.wphb-notice.wphb-notice-warning p {
156
+ font-size: 13px;
157
+ line-height: 22px;
158
+ }
159
+
160
+ .wpmud .wphb-expiry-changes.wphb-notice.wphb-notice-warning p:before {
161
+ font-size: 16px;
162
+ line-height: 16px;
163
+ }
164
+
165
+ .wpmud .wphb-cf-detected-notice.wphb-notice.wphb-notice-grey p {
166
+ font-size: 13px;
167
+ line-height: 22px;
168
+ }
169
+
170
+ .wpmud .wphb-cf-detected-notice.wphb-notice.wphb-notice-grey p:before {
171
+ font-size: 16px;
172
+ line-height: 16px;
173
+ }
174
+
175
+ .wpmud .wphb-expiry-changes .update-htaccess {
176
+ margin-top: 10px;
177
+ }
178
+
179
+ .wpmud .button.notice-button {
180
+ margin-top: 10px;
181
+ }
182
+
183
+ .wpmud .wphb-cloudflare.wphb-notice-warning p {
184
+ color: #333;
185
+ }
186
+
187
+ /* Expiration table */
188
+ .wpmud input[name='expiry-set-type'] {
189
+ box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0);
190
+ border: 1px solid #E6E6E6;
191
+ background-color: #F8F8F8;
192
+ }
193
+
194
+ .wpmud input[name='expiry-set-type']:checked {
195
+ border: 1px solid #17A8E3;
196
+ background-color: #17A8E3;
197
+ }
198
+
199
+ .wpmud input[name='expiry-set-type']:checked + label {
200
+ color: #333333;
201
+ }
202
+
203
+ .wpmud input[name='expiry-set-type']:checked:before {
204
+ width: 8px;
205
+ height: 8px;
206
+ margin: 3px;
207
+ background-color: #ffffff;
208
+ }
209
+
210
+ .wpmud input[name='expiry-set-type'] + label {
211
+ display: inline-block;
212
+ margin-top: 0;
213
+ font-size: 15px;
214
+ }
215
+
216
+ .wpmud .wphb-border-frame .table-header .wphb-caching-summary-heading-type {
217
+ flex-basis: 85px;
218
+ }
219
+
220
+ .wpmud .wphb-border-frame .table-row .wphb-gzip-summary-item-type,
221
+ .wpmud .wphb-border-frame .table-row .wphb-caching-summary-item-type {
222
+ flex-basis: 100px;
223
+ }
224
+
225
+ .wpmud .wphb-border-frame .table-row .wphb-caching-summary-item-expiry,
226
+ .wpmud .wphb-border-frame .table-row .wphb-caching-summary-item-status {
227
+ flex-basis: 80px;
228
+ }
229
+
230
+ .wpmud .wphb-border-frame .table-row .wphb-caching-summary-item-type {
231
+ font-size: 13px;
232
+ font-weight: 500;
233
+ color: #333333;
234
+ }
235
+
236
+ .wpmud .box-caching-settings label,
237
+ .wpmud .box-gzip-settings label {
238
+ margin-top: 15px;
239
+ margin-bottom: 5px;
240
+ padding: 0;
241
+ }
242
+
243
+ .wpmud .box-caching-settings label,
244
+ .wpmud .box-gzip-settings label,
245
+ .wpmud .box-caching-settings .wphb-border-frame > label,
246
+ .wpmud .box-gzip-settings .wphb-border-frame > label {
247
+ color: #888888;
248
+ font-size: 13px;
249
+ font-weight: 500;
250
+ line-height: 22px;
251
+ }
252
+
253
+ .wpmud .wphb-caching-cloudflare-settings .wphb-expiry-select {
254
+ width: 85%;
255
+ }
256
+
257
+ .wrap-wphb-caching .cloudflare-step label:first-child {
258
+ margin-top: 0;
259
+ }
260
+
261
+ /* Server select tabs (automatic/manual) */
262
+ .wpmud .wrap-wphb-gzip .tabs,
263
+ .wpmud .wrap-wphb-caching .tabs,
264
+ .wpmud .wrap-wphb-gzip .tabs .tab label,
265
+ .wpmud .wrap-wphb-caching .tabs .tab label,
266
+ .wpmud .wrap-wphb-gzip .tabs .tab .content,
267
+ .wpmud .wrap-wphb-caching .tabs .tab .content {
268
+ border: 0;
269
+ }
270
+
271
+ .wpmud .wrap-wphb-gzip .tabs .tab .content,
272
+ .wpmud .wrap-wphb-caching .tabs .tab .content {
273
+ border-top: 2px solid #E6E6E6;
274
+ top: 38px;
275
+ }
276
+
277
+ .wpmud .wrap-wphb-gzip .tabs .tab label,
278
+ .wpmud .wrap-wphb-caching .tabs .tab label {
279
+ font-size: 15px;
280
+ text-transform: capitalize;
281
+ color: #888888;
282
+ padding: 0 10px;
283
+ line-height: 1.5em;
284
+ height: 40px;
285
+ }
286
+
287
+ .wpmud .wphb-server-instructions p,
288
+ .wpmud .wphb-server-instructions .wphb-listing li {
289
+ color: #888888;
290
+ font-size: 13px;
291
+ line-height: 22px;
292
+ }
293
+
294
+ .wpmud .wphb-server-instructions .wphb-listing li {
295
+ margin-top: 0;
296
+ }
297
+
298
+ .wpmud .wphb-server-instructions .tabs {
299
+ margin: 0;
300
+ }
301
+
302
+ .wpmud .wphb-server-instructions .tabs .tab .content {
303
+ padding: 20px 0 0;
304
+ }
305
+
306
+ .wpmud .wphb-server-instructions .tabs .tab > .active {
307
+ color: #333333;
308
+ border-bottom: 2px solid #333333;
309
+ z-index: 10;
310
+ }
311
+
312
+ /* Page caching */
313
+ .wpmud .box-page-caching .box-footer {
314
+ border-top: 1px solid #E6E6E6;
315
+ padding: 50px 30px;
316
+ }
317
+
318
+ .wpmud .box-page-caching h4 {
319
+ color: #666666;
320
+ font-size: 15px;
321
+ font-weight: 500;
322
+ text-align: left;
323
+ text-transform: none;
324
+ }
325
+
326
+ .wpmud .box-page-caching textarea {
327
+ height: 180px;
328
+ max-width: 490px;
329
+ color: #333333;
330
+ border: 1px solid #E6E6E6;
331
+ border-radius: 4px;
332
+ background-color: #F8F8F8;
333
+ margin-top: 20px;
334
+ }
335
+
336
+ .wpmud .box-page-caching .col-two-third .with-bottom-border {
337
+ margin-bottom: 30px;
338
+ }
339
+
340
+ /* Page caching: page types table */
341
+ .wpmud .box-page-caching .wphb-dash-table .sub {
342
+ width: 75px;
343
+ }
344
+
345
+ .wpmud .box-page-caching .wphb-dash-table .wphb-dash-table-row:first-child {
346
+ border-top: 0;
347
+ }
348
+
349
+ .wpmud .box-page-caching .wphb-dash-table .wphb-dash-table-row:last-child {
350
+ border-bottom: 0;
351
+ }
352
+
353
+ /* Gravatar caching */
354
+ .wpmud .box-page-caching .wphb-notice,
355
+ .wpmud .box-caching-gravatar .wphb-notice {
356
+ margin-top: 20px;
357
+ }
358
+
359
+ .wpmud .box-page-caching .settings-form .button-ghost {
360
+ margin: 10px 0;
361
+ }
_src/admin/scss/modules/_dashboard.scss ADDED
@@ -0,0 +1,377 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* ****************************************************************************
2
+ * MODULES: DASHBOARD
3
+ */
4
+
5
+ /* Dashboard summary */
6
+ .wpmud .wphb-block-entry-third {
7
+ color: #333333;
8
+ width: calc(100% / 2 - 98px);
9
+ padding-left: 5%;
10
+ padding-top: 10px;
11
+ display: inline-block;
12
+ vertical-align: middle;
13
+ }
14
+
15
+ .wpmud .wphb-block-entry-third span {
16
+ font-weight: 400;
17
+ }
18
+
19
+ .wpmud .wphb-block-entry-third p {
20
+ font-size: 13px;
21
+ margin-top: 0;
22
+ color: #888888;
23
+ }
24
+
25
+ .wpmud .wphb-block-entry-third span.not-present {
26
+ font-size: 55px;
27
+ line-height: 30px;
28
+ margin-bottom: 20px;
29
+ }
30
+
31
+ .wpmud .wphb-block-entry-third span.score-span {
32
+ font-size: 13px;
33
+ margin-left: -12px;
34
+ }
35
+
36
+ .wpmud .wphb-block-entry-third .current-performance-score {
37
+ margin-bottom: 20px;
38
+ }
39
+
40
+ .wpmud .wphb-block-entry-third .hb-wpmudev-icon-warning,
41
+ .wpmud .wphb-block-entry-third .hb-wpmudev-icon-info,
42
+ .wpmud .wphb-block-entry-third .hb-wpmudev-icon-tick {
43
+ position: relative;
44
+ top: -22px;
45
+ left: 5px;
46
+ font-size: 20px;
47
+ }
48
+
49
+ .wpmud .wphb-tab i.hb-wpmudev-icon-info.dismissed,
50
+ .wpmud .wphb-block-entry-third .hb-wpmudev-icon-info {
51
+ color: #888888;
52
+ }
53
+
54
+ .wpmud .wphb-block-entry-third .hb-wpmudev-icon-warning {
55
+ color: #FECF2F;
56
+ }
57
+
58
+ .wpmud .wphb-block-entry-third .hb-wpmudev-icon-tick {
59
+ color: #1ABC9C;
60
+ }
61
+
62
+ .wpmud .wphb-block-entry-third .dev-list {
63
+ margin: 0 !important;
64
+ border-bottom: 0;
65
+ }
66
+
67
+ .wpmud .wphb-block-entry-third .dev-list li:first-child span {
68
+ padding-top: 4px;
69
+ }
70
+
71
+ /* Dashboard background images */
72
+ .box-dashboard-reports-no-membership,
73
+ .box-dashboard-uptime-no-membership,
74
+ .box-dashboard-smush-no-membership .box-content,
75
+ .box-dashboard-browser-caching-module .box-content,
76
+ .box-reporting-summary .wphb-reporting-no-membership {
77
+ background: no-repeat 30px 100%;
78
+ padding-bottom: 30px !important;
79
+ }
80
+
81
+ .box-dashboard-reports-no-membership .box-content,
82
+ .box-dashboard-uptime-no-membership .box-content {
83
+ padding: 30px 30px 0 !important;
84
+ }
85
+
86
+ .box-dashboard-reports-no-membership {
87
+ background-image: url('../image/hb-graphic-upsell-reports.png');
88
+ }
89
+
90
+ .box-dashboard-uptime-no-membership {
91
+ background-image: url('../image/hb-graphic-upsell-uptime.png');
92
+ }
93
+
94
+ .box-dashboard-smush-no-membership .box-content {
95
+ background-image: url('../image/smush-share-widget.png');
96
+ }
97
+
98
+ .box-dashboard-browser-caching-module .box-content {
99
+ background-image: url('../image/graphic-hb-cf-sell@2x.png');
100
+ background-size: 107px 148px;
101
+ }
102
+
103
+ .box-reporting-summary .wphb-reporting-no-membership {
104
+ background-image: url('../image/hummingbird-upsell-minify.png');
105
+ background-size: 118px 126px;
106
+ }
107
+
108
+ .box-dashboard-browser-caching-module .box-content.no-background-image {
109
+ background-image: none;
110
+ }
111
+
112
+ @media only screen and (-webkit-min-device-pixel-ratio: 2),
113
+ only screen and (min--moz-device-pixel-ratio: 2),
114
+ only screen and (-o-min-device-pixel-ratio: 2/1),
115
+ only screen and (min-device-pixel-ratio: 2),
116
+ only screen and (min-resolution: 192dpi),
117
+ only screen and (min-resolution: 2dppx) {
118
+ .box-dashboard-reports-no-membership,
119
+ .box-dashboard-uptime-no-membership,
120
+ .box-dashboard-smush-no-membership .box-content {
121
+ background-size: 107px 148px;
122
+ }
123
+ .box-dashboard-reports-no-membership {
124
+ background-image: url("../image/hb-graphic-upsell-reports@2x.png");
125
+ }
126
+ .box-dashboard-uptime-no-membership {
127
+ background-image: url('../image/hb-graphic-upsell-uptime@2x.png');
128
+ }
129
+ .box-dashboard-smush-no-membership .box-content {
130
+ background-image: url('../image/smush-share-widget@2x.png');
131
+ }
132
+ .box-reporting-summary .wphb-reporting-no-membership {
133
+ background-image: url('../image/hummingbird-upsell-minify@2x.png');
134
+ }
135
+ }
136
+
137
+ @media screen and (min-width: 1550px) {
138
+ .box-dashboard-reports-no-membership .wphb-block-entry .row {
139
+ padding-bottom: 20px;
140
+ }
141
+ .box-dashboard-uptime-no-membership .content p {
142
+ padding-bottom: 20px;
143
+ }
144
+ .box-dashboard-smush-no-membership .buttons {
145
+ padding-bottom: 20px;
146
+ }
147
+ }
148
+
149
+ /* Dashboard tables */
150
+ .wpmud .wphb-dash-table-header {
151
+ color: #333333;
152
+ font-size: 13px;
153
+ font-weight: bold;
154
+ line-height: 30px;
155
+ display: flex;
156
+ }
157
+
158
+ .wpmud .wphb-border-frame .wphb-caching-summary-item-type,
159
+ .wpmud .wphb-border-frame .wphb-gzip-summary-item-type,
160
+ .wpmud .wphb-dash-table-row > div:first-child {
161
+ display: flex;
162
+ align-items: center;
163
+ align-content: center;
164
+ }
165
+
166
+ .wpmud .wphb-dash-table-row {
167
+ display: flex;
168
+ align-items: center;
169
+ align-content: center;
170
+ justify-content: space-between;
171
+ height: 60px;
172
+ border-top: 1px solid #E6E6E6;
173
+ }
174
+
175
+ .wpmud .wphb-dash-table-row:last-child {
176
+ margin-bottom: -10px;
177
+ }
178
+
179
+ .wpmud .wphb-dash-table-header > span:first-child,
180
+ .wpmud .wphb-dash-table-row > div:first-child {
181
+ flex-basis: 50% !important;
182
+ text-align: left;
183
+ }
184
+
185
+ .wpmud .wphb-dash-table-row > div:first-child {
186
+ font-size: 13px;
187
+ color: #333333;
188
+ font-weight: 500;
189
+ }
190
+
191
+ .wpmud .wphb-dash-table-header > span,
192
+ .wpmud .wphb-dash-table-row > div {
193
+ text-align: center;
194
+ }
195
+
196
+ .wpmud .wphb-dash-table-header > span:last-child,
197
+ .wpmud .wphb-dash-table-row > div:last-child {
198
+ text-align: right;
199
+ }
200
+
201
+ /* Three column and two column layouts */
202
+ .wpmud .wphb-dash-table.two-columns > .wphb-dash-table-header > span,
203
+ .wpmud .wphb-dash-table.two-columns > .wphb-dash-table-row > div {
204
+ flex-basis: 50%;
205
+ }
206
+
207
+ .wpmud .wphb-dash-table.three-columns > .wphb-dash-table-header > span,
208
+ .wpmud .wphb-dash-table.three-columns > .wphb-dash-table-row > div {
209
+ flex-basis: 25%;
210
+ }
211
+
212
+ /* Status text on dashboard meta boxes */
213
+ .wpmud .dev-box .status-text {
214
+ color: #888888;
215
+ font-size: 13px;
216
+ line-height: 22px;
217
+ margin-top: 5px;
218
+ }
219
+
220
+ /* Dashboard Performance */
221
+ .wpmud .box-dashboard-performance-module .wphb-performance-report-item-score {
222
+ display: flex;
223
+ align-items: center;
224
+ align-content: center;
225
+ max-width: 65px;
226
+ }
227
+
228
+ .wpmud .box-dashboard-performance-module .wphb-score-result-label {
229
+ margin-left: 10px;
230
+ color: #888888;
231
+ font-weight: 500;
232
+ }
233
+
234
+ /* Dashboard: Minification */
235
+ .wpmud .box-dashboard-welcome .dev-list > li:last-child .list-detail,
236
+ .wpmud .box-dashboard-uptime .wphb-dash-table-row > div:last-child,
237
+ .wpmud .box-dashboard-minification-module .wphb-dash-table-row > div:last-child {
238
+ font-size: 18px;
239
+ font-family: "Roboto Condensed", sans-serif;
240
+ color: #666666;
241
+ }
242
+
243
+ .wpmud .box-dashboard-minification-module .wphb-pills {
244
+ font-weight: bold;
245
+ }
246
+
247
+ /* Dashboard become pro member */
248
+ .wpmud .callout-box .callout-title {
249
+ font-family: 'Roboto Condensed', Arial, sans-serif;
250
+ font-size: 22px;
251
+ font-weight: bold;
252
+ line-height: 60px;
253
+ color: #333333;
254
+ padding-bottom: 30px;
255
+ text-transform: uppercase;
256
+ }
257
+
258
+ .wpmud .callout-box p {
259
+ margin-bottom: 30px;
260
+ }
261
+
262
+ .wpmud .wphb-cf-notice p,
263
+ .wpmud .wphb-upsell-free-message p {
264
+ position: relative;
265
+ border-radius: 4px;
266
+ background-color: #E1F6FF;
267
+ padding: 20px 30px;
268
+ margin-left: -140px;
269
+ color: #333333;
270
+ font-size: 13px;
271
+ line-height: 22px;
272
+ }
273
+
274
+ .wpmud .wphb-upsell-free-message p:after {
275
+ position: absolute;
276
+ top: 43%;
277
+ left: 0;
278
+ margin-left: -7px;
279
+ content: '';
280
+ width: 0;
281
+ height: 0;
282
+ border-top: 7px solid transparent;
283
+ border-bottom: 7px solid transparent;
284
+ border-right: 7px solid #E1F6FF;
285
+ }
286
+
287
+ .wpmud .wphb-cf-notice a,
288
+ .wpmud .wphb-upsell-free-message a {
289
+ color: #333333;
290
+ text-decoration: underline;
291
+ font-weight: 500;
292
+ }
293
+
294
+ /* Dashboard Smush */
295
+ .wpmud .box-dashboard-caching-gravatar-module .wphb-notice,
296
+ .wpmud .box-dashboard-smush .content .wphb-notice,
297
+ .wpmud .box-dashboard-caching-page-module .content .wphb-notice,
298
+ .wpmud .box-dashboard-browser-caching-module .content .wphb-notice,
299
+ .wpmud .box-dashboard-gzip-module .content .wphb-notice,
300
+ .wpmud .box-dashboard-smush-no-membership .content .wphb-notice {
301
+ margin-top: 20px !important;
302
+ }
303
+
304
+ /* Dashboard Reports */
305
+ .wpmud .wrap-wp-hummingbird .report-status {
306
+ background-color: #F8F8F8;
307
+ height: 140px;
308
+ width: 100%;
309
+ position: relative;
310
+ -webkit-border-radius: 7px;
311
+ -moz-border-radius: 7px;
312
+ border-radius: 7px;
313
+ margin-bottom: 10px;
314
+ display: flex;
315
+ flex-direction: column;
316
+ align-items: center;
317
+ justify-content: center;
318
+ }
319
+
320
+ .wpmud .wrap-wp-hummingbird .report-status:hover {
321
+ background-color: #f2f2f2;
322
+ cursor: pointer;
323
+ }
324
+
325
+ .wpmud .wrap-wp-hummingbird .report-status i {
326
+ color: #666666;
327
+ font-size: 24px;
328
+ }
329
+
330
+ .wpmud .wrap-wp-hummingbird .report-status strong {
331
+ font-family: "Roboto Condensed", sans-serif;
332
+ color: #666666;
333
+ font-weight: bold;
334
+ margin-top: 10px;
335
+ font-size: 13px;
336
+ line-height: 20px;
337
+ text-transform: uppercase;
338
+ }
339
+
340
+ .wpmud .wrap-wp-hummingbird .report-status .corner {
341
+ position: absolute;
342
+ top: 0;
343
+ right: 0;
344
+ color: #1ABC9C;
345
+ font-weight: bold;
346
+ font-family: "Roboto Condensed", sans-serif;
347
+ padding-right: 6px;
348
+ padding-top: 10px;
349
+ text-transform: uppercase;
350
+ font-size: 13px;
351
+ }
352
+
353
+ .wpmud .wrap-wp-hummingbird .report-status.with-corner.grey .corner i {
354
+ color: #888888;
355
+ font-size: 16px;
356
+ margin-right: 4px;
357
+ }
358
+
359
+ .wpmud .wrap-wp-hummingbird .report-status.with-corner:before {
360
+ content: '';
361
+ position: absolute;
362
+ top: 0;
363
+ right: 0;
364
+ border: solid transparent;
365
+ border-top-right-radius: 7px;
366
+ }
367
+
368
+ .wpmud .wrap-wp-hummingbird .report-status.with-corner:before {
369
+ border-width: 30px;
370
+ border-right-color: #D1F1EA;
371
+ border-top-color: #D1F1EA;
372
+ }
373
+
374
+ .wpmud .wrap-wp-hummingbird .report-status.with-corner.grey:before {
375
+ border-right-color: #E6E6E6;
376
+ border-top-color: #E6E6E6;
377
+ }
_src/admin/scss/modules/_gzip.scss ADDED
@@ -0,0 +1,67 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* ****************************************************************************
2
+ * MODULES: GZIP COMPRESSION
3
+ */
4
+
5
+ .wpmud #wphb-code-snippet {
6
+ margin-top: 20px;
7
+ margin-bottom: 20px;
8
+ }
9
+
10
+ .wpmud .wphb-gzip-error {
11
+ text-align: left;
12
+ }
13
+
14
+ .wpmud .wphb-gzip-error p:first-child {
15
+ margin: 0 0 10px 0;
16
+ }
17
+
18
+ .wpmud .wphb-gzip-error a,
19
+ .wpmud #configure-gzip-link {
20
+ text-decoration: underline;
21
+ }
22
+
23
+ .wpmud .box-gzip-settings .inline-label {
24
+ color: #888888 !important;
25
+ font-size: 13px;
26
+ font-weight: 500;
27
+ padding-left: 0 !important;
28
+ }
29
+
30
+ .wpmud .box-gzip-settings .select-container {
31
+ max-width: 240px;
32
+ }
33
+
34
+ .wpmud .box-gzip-settings .wphb-notice-blue {
35
+ margin-top: 0;
36
+ margin-bottom: 30px;
37
+ padding: 15px 20px;
38
+ }
39
+
40
+ .wpmud .box-gzip-settings .wphb-notice-blue p {
41
+ font-size: 13px;
42
+ }
43
+
44
+ .wpmud .box-gzip-settings .wphb-notice-blue p:before {
45
+ font-size: 16px;
46
+ }
47
+
48
+ .wpmud .box-gzip-settings .wphb-notice.htaccess-warning {
49
+ margin-top: 30px;
50
+ margin-bottom: 0 !important;
51
+ padding: 15px 20px;
52
+ }
53
+
54
+ .wpmud .box-gzip-settings .wphb-notice.htaccess-warning a {
55
+ text-decoration: underline;
56
+ }
57
+
58
+ @media screen and (min-width: 960px) {
59
+ .wpmud .wphb-border-frame.two-columns .table-header,
60
+ .wpmud .wphb-border-frame.two-columns .table-row {
61
+ justify-content: flex-start;
62
+ }
63
+ .wpmud .wphb-border-frame.two-columns .table-header > div:first-child,
64
+ .wpmud .wphb-border-frame.two-columns .table-row > div:first-child {
65
+ flex-basis: 50%;
66
+ }
67
+ }
_src/admin/scss/modules/_minification.scss ADDED
@@ -0,0 +1,616 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* ****************************************************************************
2
+ * MODULES: MINIFICATION
3
+ */
4
+
5
+ /* Checkbox groups */
6
+ .wpmud .checkbox-group {
7
+ border-radius: 41px;
8
+ display: flex;
9
+ justify-content: flex-end;
10
+ height: 40px;
11
+ }
12
+ .wpmud .wphb-modal .checkbox-group {
13
+ justify-content: flex-start;
14
+ }
15
+
16
+ /* We do not use display: none, because screen readers don't see the element */
17
+ .wpmud .checkbox-group input[type="checkbox"] {
18
+ border: 0;
19
+ clip: rect(0 0 0 0);
20
+ height: 1px;
21
+ margin: -1px;
22
+ overflow: hidden;
23
+ padding: 0;
24
+ position: absolute;
25
+ width: 1px;
26
+ display: block;
27
+ }
28
+
29
+ .wpmud .checkbox-group input[type="checkbox"] + label {
30
+ background-color: #FAFAFA;
31
+ border-radius: 4px;
32
+ display: flex;
33
+ padding: 0;
34
+ align-items: center;
35
+ justify-content: center;
36
+ text-align: center;
37
+ width: 107px;
38
+ position: relative;
39
+ transition-property: background, color;
40
+ transition-duration: 0.3s;
41
+ color: transparent !important;
42
+ margin-bottom: 0;
43
+ margin-left: 5px;
44
+ }
45
+
46
+ /* Overwrite for advanced view */
47
+ .wpmud .wphb-minification-advanced-group input[type="checkbox"] + label {
48
+ width: 50px;
49
+ }
50
+
51
+ /* Modal window */
52
+ .wpmud .wphb-modal .checkbox-group {
53
+ width: 100%;
54
+ height: 52px;
55
+ }
56
+
57
+ .wpmud .wphb-modal .checkbox-group input[type="checkbox"] + label {
58
+ padding: 10px 10px;
59
+ width: 70px;
60
+ height: 50px;
61
+ }
62
+
63
+ .wpmud .wphb-modal .wphb-progress-state {
64
+ text-align: left;
65
+ margin-top: 0;
66
+ }
67
+
68
+ /* Checkbox group */
69
+ .wpmud .checkbox-group input[type="checkbox"] + label.toggle-label-background, /* modal */
70
+ .wpmud .checkbox-group input[type="checkbox"]:checked + label {
71
+ box-shadow: none;
72
+ background-color: #EFFAFF;
73
+ }
74
+
75
+ .wpmud .checkbox-group input[type="checkbox"] + label > span:not(.toggle),
76
+ .wpmud .checkbox-group input[type="checkbox"] + label > i {
77
+ color: #888888;
78
+ padding: 0;
79
+ font-size: 12px;
80
+ }
81
+
82
+ .wpmud .checkbox-group > span {
83
+ color: #AAAAAA;
84
+ font-size: 12px;
85
+ line-height: 40px;
86
+ }
87
+
88
+ .wpmud .checkbox-group input[type="checkbox"] + label > [class^="hb-"]:before {
89
+ font-size: 14px;
90
+ vertical-align: -2px;
91
+ margin-right: 8px;
92
+ }
93
+
94
+ /* Overwrite for advanced view */
95
+ .wpmud .wphb-minification-advanced-group input[type="checkbox"] + label > [class^="hb-"]:before,
96
+ .wpmud .wphb-modal input[type="checkbox"] + label > [class^="hb-"]:before {
97
+ margin-right: 0;
98
+ }
99
+
100
+ .wpmud .checkbox-group input[type="checkbox"] + label.toggle-label-background > span:not(.toggle), /* modal */
101
+ .wpmud .checkbox-group input[type="checkbox"]:checked + label > span:not(.toggle),
102
+ .wpmud .checkbox-group input[type="checkbox"]:checked + label > i {
103
+ color: #17A8E3;
104
+ }
105
+
106
+ .wpmud .checkbox-group input[type="checkbox"]:disabled + label > span:not(.toggle),
107
+ .wpmud .checkbox-group input[type="checkbox"]:disabled + label > i {
108
+ color: #DDD;
109
+ }
110
+
111
+ .wpmud .checkbox-group input[type="checkbox"]:disabled + label {
112
+ background-color: #FFF;
113
+ }
114
+
115
+ .wpmud .checkbox-group input[type="checkbox"] + label > [tooltip] {
116
+ position: absolute;
117
+ left: 0;
118
+ top: 0;
119
+ bottom: 0;
120
+ right: 0;
121
+ z-index: 9;
122
+ }
123
+
124
+ .wpmud .checkbox-group label [class^="hb-"] {
125
+ display: block;
126
+ padding: 10px 0 4px;
127
+
128
+ }
129
+
130
+ /* Notice in header to enable advanced mode */
131
+ .wpmud .wrap-wphb-minification > .row > .wphb-notice {
132
+ margin-bottom: 30px;
133
+ }
134
+
135
+ /* Minification meta box */
136
+ .wpmud .wphb-minification-files {
137
+ background-color: #F8F8F8;
138
+ padding-bottom: 1px;
139
+ }
140
+
141
+ .wpmud .box-minification-enqueued-files .box-title .buttons > div {
142
+ display: inline-block;
143
+ vertical-align: top;
144
+ }
145
+
146
+ /* Switch type button */
147
+ .wpmud .box-minification-enqueued-files .box-title .buttons {
148
+ margin-right: 45px !important;
149
+ }
150
+
151
+ .wpmud .box-minification-enqueued-files .box-title .wphb-switch-button {
152
+ border-left: 1px solid #E6E6E6;
153
+ display: block;
154
+ height: 60px;
155
+ left: 100%;
156
+ margin-left: -30px;
157
+ position: relative;
158
+ width: 60px;
159
+ }
160
+
161
+ .wpmud .box-minification-enqueued-files .box-title .wphb-switch-button > i {
162
+ color: #AAAAAA;
163
+ font-size: 20px;
164
+ left: 50%;
165
+ margin-left: -10px;
166
+ margin-top: -10px;
167
+ position: absolute;
168
+ top: 50%;
169
+ }
170
+
171
+ .wpmud .box-minification-enqueued-files .box-title-advanced .wphb-switch-button > i {
172
+ color: #17A8E3;
173
+ }
174
+
175
+ .wpmud .wphb-minification-files-header {
176
+ background-color: #fff;
177
+ border-bottom: 1px solid #E6E6E6;
178
+ margin-bottom: 30px;
179
+ padding: 30px;
180
+ }
181
+
182
+ .wpmud .wphb-border-row {
183
+ display: -webkit-box;
184
+ display: -ms-flexbox;
185
+ display: flex;
186
+ -webkit-box-orient: horizontal;
187
+ -webkit-box-direction: normal;
188
+ flex-flow: row wrap;
189
+ -webkit-box-align: center;
190
+ -ms-flex-align: center;
191
+ align-items: center;
192
+ align-content: center;
193
+ }
194
+
195
+ .wpmud .wphb-minification-files-basic .wphb-border-row,
196
+ .wpmud .wphb-minification-files-advanced .wphb-border-row,
197
+ .wpmud .wphb-minification-files-advanced .wphb-minification-row-details {
198
+ padding: 10px 30px;
199
+ -webkit-box-pack: justify;
200
+ -ms-flex-pack: justify;
201
+ justify-content: space-between;
202
+ }
203
+
204
+ .wpmud .wphb-minification-files-advanced .wphb-minification-row-details {
205
+ padding: 0;
206
+ display: flex;
207
+ align-content: center;
208
+ align-items: center;
209
+ }
210
+
211
+ .wpmud .wphb-minification-files-basic .wphb-border-row {
212
+ border-bottom: 1px solid #E6E6E6;
213
+ }
214
+
215
+ .wpmud .wphb-minification-files-advanced .wphb-border-row {
216
+ padding: 10px 30px 10px 20px;
217
+ min-height: 70px;
218
+ background-color: #FFF;
219
+ border-radius: 4px;
220
+ box-shadow: 0 2px 7px 0 rgba(0, 0, 0, 0.05);
221
+ margin-bottom: 10px;
222
+ }
223
+
224
+ .wpmud .wphb-minification-files-basic .wphb-border-row:last-child,
225
+ .wpmud .wphb-minification-files-advanced .wphb-border-row:last-child {
226
+ border-bottom: 0;
227
+ }
228
+
229
+ .wpmud .wphb-minification-files-table.wphb-minification-files-basic,
230
+ .wpmud .wphb-minification-files-table.wphb-minification-files-advanced {
231
+ background-color: #F8F8F8;
232
+ margin: 0 30px 30px;
233
+ }
234
+
235
+ .wpmud .wphb-minification-files-table.wphb-minification-files-basic {
236
+ background-color: #FFFFFF;
237
+ border-radius: 4px;
238
+ box-shadow: 0 2px 7px 0 rgba(0, 0, 0, 0.05);
239
+ }
240
+
241
+ .wpmud .wphb-minification-files > h3,
242
+ .wpmud .wphb-minification-files-select h3 {
243
+ font-size: 13px;
244
+ font-weight: bold;
245
+ line-height: 22px;
246
+ color: #888888;
247
+ text-align: left;
248
+ text-transform: none;
249
+ margin: 10px 30px;
250
+ }
251
+
252
+ /* Notices */
253
+ .wpmud .wphb-minification-files .wphb-notice {
254
+ margin: 0 30px 30px;
255
+ width: auto;
256
+ }
257
+
258
+ .wpmud .wphb-minification-changed-notice a.wphb-notice-dismiss {
259
+ opacity: 0.5;
260
+ color: #333333;
261
+ font-size: 12px;
262
+ font-weight: bold;
263
+ margin-left: 33px;
264
+ text-transform: uppercase;
265
+ }
266
+
267
+ /* Styles, common for basic and advanced views */
268
+ .wpmud .wphb-minification-file-info {
269
+ float: left;
270
+ line-height: 18px;
271
+ overflow: hidden;
272
+ position: relative;
273
+ white-space: nowrap;
274
+ width: 300px;
275
+ }
276
+
277
+ .wpmud .wphb-border-row:not(.disabled) .wphb-minification-file-info:after {
278
+ background: -webkit-linear-gradient(left, rgba(255, 255, 255, 0) 0%, #fff 100%);
279
+ background: -o-linear-gradient(left, rgba(255, 255, 255, 0) 0%, #fff 100%);
280
+ background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, #fff 100%);
281
+ content: '';
282
+ height: 100%;
283
+ pointer-events: none;
284
+ position: absolute;
285
+ right: 0;
286
+ top: 0;
287
+ width: 40px;
288
+ }
289
+
290
+ .wpmud .wphb-minification-file-info > * {
291
+ color: #AAAAAA;
292
+ font-size: 10px;
293
+ font-weight: 500;
294
+ line-height: 10px;
295
+ }
296
+
297
+ .wpmud .wphb-minification-file-info > span:first-child {
298
+ color: #666666;
299
+ display: block;
300
+ font-size: 13px;
301
+ line-height: 13px;
302
+ }
303
+
304
+ .wpmud .wphb-minification-file-info > a {
305
+ max-width: 400px;
306
+ overflow: hidden;
307
+ }
308
+
309
+ .wpmud .wphb-minification-file-info > .original-size.crossed-out {
310
+ text-decoration: line-through;
311
+ }
312
+
313
+ .wpmud .wphb-minification-file-info > .dev-icon-caret_down,
314
+ .wpmud .wphb-minification-file-info > .compressed-size {
315
+ color: #1ABC9C;
316
+ }
317
+
318
+ .wpmud .wphb-minification-file-info > .dev-icon-caret_down {
319
+ font-size: 12px;
320
+ letter-spacing: -3px;
321
+ margin-left: -3px;
322
+ position: relative;
323
+ top: 2px;
324
+ }
325
+
326
+ /* Advanced minification section */
327
+ .wpmud .wphb-minification-filter-buttons {
328
+ padding: 0 30px 20px;
329
+ }
330
+
331
+ .wpmud .wphb-minification-files-select {
332
+ display: flex;
333
+ align-items: center;
334
+ align-content: center;
335
+ margin: 0 50px;
336
+ }
337
+
338
+ .wpmud .wphb-minification-files-select h3 {
339
+ margin: 5px 5px 7px;
340
+ }
341
+
342
+ .wpmud .wphb-minification-bulk-file-selector {
343
+ float: left;
344
+ }
345
+
346
+ .wpmud .wphb-minification-file-select {
347
+ float: left;
348
+ line-height: 30px;
349
+ margin-right: 10px;
350
+ }
351
+
352
+ .wpmud .wphb-minification-exclude {
353
+ margin-left: 30px;
354
+ }
355
+
356
+ /* Filter */
357
+ .wpmud .wphb-minification-filter {
358
+ background-color: #FFFFFF;
359
+ padding: 0 30px;
360
+ }
361
+
362
+ .wpmud .wphb-minification-filter > div {
363
+ height: 78px;
364
+ display: flex;
365
+ align-items: center;
366
+ align-content: center;
367
+ }
368
+
369
+ /* Overwrite for wpmudev styles */
370
+ .wpmud .wphb-minification-filter > div > input {
371
+ margin: 0 10px !important;
372
+ width: 40% !important;
373
+ background-color: #F8F8F8 !important;
374
+ }
375
+
376
+ .wpmud .wphb-minification-filter > div .wphb-block-title {
377
+ color: #333333;
378
+ font: 500 13px/30px 'Roboto', sans-serif;
379
+ text-transform: none;
380
+ margin-right: 21px;
381
+ }
382
+
383
+ .wpmud .wphb-minification-filter .select-list-container {
384
+ min-width: 240px !important;
385
+ }
386
+
387
+ /* Disabled/hidden row start */
388
+ .wpmud .wphb-border-row.out-of-filter,
389
+ .wpmud .wphb-border-row.disabled .checkbox-group {
390
+ display: none;
391
+ }
392
+
393
+ .wpmud .box-content.disabled,
394
+ .wpmud .wphb-border-row.disabled {
395
+ background-color: #F2F2F2;
396
+ }
397
+
398
+ .wpmud .wphb-minification-files-advanced .wphb-border-row.disabled {
399
+ box-shadow: none;
400
+ }
401
+
402
+ .wpmud .wphb-border-row.disabled .wphb-filename-extension-other,
403
+ .wpmud .wphb-border-row.disabled .wphb-filename-extension-css,
404
+ .wpmud .wphb-border-row.disabled .wphb-filename-extension-javascript,
405
+ .wpmud .wphb-border-row.disabled .wphb-filename-extension-js {
406
+ opacity: 0.4;
407
+ }
408
+
409
+ .wpmud .wphb-border-row.disabled .wphb-minification-file-info > span {
410
+ color: #AAA;
411
+ }
412
+
413
+ /* Disabled row end */
414
+
415
+ /* Settings */
416
+ .wpmud .wrap-wphb-minification .settings-form {
417
+ margin: 0;
418
+ }
419
+
420
+ /* Overwrite upsell message */
421
+ .wpmud .wrap-wphb-minification .content-box-two-cols-image-left .wphb-block-entry-content {
422
+ margin-top: 0;
423
+ }
424
+
425
+ /* Minification switch mode notice */
426
+ .wpmud .wphb-advanced-minification-modal .box {
427
+ width: 400px !important;
428
+ margin-left: -200px !important;
429
+ padding: 30px !important;
430
+ }
431
+
432
+ .wpmud .wphb-advanced-minification-modal .title {
433
+ display: none;
434
+ }
435
+
436
+ .wpmud .wphb-advanced-minification-modal h1 {
437
+ color: #333333;
438
+ font-size: 22px;
439
+ font-weight: bold;
440
+ line-height: 30px;
441
+ text-transform: none;
442
+ }
443
+
444
+ .wpmud .wphb-advanced-minification-modal p {
445
+ color: #666;
446
+ font-size: 13px;
447
+ line-height: 22px;
448
+ text-align: center;
449
+ }
450
+
451
+ // Responsive
452
+ @include bp(desktop-large) {
453
+ .wpmud .wphb-minification-files-advanced .wphb-minification-file-info {
454
+ width: 235px;
455
+ }
456
+ }
457
+
458
+ @include bp(desktop) {
459
+ .wpmud .box-minification-enqueued-files .box-title .buttons {
460
+ float: left;
461
+ margin-right: -5px !important;
462
+ }
463
+
464
+ .wpmud .wphb-minification-files-advanced .wphb-minification-file-info {
465
+ width: 130px;
466
+ }
467
+
468
+ .wpmud .wphb-minification-files-advanced .wphb-minification-exclude {
469
+ margin-left: 15px;
470
+ }
471
+
472
+ .wpmud .box-minification-enqueued-files .box-footer .button {
473
+ margin-top: 15px;
474
+ }
475
+ }
476
+
477
+ @include bp(desktop-small) {
478
+ .wpmud .box-minification-enqueued-files .box-title .buttons {
479
+ float: right;
480
+ margin-right: 45px !important;
481
+ }
482
+ }
483
+
484
+ @include bp(tablet) {
485
+ .wpmud .wphb-minification-files-advanced .fileinfo-group:after {
486
+ font-family: dashicons;
487
+ content: "\F347";
488
+ position: absolute;
489
+ left: 100%;
490
+ margin-left: -70px;
491
+ margin-top: 5px;
492
+ }
493
+
494
+ .wpmud .wphb-minification-files-advanced .fileinfo-group.opened:after {
495
+ content: "\f343";
496
+ }
497
+
498
+ .wpmud .wphb-minification-files-advanced .fileinfo-group {
499
+ padding: 10px 0;
500
+ overflow: hidden;
501
+ }
502
+
503
+ .wpmud .wphb-minification-files-advanced .wphb-minification-file-info {
504
+ width: 55%;
505
+ min-width: 200px;
506
+ }
507
+
508
+ .wpmud .wphb-minification-files-advanced .wphb-minification-file-info > a {
509
+ max-width: 200px;
510
+ }
511
+
512
+ .wpmud .wphb-minification-files-advanced .wphb-minification-row-details {
513
+ display: none;
514
+ margin: 10px 0;
515
+ border-top: 1px solid #E6E6E6;
516
+ padding-top: 15px !important;
517
+ width: 100%;
518
+ z-index: 100;
519
+ }
520
+
521
+ .wpmud .wphb-minification-files-advanced .wphb-minification-advanced-group {
522
+ float: left;
523
+ }
524
+
525
+ .wpmud .wphb-minification-files-advanced .wphb-minification-exclude {
526
+ float: right;
527
+ margin-top: 7px;
528
+ }
529
+ }
530
+
531
+ @include bp(phone-large) {
532
+ .wpmud .box-minification-enqueued-files .box-title h3,
533
+ .wpmud .box-minification-enqueued-files .box-title .buttons {
534
+ float: none !important;
535
+ }
536
+
537
+ .wpmud .box-minification-enqueued-files .box-title .wphb-switch-button {
538
+ height: 96px;
539
+ margin-left: -60px;
540
+ position: absolute;
541
+ top: 0;
542
+ }
543
+
544
+ .wpmud .wphb-minification-file-info {
545
+ width: 185px;
546
+ }
547
+
548
+ .wpmud .box-minification-enqueued-files .box-footer .status-text {
549
+ display: block;
550
+ max-width: 100%;
551
+ text-align: left;
552
+ padding-left: 0;
553
+ }
554
+ }
555
+
556
+ @include bp(phone) {
557
+ .wpmud .wphb-minification-files-table.wphb-minification-files-basic,
558
+ .wpmud .wphb-minification-files-table.wphb-minification-files-advanced {
559
+ margin: 0 10px 30px;
560
+ }
561
+
562
+ .wpmud .wphb-minification-files-header {
563
+ padding: 15px 30px;
564
+ }
565
+
566
+ .wpmud .box-minification-enqueued-files .buttons .button {
567
+ padding: 7px !important;
568
+ }
569
+
570
+ .wpmud .wphb-minification-filter-buttons {
571
+ padding: 0 20px 20px;
572
+ }
573
+
574
+ .wpmud .wphb-minification-files-select {
575
+ margin: 0 20px;
576
+ }
577
+
578
+ .wpmud .wphb-minification-files > h3 {
579
+ margin: 10px;
580
+ }
581
+
582
+ .wpmud .wphb-minification-files-basic .wphb-border-row,
583
+ .wpmud .wphb-minification-files-advanced .wphb-border-row {
584
+ padding: 10px;
585
+ }
586
+
587
+ .wpmud .wphb-minification-file-info {
588
+ width: 155px;
589
+ }
590
+
591
+ .wpmud .wphb-minification-files-advanced .wphb-minification-file-info {
592
+ min-width: 170px;
593
+ }
594
+
595
+ .wpmud .wphb-border-row .fileinfo-group {
596
+ margin-top: 5px;
597
+ margin-bottom: -5px;
598
+ }
599
+
600
+ .wpmud .checkbox-group > span {
601
+ line-height: 20px;
602
+ text-align: right;
603
+ }
604
+
605
+ .wpmud .checkbox-group input[type="checkbox"] + label {
606
+ width: 60px;
607
+ }
608
+
609
+ .wpmud .checkbox-group input[type="checkbox"] + label > [class^="hb-"]:before {
610
+ margin-right: 0;
611
+ }
612
+
613
+ .wpmud .checkbox-group input[type="checkbox"] + label > span[class^=hb] > span {
614
+ display: none;
615
+ }
616
+ }
_src/admin/scss/modules/_mixins.scss DELETED
@@ -1,90 +0,0 @@
1
- /* ****************************************************************************
2
- * MODULE: MIXINS
3
- */
4
-
5
- // Base at-root
6
- @mixin optional-at-root($sel) {
7
- @at-root #{if(not &, $sel, selector-append(&, $sel))} {
8
- @content;
9
- }
10
- }
11
-
12
- // Form Input Placeholder
13
- @mixin form-placeholder {
14
- @include optional-at-root('&::-webkit-input-placeholder') {
15
- @content;
16
- }
17
-
18
- @include optional-at-root('&:-moz-placeholder') {
19
- @content;
20
- }
21
-
22
- @include optional-at-root('&::-moz-placeholder') {
23
- @content;
24
- }
25
-
26
- @include optional-at-root('&:-ms-input-placeholder') {
27
- @content;
28
- }
29
- }
30
-
31
- // Breakpoints
32
- @mixin bp($point) {
33
-
34
- // Phone: < 480px
35
- @if $point == phone {
36
- @media only screen and (max-width: $phone) {
37
- @content;
38
- }
39
- }
40
-
41
- // Phone Large: < 600px
42
- @if $point == phone-large {
43
- @media only screen and (max-width: $phone--large) {
44
- @content;
45
- }
46
- }
47
-
48
- // Tablet: < 783px
49
- @if $point == tablet {
50
- @media only screen and (max-width: $tablet) {
51
- @content;
52
- }
53
- }
54
-
55
- // Desktop Small: < 960px
56
- @if $point == desktop-small {
57
- @media only screen and (max-width: $desktop--small) {
58
- @content;
59
- }
60
- }
61
-
62
- // Desktop: < 1100px
63
- @if $point == desktop {
64
- @media only screen and (max-width: $desktop) {
65
- @content;
66
- }
67
- }
68
-
69
- // Desktop Large: < 1200px
70
- @if $point == desktop-large {
71
- @media only screen and (max-width: $desktop--large) {
72
- @content;
73
- }
74
- }
75
-
76
- // Desktop Wide: < 1440px
77
- @if $point == desktop-wide {
78
- @media only screen and (max-width: $desktop--wide) {
79
- @content;
80
- }
81
- }
82
-
83
- // Desktop Very Large: < 1600px
84
- @if $point == desktop-very-large {
85
- @media only screen and (max-width: $desktop--very-large) {
86
- @content;
87
- }
88
- }
89
-
90
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
_src/admin/scss/modules/_performance.scss ADDED
@@ -0,0 +1,242 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* ****************************************************************************
2
+ * MODULES: PERFORMANCE
3
+ */
4
+
5
+ .wpmud .performance-report-table {
6
+ text-align: left;
7
+ margin-top: 30px;
8
+ overflow: hidden;
9
+ }
10
+
11
+ .wpmud .performance-report-table .wpdui-btn {
12
+ display: inline-block;
13
+ margin: 10px 0 20px;
14
+ text-transform: uppercase;
15
+ }
16
+
17
+ .wpmud .performance-report-table .wpdui-btn:hover {
18
+ color: #ffffff;
19
+ }
20
+
21
+ .wpmud .performance-report-table a,
22
+ .wpmud .performance-report-table a:hover {
23
+ color: #17A8E3;
24
+ overflow-wrap: break-word;
25
+ word-wrap: break-word;
26
+ word-break: break-all;
27
+ -ms-hyphens: auto;
28
+ -moz-hyphens: auto;
29
+ -webkit-hyphens: auto;
30
+ hyphens: auto;
31
+ }
32
+
33
+ .wpmud .performance-report-table p,
34
+ .wpmud .performance-report-table ol li {
35
+ font-size: 13px !important;
36
+ color: #888888;
37
+ line-height: 22px;
38
+ }
39
+
40
+ .wpmud .performance-report-table ol > p {
41
+ margin-left: -30px;
42
+ margin-bottom: 15px;
43
+ }
44
+
45
+ .wpmud .performance-report-table > thead > tr > th:first-child {
46
+ padding-left: 30px;
47
+ }
48
+
49
+ .wpmud .performance-report-table .wphb-performance-report-item:hover td {
50
+ cursor: pointer;
51
+ border-bottom: 0 !important;
52
+ }
53
+
54
+ .wpmud .performance-report-table .wphb-performance-report-item-score {
55
+ width: 137px;
56
+ }
57
+
58
+ .wpmud .performance-report-table .wphb-performance-report-item-type {
59
+ color: #888888;
60
+ font-size: 13px;
61
+ transition: color .3s;
62
+ text-transform: capitalize;
63
+ width: 130px;
64
+ }
65
+
66
+ .wpmud .performance-report-table .wphb-performance-report-item:hover .wphb-performance-report-item-type {
67
+ color: #333333;
68
+ }
69
+
70
+ .wpmud .performance-report-table .wphb-performance-report-item-cta {
71
+ text-align: right;
72
+ width: 225px;
73
+ }
74
+
75
+ .wpmud .wphb-performance-report-item .trigger-additional-content {
76
+ color: #888888;
77
+ cursor: pointer;
78
+ display: inline-block;
79
+ font-size: 14px;
80
+ line-height: 1em;
81
+ height: 14px;
82
+ margin: 8px 30px 8px 15px;
83
+ transition: color .3s;
84
+ vertical-align: middle;
85
+ }
86
+
87
+ .wpmud .wphb-performance-report-item .trigger-additional-content .dev-icon-caret_down:before {
88
+ display: inline-block;
89
+ transition: transform 0.5s;
90
+ transform: rotate(0);
91
+ }
92
+
93
+ .wpmud .wphb-performance-report-item-opened .trigger-additional-content .dev-icon-caret_down:before {
94
+ transform: rotate(-180deg);
95
+ }
96
+
97
+ .wpmud .performance-report-table .wphb-performance-report-item-opened,
98
+ .wpmud .wphb-table.performance-report-table .wphb-performance-report-item-additional-content:hover,
99
+ .wpmud .wphb-table.performance-report-table .wphb-performance-report-item-opened:hover {
100
+ background: #F8F8F8;
101
+ }
102
+
103
+ .wpmud .performance-report-table .wphb-performance-report-item-additional-content {
104
+ background: #F8F8F8;
105
+ display: none;
106
+ }
107
+
108
+ .wpmud .performance-report-table .wphb-performance-report-item-additional-content-opened {
109
+ display: table-row;
110
+ }
111
+
112
+ .wpmud .performance-report-table .wphb-performance-report-item-additional-content-opened > td {
113
+ border-top: 0 !important;
114
+ }
115
+
116
+ .wpmud .wphb-performance-report-item-additional-content-inner {
117
+ padding: 0 !important;
118
+ }
119
+
120
+ .wpmud .dev-box-performance-report-additional-content {
121
+ padding: 30px;
122
+ margin: 0 30px 30px;
123
+ border-radius: 5px;
124
+ background-color: #FFFFFF;
125
+ box-shadow: 0 2px 0 0 #EAEAEA;
126
+ }
127
+
128
+ .wpmud .dev-box-performance-report-additional-content h4:first-child {
129
+ margin-top: 0;
130
+ }
131
+
132
+ .wpmud .wphb-performance-report-item-additional-content h4,
133
+ .wpmud .wphb-performance-report-item-additional-content h5 {
134
+ color: #333333;
135
+ font-size: 13px;
136
+ text-transform: none;
137
+ line-height: 23px;
138
+ margin: 20px 0 20px;
139
+ text-align: left;
140
+ }
141
+
142
+ /* Reporting */
143
+ .wpmud .wrap-wphb-caching .list-results,
144
+ .wpmud .wrap-wphb-performance .list-results {
145
+ max-height: 200px;
146
+ overflow-y: scroll;
147
+ }
148
+
149
+ .wpmud .wrap-wphb-performance .recipient {
150
+ margin-bottom: 10px;
151
+ padding: 5px 10px;
152
+ }
153
+
154
+ .wpmud .wrap-wphb-performance .recipient:hover {
155
+ border-radius: 4px;
156
+ background-color: #F8F8F8;
157
+ }
158
+
159
+ .wpmud .wrap-wphb-performance .recipient,
160
+ .wpmud .wrap-wphb-performance .recipient .name,
161
+ .wpmud .wrap-wphb-performance .add-recipient {
162
+ display: flex;
163
+ flex-flow: row nowrap;
164
+ justify-content: space-between;
165
+ align-items: center;
166
+ align-content: center;
167
+ }
168
+
169
+ .wpmud .wrap-wphb-performance .recipient img {
170
+ -webkit-border-radius: 50px;
171
+ -moz-border-radius: 50px;
172
+ border-radius: 50px;
173
+ width: 30px;
174
+ height: 30px;
175
+ margin-right: 10px;
176
+ display: inline-block;
177
+ vertical-align: middle;
178
+ }
179
+
180
+ .wpmud .wrap-wphb-performance .recipient .name {
181
+ color: #333333;
182
+ font-weight: 500;
183
+ }
184
+
185
+ .wpmud .wrap-wphb-performance .recipient a > i {
186
+ color: #888888;
187
+ }
188
+
189
+ .wpmud .wrap-wphb-performance .recipient:hover a > i {
190
+ color: #333333;
191
+ }
192
+
193
+ .wpmud .wrap-wphb-performance .add-recipient {
194
+ margin-top: 15px;
195
+ }
196
+
197
+ .wpmud .wrap-wphb-performance .add-recipient > * {
198
+ margin-bottom: 0;
199
+ border-radius: 0;
200
+ border: 1px solid #E6E6E6;
201
+ font-weight: normal;
202
+ }
203
+
204
+ .wpmud .wrap-wphb-performance .add-recipient .wdv-icon-plus {
205
+ color: #FFFFFF;
206
+ font-size: 20px;
207
+ }
208
+
209
+ .wpmud .wrap-wphb-performance .add-recipient > input::placeholder {
210
+ color: #AAAAAA;
211
+ font-weight: 400;
212
+ }
213
+
214
+ .wpmud .wrap-wphb-performance .add-recipient #wphb-first-name {
215
+ border-radius: 4px 0 0 4px;
216
+ border-right: 0;
217
+ background-color: #F8F8F8;
218
+ }
219
+
220
+ .wpmud .wrap-wphb-performance .add-recipient #wphb-username-search {
221
+ background-color: #F8F8F8;
222
+ }
223
+
224
+ .wpmud .wrap-wphb-performance .wphb-tag {
225
+ -webkit-border-radius: 16px;
226
+ -moz-border-radius: 16px;
227
+ border-radius: 16px;
228
+ font-size: 13px;
229
+ padding: 4px 16px;
230
+ color: #fff;
231
+ text-transform: uppercase;
232
+ }
233
+
234
+ .wpmud .wrap-wphb-performance .wphb-tag.tag-generic {
235
+ background: #E6E6E6;
236
+ color: #333;
237
+ }
238
+
239
+ .wpmud .box-reporting-summary .wphb-block-entry-content,
240
+ .wpmud .box-reporting-summary .content-box-two-cols-image-left .wphb-block-entry-content {
241
+ margin-top: 0;
242
+ }
_src/admin/scss/modules/_uptime.scss ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* ****************************************************************************
2
+ * MODULES: UPTIME
3
+ */
4
+
5
+ .wpmud .wphb-block-uptime-status .wphb-uptime-icon {
6
+ max-height: 110px;
7
+ }
8
+
9
+ .wpmud .wphb-block-content-uptime-data-range {
10
+ padding-top: 9px;
11
+ padding-bottom: 9px;
12
+ }
13
+
14
+ .wpmud .uptime-chart svg g g rect {
15
+ fill: #E6E6E6;
16
+ stroke: transparent;
17
+ stroke-width: 0;
18
+ }
19
+
20
+ .wpmud .uptime-chart svg g g text {
21
+ fill: #fff;
22
+ font-family: 'Roboto', Arial, sans-serif;
23
+ font-size: 13px;
24
+ font-weight: 400;
25
+ }
26
+
27
+ .wpmud .uptime-chart svg g g text:last-of-type {
28
+ fill: #AAAAAA;
29
+ font-weight: 500;
30
+ }
31
+
32
+ .wpmud .wrap-wphb-uptime .wphb-pills.red,
33
+ .wpmud .wrap-wphb-uptime .wphb-pills.green {
34
+ height: 40px;
35
+ line-height: 40px;
36
+ width: 200px;
37
+ border-radius: 5px;
38
+ }
39
+
40
+ .wpmud .wphb-block-uptime-downtime .dev-list {
41
+ margin-top: 30px;
42
+ }
43
+
44
+ .wrap-wphb-uptime .wphb-block-entry .wphb-block-content-center,
45
+ .wrap-wphb-caching .wphb-block-entry .wphb-block-content-center {
46
+ max-width: 600px;
47
+ margin: 0 auto;
48
+ }
admin/abstract-class-admin-page.php CHANGED
@@ -4,12 +4,12 @@ abstract class WP_Hummingbird_Admin_Page {
4
 
5
  protected $slug = '';
6
 
7
- public $page_id = null;
8
-
9
  protected $meta_boxes = array();
10
 
11
  protected $tabs = array();
12
 
 
 
13
  /**
14
  * @var WP_Hummingbird_Admin_Notices
15
  */
@@ -55,7 +55,6 @@ abstract class WP_Hummingbird_Admin_Page {
55
  add_action( 'load-' . $this->page_id, array( $this, 'trigger_load_action' ) );
56
  add_filter( 'load-' . $this->page_id, array( $this, 'add_screen_hooks' ) );
57
  }
58
-
59
  }
60
 
61
  /**
@@ -84,7 +83,7 @@ abstract class WP_Hummingbird_Admin_Page {
84
  * @return string
85
  */
86
  public function view( $name, $args = array(), $echo = true ) {
87
- $file = wphb_plugin_dir() . "admin/views/$name.php";
88
  $content = '';
89
 
90
  if ( is_file( $file ) ) {
@@ -114,7 +113,7 @@ abstract class WP_Hummingbird_Admin_Page {
114
  }
115
 
116
  protected function view_exists( $name ) {
117
- $file = wphb_plugin_dir() . "admin/views/$name.php";
118
  return is_file( $file );
119
  }
120
 
@@ -129,10 +128,8 @@ abstract class WP_Hummingbird_Admin_Page {
129
 
130
  public function notices() {}
131
 
132
-
133
  /**
134
- * Function triggered when the page is loaded
135
- * before render any content
136
  */
137
  public function on_load() {}
138
 
@@ -141,7 +138,7 @@ abstract class WP_Hummingbird_Admin_Page {
141
  WDEV_Plugin_Ui::load( wphb_plugin_url() . 'externals/shared-ui' );
142
 
143
  // Styles
144
- wp_enqueue_style( 'wphb-admin', wphb_plugin_url() . 'admin/assets/css/admin.css', array(), WPHB_VERSION );
145
 
146
  // Scripts
147
  wphb_enqueue_admin_scripts( WPHB_VERSION );
@@ -255,7 +252,6 @@ abstract class WP_Hummingbird_Admin_Page {
255
  </a>
256
  </div>
257
  </section><!-- end header -->
258
-
259
  <?php
260
  }
261
 
4
 
5
  protected $slug = '';
6
 
 
 
7
  protected $meta_boxes = array();
8
 
9
  protected $tabs = array();
10
 
11
+ public $page_id = null;
12
+
13
  /**
14
  * @var WP_Hummingbird_Admin_Notices
15
  */
55
  add_action( 'load-' . $this->page_id, array( $this, 'trigger_load_action' ) );
56
  add_filter( 'load-' . $this->page_id, array( $this, 'add_screen_hooks' ) );
57
  }
 
58
  }
59
 
60
  /**
83
  * @return string
84
  */
85
  public function view( $name, $args = array(), $echo = true ) {
86
+ $file = wphb_plugin_dir() . "admin/views/{$name}.php";
87
  $content = '';
88
 
89
  if ( is_file( $file ) ) {
113
  }
114
 
115
  protected function view_exists( $name ) {
116
+ $file = wphb_plugin_dir() . "admin/views/{$name}.php";
117
  return is_file( $file );
118
  }
119
 
128
 
129
  public function notices() {}
130
 
 
131
  /**
132
+ * Function triggered when the page is loaded before render any content
 
133
  */
134
  public function on_load() {}
135
 
138
  WDEV_Plugin_Ui::load( wphb_plugin_url() . 'externals/shared-ui' );
139
 
140
  // Styles
141
+ wp_enqueue_style( 'wphb-admin', wphb_plugin_url() . 'admin/assets/css/app.css', array(), WPHB_VERSION );
142
 
143
  // Scripts
144
  wphb_enqueue_admin_scripts( WPHB_VERSION );
252
  </a>
253
  </div>
254
  </section><!-- end header -->
 
255
  <?php
256
  }
257
 
admin/assets/css/admin.css DELETED
@@ -1,4088 +0,0 @@
1
- /**
2
- *
3
- * -----------------------------------------------------------------------------
4
- *
5
- * 1. Extend/Override WPMU DEV Dashboard Styles
6
- * 2. Common/General Styles
7
- * 3. Components/Modules
8
- * 4. Page: Welcome/Dashboard
9
- * 5. Page: Performance
10
- * 6. Page: Minification
11
- * 7. Page: Browser Caching
12
- * 8. Page: GZIP
13
- * 9: Page: Uptime
14
- * 10: Responsive/MQ
15
- *
16
- * -----------------------------------------------------------------------------
17
- */
18
-
19
- /* ****************************************************************************
20
- * 1. EXTEND/OVERRIDE WPMUDEV DASHBOARD/WP STYLES
21
- */
22
- /* Overwrite for the default notifications */
23
- button.notice-dismiss {
24
- position: absolute;
25
- top: 0;
26
- right: 1px;
27
- border: none !important;
28
- margin: 0 !important;
29
- padding: 9px !important;
30
- background: none !important;
31
- color: #72777c !important;
32
- cursor: pointer !important;
33
- }
34
- .wpmud #header .actions .button + .button {
35
- margin-left: 10px;
36
- }
37
- .wpmud .wphb-dismiss {
38
- float: right;
39
- }
40
- .wpmud #wpbody-content > .notice {
41
- margin: 5px 20px 2px 5px;
42
- }
43
- /* Fix for tooltip-below */
44
- .wpmud [tooltip].tooltip-bottom:before {
45
- margin-top: 2px;
46
- }
47
- .wpmud [tooltip].tooltip-bottom:after {
48
- margin-top: 12px;
49
- }
50
- /* Fix for overflowing tooltips start */
51
- .wpmud .list-table > tbody > tr > td {
52
- z-index: 0;
53
- }
54
- .wpmud [tooltip].tooltip-s.tooltip-right:after {
55
- margin-left: -150px;
56
- }
57
- /* Fix for overflowing tooltips end */
58
- .wpmud .wrap-wp-hummingbird .clear {
59
- padding: 0;
60
- }
61
- .wpmud .wrap-wp-hummingbird a:not('.wdpun-button') {
62
- color: #17A8E3;
63
- }
64
- .wpmud .wrap-wp-hummingbird strong {
65
- color: #333333;
66
- }
67
- .wpmud .dev-overlay .back {
68
- background-color: rgba(51,51,51,0.95);
69
- }
70
- .wpmud .dev-overlay .box {
71
- padding: 40px 30px 30px;
72
- }
73
- .wpmud .wrap-wp-hummingbird .mline {
74
- margin-bottom: 30px;
75
- }
76
- .wpmud .wrap-wp-hummingbird i.wdv-icon-chevron-down {
77
- color: #8A8A8A;
78
- }
79
- .wpmud .wrap-wp-hummingbird p {
80
- color: #666666;
81
- }
82
- .wpmud .select-container:not(.mobile-nav) i.wdv-icon-reorder:before {
83
- content: "\f078";
84
- }
85
- .wpmud .select-container:not(.mobile-nav) {
86
- border: 1px solid #E6E6E6;
87
- background-color: #F8F8F8;
88
- }
89
- .wpmud .select-container:not(.mobile-nav) .dropdown-handle {
90
- background-color: #F8F8F8;
91
- color: #898989;
92
- }
93
- .wpmud .select-list-container .list-value {
94
- font-weight: 500 !important;
95
- }
96
- #wpbody-content {
97
- padding-bottom: 25px;
98
- }
99
- .wpmud .with-bottom-border {
100
- border-bottom: 1px solid #E6E6E6;
101
- padding-bottom: 30px;
102
- }
103
- .wpmud .toggle .toggle-checkbox:checked + .toggle-label:before,
104
- .wpmud .toggle .toggle-checkbox:checked + .toggle-label {
105
- background-color: #17A8E3;
106
- }
107
- .wpmud .toggle .toggle-label {
108
- width: 44px;
109
- }
110
- .wpmud .toggle .toggle-checkbox:checked + .toggle-label:after {
111
- margin-left: 24px;
112
- }
113
- .wpmud .toggle .toggle-label.small {
114
- width: 36px;
115
- height: 16px;
116
- }
117
- .wpmud .toggle .toggle-label.small:after {
118
- width: 14px;
119
- height: 14px;
120
- }
121
- .wpmud .toggle .toggle-checkbox:checked + .toggle-label.small:after {
122
- margin-left: 21px;
123
- }
124
- .wpmud .spinner.standalone {
125
- float: none;
126
- margin: 0;
127
- }
128
- .wpmud .spinner.left {
129
- float: left;
130
- }
131
- .wpmud .spinner.hide { /* Don't take/render block on layout */
132
- display: none;
133
- }
134
- .wpmud .spinner.visible { /* Re-set visibility to visible */
135
- visibility: visible;
136
- }
137
- .wpmud #wpmu-install-dashboard {
138
- margin-left: 0;
139
- }
140
- .wpmud #wpcontent #wpmu-install-dashboard * {
141
- -webkit-box-sizing: content-box;
142
- box-sizing: content-box;
143
- }
144
- .wpmud #wpmu-install-dashboard .wpmu-message {
145
- font-family: inherit;
146
- font-weight: inherit;
147
- line-height: inherit;
148
- }
149
- .wpmud #header {
150
- position: relative;
151
- margin-bottom: 0;
152
- }
153
- .wpmud #header h1 {
154
- color: #333333;
155
- margin: 0;
156
- }
157
- .wpmud .dev-overlay .title h3 {
158
- font-size: 16px;
159
- color: #333333;
160
- }
161
- .wpmud .dev-overlay .title .title-action {
162
- font-family: 'Roboto', sans-serif;
163
- margin-top: 5px;
164
- vertical-align: middle;
165
- color: #888888;
166
- font-size: 13px;
167
- line-height: 30px;
168
-
169
- margin-right: -20px;
170
- }
171
- .wpmud #header .actions.status {
172
- left: 200px;
173
- margin-top: 1px;
174
- }
175
- .wpmud #header .button[disabled] {
176
- background-color: #E6E6E6 !important;
177
- border-radius: 4px;
178
- color: #AAAAAA !important;
179
- }
180
- .wpmud .wrap-wphb-uptime > #header .actions.status {
181
- left: 120px;
182
- margin-top: 1px !important;
183
- }
184
- .wpmud #header .actions.status [tooltip]:after {
185
- margin-left: 27px;
186
- bottom: -60%;
187
- }
188
- .wpmud #header .actions.status [tooltip]:before {
189
- bottom: 25%;
190
- left: 100%;
191
- border-right-color: #0B2F3F;
192
- border-top: 5px solid transparent;
193
- }
194
- .wpmud #header .actions {
195
- position: absolute;
196
- display: flex;
197
- align-items: center;
198
- top: 5px;
199
- right: 0;
200
- }
201
- .wpmud #header .actions > * {
202
- display: inline-block;
203
- margin-left: 10px;
204
- }
205
- .wpmud #header .actions.label-and-button > *:first-child {
206
- margin-left: 0;
207
- }
208
- .wpmud #header .actions.label-and-button .actions-label {
209
- color: #888888;
210
- font-size: 13px;
211
- line-height: 18px;
212
- margin: 0;
213
- text-align: right;
214
- }
215
- .wpmud #header .actions .header-label {
216
- font-size: 12px;
217
- color: #AAAAAA;
218
- }
219
-
220
- .wpmud #header ~ .sub-header {
221
- margin-top: -15px;
222
- margin-bottom: 30px;
223
- }
224
- .wpmud .row {
225
- margin-top: 30px;
226
- }
227
- .wpmud .box-content .row:first-of-type {
228
- margin-top: 0;
229
- }
230
- .wpmud .row-space-large {
231
- margin-bottom: 40px;
232
- }
233
- .wpmud .row .col-center {
234
- display: block;
235
- margin-right: auto;
236
- margin-left: auto;
237
- }
238
- .wpmud .row .col-quarter,
239
- .wpmud .row .col-three-quarters,
240
- .wpmud .row .col-fifth,
241
- .wpmud .row .col-four-fifths {
242
- display: table-cell;
243
- padding: 0 15px 0 15px;
244
- position: relative;
245
- vertical-align: top;
246
- }
247
- .wpmud .row .col-quarter {
248
- width: 25%;
249
- }
250
- .wpmud .row .col-three-quarters {
251
- width: 75%;
252
- }
253
- .wpmud .row .col-fifth {
254
- width: 20%;
255
- }
256
- .wpmud .row .col-four-fifths {
257
- width: 80%;
258
- }
259
- .wpmud .row .col-four-fifths.hidden {
260
- display: none;
261
- }
262
- .wpmud .row .col-quarter:first-child,
263
- .wpmud .row .col-three-quarters:first-child,
264
- .wpmud .row .col-fifth:first-child,
265
- .wpmud .row .col-four-fifths:first-child {
266
- padding-left: 0;
267
- }
268
- .wpmud .row .col-quarter:last-child,
269
- .wpmud .row .col-three-quarters:last-child,
270
- .wpmud .row .col-fifth:last-child,
271
- .wpmud .row .col-four-fifths:last-child {
272
- padding-right: 0;
273
- }
274
- .wpmud .dev-box {
275
- padding: 0;
276
- }
277
- .wpmud .dev-box:last-child {
278
- margin-bottom: 0;
279
- }
280
- .wpmud .dev-box .box-title {
281
- clear: both;
282
- height: inherit;
283
- margin: 0;
284
- padding: 0 30px;
285
- }
286
- .wpmud .dev-box .box-title h3 {
287
- font-size: 16px;
288
- color: #333333;
289
- float: left;
290
- }
291
- .wpmud .dev-box .box-title .wphb-label-notice-inline {
292
- margin: 2px 15px;
293
- }
294
- .wpmud .dev-box .box-title:after {
295
- content: '';
296
- display: table;
297
- clear: both;
298
- }
299
- .wpmud .dev-box .box-title .button {
300
- font-weight: inherit;
301
- }
302
- .wpmud .dev-box .box-title .buttons-large {
303
- margin: 10px 0 0;
304
- }
305
- .wpmud .dev-box .box-title .buttons .spinner {
306
- margin-top: 10px;
307
- }
308
- .wpmud .dev-box .box-title .extra {
309
- float: right;
310
- }
311
- .wpmud .dev-box .box-title .extra-text {
312
- margin: 20px 0 0;
313
- }
314
- .wpmud .dev-box .box-title .extra-label {
315
- display: inline-block;
316
- margin: 0;
317
- line-height: 20px;
318
- }
319
- .wpmud .dev-box .box-title .extra-label-value {
320
- color: #477B92;
321
- font-weight: 400;
322
- text-transform: uppercase;
323
- }
324
- .wpmud .dev-box .box-title .wphb-select-group {
325
- margin: 10px 0 0;
326
- }
327
- .wpmud .dev-box .box-title .test-results {
328
- float: right;
329
- margin-top: 15px;
330
- }
331
- .wpmud .dev-box .box-title .test-results-label {
332
- display: block;
333
- float: left;
334
- font-family: 'Roboto Condensed', 'Roboto', Arial, sans-serif;
335
- font-weight: 700;
336
- line-height: 30px;
337
- margin-right: 10px;
338
- text-transform: uppercase;
339
- }
340
- .wpmud .dev-box .box-title .test-results .wphb-score {
341
- display: block;
342
- float: left;
343
- }
344
- .wpmud .dev-box .box-title .toggle-group {
345
- margin: 6px 15px 0 0;
346
- }
347
- .wpmud .dev-box .box-content {
348
- padding: 30px;
349
- word-wrap: break-word;
350
- }
351
- .wpmud .dev-box .box-content > * {
352
- margin-bottom: 20px;
353
- }
354
- .wpmud .dev-box .box-content > *:last-child {
355
- margin-bottom: 0;
356
- }
357
- .wpmud .dev-box .box-content .row-space-large {
358
- margin-bottom: 40px;
359
- }
360
- .wpmud .box-content.no-padding {
361
- padding: 0;
362
- }
363
- .wpmud .box-content.no-vertical-padding {
364
- padding-top: 0;
365
- padding-bottom: 0;
366
- }
367
- .wpmud .wphb-modal .no-side-padding,
368
- .wpmud .box-content.no-side-padding {
369
- padding-right: 0;
370
- padding-left: 0;
371
- }
372
- .wpmud .box-content .with-padding {
373
- padding: 30px;
374
- }
375
- .wpmud .box-content .add-side-padding {
376
- padding-right: 30px;
377
- padding-left: 30px;
378
- }
379
- .wpmud .box-content .buttons.buttons-on-left {
380
- text-align: left;
381
- }
382
- .wpmud .box-content .buttons.buttons-on-right {
383
- text-align: right;
384
- }
385
- .wpmud .box-footer {
386
- margin-top: 0;
387
- padding: 30px;
388
- border-top: 1px solid #EAEAEA;
389
- }
390
- .wpmud .select-list-container {
391
- min-width: 100px;
392
- }
393
- .wpmud .select-list-container .list-value {
394
- color: #333333;
395
- font-weight: 400;
396
- padding: 6px 8px 6px 15px;
397
- }
398
- .wpmud .list-table > tbody > tr:last-child > td {
399
- border-bottom: 1px solid #eee;
400
- }
401
- .wpmud .list-table > thead > tr > th {
402
- text-transform: none;
403
- font-size: 13px;
404
- font-weight: bold;
405
- }
406
- .wpmud .wphb-border-frame .table-header,
407
- .wpmud .wphb-border-frame .table-row {
408
- display: flex;
409
- justify-content: space-between;
410
- padding: 15px 80px 15px 30px;
411
- }
412
- .wpmud .wphb-border-frame .table-header {
413
- color: #333333;
414
- font-size: 13px;
415
- font-weight: bold;
416
- border-bottom: 1px solid #E6E6E6;
417
- }
418
- .wpmud .wphb-border-frame .table-row {
419
- border-bottom: 1px solid #E6E6E6;
420
- }
421
- .wpmud .wphb-border-frame .table-row:last-child {
422
- border-bottom: 0;
423
- }
424
- .wpmud .wphb-border-frame .list-table > thead > tr > th {
425
- color: #333333;
426
- font-size: 13px;
427
- padding: 8px 0;
428
- }
429
- .wpmud .wphb-border-frame .list-table > thead > tr > th:first-child {
430
- padding: 27px 30px;
431
- }
432
- .wpmud .wphb-border-frame .list-table > tbody > tr > td:first-child {
433
- padding-left: 30px;
434
- }
435
- .wpmud .list-table > tbody > tr > td {
436
- padding: 12px 10px;
437
- }
438
- .wpmud .list-table .radio-group.with-icon {
439
- display: inline-table;
440
- }
441
- .wpmud .list-table .radio-group.with-icon .dev-icon {
442
- vertical-align: middle;
443
- }
444
- /* Settings forms */
445
- .wpmud .settings-form span.sub {
446
- display: block;
447
- font-size: 13px;
448
- color: #888;
449
- line-height: 22px;
450
- margin: 10px 0 0;
451
- }
452
- .wpmud .wphb-dash-table-row span.sub {
453
- margin: 0;
454
- }
455
- .wpmud .settings-form .col-two-third > label {
456
- display: inline-block;
457
- padding: 2px 10px 0;
458
- color: #333;
459
- line-height: 30px;
460
- margin: 0;
461
- }
462
- .wpmud .settings-form .wphb-border-frame label {
463
- margin-top: 25px;
464
- padding: 0;
465
- color: #888888;
466
- font-size: 13px;
467
- }
468
- .wpmud .settings-form .wphb-border-frame small {
469
- display: block;
470
- font-size: 13px;
471
- color: #888;
472
- line-height: 22px;
473
- }
474
- .wpmud .dev-list {
475
- margin: -30px 0 20px;
476
- }
477
- .wpmud .dev-list .content {
478
- padding: 30px 0;
479
- border-bottom: 1px solid #EEEEEE;
480
- }
481
- .wpmud .dev-list > li.list-header {
482
- text-transform: none;
483
- color: #333333;
484
- font-size: 13px;
485
- }
486
- .wpmud .dev-list .list-header .list-label {
487
- font-weight: bold;
488
- }
489
- .wpmud .dev-list > li .list-label {
490
- font-size: 13px;
491
- font-weight: 500;
492
- line-height: 21px;
493
- padding: 15px 10px 15px 0
494
- }
495
- .wpmud .dev-list > li .list-data {
496
- border-bottom: 1px solid #EEE;
497
- cursor: default;
498
- display: table-cell;
499
- padding: 10px;
500
- vertical-align: middle;
501
- }
502
- .wpmud .dev-list > li:last-child .list-label,
503
- .wpmud .dev-list > li:last-child .list-detail {
504
- border-bottom: 1px solid #eee;
505
- }
506
- .wpmud .box-dashboard-welcome .dev-list > li:last-child .list-label,
507
- .wpmud .box-dashboard-welcome .dev-list > li:last-child .list-detail,
508
- .wpmud .box-performance-welcome .dev-list > li:last-child .list-label,
509
- .wpmud .box-performance-welcome .dev-list > li:last-child .list-detail,
510
- .wpmud .box-minification-summary-meta-box .dev-list > li:last-child .list-label,
511
- .wpmud .box-minification-summary-meta-box .dev-list > li:last-child .list-detail,
512
- .wpmud .box-uptime-summary .dev-list > li:last-child .list-label,
513
- .wpmud .box-uptime-summary .dev-list > li:last-child .list-detail {
514
- border-bottom: 1px solid transparent;
515
- }
516
-
517
- .wpmud .dev-list > li:last-child .list-data {
518
- border-bottom: 1px solid transparent;
519
- }
520
- .wpmud .dev-list > li .list-detail .wphb-dash-numbers {
521
- font-family: 'Roboto Condensed', sans-serif;
522
- font-size: 18px;
523
- color: #666666;
524
- line-height: 30px;
525
- text-align: right;
526
- font-weight: 400;
527
- /*text-transform: uppercase;*/
528
- }
529
- .wpmud .dev-list-stats-border > li:first-child .list-label,
530
- .wpmud .dev-list-stats-border > li:first-child .list-data,
531
- .wpmud .dev-list-stats-border > li:first-child .list-detail {
532
- border-top: 1px solid #eee;
533
- }
534
- .wpmud .dev-list-stats-border > li:last-child .list-label,
535
- .wpmud .dev-list-stats-border > li:last-child .list-data,
536
- .wpmud .dev-list-stats-border > li:last-child .list-detail {
537
- border-bottom-color: #eee;
538
- }
539
- .wpmud .dev-list-stats > li .list-label-stats,
540
- .wpmud .dev-list-stats > li .list-detail-stats-heading {
541
- color: #333;
542
- font: 500 13px/30px 'Roboto', Arial, sans-serif;
543
- }
544
- .wpmud .dev-list-stats > li .list-detail-stats-heading {
545
- font-weight: 400;
546
- font-size: 18px;
547
- color: #666;
548
- }
549
- .wpmud .dev-list-stats > li .list-detail-stats-heading-extra-info {
550
- color: #BABABA;
551
- display: block;
552
- font: 500 12px/16px 'Roboto', Arial, sans-serif;
553
- margin-top: 5px;
554
- }
555
- .wpmud .dev-list-stats.standalone {
556
- margin: 0;
557
- }
558
- .wpmud .dev-list-stats.small > li .list-label-stats,
559
- .wpmud .dev-list-stats.small > li .list-detail-stats-heading {
560
- line-height: 26px;
561
- }
562
- .wpmud .dev-list-stats > li .list-detail-stats-heading.small {
563
- font-size: 26px;
564
- }
565
- .wpmud .dev-list-stats .wphb-pills-group {
566
- font-size: 0;
567
- line-height: 1em;
568
- }
569
- .wpmud .dev-list-stats > li .list-label-stats-date {
570
- margin-right: 30px;
571
- }
572
- .wpmud .dev-list-stats .buttons,
573
- .wpmud .box-content .buttons {
574
- margin-top: 30px;
575
- }
576
- .wpmud .list-label-link {
577
- color: #19B4CF;
578
- }
579
- .wpmud input[type="checkbox"] {
580
- border-radius: 4px;
581
- border: 1px solid #E6E6E6;
582
- background-color: #F8F8F8;
583
- }
584
- .wpmud [tooltip]:after {
585
- font: 500 12px/18px 'Roboto';
586
- padding: 8px 12px;
587
- background: #333333;
588
- min-width: 50px;
589
- max-width: 250px;
590
- transition: all 0.2s ease;
591
- text-transform: none;
592
- }
593
-
594
- .wpmud .tooltip-box { overflow: hidden; }
595
- .wpmud .tooltip-box:hover { overflow: visible; }
596
- .wpmud .radio-group input[type="radio"] + label > [tooltip] {
597
- position: absolute;
598
- left: 0;
599
- top: 0;
600
- bottom: 0;
601
- right: 0;
602
- z-index: 9;
603
- }
604
-
605
- .wpmud .wphb-dashboard-caching-cloudflare-box p {
606
- margin-top:30px;
607
- margin-bottom:20px;
608
- }
609
-
610
- .wpmud #wphb-box-dashboard-cloudflare .cloudflare-step form label {
611
- text-align: left;
612
- font-weight: 400;
613
- padding-left:0;
614
- padding-right:0;
615
- }
616
-
617
- .wpmud .cloudflare-step {
618
- margin-top: 30px;
619
- }
620
-
621
- .wpmud .cloudflare-step form label input {
622
- margin-top: 5px;
623
- background-color: #F8F8F8;
624
- }
625
-
626
- .wpmud .cloudflare-step form label input::-webkit-input-placeholder {color: #AAAAAA;}
627
- .wpmud .cloudflare-step form label input::-moz-placeholder {color: #AAAAAA;}/* Firefox 19+ */
628
- .wpmud .cloudflare-step form label input:-moz-placeholder {color: #AAAAAA;}/* Firefox 18- */
629
- .wpmud .cloudflare-step form label input:-ms-input-placeholder {color: #AAAAAA;}
630
-
631
- .wpmud .cloudflare-step > p:first-child {
632
- text-align:left;
633
- }
634
-
635
- .wpmud .cloudflare-spinner {
636
- display: inline-block;
637
- float:none;
638
- }
639
- .wpmud .cloudflare-step p.cloudflare-submit,
640
- .wpmud #cloudflare-how-to-title {
641
- position:relative;
642
- margin-top:11px;
643
- }
644
-
645
- .wpmud .cloudflare-step p.cloudflare-submit input[type="submit"] {
646
- display: inline-block;
647
- margin-top:0;
648
- }
649
-
650
- .wpmud #cloudflare-how-to {
651
- clear: both;
652
- margin-left: 0;
653
- margin-bottom: 0;
654
- list-style-position: inside;
655
- }
656
-
657
- .wpmud .cloudflare-step > p {
658
- margin-bottom:30px;
659
- }
660
- .wpmud .cloudflare-step p.cloudflare-submit {
661
- float:right;
662
- }
663
- .wpmud .cloudflare-step p.cloudflare-clear-cache {
664
- float:left;
665
- margin-bottom:0;
666
- margin-top: -10px;
667
- }
668
- .wpmud .cloudflare-step hr {
669
- margin-top:20px;
670
- margin-bottom:20px;
671
- }
672
- .wpmud .cloudflare-step p.cloudflare-clear-cache-text {
673
- text-align:left;
674
- }
675
- .wpmud #cloudflare-how-to-title {
676
- float: left;
677
- line-height: 15px;
678
- padding-top: 7px;
679
- font-size: 13px;
680
- }
681
-
682
- .wpmud .cloudflare-step .cloudflare-data {
683
- text-align:left;
684
- margin-top:30px;
685
- margin-bottom:0;
686
- }
687
-
688
- .wpmud .cloudflare-data > span {
689
- display:inline-block;
690
- margin-right:20px;
691
- }
692
-
693
- .wpmud .cloudflare-clear-cache .button {
694
- margin-top: 0 !important;
695
- }
696
-
697
- /* Buttons */
698
- .wpmud .wphb-modal button:not(.wph-button):not(#collapse-button),
699
- .wpmud .wphb-modal .button:hover:not(:focus):not(:active):not(.wph-button):not(#collapse-button):not([tooltip]) {
700
- background: #17A8E3;
701
- }
702
- .wpmud .wrap-wp-hummingbird .wpdui-btn,
703
- .wpmud .wphb-modal .button:not(.notice-dismiss),
704
- .wpmud .wrap-wp-hummingbird button:not(.notice-dismiss),
705
- .wpmud .wrap-wp-hummingbird .button,
706
- .wpmud .wrap-wp-hummingbird button:not(.wph-button):not(#collapse-button):not(.notice-dismiss) {
707
- font: 500 12px/16px 'Roboto' !important;
708
- padding: 7px 16px;
709
- height: 30px;
710
- background-color: #17A8E3;
711
- color: #FFFFFF;
712
- border-radius: 3px;
713
- -moz-border-radius: 3px;
714
- transition: all .3s ease;
715
- -webkit-transition: all .3s ease;
716
- text-shadow: none !important;
717
- }
718
- .wpmud .wrap-wp-hummingbird button:hover:not(:focus):not(:active):not(.wph-button):not(#collapse-button):not([tooltip]):not(.notice-dismiss),
719
- .wpmud .wrap-wp-hummingbird .button:hover:not(:focus):not(:active):not(.wph-button):not(#collapse-button):not([tooltip]),
720
- .wpmud .wphb-modal .button:hover:not(:focus):not(:active):not(.wph-button):not(#collapse-button):not([tooltip]),
721
- .wpmud .wrap-wp-hummingbird button:active,
722
- .wpmud .wrap-wp-hummingbird button:focus,
723
- .wpmud .wrap-wp-hummingbird .button:active,
724
- .wpmud .wrap-wp-hummingbird .button:focus,
725
- .wpmud .wphb-modal .button:focus,
726
- .wpmud .wphb-modal .button:active {
727
- background: #0A9BD6;
728
- }
729
- .wpmud .wrap-wp-hummingbird .button-disabled {
730
- border-radius: 15px;
731
- background-color: #F8F8F8;
732
- color: #C0C0C0;
733
- }
734
- .wpmud .wphb-modal .button.button-large,
735
- .wpmud .wrap-wp-hummingbird .wpdui-btn--full,
736
- .wpmud .wrap-wp-hummingbird button.button-large:not(.wph-button):not(#collapse-button),
737
- .wpmud .wrap-wp-hummingbird button.button-large,
738
- .wpmud .wrap-wp-hummingbird .button.button-large {
739
- font: 500 15px/20px 'Roboto' !important;
740
- height: 40px !important;
741
- padding: 11px 20px 9px;
742
- }
743
-
744
- .wpmud .wrap-wp-hummingbird button.button-ghost:not(.wph-button):not(#collapse-button),
745
- .wpmud .wrap-wp-hummingbird .button-ghost,
746
- .wpmud .wphb-modal .button-ghost {
747
- padding: 5px 16px 7px !important;
748
- background-color: transparent !important;
749
- border: 2px solid #DDDDDD;
750
- color: #888888 !important;
751
- }
752
- .wpmud .wrap-wp-hummingbird button.button-ghost:hover:not(.wph-button):not(#collapse-button),
753
- .wpmud .wrap-wp-hummingbird .button-ghost:hover:not(:focus):not(:active),
754
- .wpmud .wphb-modal .button-ghost:hover:not(:focus):not(:active),
755
- .wpmud .wrap-wp-hummingbird .button-ghost:active,
756
- .wpmud .wrap-wp-hummingbird .button-ghost:hover:enabled,
757
- .wpmud .wrap-wp-hummingbird .button-ghost:focus,
758
- .wpmud .wphb-modal .button-ghost:active,
759
- .wpmud .wphb-modal .button-ghost:hover:enabled,
760
- .wpmud .wphb-modal .button-ghost:focus,
761
- .wpmud .wrap-wp-hummingbird .button-grey {
762
- background-color: #7B7B7B !important;
763
- border-color: #7B7B7B;
764
- color: #FFFFFF !important;
765
- }
766
- .wpmud .wrap-wp-hummingbird button.button-ghost.button-large:not(.wph-button):not(#collapse-button),
767
- .wpmud .wrap-wp-hummingbird .button-ghost.button-large,
768
- .wpmud .wphb-modal .button-ghost.button-large {
769
- padding: 9px 20px 9px !important;
770
- }
771
-
772
- .wpmud .wphb-modal .button-content-cta {
773
- box-shadow: none;
774
- background-color: #1ABC9C !important;
775
- color: #FFFFFF;
776
- }
777
- .wpmud .wrap-wp-hummingbird .button-content-cta {
778
- box-shadow: none;
779
- background-color: #1ABC9C;
780
- color: #FFFFFF;
781
- }
782
-
783
- .wpmud .wrap-wp-hummingbird .button-content-cta:hover:not(:focus):not(:active),
784
- .wpmud .wphb-modal .button-content-cta:hover:not(:focus):not(:active),
785
- .wpmud .wrap-wp-hummingbird .button-content-cta:active,
786
- .wpmud .wrap-wp-hummingbird .button-content-cta:focus,
787
- .wpmud .wphb-modal .button-content-cta:active,
788
- .wpmud .wphb-modal .button-content-cta:focus {
789
- background: #0DAF8F !important;
790
- border-color: #0DAF8F;
791
- }
792
-
793
- .wpmud .wrap-wp-hummingbird .button-content-cta.button-ghost {
794
- background: transparent;
795
- color: #1ABC9C !important;
796
- border-color: #1ABC9C;
797
- border-radius: 20px;
798
- }
799
- .wpmud .wrap-wp-hummingbird .button-content-cta.button-ghost:active {
800
- color: #FFFFFF !important;
801
- border-color: #0DAF8F;
802
- }
803
-
804
-
805
- .wpmud .wrap-wp-hummingbird .button-notice {
806
- background-color: #E6E6E6 !important;
807
- color: #AAAAAA !important;
808
- }
809
- .wpmud .wrap-wp-hummingbird .button-notice:hover:not(:focus):not(:active):not(.wph-button):not(#collapse-button):not([tooltip]),
810
- .wpmud .wrap-wp-hummingbird .button-notice:hover:not(:focus):not(:active),
811
- .wpmud .wrap-wp-hummingbird .button-notice:active,
812
- .wpmud .wrap-wp-hummingbird .button-notice:focus {
813
- background-color: #888888 !important;
814
- color: #FFFFFF !important;
815
- }
816
-
817
- .wrap-wp-hummingbird .button-load-more {
818
- background-color: transparent;
819
- border: 1px solid #ddd;
820
- border-radius: 50%;
821
- color: #bababa;
822
- font-family: 'Roboto Condensed', 'Roboto', Arial, sans-serif;
823
- font-size: 13px;
824
- font-weight: 700;
825
- line-height: 18px;
826
- height: 140px;
827
- padding: 0;
828
- transition: color .4s, background-color .4s;
829
- width: 140px;
830
- }
831
- .wrap-wp-hummingbird .button-load-more:hover:not(:focus):not(:active) {
832
- background-color: #fafafa;
833
- border-color: #ddd;
834
- color: #777771;
835
- }
836
- .wrap-wp-hummingbird .button-load-more:active,
837
- .wrap-wp-hummingbird .button-load-more:focus {
838
- background: #777771;
839
- }
840
-
841
- /* Button Labels */
842
- .wpmud .wphb-button-label {
843
- border: 1px solid transparent;
844
- border-radius: 15px;
845
- color: #fff;
846
- font: 500 12px/26px 'Roboto';
847
- display: inline-block;
848
- height: 26px;
849
- margin: 0;
850
- padding: 0 12px;
851
- text-decoration: none;
852
- text-shadow: none;
853
- text-transform: none;
854
- white-space: nowrap;
855
- }
856
- .wpmud .wphb-button-label-red {
857
- background: #fd6e70;
858
- }
859
- .wpmud .wphb-button-label-yellow {
860
- background: #FFD000;
861
- color: #333333;
862
- }
863
- .wpmud .wphb-button-label-green {
864
- background: #1ABC9C;
865
- }
866
- .wpmud .wphb-button-label-light {
867
- color: #333333;
868
- background-color: #F2F2F2;
869
- }
870
-
871
- /* Labels */
872
- .wpmud .wrap-wp-hummingbird .wphb-label {
873
- color: #fff;
874
- display: block;
875
- font: 500 15px/20px 'Roboto';
876
- text-shadow: none;
877
- white-space: nowrap;
878
- }
879
- .wpmud .wrap-wp-hummingbird .wphb-label-notice {
880
- background: #14485F;
881
- border-radius: 3px;
882
- padding: 5px 10px;
883
- }
884
- .wpmud .wrap-wp-hummingbird .wphb-label-notice-warning {
885
- background: #FECF2F;
886
- color: #4E4B10;
887
- }
888
- .wpmud .wrap-wp-hummingbird .wphb-label-notice-inline {
889
- display: inline-block;
890
- font-size: 13px;
891
- color: #888888;
892
- }
893
- .wpmud .wrap-wp-hummingbird .wphb-label-disabled {
894
- background: #F2F2F2;
895
- border-radius: 20px;
896
- color: #C0C0C0;
897
- display: inline-block;
898
- font: 500 12px/20px 'Roboto', Arial, sans-serif;
899
- min-width: 120px;
900
- padding: 5px;
901
- text-align: center;
902
- text-transform: uppercase;
903
- }
904
-
905
- /* Icons */
906
- @font-face {
907
- font-family: 'hummingbird';
908
- src: url('../fonts/hummingbird.eot?77aj42');
909
- src: url('../fonts/hummingbird.eot?77aj42#iefix') format('embedded-opentype'),
910
- url('../fonts/hummingbird.ttf?77aj42') format('truetype'),
911
- url('../fonts/hummingbird.woff?77aj42') format('woff'),
912
- url('../fonts/hummingbird.svg?77aj42#hummingbird') format('svg');
913
- font-weight: normal;
914
- font-style: normal;
915
- }
916
-
917
- .wpmud [class^="hb-"], .wpmud [class*=" hb-"] {
918
- font-family: 'hummingbird', sans-serif !important;
919
- speak: none;
920
- font-style: normal;
921
- font-weight: normal;
922
- font-variant: normal;
923
- text-transform: none;
924
- line-height: 1;
925
- -webkit-font-smoothing: antialiased;
926
- -moz-osx-font-smoothing: grayscale;
927
- font-size: 15px;
928
- }
929
-
930
- .wpmud .hb-icon-audit:before { content: "\e900"; }
931
- .wpmud .hb-wpmudev-icon-cross:before { content: "\e901"; }
932
- .wpmud .hb-wpmudev-icon-info:before { content: "\e902"; }
933
- .wpmud .hb-wpmudev-icon-tick:before { content: "\e903"; }
934
- .wpmud .hb-wpmudev-icon-warning:before { content: "\e904"; }
935
- .wpmud .hb-wpmudev-icon-eye:before { content: "\e911"; }
936
- .wpmud .hb-wpmudev-icon-wrench-tool:before { content: "\e912"; }
937
- .wpmud .hb-wpmudev-icon-profile-male:before { content: "\e913"; }
938
- .wpmud .hb-wpmudev-icon-page:before { content: "\e914"; }
939
- .wpmud .hb-wpmudev-icon-academy:before { content: "\e915"; }
940
- .wpmud .hb-icon-cache:before { content: "\e905"; }
941
- .wpmud .hb-icon-cloudflare:before { content: "\e906"; }
942
- .wpmud .hb-icon-gzip:before { content: "\e907"; }
943
- .wpmud .hb-icon-minify-combine:before { content: "\e908"; }
944
- .wpmud .hb-icon-minify-defer:before { content: "\e909"; }
945
- .wpmud .hb-icon-minify-inline:before { content: "\e910"; }
946
- .wpmud .hb-icon-minify-footer:before { content: "\e90a"; }
947
- .wpmud .hb-icon-minify:before { content: "\e90b"; }
948
- .wpmud .hb-icon-performancetest:before { content: "\e90c"; }
949
- .wpmud .hb-icon-reports:before { content: "\e90d"; }
950
- .wpmud .hb-icon-restore:before { content: "\e90e"; }
951
- .wpmud .hb-icon-smush:before { content: "\e90f"; }
952
-
953
- .wpmud .wphb-icon {
954
- position: relative;
955
- }
956
- .wpmud .wphb-icon-left {
957
- display: block;
958
- float: left;
959
- }
960
- .wpmud .wphb-dash-icon {
961
- font-size: 12px;
962
- padding-right: 2px;
963
- }
964
- .wpmud .cf-dismiss {
965
- display: block;
966
- margin-top: 6px;
967
- }
968
- .wpmud .wphb-cf-notice .cf-dismiss a {
969
- text-transform: uppercase;
970
- text-decoration: none;
971
- color: #888888;
972
- }
973
-
974
-
975
- /* ****************************************************************************
976
- * 2. COMMON/GENERAL STYLES
977
- */
978
- .wpmud .footer-love {
979
- text-align: center;
980
- margin-top: 50px;
981
- color: #C0C0C0;
982
- font-size: 13px;
983
- }
984
- .wpmud .footer-love > .dashicons-heart {
985
- font-size: 14px;
986
- line-height: 22px;
987
- }
988
- /* Tables */
989
- .wpmud .wphb-table-wrapper.complex {
990
- min-height: .01%;
991
- overflow-x: auto;
992
- border-bottom: 1px solid #eee;
993
- }
994
- .wpmud .wphb-table {
995
- font-weight: 400;
996
- max-width: 100%;
997
- width: 100%;
998
- color: #333333;
999
- }
1000
- .wpmud .wphb-border-frame {
1001
- border: 1px solid #E6E6E6;
1002
- border-radius: 5px;
1003
- margin: 10px 0 0 !important;
1004
- }
1005
- .wpmud .list-table.wphb-table tr:hover .wphb-table-td-has-tooltip {
1006
- z-index: 3;
1007
- }
1008
- .box-dashboard-welcome .box-content,
1009
- .box-performance-welcome .box-content,
1010
- .box-minification-summary-meta-box .box-content,
1011
- .box-uptime-summary .box-content {
1012
- padding: 30px 30px 10px !important;
1013
- }
1014
-
1015
- .box-dashboard-welcome .wphb-block-entry,
1016
- .box-performance-welcome .wphb-block-entry,
1017
- .box-minification-summary-meta-box .wphb-block-entry,
1018
- .box-uptime-summary .wphb-block-entry {
1019
- width: 100%;
1020
- min-height: 172px;
1021
- }
1022
-
1023
- /* Images */
1024
- .wpmud section[class^="box-dashboard-"] .box-title:before {
1025
- font-family: 'hummingbird', sans-serif;
1026
- color: #333333;
1027
- float: left;
1028
- font-size: 20px;
1029
- margin: 18px 10px 18px 0;
1030
- }
1031
- .wpmud section[class^="box-dashboard-performance"] .box-title:before { content: '\e90c'; }
1032
- .wpmud section[class^="box-dashboard-minification"] .box-title:before { content: '\e90b'; }
1033
- .wpmud section[class^="box-dashboard-browser"] .box-title:before { content: '\e905'; }
1034
- .wpmud section[class^="box-dashboard-gzip"] .box-title:before { content: '\e907'; }
1035
- .wpmud section[class^="box-dashboard-uptime"] .box-title:before { content: '\e900'; }
1036
- .wpmud section[class^="box-dashboard-smush"] .box-title:before { content: '\e90f'; }
1037
- .wpmud section[class^="box-dashboard-cloudflare"] .box-title:before { content: '\e906'; }
1038
- .wpmud section[class^="box-dashboard-reports"] .box-title:before { content: '\e90d'; }
1039
- .wpmud section[class^="box-dashboard-caching-gravatar"] .box-title:before { content: '\e913'; }
1040
- .wpmud section[class^="box-dashboard-caching-page"] .box-title:before { content: '\e914'; }
1041
-
1042
- .wpmud .wphb-image,
1043
- .wpmud .wphb-image-icon-content {
1044
- display: block;
1045
- height: auto;
1046
- max-width: 100%;
1047
- }
1048
- .wpmud .wphb-image-center,
1049
- .wpmud .wphb-image-icon-content-center {
1050
- margin-right: auto;
1051
- margin-left: auto;
1052
- }
1053
- .wpmud .wphb-image-icon-content-top {
1054
- margin-bottom: 30px;
1055
- }
1056
-
1057
- /* Lists */
1058
- .wpmud .wphb-listing {
1059
- margin: 0;
1060
- }
1061
- .wpmud .wphb-listing li {
1062
- font-family: 'Roboto', Arial, sans-serif;
1063
- font-size: 15px;
1064
- font-weight: 400;
1065
- line-height: 21px;
1066
- margin-top: 10px;
1067
- margin-bottom: 0;
1068
- }
1069
- .wpmud .wphb-listing li:first-child {
1070
- margin-top: 0;
1071
- }
1072
- .wpmud .wphb-listing.bold li {
1073
- font-weight: 500;
1074
- }
1075
- .wpmud .wphb-listing-ordered {
1076
- padding-left: 20px;
1077
- }
1078
- .wpmud .wphb-listing li strong {
1079
- font-weight: 500;
1080
- }
1081
- .wpmud .wphb-listing li:before {
1082
- color: #17A8E3;
1083
- top: 0;
1084
- }
1085
- .wpmud .wphb-listing li p {
1086
- font-size: 13px;
1087
- line-height: 22px;
1088
- margin-top: 5px;
1089
- }
1090
-
1091
- /* Forms */
1092
- .wpmud .wphb-select-group {
1093
- clear: both;
1094
- }
1095
- .wpmud .wphb-select-group:after {
1096
- content: '';
1097
- display: table;
1098
- clear: both;
1099
- }
1100
- .wpmud .wphb-select-group > label,
1101
- .wpmud .wphb-select-group > div {
1102
- float: left;
1103
- display: block;
1104
- }
1105
- .wpmud .wphb-select-group > label {
1106
- line-height: 43px;
1107
- margin-right: 10px;
1108
- }
1109
- .wpmud .select-container {
1110
- overflow: hidden;
1111
- }
1112
- .wpmud .select-container.active {
1113
- overflow: visible;
1114
- }
1115
- .wpmud .wphb-select-group .spinner {
1116
- margin: 11px;
1117
- }
1118
-
1119
- /* Notices */
1120
- .wpmud .wrap-wp-hummingbird .notice {
1121
- margin: 15px 0 0;
1122
- }
1123
- .wpmud .wrap-wp-hummingbird > .wphb-notice:not(.notice) {
1124
- width: 600px;
1125
- box-shadow: 0 5px 25px 0 rgba(0,0,0,0.15);
1126
- border-radius: 0 0 5px 5px;
1127
- padding: 10px 30px;
1128
- position: absolute !important;
1129
- z-index: 100;
1130
- left: 50%;
1131
- margin-left: -300px;
1132
- top: 0;
1133
- }
1134
- .wpmud .wphb-notice:not(.notice) {
1135
- /*background: #fff;*/
1136
- border-radius: 5px;
1137
- color: #333;
1138
- font-family: 'Roboto', Arial, sans-serif;
1139
- font-size: 15px;
1140
- font-weight: 400;
1141
- line-height: 18px;
1142
- padding: 15px 30px;
1143
- position: relative;
1144
- width: 100%;
1145
- }
1146
- .wpmud .wphb-notice.notice p {
1147
- font-size: 14px;
1148
- line-height: 1.5;
1149
- margin: 10px 0;
1150
- }
1151
- .wpmud .wphb-notice p,
1152
- .wpmud .wphb-notice p a {
1153
- color: #333333;
1154
- font-weight: 400;
1155
- }
1156
- .wpmud .wphb-notice:not(.notice) p,
1157
- .wpmud .wphb-notice:not(.notice) span,
1158
- .wpmud .wphb-notice ul,
1159
- .wpmud .wphb-notice strong {
1160
- margin: 0 0 10px -30px;
1161
- padding: 0 0 0 30px;
1162
- }
1163
- .wpmud .wphb-notice:not(.notice) p:last-of-type {
1164
- margin: 0;
1165
- }
1166
- .wpmud .wphb-notice:not(.notice) .buttons {
1167
- margin: 10px 30px 0;
1168
- }
1169
- .wpmud .wphb-notice p a {
1170
- font-weight: 500;
1171
- }
1172
- .wpmud .wphb-notice p a:hover {
1173
- color: #333;
1174
- }
1175
- .wpmud .wphb-notice .wphb-icon,
1176
- .wpmud .wphb-notice .wphb-icon .wdv-icon {
1177
- font-size: 22px;
1178
- height: 22px;
1179
- line-height: 22px;
1180
- width: 22px;
1181
- }
1182
- .wpmud .wphb-notice.can-close .close {
1183
- cursor: pointer;
1184
- display: block;
1185
- height: 15px;
1186
- width: 15px;
1187
- line-height: 15px;
1188
- margin: 0;
1189
- position: absolute;
1190
- text-shadow: none;
1191
- right: 10px;
1192
- top: 15px;
1193
- }
1194
- .wpmud .wphb-notice.can-close .close:after {
1195
- bottom: 0;
1196
- color: #333;
1197
- content: "\79";
1198
- font-style: normal;
1199
- font-weight: normal;
1200
- font-variant: normal;
1201
- font-family: 'WPMU-DEV-App-Icons', sans-serif;
1202
- font-size: 15px;
1203
- -webkit-font-smoothing: antialiased;
1204
- -moz-osx-font-smoothing: grayscale;
1205
- left: 0;
1206
- line-height: 15px;
1207
- opacity: 0.8;
1208
- position: absolute;
1209
- right: 0;
1210
- speak: none;
1211
- text-align: center;
1212
- text-transform: none;
1213
- top: 0;
1214
- transition: opacity 0.3s;
1215
- }
1216
- .wpmud .wphb-notice.can-close .close:hover:after {
1217
- opacity: 1;
1218
- }
1219
- .wpmud .wphb-block-entry-third span.status-ok:before,
1220
- .wpmud span.dash-cloudflare-connected-status:before,
1221
- .wpmud .wphb-notice-error.can-close p:before,
1222
- .wpmud .wphb-notice-success.can-close p:before,
1223
- .wpmud .wphb-notice-success p:first-child:before,
1224
- .wpmud .wphb-notice-error p:first-child:before,
1225
- .wpmud .wphb-notice-warning p:first-child:before,
1226
- .wpmud .wphb-notice-blue p:first-child:before,
1227
- .wpmud .wphb-notice-blue p:first-child:before,
1228
- .wpmud .wphb-notice-blue-info p:first-child:before {
1229
- font-family: 'hummingbird', sans-serif;
1230
- font-size: 20px;
1231
- vertical-align: middle;
1232
- line-height: 20px;
1233
- top: -2px;
1234
- position: relative;
1235
- margin-left: -30px;
1236
- margin-right: 10px;
1237
- }
1238
- .wpmud .documentation-button:before {
1239
- content: '\e915';
1240
- color: #888888;
1241
- font-family: 'hummingbird', sans-serif;
1242
- font-size: 12px;
1243
- vertical-align: middle;
1244
- line-height: 16px;
1245
- top: -2px;
1246
- position: relative;
1247
- margin-right: 5px;
1248
- }
1249
- .wpmud .documentation-button:hover:before {
1250
- color: #FFFFFF;
1251
- }
1252
- .wpmud .documentation-button:focus:before {
1253
- color: #FFFFFF;
1254
- }
1255
- .wpmud .wphb-notice-error.can-close p:before,
1256
- .wpmud .wphb-notice-success.can-close p:before {
1257
- margin-right: 20px;
1258
- }
1259
- .wpmud span.dash-cloudflare-connected-status:before {
1260
- color: #17A8E3;
1261
- content: '\e903';
1262
- font-size: 16px;
1263
- margin-right: 8px;
1264
- }
1265
-
1266
- .wpmud .wphb-notice-success {
1267
- background-color: #D1F1EA;
1268
- }
1269
- .wpmud .wphb-notice-error {
1270
- background-color: #FFE5E9;
1271
- }
1272
- .wpmud .wphb-notice-warning {
1273
- background-color: #FFF5D5;
1274
- color: #333333;
1275
- }
1276
- .wpmud .wphb-notice-blue,
1277
- .wpmud .wphb-notice-blue-info {
1278
- background-color: #E1F6FF;
1279
- margin-top: 30px;
1280
- }
1281
- .wpmud .cloudflare-step .wphb-notice-blue {
1282
- margin-top: 0;
1283
- }
1284
- .wpmud .wphb-block-entry-third span.status-ok:before,
1285
- .wpmud .wphb-notice-success p:before {
1286
- content: '\e903';
1287
- color: #1ABC9C;
1288
- }
1289
- .wpmud .wphb-block-entry-third span.status-ok:before {
1290
- margin-right: 0;
1291
- line-height: 20px;
1292
- }
1293
- .wpmud .wphb-notice-error p:before {
1294
- content: '\e904';
1295
- color: #FF7F83;
1296
- }
1297
- .wpmud .wphb-notice-warning p:before {
1298
- content: '\e902';
1299
- color: #FECF2F;
1300
- font-size: 18px;
1301
- line-height: 18px;
1302
- }
1303
- .wpmud .wphb-notice-blue p:before {
1304
- content: '\e903';
1305
- color: #17A8E3;
1306
- }
1307
- .wpmud .wphb-notice-blue-info p:before {
1308
- content: '\e902';
1309
- color: #17A8E3;
1310
- }
1311
- .wpmud .dev-overlay .wphb-notice-warning p {
1312
- font-size: 14px;
1313
- line-height: 22px;
1314
- }
1315
- .wpmud .wphb-notice-warning p,
1316
- .wpmud .wphb-notice-warning p a,
1317
- .wpmud .wphb-notice-warning.can-close .close:after {
1318
- color: #333333;
1319
- }
1320
-
1321
- .wpmud .wphb-heading-status-green {
1322
- color: #1ABC9C;
1323
- }
1324
- .wpmud .wphb-heading-status {
1325
- font-family: 'Roboto Condensed', 'Roboto', sans-serif;
1326
- font-size: 30px;
1327
- margin-top: 0;
1328
- }
1329
-
1330
- /* Modals */
1331
- .wpmud .dev-overlay .title .close {
1332
- color: #888888;
1333
- font-size: 34px;
1334
- }
1335
- .wpmud .wphb-modal * {
1336
- -webkit-box-sizing: border-box;
1337
- box-sizing: border-box;
1338
- font-family: 'Roboto', sans-serif;
1339
- }
1340
- .wpmud .wphb-modal .wphb-dialog-content > * {
1341
- margin-bottom: 30px;
1342
- }
1343
- .wpmud .wphb-modal .wphb-dialog-content > *:last-child {
1344
- margin-bottom: 0;
1345
- }
1346
- .wpmud .wphb-modal .wphb-dialog-content .wphb-modal-image-bottom {
1347
- margin-bottom: -40px;
1348
- }
1349
- .wpmud .wphb-progress-modal .wphb-progress,
1350
- .wpmud .wphb-progress-modal .wphb-block-test {
1351
- max-width: 100%;
1352
- }
1353
- .wpmud .wphb-progress-modal .wphb-dialog-content p {
1354
- color: #666666;
1355
- }
1356
- .wpmud .wphb-progress-modal .wphb-notice-box p {
1357
- color: #333333;
1358
- font-size: 13px;
1359
- line-height: 22px;
1360
- }
1361
-
1362
- .wpmud .wphb-modal .wphb-dialog-content .button {
1363
- margin-bottom: 15px;
1364
- }
1365
- .wpmud .wphb-modal .wphb-dialog-content .button.standalone {
1366
- margin-bottom: 30px;
1367
- }
1368
- .wpmud .wphb-modal .wphb-progress-state {
1369
- margin-top: -20px;
1370
- }
1371
- .wpmud .wphb-modal .wphb-dialog-footer {
1372
- border-top: 1px solid #EAEAEA;
1373
- margin: 30px -30px;
1374
- padding: 30px 30px 0;
1375
- }
1376
- .wpmud .wphb-modal .alignleft,
1377
- .wpmud .wphb-modal .button {
1378
- margin-bottom: 0 !important;
1379
- }
1380
- /* CDN modal */
1381
- .wpmud .wphb-modal.wphb-quick-setup-modal .wphb-block-test,
1382
- .wpmud.hummingbird_page_wphb-minification .wphb-modal .wphb-block-test,
1383
- .wpmud.toplevel_page_wphb-minification .wphb-modal .wphb-block-test {
1384
- display: flex;
1385
- align-content: center;
1386
- align-items: center;
1387
- height: auto;
1388
- padding: 20px 30px;
1389
- margin-bottom: 30px;
1390
- }
1391
- .wpmud .wphb-modal.wphb-quick-setup-modal .wphb-block-test > p {
1392
- font-size: 13px;
1393
- line-height: 22px;
1394
- margin-right: 14px;
1395
- margin-bottom: 0;
1396
- }
1397
- .wpmud.hummingbird_page_wphb-minification .wphb-modal .wphb-block-test > label {
1398
- margin: 0;
1399
- }
1400
-
1401
- /* Box-footer with buttons */
1402
- .wpmud .box-footer .buttons.buttons-on-left {
1403
- text-align: left;
1404
- }
1405
- .wpmud .box-footer .buttons.buttons-on-right {
1406
- text-align: right;
1407
- }
1408
-
1409
- /* Toggles */
1410
- .wpmud .toggle .toggle-label {
1411
- text-align: left;
1412
- }
1413
- .wpmud .toggle .toggle-cross {
1414
- color: rgba(221,221,221,1);
1415
- }
1416
- .wpmud .toggle-group {
1417
- display: inline-block;
1418
- }
1419
- .wpmud .toggle .toggle-checkbox:checked:disabled + .toggle-label {
1420
- background: transparent;
1421
- }
1422
- .wpmud .toggle .toggle-checkbox:checked:disabled + .toggle-label:before {
1423
- bottom: 0;
1424
- left: 0;
1425
- right: 0;
1426
- top: 0;
1427
- }
1428
- .wpmud .toggle .toggle-checkbox:checked:disabled + .toggle-label:after {
1429
- margin-left: 1px;
1430
- }
1431
- .wpmud .toggle-item.bordered,
1432
- .wpmud .wphb-block-entry.bordered {
1433
- border-top: 1px solid #E6E6E6;
1434
- padding-top: 30px;
1435
- }
1436
- .wpmud .toggle-item.space-top,
1437
- .wpmud .wphb-block-entry.space-top {
1438
- margin: 30px 0 0;
1439
- }
1440
- .wpmud .toggle-item.space-top-small {
1441
- margin: 15px 0 0;
1442
- }
1443
- .wpmud .toggle-item label {
1444
- text-align: left;
1445
- }
1446
- .wpmud .toggle-item .toggle-item-group {
1447
- display: table;
1448
- width: 100%;
1449
- }
1450
- .wpmud .toggle-item .toggle-info,
1451
- .wpmud .toggle-item .toggle-actions {
1452
- display: table-cell;
1453
- }
1454
- .wpmud .toggle-item .toggle-item-title {
1455
- color: #555;
1456
- font: 400 15px/20px 'Roboto', Arial, sans-serif;
1457
- margin: 0;
1458
- }
1459
- .wpmud .toggle-item .toggle-item-description {
1460
- color: #888;
1461
- font: 400 13px/22px 'Roboto', Arial, sans-serif;
1462
- margin: 10px 0;
1463
- }
1464
- .wpmud .toggle-item .toggle-item-description:last-child {
1465
- margin-bottom: 0;
1466
- }
1467
- .wpmud .toggle-item .toggle-actions {
1468
- padding-left: 30px;
1469
- vertical-align: middle;
1470
- text-align: right;
1471
- }
1472
-
1473
- /* Checkbox groups */
1474
- .wpmud .checkbox-group {
1475
- border: 1px solid #DDD;
1476
- border-radius: 5px;
1477
- border-spacing: 0;
1478
- border-collapse: separate;
1479
- position: relative;
1480
- display: flex;
1481
- height: 52px;
1482
- }
1483
- /* We do not use display: none, because screen readers don't see the element */
1484
- .wpmud .checkbox-group input[type="checkbox"] {
1485
- border: 0;
1486
- clip: rect(0 0 0 0);
1487
- height: 1px;
1488
- margin: -1px;
1489
- overflow: hidden;
1490
- padding: 0;
1491
- position: absolute;
1492
- width: 1px;
1493
- display: block;
1494
- }
1495
- .wpmud .checkbox-group input[type="checkbox"]:first-child + label {
1496
- border-radius: 4px 0 0 4px;
1497
- }
1498
- .wpmud .checkbox-group input[type="checkbox"] + label:last-child {
1499
- border-radius: 0 4px 4px 0;
1500
- border-right: 0;
1501
- }
1502
- .wpmud .checkbox-group input[type="checkbox"] + label {
1503
- text-align: center;
1504
- width: 70px;
1505
- height: 50px;
1506
- display: table-cell;
1507
- border-right: 1px solid #DDD;
1508
- position: relative;
1509
- padding: 0 10px;
1510
- transition-property: background, color;
1511
- transition-duration: 0.3s;
1512
- font-size: 10px;
1513
- color: transparent !important;
1514
- }
1515
- /* In modal window start */
1516
- .wpmud .wphb-modal .checkbox-group input[type="checkbox"] + label {
1517
- padding: 10px 10px;
1518
- }
1519
- .wpmud .wphb-modal .checkbox-group {
1520
- width: 100%;
1521
- height: 72px;
1522
- }
1523
- .wpmud .wphb-modal .checkbox-group input[type="checkbox"] + label {
1524
- width: 100%;
1525
- height: 70px;
1526
- }
1527
- /* In modal window end */
1528
- .wpmud .wphb-modal .toggle-label-background,
1529
- .wpmud .checkbox-group input[type="checkbox"]:checked + label {
1530
- box-shadow: none;
1531
- background-color: #EFFAFF;
1532
- }
1533
- .wpmud .checkbox-group input[type="checkbox"] + label > span:not(.toggle),
1534
- .wpmud .checkbox-group input[type="checkbox"] + label > i {
1535
- color: #888888;
1536
- }
1537
- .wpmud .checkbox-group input[type="checkbox"]:checked + label > span:not(.toggle),
1538
- .wpmud .checkbox-group input[type="checkbox"]:checked + label > i {
1539
- color: #17A8E3;
1540
- }
1541
- .wpmud .checkbox-group input[type="checkbox"]:disabled + label > span:not(.toggle),
1542
- .wpmud .checkbox-group input[type="checkbox"]:disabled + label > i {
1543
- color: #BCBCBC;
1544
- }
1545
- .wpmud .checkbox-group input[type="checkbox"]:disabled + label {
1546
- background-color: #F8F8F8;
1547
- }
1548
- .wpmud .checkbox-group input[type="checkbox"] + label > [tooltip] {
1549
- position: absolute;
1550
- left: 0;
1551
- top: 0;
1552
- bottom: 0;
1553
- right: 0;
1554
- z-index: 9;
1555
- }
1556
- .wpmud .checkbox-group label [class^="hb-"] {
1557
- display: block;
1558
- padding: 10px 0 4px;
1559
-
1560
- }
1561
-
1562
- /* ****************************************************************************
1563
- * 3. COMPONENTS/MODULES
1564
- */
1565
- /* Pills */
1566
- .wphb-pills {
1567
- display: inline-block;
1568
- background-color: #FFD000;
1569
- color: #333333;
1570
- border-radius: 15px;
1571
- width: 39px;
1572
- height: 26px;
1573
- font-size: 12px;
1574
- line-height: 26px;
1575
- text-align: center;
1576
- font-weight: 500;
1577
- }
1578
- .wpmud .box-title .wphb-pills {
1579
- margin: 16px 0 0 10px;
1580
- }
1581
- .wphb-pills.grey {
1582
- background-color: #F2F2F2;
1583
- color: #666;
1584
- }
1585
- .wphb-pills.red {
1586
- background-color: #FF6D6D;
1587
- color: #fff;
1588
- }
1589
- .wphb-pills.green {
1590
- background-color: #1ABC9C;
1591
- color: #fff;
1592
- }
1593
- .wphb-pills.with-arrow:after {
1594
- border: 8px solid transparent;
1595
- content: '';
1596
- height: 0;
1597
- pointer-events: none;
1598
- position: absolute;
1599
- width: 0;
1600
- z-index: 1;
1601
- }
1602
- .wphb-pills.with-arrow.right:after {
1603
- border-left-color: #19B4CF;
1604
- left: 50%;
1605
- margin-top: -8px;
1606
- top: 50%;
1607
- }
1608
- .wphb-pills.with-arrow.left:after {
1609
- border-right-color: #19B4CF;
1610
- right: 100%;
1611
- margin-top: -8px;
1612
- top: 50%;
1613
- }
1614
- .wphb-pills.with-arrow.right.grey:after {
1615
- border-left-color: #F2F2F2;
1616
- }
1617
- .wphb-pills.with-arrow.left.grey:after {
1618
- border-right-color: #F2F2F2;
1619
- }
1620
- .wphb-pills-group {
1621
- border-collapse: collapse;
1622
- border-spacing: 0;
1623
- font-size: 0;
1624
- display: inline-block;
1625
- position: relative;
1626
- }
1627
- .wphb-pills-group.stacked .wphb-pills {
1628
- font-size: 10px;
1629
- line-height: 12px;
1630
- height: 12px;
1631
- text-align:left;
1632
- max-width: 69px;
1633
- color: #888888;
1634
- display: block;
1635
- background-color: transparent;
1636
- }
1637
- .wphb-pills-group.stacked .wphb-pills:last-child {
1638
- color: #1ABC9C;
1639
- background-color: transparent;
1640
- }
1641
- .wphb-pills-group.stacked .dev-icon.dev-icon-caret_down {
1642
- color: #1ABC9C;
1643
- margin-left: 7px;
1644
- }
1645
- .wphb-pills-group .wphb-pills {
1646
- border-radius: 0;
1647
- width: 80px;
1648
- line-height: 30px;
1649
- height: 30px;
1650
- margin: 0;
1651
- }
1652
- .wphb-pills-group .wphb-pills:first-child {
1653
- border-radius: 5px 0 0 5px !important;
1654
- }
1655
- .wphb-pills-group .wphb-pills:last-child {
1656
- background-color: #17A8E3;
1657
- color: #FFFFFF;
1658
- border-radius: 0 5px 5px 0 !important;
1659
- }
1660
-
1661
- /* Block: Section */
1662
- .wpmud .wphb-block-section {
1663
- margin-top: 40px;
1664
- }
1665
- .wpmud .wphb-block-section:first-child {
1666
- margin-top: 0;
1667
- }
1668
- .wpmud .wphb-block-section-content * {
1669
- color: #555;
1670
- line-height: 20px;
1671
- }
1672
-
1673
- /* Box: Content */
1674
- .wpmud .content-box .wphb-block-entry-image-bottom {
1675
- margin-bottom: -30px;
1676
- }
1677
- .wpmud .content-box .wphb-block-entry-image-center {
1678
- margin-top: 30px;
1679
- }
1680
- .wpmud .content-box .wphb-block-entry-image-center img {
1681
- margin-left: auto;
1682
- margin-right: auto;
1683
- }
1684
- .wpmud .minification-settings-screen .wphb-block-entry-image-bottom {
1685
- margin-bottom: 0;
1686
- }
1687
-
1688
- /* Box: Content One Col */
1689
- .wpmud .content-box-one-col {}
1690
-
1691
- /* Box: Content One Col Center */
1692
- .wpmud .content-box-one-col-center .box-content {
1693
- text-align: left;
1694
- }
1695
- .wpmud .content-box-one-col-center .wphb-block-entry-content {
1696
- margin: 0 auto;
1697
- }
1698
- .wpmud .content-box-flex {
1699
- display: flex;
1700
- justify-content: space-between;
1701
- align-items: flex-end;
1702
- }
1703
-
1704
- /* Box: Content w/Image (left) */
1705
- .wpmud .content-box-two-cols-image-left .box-content {
1706
- text-align: left;
1707
- }
1708
- .wpmud .content-box-two-cols-image-left .wphb-block-entry-image,
1709
- .wpmud .content-box-two-cols-image-left .wphb-block-entry-content {
1710
- display: block;
1711
- }
1712
- .wpmud .content-box-two-cols-image-left .wphb-block-entry-image {
1713
- float: left;
1714
- max-width: 192px;
1715
- }
1716
- .wpmud .content-box-two-cols-image-left .wphb-block-entry-content {
1717
- margin: 30px 0 0 285px;
1718
- }
1719
- .wpmud .box-dashboard-smush-no-membership .content-box-two-cols-image-left .wphb-block-entry-content {
1720
- margin-top: 45px;
1721
- }
1722
- .wpmud .content-box-two-cols-image-left .wphb-block-entry-content .title {
1723
- text-align: left;
1724
- }
1725
-
1726
- /* Block: Content */
1727
- .wpmud .wphb-block + .wphb-block {
1728
- margin-top: 30px;
1729
- }
1730
- .wpmud .wphb-block-header {
1731
- margin-bottom: 30px;
1732
- }
1733
- .wpmud .wphb-block-title {
1734
- font-family: 'Roboto Condensed', 'Roboto', sans-serif;
1735
- font-size: 22px;
1736
- line-height: 26px;
1737
- margin: 0;
1738
- overflow: hidden;
1739
- text-align: left;
1740
- text-overflow: ellipsis;
1741
- white-space: nowrap;
1742
- }
1743
- .wpmud .wphb-block-content + .wphb-block-content {
1744
- margin-top: 30px;
1745
- }
1746
- .wpmud .wphb-block-content > *:last-child {
1747
- margin-bottom: 0;
1748
- }
1749
- #wphb-box-dashboard-cloudflare .wphb-block-entry .wphb-block-entry-content {
1750
- padding-top: 0;
1751
- }
1752
- .wpmud .wphb-block-content-center {
1753
- text-align: center;
1754
- }
1755
- .wpmud .wphb-block-content pre {
1756
- font-weight: 500;
1757
- font-family: Roboto;
1758
- font-size: 13px;
1759
- line-height: 18px;
1760
- background-color: #F8F8F8;
1761
- border: 1px solid #E6E6E6;
1762
- border-radius: 5px;
1763
- margin: 0;
1764
- padding: 20px 30px;
1765
- white-space: pre;
1766
- overflow-x: scroll;
1767
- max-width: 100%;
1768
- }
1769
- .wpmud .wphb-block-content-blue {
1770
- background-color: #e0f6ff;
1771
- border-radius: 5px;
1772
- padding: 20px 30px;
1773
- }
1774
- .wpmud .wphb-block-content .tooltip-box,
1775
- .wpmud .wphb-block-content .toggle,
1776
- .wpmud .wphb-block-content .toggle .toggle-label {
1777
- height: 21px;
1778
- vertical-align: top;
1779
- }
1780
- .wpmud .wphb-block-content-group {
1781
- border-collapse: separate;
1782
- border-spacing: 0;
1783
- display: table;
1784
- width: 100%;
1785
- }
1786
- .wpmud .wphb-block-content-group-inner {
1787
- display: table-row;
1788
- }
1789
- .wpmud .wphb-block-content-group-item {
1790
- display: table-cell;
1791
- vertical-align: middle;
1792
- width: 100%;
1793
- }
1794
- .wpmud .wphb-block-content-group-item .wphb-block-content {
1795
- margin-left: 30px;
1796
- }
1797
- .wpmud .wphb-block-content-group-item:first-child .wphb-block-content {
1798
- margin-left: 0;
1799
- }
1800
- .wpmud .wphb-block-content-group .wphb-block-content.small {
1801
- padding: 20px 23px;
1802
- width: 80px;
1803
- }
1804
-
1805
- /* Block: Entry Content */
1806
- .wpmud .wphb-block-entry:after {
1807
- content: '';
1808
- clear: both;
1809
- display: block;
1810
- }
1811
- .wpmud .wphb-block-entry-content .title {
1812
- color: #333333;
1813
- font-size: 22px;
1814
- font-weight: bold;
1815
- line-height: 1.333em;
1816
- margin: 0 0 0.5em;
1817
- max-width: 100%;
1818
- text-transform: uppercase;
1819
- }
1820
- .wpmud .wphb-block-entry-content .title,
1821
- .wpmud .wphb-block-entry-content .content > p {
1822
- margin: 0 0 20px;
1823
- }
1824
- .wpmud .wphb-block-entry-content .content > p:last-child,
1825
- .wpmud .wphb-block-entry-content .content > p:last-of-type {
1826
- margin-bottom: 0;
1827
- }
1828
- .wpmud .wphb-block-entry-content .buttons-group .button {
1829
- display: inline-block;
1830
- }
1831
-
1832
- /* Progress bar */
1833
- @keyframes spinner {
1834
- 0% {
1835
- -webkit-transform: rotate(0deg);
1836
- transform: rotate(0deg)
1837
- }
1838
-
1839
- 50% {
1840
- -webkit-transform: rotate(180deg);
1841
- transform: rotate(180deg)
1842
- }
1843
-
1844
- 100% {
1845
- -webkit-transform: rotate(360deg);
1846
- transform: rotate(360deg)
1847
- }
1848
- }
1849
- .wphb-scan-progress {
1850
- overflow: hidden;
1851
- width: 100%;
1852
- }
1853
- .not-present .wphb-scan-progress-text:before,
1854
- .wphb-scan-progress .wphb-scan-progress-text:before {
1855
- content: " ";
1856
- width: 18px;
1857
- height: 18px;
1858
- display: inline-block;
1859
- position: relative;
1860
- top: 5px;
1861
- left: 1px;
1862
- margin-right: 10px;
1863
- border: 2px solid #A9E0EC;
1864
- border-bottom-color: #17A8E3;
1865
- border-radius: 100%;
1866
- background: 0 0;
1867
- box-sizing: border-box;
1868
- animation: spinner .75s 0s linear infinite;
1869
- }
1870
- .wphb-scan-progress .wphb-scan-progress-text {
1871
- width: 65px;
1872
- float: left;
1873
- text-align: left;
1874
- }
1875
- .wphb-scan-progress .wphb-scan-progress-text img {
1876
- display: inline-block;
1877
- vertical-align: middle;
1878
- margin-right: 10px;
1879
- }
1880
- .wphb-scan-progress .wphb-scan-progress-text span {
1881
- font-weight: bold;
1882
- font-family: "Roboto Condensed", sans-serif;
1883
- font-size: 13px;
1884
- color: #333333;
1885
- vertical-align: middle;
1886
- line-height: 30px;
1887
- }
1888
- .wphb-scan-progress .wphb-scan-progress-bar {
1889
- background: #E6E6E6;
1890
- -webkit-border-radius: 5px;
1891
- -moz-border-radius: 5px;
1892
- border-radius: 5px;
1893
- height: 10px;
1894
- overflow: hidden;
1895
- width: auto;
1896
- margin-top: 10px;
1897
- position: relative;
1898
- }
1899
- .wphb-scan-progress .wphb-scan-progress-bar span {
1900
- background: #17A8E3;
1901
- height: 10px;
1902
- display: inline-block;
1903
- position: absolute;
1904
- top: 0;
1905
- left: 0;
1906
- -webkit-transition: 1000ms width ease-in-out;
1907
- -moz-transition: 1000ms width ease-in-out;
1908
- transition: 1000ms width ease-in-out;
1909
- }
1910
-
1911
- /* Block: Test with progress bar */
1912
- .wphb-block-test {
1913
- background-color: #F4F4F4;
1914
- border-radius: 5px;
1915
- max-width: 700px;
1916
- width: 100%;
1917
- height: 60px;
1918
- padding: 15px 30px;
1919
- }
1920
- .wphb-block-test-header {
1921
- margin-bottom: 10px;
1922
- }
1923
- .wphb-progress-state {
1924
- margin-top: 10px;
1925
- text-align: center;
1926
- }
1927
- .wphb-progress-state .wphb-progress-state-text {
1928
- color: #8B8B8B;
1929
- font-size: 13px;
1930
- line-height: 22px;
1931
- }
1932
- .wphb-block-test-standalone {
1933
- max-width: 100%;
1934
- text-align: center;
1935
- margin-top: 25px;
1936
- }
1937
- .wphb-block-test-standalone .wphb-progress {
1938
- margin: 0 auto;
1939
- }
1940
-
1941
- /* Filename Extensions Icons */
1942
- .wphb-filename-extension {
1943
- border-radius: 5px;
1944
- display: block;
1945
- float: left;
1946
- font-family: 'Roboto', sans-serif;
1947
- font-size: 9px;
1948
- color: #fff;
1949
- text-transform: uppercase;
1950
- text-align: center;
1951
- line-height: 43px;
1952
- height: 30px;
1953
- margin: 0 10px 0 0;
1954
- width: 30px;
1955
- }
1956
- .wphb-filename-extension-html {
1957
- background-color: #F56418;
1958
- }
1959
- .wphb-filename-extension-other {
1960
- background-color: #AAAAAA;
1961
- }
1962
- .wphb-filename-extension-css {
1963
- background-color: #25A8DE;
1964
- }
1965
- .wphb-filename-extension-media {
1966
- background-color: #55DDB8;
1967
- }
1968
- .wphb-filename-extension-images {
1969
- background-color: #BDF2F7;
1970
- color: #333333;
1971
- }
1972
- .wphb-filename-extension-javascript,
1973
- .wphb-filename-extension-js {
1974
- background-color: #F7E100;
1975
- color: #333333;
1976
- }
1977
- .wphb-filename-info {
1978
- display: block;
1979
- float: left;
1980
- max-width: 400px;
1981
- overflow: hidden;
1982
- position: relative;
1983
- width: 100%;
1984
- white-space: nowrap;
1985
- }
1986
- .wphb-filename-info:after {
1987
- background: -webkit-linear-gradient(left, rgba(255,255,255,0) 0%, #fff 100%);
1988
- background: -o-linear-gradient(left, rgba(255,255,255,0) 0%, #fff 100%);
1989
- background: linear-gradient(to right, rgba(255,255,255,0) 0%, #fff 100%);
1990
- content: '';
1991
- height: 100%;
1992
- pointer-events: none;
1993
- position: absolute;
1994
- right: 0;
1995
- top: 0;
1996
- width: 40px;
1997
- }
1998
-
1999
- /* Performance Results */
2000
- .wphb-score {
2001
- display: inline-block;
2002
- position: relative;
2003
- }
2004
- .wphb-score-type-circle {
2005
- border-radius: 100%;
2006
- height: 30px;
2007
- width: 30px;
2008
- }
2009
- .wphb-score-type-circle.large {
2010
- height: 80px;
2011
- width: 80px;
2012
- }
2013
- .wphb-score-type-circle .wphb-score-graph-circle {
2014
- stroke: #E5E5E5;
2015
- stroke-dashoffset: 80;
2016
- stroke-width: 5px;
2017
- /*-ms-transition: stroke-dashoffset 1s linear;*/
2018
- -moz-transition: stroke-dashoffset 1s linear;
2019
- -webkit-transition: stroke-dashoffset 1s linear;
2020
- transition: stroke-dashoffset 1s linear;
2021
- }
2022
- .wphb-score-type-circle.large .wphb-score-graph-circle {
2023
- stroke-dashoffset: 219.8;
2024
- stroke-width: 10px;
2025
- }
2026
- .wphb-score-type-circle .wphb-score-graph-result {
2027
- transform: rotate(-80deg) translateX(-27px) translateY(2.5px);
2028
- -moz-transform: rotate(-80deg) translateX(-27px) translateY(2.5px);
2029
- -webkit-transform: rotate(-80deg) translateX(-27px) translateY(2.5px);
2030
- }
2031
- .wphb-score-type-circle.large .wphb-score-graph-result {
2032
- transform: rotate(-80deg) translateX(-72.5px) translateY(6.5px);
2033
- -moz-transform: rotate(-80deg) translateX(-72.5px) translateY(6.5px);
2034
- -webkit-transform: rotate(-80deg) translateX(-72.5px) translateY(6.5px);
2035
- }
2036
- .wpmud .wphb-performance-report-item-score,
2037
- .wpmud .wphb-button-label,
2038
- .wpmud .wphb-score-result {
2039
- cursor: pointer;
2040
- position: relative;
2041
- }
2042
-
2043
- .wpmud .list-table.hover-effect > tbody > tr[class*="wphb-table-score"] td:first-child {
2044
- padding-left: 30px;
2045
- }
2046
- .wpmud .list-table.hover-effect > tbody > tr[class*="wphb-table-score"] td:first-child:before {
2047
- font-family: 'hummingbird', sans-serif;
2048
- speak: none;
2049
- font-style: normal;
2050
- font-weight: normal;
2051
- font-variant: normal;
2052
- text-transform: none;
2053
- line-height: 1;
2054
- -webkit-font-smoothing: antialiased;
2055
- -moz-osx-font-smoothing: grayscale;
2056
- font-size: 20px;
2057
- vertical-align: middle;
2058
- margin-right: 10px;
2059
- }
2060
- .wpmud .list-table.hover-effect > tbody > tr.wphb-table-score-success:hover > td:first-child:after,
2061
- .wpmud .list-table.hover-effect > tbody > tr.wphb-table-score-warning:hover td:first-child:after,
2062
- .wpmud .list-table.hover-effect > tbody > tr.wphb-table-score-error:hover td:first-child:after {
2063
- content: normal;
2064
- }
2065
- .wpmud .list-table.hover-effect > tbody > tr.wphb-table-score-success:hover td:first-child,
2066
- .wpmud .list-table.hover-effect > tbody > tr.wphb-table-additional-success td:first-child,
2067
- .wphb-table-score-success td:first-child {
2068
- border-left: 4px solid #1ABC9C;
2069
- }
2070
- .wpmud .list-table.hover-effect > tbody > tr.wphb-table-score-success td:first-child:before {
2071
- color: #1ABC9C;
2072
- content: "\e903";
2073
- }
2074
- .wpmud .list-table.hover-effect > tbody > tr.wphb-table-score-warning:hover td:first-child,
2075
- .wpmud .list-table.hover-effect > tbody > tr.wphb-table-additional-warning td:first-child,
2076
- .wphb-table-score-warning td:first-child {
2077
- border-left: 4px solid #FFD000;
2078
- }
2079
- .wpmud .list-table.hover-effect > tbody > tr.wphb-table-score-warning td:first-child:before {
2080
- color: #FFD000;
2081
- content: "\e904";
2082
- }
2083
- .wpmud .list-table.hover-effect > tbody > tr.wphb-table-score-error:hover td:first-child,
2084
- .wpmud .list-table.hover-effect > tbody > tr.wphb-table-additional-error td:first-child,
2085
- .wphb-table-score-error td:first-child {
2086
- border-left: 4px solid #FF6D6D;
2087
- }
2088
- .wpmud .list-table.hover-effect > tbody > tr.wphb-table-score-error td:first-child:before {
2089
- color: #FF6D6D;
2090
- content: "\e904";
2091
- }
2092
-
2093
- .wphb-score-result-grade-aplus,
2094
- .wphb-score-result-grade-a {
2095
- color: #1ABC9C;
2096
- }
2097
- .wphb-score-result-grade-aplus .wphb-score-type-circle .wphb-score-graph-result,
2098
- .wphb-score-result-grade-a .wphb-score-type-circle .wphb-score-graph-result {
2099
- stroke: #1ABC9C;
2100
- }
2101
- .wphb-score-result-grade-b {
2102
- color: #1ABC9C;
2103
- }
2104
- .wphb-score-result-grade-b .wphb-score-type-circle .wphb-score-graph-result {
2105
- stroke: #1ABC9C;
2106
- }
2107
- .wphb-score-result-grade-c {
2108
- color: #FFD000;
2109
- }
2110
- .wphb-score-result-grade-c .wphb-score-type-circle .wphb-score-graph-result {
2111
- stroke: #FFD000;
2112
- }
2113
- .wphb-score-result-grade-d {
2114
- color: #FFD000;
2115
- }
2116
- .wphb-score-result-grade-d .wphb-score-type-circle .wphb-score-graph-result {
2117
- stroke: #FFD000;
2118
- }
2119
- .wphb-score-result-grade-e,
2120
- .wphb-score-result-grade-f {
2121
- color: #FF6D6D;
2122
- }
2123
- .wphb-score-result-grade-e .wphb-score-type-circle .wphb-score-graph-result,
2124
- .wphb-score-result-grade-f .wphb-score-type-circle .wphb-score-graph-result {
2125
- stroke: #FF6D6D;
2126
- }
2127
- .wphb-score-have-label .wphb-score-type,
2128
- .wphb-score-have-label .wphb-score-result-label {
2129
- float: left;
2130
- display: block;
2131
- }
2132
- .wphb-score-have-label.inside .wphb-score-type,
2133
- .wphb-score-have-label.inside .wphb-score-result-label {
2134
- float: none;
2135
- }
2136
- .wphb-score-have-label .wphb-score-result-label {
2137
- font-family: 'Roboto', Arial, sans-serif;
2138
- font-size: 15px;
2139
- color: #888888;
2140
- padding-left: 10px;
2141
- }
2142
- .wphb-score-have-label .wphb-score-type-circle + .wphb-score-result-label {
2143
- line-height: 30px;
2144
- min-width: 35px;
2145
- text-align: left;
2146
- }
2147
- .wphb-score-have-label.inside .wphb-score-type {
2148
- position: relative;
2149
- }
2150
- .wphb-score-have-label.inside .wphb-score-result-label {
2151
- font-size: 26px;
2152
- left: 0;
2153
- line-height: 34px;
2154
- margin: -17px 0 0;
2155
- min-width: 100%;
2156
- padding: 0;
2157
- position: absolute;
2158
- right: 0;
2159
- text-align: center;
2160
- top: 50%;
2161
- }
2162
- #wphb-error-details {
2163
- display:none;
2164
- }
2165
- #wphb-error-details-link {
2166
- color:white;
2167
- text-decoration: none;
2168
- margin-top:10px;
2169
- margin-bottom:10px;
2170
- display:inline-block;
2171
- font-weight:400;
2172
- }
2173
- #wphb-error-details-link > .dashicons {
2174
- text-decoration:none;
2175
- }
2176
- #wphb-error-details-link.expanded {
2177
- display:none;
2178
- }
2179
-
2180
- /* Tabs */
2181
- .wpmud .wphb-tabs a {
2182
- color: #333;
2183
- display: block;
2184
- }
2185
- .wpmud .wphb-tabs .wphb-tab {
2186
- padding: 5px 20px;
2187
- height: 30px;
2188
- }
2189
- .wpmud .wphb-tabs .wphb-tab.current {
2190
- background-color: #E6E6E6;
2191
- border-radius: 20px;
2192
- font-weight: 500;
2193
- }
2194
- .wpmud .wphb-tab .wphb-button-label {
2195
- position: relative;
2196
- top: -25px;
2197
- left: 100%;
2198
- margin-left: -22px;
2199
- width: 39px;
2200
- height: 26px;
2201
- text-align: center;
2202
- font-size: 12px;
2203
- font-weight: 500;
2204
- line-height: 24px;
2205
- }
2206
- .wpmud .wphb-tab > i {
2207
- color: #FF6D6D;
2208
- position: relative;
2209
- top: -23px;
2210
- left: 100%;
2211
- margin-left: -5px;
2212
- font-size: 21px;
2213
- }
2214
- .wpmud .wphb-tab > i.hb-wpmudev-icon-tick {
2215
- color: #1ABC9C;
2216
- }
2217
-
2218
- /* ****************************************************************************
2219
- * 4. WELCOME / DASHBOARD
2220
- */
2221
- /* Dashboard summary */
2222
- .wpmud .wphb-block-entry-third {
2223
- color: #333333;
2224
- width: calc( 100% / 2 - 98px );
2225
- padding-left: 5%;
2226
- padding-top: 10px;
2227
- display: inline-block;
2228
- vertical-align: middle;
2229
- }
2230
- .wpmud .wphb-block-entry-third span {
2231
- font-weight: 400;
2232
- }
2233
- .wpmud .wphb-block-entry-third p {
2234
- font-size: 13px;
2235
- margin-top: 0;
2236
- color: #888888;
2237
- }
2238
- .wpmud .wphb-block-entry-third span.not-present {
2239
- font-size: 55px;
2240
- line-height: 30px;
2241
- margin-bottom: 20px;
2242
- }
2243
- .wpmud .wphb-block-entry-third span.score-span {
2244
- font-size: 13px;
2245
- margin-left: -12px;
2246
- }
2247
- .wpmud .wphb-block-entry-third .current-performance-score {
2248
- margin-bottom: 20px;
2249
- }
2250
- .wpmud .wphb-block-entry-third .hb-wpmudev-icon-warning,
2251
- .wpmud .wphb-block-entry-third .hb-wpmudev-icon-tick {
2252
- position: relative;
2253
- top: -22px;
2254
- left: 5px;
2255
- font-size: 20px;
2256
- }
2257
- .wpmud .wphb-block-entry-third .hb-wpmudev-icon-warning {
2258
- color: #FECF2F;
2259
- }
2260
- .wpmud .wphb-block-entry-third .hb-wpmudev-icon-tick {
2261
- color: #1ABC9C;
2262
- }
2263
- .wpmud .wphb-block-entry-third .dev-list {
2264
- margin: 0 !important;
2265
- border-bottom: 0;
2266
- }
2267
- .wpmud .wphb-block-entry-third .dev-list li:first-child span {
2268
- padding-top: 4px;
2269
- }
2270
-
2271
- /* Dashboard background images */
2272
- .box-dashboard-reports-no-membership,
2273
- .box-dashboard-uptime-no-membership,
2274
- .box-dashboard-smush-no-membership .box-content,
2275
- .box-dashboard-browser-caching-module .box-content,
2276
- .box-reporting-summary .wphb-reporting-no-membership {
2277
- background: no-repeat 30px 100%;
2278
- padding-bottom: 30px !important;
2279
- }
2280
- .box-dashboard-reports-no-membership .box-content,
2281
- .box-dashboard-uptime-no-membership .box-content {
2282
- padding: 30px 30px 0 !important;
2283
- }
2284
- .box-dashboard-reports-no-membership {
2285
- background-image: url('../image/hb-graphic-upsell-reports.png');
2286
- }
2287
- .box-dashboard-uptime-no-membership {
2288
- background-image: url('../image/hb-graphic-upsell-uptime.png');
2289
- }
2290
- .box-dashboard-smush-no-membership .box-content {
2291
- background-image: url('../image/smush-share-widget.png');
2292
- }
2293
- .box-dashboard-browser-caching-module .box-content {
2294
- background-image: url('../image/graphic-hb-cf-sell@2x.png');
2295
- background-size: 107px 148px;
2296
- }
2297
- .box-reporting-summary .wphb-reporting-no-membership {
2298
- background-image: url('../image/hummingbird-upsell-minify.png');
2299
- background-size: 118px 126px;
2300
- }
2301
-
2302
- .box-dashboard-browser-caching-module .box-content.no-background-image {
2303
- background-image: none;
2304
- }
2305
- @media
2306
- only screen and (-webkit-min-device-pixel-ratio: 2),
2307
- only screen and ( min--moz-device-pixel-ratio: 2),
2308
- only screen and ( -o-min-device-pixel-ratio: 2/1),
2309
- only screen and ( min-device-pixel-ratio: 2),
2310
- only screen and ( min-resolution: 192dpi),
2311
- only screen and ( min-resolution: 2dppx) {
2312
- .box-dashboard-reports-no-membership,
2313
- .box-dashboard-uptime-no-membership,
2314
- .box-dashboard-smush-no-membership .box-content {
2315
- background-size: 107px 148px;
2316
- }
2317
- .box-dashboard-reports-no-membership {
2318
- background-image: url("../image/hb-graphic-upsell-reports@2x.png");
2319
- }
2320
- .box-dashboard-uptime-no-membership {
2321
- background-image: url('../image/hb-graphic-upsell-uptime@2x.png');
2322
- }
2323
- .box-dashboard-smush-no-membership .box-content {
2324
- background-image: url('../image/smush-share-widget@2x.png');
2325
- }
2326
- .box-reporting-summary .wphb-reporting-no-membership {
2327
- background-image: url('../image/hummingbird-upsell-minify@2x.png');
2328
- }
2329
- }
2330
-
2331
- @media screen and ( min-width: 1550px ) {
2332
- .box-dashboard-reports-no-membership .wphb-block-entry .row {
2333
- padding-bottom: 20px;
2334
- }
2335
- .box-dashboard-uptime-no-membership .content p {
2336
- padding-bottom: 20px;
2337
- }
2338
- .box-dashboard-smush-no-membership .buttons {
2339
- padding-bottom: 20px;
2340
- }
2341
- }
2342
-
2343
- /* Dashboard tables */
2344
- .wpmud .wphb-dash-table-header {
2345
- color: #333333;
2346
- font-size: 13px;
2347
- font-weight: bold;
2348
- line-height: 30px;
2349
- display: flex;
2350
- }
2351
- .wpmud .wphb-border-frame .wphb-caching-summary-item-type,
2352
- .wpmud .wphb-border-frame .wphb-gzip-summary-item-type,
2353
- .wpmud .wphb-dash-table-row > div:first-child {
2354
- display: flex;
2355
- align-items: center;
2356
- align-content: center;
2357
- }
2358
- .wpmud .wphb-dash-table-row {
2359
- display: flex;
2360
- align-items: center;
2361
- align-content: center;
2362
- justify-content: space-between;
2363
- height: 60px;
2364
- border-top: 1px solid #E6E6E6;
2365
- }
2366
-
2367
- .wpmud .wphb-dash-table-row:last-child {
2368
- margin-bottom: -10px;
2369
- }
2370
- .wpmud .wphb-dash-table-header > span:first-child,
2371
- .wpmud .wphb-dash-table-row > div:first-child {
2372
- flex-basis: 50% !important;
2373
- text-align: left;
2374
- }
2375
- .wpmud .wphb-dash-table-row > div:first-child {
2376
- font-size: 13px;
2377
- color: #333333;
2378
- font-weight: 500;
2379
- }
2380
- .wpmud .wphb-dash-table-header > span,
2381
- .wpmud .wphb-dash-table-row > div {
2382
- text-align: center;
2383
- }
2384
- .wpmud .wphb-dash-table-header > span:last-child,
2385
- .wpmud .wphb-dash-table-row > div:last-child {
2386
- text-align: right;
2387
- }
2388
- /* Three column and two column layouts */
2389
- .wpmud .wphb-dash-table.two-columns > .wphb-dash-table-header > span,
2390
- .wpmud .wphb-dash-table.two-columns > .wphb-dash-table-row > div {
2391
- flex-basis: 50%;
2392
- }
2393
- .wpmud .wphb-dash-table.three-columns > .wphb-dash-table-header > span,
2394
- .wpmud .wphb-dash-table.three-columns > .wphb-dash-table-row > div {
2395
- flex-basis: 25%;
2396
- }
2397
-
2398
- /* Status text on dashboard meta boxes */
2399
- .wpmud .dev-box .status-text {
2400
- color: #888888;
2401
- font-size: 13px;
2402
- line-height: 22px;
2403
- margin-top: 5px;
2404
- }
2405
-
2406
- /* Dashboard Performance */
2407
- .wpmud .box-dashboard-performance-module .wphb-performance-report-item-score {
2408
- display: flex;
2409
- align-items: center;
2410
- align-content: center;
2411
- max-width: 65px;
2412
- }
2413
- .wpmud .box-dashboard-performance-module .wphb-score-result-label {
2414
- margin-left: 10px;
2415
- color: #888888;
2416
- font-weight: 500;
2417
- }
2418
-
2419
- /* Dashboard: Minification */
2420
- .wpmud .box-dashboard-welcome .dev-list > li:last-child .list-detail,
2421
- .wpmud .box-dashboard-uptime .wphb-dash-table-row > div:last-child,
2422
- .wpmud .box-dashboard-minification-module .wphb-dash-table-row > div:last-child {
2423
- font-size: 18px;
2424
- font-family: "Roboto Condensed", sans-serif;
2425
- color: #666666;
2426
- }
2427
- .wpmud .box-dashboard-minification-module .wphb-pills {
2428
- font-weight: bold;
2429
- }
2430
-
2431
- /* Dashboard become pro member */
2432
- .wpmud .callout-box .callout-title {
2433
- font-family: 'Roboto Condensed', Arial, sans-serif;
2434
- font-size: 22px;
2435
- font-weight: bold;
2436
- line-height: 60px;
2437
- color: #333333;
2438
- padding-bottom: 30px;
2439
- text-transform: uppercase;
2440
- }
2441
- .wpmud .callout-box p {
2442
- margin-bottom: 30px;
2443
- }
2444
- .wpmud .wphb-cf-notice p,
2445
- .wpmud .wphb-upsell-free-message p {
2446
- position: relative;
2447
- border-radius: 4px;
2448
- background-color: #E1F6FF;
2449
- padding: 20px 30px;
2450
- margin-left: -140px;
2451
- color: #333333;
2452
- font-size: 13px;
2453
- line-height: 22px;
2454
- }
2455
- .wpmud .wphb-upsell-free-message p:after {
2456
- position: absolute;
2457
- top: 43%;
2458
- left: 0;
2459
- margin-left: -7px;
2460
- content: '';
2461
- width: 0;
2462
- height: 0;
2463
- border-top: 7px solid transparent;
2464
- border-bottom: 7px solid transparent;
2465
- border-right: 7px solid #E1F6FF;
2466
- }
2467
- .wpmud .wphb-cf-notice a,
2468
- .wpmud .wphb-upsell-free-message a {
2469
- color: #333333;
2470
- text-decoration: underline;
2471
- font-weight: 500;
2472
- }
2473
-
2474
- /* Dashboard Smush */
2475
- .wpmud .box-dashboard-caching-gravatar-module .wphb-notice,
2476
- .wpmud .box-dashboard-smush .content .wphb-notice,
2477
- .wpmud .box-dashboard-caching-page-module .content .wphb-notice,
2478
- .wpmud .box-dashboard-browser-caching-module .content .wphb-notice,
2479
- .wpmud .box-dashboard-gzip-module .content .wphb-notice,
2480
- .wpmud .box-dashboard-smush-no-membership .content .wphb-notice {
2481
- margin-top: 20px !important;
2482
- }
2483
-
2484
- /* Dashboard Reports */
2485
- .wpmud .wrap-wp-hummingbird .report-status {
2486
- background-color: #F8F8F8;
2487
- height: 140px;
2488
- width: 100%;
2489
- position: relative;
2490
- -webkit-border-radius: 7px;
2491
- -moz-border-radius: 7px;
2492
- border-radius: 7px;
2493
- margin-bottom: 10px;
2494
- display: flex;
2495
- flex-direction: column;
2496
- align-items: center;
2497
- justify-content: center;
2498
- }
2499
- .wpmud .wrap-wp-hummingbird .report-status:hover {
2500
- background-color: #f2f2f2;
2501
- cursor: pointer;
2502
- }
2503
- .wpmud .wrap-wp-hummingbird .report-status i {
2504
- color: #666666;
2505
- font-size: 24px;
2506
- }
2507
- .wpmud .wrap-wp-hummingbird .report-status strong {
2508
- font-family: "Roboto Condensed", sans-serif;
2509
- color: #666666;
2510
- font-weight: bold;
2511
- margin-top: 10px;
2512
- font-size: 13px;
2513
- line-height: 20px;
2514
- text-transform: uppercase;
2515
- }
2516
- .wpmud .wrap-wp-hummingbird .report-status button {
2517
- border-radius: 20px !important;
2518
- margin-top: 10px !important;
2519
- background-color: #D1F1EA !important;
2520
- color: #1ABC9C !important;
2521
- }
2522
- .wpmud .wrap-wp-hummingbird .report-status button i {
2523
- color: #1ABC9C;
2524
- font-size: 16px;
2525
- position: relative ;
2526
- line-height: 10px;
2527
- top: 3px;
2528
- }
2529
- .wpmud .wrap-wp-hummingbird .report-status button.inactive {
2530
- background-color: #E6E6E6 !important;
2531
- color: #AAAAAA !important;
2532
- }
2533
- .wpmud .wrap-wp-hummingbird .report-status .corner {
2534
- position: absolute;
2535
- top: 0;
2536
- right: 0;
2537
- color: #1ABC9C;
2538
- font-weight: bold;
2539
- font-family: "Roboto Condensed", sans-serif;
2540
- padding-right: 6px;
2541
- padding-top: 10px;
2542
- text-transform: uppercase;
2543
- font-size: 13px;
2544
- }
2545
- .wpmud .wrap-wp-hummingbird .report-status.with-corner.grey .corner i {
2546
- color: #888888;
2547
- font-size: 16px;
2548
- margin-right: 4px;
2549
- }
2550
- .wpmud .wrap-wp-hummingbird .report-status.with-corner:before {
2551
- content: '';
2552
- position: absolute;
2553
- top: 0;
2554
- right: 0;
2555
- border: solid transparent;
2556
- border-top-right-radius: 7px;
2557
- }
2558
- .wpmud .wrap-wp-hummingbird .report-status.with-corner:before {
2559
- border-width: 30px;
2560
- border-right-color: #D1F1EA;
2561
- border-top-color: #D1F1EA;
2562
- }
2563
- .wpmud .wrap-wp-hummingbird .report-status.with-corner.grey:before {
2564
- border-right-color: #E6E6E6;
2565
- border-top-color: #E6E6E6;
2566
- }
2567
-
2568
- /* ****************************************************************************
2569
- * 5. PERFORMANCE
2570
- */
2571
- .wpmud .performance-report-table {
2572
- text-align: left;
2573
- margin-top: 30px;
2574
- overflow: hidden;
2575
- }
2576
- .wpmud .performance-report-table .wpdui-btn {
2577
- display: inline-block;
2578
- margin: 10px 0 20px;
2579
- text-transform: uppercase;
2580
- }
2581
- .wpmud .performance-report-table .wpdui-btn:hover {
2582
- color: #ffffff;
2583
- }
2584
- .wpmud .performance-report-table a,
2585
- .wpmud .performance-report-table a:hover {
2586
- color: #17A8E3;
2587
- overflow-wrap: break-word;
2588
- word-wrap: break-word;
2589
- word-break: break-all;
2590
- -ms-hyphens: auto;
2591
- -moz-hyphens: auto;
2592
- -webkit-hyphens: auto;
2593
- hyphens: auto;
2594
- }
2595
- .wpmud .performance-report-table p,
2596
- .wpmud .performance-report-table ol li {
2597
- font-size: 13px !important;
2598
- color: #888888;
2599
- line-height: 22px;
2600
- }
2601
- .wpmud .performance-report-table ol > p {
2602
- margin-left: -30px;
2603
- margin-bottom: 15px;
2604
- }
2605
- .wpmud .performance-report-table > thead > tr > th:first-child {
2606
- padding-left: 30px;
2607
- }
2608
- .wpmud .performance-report-table .wphb-performance-report-item:hover td {
2609
- cursor: pointer;
2610
- border-bottom: 0 !important;
2611
- }
2612
- .wpmud .performance-report-table .wphb-performance-report-item-score {
2613
- width: 137px;
2614
- }
2615
- .wpmud .performance-report-table .wphb-performance-report-item-type {
2616
- color: #888888;
2617
- font-size: 13px;
2618
- transition: color .3s;
2619
- text-transform: capitalize;
2620
- width: 130px;
2621
- }
2622
- .wpmud .performance-report-table .wphb-performance-report-item:hover .wphb-performance-report-item-type {
2623
- color: #333333;
2624
- }
2625
- .wpmud .performance-report-table .wphb-performance-report-item-cta {
2626
- text-align: right;
2627
- width: 225px;
2628
- }
2629
- .wpmud .wphb-performance-report-item .trigger-additional-content {
2630
- color: #888888;
2631
- cursor: pointer;
2632
- display: inline-block;
2633
- font-size: 14px;
2634
- line-height: 1em;
2635
- height: 14px;
2636
- margin: 8px 30px 8px 15px;
2637
- transition: color .3s;
2638
- vertical-align: middle;
2639
- }
2640
- .wpmud .wphb-performance-report-item .trigger-additional-content .dev-icon-caret_down:before {
2641
- display: inline-block;
2642
- transition: transform 0.5s;
2643
- transform: rotate(0);
2644
- }
2645
- .wpmud .wphb-performance-report-item-opened .trigger-additional-content .dev-icon-caret_down:before {
2646
- transform: rotate(-180deg);
2647
- }
2648
- .wpmud .performance-report-table .wphb-performance-report-item-opened,
2649
- .wpmud .wphb-table.performance-report-table .wphb-performance-report-item-additional-content:hover,
2650
- .wpmud .wphb-table.performance-report-table .wphb-performance-report-item-opened:hover {
2651
- background: #F8F8F8;
2652
- }
2653
- .wpmud .performance-report-table .wphb-performance-report-item-additional-content {
2654
- background: #F8F8F8;
2655
- display: none;
2656
- }
2657
- .wpmud .performance-report-table .wphb-performance-report-item-additional-content-opened {
2658
- display: table-row;
2659
- }
2660
- .wpmud .performance-report-table .wphb-performance-report-item-additional-content-opened > td {
2661
- border-top: 0 !important;
2662
- }
2663
- .wpmud .wphb-performance-report-item-additional-content-inner {
2664
- padding: 0 !important;
2665
- }
2666
- .wpmud .dev-box-performance-report-additional-content {
2667
- padding: 30px;
2668
- margin: 0 30px 30px;
2669
- border-radius: 5px;
2670
- background-color: #FFFFFF;
2671
- box-shadow: 0 2px 0 0 #EAEAEA;
2672
- }
2673
- .wpmud .dev-box-performance-report-additional-content h4:first-child {
2674
- margin-top: 0;
2675
- }
2676
- .wpmud .wphb-performance-report-item-additional-content h4,
2677
- .wpmud .wphb-performance-report-item-additional-content h5 {
2678
- color: #333333;
2679
- font-size: 13px;
2680
- text-transform: none;
2681
- line-height: 23px;
2682
- margin: 20px 0 20px;
2683
- text-align: left;
2684
- }
2685
-
2686
- /* Reporting */
2687
- .wpmud .wrap-wphb-performance .box-content.settings-form.disabled {
2688
- padding-bottom: 30px;
2689
- }
2690
- .wpmud .wrap-wphb-performance .scan-settings .buttons {
2691
- margin-top: 30px;
2692
- }
2693
- .wpmud .wrap-wphb-caching .list-results,
2694
- .wpmud .wrap-wphb-performance .list-results {
2695
- max-height: 200px;
2696
- overflow-y: scroll;
2697
- }
2698
- .wpmud .wrap-wphb-performance .recipient {
2699
- margin-bottom: 10px;
2700
- padding: 5px 10px;
2701
- }
2702
- .wpmud .wrap-wphb-performance .recipient:hover {
2703
- border-radius: 4px;
2704
- background-color: #F8F8F8;
2705
- }
2706
- .wpmud .wrap-wphb-performance .recipient,
2707
- .wpmud .wrap-wphb-performance .recipient .name,
2708
- .wpmud .wrap-wphb-performance .add-recipient {
2709
- display: flex;
2710
- flex-flow: row nowrap;
2711
- justify-content: space-between;
2712
- align-items: center;
2713
- align-content: center;
2714
- }
2715
- .wpmud .wrap-wphb-performance .recipient img {
2716
- -webkit-border-radius: 50px;
2717
- -moz-border-radius: 50px;
2718
- border-radius: 50px;
2719
- width: 30px;
2720
- height: 30px;
2721
- margin-right: 10px;
2722
- display: inline-block;
2723
- vertical-align: middle;
2724
- }
2725
- .wpmud .wrap-wphb-performance .recipient .name {
2726
- color: #333333;
2727
- font-weight: 500;
2728
- }
2729
- .wpmud .wrap-wphb-performance .recipient a > i {
2730
- color: #888888;
2731
- }
2732
- .wpmud .wrap-wphb-performance .recipient:hover a > i {
2733
- color: #333333;
2734
- }
2735
- .wpmud .wrap-wphb-performance .add-recipient {
2736
- margin-top: 15px;
2737
- }
2738
- .wpmud .wrap-wphb-performance .add-recipient > * {
2739
- margin-bottom: 0;
2740
- border-radius: 0;
2741
- border: 1px solid #E6E6E6;
2742
- font-weight: normal;
2743
- }
2744
- .wpmud .wrap-wphb-performance .add-recipient .wdv-icon-plus {
2745
- color: #FFFFFF;
2746
- font-size: 20px;
2747
- }
2748
- .wpmud .wrap-wphb-performance .add-recipient > button {
2749
- background-color: #888888 !important;
2750
- border-radius: 0 4px 4px 0 !important;
2751
- }
2752
- .wpmud .wrap-wphb-performance .add-recipient > input::placeholder {
2753
- color: #AAAAAA;
2754
- font-weight: 400;
2755
- }
2756
- .wpmud .wrap-wphb-performance .add-recipient #wphb-first-name {
2757
- border-radius: 4px 0 0 4px;
2758
- border-right: 0;
2759
- background-color: #F8F8F8;
2760
- }
2761
- .wpmud .wrap-wphb-performance .add-recipient #wphb-username-search {
2762
- background-color: #F8F8F8;
2763
- }
2764
- .wpmud .wrap-wphb-performance .wphb-tag {
2765
- -webkit-border-radius: 16px;
2766
- -moz-border-radius: 16px;
2767
- border-radius: 16px;
2768
- font-size: 13px;
2769
- padding: 4px 16px;
2770
- color: #fff;
2771
- text-transform: uppercase;
2772
- }
2773
- .wpmud .wrap-wphb-performance .wphb-tag.tag-generic {
2774
- background: #E6E6E6;
2775
- color: #333;
2776
- }
2777
-
2778
- .wpmud .box-reporting-summary .wphb-block-entry-content {
2779
- margin-top: 0;
2780
- }
2781
-
2782
- /* ****************************************************************************
2783
- * 6. MINIFICATION
2784
- */
2785
- .wpmud .wphb-border-row.out-of-filter {
2786
- display: none;
2787
- }
2788
-
2789
- #wphb-minification-filter {
2790
- margin-bottom: 20px !important;
2791
- }
2792
-
2793
- #wphb-minification-filter .wphb-block-title {
2794
- font: 700 15px/2em 'Roboto Condensed', 'Roboto', sans-serif;
2795
- text-transform: uppercase;
2796
- float: left;
2797
- margin-top: 7px;
2798
- margin-left: 30px;
2799
- margin-right: 20px;
2800
- }
2801
-
2802
- #wphb-minification-filter .wphb-filters-data {
2803
- margin: 20px 30px 6px;
2804
- display: -webkit-box;
2805
- display: -ms-flexbox;
2806
- display: flex;
2807
- }
2808
-
2809
- .wrap-wphb-minification .box-minification-enqueued-files .alignright {
2810
- margin-top: 0;
2811
- }
2812
- #wphb-box-minification-advanced-settings .toggle-item-description {
2813
- font-size: 13px;
2814
- line-height: 22px;
2815
- font-weight: 400;
2816
- }
2817
- #wphb-box-minification-advanced-settings p {
2818
- font-size: 13px;
2819
- }
2820
- .wpmud .box-minification-advanced-settings .wphb-block-entry-image-bottom {
2821
- margin-bottom: -30px;
2822
- }
2823
- .wrap-wphb-minification .box-minification-enqueued-files .box-footer span {
2824
- color: #888888;
2825
- font-size: 13px;
2826
- line-height: 20px;
2827
- }
2828
-
2829
-
2830
- .wpmud .wphb-enqueued-files {
2831
- border: 1px solid #eee;
2832
- border-radius: 5px;
2833
- }
2834
- .wpmud .box-minification-enqueued-files .alignleft,
2835
- .wpmud .box-minification-enqueued-files .alignright {
2836
- margin-bottom: 0;
2837
- }
2838
- .wpmud .wphb-enqueued-files .buttons {
2839
- margin: 30px;
2840
- }
2841
- .wpmud .wphb-border-row,
2842
- .wpmud .wphb-border-row-header {
2843
- padding: 20px 30px;
2844
- -webkit-box-pack: justify;
2845
- -ms-flex-pack: justify;
2846
- justify-content: space-between;
2847
- border-bottom: 1px solid #eee;
2848
- }
2849
- .wpmud .wphb-border-row:last-child {
2850
- border-bottom: 0;
2851
- }
2852
- .wpmud .box-content.disabled {
2853
- padding-bottom: 0;
2854
- }
2855
- .wpmud .box-content.disabled,
2856
- .wpmud .wphb-border-row.disabled {
2857
- background-color: rgba(242,242,242,0.5);
2858
- }
2859
- .wpmud .box-content.disabled strong,
2860
- .wpmud .wphb-border-row.disabled .wphb-filename-info-name {
2861
- color: #929292;
2862
- }
2863
- .wpmud .box-content.disabled span,
2864
- .wpmud .box-content.disabled label,
2865
- .wpmud .wphb-border-row.disabled .wphb-filename-info-url {
2866
- color: #BFBFBF !important;
2867
- }
2868
- .wpmud .box-content.disabled img.avatar {
2869
- background-color: #000000;
2870
- opacity: 0.3;
2871
- }
2872
- .wpmud .box-content.disabled .list-value,
2873
- .wpmud .box-content.disabled .dropdown-handle {
2874
- background-color: #F5F5F5;
2875
- color: #979797;
2876
- }
2877
- .wpmud .box-content.disabled input::placeholder {
2878
- color: #979797;
2879
- font-weight: 400;
2880
- }
2881
- .wpmud .box-performance-summary .box-footer {
2882
- padding: 0 30px 42px 30px;
2883
- }
2884
-
2885
- .wpmud .wphb-border-row-header > * {
2886
- font-size: 13px;
2887
- font-weight: bold;
2888
- color: #333333;
2889
- }
2890
-
2891
- .wpmud .wphb-border-row,
2892
- .wpmud .wphb-border-row-header,
2893
- .wpmud .wphb-minification-row-details {
2894
- display: -webkit-box;
2895
- display: -ms-flexbox;
2896
- display: flex;
2897
- -webkit-box-orient: horizontal;
2898
- -webkit-box-direction: normal;
2899
- flex-flow: row wrap;
2900
- -webkit-box-align: center;
2901
- -ms-flex-align: center;
2902
- align-items: center;
2903
- align-content: center;
2904
- }
2905
-
2906
- .wpmud .wphb-border-row > div.wphb-minification-row-details,
2907
- .wpmud .wphb-border-row-header > div.wphb-minification-row-details {
2908
- -webkit-box-pack: justify;
2909
- -ms-flex-pack: justify;
2910
- justify-content: space-between;
2911
- }
2912
-
2913
- .wpmud .wphb-minification-file-select,
2914
- .wpmud .wphb-minification-file-details,
2915
- .wpmud .wphb-minification-row-details {
2916
- order: 1;
2917
- }
2918
- .wpmud .wphb-minification-file-select {
2919
- flex: 0 0 4%;
2920
- }
2921
- .wpmud .wphb-minification-file-details {
2922
- flex: 0 0 47%;
2923
- }
2924
- .wpmud .wphb-minification-row-details {
2925
- flex: 0 0 41%;
2926
- }
2927
-
2928
- .wpmud .wphb-minification-file-details .wphb-filename-info {
2929
- display: -webkit-box;
2930
- display: -ms-flexbox;
2931
- display: flex;
2932
- -webkit-box-orient: vertical;
2933
- -webkit-box-direction: normal;
2934
- flex-flow: column wrap;
2935
- }
2936
- .wpmud .wphb-minification-file-details .wphb-filename-info .wphb-filename-info-name {
2937
- color: #333333;
2938
- font-weight: 500;
2939
- line-height: 20px;
2940
- }
2941
- .wpmud .wphb-minification-file-details .wphb-filename-info .wphb-filename-info-url {
2942
- color: #888888;
2943
- font-size: 12px;
2944
- line-height: 20px;
2945
- }
2946
- .wpmud .wphb-minification-file-size {
2947
- text-align: center;
2948
- font-size: 10px;
2949
- line-height: 12px;
2950
- color: #1ABC9C;
2951
- }
2952
- .wpmud .wphb-minification-file-size > div > span {
2953
- display: block;
2954
- }
2955
- .wpmud .wphb-minification-file-size > span,
2956
- .wpmud .wphb-minification-file-size > div > span:first-child {
2957
- color: #888888;
2958
- }
2959
- .wpmud .wphb-minification-file-size .wphb-scan-progress,
2960
- .wpmud .wphb-minification-configuration > strong,
2961
- .wpmud .wphb-minification-file-size > strong {
2962
- display: none;
2963
- }
2964
-
2965
- .wpmud .wphb-minification-exclude {
2966
- order: 2;
2967
- margin-left: 30px;
2968
- }
2969
- .wpmud .wphb-minification-exclude label {
2970
- padding: 0;
2971
- margin: 0;
2972
- }
2973
-
2974
- .wpmud .box-minification-enqueued-files .wphb-filename-extension {
2975
- margin: 4px 13px 0 0;
2976
- }
2977
-
2978
-
2979
- /* ****************************************************************************
2980
- * 7. BROWSER CACHING
2981
- */
2982
- .wpmud .wphb-caching-error {
2983
- text-align: left;
2984
- }
2985
- .wpmud .wphb-caching-error a {
2986
- text-decoration: underline;
2987
- }
2988
- .wpmud .wrap-wphb-caching .wphb-spinner {
2989
- float: none;
2990
- background-size: 15px 15px;
2991
- }
2992
- .wpmud .wphb-caching-cloudflare-box > p {
2993
- margin: 0 0 20px 0;
2994
- }
2995
- .wpmud .box-caching-enable .buttons {
2996
- margin-top: -20px;
2997
- }
2998
-
2999
- .wpmud .caching-table {
3000
- margin: 30px 0 0;
3001
- }
3002
- .wpmud .wphb-caching-summary-heading,
3003
- .wpmud .box-gzip-summary .list-label {
3004
- text-transform: none !important;
3005
- color: #333333;
3006
- font-size: 13px;
3007
- }
3008
-
3009
- .wpmud #cloudflare-how-to-title,
3010
- .wpmud #cloudflare-how-to {
3011
- text-align:left;
3012
- }
3013
- .wpmud #cloudflare-how-to a {
3014
- font-weight: 500;
3015
- text-decoration: underline;
3016
- color: inherit;
3017
- }
3018
- .wpmud #cloudflare-info {
3019
- clear:both;
3020
- }
3021
- .wpmud #cloudflare-info.wphb-notice {
3022
- margin-top: 30px;
3023
- }
3024
- .wpmud .cloudflare-submit {
3025
- margin-bottom:0;
3026
- }
3027
- .wpmud #cloudflare-zone .clear {
3028
- padding:0;
3029
- }
3030
- .wpmud #cloudflare-zone label {
3031
- margin-bottom:13px;
3032
- }
3033
- .wpmud #cloudflare-zone .cloudflare-submit {
3034
- margin-top: 22px;
3035
- }
3036
- .wpmud #cloudflare-steps .wphb-notice-success {
3037
- margin-top:0;
3038
- }
3039
-
3040
- @media screen and (max-width: 1200px) and (min-width: 783px) {
3041
- .wpmud #cloudflare-how-to-title {
3042
- float:none;
3043
- display: block;
3044
- text-align: center;
3045
- margin-bottom:0;
3046
- }
3047
- .wpmud .cloudflare-step p.cloudflare-submit {
3048
- float:none;
3049
- position:relative;
3050
- }
3051
- .wpmud .cloudflare-step p.cloudflare-submit .cloudflare-spinner {
3052
- position:absolute;
3053
- right:0;
3054
- top: 10px;
3055
- }
3056
- }
3057
-
3058
- .wpmud .wphb-server-instructions .wphb-notice,
3059
- .wpmud .box-caching-summary .wphb-notice,
3060
- .wpmud .box-gzip-summary .wphb-notice {
3061
- margin-bottom: 30px !important;
3062
- }
3063
- .wpmud .wphb-server-instructions .wphb-notice.wphb-notice-blue p {
3064
- font-size: 13px;
3065
- line-height: 22px;
3066
- }
3067
-
3068
- /* Expiration table */
3069
- .wpmud input[name='expiry-set-type'] {
3070
- box-shadow: inset 0 1px 2px rgba( 0, 0, 0, 0 );
3071
- border: 1px solid #E6E6E6;
3072
- background-color: #F8F8F8;
3073
- }
3074
- .wpmud input[name='expiry-set-type']:checked {
3075
- border: 1px solid #17A8E3;
3076
- background-color: #17A8E3;
3077
- }
3078
- .wpmud input[name='expiry-set-type']:checked + label {
3079
- color: #333333;
3080
- }
3081
- .wpmud input[name='expiry-set-type']:checked:before {
3082
- width: 8px;
3083
- height: 8px;
3084
- margin: 3px;
3085
- background-color: #ffffff;
3086
- }
3087
- .wpmud input[name='expiry-set-type'] + label {
3088
- display: inline-block;
3089
- margin-top: 0;
3090
- font-size: 15px;
3091
- }
3092
- .wpmud .wphb-border-frame .table-header .wphb-caching-summary-heading-type {
3093
- flex-basis: 85px;
3094
- }
3095
- .wpmud .wphb-border-frame .table-row .wphb-gzip-summary-item-type,
3096
- .wpmud .wphb-border-frame .table-row .wphb-caching-summary-item-type {
3097
- flex-basis: 90px;
3098
- }
3099
- .wpmud .wphb-border-frame .table-row .wphb-caching-summary-item-expiry,
3100
- .wpmud .wphb-border-frame .table-row .wphb-caching-summary-item-status {
3101
- flex-basis: 80px;
3102
- }
3103
- .wpmud .wphb-border-frame .table-row .wphb-caching-summary-item-type {
3104
- font-size: 13px;
3105
- font-weight: 500;
3106
- color: #333333;
3107
- }
3108
-
3109
- .wpmud .box-caching-settings label,
3110
- .wpmud .box-gzip-settings label {
3111
- margin-top: 15px;
3112
- margin-bottom: 5px;
3113
- padding: 0;
3114
- }
3115
- .wpmud .box-caching-settings label,
3116
- .wpmud .box-gzip-settings label,
3117
- .wpmud .box-caching-settings .wphb-border-frame > label,
3118
- .wpmud .box-gzip-settings .wphb-border-frame > label {
3119
- color: #888888;
3120
- font-size: 13px;
3121
- font-weight: 500;
3122
- line-height: 22px;
3123
- }
3124
- .wpmud .wphb-caching-cloudflare-settings .wphb-expiry-select {
3125
- width: 85%;
3126
- }
3127
- .wrap-wphb-caching .cloudflare-step label:first-child {
3128
- margin-top: 0;
3129
- }
3130
-
3131
- /* Server select tabs (automatic/manual) */
3132
- .wpmud .wrap-wphb-gzip .tabs,
3133
- .wpmud .wrap-wphb-caching .tabs,
3134
- .wpmud .wrap-wphb-gzip .tabs .tab label,
3135
- .wpmud .wrap-wphb-caching .tabs .tab label,
3136
- .wpmud .wrap-wphb-gzip .tabs .tab .content,
3137
- .wpmud .wrap-wphb-caching .tabs .tab .content {
3138
- border: 0;
3139
- }
3140
-
3141
- .wpmud .wrap-wphb-gzip .tabs .tab .content,
3142
- .wpmud .wrap-wphb-caching .tabs .tab .content {
3143
- border-top: 2px solid #E6E6E6;
3144
- top: 38px;
3145
- }
3146
- .wpmud .wrap-wphb-gzip .tabs .tab label,
3147
- .wpmud .wrap-wphb-caching .tabs .tab label {
3148
- font-size: 15px;
3149
- text-transform: capitalize;
3150
- color: #888888;
3151
- padding: 0 10px;
3152
- line-height: 1.5em;
3153
- height: 40px;
3154
- }
3155
- .wpmud .wrap-wphb-gzip #enable-cache-wrap .button,
3156
- .wpmud .wrap-wphb-caching #enable-cache-wrap .button {
3157
- margin-top: 30px;
3158
- }
3159
-
3160
- .wpmud .wphb-server-instructions p,
3161
- .wpmud .wphb-server-instructions .wphb-listing li {
3162
- color: #888888;
3163
- font-size: 13px;
3164
- line-height: 22px;
3165
- }
3166
- .wpmud .wphb-server-instructions .wphb-listing li {
3167
- margin-top: 0;
3168
- }
3169
-
3170
- .wpmud .wphb-server-instructions .tabs {
3171
- margin: 0;
3172
- }
3173
- .wpmud .wphb-server-instructions .tabs .tab .content {
3174
- padding: 20px 0 0;
3175
- }
3176
- .wpmud .wphb-server-instructions .tabs .tab > .active {
3177
- color: #333333;
3178
- border-bottom: 2px solid #333333;
3179
- z-index: 10;
3180
- }
3181
-
3182
-
3183
- .wpmud .wphb-code-snippet .button {
3184
- position: absolute;
3185
- left: 100%;
3186
- margin-left: -80px !important;
3187
- margin-top: 20px !important;
3188
- }
3189
-
3190
- /* Page caching */
3191
- .wpmud .box-page-caching .box-footer {
3192
- border-top: 1px solid #E6E6E6;
3193
- padding: 50px 30px;
3194
- }
3195
- .wpmud .box-page-caching .box-footer .buttons > .button {
3196
- margin-top: -20px;
3197
- }
3198
- .wpmud .box-page-caching h4 {
3199
- color: #666666;
3200
- font-size: 15px;
3201
- font-weight: 500;
3202
- text-align: left;
3203
- text-transform: none;
3204
- }
3205
- .wpmud .box-page-caching textarea {
3206
- height: 180px;
3207
- max-width: 490px;
3208
- color: #333333;
3209
- border: 1px solid #E6E6E6;
3210
- border-radius: 4px;
3211
- background-color: #F8F8F8;
3212
- margin-top: 20px;
3213
- }
3214
- .wpmud .box-page-caching .col-two-third .with-bottom-border {
3215
- margin-bottom: 30px;
3216
- }
3217
- /* Page caching: page types table */
3218
- .wpmud .box-page-caching .wphb-dash-table .sub {
3219
- width: 75px;
3220
- }
3221
- .wpmud .box-page-caching .wphb-dash-table .wphb-dash-table-row:first-child {
3222
- border-top: 0;
3223
- }
3224
- .wpmud .box-page-caching .wphb-dash-table .wphb-dash-table-row:last-child {
3225
- border-bottom: 0;
3226
- }
3227
-
3228
- /* Gravatar caching */
3229
- .wpmud .box-caching-gravatar .button-large {
3230
- margin: 0 !important;
3231
- }
3232
- .wpmud .box-page-caching .wphb-notice,
3233
- .wpmud .box-caching-gravatar .wphb-notice {
3234
- margin-top: 20px;
3235
- }
3236
-
3237
- /* ****************************************************************************
3238
- * 8. GZIP COMPRESSION
3239
- */
3240
- .wpmud #wphb-code-snippet {
3241
- margin-top: 20px;
3242
- margin-bottom: 20px;
3243
- }
3244
- .wpmud .wphb-gzip-error {
3245
- text-align:left;
3246
- }
3247
- .wpmud .wphb-gzip-error p:first-child {
3248
- margin: 0 0 10px 0;
3249
- }
3250
- .wpmud .wphb-gzip-error a,
3251
- .wpmud #configure-gzip-link {
3252
- text-decoration:underline;
3253
- }
3254
-
3255
-
3256
- .wpmud .box-gzip-settings .inline-label {
3257
- color: #888888 !important;
3258
- font-size: 13px;
3259
- font-weight: 500;
3260
- padding-left: 0 !important;
3261
- }
3262
- .wpmud .box-gzip-settings .select-container {
3263
- max-width: 240px;
3264
- }
3265
-
3266
- .wpmud .box-gzip-settings .wphb-notice-blue {
3267
- margin-top: 0;
3268
- margin-bottom: 30px;
3269
- padding: 15px 20px;
3270
- }
3271
- .wpmud .box-gzip-settings .wphb-notice-blue p {
3272
- font-size: 13px;
3273
- }
3274
- .wpmud .box-gzip-settings .wphb-notice-blue p:before {
3275
- font-size: 16px;
3276
- }
3277
- .wpmud .box-gzip-settings .wphb-notice.htaccess-warning {
3278
- margin-top: 30px;
3279
- margin-bottom: 0 !important;
3280
- padding: 15px 20px;
3281
- }
3282
- .wpmud .box-gzip-settings .wphb-notice.htaccess-warning a {
3283
- text-decoration: underline;
3284
- }
3285
-
3286
- @media screen and (min-width: 960px) {
3287
- .wpmud .wphb-border-frame.two-columns .table-header,
3288
- .wpmud .wphb-border-frame.two-columns .table-row {
3289
- justify-content: flex-start;
3290
- }
3291
- .wpmud .wphb-border-frame.two-columns .table-header > div:first-child,
3292
- .wpmud .wphb-border-frame.two-columns .table-row > div:first-child {
3293
- flex-basis: 50%;
3294
- }
3295
- }
3296
-
3297
- /* ****************************************************************************
3298
- * 9. UPTIME
3299
- */
3300
-
3301
- .wpmud .wphb-block-uptime-status .wphb-uptime-icon {
3302
- max-height: 110px;
3303
- }
3304
- .wpmud .wphb-block-content-uptime-data-range {
3305
- padding-top: 9px;
3306
- padding-bottom: 9px;
3307
- }
3308
- .wpmud .uptime-chart svg g g rect {
3309
- fill: #E6E6E6;
3310
- stroke: transparent;
3311
- stroke-width: 0;
3312
- }
3313
- .wpmud .uptime-chart svg g g text {
3314
- fill: #fff;
3315
- font-family: 'Roboto', Arial, sans-serif;
3316
- font-size: 13px;
3317
- font-weight: 400;
3318
- }
3319
- .wpmud .uptime-chart svg g g text:last-of-type {
3320
- fill: #AAAAAA;
3321
- font-weight: 500;
3322
- }
3323
- .wrap-wp-hummingbird .button-cta-green:hover {
3324
- box-shadow: none;
3325
- }
3326
- .wpmud .wrap-wphb-uptime .wphb-pills.red,
3327
- .wpmud .wrap-wphb-uptime .wphb-pills.green {
3328
- height: 40px;
3329
- line-height: 40px;
3330
- width: 200px;
3331
- border-radius: 5px;
3332
- }
3333
- .wpmud .wphb-block-uptime-downtime .dev-list {
3334
- margin-top: 30px;
3335
- }
3336
-
3337
- .wrap-wphb-uptime .wphb-block-entry .wphb-block-content-center,
3338
- .wrap-wphb-caching .wphb-block-entry .wphb-block-content-center {
3339
- max-width:600px;
3340
- margin:0 auto;
3341
- }
3342
-
3343
- /* ****************************************************************************
3344
- * 10. RESPONSIVE/MQ
3345
- */
3346
- /* VERY LARGE DESKTOP */
3347
- @media screen and (max-width: 1600px) {
3348
- /* Page: Minification */
3349
- #wphb-minification-filter .wphb-minification-filter-field-item {
3350
- margin-left: 20px;
3351
- }
3352
- .wpmud .wphb-filename-info {
3353
- max-width: 349px;
3354
- }
3355
- }
3356
-
3357
- /* WIDE DESKTOP */
3358
- @media screen and (max-width: 1440px) {
3359
- .wpmud .wphb-filename-info {
3360
- max-width: 280px;
3361
- }
3362
-
3363
- /* Page: Minification */
3364
- #wphb-minification-filter .wphb-minification-filter-field {
3365
- float: none;
3366
- margin: 0 15px;
3367
- width: 35%;
3368
- display: inline-block;
3369
- }
3370
- #wphb-minification-filter .wphb-minification-filter-field:last-child {
3371
- margin: 0;
3372
- }
3373
- .wpmud .wphb-minification-file-details .wphb-filename-info {
3374
- max-width: 270px;
3375
- }
3376
- .wpmud .wphb-minification-file-details {
3377
- flex: 0 0 44%;
3378
- }
3379
- .wpmud .wphb-minification-row-details {
3380
- flex: 0 0 44%;
3381
- }
3382
- }
3383
-
3384
- @media screen and (max-width: 1300px) {
3385
- /* Page: minification */
3386
- .wpmud .wphb-minification-file-details .wphb-filename-info {
3387
- max-width: 250px;
3388
- }
3389
- .wpmud .wphb-minification-file-details {
3390
- flex: 0 0 43%;
3391
- }
3392
- .wpmud .wphb-minification-row-details {
3393
- flex: 0 0 45%;
3394
- }
3395
- }
3396
-
3397
- @media screen and (max-width: 1250px) {
3398
- /* Page: minification */
3399
- .wpmud .wphb-minification-file-details .wphb-filename-info {
3400
- max-width: 250px;
3401
- }
3402
- /* Page: minification */
3403
- .wpmud .wphb-minification-file-details .wphb-filename-info {
3404
- max-width: 250px;
3405
- }
3406
- }
3407
-
3408
- /* LARGE DESKTOP */
3409
- @media screen and (max-width: 1200px) {
3410
-
3411
- /* Responsive Class Helpers */
3412
- .hide-to-large {
3413
- display: none;
3414
- }
3415
-
3416
- /* Block: Steps */
3417
- .wphb-steps {
3418
- text-align: center;
3419
- }
3420
- .wphb-step-number {
3421
- float: none;
3422
- margin-bottom: 10px;
3423
- }
3424
- .wphb-step-number-inner {
3425
- margin: 0 auto;
3426
- }
3427
- .wphb-step-content {
3428
- margin-left: 0;
3429
- }
3430
-
3431
- /* Page: Dashboard */
3432
- .wpmud .box-dashboard-smush-no-membership .content-box-two-cols-image-left .wphb-block-entry-content {
3433
- margin-top: 65px;
3434
- }
3435
- .wpmud .content-box-two-cols-image-left .wphb-block-entry-content {
3436
- margin-top: 65px;
3437
- }
3438
-
3439
- /* Page: Minification */
3440
- .wpmud .wphb-filename-info {
3441
- float: none;
3442
- width: auto;
3443
- }
3444
- .wpmud .wphb-minification-file-details .wphb-filename-info {
3445
- max-width: 190px;
3446
- }
3447
- .wpmud .wphb-minification-file-details {
3448
- flex: 0 0 37%;
3449
- }
3450
- .wpmud .wphb-minification-row-details {
3451
- flex: 0 0 51%;
3452
- }
3453
-
3454
- /* Page: Performance */
3455
- .wpmud .performance-report-table .wphb-performance-report-item-score,
3456
- .wpmud .performance-report-table .wphb-performance-report-item-type {
3457
- width: 115px;
3458
- }
3459
- .wpmud .performance-report-table .wphb-performance-report-item-cta {
3460
- width: 180px;
3461
- }
3462
- .wpmud .box-reporting-summary .box-footer .wphb-block-entry-content {
3463
- margin-top: 0;
3464
- }
3465
-
3466
- /* Page: Caching */
3467
- .wpmud .wrap-wphb-caching .row {
3468
- display: block;
3469
- table-layout: inherit;
3470
- }
3471
- .wpmud .wrap-wphb .row .col-half,
3472
- .wpmud .wrap-wphb-caching .row .col-half,
3473
- .wpmud .wrap-wphb-gzip .row .col-half {
3474
- display: block;
3475
- margin-top: 30px;
3476
- padding: 0;
3477
- width: 100%;
3478
- }
3479
- .wpmud .wrap-wphb .row .col-half:first-child,
3480
- .wpmud .wrap-wphb-caching .row .col-half:first-child,
3481
- .wpmud .wrap-wphb-gzip .row .col-half:first-child {
3482
- margin-top: 0;
3483
- }
3484
- }
3485
-
3486
- @media screen and (max-width: 1160px) {
3487
-
3488
- /* Page Minification */
3489
- .wpmud .wphb-enqueued-files {
3490
- margin-left: -30px !important;
3491
- margin-right: -30px !important;
3492
- border-radius: 0;
3493
- border-left: 0;
3494
- border-right: 0;
3495
- }
3496
-
3497
- .wpmud .wphb-border-row > .wphb-minification-exclude,
3498
- .wpmud .wphb-minification-row-details > div:not(.wphb-minification-configuration) {
3499
- margin-left: 10px;
3500
- }
3501
-
3502
- }
3503
-
3504
- /* DESKTOP */
3505
- @media screen and (max-width: 1100px) {
3506
-
3507
- /* Box: Content w/Image (left) */
3508
- .wpmud .content-box-two-cols-image-left .wphb-block-entry {
3509
- text-align: center;
3510
- min-height: 100%;
3511
- }
3512
- .wpmud .content-box-two-cols-image-left .wphb-block-entry-image {
3513
- display: none;
3514
- }
3515
- .wpmud .wphb-block-entry-third {
3516
- width: 49%;
3517
- }
3518
- .wpmud .content-box-two-cols-image-left .wphb-block-entry-image .wphb-image {
3519
- margin: 0 auto;
3520
- }
3521
- .wpmud .content-box-two-cols-image-left .wphb-block-entry-content {
3522
- margin: 35px 0 0 155px;
3523
- }
3524
- .wpmud .content-box-two-cols-image-left .wphb-block-entry-content .title {
3525
- text-align: center;
3526
- }
3527
-
3528
- .wpmud .wphb-block-entry-third {
3529
- text-align: left;
3530
- padding-left: 0;
3531
- }
3532
-
3533
- /* Responsive Uitlities */
3534
- .hide-to-desktop {
3535
- display: none !important;
3536
- }
3537
-
3538
- /* Page: Dashboard */
3539
- .wpmud .box-dashboard-uptime-no-membership .wphb-block-entry-image,
3540
- .wpmud .box-dashboard-reports-no-membership .wphb-block-entry-image {
3541
- display: none;
3542
- }
3543
- .wpmud .wphb-cf-notice p,
3544
- .wpmud .wphb-upsell-free-message p {
3545
- margin-left: auto;
3546
- margin-top: 30px;
3547
- }
3548
- .wpmud .wphb-cf-notice p:after,
3549
- .wpmud .wphb-upsell-free-message p:after {
3550
- display: none;
3551
- }
3552
-
3553
- /* Page: Performance */
3554
- .wpmud .performance-report-table .wphb-performance-report-item-type {
3555
- width: 105px;
3556
- }
3557
- .wpmud .performance-report-table .wphb-performance-report-item-cta {
3558
- width: 165px;
3559
- }
3560
- .wpmud .performance-report-table .wphb-performance-report-item-score {
3561
- width: 105px;
3562
- padding-left: 20px !important;
3563
- }
3564
-
3565
-
3566
-
3567
- /* Page: Minification */
3568
- .wpmud .wphb-minification-file-details .wphb-filename-info {
3569
- max-width: 170px;
3570
- }
3571
- .wpmud .wphb-minification-file-details {
3572
- flex: 0 0 35%;
3573
- }
3574
- .wpmud .wphb-minification-row-details {
3575
- flex: 0 0 53%;
3576
- }
3577
- .wpmud .wphb-border-row > .wphb-minification-exclude,
3578
- .wpmud .wphb-minification-row-details > div:not(.wphb-minification-configuration) {
3579
- margin-left: 10px;
3580
- }
3581
- }
3582
-
3583
- @media screen and (max-width: 1060px) {
3584
- .wpmud .wphb-border-row-header,
3585
- .wpmud .wphb-border-row {
3586
- padding: 15px 15px;
3587
- }
3588
- /* Page: Minification */
3589
- .wpmud .wphb-minification-file-details .wphb-filename-info {
3590
- max-width: 140px;
3591
- }
3592
- .wpmud .wphb-minification-file-details {
3593
- flex: 0 0 30%;
3594
- }
3595
- .wpmud .wphb-minification-row-details {
3596
- flex: 0 0 58%;
3597
- }
3598
- }
3599
-
3600
- /* SMALL DESKTOP */
3601
- @media screen and (max-width: 960px) {
3602
- /* Generic */
3603
- .wpmud .row {
3604
- display: block;
3605
- }
3606
- .wpmud .row .col-fifth {
3607
- display: block;
3608
- width: 100%;
3609
- padding: 0;
3610
- }
3611
- .wpmud .row .col-four-fifths {
3612
- display: block;
3613
- width: 100%;
3614
- padding: 0;
3615
- }
3616
-
3617
- .wpmud .dev-overlay {
3618
- left: 35px;
3619
- top: 15px;
3620
- }
3621
-
3622
- .wpmud .wphb-table.stack {
3623
- display: block;
3624
- }
3625
- .wpmud .wphb-table.stack > thead,
3626
- .wpmud .wphb-table.stack > tfoot {
3627
- display: none;
3628
- }
3629
- .wpmud .wphb-table.stack > tbody {
3630
- display: block;
3631
- width: 100%;
3632
- }
3633
- .wpmud .wphb-table.stack > tbody > tr {
3634
- display: block;
3635
- position: relative;
3636
- width: 100%;
3637
- }
3638
- .wpmud .wphb-table.stack > tbody > tr:before {
3639
- background: transparent;
3640
- border-top: 1px solid #EAEAEA;
3641
- border-bottom: 1px solid transparent;
3642
- bottom: 0;
3643
- content: "";
3644
- display: block;
3645
- left: 0;
3646
- margin: 0 -30px;
3647
- position: absolute;
3648
- right: 0;
3649
- top: 0;
3650
- }
3651
- .wpmud .wphb-table.stack > tbody > tr:first-child:before {
3652
- border-top-color: transparent;
3653
- }
3654
- .wpmud .wphb-table.stack > tbody > tr > td {
3655
- border-bottom: none;
3656
- display: block;
3657
- padding-left: 0;
3658
- position: relative;
3659
- text-align: left;
3660
- width: 100%;
3661
- }
3662
- .wpmud .wphb-table.stack > tbody > tr > td:before {
3663
- content: attr(th-data);
3664
- display: block;
3665
- float: left;
3666
- font-size: 15px;
3667
- font-weight: 700;
3668
- line-height: 1.5em;
3669
- min-width: 150px;
3670
- max-width: 300px;
3671
- margin-right: 20px;
3672
- text-transform: uppercase;
3673
- /*width: 40%;*/
3674
- }
3675
- .wpmud .wphb-table.stack > tbody > tr > td.has-button-label:before {
3676
- line-height: 2em;
3677
- }
3678
- .wpmud .wphb-table.stack > tbody > tr > td.has-select {
3679
- max-height: 64px;
3680
- }
3681
- .wpmud .wphb-table.stack > tbody > tr > td.has-select:before {
3682
- line-height: 2.867em;
3683
- }
3684
- .wpmud .wphb-table.stack > tbody > tr,
3685
- .wpmud .wphb-table.stack > tbody > tr > td:first-child {
3686
- border-top: none;
3687
- }
3688
- .wpmud .wphb-table.stack > tbody > tr > td:last-child {
3689
- border-bottom: none;
3690
- }
3691
- .wpmud .wphb-table.stack > tbody > tr:hover:before {
3692
- background: #FBFBFB;
3693
- }
3694
- .wpmud .wphb-table.stack > tbody > tr:first-child:hover:before {
3695
- border-top-color: #EAEAEA;
3696
- }
3697
- .wpmud .wphb-table.stack > tbody > tr:last-child:hover:before {
3698
- border-bottom-color: #EAEAEA;
3699
- }
3700
- .wpmud .wphb-table.stack > tbody > tr:hover > td {
3701
- border-bottom: none;
3702
- }
3703
- .wpmud .wphb-table.stack > tbody > tr:hover > td:first-child:after,
3704
- .wpmud .wphb-table.stack > tbody > tr:hover > td:last-child:after {
3705
- display: none;
3706
- }
3707
- .wpmud .wphb-table.stack > tbody > tr > td > * {
3708
- display: inline-block;
3709
- }
3710
- .wpmud .wphb-block-entry-third {
3711
- padding-left: 0;
3712
- }
3713
-
3714
- /* Page: Minification */
3715
- .wpmud .wphb-minification-file-details .wphb-filename-info {
3716
- max-width: 250px;
3717
- }
3718
- .wpmud .wphb-minification-file-details {
3719
- flex: 0 0 40%;
3720
- }
3721
- .wpmud .wphb-minification-row-details {
3722
- flex: 0 0 48%;
3723
- }
3724
- }
3725
-
3726
- /* TABLET */
3727
- @media screen and (max-width: 783px) {
3728
- /* Generic */
3729
- .wpmud #header .actions {
3730
- position: relative;
3731
- display: flex;
3732
- align-items: center;
3733
- top: 0;
3734
- margin: 10px 0 10px;
3735
- float: none;
3736
- padding-bottom: 0;
3737
- }
3738
- .wpmud #header .actions .button:first-child {
3739
- margin-left: 0;
3740
- }
3741
- .wpmud #header .actions [tooltip].tooltip-bottom:after {
3742
- margin-left: -54px;
3743
- }
3744
- .wpmud .box-content .with-padding {
3745
- padding: 0;
3746
- }
3747
- .wpmud .dev-overlay {
3748
- left: 0;
3749
- top: 0;
3750
- }
3751
- .wpmud .row,
3752
- .wpmud .row-sep {
3753
- display: block;
3754
- table-layout: inherit;
3755
- }
3756
- .wpmud .row .col-third,
3757
- .wpmud .row .col-two-third,
3758
- .wpmud .row .col-half,
3759
- .wpmud .row .col-quarter,
3760
- .wpmud .row .col-three-quarters {
3761
- display: block;
3762
- margin-top: 30px;
3763
- padding: 0;
3764
- width: 100%;
3765
- }
3766
- .wpmud .row .col-third:first-child,
3767
- .wpmud .row .col-two-third:first-child,
3768
- .wpmud .row .col-half:first-child,
3769
- .wpmud .row .col-quarter:first-child,
3770
- .wpmud .row .col-three-quarters:first-child {
3771
- margin-top: 0;
3772
- }
3773
- .wpmud .content-box-two-cols-image-left .wphb-block-entry-image {
3774
- display: none;
3775
- }
3776
-
3777
- .wpmud .wphb-border-frame {
3778
- border: 0
3779
- }
3780
-
3781
- .wpmud .wphb-table-wrapper.complex {
3782
- overflow-y: hidden;
3783
- width: 100%;
3784
- padding: 0;
3785
- }
3786
- .wpmud .wphb-table-wrapper.complex p {
3787
- padding: 0 20px;
3788
- }
3789
- .wpmud .wphb-table-wrapper.complex .alignleft {
3790
- padding-left: 20px;
3791
- }
3792
- .wpmud .wphb-table-wrapper.complex .alignright {
3793
- padding-right: 20px;
3794
- }
3795
-
3796
- .wpmud .list-table > thead > tr > th,
3797
- .wpmud .list-table > tbody > tr > td {
3798
- width: 100%;
3799
- }
3800
-
3801
- .wpmud .wphb-table.stack > tbody > tr > td:before {
3802
- max-width: 220px;
3803
- width: 40%;
3804
- }
3805
-
3806
- .wpmud .dev-box .box-title .toggle-group {
3807
- margin-top: 0;
3808
- }
3809
-
3810
- .wpmud .wrap-wp-hummingbird > .wphb-notice {
3811
- width: 85%;
3812
- }
3813
- .wpmud #header .after-header-actions .button {
3814
- margin-top: -15px;
3815
- }
3816
-
3817
- /* Page: Dashboard */
3818
- .wpmud .callout-box .callout-title {
3819
- line-height: 30px;
3820
- }
3821
-
3822
- /* Page: Performance */
3823
- .wpmud .performance-report-table th,
3824
- .wpmud .performance-report-table td {
3825
- width: 70% !important;
3826
- }
3827
- .wpmud .wphb-performance-report-heading.wphb-performance-report-heading-type,
3828
- .wpmud .wphb-performance-report-item-type,
3829
- .wpmud .wphb-performance-report-item-cta > button {
3830
- display: none !important;
3831
- }
3832
-
3833
- /* Page: Minification */
3834
- #wphb-minification-filter .wphb-minification-filter-block {
3835
- border-top: 1px solid #EAEAEA;
3836
- float: none;
3837
- margin: 0 0 30px;
3838
- padding-top: 30px;
3839
- width: 100%;
3840
- }
3841
- #wphb-minification-filter .wphb-minification-filter-block:last-child {
3842
- margin: 0;
3843
- }
3844
- #wphb-minification-filter .wphb-minification-filter-block:first-child {
3845
- border-top: none;
3846
- padding-top: 0;
3847
- }
3848
-
3849
- .wpmud .wphb-border-row-header {
3850
- display: none;
3851
- }
3852
- .wpmud .wphb-border-row,
3853
- .wpmud .wphb-minification-row-details {
3854
- display: block;
3855
- }
3856
- .wpmud .wphb-border-row {
3857
- border-top: 1px solid #eee;
3858
- border-bottom: 1px solid #eee;
3859
- }
3860
-
3861
- .wpmud .wphb-minification-file-select {
3862
- float: left;
3863
- margin-top: 9px;
3864
- margin-right: 15px;
3865
- }
3866
-
3867
- .wpmud .wphb-minification-row-details {
3868
- display: none;
3869
- }
3870
-
3871
- .wpmud .wphb-minification-configuration .checkbox-group,
3872
- .wpmud .wphb-minification-configuration .checkbox-group input[type="checkbox"] + label{
3873
- width: 100%;
3874
- }
3875
-
3876
- .wpmud .wphb-minification-configuration,
3877
- .wpmud .wphb-minification-file-size {
3878
- margin-top: 20px;
3879
- }
3880
-
3881
- .wpmud .wphb-minification-configuration > strong,
3882
- .wpmud .wphb-minification-file-size > strong {
3883
- display: block;
3884
- color: #333333;
3885
- font-size: 13px;
3886
- font-weight: bold;
3887
- line-height: 30px;
3888
- }
3889
-
3890
- .wpmud .wphb-minification-exclude {
3891
- position: relative;
3892
- top: -32px;
3893
- left: 100%;
3894
- margin-left: -20px !important;
3895
- margin-bottom: -25px;
3896
- }
3897
-
3898
- .wpmud .wphb-minification-file-size {
3899
- text-align: left;
3900
- margin-left: 0 !important;
3901
- }
3902
- .wpmud .wphb-minification-file-size > div:first-child {
3903
- margin-top: 15px;
3904
- }
3905
- .wpmud .wphb-minification-file-size > div:last-child > div {
3906
- margin-top: 5px;
3907
- }
3908
- .wpmud .wphb-minification-file-size > div > span {
3909
- display: inline-block;
3910
- }
3911
-
3912
- .wpmud .wphb-minification-file-size > div > span:nth-child(2),
3913
- .wpmud .wphb-minification-file-size > div > span:nth-child(3) {
3914
- position: relative ;
3915
- left: 100%;
3916
- margin-left: -90px;
3917
- }
3918
- .wpmud .wphb-minification-file-size > div > span:nth-child(2) {
3919
- top: 3px;
3920
- }
3921
- .wpmud .wphb-minification-file-size > div > span:nth-child(3) {
3922
- margin-left: 0;
3923
- }
3924
-
3925
- .wpmud .wphb-minification-file-size .wphb-scan-progress {
3926
- display: block;
3927
- }
3928
- .wpmud .wphb-minification-file-size .wphb-scan-progress-bar {
3929
- background-color: #1ABC9C;
3930
- margin-bottom: 10px;
3931
- }
3932
- .wpmud .wphb-minification-file-size .wphb-scan-progress-bar span {
3933
- background-color: #E6E6E6;
3934
- }
3935
- }
3936
-
3937
- /* LARGE MOBILE */
3938
- @media screen and (max-width: 600px) {
3939
- /* Responsive Class Helpers */
3940
- .hide-to-mobile {
3941
- display: none !important;
3942
- }
3943
-
3944
- .wpmud .wphb-block-entry-third {
3945
- display: block;
3946
- text-align: center;
3947
- width: 100%;
3948
- }
3949
- .wpmud .wphb-block-entry-third .dev-list {
3950
- text-align: left;
3951
- }
3952
-
3953
- /* Generic */
3954
- .wpmud .dev-box .box-title .actions,
3955
- .wpmud .dev-box .box-title .extra,
3956
- .wpmud .dev-box .box-title .test-results {
3957
- float: none;
3958
- display: block;
3959
- }
3960
- .wpmud .dev-box .box-title .actions,
3961
- .wpmud .dev-box .box-title .extra {
3962
- margin-top: 15px;
3963
- }
3964
- .wpmud .dev-box .box-title {
3965
- padding: 15px 20px;
3966
- }
3967
- .wpmud .dev-box .box-title .buttons {
3968
- margin-top: 2px;
3969
- float: right;
3970
- }
3971
- .wpmud .dev-box .box-title .wphb-pills {
3972
- margin: 4px 0 0 10px;
3973
- }
3974
- .wpmud .dev-box .box-title h3 {
3975
- line-height: 34px;
3976
- display: inline-block;
3977
- }
3978
- .wpmud section[class^="box-dashboard-"] .box-title:before {
3979
- margin: 5px 10px 5px 0;
3980
- }
3981
- .wphb-pills {
3982
- margin: 0 0 0 10px;
3983
- }
3984
- .wphb-pills-group .wphb-pills:first-child {
3985
- border-radius: 5px 5px 0 0 !important;
3986
- }
3987
- .wphb-pills-group .wphb-pills:last-child {
3988
- border-radius: 0 0 5px 5px !important;
3989
- }
3990
- .wpmud .wrap-wp-hummingbird > .wphb-notice {
3991
- width: 100%;
3992
- top: 46px;
3993
- margin-left: -251px;
3994
- }
3995
-
3996
- /* Page: Dashboard */
3997
- .wpmud .wphb-block-entry-third .current-performance-score {
3998
- margin-bottom: 5px;
3999
- }
4000
- .wpmud .content-box-two-cols-image-left .wphb-block-entry-content.wphb-cf-notice {
4001
- margin: 35px 0 0 0;
4002
- }
4003
- .box-dashboard-browser-caching-module .box-content {
4004
- background-image: none;
4005
- }
4006
- }
4007
-
4008
- /* MOBILE */
4009
- @media screen and (max-width: 480px) {
4010
- /* Compoents: Pills */
4011
- .wphb-pills-group {
4012
- border-collapse: inherit;
4013
- border-spacing: inherit;
4014
- }
4015
- .box-dashboard-minification-module .wphb-pills {
4016
- display: block;
4017
- }
4018
- .wphb-pills.with-arrow.right:after,
4019
- .wphb-pills.with-arrow.left:after {
4020
- border-top-color: #19B4CF;
4021
- margin-top: 0;
4022
- margin-left: -8px;
4023
- top: 50%;
4024
- }
4025
- .wphb-pills.with-arrow.right:after {
4026
- border-left-color: transparent;
4027
- left: 50%;
4028
- }
4029
- .wphb-pills.with-arrow.left:after {
4030
- border-right-color: transparent;
4031
- right: 50%;
4032
- }
4033
- .wphb-pills.with-arrow.right.grey:after {
4034
- border-top-color: #eee;
4035
- border-left-color: transparent;
4036
- }
4037
- .wphb-pills.with-arrow.left.grey:after {
4038
- border-top-color: #eee;
4039
- border-right-color: transparent;
4040
- }
4041
-
4042
- /* Page: Dashboard */
4043
- .wpmud .box-dashboard-performance-module .wphb-score-result-label {
4044
- margin-left: 3px;
4045
- margin-right: 5px;
4046
- }
4047
- .wpmud .box-dashboard-performance-module .wphb-dash-table .button-ghost {
4048
- padding: 5px 6px 7px !important;
4049
- }
4050
- .wpmud .wphb-score.wphb-score-have-label {
4051
- width: 65px;
4052
- }
4053
- .wpmud .dev-box .status-text {
4054
- line-height: 15px;
4055
- margin-top: 0;
4056
- padding-left: 10px;
4057
- word-wrap: break-word;
4058
- max-width: 150px;
4059
- }
4060
-
4061
- /* Performance reports */
4062
- .wpmud .wrap-wphb-performance .recipient,
4063
- .wpmud .wrap-wphb-performance .recipient .name,
4064
- .wpmud .wrap-wphb-performance .add-recipient {
4065
- flex-flow: row wrap;
4066
- }
4067
- .wpmud .wrap-wphb-performance .add-recipient > button,
4068
- .wpmud .wrap-wphb-performance .add-recipient #wphb-first-name {
4069
- border-radius: 0 !important;
4070
- margin-bottom: 5px;
4071
- border: 1px solid #E6E6E6;
4072
- }
4073
- .wpmud .wrap-wphb-performance .add-recipient > button {
4074
- margin-top: 10px !important;
4075
- }
4076
- }
4077
-
4078
- /* HELPER CLASSES */
4079
- @media screen and (min-width: 960px) {
4080
- .hide-on-large {
4081
- display: none !important;
4082
- }
4083
- }
4084
- @media screen and (max-width: 960px) {
4085
- .hide-on-mobile {
4086
- display: none !important;
4087
- }
4088
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/assets/css/app.css CHANGED
@@ -1,2 +1,2 @@
1
- .cf:after{content:"";display:table;clear:both}@media only screen and (max-width:1200px){.hide-to-large{display:none}}@media only screen and (max-width:1100px){.hide-to-desktop{display:none}}
2
  /*# sourceMappingURL=app.css.map*/
1
+ .hidden{display:none}.cf:after{content:"";display:table;clear:both}.wpmud .wrap-wp-hummingbird .clear{padding:0}@media screen and (min-width:960px){.hide-on-large{display:none}}@media only screen and (max-width:960px){.hide-on-mobile{display:none}}button.notice-dismiss{position:absolute;top:0;right:1px;border:none!important;margin:0!important;padding:9px!important;background:none!important;color:#72777c!important;cursor:pointer!important}.wpmud #header .actions .button+.button{margin-left:10px}.wpmud .wphb-dismiss{float:right}.wpmud #wpbody-content>.notice{margin:5px 20px 2px 5px}.wpmud [tooltip].tooltip-bottom:before{margin-top:2px}.wpmud [tooltip].tooltip-bottom:after{margin-top:12px}.wpmud .list-table>tbody>tr>td{z-index:0}.wpmud [tooltip].tooltip-s.tooltip-right:after{margin-left:-150px}.wpmud .wrap-wp-hummingbird a:not(".wdpun-button"){color:#17a8e3}.wpmud .wrap-wp-hummingbird strong{color:#333}.wpmud .dev-overlay .back{background-color:rgba(51,51,51,.95)}.wpmud .dev-overlay .box{padding:40px 30px 30px}.wpmud .wrap-wp-hummingbird i.wdv-icon-chevron-down{color:#8a8a8a}.wpmud .select-container:not(.mobile-nav) i.wdv-icon-reorder:before{content:"\F078"}.wpmud .select-container:not(.mobile-nav){border:1px solid #e6e6e6;background-color:#f8f8f8}.wpmud .select-container:not(.mobile-nav) .dropdown-handle{background-color:#f8f8f8;color:#898989}.wpmud #wpmu-install-dashboard{margin-left:0}.wpmud #wpcontent #wpmu-install-dashboard *{-webkit-box-sizing:content-box;box-sizing:content-box}.wpmud #wpmu-install-dashboard .wpmu-message{font-family:inherit;font-weight:inherit;line-height:inherit}.wpmud .toggle .toggle-checkbox:checked+.toggle-label,.wpmud .toggle .toggle-checkbox:checked+.toggle-label:before{background-color:#17a8e3}.wpmud .toggle .toggle-label:before{background:#aaa}.wpmud .toggle .toggle-label{width:44px}.wpmud .toggle .toggle-checkbox:checked+.toggle-label:after{margin-left:24px}.wpmud .toggle .toggle-label.small{width:36px;height:16px}.wpmud .toggle .toggle-label.small:after{width:14px;height:14px}.wpmud .toggle .toggle-checkbox:checked+.toggle-label.small:after{margin-left:21px}.wpmud .spinner.standalone{float:none;margin:0}.wpmud .spinner.left{float:left}.wpmud .spinner.hide{display:none}.wpmud .spinner.visible{visibility:visible}@font-face{font-family:Hummingbird;src:url(../fonts/hummingbird.eot);src:url(../fonts/hummingbird.eot#iefix) format("embedded-opentype"),url(../fonts/hummingbird.ttf) format("truetype"),url(../fonts/hummingbird.woff) format("woff"),url(../fonts/hummingbird.svg#hummingbird) format("svg");font-weight:400;font-style:normal}[class*=" hb-"],[class^=hb-]{font-family:Hummingbird,Arial,sans-serif!important;speak:none;font-size:15px;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.hb-fi-settings-slider-control:before{content:"{"}.hb-fi-filter:before{content:"z"}.hb-icon-audit:before{content:"\E900"}.hb-wpmudev-icon-cross:before{content:"\E901"}.hb-wpmudev-icon-info:before{content:"\E902"}.hb-wpmudev-icon-tick:before{content:"\E903"}.hb-wpmudev-icon-warning:before{content:"\E904"}.hb-icon-cache:before{content:"\E905"}.hb-icon-cloudflare:before{content:"\E906"}.hb-icon-gzip:before{content:"\E907"}.hb-icon-minify-combine:before{content:"\E908"}.hb-icon-minify-defer:before{content:"\E909"}.hb-icon-minify-footer:before{content:"\E90A"}.hb-icon-minify:before{content:"\E90B"}.hb-icon-performancetest:before{content:"\E90C"}.hb-icon-reports:before{content:"\E90D"}.hb-icon-restore:before{content:"\E90E"}.hb-icon-smush:before{content:"\E90F"}.hb-icon-minify-inline:before{content:"\E910"}.hb-wpmudev-icon-eye:before{content:"\E911"}.hb-wpmudev-icon-wrench-tool:before{content:"\E912"}.hb-wpmudev-icon-profile-male:before{content:"\E913"}.hb-wpmudev-icon-page:before{content:"\E914"}.hb-wpmudev-icon-academy:before{content:"\E915"}.wpmud .wphb-icon{position:relative}.wpmud .wphb-icon-left{display:block;float:left}.wpmud .wphb-dash-icon{font-size:12px;padding-right:2px}.wpmud .cf-dismiss{display:block;margin-top:6px}.wpmud .wphb-cf-notice .cf-dismiss a{text-transform:uppercase;text-decoration:none;color:#888}.wpmud .wrap-wp-hummingbird p{color:#666}.wpmud #header h1{color:#333;margin:0}.wpmud .dev-overlay .title h3{font-size:16px;color:#333}.wpmud .box-content .buttons{margin-top:30px}.wpmud .box-content .buttons.buttons-on-left{text-align:left}.wpmud .box-content .buttons.buttons-on-right{text-align:right}.wpmud .box-footer .buttons.buttons-on-left{text-align:left}.wpmud .box-footer .buttons.buttons-on-right{text-align:right}.wpmud .wphb-notice:not(.notice) .buttons{margin:10px 30px 0}.wpmud #header .button[disabled]{background-color:#e6e6e6!important;border-radius:4px;color:#aaa!important}.wpmud .documentation-button:before{content:"\E915";color:#888;font-family:hummingbird,sans-serif;font-size:12px;vertical-align:middle;line-height:16px;top:-2px;position:relative;margin-right:5px}.wpmud .documentation-button:focus:before,.wpmud .documentation-button:hover:before{color:#fff}.wpmud .wphb-modal .wphb-dialog-content .button{margin-bottom:15px}.wpmud .wphb-modal .alignleft,.wpmud .wphb-modal .button{margin-bottom:0!important}.wpmud .wphb-block-entry-content .buttons-group .button{display:inline-block}.wpmud .wrap-wp-hummingbird .report-status button{border-radius:20px!important;margin-top:10px!important;background-color:#d1f1ea!important;color:#1abc9c!important}.wpmud .wrap-wp-hummingbird .report-status button i{color:#1abc9c;font-size:16px;position:relative;line-height:10px;top:3px}.wpmud .wrap-wp-hummingbird .report-status button.inactive{background-color:#e6e6e6!important;color:#aaa!important}.wpmud .wrap-wphb-performance .scan-settings .buttons{margin-top:30px}.wpmud .wrap-wphb-performance .add-recipient>button{background-color:#888!important;border-radius:0 4px 4px 0!important}.wpmud .wrap-wphb-caching #enable-cache-wrap .button,.wpmud .wrap-wphb-gzip #enable-cache-wrap .button{margin-top:30px}.wpmud .wphb-code-snippet .button{position:absolute;left:100%;margin-left:-90px!important;margin-top:15px!important}.wpmud .box-page-caching .box-footer .buttons>.button{margin-top:-20px}.wpmud .box-caching-gravatar .button-large{margin:0!important}.wrap-wp-hummingbird .button-cta-green:hover{box-shadow:none}.wphb-scan-progress .wphb-scan-cancel-button{float:right;margin-top:-13px}.wphb-scan-progress .wphb-scan-cancel-button>a{font-size:12px;color:#aaa;text-transform:uppercase}.wpmud .wphb-modal .button:hover:not(:focus):not(:active):not(.wph-button):not(#collapse-button):not([tooltip]),.wpmud .wphb-modal button:not(.wph-button):not(#collapse-button){background:#17a8e3}.wpmud .wphb-modal .button:not(.notice-dismiss),.wpmud .wrap-wp-hummingbird .button,.wpmud .wrap-wp-hummingbird .wpdui-btn,.wpmud .wrap-wp-hummingbird button:not(.notice-dismiss),.wpmud .wrap-wp-hummingbird button:not(.wph-button):not(#collapse-button):not(.notice-dismiss){font:500 12px/16px Roboto!important;padding:7px 16px;height:30px;background-color:#17a8e3;color:#fff;border-radius:3px;-moz-border-radius:3px;transition:all .3s ease;-webkit-transition:all .3s ease;text-shadow:none!important}.wpmud .wphb-modal .button:active,.wpmud .wphb-modal .button:focus,.wpmud .wphb-modal .button:hover:not(:focus):not(:active):not(.wph-button):not(#collapse-button):not([tooltip]),.wpmud .wrap-wp-hummingbird .button:active,.wpmud .wrap-wp-hummingbird .button:focus,.wpmud .wrap-wp-hummingbird .button:hover:not(:focus):not(:active):not(.wph-button):not(#collapse-button):not([tooltip]),.wpmud .wrap-wp-hummingbird button:active,.wpmud .wrap-wp-hummingbird button:focus,.wpmud .wrap-wp-hummingbird button:hover:not(:focus):not(:active):not(.wph-button):not(#collapse-button):not([tooltip]):not(.notice-dismiss){background:#0a9bd6}.wpmud .wrap-wp-hummingbird .button-disabled{border-radius:15px;background-color:#f8f8f8;color:silver}.wpmud .wphb-modal .button.button-large,.wpmud .wrap-wp-hummingbird .button.button-large,.wpmud .wrap-wp-hummingbird .wpdui-btn--full,.wpmud .wrap-wp-hummingbird button.button-large,.wpmud .wrap-wp-hummingbird button.button-large:not(.wph-button):not(#collapse-button){font:500 15px/20px Roboto!important;height:40px!important;padding:11px 20px 9px}.wpmud .wphb-modal .button-ghost,.wpmud .wrap-wp-hummingbird .button-ghost,.wpmud .wrap-wp-hummingbird button.button-ghost:not(.wph-button):not(#collapse-button){padding:5px 16px 7px!important;background-color:transparent!important;border:2px solid #ddd;color:#888!important}.wpmud .wphb-modal .button-ghost:active,.wpmud .wphb-modal .button-ghost:focus,.wpmud .wphb-modal .button-ghost:hover:enabled,.wpmud .wphb-modal .button-ghost:hover:not(:focus):not(:active),.wpmud .wrap-wp-hummingbird .button-ghost.active,.wpmud .wrap-wp-hummingbird .button-ghost:active,.wpmud .wrap-wp-hummingbird .button-ghost:focus,.wpmud .wrap-wp-hummingbird .button-ghost:hover:enabled,.wpmud .wrap-wp-hummingbird .button-ghost:hover:not(:focus):not(:active),.wpmud .wrap-wp-hummingbird .button-grey:hover,.wpmud .wrap-wp-hummingbird button.button-ghost:hover:not(.wph-button):not(#collapse-button){background-color:#7b7b7b!important;border-color:#7b7b7b;color:#fff!important}.wpmud .wphb-modal .button-ghost.button-large,.wpmud .wrap-wp-hummingbird .button-ghost.button-large,.wpmud .wrap-wp-hummingbird button.button-ghost.button-large:not(.wph-button):not(#collapse-button){padding:9px 20px!important}.wpmud .wphb-modal .button-content-cta{box-shadow:none;background-color:#1abc9c!important;color:#fff}.wpmud .wrap-wp-hummingbird .button-content-cta{box-shadow:none;background-color:#1abc9c;color:#fff}.wpmud .wphb-modal .button-content-cta:active,.wpmud .wphb-modal .button-content-cta:focus,.wpmud .wphb-modal .button-content-cta:hover:not(:focus):not(:active),.wpmud .wrap-wp-hummingbird .button-content-cta:active,.wpmud .wrap-wp-hummingbird .button-content-cta:focus,.wpmud .wrap-wp-hummingbird .button-content-cta:hover:not(:focus):not(:active){background:#0daf8f!important;border-color:#0daf8f}.wpmud .wrap-wp-hummingbird .button-content-cta.button-ghost{background:transparent;color:#1abc9c!important;border-color:#1abc9c;border-radius:20px}.wpmud .wrap-wp-hummingbird .button-content-cta.button-ghost:active{color:#fff!important;border-color:#0daf8f}.wpmud .wrap-wp-hummingbird .button-notice{background-color:#e6e6e6!important;color:#aaa!important}.wpmud .wrap-wp-hummingbird .button-grey,.wpmud .wrap-wp-hummingbird .button-notice:active,.wpmud .wrap-wp-hummingbird .button-notice:focus,.wpmud .wrap-wp-hummingbird .button-notice:hover:not(:focus):not(:active),.wpmud .wrap-wp-hummingbird .button-notice:hover:not(:focus):not(:active):not(.wph-button):not(#collapse-button):not([tooltip]){background-color:#888!important;color:#fff!important}.wrap-wp-hummingbird .button-load-more{background-color:transparent;border:1px solid #ddd;border-radius:50%;color:#bababa;font-family:Roboto Condensed,Roboto,Arial,sans-serif;font-size:13px;font-weight:700;line-height:18px;height:140px;padding:0;transition:color .4s,background-color .4s;width:140px}.wrap-wp-hummingbird .button-load-more:hover:not(:focus):not(:active){background-color:#fafafa;border-color:#ddd;color:#777771}.wrap-wp-hummingbird .button-load-more:active,.wrap-wp-hummingbird .button-load-more:focus{background:#777771}.wpmud .row{margin-top:30px}.wpmud .box-content .row:first-of-type{margin-top:0}.wpmud .row-space-large{margin-bottom:40px}.wpmud .row .col-center{display:block;margin-right:auto;margin-left:auto}.wpmud .row .col-fifth,.wpmud .row .col-four-fifths,.wpmud .row .col-quarter,.wpmud .row .col-three-quarters{display:table-cell;padding:0 15px;position:relative;vertical-align:top}.wpmud .row .col-quarter{width:25%}.wpmud .row .col-three-quarters{width:75%}.wpmud .row .col-fifth{width:20%}.wpmud .row .col-four-fifths{width:80%}.wpmud .row .col-four-fifths.hidden{display:none}.wpmud .row .col-fifth:first-child,.wpmud .row .col-four-fifths:first-child,.wpmud .row .col-quarter:first-child,.wpmud .row .col-three-quarters:first-child{padding-left:0}.wpmud .row .col-fifth:last-child,.wpmud .row .col-four-fifths:last-child,.wpmud .row .col-quarter:last-child,.wpmud .row .col-three-quarters:last-child{padding-right:0}.wpmud .dev-box{padding:0}.wpmud .dev-box:last-child{margin-bottom:0}.wpmud .dev-box .box-title{clear:both;height:inherit;margin:0;padding:0 30px}.wpmud .dev-box .box-title h3{font-size:16px;color:#333;float:left}.wpmud .dev-box .box-title .wphb-label-notice-inline{margin:2px 15px}.wpmud .dev-box .box-title:after{content:"";display:table;clear:both}.wpmud .dev-box .box-title .extra{float:right}.wpmud .dev-box .box-title .extra-text{margin:20px 0 0}.wpmud .dev-box .box-title .extra-label{display:inline-block;margin:0;line-height:20px}.wpmud .dev-box .box-title .extra-label-value{color:#477b92;font-weight:400;text-transform:uppercase}.wpmud .dev-box .box-title .wphb-select-group{margin:10px 0 0}.wpmud .dev-box .box-title .test-results{float:right;margin-top:15px}.wpmud .dev-box .box-title .test-results-label{display:block;float:left;font-family:Roboto Condensed,Roboto,Arial,sans-serif;font-weight:700;line-height:30px;margin-right:10px;text-transform:uppercase}.wpmud .dev-box .box-title .test-results .wphb-score{display:block;float:left}.wpmud .dev-box .box-title .toggle-group{margin:6px 15px 0 0}.wpmud .dev-box .box-content{padding:30px;word-wrap:break-word}.wpmud .dev-box .box-content>*{margin-bottom:20px}.wpmud .dev-box .box-content>:last-child{margin-bottom:0}.wpmud .dev-box .box-content .row-space-large{margin-bottom:40px}.wpmud .box-content.no-padding{padding:0}.wpmud .box-content.no-vertical-padding{padding-top:0;padding-bottom:0}.wpmud .box-content.no-side-padding,.wpmud .wphb-modal .no-side-padding{padding-right:0;padding-left:0}.wpmud .box-content .with-padding{padding:30px}.wpmud .box-content .add-side-padding{padding-right:30px;padding-left:30px}.wpmud .box-content .no-top-padding{padding-top:0}.wpmud .box-footer{margin-top:0;padding:30px;border-top:1px solid #eaeaea}.wpmud .settings-form span.sub{display:block;font-size:13px;color:#888;line-height:22px;margin:10px 0 0}.wpmud .wphb-dash-table-row span.sub{margin:0}.wpmud .settings-form .col-two-third>label{display:inline-block;padding:2px 10px 0;color:#333;line-height:30px;margin:0}.wpmud .settings-form .wphb-border-frame label{margin-top:25px;padding:0;color:#888;font-size:13px}.wpmud .settings-form .wphb-border-frame small{display:block;font-size:13px;color:#888;line-height:22px}.wpmud .settings-form.disabled{background-color:hsla(0,0%,95%,.5)!important}.wpmud .settings-form.disabled>*{opacity:.5}.wpmud .dev-overlay .title .close{color:#888;font-size:34px}.wpmud .wphb-modal *{-webkit-box-sizing:border-box;box-sizing:border-box;font-family:Roboto,sans-serif}.wpmud .wphb-modal .wphb-dialog-content>*{margin-bottom:30px}.wpmud .wphb-modal .wphb-dialog-content>:last-child{margin-bottom:0}.wpmud .wphb-modal .wphb-dialog-content .wphb-modal-image-bottom{margin-bottom:-30px}.wpmud .wphb-modal .wphb-progress-state{margin-top:-20px}.wpmud .wphb-modal .wphb-dialog-footer{border-top:1px solid #eaeaea;margin:30px -30px;padding:30px 30px 0}.wpmud .wphb-progress-modal .wphb-block-test,.wpmud .wphb-progress-modal .wphb-progress{max-width:100%}.wpmud .wphb-progress-modal .wphb-dialog-content p{color:#666}.wpmud .wphb-progress-modal .wphb-notice-box p{color:#333;font-size:13px;line-height:22px}.wphb-cdn-block{border:1px solid #e6e6e6;border-radius:5px;padding:18px 0}.wphb-cdn-block>div{display:flex;align-content:center;align-items:center;height:auto;padding:20px 30px 0}.wphb-cdn-block>div>label{margin:2px 0 0;color:#666}.wphb-cdn-block>p{color:#888!important;padding:0 30px 0 76px}.wpmud.hummingbird_page_wphb-minification .wphb-modal .wphb-block-test,.wpmud.toplevel_page_wphb-minification .wphb-modal .wphb-block-test,.wpmud .wphb-modal.wphb-quick-setup-modal .wphb-block-test{display:flex;align-content:center;align-items:center;height:auto;padding:20px 30px;margin-bottom:30px}.wpmud.hummingbird_page_wphb-minification .wphb-modal .wphb-block-test{margin-bottom:10px}.wpmud .wphb-modal.wphb-quick-setup-modal .wphb-block-test>p{font-size:13px;line-height:22px;margin-right:14px;margin-bottom:0}.wpmud.hummingbird_page_wphb-minification .wphb-modal .wphb-block-test>label{margin:0}.wpmud .dev-overlay.dismiss-report .box{width:400px;margin-left:-250px}.wpmud .dev-overlay.dismiss-report .title{margin-bottom:30px}.wpmud .dev-overlay.dismiss-report .title h3{font-size:15px;text-transform:none}.wpmud .dev-overlay.dismiss-report .wphb-dialog-content>p{color:#888;font-size:13px;line-height:22px}.wpmud .dev-overlay.dismiss-report .wphb-dialog-footer{border:none}.wpmud .wphb-block-entry-third{color:#333;width:calc(100% / 2 - 98px);padding-left:5%;padding-top:10px;display:inline-block;vertical-align:middle}.wpmud .wphb-block-entry-third span{font-weight:400}.wpmud .wphb-block-entry-third p{font-size:13px;margin-top:0;color:#888}.wpmud .wphb-block-entry-third span.not-present{font-size:55px;line-height:30px;margin-bottom:20px}.wpmud .wphb-block-entry-third span.score-span{font-size:13px;margin-left:-12px}.wpmud .wphb-block-entry-third .current-performance-score{margin-bottom:20px}.wpmud .wphb-block-entry-third .hb-wpmudev-icon-info,.wpmud .wphb-block-entry-third .hb-wpmudev-icon-tick,.wpmud .wphb-block-entry-third .hb-wpmudev-icon-warning{position:relative;top:-22px;left:5px;font-size:20px}.wpmud .wphb-block-entry-third .hb-wpmudev-icon-info,.wpmud .wphb-tab i.hb-wpmudev-icon-info.dismissed{color:#888}.wpmud .wphb-block-entry-third .hb-wpmudev-icon-warning{color:#fecf2f}.wpmud .wphb-block-entry-third .hb-wpmudev-icon-tick{color:#1abc9c}.wpmud .wphb-block-entry-third .dev-list{margin:0!important;border-bottom:0}.wpmud .wphb-block-entry-third .dev-list li:first-child span{padding-top:4px}.box-dashboard-browser-caching-module .box-content,.box-dashboard-reports-no-membership,.box-dashboard-smush-no-membership .box-content,.box-dashboard-uptime-no-membership,.box-reporting-summary .wphb-reporting-no-membership{background:no-repeat 30px 100%;padding-bottom:30px!important}.box-dashboard-reports-no-membership .box-content,.box-dashboard-uptime-no-membership .box-content{padding:30px 30px 0!important}.box-dashboard-reports-no-membership{background-image:url(../image/hb-graphic-upsell-reports.png)}.box-dashboard-uptime-no-membership{background-image:url(../image/hb-graphic-upsell-uptime.png)}.box-dashboard-smush-no-membership .box-content{background-image:url(../image/smush-share-widget.png)}.box-dashboard-browser-caching-module .box-content{background-image:url(../image/graphic-hb-cf-sell@2x.png);background-size:107px 148px}.box-reporting-summary .wphb-reporting-no-membership{background-image:url(../image/hummingbird-upsell-minify.png);background-size:118px 126px}.box-dashboard-browser-caching-module .box-content.no-background-image{background-image:none}@media only screen and (-o-min-device-pixel-ratio:2/1),only screen and (-webkit-min-device-pixel-ratio:2),only screen and (min--moz-device-pixel-ratio:2),only screen and (min-device-pixel-ratio:2),only screen and (min-resolution:2dppx),only screen and (min-resolution:192dpi){.box-dashboard-reports-no-membership,.box-dashboard-smush-no-membership .box-content,.box-dashboard-uptime-no-membership{background-size:107px 148px}.box-dashboard-reports-no-membership{background-image:url(../image/hb-graphic-upsell-reports@2x.png)}.box-dashboard-uptime-no-membership{background-image:url(../image/hb-graphic-upsell-uptime@2x.png)}.box-dashboard-smush-no-membership .box-content{background-image:url(../image/smush-share-widget@2x.png)}.box-reporting-summary .wphb-reporting-no-membership{background-image:url(../image/hummingbird-upsell-minify@2x.png)}}@media screen and (min-width:1550px){.box-dashboard-reports-no-membership .wphb-block-entry .row,.box-dashboard-smush-no-membership .buttons,.box-dashboard-uptime-no-membership .content p{padding-bottom:20px}}.wpmud .wphb-dash-table-header{color:#333;font-size:13px;font-weight:700;line-height:30px;display:flex}.wpmud .wphb-border-frame .wphb-caching-summary-item-type,.wpmud .wphb-border-frame .wphb-gzip-summary-item-type,.wpmud .wphb-dash-table-row,.wpmud .wphb-dash-table-row>div:first-child{display:flex;align-items:center;align-content:center}.wpmud .wphb-dash-table-row{justify-content:space-between;height:60px;border-top:1px solid #e6e6e6}.wpmud .wphb-dash-table-row:last-child{margin-bottom:-10px}.wpmud .wphb-dash-table-header>span:first-child,.wpmud .wphb-dash-table-row>div:first-child{flex-basis:50%!important;text-align:left}.wpmud .wphb-dash-table-row>div:first-child{font-size:13px;color:#333;font-weight:500}.wpmud .wphb-dash-table-header>span,.wpmud .wphb-dash-table-row>div{text-align:center}.wpmud .wphb-dash-table-header>span:last-child,.wpmud .wphb-dash-table-row>div:last-child{text-align:right}.wpmud .wphb-dash-table.two-columns>.wphb-dash-table-header>span,.wpmud .wphb-dash-table.two-columns>.wphb-dash-table-row>div{flex-basis:50%}.wpmud .wphb-dash-table.three-columns>.wphb-dash-table-header>span,.wpmud .wphb-dash-table.three-columns>.wphb-dash-table-row>div{flex-basis:25%}.wpmud .dev-box .status-text{color:#888;font-size:13px;line-height:22px;margin-top:5px}.wpmud .box-dashboard-performance-module .wphb-performance-report-item-score{display:flex;align-items:center;align-content:center;max-width:65px}.wpmud .box-dashboard-performance-module .wphb-score-result-label{margin-left:10px;color:#888;font-weight:500}.wpmud .box-dashboard-minification-module .wphb-dash-table-row>div:last-child,.wpmud .box-dashboard-uptime .wphb-dash-table-row>div:last-child,.wpmud .box-dashboard-welcome .dev-list>li:last-child .list-detail{font-size:18px;font-family:Roboto Condensed,sans-serif;color:#666}.wpmud .box-dashboard-minification-module .wphb-pills{font-weight:700}.wpmud .callout-box .callout-title{font-family:Roboto Condensed,Arial,sans-serif;font-size:22px;font-weight:700;line-height:60px;color:#333;padding-bottom:30px;text-transform:uppercase}.wpmud .callout-box p{margin-bottom:30px}.wpmud .wphb-cf-notice p,.wpmud .wphb-upsell-free-message p{position:relative;border-radius:4px;background-color:#e1f6ff;padding:20px 30px;margin-left:-140px;color:#333;font-size:13px;line-height:22px}.wpmud .wphb-upsell-free-message p:after{position:absolute;top:43%;left:0;margin-left:-7px;content:"";width:0;height:0;border-top:7px solid transparent;border-bottom:7px solid transparent;border-right:7px solid #e1f6ff}.wpmud .wphb-cf-notice a,.wpmud .wphb-upsell-free-message a{color:#333;text-decoration:underline;font-weight:500}.wpmud .box-dashboard-browser-caching-module .content .wphb-notice,.wpmud .box-dashboard-caching-gravatar-module .wphb-notice,.wpmud .box-dashboard-caching-page-module .content .wphb-notice,.wpmud .box-dashboard-gzip-module .content .wphb-notice,.wpmud .box-dashboard-smush-no-membership .content .wphb-notice,.wpmud .box-dashboard-smush .content .wphb-notice{margin-top:20px!important}.wpmud .wrap-wp-hummingbird .report-status{background-color:#f8f8f8;height:140px;width:100%;position:relative;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px;margin-bottom:10px;display:flex;flex-direction:column;align-items:center;justify-content:center}.wpmud .wrap-wp-hummingbird .report-status:hover{background-color:#f2f2f2;cursor:pointer}.wpmud .wrap-wp-hummingbird .report-status i{color:#666;font-size:24px}.wpmud .wrap-wp-hummingbird .report-status strong{font-family:Roboto Condensed,sans-serif;color:#666;font-weight:700;margin-top:10px;font-size:13px;line-height:20px;text-transform:uppercase}.wpmud .wrap-wp-hummingbird .report-status .corner{position:absolute;top:0;right:0;color:#1abc9c;font-weight:700;font-family:Roboto Condensed,sans-serif;padding-right:6px;padding-top:10px;text-transform:uppercase;font-size:13px}.wpmud .wrap-wp-hummingbird .report-status.with-corner.grey .corner i{color:#888;font-size:16px;margin-right:4px}.wpmud .wrap-wp-hummingbird .report-status.with-corner:before{content:"";position:absolute;top:0;right:0;border:solid transparent;border-top-right-radius:7px;border-width:30px;border-right-color:#d1f1ea;border-top-color:#d1f1ea}.wpmud .wrap-wp-hummingbird .report-status.with-corner.grey:before{border-right-color:#e6e6e6;border-top-color:#e6e6e6}.wpmud .performance-report-table{text-align:left;margin-top:30px;overflow:hidden}.wpmud .performance-report-table .wpdui-btn{display:inline-block;margin:10px 0 20px;text-transform:uppercase}.wpmud .performance-report-table .wpdui-btn:hover{color:#fff}.wpmud .performance-report-table a,.wpmud .performance-report-table a:hover{color:#17a8e3;overflow-wrap:break-word;word-wrap:break-word;word-break:break-all;-ms-hyphens:auto;-moz-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}.wpmud .performance-report-table ol li,.wpmud .performance-report-table p{font-size:13px!important;color:#888;line-height:22px}.wpmud .performance-report-table ol>p{margin-left:-30px;margin-bottom:15px}.wpmud .performance-report-table>thead>tr>th:first-child{padding-left:30px}.wpmud .performance-report-table .wphb-performance-report-item:hover td{cursor:pointer;border-bottom:0!important}.wpmud .performance-report-table .wphb-performance-report-item-score{width:137px}.wpmud .performance-report-table .wphb-performance-report-item-type{color:#888;font-size:13px;transition:color .3s;text-transform:capitalize;width:130px}.wpmud .performance-report-table .wphb-performance-report-item:hover .wphb-performance-report-item-type{color:#333}.wpmud .performance-report-table .wphb-performance-report-item-cta{text-align:right;width:225px}.wpmud .wphb-performance-report-item .trigger-additional-content{color:#888;cursor:pointer;display:inline-block;font-size:14px;line-height:1em;height:14px;margin:8px 30px 8px 15px;transition:color .3s;vertical-align:middle}.wpmud .wphb-performance-report-item .trigger-additional-content .dev-icon-caret_down:before{display:inline-block;transition:transform .5s;transform:rotate(0)}.wpmud .wphb-performance-report-item-opened .trigger-additional-content .dev-icon-caret_down:before{transform:rotate(-180deg)}.wpmud .performance-report-table .wphb-performance-report-item-opened,.wpmud .wphb-table.performance-report-table .wphb-performance-report-item-additional-content:hover,.wpmud .wphb-table.performance-report-table .wphb-performance-report-item-opened:hover{background:#f8f8f8}.wpmud .performance-report-table .wphb-performance-report-item-additional-content{background:#f8f8f8;display:none}.wpmud .performance-report-table .wphb-performance-report-item-additional-content-opened{display:table-row}.wpmud .performance-report-table .wphb-performance-report-item-additional-content-opened>td{border-top:0!important}.wpmud .wphb-performance-report-item-additional-content-inner{padding:0!important}.wpmud .dev-box-performance-report-additional-content{padding:30px;margin:0 30px 30px;border-radius:5px;background-color:#fff;box-shadow:0 2px 0 0 #eaeaea}.wpmud .dev-box-performance-report-additional-content h4:first-child{margin-top:0}.wpmud .wphb-performance-report-item-additional-content h4,.wpmud .wphb-performance-report-item-additional-content h5{color:#333;font-size:13px;text-transform:none;line-height:23px;margin:20px 0;text-align:left}.wpmud .wrap-wphb-caching .list-results,.wpmud .wrap-wphb-performance .list-results{max-height:200px;overflow-y:scroll}.wpmud .wrap-wphb-performance .recipient{margin-bottom:10px;padding:5px 10px}.wpmud .wrap-wphb-performance .recipient:hover{border-radius:4px;background-color:#f8f8f8}.wpmud .wrap-wphb-performance .add-recipient,.wpmud .wrap-wphb-performance .recipient,.wpmud .wrap-wphb-performance .recipient .name{display:flex;flex-flow:row nowrap;justify-content:space-between;align-items:center;align-content:center}.wpmud .wrap-wphb-performance .recipient img{-webkit-border-radius:50px;-moz-border-radius:50px;border-radius:50px;width:30px;height:30px;margin-right:10px;display:inline-block;vertical-align:middle}.wpmud .wrap-wphb-performance .recipient .name{color:#333;font-weight:500}.wpmud .wrap-wphb-performance .recipient a>i{color:#888}.wpmud .wrap-wphb-performance .recipient:hover a>i{color:#333}.wpmud .wrap-wphb-performance .add-recipient{margin-top:15px}.wpmud .wrap-wphb-performance .add-recipient>*{margin-bottom:0;border-radius:0;border:1px solid #e6e6e6;font-weight:400}.wpmud .wrap-wphb-performance .add-recipient .wdv-icon-plus{color:#fff;font-size:20px}.wpmud .wrap-wphb-performance .add-recipient>input::placeholder{color:#aaa;font-weight:400}.wpmud .wrap-wphb-performance .add-recipient #wphb-first-name{border-radius:4px 0 0 4px;border-right:0;background-color:#f8f8f8}.wpmud .wrap-wphb-performance .add-recipient #wphb-username-search{background-color:#f8f8f8}.wpmud .wrap-wphb-performance .wphb-tag{-webkit-border-radius:16px;-moz-border-radius:16px;border-radius:16px;font-size:13px;padding:4px 16px;color:#fff;text-transform:uppercase}.wpmud .wrap-wphb-performance .wphb-tag.tag-generic{background:#e6e6e6;color:#333}.wpmud .box-reporting-summary .content-box-two-cols-image-left .wphb-block-entry-content,.wpmud .box-reporting-summary .wphb-block-entry-content{margin-top:0}.wpmud .wphb-caching-error{text-align:left}.wpmud .wphb-caching-error a{text-decoration:underline}.wpmud .wrap-wphb-caching .wphb-spinner{float:none;background-size:15px 15px}.wpmud .wphb-caching-cloudflare-box>p{margin:0 0 20px}.wpmud .box-caching-enable .buttons{margin-top:-20px}.wpmud .caching-table{margin:30px 0 0}.wpmud .box-gzip-summary .list-label,.wpmud .wphb-caching-summary-heading{text-transform:none!important;color:#333;font-size:13px}.wpmud #cloudflare-how-to,.wpmud #cloudflare-how-to-title{text-align:left}.wpmud #cloudflare-how-to a{font-weight:500;text-decoration:underline;color:inherit}.wpmud #cloudflare-info{clear:both}.wpmud #cloudflare-info.wphb-notice{margin-top:30px}.wpmud .cloudflare-submit{margin-bottom:0}.wpmud #cloudflare-zone .clear{padding:0}.wpmud #cloudflare-zone label{margin-bottom:13px}.wpmud #cloudflare-zone .cloudflare-submit{margin-top:22px}.wpmud #cloudflare-steps .wphb-notice-success{margin-top:0}.wpmud .cloudflare-clear-cache-tooltip[tooltip]:after{margin-left:-137px}.wpmud .box-caching-summary .box-content>.box-content{background:no-repeat 30px 100%;background-image:url(../image/graphic-hb-cf-sell@2x.png);background-size:107px 148px}.wpmud .box-caching-summary .box-content>.box-content.no-background-image{background-image:none}.wpmud .box-caching-settings .select-container.server-type{max-width:240px}.wpmud.wphb-notice{margin-top:30px}.wpmud .box-caching-settings .wphb-expiry-select-box label{margin-top:0}.wpmud .wphb-expiry-select-box .wphb-expiry-select{max-width:240px}@media screen and (max-width:1200px) and (min-width:783px){.wpmud #cloudflare-how-to-title{float:none;display:block;text-align:center;margin-bottom:0}.wpmud .cloudflare-step p.cloudflare-submit{float:none;position:relative}.wpmud .cloudflare-step p.cloudflare-submit .cloudflare-spinner{position:absolute;right:0;top:10px}}.wpmud .box-caching-summary .wphb-notice,.wpmud .box-gzip-summary .wphb-notice,.wpmud .wphb-server-instructions .wphb-notice{margin-bottom:30px!important}.wpmud .wphb-caching-active.wphb-notice.wphb-notice-blue{margin-bottom:0!important}.wpmud .wphb-caching-success.wphb-notice.wphb-notice-success{margin-top:30px}.wpmud .wphb-server-instructions .wphb-notice.wphb-notice-blue p{font-size:13px;line-height:22px;color:#333}.wpmud .wphb-server-instructions .wphb-notice.wphb-notice-blue p:before{font-size:16px;line-height:16px}.wpmud .wphb-expiry-changes.wphb-notice.wphb-notice-warning{margin-top:30px}.wpmud .wphb-expiry-changes.wphb-notice.wphb-notice-warning p{font-size:13px;line-height:22px}.wpmud .wphb-expiry-changes.wphb-notice.wphb-notice-warning p:before{font-size:16px;line-height:16px}.wpmud .wphb-cf-detected-notice.wphb-notice.wphb-notice-grey p{font-size:13px;line-height:22px}.wpmud .wphb-cf-detected-notice.wphb-notice.wphb-notice-grey p:before{font-size:16px;line-height:16px}.wpmud .button.notice-button,.wpmud .wphb-expiry-changes .update-htaccess{margin-top:10px}.wpmud .wphb-cloudflare.wphb-notice-warning p{color:#333}.wpmud input[name=expiry-set-type]{box-shadow:inset 0 1px 2px transparent;border:1px solid #e6e6e6;background-color:#f8f8f8}.wpmud input[name=expiry-set-type]:checked{border:1px solid #17a8e3;background-color:#17a8e3}.wpmud input[name=expiry-set-type]:checked+label{color:#333}.wpmud input[name=expiry-set-type]:checked:before{width:8px;height:8px;margin:3px;background-color:#fff}.wpmud input[name=expiry-set-type]+label{display:inline-block;margin-top:0;font-size:15px}.wpmud .wphb-border-frame .table-header .wphb-caching-summary-heading-type{flex-basis:85px}.wpmud .wphb-border-frame .table-row .wphb-caching-summary-item-type,.wpmud .wphb-border-frame .table-row .wphb-gzip-summary-item-type{flex-basis:100px}.wpmud .wphb-border-frame .table-row .wphb-caching-summary-item-expiry,.wpmud .wphb-border-frame .table-row .wphb-caching-summary-item-status{flex-basis:80px}.wpmud .wphb-border-frame .table-row .wphb-caching-summary-item-type{font-size:13px;font-weight:500;color:#333}.wpmud .box-caching-settings label,.wpmud .box-gzip-settings label{margin-top:15px;margin-bottom:5px;padding:0}.wpmud .box-caching-settings .wphb-border-frame>label,.wpmud .box-caching-settings label,.wpmud .box-gzip-settings .wphb-border-frame>label,.wpmud .box-gzip-settings label{color:#888;font-size:13px;font-weight:500;line-height:22px}.wpmud .wphb-caching-cloudflare-settings .wphb-expiry-select{width:85%}.wrap-wphb-caching .cloudflare-step label:first-child{margin-top:0}.wpmud .wrap-wphb-caching .tabs,.wpmud .wrap-wphb-caching .tabs .tab .content,.wpmud .wrap-wphb-caching .tabs .tab label,.wpmud .wrap-wphb-gzip .tabs,.wpmud .wrap-wphb-gzip .tabs .tab .content,.wpmud .wrap-wphb-gzip .tabs .tab label{border:0}.wpmud .wrap-wphb-caching .tabs .tab .content,.wpmud .wrap-wphb-gzip .tabs .tab .content{border-top:2px solid #e6e6e6;top:38px}.wpmud .wrap-wphb-caching .tabs .tab label,.wpmud .wrap-wphb-gzip .tabs .tab label{font-size:15px;text-transform:capitalize;color:#888;padding:0 10px;line-height:1.5em;height:40px}.wpmud .wphb-server-instructions .wphb-listing li,.wpmud .wphb-server-instructions p{color:#888;font-size:13px;line-height:22px}.wpmud .wphb-server-instructions .wphb-listing li{margin-top:0}.wpmud .wphb-server-instructions .tabs{margin:0}.wpmud .wphb-server-instructions .tabs .tab .content{padding:20px 0 0}.wpmud .wphb-server-instructions .tabs .tab>.active{color:#333;border-bottom:2px solid #333;z-index:10}.wpmud .box-page-caching .box-footer{border-top:1px solid #e6e6e6;padding:50px 30px}.wpmud .box-page-caching h4{color:#666;font-size:15px;font-weight:500;text-align:left;text-transform:none}.wpmud .box-page-caching textarea{height:180px;max-width:490px;color:#333;border:1px solid #e6e6e6;border-radius:4px;background-color:#f8f8f8;margin-top:20px}.wpmud .box-page-caching .col-two-third .with-bottom-border{margin-bottom:30px}.wpmud .box-page-caching .wphb-dash-table .sub{width:75px}.wpmud .box-page-caching .wphb-dash-table .wphb-dash-table-row:first-child{border-top:0}.wpmud .box-page-caching .wphb-dash-table .wphb-dash-table-row:last-child{border-bottom:0}.wpmud .box-caching-gravatar .wphb-notice,.wpmud .box-page-caching .wphb-notice{margin-top:20px}.wpmud .box-page-caching .settings-form .button-ghost{margin:10px 0}.wpmud #wphb-code-snippet{margin-top:20px;margin-bottom:20px}.wpmud .wphb-gzip-error{text-align:left}.wpmud .wphb-gzip-error p:first-child{margin:0 0 10px}.wpmud #configure-gzip-link,.wpmud .wphb-gzip-error a{text-decoration:underline}.wpmud .box-gzip-settings .inline-label{color:#888!important;font-size:13px;font-weight:500;padding-left:0!important}.wpmud .box-gzip-settings .select-container{max-width:240px}.wpmud .box-gzip-settings .wphb-notice-blue{margin-top:0;margin-bottom:30px;padding:15px 20px}.wpmud .box-gzip-settings .wphb-notice-blue p{font-size:13px}.wpmud .box-gzip-settings .wphb-notice-blue p:before{font-size:16px}.wpmud .box-gzip-settings .wphb-notice.htaccess-warning{margin-top:30px;margin-bottom:0!important;padding:15px 20px}.wpmud .box-gzip-settings .wphb-notice.htaccess-warning a{text-decoration:underline}@media screen and (min-width:960px){.wpmud .wphb-border-frame.two-columns .table-header,.wpmud .wphb-border-frame.two-columns .table-row{justify-content:flex-start}.wpmud .wphb-border-frame.two-columns .table-header>div:first-child,.wpmud .wphb-border-frame.two-columns .table-row>div:first-child{flex-basis:50%}}.wpmud .checkbox-group{border-radius:41px;display:flex;justify-content:flex-end;height:40px}.wpmud .wphb-modal .checkbox-group{justify-content:flex-start}.wpmud .checkbox-group input[type=checkbox]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;display:block}.wpmud .checkbox-group input[type=checkbox]+label{background-color:#fafafa;border-radius:4px;display:flex;padding:0;align-items:center;justify-content:center;text-align:center;width:107px;position:relative;transition-property:background,color;transition-duration:.3s;color:transparent!important;margin-bottom:0;margin-left:5px}.wpmud .wphb-minification-advanced-group input[type=checkbox]+label{width:50px}.wpmud .wphb-modal .checkbox-group{width:100%;height:52px}.wpmud .wphb-modal .checkbox-group input[type=checkbox]+label{padding:10px;width:70px;height:50px}.wpmud .wphb-modal .wphb-progress-state{text-align:left;margin-top:0}.wpmud .checkbox-group input[type=checkbox]+label.toggle-label-background,.wpmud .checkbox-group input[type=checkbox]:checked+label{box-shadow:none;background-color:#effaff}.wpmud .checkbox-group input[type=checkbox]+label>i,.wpmud .checkbox-group input[type=checkbox]+label>span:not(.toggle){color:#888;padding:0;font-size:12px}.wpmud .checkbox-group>span{color:#aaa;font-size:12px;line-height:40px}.wpmud .checkbox-group input[type=checkbox]+label>[class^=hb-]:before{font-size:14px;vertical-align:-2px;margin-right:8px}.wpmud .wphb-minification-advanced-group input[type=checkbox]+label>[class^=hb-]:before,.wpmud .wphb-modal input[type=checkbox]+label>[class^=hb-]:before{margin-right:0}.wpmud .checkbox-group input[type=checkbox]+label.toggle-label-background>span:not(.toggle),.wpmud .checkbox-group input[type=checkbox]:checked+label>i,.wpmud .checkbox-group input[type=checkbox]:checked+label>span:not(.toggle){color:#17a8e3}.wpmud .checkbox-group input[type=checkbox]:disabled+label>i,.wpmud .checkbox-group input[type=checkbox]:disabled+label>span:not(.toggle){color:#ddd}.wpmud .checkbox-group input[type=checkbox]:disabled+label{background-color:#fff}.wpmud .checkbox-group input[type=checkbox]+label>[tooltip]{position:absolute;left:0;top:0;bottom:0;right:0;z-index:9}.wpmud .checkbox-group label [class^=hb-]{display:block;padding:10px 0 4px}.wpmud .wrap-wphb-minification>.row>.wphb-notice{margin-bottom:30px}.wpmud .wphb-minification-files{background-color:#f8f8f8;padding-bottom:1px}.wpmud .box-minification-enqueued-files .box-title .buttons>div{display:inline-block;vertical-align:top}.wpmud .box-minification-enqueued-files .box-title .buttons{margin-right:45px!important}.wpmud .box-minification-enqueued-files .box-title .wphb-switch-button{border-left:1px solid #e6e6e6;display:block;height:60px;left:100%;margin-left:-30px;position:relative;width:60px}.wpmud .box-minification-enqueued-files .box-title .wphb-switch-button>i{color:#aaa;font-size:20px;left:50%;margin-left:-10px;margin-top:-10px;position:absolute;top:50%}.wpmud .box-minification-enqueued-files .box-title-advanced .wphb-switch-button>i{color:#17a8e3}.wpmud .wphb-minification-files-header{background-color:#fff;border-bottom:1px solid #e6e6e6;margin-bottom:30px;padding:30px}.wpmud .wphb-border-row{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;align-content:center}.wpmud .wphb-minification-files-advanced .wphb-border-row,.wpmud .wphb-minification-files-advanced .wphb-minification-row-details,.wpmud .wphb-minification-files-basic .wphb-border-row{padding:10px 30px;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.wpmud .wphb-minification-files-advanced .wphb-minification-row-details{padding:0;display:flex;align-content:center;align-items:center}.wpmud .wphb-minification-files-basic .wphb-border-row{border-bottom:1px solid #e6e6e6}.wpmud .wphb-minification-files-advanced .wphb-border-row{padding:10px 30px 10px 20px;min-height:70px;background-color:#fff;border-radius:4px;box-shadow:0 2px 7px 0 rgba(0,0,0,.05);margin-bottom:10px}.wpmud .wphb-minification-files-advanced .wphb-border-row:last-child,.wpmud .wphb-minification-files-basic .wphb-border-row:last-child{border-bottom:0}.wpmud .wphb-minification-files-table.wphb-minification-files-advanced,.wpmud .wphb-minification-files-table.wphb-minification-files-basic{background-color:#f8f8f8;margin:0 30px 30px}.wpmud .wphb-minification-files-table.wphb-minification-files-basic{background-color:#fff;border-radius:4px;box-shadow:0 2px 7px 0 rgba(0,0,0,.05)}.wpmud .wphb-minification-files-select h3,.wpmud .wphb-minification-files>h3{font-size:13px;font-weight:700;line-height:22px;color:#888;text-align:left;text-transform:none;margin:10px 30px}.wpmud .wphb-minification-files .wphb-notice{margin:0 30px 30px;width:auto}.wpmud .wphb-minification-changed-notice a.wphb-notice-dismiss{opacity:.5;color:#333;font-size:12px;font-weight:700;margin-left:33px;text-transform:uppercase}.wpmud .wphb-minification-file-info{float:left;line-height:18px;overflow:hidden;position:relative;white-space:nowrap;width:300px}.wpmud .wphb-border-row:not(.disabled) .wphb-minification-file-info:after{background:-webkit-linear-gradient(left,hsla(0,0%,100%,0),#fff);background:-o-linear-gradient(left,hsla(0,0%,100%,0) 0,#fff 100%);background:linear-gradient(90deg,hsla(0,0%,100%,0) 0,#fff);content:"";height:100%;pointer-events:none;position:absolute;right:0;top:0;width:40px}.wpmud .wphb-minification-file-info>*{color:#aaa;font-size:10px;font-weight:500;line-height:10px}.wpmud .wphb-minification-file-info>span:first-child{color:#666;display:block;font-size:13px;line-height:13px}.wpmud .wphb-minification-file-info>a{max-width:400px;overflow:hidden}.wpmud .wphb-minification-file-info>.original-size.crossed-out{text-decoration:line-through}.wpmud .wphb-minification-file-info>.compressed-size,.wpmud .wphb-minification-file-info>.dev-icon-caret_down{color:#1abc9c}.wpmud .wphb-minification-file-info>.dev-icon-caret_down{font-size:12px;letter-spacing:-3px;margin-left:-3px;position:relative;top:2px}.wpmud .wphb-minification-filter-buttons{padding:0 30px 20px}.wpmud .wphb-minification-files-select{display:flex;align-items:center;align-content:center;margin:0 50px}.wpmud .wphb-minification-files-select h3{margin:5px 5px 7px}.wpmud .wphb-minification-bulk-file-selector{float:left}.wpmud .wphb-minification-file-select{float:left;line-height:30px;margin-right:10px}.wpmud .wphb-minification-exclude{margin-left:30px}.wpmud .wphb-minification-filter{background-color:#fff;padding:0 30px}.wpmud .wphb-minification-filter>div{height:78px;display:flex;align-items:center;align-content:center}.wpmud .wphb-minification-filter>div>input{margin:0 10px!important;width:40%!important;background-color:#f8f8f8!important}.wpmud .wphb-minification-filter>div .wphb-block-title{color:#333;font:500 13px/30px Roboto,sans-serif;text-transform:none;margin-right:21px}.wpmud .wphb-minification-filter .select-list-container{min-width:240px!important}.wpmud .wphb-border-row.disabled .checkbox-group,.wpmud .wphb-border-row.out-of-filter{display:none}.wpmud .box-content.disabled,.wpmud .wphb-border-row.disabled{background-color:#f2f2f2}.wpmud .wphb-minification-files-advanced .wphb-border-row.disabled{box-shadow:none}.wpmud .wphb-border-row.disabled .wphb-filename-extension-css,.wpmud .wphb-border-row.disabled .wphb-filename-extension-javascript,.wpmud .wphb-border-row.disabled .wphb-filename-extension-js,.wpmud .wphb-border-row.disabled .wphb-filename-extension-other{opacity:.4}.wpmud .wphb-border-row.disabled .wphb-minification-file-info>span{color:#aaa}.wpmud .wrap-wphb-minification .settings-form{margin:0}.wpmud .wrap-wphb-minification .content-box-two-cols-image-left .wphb-block-entry-content{margin-top:0}.wpmud .wphb-advanced-minification-modal .box{width:400px!important;margin-left:-200px!important;padding:30px!important}.wpmud .wphb-advanced-minification-modal .title{display:none}.wpmud .wphb-advanced-minification-modal h1{color:#333;font-size:22px;font-weight:700;line-height:30px;text-transform:none}.wpmud .wphb-advanced-minification-modal p{color:#666;font-size:13px;line-height:22px;text-align:center}@media only screen and (max-width:1200px){.wpmud .wphb-minification-files-advanced .wphb-minification-file-info{width:235px}}@media only screen and (max-width:1100px){.wpmud .box-minification-enqueued-files .box-title .buttons{float:left;margin-right:-5px!important}.wpmud .wphb-minification-files-advanced .wphb-minification-file-info{width:130px}.wpmud .wphb-minification-files-advanced .wphb-minification-exclude{margin-left:15px}.wpmud .box-minification-enqueued-files .box-footer .button{margin-top:15px}}@media only screen and (max-width:960px){.wpmud .box-minification-enqueued-files .box-title .buttons{float:right;margin-right:45px!important}}@media only screen and (max-width:783px){.wpmud .wphb-minification-files-advanced .fileinfo-group:after{font-family:dashicons;content:"\F347";position:absolute;left:100%;margin-left:-70px;margin-top:5px}.wpmud .wphb-minification-files-advanced .fileinfo-group.opened:after{content:"\F343"}.wpmud .wphb-minification-files-advanced .fileinfo-group{padding:10px 0;overflow:hidden}.wpmud .wphb-minification-files-advanced .wphb-minification-file-info{width:55%;min-width:200px}.wpmud .wphb-minification-files-advanced .wphb-minification-file-info>a{max-width:200px}.wpmud .wphb-minification-files-advanced .wphb-minification-row-details{display:none;margin:10px 0;border-top:1px solid #e6e6e6;padding-top:15px!important;width:100%;z-index:100}.wpmud .wphb-minification-files-advanced .wphb-minification-advanced-group{float:left}.wpmud .wphb-minification-files-advanced .wphb-minification-exclude{float:right;margin-top:7px}}@media only screen and (max-width:600px){.wpmud .box-minification-enqueued-files .box-title .buttons,.wpmud .box-minification-enqueued-files .box-title h3{float:none!important}.wpmud .box-minification-enqueued-files .box-title .wphb-switch-button{height:96px;margin-left:-60px;position:absolute;top:0}.wpmud .wphb-minification-file-info{width:185px}.wpmud .box-minification-enqueued-files .box-footer .status-text{display:block;max-width:100%;text-align:left;padding-left:0}}@media only screen and (max-width:480px){.wpmud .wphb-minification-files-table.wphb-minification-files-advanced,.wpmud .wphb-minification-files-table.wphb-minification-files-basic{margin:0 10px 30px}.wpmud .wphb-minification-files-header{padding:15px 30px}.wpmud .box-minification-enqueued-files .buttons .button{padding:7px!important}.wpmud .wphb-minification-filter-buttons{padding:0 20px 20px}.wpmud .wphb-minification-files-select{margin:0 20px}.wpmud .wphb-minification-files>h3{margin:10px}.wpmud .wphb-minification-files-advanced .wphb-border-row,.wpmud .wphb-minification-files-basic .wphb-border-row{padding:10px}.wpmud .wphb-minification-file-info{width:155px}.wpmud .wphb-minification-files-advanced .wphb-minification-file-info{min-width:170px}.wpmud .wphb-border-row .fileinfo-group{margin-top:5px;margin-bottom:-5px}.wpmud .checkbox-group>span{line-height:20px;text-align:right}.wpmud .checkbox-group input[type=checkbox]+label{width:60px}.wpmud .checkbox-group input[type=checkbox]+label>[class^=hb-]:before{margin-right:0}.wpmud .checkbox-group input[type=checkbox]+label>span[class^=hb]>span{display:none}}.wpmud .wphb-block-uptime-status .wphb-uptime-icon{max-height:110px}.wpmud .wphb-block-content-uptime-data-range{padding-top:9px;padding-bottom:9px}.wpmud .uptime-chart svg g g rect{fill:#e6e6e6;stroke:transparent;stroke-width:0}.wpmud .uptime-chart svg g g text{fill:#fff;font-family:Roboto,Arial,sans-serif;font-size:13px;font-weight:400}.wpmud .uptime-chart svg g g text:last-of-type{fill:#aaa;font-weight:500}.wpmud .wrap-wphb-uptime .wphb-pills.green,.wpmud .wrap-wphb-uptime .wphb-pills.red{height:40px;line-height:40px;width:200px;border-radius:5px}.wpmud .wphb-block-uptime-downtime .dev-list{margin-top:30px}.wrap-wphb-caching .wphb-block-entry .wphb-block-content-center,.wrap-wphb-uptime .wphb-block-entry .wphb-block-content-center{max-width:600px;margin:0 auto}.wpmud .wrap-wp-hummingbird .mline{margin-bottom:30px}.wpmud .select-list-container .list-value{font-weight:500!important}#wpbody-content{padding-bottom:25px}.wpmud .with-bottom-border{border-bottom:1px solid #e6e6e6;padding-bottom:30px}.wpmud #header{position:relative;margin-bottom:0}.wpmud .dev-overlay .title .title-action{font-family:Roboto,sans-serif;margin-top:5px;vertical-align:middle;color:#888;font-size:13px;line-height:30px;margin-right:-20px}.wpmud #header .actions.status{left:200px;margin-top:1px}.wpmud .wrap-wphb-uptime>#header .actions.status{left:120px;margin-top:1px!important}.wpmud #header .actions.status [tooltip]:after{margin-left:27px;bottom:-60%}.wpmud #header .actions.status [tooltip]:before{bottom:25%;left:100%;border-right-color:#0b2f3f;border-top:5px solid transparent}.wpmud #header .actions{position:absolute;display:flex;align-items:center;top:5px;right:0}.wpmud #header .actions>*{display:inline-block;margin-left:10px}.wpmud #header .actions.label-and-button>:first-child{margin-left:0}.wpmud #header .actions.label-and-button .actions-label{color:#888;font-size:13px;line-height:18px;margin:0;text-align:right}.wpmud #header .actions .header-label{font-size:12px;color:#aaa}.wpmud #header~.sub-header{margin-top:-15px;margin-bottom:30px}.wpmud .select-list-container{min-width:100px}.wpmud .select-list-container .list-value{color:#333;font-weight:400;padding:6px 8px 6px 15px}.wpmud .list-table>tbody>tr:last-child>td{border-bottom:1px solid #eee}.wpmud .list-table>thead>tr>th{text-transform:none;font-size:13px;font-weight:700}.wpmud .wphb-border-frame .table-header,.wpmud .wphb-border-frame .table-row{display:flex;justify-content:space-between;padding:15px 80px 15px 30px}.wpmud .wphb-border-frame .table-header{color:#333;font-size:13px;font-weight:700;border-bottom:1px solid #e6e6e6}.wpmud .wphb-border-frame .table-row{border-bottom:1px solid #e6e6e6}.wpmud .wphb-border-frame .table-row:last-child{border-bottom:0}.wpmud .wphb-border-frame .list-table>thead>tr>th{color:#333;font-size:13px;padding:8px 0}.wpmud .wphb-border-frame .list-table>thead>tr>th:first-child{padding:27px 30px}.wpmud .wphb-border-frame .list-table>tbody>tr>td:first-child{padding-left:30px}.wpmud .list-table>tbody>tr>td{padding:12px 10px}.wpmud .list-table .radio-group.with-icon{display:inline-table}.wpmud .list-table .radio-group.with-icon .dev-icon{vertical-align:middle}.wpmud .dev-list{margin:-30px 0 20px}.wpmud .dev-list .content{padding:30px 0;border-bottom:1px solid #eee}.wpmud .dev-list>li.list-header{text-transform:none;color:#333;font-size:13px}.wpmud .dev-list .list-header .list-label{font-weight:700}.wpmud .dev-list>li .list-label{font-size:13px;font-weight:500;line-height:21px;padding:15px 10px 15px 0}.wpmud .dev-list>li .list-data{border-bottom:1px solid #eee;cursor:default;display:table-cell;padding:10px;vertical-align:middle}.wpmud .dev-list>li:last-child .list-detail,.wpmud .dev-list>li:last-child .list-label{border-bottom:1px solid #eee}.wpmud .box-dashboard-welcome .dev-list>li:last-child .list-detail,.wpmud .box-dashboard-welcome .dev-list>li:last-child .list-label,.wpmud .box-minification-summary-meta-box .dev-list>li:last-child .list-detail,.wpmud .box-minification-summary-meta-box .dev-list>li:last-child .list-label,.wpmud .box-performance-welcome .dev-list>li:last-child .list-detail,.wpmud .box-performance-welcome .dev-list>li:last-child .list-label,.wpmud .box-uptime-summary .dev-list>li:last-child .list-detail,.wpmud .box-uptime-summary .dev-list>li:last-child .list-label,.wpmud .dev-list>li:last-child .list-data{border-bottom:1px solid transparent}.wpmud .dev-list>li .list-detail .wphb-dash-numbers{font-family:Roboto Condensed,sans-serif;font-size:18px;color:#666;line-height:30px;text-align:right;font-weight:400}.wpmud .dev-list-stats-border>li:first-child .list-data,.wpmud .dev-list-stats-border>li:first-child .list-detail,.wpmud .dev-list-stats-border>li:first-child .list-label{border-top:1px solid #eee}.wpmud .dev-list-stats-border>li:last-child .list-data,.wpmud .dev-list-stats-border>li:last-child .list-detail,.wpmud .dev-list-stats-border>li:last-child .list-label{border-bottom-color:#eee}.wpmud .dev-list-stats>li .list-detail-stats-heading,.wpmud .dev-list-stats>li .list-label-stats{color:#333;font:500 13px/30px Roboto,Arial,sans-serif}.wpmud .dev-list-stats>li .list-detail-stats-heading{font-weight:400;font-size:18px;color:#666}.wpmud .dev-list-stats>li .list-detail-stats-heading-extra-info{color:#bababa;display:block;font:500 12px/16px Roboto,Arial,sans-serif;margin-top:5px}.wpmud .dev-list-stats.standalone{margin:0}.wpmud .dev-list-stats.small>li .list-detail-stats-heading,.wpmud .dev-list-stats.small>li .list-label-stats{line-height:26px}.wpmud .dev-list-stats>li .list-detail-stats-heading.small{font-size:26px}.wpmud .dev-list-stats .wphb-pills-group{font-size:0;line-height:1em}.wpmud .dev-list-stats>li .list-label-stats-date{margin-right:30px}.wpmud .list-label-link{color:#19b4cf}.wpmud input[type=checkbox]{border-radius:4px;border:1px solid #e6e6e6;background-color:#f8f8f8}.wpmud [tooltip]:after{font:500 12px/18px Roboto;padding:8px 12px;background:#333;min-width:50px;max-width:250px;transition:all .2s ease;text-transform:none}.wpmud .tooltip-box{overflow:hidden}.wpmud .tooltip-box:hover{overflow:visible}.wpmud .radio-group input[type=radio]+label>[tooltip]{position:absolute;left:0;top:0;bottom:0;right:0;z-index:9}.wpmud .wphb-dashboard-caching-cloudflare-box p{margin-top:30px;margin-bottom:20px}.wpmud #wphb-box-dashboard-cloudflare .cloudflare-step form label{text-align:left;font-weight:400;padding-left:0;padding-right:0}.wpmud .cloudflare-step{margin-top:30px}.wpmud .cloudflare-step form label input{margin-top:5px;background-color:#f8f8f8}.wpmud .cloudflare-step form label input::-webkit-input-placeholder{color:#aaa}.wpmud .cloudflare-step form label input:-moz-placeholder,.wpmud .cloudflare-step form label input::-moz-placeholder{color:#aaa}.wpmud .cloudflare-step form label input:-ms-input-placeholder{color:#aaa}.wpmud .cloudflare-step>p:first-child{text-align:left}.wpmud .cloudflare-spinner{display:inline-block;float:right}.wpmud #cloudflare-how-to-title,.wpmud .cloudflare-step p.cloudflare-submit{position:relative;margin-top:11px}.wpmud .cloudflare-step p.cloudflare-submit input[type=submit]{display:inline-block;margin-top:0}.wpmud #cloudflare-how-to{clear:both;margin-left:0;margin-bottom:0;list-style-position:inside}.wpmud .cloudflare-step>p{margin-bottom:30px}.wpmud .cloudflare-step p.cloudflare-submit{float:right}.wpmud .cloudflare-step hr{margin-top:20px;margin-bottom:20px}.wpmud .cloudflare-step p.cloudflare-clear-cache-text{text-align:left}.wpmud #cloudflare-how-to-title{float:left;line-height:15px;padding-top:7px;font-size:13px}.wpmud .cloudflare-step .cloudflare-data{text-align:left;margin-top:30px;margin-bottom:0}.wpmud .cloudflare-data>span{display:inline-block;margin-right:20px}.wpmud .wphb-button-label{border:1px solid transparent;border-radius:15px;color:#fff;font:500 12px/26px Roboto;display:inline-block;height:26px;margin:0;padding:0 12px;text-decoration:none;text-shadow:none;text-transform:none;white-space:nowrap}.wpmud .wphb-button-label-red{background:#fd6e70}.wpmud .wphb-button-label-yellow{background:#ffd000;color:#333}.wpmud .wphb-button-label-green{background:#1abc9c}.wpmud .wphb-button-label-light{color:#333;background-color:#f2f2f2}.wpmud .wrap-wp-hummingbird .wphb-label{color:#fff;display:block;font:500 15px/20px Roboto;text-shadow:none;white-space:nowrap}.wpmud .wrap-wp-hummingbird .wphb-label-notice{background:#14485f;border-radius:3px;padding:5px 10px}.wpmud .wrap-wp-hummingbird .wphb-label-notice-warning{background:#fecf2f;color:#4e4b10}.wpmud .wrap-wp-hummingbird .wphb-label-notice-inline{display:inline-block;font-size:13px;color:#888}.wpmud .wrap-wp-hummingbird .wphb-label-disabled{background:#f2f2f2;border-radius:20px;color:silver;display:inline-block;font:500 12px/20px Roboto,Arial,sans-serif;min-width:120px;padding:5px;text-align:center;text-transform:uppercase}.wpmud .footer-love{text-align:center;margin-top:50px;color:silver;font-size:13px}.wpmud .footer-love>.dashicons-heart{font-size:14px;line-height:22px}.wpmud .wphb-table-wrapper.complex{min-height:.01%;overflow-x:auto;border-bottom:1px solid #eee}.wpmud .wphb-table{font-weight:400;max-width:100%;width:100%;color:#333}.wpmud .wphb-border-frame{border:1px solid #e6e6e6;border-radius:5px;margin:10px 0 0!important}.wpmud .list-table.wphb-table tr:hover .wphb-table-td-has-tooltip{z-index:3}.box-dashboard-welcome .box-content,.box-minification-summary-meta-box .box-content,.box-performance-welcome .box-content,.box-uptime-summary .box-content{padding:30px 30px 10px!important}.box-dashboard-welcome .wphb-block-entry,.box-minification-summary-meta-box .wphb-block-entry,.box-performance-welcome .wphb-block-entry,.box-uptime-summary .wphb-block-entry{width:100%;min-height:172px}.wpmud section[class^=box-dashboard-] .box-title:before{font-family:hummingbird,sans-serif;color:#333;float:left;font-size:20px;margin:18px 10px 18px 0}.wpmud section[class^=box-dashboard-performance] .box-title:before{content:"\E90C"}.wpmud section[class^=box-dashboard-minification] .box-title:before{content:"\E90B"}.wpmud section[class^=box-dashboard-browser] .box-title:before{content:"\E905"}.wpmud section[class^=box-dashboard-gzip] .box-title:before{content:"\E907"}.wpmud section[class^=box-dashboard-uptime] .box-title:before{content:"\E900"}.wpmud section[class^=box-dashboard-smush] .box-title:before{content:"\E90F"}.wpmud section[class^=box-dashboard-cloudflare] .box-title:before{content:"\E906"}.wpmud section[class^=box-dashboard-reports] .box-title:before{content:"\E90D"}.wpmud section[class^=box-dashboard-caching-gravatar] .box-title:before{content:"\E913"}.wpmud section[class^=box-dashboard-caching-page] .box-title:before{content:"\E914"}.wpmud .wphb-image,.wpmud .wphb-image-icon-content{display:block;height:auto;max-width:100%}.wpmud .wphb-image-center,.wpmud .wphb-image-icon-content-center{margin-right:auto;margin-left:auto}.wpmud .wphb-image-icon-content-top{margin-bottom:30px}.wpmud .wphb-listing{margin:0}.wpmud .wphb-listing li{font-family:Roboto,Arial,sans-serif;font-size:15px;font-weight:400;line-height:21px;margin-top:10px;margin-bottom:0}.wpmud .wphb-listing li:first-child{margin-top:0}.wpmud .wphb-listing.bold li{font-weight:500}.wpmud .wphb-listing-ordered{padding-left:20px}.wpmud .wphb-listing li strong{font-weight:500}.wpmud .wphb-listing li:before{color:#17a8e3;top:0}.wpmud .wphb-listing li p{font-size:13px;line-height:22px;margin-top:5px}.wpmud .wphb-select-group{clear:both}.wpmud .wphb-select-group:after{content:"";display:table;clear:both}.wpmud .wphb-select-group>div,.wpmud .wphb-select-group>label{float:left;display:block}.wpmud .wphb-select-group>label{line-height:43px;margin-right:10px}.wpmud .select-container{overflow:hidden}.wpmud .select-container.active{overflow:visible}.wpmud .wphb-select-group .spinner{margin:11px}.wpmud .wrap-wp-hummingbird .notice{margin:15px 0 0}.wpmud .wrap-wp-hummingbird>.wphb-notice:not(.notice){width:600px;box-shadow:0 5px 25px 0 rgba(0,0,0,.15);border-radius:0 0 5px 5px;padding:10px 30px;position:absolute!important;z-index:100;left:50%;margin-left:-300px;top:0}.wpmud .wphb-notice:not(.notice){border-radius:5px;color:#333;font-family:Roboto,Arial,sans-serif;font-size:15px;font-weight:400;line-height:18px;padding:15px 30px;position:relative;width:100%}.wpmud .wphb-notice.notice p{font-size:14px;line-height:1.5;margin:10px 0}.wpmud .wphb-notice p,.wpmud .wphb-notice p a{color:#333;font-weight:400}.wpmud .wphb-notice:not(.notice) p,.wpmud .wphb-notice:not(.notice) span,.wpmud .wphb-notice strong,.wpmud .wphb-notice ul{margin:0 0 10px -30px;padding:0 0 0 30px}.wpmud .wphb-notice:not(.notice) p:last-of-type{margin:0}.wpmud .wphb-notice p a{font-weight:500}.wpmud .wphb-notice p a:hover{color:#333}.wpmud .wphb-notice .wphb-icon,.wpmud .wphb-notice .wphb-icon .wdv-icon{font-size:22px;height:22px;line-height:22px;width:22px}.wpmud .wphb-notice.can-close .close{cursor:pointer;color:#333;font-size:12px;font-weight:700;line-height:36px;margin-left:0;opacity:.5;text-transform:uppercase}.wpmud .wphb-block-entry-third span.status-ok:before,.wpmud .wphb-notice-blue-info p:first-child:before,.wpmud .wphb-notice-blue p:first-child:before,.wpmud .wphb-notice-error.can-close p:before,.wpmud .wphb-notice-error p:first-child:before,.wpmud .wphb-notice-grey-info p:before,.wpmud .wphb-notice-grey p:before,.wpmud .wphb-notice-success.can-close p:before,.wpmud .wphb-notice-success p:first-child:before,.wpmud .wphb-notice-warning p:first-child:before,.wpmud span.dash-cloudflare-connected-status:before{font-family:hummingbird,sans-serif;font-size:20px;vertical-align:middle;line-height:20px;top:-2px;position:relative;margin-left:-30px;margin-right:10px}.wpmud span.dash-cloudflare-connected-status:before{color:#17a8e3;content:"\E903";font-size:16px;margin-right:8px}.wpmud .wphb-notice-success{background-color:#d1f1ea}.wpmud .wphb-notice-error{background-color:#ffe5e9}.wpmud .wphb-notice-warning{background-color:#fff5d5;color:#333}.wpmud .wphb-notice-blue,.wpmud .wphb-notice-blue-info{background-color:#e1f6ff;margin-top:30px}.wpmud .wphb-notice-grey,.wpmud .wphb-notice-grey-info{background-color:#f2f2f2;margin-top:10px}.wpmud .cloudflare-step .wphb-notice-blue{margin-top:0}.wpmud .wphb-block-entry-third span.status-ok:before,.wpmud .wphb-notice-success p:before{content:"\E903";color:#1abc9c}.wpmud .wphb-block-entry-third span.status-ok:before{margin-right:0;line-height:20px}.wpmud .wphb-notice-error p:before{content:"\E904";color:#ff7f83}.wpmud .wphb-notice-warning p:before{content:"\E902";color:#fecf2f;font-size:18px;line-height:18px}.wpmud .wphb-notice-blue p:before{content:"\E903";color:#17a8e3}.wpmud .wphb-notice-blue-info p:before{content:"\E902";color:#17a8e3}.wpmud .wphb-notice-grey-info p:before,.wpmud .wphb-notice-grey p:before{content:"\E902";color:#888}.wpmud .dev-overlay .wphb-notice-warning p{font-size:14px;line-height:22px}.wpmud .wphb-notice-warning p,.wpmud .wphb-notice-warning p a{color:#333}.wpmud .wphb-heading-status-green{color:#1abc9c}.wpmud .wphb-heading-status{font-family:Roboto Condensed,Roboto,sans-serif;font-size:30px;margin-top:0}.wpmud .toggle .toggle-label{text-align:left}.wpmud .toggle .toggle-cross{color:#ddd}.wpmud .toggle-group{display:inline-block}.wpmud .toggle .toggle-checkbox:checked:disabled+.toggle-label{background:transparent}.wpmud .toggle .toggle-checkbox:checked:disabled+.toggle-label:before{bottom:0;left:0;right:0;top:0}.wpmud .toggle .toggle-checkbox:checked:disabled+.toggle-label:after{margin-left:1px}.wpmud .toggle-item.bordered,.wpmud .wphb-block-entry.bordered{border-top:1px solid #e6e6e6;padding-top:30px}.wpmud .toggle-item.space-top-small{margin:15px 0 0}.wpmud .toggle-item label{text-align:left}.wpmud .toggle-item .toggle-item-group{display:table;width:100%}.wpmud .toggle-item .toggle-actions,.wpmud .toggle-item .toggle-info{display:table-cell}.wpmud .toggle-item .toggle-item-title{color:#555;font:400 15px/20px Roboto,Arial,sans-serif;margin:0}.wpmud .toggle-item .toggle-actions{padding-left:30px;vertical-align:middle;text-align:right}.wphb-pills{display:inline-block;background-color:#ffd000;color:#333;border-radius:15px;width:39px;height:26px;font-size:12px;line-height:26px;text-align:center;font-weight:500}.wpmud .box-title .wphb-pills{margin:16px 0 0 10px}.wphb-pills.grey{background-color:#f2f2f2;color:#666}.wphb-pills.red{background-color:#ff6d6d;color:#fff}.wphb-pills.green{background-color:#1abc9c;color:#fff}.wphb-pills.with-arrow:after{border:8px solid transparent;content:"";height:0;pointer-events:none;position:absolute;width:0;z-index:1}.wphb-pills.with-arrow.right:after{border-left-color:#19b4cf;left:50%;margin-top:-8px;top:50%}.wphb-pills.with-arrow.left:after{border-right-color:#19b4cf;right:100%;margin-top:-8px;top:50%}.wphb-pills.with-arrow.right.grey:after{border-left-color:#f2f2f2}.wphb-pills.with-arrow.left.grey:after{border-right-color:#f2f2f2}.wphb-pills-group{border-collapse:collapse;border-spacing:0;font-size:0;display:inline-block;position:relative}.wphb-pills-group.stacked .wphb-pills{font-size:10px;line-height:12px;height:12px;text-align:left;max-width:69px;color:#888;display:block;background-color:transparent}.wphb-pills-group.stacked .wphb-pills:last-child{color:#1abc9c;background-color:transparent}.wphb-pills-group.stacked .dev-icon.dev-icon-caret_down{color:#1abc9c;margin-left:7px}.wphb-pills-group .wphb-pills{border-radius:0;width:80px;line-height:30px;height:30px;margin:0}.wphb-pills-group .wphb-pills:first-child{border-radius:5px 0 0 5px!important}.wphb-pills-group .wphb-pills:last-child{background-color:#17a8e3;color:#fff;border-radius:0 5px 5px 0!important}.wpmud .wphb-block-section{margin-top:40px}.wpmud .wphb-block-section:first-child{margin-top:0}.wpmud .wphb-block-section-content *{color:#555;line-height:20px}.wpmud .content-box .wphb-block-entry-image-bottom{margin-bottom:-30px}.wpmud .content-box .wphb-block-entry-image-center{margin-top:30px}.wpmud .content-box .wphb-block-entry-image-center img{margin-left:auto;margin-right:auto}.wpmud .content-box-one-col-center .box-content{text-align:left}.wpmud .content-box-one-col-center .wphb-block-entry-content{margin:0 auto}.wpmud .content-box-flex{display:flex;justify-content:space-between;align-items:flex-end}.wpmud .content-box-two-cols-image-left .box-content{text-align:left}.wpmud .content-box-two-cols-image-left .wphb-block-entry-content,.wpmud .content-box-two-cols-image-left .wphb-block-entry-image{display:block}.wpmud .content-box-two-cols-image-left .wphb-block-entry-image{float:left;max-width:192px}.wpmud .content-box-two-cols-image-left .wphb-block-entry-content{margin:30px 0 0 285px}.wpmud .box-dashboard-smush-no-membership .content-box-two-cols-image-left .wphb-block-entry-content{margin-top:45px}.wpmud .content-box-two-cols-image-left .wphb-block-entry-content .title{text-align:left}.wpmud .wphb-block+.wphb-block{margin-top:30px}.wpmud .wphb-block-header{margin-bottom:30px}.wpmud .wphb-block-title{font-family:Roboto Condensed,Roboto,sans-serif;font-size:22px;line-height:26px;margin:0;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.wpmud .wphb-block-content+.wphb-block-content{margin-top:30px}.wpmud .wphb-block-content>:last-child{margin-bottom:0}#wphb-box-dashboard-cloudflare .wphb-block-entry .wphb-block-entry-content{padding-top:0}.wpmud .wphb-block-content-center{text-align:center}.wpmud .wphb-block-content pre{font-weight:500;font-family:Roboto;font-size:13px;line-height:18px;background-color:#f8f8f8;border:1px solid #e6e6e6;border-radius:5px;margin:0;padding:20px 30px;white-space:pre;overflow-x:scroll;max-width:100%}.wpmud .wphb-server-instructions .wphb-block-content pre{max-height:240px}.wpmud .wphb-block-content-blue{background-color:#e0f6ff;border-radius:5px;padding:20px 30px}.wpmud .wphb-block-content .toggle,.wpmud .wphb-block-content .toggle .toggle-label,.wpmud .wphb-block-content .tooltip-box{height:21px;vertical-align:top}.wpmud .wphb-block-content-group{border-collapse:separate;border-spacing:0;display:table;width:100%}.wpmud .wphb-block-content-group-inner{display:table-row}.wpmud .wphb-block-content-group-item{display:table-cell;vertical-align:middle;width:100%}.wpmud .wphb-block-content-group-item .wphb-block-content{margin-left:30px}.wpmud .wphb-block-content-group-item:first-child .wphb-block-content{margin-left:0}.wpmud .wphb-block-content-group .wphb-block-content.small{padding:20px 23px;width:80px}.wpmud .wphb-block-entry:after{content:"";clear:both;display:block}.wpmud .wphb-block-entry-content .title{color:#333;font-size:22px;font-weight:700;line-height:1.333em;margin:0 0 .5em;max-width:100%;text-transform:uppercase}.wpmud .wphb-block-entry-content .content>p,.wpmud .wphb-block-entry-content .title{margin:0 0 20px}.wpmud .wphb-block-entry-content .content>p:last-child,.wpmud .wphb-block-entry-content .content>p:last-of-type{margin-bottom:0}@keyframes spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}50%{-webkit-transform:rotate(180deg);transform:rotate(180deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.wphb-scan-progress{overflow:hidden;width:100%}.not-present .wphb-scan-progress-text:before,.wphb-scan-progress .wphb-scan-progress-text:before{content:" ";width:18px;height:18px;display:inline-block;position:relative;top:5px;left:1px;margin-right:10px;border:2px solid #a9e0ec;border-bottom-color:#17a8e3;border-radius:100%;background:0 0;box-sizing:border-box;animation:spinner .75s 0s linear infinite}.wphb-scan-progress .wphb-scan-progress-text{width:65px;float:left;text-align:left}.wphb-scan-progress .wphb-scan-progress-text img{display:inline-block;vertical-align:middle;margin-right:10px}.wphb-scan-progress .wphb-scan-progress-text span{font-weight:700;font-family:Roboto Condensed,sans-serif;font-size:13px;color:#333;vertical-align:middle;line-height:30px}.wphb-scan-progress .wphb-scan-progress-bar{background:#e6e6e6;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;height:10px;width:70%;overflow:hidden;margin-top:10px;position:relative}.wphb-scan-progress .wphb-scan-progress-bar span{background:#17a8e3;height:10px;display:inline-block;position:absolute;top:0;left:0;-webkit-transition:width 1s ease-in-out;-moz-transition:1s width ease-in-out;transition:width 1s ease-in-out}.wphb-block-test{background-color:#f9f9f9;border-radius:5px;max-width:700px;width:100%;height:60px;padding:15px 30px}.wphb-block-test-header{margin-bottom:10px}.wphb-progress-state{margin-top:10px;text-align:center}.wphb-progress-state .wphb-progress-state-text{color:#8b8b8b;font-size:13px;line-height:22px}.wphb-block-test-standalone{max-width:100%;text-align:center;margin-top:25px}.wphb-block-test-standalone .wphb-progress{margin:0 auto}.wphb-filename-extension{border-radius:4px;display:block;float:left;font-family:Roboto,sans-serif;font-size:9px;color:#fff;text-transform:uppercase;text-align:center;line-height:43px;height:30px;margin:0 10px 0 0;width:30px}.wphb-filename-extension-html{background-color:#f56418}.wphb-filename-extension-other{background-color:#aaa}.wphb-filename-extension-css{background-color:#25a8de}.wphb-filename-extension-media{background-color:#55ddb8}.wphb-filename-extension-images{background-color:#bdf2f7;color:#333}.wphb-filename-extension-javascript,.wphb-filename-extension-js{background-color:#f7e100;color:#333}.wphb-score{display:inline-block;position:relative}.wphb-score-type-circle{border-radius:100%;height:30px;width:30px}.wphb-score-type-circle.large{height:80px;width:80px}.wphb-score-type-circle .wphb-score-graph-circle{stroke:#e5e5e5;stroke-dashoffset:80;stroke-width:5px;-moz-transition:stroke-dashoffset 1s linear;-webkit-transition:stroke-dashoffset 1s linear;transition:stroke-dashoffset 1s linear}.wphb-score-type-circle.large .wphb-score-graph-circle{stroke-dashoffset:219.8;stroke-width:10px}.wphb-score-type-circle .wphb-score-graph-result{transform:rotate(-80deg) translateX(-27px) translateY(2.5px);-moz-transform:rotate(-80deg) translateX(-27px) translateY(2.5px);-webkit-transform:rotate(-80deg) translateX(-27px) translateY(2.5px)}.wphb-score-type-circle.large .wphb-score-graph-result{transform:rotate(-80deg) translateX(-72.5px) translateY(6.5px);-moz-transform:rotate(-80deg) translateX(-72.5px) translateY(6.5px);-webkit-transform:rotate(-80deg) translateX(-72.5px) translateY(6.5px)}.wpmud .wphb-button-label,.wpmud .wphb-performance-report-item-score,.wpmud .wphb-score-result{cursor:pointer;position:relative}.wpmud .list-table.hover-effect>tbody>tr[class*=wphb-table-score] td:first-child{padding-left:30px}.wpmud .list-table.hover-effect>tbody>tr[class*=wphb-table-score] td:first-child:before{font-family:hummingbird,sans-serif;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:20px;vertical-align:middle;margin-right:10px}.wpmud .list-table.hover-effect>tbody>tr.wphb-table-score-dismissed:hover td:first-child:after,.wpmud .list-table.hover-effect>tbody>tr.wphb-table-score-error:hover td:first-child:after,.wpmud .list-table.hover-effect>tbody>tr.wphb-table-score-success:hover>td:first-child:after,.wpmud .list-table.hover-effect>tbody>tr.wphb-table-score-warning:hover td:first-child:after{content:normal}.wphb-table-score-success td:first-child,.wpmud .list-table.hover-effect>tbody>tr.wphb-table-additional-success td:first-child,.wpmud .list-table.hover-effect>tbody>tr.wphb-table-score-success:hover td:first-child{border-left:4px solid #1abc9c}.wpmud .list-table.hover-effect>tbody>tr.wphb-table-score-success td:first-child:before{color:#1abc9c;content:"\E903"}.wphb-table-score-warning td:first-child,.wpmud .list-table.hover-effect>tbody>tr.wphb-table-additional-warning td:first-child,.wpmud .list-table.hover-effect>tbody>tr.wphb-table-score-warning:hover td:first-child{border-left:4px solid #ffd000}.wpmud .list-table.hover-effect>tbody>tr.wphb-table-score-warning td:first-child:before{color:#ffd000;content:"\E904"}.wphb-table-score-error td:first-child,.wpmud .list-table.hover-effect>tbody>tr.wphb-table-additional-error td:first-child,.wpmud .list-table.hover-effect>tbody>tr.wphb-table-score-error:hover td:first-child{border-left:4px solid #ff6d6d}.wpmud .list-table.hover-effect>tbody>tr.wphb-table-score-error td:first-child:before{color:#ff6d6d;content:"\E904"}.wphb-table-score-dismissed td:first-child,.wpmud .list-table.hover-effect>tbody>tr.wphb-table-additional-dismissed td:first-child,.wpmud .list-table.hover-effect>tbody>tr.wphb-table-score-dismissed:hover td:first-child{border-left:4px solid #888}.wpmud .list-table.hover-effect>tbody>tr.wphb-table-score-dismissed td:first-child:before{color:#888;content:"\E904"}.wphb-score-result-grade-a,.wphb-score-result-grade-aplus{color:#1abc9c}.wphb-score-result-grade-a .wphb-score-type-circle .wphb-score-graph-result,.wphb-score-result-grade-aplus .wphb-score-type-circle .wphb-score-graph-result{stroke:#1abc9c}.wphb-score-result-grade-b{color:#1abc9c}.wphb-score-result-grade-b .wphb-score-type-circle .wphb-score-graph-result{stroke:#1abc9c}.wphb-score-result-grade-c{color:#ffd000}.wphb-score-result-grade-c .wphb-score-type-circle .wphb-score-graph-result{stroke:#ffd000}.wphb-score-result-grade-d{color:#ffd000}.wphb-score-result-grade-d .wphb-score-type-circle .wphb-score-graph-result{stroke:#ffd000}.wphb-score-result-grade-e,.wphb-score-result-grade-f{color:#ff6d6d}.wphb-score-result-grade-e .wphb-score-type-circle .wphb-score-graph-result,.wphb-score-result-grade-f .wphb-score-type-circle .wphb-score-graph-result{stroke:#ff6d6d}.wphb-score-result-grade-dismissed{color:#aaa}.wphb-score-result-grade-dismissed .wphb-score-type-circle .wphb-score-graph-result{stroke:#aaa}.wphb-score-have-label .wphb-score-result-label,.wphb-score-have-label .wphb-score-type{float:left;display:block}.wphb-score-have-label.inside .wphb-score-result-label,.wphb-score-have-label.inside .wphb-score-type{float:none}.wphb-score-have-label .wphb-score-result-label{font-family:Roboto,Arial,sans-serif;font-size:15px;color:#888;padding-left:10px}.wphb-score-have-label .wphb-score-type-circle+.wphb-score-result-label{line-height:30px;min-width:35px;text-align:left}.wphb-score-have-label.inside .wphb-score-type{position:relative}.wphb-score-have-label.inside .wphb-score-result-label{font-size:26px;left:0;line-height:34px;margin:-17px 0 0;min-width:100%;padding:0;position:absolute;right:0;text-align:center;top:50%}#wphb-error-details{display:none}#wphb-error-details-link{color:#fff;text-decoration:none;margin-top:10px;margin-bottom:10px;display:inline-block;font-weight:400}#wphb-error-details-link>.dashicons{text-decoration:none}#wphb-error-details-link.expanded{display:none}.wpmud .wphb-tabs a{color:#333;display:block}.wpmud .wphb-tabs .wphb-tab{padding:5px 20px;height:30px}.wpmud .wphb-tabs .wphb-tab.current{background-color:#e6e6e6;border-radius:20px;font-weight:500}.wpmud .wphb-tab .wphb-button-label{position:relative;top:-25px;left:100%;margin-left:-22px;width:39px;height:26px;text-align:center;font-size:12px;font-weight:500;line-height:24px}.wpmud .wphb-tab>i{color:#ff6d6d;position:relative;top:-23px;left:100%;margin-left:-5px;font-size:21px}.wpmud .wphb-tab>i.hb-wpmudev-icon-tick{color:#1abc9c}@media screen and (max-width:1200px){.hide-to-large{display:none}.wphb-steps{text-align:center}.wphb-step-number{float:none;margin-bottom:10px}.wphb-step-number-inner{margin:0 auto}.wphb-step-content{margin-left:0}.wpmud .box-dashboard-smush-no-membership .content-box-two-cols-image-left .wphb-block-entry-content,.wpmud .content-box-two-cols-image-left .wphb-block-entry-content{margin-top:65px}.wpmud .performance-report-table .wphb-performance-report-item-score,.wpmud .performance-report-table .wphb-performance-report-item-type{width:115px}.wpmud .performance-report-table .wphb-performance-report-item-cta{width:180px}.wpmud .box-reporting-summary .box-footer .wphb-block-entry-content{margin-top:0}.wpmud .wrap-wphb-caching .row{display:block;table-layout:inherit}.wpmud .wrap-wphb-caching .row .col-half,.wpmud .wrap-wphb-gzip .row .col-half,.wpmud .wrap-wphb .row .col-half{display:block;margin-top:30px;padding:0;width:100%}.wpmud .wrap-wphb-caching .row .col-half:first-child,.wpmud .wrap-wphb-gzip .row .col-half:first-child,.wpmud .wrap-wphb .row .col-half:first-child{margin-top:0}}@media screen and (max-width:1100px){.wpmud .content-box-two-cols-image-left .wphb-block-entry{text-align:center;min-height:100%}.wpmud .content-box-two-cols-image-left .wphb-block-entry-image{display:none}.wpmud .wphb-block-entry-third{width:49%}.wpmud .content-box-two-cols-image-left .wphb-block-entry-image .wphb-image{margin:0 auto}.wpmud .content-box-two-cols-image-left .wphb-block-entry-content{margin:35px 0 0 155px}.wpmud .content-box-two-cols-image-left .wphb-block-entry-content .title{text-align:center}.wpmud .wphb-block-entry-third{text-align:left;padding-left:0}.hide-to-desktop{display:none!important}.wpmud .box-dashboard-reports-no-membership .wphb-block-entry-image,.wpmud .box-dashboard-uptime-no-membership .wphb-block-entry-image{display:none}.wpmud .wphb-cf-notice p,.wpmud .wphb-upsell-free-message p{margin-left:auto;margin-top:30px}.wpmud .wphb-cf-notice p:after,.wpmud .wphb-upsell-free-message p:after{display:none}.wpmud .performance-report-table .wphb-performance-report-item-type{width:105px}.wpmud .performance-report-table .wphb-performance-report-item-cta{width:165px}.wpmud .performance-report-table .wphb-performance-report-item-score{width:105px;padding-left:20px!important}}@media screen and (max-width:1060px){.wpmud .wphb-border-row,.wpmud .wphb-border-row-header{padding:15px}}@media screen and (max-width:960px){.wpmud .row{display:block}.wpmud .row .col-fifth,.wpmud .row .col-four-fifths{display:block;width:100%;padding:0}.wpmud .dev-overlay{left:35px;top:15px}.wpmud .wphb-table.stack{display:block}.wpmud .wphb-table.stack>tfoot,.wpmud .wphb-table.stack>thead{display:none}.wpmud .wphb-table.stack>tbody{display:block;width:100%}.wpmud .wphb-table.stack>tbody>tr{display:block;position:relative;width:100%}.wpmud .wphb-table.stack>tbody>tr:before{background:transparent;border-top:1px solid #eaeaea;border-bottom:1px solid transparent;bottom:0;content:"";display:block;left:0;margin:0 -30px;position:absolute;right:0;top:0}.wpmud .wphb-table.stack>tbody>tr:first-child:before{border-top-color:transparent}.wpmud .wphb-table.stack>tbody>tr>td{border-bottom:none;display:block;padding-left:0;position:relative;text-align:left;width:100%}.wpmud .wphb-table.stack>tbody>tr>td:before{content:attr(th-data);display:block;float:left;font-size:15px;font-weight:700;line-height:1.5em;min-width:150px;max-width:300px;margin-right:20px;text-transform:uppercase}.wpmud .wphb-table.stack>tbody>tr>td.has-button-label:before{line-height:2em}.wpmud .wphb-table.stack>tbody>tr>td.has-select{max-height:64px}.wpmud .wphb-table.stack>tbody>tr>td.has-select:before{line-height:2.867em}.wpmud .wphb-table.stack>tbody>tr,.wpmud .wphb-table.stack>tbody>tr>td:first-child{border-top:none}.wpmud .wphb-table.stack>tbody>tr>td:last-child{border-bottom:none}.wpmud .wphb-table.stack>tbody>tr:hover:before{background:#fbfbfb}.wpmud .wphb-table.stack>tbody>tr:first-child:hover:before{border-top-color:#eaeaea}.wpmud .wphb-table.stack>tbody>tr:last-child:hover:before{border-bottom-color:#eaeaea}.wpmud .wphb-table.stack>tbody>tr:hover>td{border-bottom:none}.wpmud .wphb-table.stack>tbody>tr:hover>td:first-child:after,.wpmud .wphb-table.stack>tbody>tr:hover>td:last-child:after{display:none}.wpmud .wphb-table.stack>tbody>tr>td>*{display:inline-block}.wpmud .wphb-block-entry-third{padding-left:0}}@media screen and (max-width:783px){.wpmud #header .actions{position:relative;display:flex;align-items:center;top:0;margin:10px 0;float:none;padding-bottom:0}.wpmud #header .actions .button:first-child{margin-left:0}.wpmud #header .actions [tooltip].tooltip-bottom:after{margin-left:-54px}.wpmud .box-content .with-padding{padding:0}.wpmud .dev-overlay{left:0;top:0}.wpmud .row,.wpmud .row-sep{display:block;table-layout:inherit}.wpmud .row .col-half,.wpmud .row .col-quarter,.wpmud .row .col-third,.wpmud .row .col-three-quarters,.wpmud .row .col-two-third{display:block;margin-top:30px;padding:0;width:100%}.wpmud .row .col-half:first-child,.wpmud .row .col-quarter:first-child,.wpmud .row .col-third:first-child,.wpmud .row .col-three-quarters:first-child,.wpmud .row .col-two-third:first-child{margin-top:0}.wpmud .content-box-two-cols-image-left .wphb-block-entry-image{display:none}.wpmud .wphb-border-frame{border:0}.wpmud .wphb-table-wrapper.complex{overflow-y:hidden;width:100%;padding:0}.wpmud .wphb-table-wrapper.complex p{padding:0 20px}.wpmud .wphb-table-wrapper.complex .alignleft{padding-left:20px}.wpmud .wphb-table-wrapper.complex .alignright{padding-right:20px}.wpmud .list-table>tbody>tr>td,.wpmud .list-table>thead>tr>th{width:100%}.wpmud .wphb-table.stack>tbody>tr>td:before{max-width:220px;width:40%}.wpmud .dev-box .box-title .toggle-group{margin-top:0}.wpmud .wrap-wp-hummingbird>.wphb-notice{width:85%}.wpmud #header .after-header-actions .button{margin-top:-15px}.wpmud .callout-box .callout-title{line-height:30px}.wpmud .performance-report-table td,.wpmud .performance-report-table th{width:70%!important}.wpmud .wphb-performance-report-heading.wphb-performance-report-heading-type,.wpmud .wphb-performance-report-item-cta>button,.wpmud .wphb-performance-report-item-type{display:none!important}}@media screen and (max-width:600px){.hide-to-mobile{display:none!important}.wpmud .wphb-block-entry-third{display:block;text-align:center;width:100%}.wpmud .wphb-block-entry-third .dev-list{text-align:left}.wpmud .dev-box .box-title .actions,.wpmud .dev-box .box-title .extra,.wpmud .dev-box .box-title .test-results{float:none;display:block}.wpmud .dev-box .box-title .actions,.wpmud .dev-box .box-title .extra{margin-top:15px}.wpmud .dev-box .box-title{padding:15px 20px}.wpmud .dev-box .box-title .buttons{margin-top:2px;float:right}.wpmud .dev-box .box-title .wphb-pills{margin:4px 0 0 10px}.wpmud .dev-box .box-title h3{line-height:34px;display:inline-block}.wpmud section[class^=box-dashboard-] .box-title:before{margin:5px 10px 5px 0}.wphb-pills{margin:0 0 0 10px}.wphb-pills-group .wphb-pills:first-child{border-radius:5px 5px 0 0!important}.wphb-pills-group .wphb-pills:last-child{border-radius:0 0 5px 5px!important}.wpmud .wrap-wp-hummingbird>.wphb-notice{width:100%;top:46px;margin-left:-251px}.wpmud .wphb-block-entry-third .current-performance-score{margin-bottom:5px}.wpmud .content-box-two-cols-image-left .wphb-block-entry-content.wphb-cf-notice{margin:35px 0 0}.box-dashboard-browser-caching-module .box-content,.wpmud .box-caching-summary .box-content>.box-content{background-image:none}}@media screen and (max-width:480px){.wphb-pills-group{border-collapse:inherit;border-spacing:inherit}.box-dashboard-minification-module .wphb-pills{display:block}.wphb-pills.with-arrow.left:after,.wphb-pills.with-arrow.right:after{border-top-color:#19b4cf;margin-top:0;margin-left:-8px;top:50%}.wphb-pills.with-arrow.right:after{border-left-color:transparent;left:50%}.wphb-pills.with-arrow.left:after{border-right-color:transparent;right:50%}.wphb-pills.with-arrow.right.grey:after{border-top-color:#eee;border-left-color:transparent}.wphb-pills.with-arrow.left.grey:after{border-top-color:#eee;border-right-color:transparent}.wpmud .box-dashboard-performance-module .wphb-score-result-label{margin-left:3px;margin-right:5px}.wpmud .box-dashboard-performance-module .wphb-dash-table .button-ghost{padding:5px 6px 7px!important}.wpmud .wphb-score.wphb-score-have-label{width:65px}.wpmud .dev-box .status-text{line-height:15px;margin-top:0;padding-left:10px;word-wrap:break-word;max-width:150px}.wpmud .wrap-wphb-performance .add-recipient,.wpmud .wrap-wphb-performance .recipient,.wpmud .wrap-wphb-performance .recipient .name{flex-flow:row wrap}.wpmud .wrap-wphb-performance .add-recipient #wphb-first-name,.wpmud .wrap-wphb-performance .add-recipient>button{border-radius:0!important;margin-bottom:5px;border:1px solid #e6e6e6}.wpmud .wrap-wphb-performance .add-recipient>button{margin-top:10px!important}}
2
  /*# sourceMappingURL=app.css.map*/
admin/assets/css/app.css.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"app.css","sourceRoot":""}
1
+ {"version":3,"sources":["webpack:///./_src/admin/scss/_src/admin/scss/common/_classes.scss","webpack:///./_src/admin/scss/_src/admin/scss/common/_mixins.scss","webpack:///./_src/admin/scss/_src/admin/scss/common/_overwrites.scss","webpack:///./_src/admin/scss/_src/admin/scss/common/_typography.scss","webpack:///./_src/admin/scss/_src/admin/scss/common/_buttons.scss","webpack:///./_src/admin/scss/_src/admin/scss/common/_layout.scss","webpack:///./_src/admin/scss/_src/admin/scss/common/_modals.scss","webpack:///./_src/admin/scss/_src/admin/scss/modules/_dashboard.scss","webpack:///./_src/admin/scss/_src/admin/scss/modules/_performance.scss","webpack:///./_src/admin/scss/_src/admin/scss/modules/_caching.scss","webpack:///./_src/admin/scss/_src/admin/scss/modules/_gzip.scss","webpack:///./_src/admin/scss/_src/admin/scss/modules/_minification.scss","webpack:///./_src/admin/scss/_src/admin/scss/modules/_uptime.scss","webpack:///./_src/admin/scss/_src/admin/scss/app.scss"],"names":[],"mappings":"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CACvB,CAIL,+BACI,WACA,eACA,gBACA,iBACA,YAAa,CAShB,yLAHG,aACA,mBACA,oBAAqB,CAUxB,4BAHG,8BACA,YACA,4BAA6B,CAChC,uCAGG,mBAAoB,CACvB,4FAIG,yBACA,eAAgB,CACnB,4CAGG,eACA,WACA,eAAgB,CACnB,oEAIG,iBAAkB,CACrB,0FAIG,gBAAiB,CACpB,8HAKG,cAAe,CAClB,kIAIG,cAAe,CAClB,6BAIG,WACA,eACA,iBACA,cAAe,CAClB,6EAIG,aACA,mBACA,qBACA,cAAe,CAClB,kEAGG,iBACA,WACA,eAAgB,CACnB,kNAMG,eACA,wCACA,UAAc,CACjB,sDAGG,eAAiB,CACpB,mCAIG,8CACA,eACA,gBACA,iBACA,WACA,oBACA,wBAAyB,CAC5B,sBAGG,kBAAmB,CACtB,4DAIG,kBACA,kBACA,yBACA,kBACA,mBACA,WACA,eACA,gBAAiB,CACpB,yCAGG,kBACA,QACA,OACA,iBACA,WACA,QACA,SACA,iCACA,oCACA,8BAA+B,CAClC,4DAIG,WACA,0BACA,eAAgB,CACnB,wWASG,yBAA2B,CAC9B,2CAIG,yBACA,aACA,WACA,kBACA,0BACA,uBACA,kBACA,mBACA,aACA,sBACA,mBACA,sBAAuB,CAC1B,iDAGG,yBACA,cAAe,CAClB,6CAGG,WACA,cAAe,CAClB,kDAGG,wCACA,WACA,gBACA,gBACA,eACA,iBACA,wBAAyB,CAC5B,mDAGG,kBACA,MACA,QACA,cACA,gBACA,wCACA,kBACA,iBACA,yBACA,cAAe,CAClB,sEAGG,WACA,eACA,gBAAiB,CACpB,8DAGG,WACA,kBACA,MACA,QACA,yBACA,4BAIA,kBACA,2BACA,wBAAyB,CAC5B,mEAGG,2BACA,wBAAyB,CAC5B,iCCnXG,gBACA,gBACA,eAAgB,CACnB,4CAGG,qBACA,mBACA,wBAAyB,CAC5B,kDAGG,UAAc,CACjB,4EAIG,cACA,yBACA,qBACA,qBACA,iBACA,kBACA,qBACA,YAAa,CAChB,0EAIG,yBACA,WACA,gBAAiB,CACpB,sCAGG,kBACA,kBAAmB,CACtB,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hB,0EAGG,eAAgB,CACnB,gFAKG,eAAgB,CACnB,sDAGG,aAAc,CACjB,0BCnWG,gBACA,kBAAmB,CACtB,wBAGG,eAAgB,CACnB,sCAGG,eAAkB,CACrB,sDAIG,yBAA0B,CAC7B,wCAGG,qBACA,eACA,gBACA,wBAA0B,CAC7B,4CAGG,eAAgB,CACnB,4CAGG,aACA,mBACA,iBAAkB,CACrB,8CAGG,cAAe,CAClB,qDAGG,cAAe,CAClB,wDAGG,gBACA,0BACA,iBAAkB,CACrB,0DAGG,yBAA0B,CAC7B,oCAGG,qGAEI,0BAA2B,CAC9B,qIAGG,cAAe,CAClB,CC5DL,uBACI,mBACA,aACA,yBACA,WAAY,CACf,mCAEG,0BAA2B,CAC9B,4CAIG,SACA,mBACA,WACA,YACA,gBACA,UACA,kBACA,UACA,aAAc,CACjB,kDAGG,yBACA,kBACA,aACA,UACA,mBACA,uBACA,kBACA,YACA,kBACA,qCACA,wBACA,4BACA,gBACA,eAAgB,CACnB,oEAIG,UAAW,CACd,mCAIG,WACA,WAAY,CACf,8DAGG,aACA,WACA,WAAY,CACf,wCAGG,gBACA,YAAa,CAChB,oIAKG,gBACA,wBAAyB,CAC5B,wHAIG,WACA,UACA,cAAe,CAClB,4BAGG,WACA,eACA,gBAAiB,CACpB,sEAGG,eACA,oBACA,gBAAiB,CACpB,0JAKG,cAAe,CAClB,oOAKG,aAAc,CACjB,0IAIG,UAAW,CACd,2DAGG,qBAAsB,CACzB,4DAGG,kBACA,OACA,MACA,SACA,QACA,SAAU,CACb,0CAGG,cACA,kBAAmB,CAEtB,iDAIG,kBAAmB,CACtB,gCAIG,yBACA,kBAAmB,CACtB,gEAGG,qBACA,kBAAmB,CACtB,4DAIG,2BAA6B,CAChC,uEAGG,8BACA,cACA,YACA,UACA,kBACA,kBACA,UAAW,CACd,yEAGG,WACA,eACA,SACA,kBACA,iBACA,kBACA,OAAQ,CACX,kFAGG,aAAc,CACjB,uCAGG,sBACA,gCACA,mBACA,YAAa,CAChB,wBAGG,oBACA,oBACA,aACA,8BACA,6BACA,mBACA,yBACA,sBACA,mBACA,oBAAqB,CACxB,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G,eAAgB,CACnB,2EAGG,aAAc,CACjB,kCAGG,iBAAkB,CACrB,+BAGG,gBACA,mBACA,eACA,iBACA,yBACA,yBACA,kBACA,SACA,kBACA,gBACA,kBACA,cAAe,CAClB,yDAGG,gBAAiB,CACpB,gCAGG,yBACA,kBACA,iBAAkB,CACrB,4HAKG,YACA,kBAAmB,CACtB,iCAGG,yBACA,iBACA,cACA,UAAW,CACd,uCAGG,iBAAkB,CACrB,sCAGG,mBACA,sBACA,UAAW,CACd,0DAGG,gBAAiB,CACpB,sEAGG,aAAc,CACjB,2DAGG,kBACA,UAAW,CACd,+BAIG,WACA,WACA,aAAc,CACjB,wCAGG,WACA,eACA,gBACA,oBACA,gBACA,eACA,wBAAyB,CAC5B,oFAIG,eAAgB,CACnB,gHAIG,eAAgB,CACnB,mBAIG,GACI,+BACA,sBAAuB,CAG3B,IACI,iCACA,wBAAyB,CAG7B,GACI,gCACA,uBAAyB,EAIjC,oBACI,gBACA,UAAW,CACd,iGAIG,YACA,WACA,YACA,qBACA,kBACA,QACA,SACA,kBACA,yBACA,4BACA,mBACA,eACA,sBACA,yCAA0C,CAC7C,6CAGG,WACA,WACA,eAAgB,CACnB,iDAGG,qBACA,sBACA,iBAAkB,CACrB,kDAGG,gBACA,wCACA,eACA,WACA,sBACA,gBAAiB,CACpB,4CAGG,mBACA,0BACA,uBACA,kBACA,YACA,UACA,gBACA,gBACA,iBAAkB,CACrB,iDAGG,mBACA,YACA,qBACA,kBACA,MACA,OACA,wCACA,qCACA,+BAAoC,CACvC,iBAIG,yBACA,kBACA,gBACA,WACA,YACA,iBAAkB,CACrB,wBAGG,kBAAmB,CACtB,qBAGG,gBACA,iBAAkB,CACrB,+CAGG,cACA,eACA,gBAAiB,CACpB,4BAGG,eACA,kBACA,eAAgB,CACnB,2CAGG,aAAc,CACjB,yBAIG,kBACA,cACA,WACA,8BACA,cACA,WACA,yBACA,kBACA,iBACA,YACA,kBACA,UAAW,CACd,8BAGG,wBAAyB,CAC5B,+BAGG,qBAAyB,CAC5B,6BAGG,wBAAyB,CAC5B,+BAGG,wBAAyB,CAC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","file":"app.css","sourcesContent":["/* ****************************************************************************\n * MODULE: CLASSES\n */\n\n.hidden {\n\tdisplay: none;\n}\n\n// Clearfix\n.cf {\n\t&:after {\n\t content: \"\";\n\t display: table;\n\t clear: both;\n\t }\n}\n.wpmud .wrap-wp-hummingbird .clear {\n\tpadding: 0;\n}\n\n// Responsive Helpers\n@media screen and (min-width: $desktop--small) {\n\t.hide-on-large {\n\t\tdisplay: none;\n\t}\n}\n.hide-on-mobile {\n\t@include bp(desktop-small) {\n\t\tdisplay: none;\n\t}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./_src/admin/scss/_src/admin/scss/common/_classes.scss","/* ****************************************************************************\n * COMMON: MIXINS\n */\n\n// Base at-root\n@mixin optional-at-root($sel) {\n @at-root #{if(not &, $sel, selector-append(&, $sel))} {\n @content;\n }\n}\n\n// Form Input Placeholder\n@mixin form-placeholder {\n @include optional-at-root('&::-webkit-input-placeholder') {\n @content;\n }\n\n @include optional-at-root('&:-moz-placeholder') {\n @content;\n }\n\n @include optional-at-root('&::-moz-placeholder') {\n @content;\n }\n\n @include optional-at-root('&:-ms-input-placeholder') {\n @content;\n }\n}\n\n// Breakpoints\n@mixin bp($point) {\n\n // Phone: < 480px\n @if $point == phone {\n @media only screen and (max-width: $phone) {\n @content;\n }\n }\n\n // Phone Large: < 600px\n @if $point == phone-large {\n @media only screen and (max-width: $phone--large) {\n @content;\n }\n }\n\n // Tablet: < 783px\n @if $point == tablet {\n @media only screen and (max-width: $tablet) {\n @content;\n }\n }\n\n // Desktop Small: < 960px\n @if $point == desktop-small {\n @media only screen and (max-width: $desktop--small) {\n @content;\n }\n }\n\n // Desktop: < 1100px\n @if $point == desktop {\n @media only screen and (max-width: $desktop) {\n @content;\n }\n }\n\n // Desktop Large: < 1200px\n @if $point == desktop-large {\n @media only screen and (max-width: $desktop--large) {\n @content;\n }\n }\n\n // Desktop Wide: < 1440px\n @if $point == desktop-wide {\n @media only screen and (max-width: $desktop--wide) {\n @content;\n }\n }\n\n // Desktop Very Large: < 1600px\n @if $point == desktop-very-large {\n @media only screen and (max-width: $desktop--very-large) {\n @content;\n }\n }\n\n}\n\n\n// WEBPACK FOOTER //\n// ./_src/admin/scss/_src/admin/scss/common/_mixins.scss","/* ****************************************************************************\n * COMMON: OVERWRITES\n * Extend/override WPMUDEV dashboard/wp styles\n */\n\n/* Overwrite for the default notifications */\nbutton.notice-dismiss {\n position: absolute;\n top: 0;\n right: 1px;\n border: none !important;\n margin: 0 !important;\n padding: 9px !important;\n background: none !important;\n color: #72777c !important;\n cursor: pointer !important;\n}\n\n.wpmud #header .actions .button + .button {\n margin-left: 10px;\n}\n\n.wpmud .wphb-dismiss {\n float: right;\n}\n\n.wpmud #wpbody-content > .notice {\n margin: 5px 20px 2px 5px;\n}\n\n/* Fix for tooltip-below */\n.wpmud [tooltip].tooltip-bottom:before {\n margin-top: 2px;\n}\n\n.wpmud [tooltip].tooltip-bottom:after {\n margin-top: 12px;\n}\n\n/* Fix for overflowing tooltips */\n.wpmud .list-table > tbody > tr > td {\n z-index: 0;\n}\n\n.wpmud [tooltip].tooltip-s.tooltip-right:after {\n margin-left: -150px;\n}\n\n.wpmud .wrap-wp-hummingbird a:not('.wdpun-button') {\n color: #17A8E3;\n}\n\n.wpmud .wrap-wp-hummingbird strong {\n color: #333333;\n}\n\n.wpmud .dev-overlay .back {\n background-color: rgba(51, 51, 51, 0.95);\n}\n\n.wpmud .dev-overlay .box {\n padding: 40px 30px 30px;\n}\n\n.wpmud .wrap-wp-hummingbird i.wdv-icon-chevron-down {\n color: #8A8A8A;\n}\n\n.wpmud .select-container:not(.mobile-nav) i.wdv-icon-reorder:before {\n content: \"\\f078\";\n}\n\n.wpmud .select-container:not(.mobile-nav) {\n border: 1px solid #E6E6E6;\n background-color: #F8F8F8;\n}\n\n.wpmud .select-container:not(.mobile-nav) .dropdown-handle {\n background-color: #F8F8F8;\n color: #898989;\n}\n\n/* Install dashboard message */\n.wpmud #wpmu-install-dashboard {\n margin-left: 0;\n}\n\n.wpmud #wpcontent #wpmu-install-dashboard * {\n -webkit-box-sizing: content-box;\n box-sizing: content-box;\n}\n\n.wpmud #wpmu-install-dashboard .wpmu-message {\n font-family: inherit;\n font-weight: inherit;\n line-height: inherit;\n}\n\n/* Toggles */\n.wpmud .toggle .toggle-checkbox:checked + .toggle-label:before,\n.wpmud .toggle .toggle-checkbox:checked + .toggle-label {\n background-color: #17A8E3;\n}\n\n.wpmud .toggle .toggle-label:before {\n background: #AAA;\n}\n\n.wpmud .toggle .toggle-label {\n width: 44px;\n}\n\n.wpmud .toggle .toggle-checkbox:checked + .toggle-label:after {\n margin-left: 24px;\n}\n\n.wpmud .toggle .toggle-label.small {\n width: 36px;\n height: 16px;\n}\n\n.wpmud .toggle .toggle-label.small:after {\n width: 14px;\n height: 14px;\n}\n\n.wpmud .toggle .toggle-checkbox:checked + .toggle-label.small:after {\n margin-left: 21px;\n}\n\n.wpmud .spinner.standalone {\n float: none;\n margin: 0;\n}\n\n.wpmud .spinner.left {\n float: left;\n}\n\n.wpmud .spinner.hide { /* Don't take/render block on layout */\n display: none;\n}\n\n.wpmud .spinner.visible { /* Re-set visibility to visible */\n visibility: visible;\n}\n\n\n// WEBPACK FOOTER //\n// ./_src/admin/scss/_src/admin/scss/common/_overwrites.scss","/* ****************************************************************************\n * COMMON: TYPOGRAPHY\n */\n@import \"_variables\";\n\n/* Fonts */\n@font-face {\n font-family: 'Hummingbird';\n src: url('#{$font--path}/hummingbird.eot?9gcsp9');\n src: url('#{$font--path}/hummingbird.eot?9gcsp9#iefix') format('embedded-opentype'),\n url('#{$font--path}/hummingbird.ttf?9gcsp9') format('truetype'),\n url('#{$font--path}/hummingbird.woff?9gcsp9') format('woff'),\n url('#{$font--path}/hummingbird.svg?9gcsp9#hummingbird') format('svg');\n font-weight: normal;\n font-style: normal;\n}\n\n[class^=\"hb-\"], [class*=\" hb-\"] {\n /* use !important to prevent issues with browser extensions that change fonts */\n font-family: $font--icons !important;\n speak: none;\n font-size: 15px;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n line-height: 1;\n\n /* Better Font Rendering =========== */\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n.hb-fi-settings-slider-control {\n &:before {\n content: \"\\7b\";\n }\n}\n\n.hb-fi-filter {\n &:before {\n content: \"\\7a\";\n }\n}\n\n.hb-icon-audit {\n &:before {\n content: \"\\e900\";\n }\n}\n\n.hb-wpmudev-icon-cross {\n &:before {\n content: \"\\e901\";\n }\n}\n\n.hb-wpmudev-icon-info {\n &:before {\n content: \"\\e902\";\n }\n}\n\n.hb-wpmudev-icon-tick {\n &:before {\n content: \"\\e903\";\n }\n}\n\n.hb-wpmudev-icon-warning {\n &:before {\n content: \"\\e904\";\n }\n}\n\n.hb-icon-cache {\n &:before {\n content: \"\\e905\";\n }\n}\n\n.hb-icon-cloudflare {\n &:before {\n content: \"\\e906\";\n }\n}\n\n.hb-icon-gzip {\n &:before {\n content: \"\\e907\";\n }\n}\n\n.hb-icon-minify-combine {\n &:before {\n content: \"\\e908\";\n }\n}\n\n.hb-icon-minify-defer {\n &:before {\n content: \"\\e909\";\n }\n}\n\n.hb-icon-minify-footer {\n &:before {\n content: \"\\e90a\";\n }\n}\n\n.hb-icon-minify {\n &:before {\n content: \"\\e90b\";\n }\n}\n\n.hb-icon-performancetest {\n &:before {\n content: \"\\e90c\";\n }\n}\n\n.hb-icon-reports {\n &:before {\n content: \"\\e90d\";\n }\n}\n\n.hb-icon-restore {\n &:before {\n content: \"\\e90e\";\n }\n}\n\n.hb-icon-smush {\n &:before {\n content: \"\\e90f\";\n }\n}\n\n.hb-icon-minify-inline {\n &:before {\n content: \"\\e910\";\n }\n}\n\n.hb-wpmudev-icon-eye {\n &:before {\n content: \"\\e911\";\n }\n}\n\n.hb-wpmudev-icon-wrench-tool {\n &:before {\n content: \"\\e912\";\n }\n}\n\n.hb-wpmudev-icon-profile-male {\n &:before {\n content: \"\\e913\";\n }\n}\n\n.hb-wpmudev-icon-page {\n &:before {\n content: \"\\e914\";\n }\n}\n\n.hb-wpmudev-icon-academy {\n &:before {\n content: \"\\e915\";\n }\n}\n\n.wpmud .wphb-icon {\n position: relative;\n}\n\n.wpmud .wphb-icon-left {\n display: block;\n float: left;\n}\n\n.wpmud .wphb-dash-icon {\n font-size: 12px;\n padding-right: 2px;\n}\n\n.wpmud .cf-dismiss {\n display: block;\n margin-top: 6px;\n}\n\n.wpmud .wphb-cf-notice .cf-dismiss a {\n text-transform: uppercase;\n text-decoration: none;\n color: #888;\n}\n\n/* General typography */\n.wpmud .wrap-wp-hummingbird p {\n color: #666;\n}\n\n.wpmud #header h1 {\n color: #333;\n margin: 0;\n}\n\n.wpmud .dev-overlay .title h3 {\n font-size: 16px;\n color: #333;\n}\n\n\n// WEBPACK FOOTER //\n// ./_src/admin/scss/_src/admin/scss/common/_typography.scss","/* ****************************************************************************\n * COMMON: BUTTONS\n */\n\n/* Box-content with buttons */\n.wpmud .box-content .buttons {\n margin-top: 30px;\n}\n\n.wpmud .box-content .buttons.buttons-on-left {\n text-align: left;\n}\n\n.wpmud .box-content .buttons.buttons-on-right {\n text-align: right;\n}\n\n/* Box-footer with buttons */\n.wpmud .box-footer .buttons.buttons-on-left {\n text-align: left;\n}\n\n.wpmud .box-footer .buttons.buttons-on-right {\n text-align: right;\n}\n\n.wpmud .wphb-notice:not(.notice) .buttons {\n margin: 10px 30px 0;\n}\n\n.wpmud #header .button[disabled] {\n background-color: #E6E6E6 !important;\n border-radius: 4px;\n color: #AAAAAA !important;\n}\n\n.wpmud .documentation-button:before {\n content: '\\e915';\n color: #888888;\n font-family: 'hummingbird', sans-serif;\n font-size: 12px;\n vertical-align: middle;\n line-height: 16px;\n top: -2px;\n position: relative;\n margin-right: 5px;\n}\n\n.wpmud .documentation-button:hover:before,\n.wpmud .documentation-button:focus:before {\n color: #FFFFFF;\n}\n\n.wpmud .wphb-modal .wphb-dialog-content .button {\n margin-bottom: 15px;\n}\n\n.wpmud .wphb-modal .alignleft,\n.wpmud .wphb-modal .button {\n margin-bottom: 0 !important;\n}\n\n.wpmud .wphb-block-entry-content .buttons-group .button {\n display: inline-block;\n}\n\n.wpmud .wrap-wp-hummingbird .report-status button {\n border-radius: 20px !important;\n margin-top: 10px !important;\n background-color: #D1F1EA !important;\n color: #1ABC9C !important;\n}\n\n.wpmud .wrap-wp-hummingbird .report-status button i {\n color: #1ABC9C;\n font-size: 16px;\n position: relative;\n line-height: 10px;\n top: 3px;\n}\n\n.wpmud .wrap-wp-hummingbird .report-status button.inactive {\n background-color: #E6E6E6 !important;\n color: #AAAAAA !important;\n}\n\n.wpmud .wrap-wphb-performance .scan-settings .buttons {\n margin-top: 30px;\n}\n\n.wpmud .wrap-wphb-performance .add-recipient > button {\n background-color: #888888 !important;\n border-radius: 0 4px 4px 0 !important;\n}\n\n.wpmud .wrap-wphb-gzip #enable-cache-wrap .button,\n.wpmud .wrap-wphb-caching #enable-cache-wrap .button {\n margin-top: 30px;\n}\n\n.wpmud .wphb-code-snippet .button {\n position: absolute;\n left: 100%;\n margin-left: -90px !important;\n margin-top: 15px !important;\n}\n\n.wpmud .box-page-caching .box-footer .buttons > .button {\n margin-top: -20px;\n}\n\n.wpmud .box-caching-gravatar .button-large {\n margin: 0 !important;\n}\n\n.wrap-wp-hummingbird .button-cta-green:hover {\n box-shadow: none;\n}\n\n.wphb-scan-progress .wphb-scan-cancel-button {\n float: right;\n margin-top: -13px;\n}\n\n.wphb-scan-progress .wphb-scan-cancel-button > a {\n font-size: 12px;\n color: #AAAAAA;\n text-transform: uppercase;\n}\n\n/* Buttons */\n.wpmud .wphb-modal button:not(.wph-button):not(#collapse-button),\n.wpmud .wphb-modal .button:hover:not(:focus):not(:active):not(.wph-button):not(#collapse-button):not([tooltip]) {\n background: #17A8E3;\n}\n\n.wpmud .wrap-wp-hummingbird .wpdui-btn,\n.wpmud .wphb-modal .button:not(.notice-dismiss),\n.wpmud .wrap-wp-hummingbird button:not(.notice-dismiss),\n.wpmud .wrap-wp-hummingbird .button,\n.wpmud .wrap-wp-hummingbird button:not(.wph-button):not(#collapse-button):not(.notice-dismiss) {\n font: 500 12px/16px 'Roboto' !important;\n padding: 7px 16px;\n height: 30px;\n background-color: #17A8E3;\n color: #FFFFFF;\n border-radius: 3px;\n -moz-border-radius: 3px;\n transition: all .3s ease;\n -webkit-transition: all .3s ease;\n text-shadow: none !important;\n}\n\n.wpmud .wrap-wp-hummingbird button:hover:not(:focus):not(:active):not(.wph-button):not(#collapse-button):not([tooltip]):not(.notice-dismiss),\n.wpmud .wrap-wp-hummingbird .button:hover:not(:focus):not(:active):not(.wph-button):not(#collapse-button):not([tooltip]),\n.wpmud .wphb-modal .button:hover:not(:focus):not(:active):not(.wph-button):not(#collapse-button):not([tooltip]),\n.wpmud .wrap-wp-hummingbird button:active,\n.wpmud .wrap-wp-hummingbird button:focus,\n.wpmud .wrap-wp-hummingbird .button:active,\n.wpmud .wrap-wp-hummingbird .button:focus,\n.wpmud .wphb-modal .button:focus,\n.wpmud .wphb-modal .button:active {\n background: #0A9BD6;\n}\n\n.wpmud .wrap-wp-hummingbird .button-disabled {\n border-radius: 15px;\n background-color: #F8F8F8;\n color: #C0C0C0;\n}\n\n.wpmud .wphb-modal .button.button-large,\n.wpmud .wrap-wp-hummingbird .wpdui-btn--full,\n.wpmud .wrap-wp-hummingbird button.button-large:not(.wph-button):not(#collapse-button),\n.wpmud .wrap-wp-hummingbird button.button-large,\n.wpmud .wrap-wp-hummingbird .button.button-large {\n font: 500 15px/20px 'Roboto' !important;\n height: 40px !important;\n padding: 11px 20px 9px;\n}\n\n.wpmud .wrap-wp-hummingbird button.button-ghost:not(.wph-button):not(#collapse-button),\n.wpmud .wrap-wp-hummingbird .button-ghost,\n.wpmud .wphb-modal .button-ghost {\n padding: 5px 16px 7px !important;\n background-color: transparent !important;\n border: 2px solid #DDDDDD;\n color: #888888 !important;\n}\n\n.wpmud .wrap-wp-hummingbird button.button-ghost:hover:not(.wph-button):not(#collapse-button),\n.wpmud .wrap-wp-hummingbird .button-ghost:hover:not(:focus):not(:active),\n.wpmud .wphb-modal .button-ghost:hover:not(:focus):not(:active),\n.wpmud .wrap-wp-hummingbird .button-ghost:active,\n.wpmud .wrap-wp-hummingbird .button-ghost.active,\n.wpmud .wrap-wp-hummingbird .button-ghost:hover:enabled,\n.wpmud .wrap-wp-hummingbird .button-ghost:focus,\n.wpmud .wphb-modal .button-ghost:active,\n.wpmud .wphb-modal .button-ghost:hover:enabled,\n.wpmud .wphb-modal .button-ghost:focus,\n.wpmud .wrap-wp-hummingbird .button-grey:hover {\n background-color: #7B7B7B !important;\n border-color: #7B7B7B;\n color: #FFFFFF !important;\n}\n\n.wpmud .wrap-wp-hummingbird button.button-ghost.button-large:not(.wph-button):not(#collapse-button),\n.wpmud .wrap-wp-hummingbird .button-ghost.button-large,\n.wpmud .wphb-modal .button-ghost.button-large {\n padding: 9px 20px 9px !important;\n}\n\n.wpmud .wphb-modal .button-content-cta {\n box-shadow: none;\n background-color: #1ABC9C !important;\n color: #FFFFFF;\n}\n\n.wpmud .wrap-wp-hummingbird .button-content-cta {\n box-shadow: none;\n background-color: #1ABC9C;\n color: #FFFFFF;\n}\n\n.wpmud .wrap-wp-hummingbird .button-content-cta:hover:not(:focus):not(:active),\n.wpmud .wphb-modal .button-content-cta:hover:not(:focus):not(:active),\n.wpmud .wrap-wp-hummingbird .button-content-cta:active,\n.wpmud .wrap-wp-hummingbird .button-content-cta:focus,\n.wpmud .wphb-modal .button-content-cta:active,\n.wpmud .wphb-modal .button-content-cta:focus {\n background: #0DAF8F !important;\n border-color: #0DAF8F;\n}\n\n.wpmud .wrap-wp-hummingbird .button-content-cta.button-ghost {\n background: transparent;\n color: #1ABC9C !important;\n border-color: #1ABC9C;\n border-radius: 20px;\n}\n\n.wpmud .wrap-wp-hummingbird .button-content-cta.button-ghost:active {\n color: #FFFFFF !important;\n border-color: #0DAF8F;\n}\n\n.wpmud .wrap-wp-hummingbird .button-notice {\n background-color: #E6E6E6 !important;\n color: #AAAAAA !important;\n}\n\n.wpmud .wrap-wp-hummingbird .button-notice:hover:not(:focus):not(:active):not(.wph-button):not(#collapse-button):not([tooltip]),\n.wpmud .wrap-wp-hummingbird .button-notice:hover:not(:focus):not(:active),\n.wpmud .wrap-wp-hummingbird .button-notice:active,\n.wpmud .wrap-wp-hummingbird .button-notice:focus {\n background-color: #888888 !important;\n color: #FFFFFF !important;\n}\n\n.wpmud .wrap-wp-hummingbird .button-grey {\n background-color: #888888 !important;\n color: #FFFFFF !important;\n}\n\n.wrap-wp-hummingbird .button-load-more {\n background-color: transparent;\n border: 1px solid #ddd;\n border-radius: 50%;\n color: #bababa;\n font-family: 'Roboto Condensed', 'Roboto', Arial, sans-serif;\n font-size: 13px;\n font-weight: 700;\n line-height: 18px;\n height: 140px;\n padding: 0;\n transition: color .4s, background-color .4s;\n width: 140px;\n}\n\n.wrap-wp-hummingbird .button-load-more:hover:not(:focus):not(:active) {\n background-color: #fafafa;\n border-color: #ddd;\n color: #777771;\n}\n\n.wrap-wp-hummingbird .button-load-more:active,\n.wrap-wp-hummingbird .button-load-more:focus {\n background: #777771;\n}\n\n\n// WEBPACK FOOTER //\n// ./_src/admin/scss/_src/admin/scss/common/_buttons.scss","/* ****************************************************************************\n * COMMON: LAYOUT\n */\n\n/* .row */\n.wpmud .row {\n margin-top: 30px;\n}\n\n.wpmud .box-content .row:first-of-type {\n margin-top: 0;\n}\n\n.wpmud .row-space-large {\n margin-bottom: 40px;\n}\n\n.wpmud .row .col-center {\n display: block;\n margin-right: auto;\n margin-left: auto;\n}\n\n.wpmud .row .col-quarter,\n.wpmud .row .col-three-quarters,\n.wpmud .row .col-fifth,\n.wpmud .row .col-four-fifths {\n display: table-cell;\n padding: 0 15px 0 15px;\n position: relative;\n vertical-align: top;\n}\n\n.wpmud .row .col-quarter {\n width: 25%;\n}\n\n.wpmud .row .col-three-quarters {\n width: 75%;\n}\n\n.wpmud .row .col-fifth {\n width: 20%;\n}\n\n.wpmud .row .col-four-fifths {\n width: 80%;\n}\n\n.wpmud .row .col-four-fifths.hidden {\n display: none;\n}\n\n.wpmud .row .col-quarter:first-child,\n.wpmud .row .col-three-quarters:first-child,\n.wpmud .row .col-fifth:first-child,\n.wpmud .row .col-four-fifths:first-child {\n padding-left: 0;\n}\n\n.wpmud .row .col-quarter:last-child,\n.wpmud .row .col-three-quarters:last-child,\n.wpmud .row .col-fifth:last-child,\n.wpmud .row .col-four-fifths:last-child {\n padding-right: 0;\n}\n\n/* .dev-box */\n.wpmud .dev-box {\n padding: 0;\n}\n\n.wpmud .dev-box:last-child {\n margin-bottom: 0;\n}\n\n.wpmud .dev-box .box-title {\n clear: both;\n height: inherit;\n margin: 0;\n padding: 0 30px;\n}\n\n.wpmud .dev-box .box-title h3 {\n font-size: 16px;\n color: #333333;\n float: left;\n}\n\n.wpmud .dev-box .box-title .wphb-label-notice-inline {\n margin: 2px 15px;\n}\n\n.wpmud .dev-box .box-title:after {\n content: '';\n display: table;\n clear: both;\n}\n\n.wpmud .dev-box .box-title .extra {\n float: right;\n}\n\n.wpmud .dev-box .box-title .extra-text {\n margin: 20px 0 0;\n}\n\n.wpmud .dev-box .box-title .extra-label {\n display: inline-block;\n margin: 0;\n line-height: 20px;\n}\n\n.wpmud .dev-box .box-title .extra-label-value {\n color: #477B92;\n font-weight: 400;\n text-transform: uppercase;\n}\n\n.wpmud .dev-box .box-title .wphb-select-group {\n margin: 10px 0 0;\n}\n\n.wpmud .dev-box .box-title .test-results {\n float: right;\n margin-top: 15px;\n}\n\n.wpmud .dev-box .box-title .test-results-label {\n display: block;\n float: left;\n font-family: 'Roboto Condensed', 'Roboto', Arial, sans-serif;\n font-weight: 700;\n line-height: 30px;\n margin-right: 10px;\n text-transform: uppercase;\n}\n\n.wpmud .dev-box .box-title .test-results .wphb-score {\n display: block;\n float: left;\n}\n\n.wpmud .dev-box .box-title .toggle-group {\n margin: 6px 15px 0 0;\n}\n\n.wpmud .dev-box .box-content {\n padding: 30px;\n word-wrap: break-word;\n}\n\n.wpmud .dev-box .box-content > * {\n margin-bottom: 20px;\n}\n\n.wpmud .dev-box .box-content > *:last-child {\n margin-bottom: 0;\n}\n\n.wpmud .dev-box .box-content .row-space-large {\n margin-bottom: 40px;\n}\n\n/* .box-content */\n\n.wpmud .box-content.no-padding {\n padding: 0;\n}\n\n.wpmud .box-content.no-vertical-padding {\n padding-top: 0;\n padding-bottom: 0;\n}\n\n.wpmud .wphb-modal .no-side-padding,\n.wpmud .box-content.no-side-padding {\n padding-right: 0;\n padding-left: 0;\n}\n\n.wpmud .box-content .with-padding {\n padding: 30px;\n}\n\n.wpmud .box-content .add-side-padding {\n padding-right: 30px;\n padding-left: 30px;\n}\n\n.wpmud .box-content .no-top-padding {\n padding-top: 0;\n}\n\n.wpmud .box-footer {\n margin-top: 0;\n padding: 30px;\n border-top: 1px solid #EAEAEA;\n}\n\n/* Settings forms */\n.wpmud .settings-form span.sub {\n display: block;\n font-size: 13px;\n color: #888;\n line-height: 22px;\n margin: 10px 0 0;\n}\n\n.wpmud .wphb-dash-table-row span.sub {\n margin: 0;\n}\n\n.wpmud .settings-form .col-two-third > label {\n display: inline-block;\n padding: 2px 10px 0;\n color: #333;\n line-height: 30px;\n margin: 0;\n}\n\n.wpmud .settings-form .wphb-border-frame label {\n margin-top: 25px;\n padding: 0;\n color: #888888;\n font-size: 13px;\n}\n\n.wpmud .settings-form .wphb-border-frame small {\n display: block;\n font-size: 13px;\n color: #888;\n line-height: 22px;\n}\n\n.wpmud .settings-form.disabled {\n background-color: rgba(242, 242, 242, 0.5) !important;\n}\n\n.wpmud .settings-form.disabled > * {\n opacity: 0.5;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./_src/admin/scss/_src/admin/scss/common/_layout.scss","/* ****************************************************************************\n * COMMON: MODALS\n */\n\n.wpmud .dev-overlay .title .close {\n color: #888888;\n font-size: 34px;\n}\n\n.wpmud .wphb-modal * {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n font-family: 'Roboto', sans-serif;\n}\n\n.wpmud .wphb-modal .wphb-dialog-content > * {\n margin-bottom: 30px;\n}\n\n.wpmud .wphb-modal .wphb-dialog-content > *:last-child {\n margin-bottom: 0;\n}\n\n.wpmud .wphb-modal .wphb-dialog-content .wphb-modal-image-bottom {\n margin-bottom: -30px;\n}\n\n.wpmud .wphb-modal .wphb-progress-state {\n margin-top: -20px;\n}\n\n.wpmud .wphb-modal .wphb-dialog-footer {\n border-top: 1px solid #EAEAEA;\n margin: 30px -30px;\n padding: 30px 30px 0;\n}\n\n.wpmud .wphb-progress-modal .wphb-progress,\n.wpmud .wphb-progress-modal .wphb-block-test {\n max-width: 100%;\n}\n\n.wpmud .wphb-progress-modal .wphb-dialog-content p {\n color: #666666;\n}\n\n.wpmud .wphb-progress-modal .wphb-notice-box p {\n color: #333333;\n font-size: 13px;\n line-height: 22px;\n}\n\n/* CDN modal */\n.wphb-cdn-block {\n border: 1px solid #E6E6E6;\n border-radius: 5px;\n padding: 18px 0;\n}\n\n.wphb-cdn-block > div {\n display: flex;\n align-content: center;\n align-items: center;\n height: auto;\n padding: 20px 30px 0;\n}\n\n.wphb-cdn-block > div > label {\n margin: 2px 0 0 0;\n color: #666666;\n}\n\n.wphb-cdn-block > p {\n color: #888888 !important;\n padding: 0 30px 0 76px;\n}\n\n.wpmud .wphb-modal.wphb-quick-setup-modal .wphb-block-test,\n.wpmud.hummingbird_page_wphb-minification .wphb-modal .wphb-block-test,\n.wpmud.toplevel_page_wphb-minification .wphb-modal .wphb-block-test {\n display: flex;\n align-content: center;\n align-items: center;\n height: auto;\n padding: 20px 30px;\n margin-bottom: 30px;\n}\n\n.wpmud.hummingbird_page_wphb-minification .wphb-modal .wphb-block-test {\n margin-bottom: 10px;\n}\n\n.wpmud .wphb-modal.wphb-quick-setup-modal .wphb-block-test > p {\n font-size: 13px;\n line-height: 22px;\n margin-right: 14px;\n margin-bottom: 0;\n}\n\n.wpmud.hummingbird_page_wphb-minification .wphb-modal .wphb-block-test > label {\n margin: 0;\n}\n\n.wpmud .dev-overlay.dismiss-report .box {\n width: 400px;\n margin-left: -250px;\n}\n\n.wpmud .dev-overlay.dismiss-report .title {\n margin-bottom: 30px;\n}\n\n.wpmud .dev-overlay.dismiss-report .title h3 {\n font-size: 15px;\n text-transform: none;\n}\n\n.wpmud .dev-overlay.dismiss-report .wphb-dialog-content > p {\n color: #888888;\n font-size: 13px;\n line-height: 22px;\n}\n\n.wpmud .dev-overlay.dismiss-report .wphb-dialog-footer {\n border: none;\n}\n\n\n// WEBPACK FOOTER //\n// ./_src/admin/scss/_src/admin/scss/common/_modals.scss","/* ****************************************************************************\n * MODULES: DASHBOARD\n */\n\n/* Dashboard summary */\n.wpmud .wphb-block-entry-third {\n color: #333333;\n width: calc(100% / 2 - 98px);\n padding-left: 5%;\n padding-top: 10px;\n display: inline-block;\n vertical-align: middle;\n}\n\n.wpmud .wphb-block-entry-third span {\n font-weight: 400;\n}\n\n.wpmud .wphb-block-entry-third p {\n font-size: 13px;\n margin-top: 0;\n color: #888888;\n}\n\n.wpmud .wphb-block-entry-third span.not-present {\n font-size: 55px;\n line-height: 30px;\n margin-bottom: 20px;\n}\n\n.wpmud .wphb-block-entry-third span.score-span {\n font-size: 13px;\n margin-left: -12px;\n}\n\n.wpmud .wphb-block-entry-third .current-performance-score {\n margin-bottom: 20px;\n}\n\n.wpmud .wphb-block-entry-third .hb-wpmudev-icon-warning,\n.wpmud .wphb-block-entry-third .hb-wpmudev-icon-info,\n.wpmud .wphb-block-entry-third .hb-wpmudev-icon-tick {\n position: relative;\n top: -22px;\n left: 5px;\n font-size: 20px;\n}\n\n.wpmud .wphb-tab i.hb-wpmudev-icon-info.dismissed,\n.wpmud .wphb-block-entry-third .hb-wpmudev-icon-info {\n color: #888888;\n}\n\n.wpmud .wphb-block-entry-third .hb-wpmudev-icon-warning {\n color: #FECF2F;\n}\n\n.wpmud .wphb-block-entry-third .hb-wpmudev-icon-tick {\n color: #1ABC9C;\n}\n\n.wpmud .wphb-block-entry-third .dev-list {\n margin: 0 !important;\n border-bottom: 0;\n}\n\n.wpmud .wphb-block-entry-third .dev-list li:first-child span {\n padding-top: 4px;\n}\n\n/* Dashboard background images */\n.box-dashboard-reports-no-membership,\n.box-dashboard-uptime-no-membership,\n.box-dashboard-smush-no-membership .box-content,\n.box-dashboard-browser-caching-module .box-content,\n.box-reporting-summary .wphb-reporting-no-membership {\n background: no-repeat 30px 100%;\n padding-bottom: 30px !important;\n}\n\n.box-dashboard-reports-no-membership .box-content,\n.box-dashboard-uptime-no-membership .box-content {\n padding: 30px 30px 0 !important;\n}\n\n.box-dashboard-reports-no-membership {\n background-image: url('../image/hb-graphic-upsell-reports.png');\n}\n\n.box-dashboard-uptime-no-membership {\n background-image: url('../image/hb-graphic-upsell-uptime.png');\n}\n\n.box-dashboard-smush-no-membership .box-content {\n background-image: url('../image/smush-share-widget.png');\n}\n\n.box-dashboard-browser-caching-module .box-content {\n background-image: url('../image/graphic-hb-cf-sell@2x.png');\n background-size: 107px 148px;\n}\n\n.box-reporting-summary .wphb-reporting-no-membership {\n background-image: url('../image/hummingbird-upsell-minify.png');\n background-size: 118px 126px;\n}\n\n.box-dashboard-browser-caching-module .box-content.no-background-image {\n background-image: none;\n}\n\n@media only screen and (-webkit-min-device-pixel-ratio: 2),\nonly screen and (min--moz-device-pixel-ratio: 2),\nonly screen and (-o-min-device-pixel-ratio: 2/1),\nonly screen and (min-device-pixel-ratio: 2),\nonly screen and (min-resolution: 192dpi),\nonly screen and (min-resolution: 2dppx) {\n .box-dashboard-reports-no-membership,\n .box-dashboard-uptime-no-membership,\n .box-dashboard-smush-no-membership .box-content {\n background-size: 107px 148px;\n }\n .box-dashboard-reports-no-membership {\n background-image: url(\"../image/hb-graphic-upsell-reports@2x.png\");\n }\n .box-dashboard-uptime-no-membership {\n background-image: url('../image/hb-graphic-upsell-uptime@2x.png');\n }\n .box-dashboard-smush-no-membership .box-content {\n background-image: url('../image/smush-share-widget@2x.png');\n }\n .box-reporting-summary .wphb-reporting-no-membership {\n background-image: url('../image/hummingbird-upsell-minify@2x.png');\n }\n}\n\n@media screen and (min-width: 1550px) {\n .box-dashboard-reports-no-membership .wphb-block-entry .row {\n padding-bottom: 20px;\n }\n .box-dashboard-uptime-no-membership .content p {\n padding-bottom: 20px;\n }\n .box-dashboard-smush-no-membership .buttons {\n padding-bottom: 20px;\n }\n}\n\n/* Dashboard tables */\n.wpmud .wphb-dash-table-header {\n color: #333333;\n font-size: 13px;\n font-weight: bold;\n line-height: 30px;\n display: flex;\n}\n\n.wpmud .wphb-border-frame .wphb-caching-summary-item-type,\n.wpmud .wphb-border-frame .wphb-gzip-summary-item-type,\n.wpmud .wphb-dash-table-row > div:first-child {\n display: flex;\n align-items: center;\n align-content: center;\n}\n\n.wpmud .wphb-dash-table-row {\n display: flex;\n align-items: center;\n align-content: center;\n justify-content: space-between;\n height: 60px;\n border-top: 1px solid #E6E6E6;\n}\n\n.wpmud .wphb-dash-table-row:last-child {\n margin-bottom: -10px;\n}\n\n.wpmud .wphb-dash-table-header > span:first-child,\n.wpmud .wphb-dash-table-row > div:first-child {\n flex-basis: 50% !important;\n text-align: left;\n}\n\n.wpmud .wphb-dash-table-row > div:first-child {\n font-size: 13px;\n color: #333333;\n font-weight: 500;\n}\n\n.wpmud .wphb-dash-table-header > span,\n.wpmud .wphb-dash-table-row > div {\n text-align: center;\n}\n\n.wpmud .wphb-dash-table-header > span:last-child,\n.wpmud .wphb-dash-table-row > div:last-child {\n text-align: right;\n}\n\n/* Three column and two column layouts */\n.wpmud .wphb-dash-table.two-columns > .wphb-dash-table-header > span,\n.wpmud .wphb-dash-table.two-columns > .wphb-dash-table-row > div {\n flex-basis: 50%;\n}\n\n.wpmud .wphb-dash-table.three-columns > .wphb-dash-table-header > span,\n.wpmud .wphb-dash-table.three-columns > .wphb-dash-table-row > div {\n flex-basis: 25%;\n}\n\n/* Status text on dashboard meta boxes */\n.wpmud .dev-box .status-text {\n color: #888888;\n font-size: 13px;\n line-height: 22px;\n margin-top: 5px;\n}\n\n/* Dashboard Performance */\n.wpmud .box-dashboard-performance-module .wphb-performance-report-item-score {\n display: flex;\n align-items: center;\n align-content: center;\n max-width: 65px;\n}\n\n.wpmud .box-dashboard-performance-module .wphb-score-result-label {\n margin-left: 10px;\n color: #888888;\n font-weight: 500;\n}\n\n/* Dashboard: Minification */\n.wpmud .box-dashboard-welcome .dev-list > li:last-child .list-detail,\n.wpmud .box-dashboard-uptime .wphb-dash-table-row > div:last-child,\n.wpmud .box-dashboard-minification-module .wphb-dash-table-row > div:last-child {\n font-size: 18px;\n font-family: \"Roboto Condensed\", sans-serif;\n color: #666666;\n}\n\n.wpmud .box-dashboard-minification-module .wphb-pills {\n font-weight: bold;\n}\n\n/* Dashboard become pro member */\n.wpmud .callout-box .callout-title {\n font-family: 'Roboto Condensed', Arial, sans-serif;\n font-size: 22px;\n font-weight: bold;\n line-height: 60px;\n color: #333333;\n padding-bottom: 30px;\n text-transform: uppercase;\n}\n\n.wpmud .callout-box p {\n margin-bottom: 30px;\n}\n\n.wpmud .wphb-cf-notice p,\n.wpmud .wphb-upsell-free-message p {\n position: relative;\n border-radius: 4px;\n background-color: #E1F6FF;\n padding: 20px 30px;\n margin-left: -140px;\n color: #333333;\n font-size: 13px;\n line-height: 22px;\n}\n\n.wpmud .wphb-upsell-free-message p:after {\n position: absolute;\n top: 43%;\n left: 0;\n margin-left: -7px;\n content: '';\n width: 0;\n height: 0;\n border-top: 7px solid transparent;\n border-bottom: 7px solid transparent;\n border-right: 7px solid #E1F6FF;\n}\n\n.wpmud .wphb-cf-notice a,\n.wpmud .wphb-upsell-free-message a {\n color: #333333;\n text-decoration: underline;\n font-weight: 500;\n}\n\n/* Dashboard Smush */\n.wpmud .box-dashboard-caching-gravatar-module .wphb-notice,\n.wpmud .box-dashboard-smush .content .wphb-notice,\n.wpmud .box-dashboard-caching-page-module .content .wphb-notice,\n.wpmud .box-dashboard-browser-caching-module .content .wphb-notice,\n.wpmud .box-dashboard-gzip-module .content .wphb-notice,\n.wpmud .box-dashboard-smush-no-membership .content .wphb-notice {\n margin-top: 20px !important;\n}\n\n/* Dashboard Reports */\n.wpmud .wrap-wp-hummingbird .report-status {\n background-color: #F8F8F8;\n height: 140px;\n width: 100%;\n position: relative;\n -webkit-border-radius: 7px;\n -moz-border-radius: 7px;\n border-radius: 7px;\n margin-bottom: 10px;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n}\n\n.wpmud .wrap-wp-hummingbird .report-status:hover {\n background-color: #f2f2f2;\n cursor: pointer;\n}\n\n.wpmud .wrap-wp-hummingbird .report-status i {\n color: #666666;\n font-size: 24px;\n}\n\n.wpmud .wrap-wp-hummingbird .report-status strong {\n font-family: \"Roboto Condensed\", sans-serif;\n color: #666666;\n font-weight: bold;\n margin-top: 10px;\n font-size: 13px;\n line-height: 20px;\n text-transform: uppercase;\n}\n\n.wpmud .wrap-wp-hummingbird .report-status .corner {\n position: absolute;\n top: 0;\n right: 0;\n color: #1ABC9C;\n font-weight: bold;\n font-family: \"Roboto Condensed\", sans-serif;\n padding-right: 6px;\n padding-top: 10px;\n text-transform: uppercase;\n font-size: 13px;\n}\n\n.wpmud .wrap-wp-hummingbird .report-status.with-corner.grey .corner i {\n color: #888888;\n font-size: 16px;\n margin-right: 4px;\n}\n\n.wpmud .wrap-wp-hummingbird .report-status.with-corner:before {\n content: '';\n position: absolute;\n top: 0;\n right: 0;\n border: solid transparent;\n border-top-right-radius: 7px;\n}\n\n.wpmud .wrap-wp-hummingbird .report-status.with-corner:before {\n border-width: 30px;\n border-right-color: #D1F1EA;\n border-top-color: #D1F1EA;\n}\n\n.wpmud .wrap-wp-hummingbird .report-status.with-corner.grey:before {\n border-right-color: #E6E6E6;\n border-top-color: #E6E6E6;\n}\n\n\n// WEBPACK FOOTER //\n// ./_src/admin/scss/_src/admin/scss/modules/_dashboard.scss","/* ****************************************************************************\n * MODULES: PERFORMANCE\n */\n\n.wpmud .performance-report-table {\n text-align: left;\n margin-top: 30px;\n overflow: hidden;\n}\n\n.wpmud .performance-report-table .wpdui-btn {\n display: inline-block;\n margin: 10px 0 20px;\n text-transform: uppercase;\n}\n\n.wpmud .performance-report-table .wpdui-btn:hover {\n color: #ffffff;\n}\n\n.wpmud .performance-report-table a,\n.wpmud .performance-report-table a:hover {\n color: #17A8E3;\n overflow-wrap: break-word;\n word-wrap: break-word;\n word-break: break-all;\n -ms-hyphens: auto;\n -moz-hyphens: auto;\n -webkit-hyphens: auto;\n hyphens: auto;\n}\n\n.wpmud .performance-report-table p,\n.wpmud .performance-report-table ol li {\n font-size: 13px !important;\n color: #888888;\n line-height: 22px;\n}\n\n.wpmud .performance-report-table ol > p {\n margin-left: -30px;\n margin-bottom: 15px;\n}\n\n.wpmud .performance-report-table > thead > tr > th:first-child {\n padding-left: 30px;\n}\n\n.wpmud .performance-report-table .wphb-performance-report-item:hover td {\n cursor: pointer;\n border-bottom: 0 !important;\n}\n\n.wpmud .performance-report-table .wphb-performance-report-item-score {\n width: 137px;\n}\n\n.wpmud .performance-report-table .wphb-performance-report-item-type {\n color: #888888;\n font-size: 13px;\n transition: color .3s;\n text-transform: capitalize;\n width: 130px;\n}\n\n.wpmud .performance-report-table .wphb-performance-report-item:hover .wphb-performance-report-item-type {\n color: #333333;\n}\n\n.wpmud .performance-report-table .wphb-performance-report-item-cta {\n text-align: right;\n width: 225px;\n}\n\n.wpmud .wphb-performance-report-item .trigger-additional-content {\n color: #888888;\n cursor: pointer;\n display: inline-block;\n font-size: 14px;\n line-height: 1em;\n height: 14px;\n margin: 8px 30px 8px 15px;\n transition: color .3s;\n vertical-align: middle;\n}\n\n.wpmud .wphb-performance-report-item .trigger-additional-content .dev-icon-caret_down:before {\n display: inline-block;\n transition: transform 0.5s;\n transform: rotate(0);\n}\n\n.wpmud .wphb-performance-report-item-opened .trigger-additional-content .dev-icon-caret_down:before {\n transform: rotate(-180deg);\n}\n\n.wpmud .performance-report-table .wphb-performance-report-item-opened,\n.wpmud .wphb-table.performance-report-table .wphb-performance-report-item-additional-content:hover,\n.wpmud .wphb-table.performance-report-table .wphb-performance-report-item-opened:hover {\n background: #F8F8F8;\n}\n\n.wpmud .performance-report-table .wphb-performance-report-item-additional-content {\n background: #F8F8F8;\n display: none;\n}\n\n.wpmud .performance-report-table .wphb-performance-report-item-additional-content-opened {\n display: table-row;\n}\n\n.wpmud .performance-report-table .wphb-performance-report-item-additional-content-opened > td {\n border-top: 0 !important;\n}\n\n.wpmud .wphb-performance-report-item-additional-content-inner {\n padding: 0 !important;\n}\n\n.wpmud .dev-box-performance-report-additional-content {\n padding: 30px;\n margin: 0 30px 30px;\n border-radius: 5px;\n background-color: #FFFFFF;\n box-shadow: 0 2px 0 0 #EAEAEA;\n}\n\n.wpmud .dev-box-performance-report-additional-content h4:first-child {\n margin-top: 0;\n}\n\n.wpmud .wphb-performance-report-item-additional-content h4,\n.wpmud .wphb-performance-report-item-additional-content h5 {\n color: #333333;\n font-size: 13px;\n text-transform: none;\n line-height: 23px;\n margin: 20px 0 20px;\n text-align: left;\n}\n\n/* Reporting */\n.wpmud .wrap-wphb-caching .list-results,\n.wpmud .wrap-wphb-performance .list-results {\n max-height: 200px;\n overflow-y: scroll;\n}\n\n.wpmud .wrap-wphb-performance .recipient {\n margin-bottom: 10px;\n padding: 5px 10px;\n}\n\n.wpmud .wrap-wphb-performance .recipient:hover {\n border-radius: 4px;\n background-color: #F8F8F8;\n}\n\n.wpmud .wrap-wphb-performance .recipient,\n.wpmud .wrap-wphb-performance .recipient .name,\n.wpmud .wrap-wphb-performance .add-recipient {\n display: flex;\n flex-flow: row nowrap;\n justify-content: space-between;\n align-items: center;\n align-content: center;\n}\n\n.wpmud .wrap-wphb-performance .recipient img {\n -webkit-border-radius: 50px;\n -moz-border-radius: 50px;\n border-radius: 50px;\n width: 30px;\n height: 30px;\n margin-right: 10px;\n display: inline-block;\n vertical-align: middle;\n}\n\n.wpmud .wrap-wphb-performance .recipient .name {\n color: #333333;\n font-weight: 500;\n}\n\n.wpmud .wrap-wphb-performance .recipient a > i {\n color: #888888;\n}\n\n.wpmud .wrap-wphb-performance .recipient:hover a > i {\n color: #333333;\n}\n\n.wpmud .wrap-wphb-performance .add-recipient {\n margin-top: 15px;\n}\n\n.wpmud .wrap-wphb-performance .add-recipient > * {\n margin-bottom: 0;\n border-radius: 0;\n border: 1px solid #E6E6E6;\n font-weight: normal;\n}\n\n.wpmud .wrap-wphb-performance .add-recipient .wdv-icon-plus {\n color: #FFFFFF;\n font-size: 20px;\n}\n\n.wpmud .wrap-wphb-performance .add-recipient > input::placeholder {\n color: #AAAAAA;\n font-weight: 400;\n}\n\n.wpmud .wrap-wphb-performance .add-recipient #wphb-first-name {\n border-radius: 4px 0 0 4px;\n border-right: 0;\n background-color: #F8F8F8;\n}\n\n.wpmud .wrap-wphb-performance .add-recipient #wphb-username-search {\n background-color: #F8F8F8;\n}\n\n.wpmud .wrap-wphb-performance .wphb-tag {\n -webkit-border-radius: 16px;\n -moz-border-radius: 16px;\n border-radius: 16px;\n font-size: 13px;\n padding: 4px 16px;\n color: #fff;\n text-transform: uppercase;\n}\n\n.wpmud .wrap-wphb-performance .wphb-tag.tag-generic {\n background: #E6E6E6;\n color: #333;\n}\n\n.wpmud .box-reporting-summary .wphb-block-entry-content,\n.wpmud .box-reporting-summary .content-box-two-cols-image-left .wphb-block-entry-content {\n margin-top: 0;\n}\n\n\n// WEBPACK FOOTER //\n// ./_src/admin/scss/_src/admin/scss/modules/_performance.scss","/* ****************************************************************************\n * MODULES: CACHING MODULES\n */\n.wpmud .wphb-caching-error {\n text-align: left;\n}\n\n.wpmud .wphb-caching-error a {\n text-decoration: underline;\n}\n\n.wpmud .wrap-wphb-caching .wphb-spinner {\n float: none;\n background-size: 15px 15px;\n}\n\n.wpmud .wphb-caching-cloudflare-box > p {\n margin: 0 0 20px 0;\n}\n\n.wpmud .box-caching-enable .buttons {\n margin-top: -20px;\n}\n\n.wpmud .caching-table {\n margin: 30px 0 0;\n}\n\n.wpmud .wphb-caching-summary-heading,\n.wpmud .box-gzip-summary .list-label {\n text-transform: none !important;\n color: #333333;\n font-size: 13px;\n}\n\n.wpmud #cloudflare-how-to-title,\n.wpmud #cloudflare-how-to {\n text-align: left;\n}\n\n.wpmud #cloudflare-how-to a {\n font-weight: 500;\n text-decoration: underline;\n color: inherit;\n}\n\n.wpmud #cloudflare-info {\n clear: both;\n}\n\n.wpmud #cloudflare-info.wphb-notice {\n margin-top: 30px;\n}\n\n.wpmud .cloudflare-submit {\n margin-bottom: 0;\n}\n\n.wpmud #cloudflare-zone .clear {\n padding: 0;\n}\n\n.wpmud #cloudflare-zone label {\n margin-bottom: 13px;\n}\n\n.wpmud #cloudflare-zone .cloudflare-submit {\n margin-top: 22px;\n}\n\n.wpmud #cloudflare-steps .wphb-notice-success {\n margin-top: 0;\n}\n\n.wpmud .cloudflare-clear-cache-tooltip[tooltip]:after {\n margin-left: -137px;\n}\n\n.wpmud .box-caching-summary .box-content > .box-content {\n background: no-repeat 30px 100%;\n}\n\n.wpmud .box-caching-summary .box-content > .box-content {\n background-image: url('../image/graphic-hb-cf-sell@2x.png');\n background-size: 107px 148px;\n}\n\n.wpmud .box-caching-summary .box-content > .box-content.no-background-image {\n background-image: none;\n}\n\n.wpmud .box-caching-settings .select-container.server-type {\n max-width: 240px;\n}\n\n.wpmud.wphb-notice {\n margin-top: 30px;\n}\n\n.wpmud .box-caching-settings .wphb-expiry-select-box label {\n margin-top: 0;\n}\n\n.wpmud .wphb-expiry-select-box .wphb-expiry-select {\n max-width: 240px;\n}\n\n@media screen and (max-width: 1200px) and (min-width: 783px) {\n .wpmud #cloudflare-how-to-title {\n float: none;\n display: block;\n text-align: center;\n margin-bottom: 0;\n }\n .wpmud .cloudflare-step p.cloudflare-submit {\n float: none;\n position: relative;\n }\n .wpmud .cloudflare-step p.cloudflare-submit .cloudflare-spinner {\n position: absolute;\n right: 0;\n top: 10px;\n }\n}\n\n.wpmud .wphb-server-instructions .wphb-notice,\n.wpmud .box-caching-summary .wphb-notice,\n.wpmud .box-gzip-summary .wphb-notice {\n margin-bottom: 30px !important;\n}\n\n.wpmud .wphb-caching-active.wphb-notice.wphb-notice-blue {\n margin-bottom: 0 !important;\n}\n\n.wpmud .wphb-caching-success.wphb-notice.wphb-notice-success {\n margin-top: 30px;\n}\n\n.wpmud .wphb-server-instructions .wphb-notice.wphb-notice-blue p {\n font-size: 13px;\n line-height: 22px;\n color: #333;\n}\n\n.wpmud .wphb-server-instructions .wphb-notice.wphb-notice-blue p:before {\n font-size: 16px;\n line-height: 16px;\n}\n\n.wpmud .wphb-expiry-changes.wphb-notice.wphb-notice-warning {\n margin-top: 30px;\n}\n\n.wpmud .wphb-expiry-changes.wphb-notice.wphb-notice-warning p {\n font-size: 13px;\n line-height: 22px;\n}\n\n.wpmud .wphb-expiry-changes.wphb-notice.wphb-notice-warning p:before {\n font-size: 16px;\n line-height: 16px;\n}\n\n.wpmud .wphb-cf-detected-notice.wphb-notice.wphb-notice-grey p {\n font-size: 13px;\n line-height: 22px;\n}\n\n.wpmud .wphb-cf-detected-notice.wphb-notice.wphb-notice-grey p:before {\n font-size: 16px;\n line-height: 16px;\n}\n\n.wpmud .wphb-expiry-changes .update-htaccess {\n margin-top: 10px;\n}\n\n.wpmud .button.notice-button {\n margin-top: 10px;\n}\n\n.wpmud .wphb-cloudflare.wphb-notice-warning p {\n color: #333;\n}\n\n/* Expiration table */\n.wpmud input[name='expiry-set-type'] {\n box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0);\n border: 1px solid #E6E6E6;\n background-color: #F8F8F8;\n}\n\n.wpmud input[name='expiry-set-type']:checked {\n border: 1px solid #17A8E3;\n background-color: #17A8E3;\n}\n\n.wpmud input[name='expiry-set-type']:checked + label {\n color: #333333;\n}\n\n.wpmud input[name='expiry-set-type']:checked:before {\n width: 8px;\n height: 8px;\n margin: 3px;\n background-color: #ffffff;\n}\n\n.wpmud input[name='expiry-set-type'] + label {\n display: inline-block;\n margin-top: 0;\n font-size: 15px;\n}\n\n.wpmud .wphb-border-frame .table-header .wphb-caching-summary-heading-type {\n flex-basis: 85px;\n}\n\n.wpmud .wphb-border-frame .table-row .wphb-gzip-summary-item-type,\n.wpmud .wphb-border-frame .table-row .wphb-caching-summary-item-type {\n flex-basis: 100px;\n}\n\n.wpmud .wphb-border-frame .table-row .wphb-caching-summary-item-expiry,\n.wpmud .wphb-border-frame .table-row .wphb-caching-summary-item-status {\n flex-basis: 80px;\n}\n\n.wpmud .wphb-border-frame .table-row .wphb-caching-summary-item-type {\n font-size: 13px;\n font-weight: 500;\n color: #333333;\n}\n\n.wpmud .box-caching-settings label,\n.wpmud .box-gzip-settings label {\n margin-top: 15px;\n margin-bottom: 5px;\n padding: 0;\n}\n\n.wpmud .box-caching-settings label,\n.wpmud .box-gzip-settings label,\n.wpmud .box-caching-settings .wphb-border-frame > label,\n.wpmud .box-gzip-settings .wphb-border-frame > label {\n color: #888888;\n font-size: 13px;\n font-weight: 500;\n line-height: 22px;\n}\n\n.wpmud .wphb-caching-cloudflare-settings .wphb-expiry-select {\n width: 85%;\n}\n\n.wrap-wphb-caching .cloudflare-step label:first-child {\n margin-top: 0;\n}\n\n/* Server select tabs (automatic/manual) */\n.wpmud .wrap-wphb-gzip .tabs,\n.wpmud .wrap-wphb-caching .tabs,\n.wpmud .wrap-wphb-gzip .tabs .tab label,\n.wpmud .wrap-wphb-caching .tabs .tab label,\n.wpmud .wrap-wphb-gzip .tabs .tab .content,\n.wpmud .wrap-wphb-caching .tabs .tab .content {\n border: 0;\n}\n\n.wpmud .wrap-wphb-gzip .tabs .tab .content,\n.wpmud .wrap-wphb-caching .tabs .tab .content {\n border-top: 2px solid #E6E6E6;\n top: 38px;\n}\n\n.wpmud .wrap-wphb-gzip .tabs .tab label,\n.wpmud .wrap-wphb-caching .tabs .tab label {\n font-size: 15px;\n text-transform: capitalize;\n color: #888888;\n padding: 0 10px;\n line-height: 1.5em;\n height: 40px;\n}\n\n.wpmud .wphb-server-instructions p,\n.wpmud .wphb-server-instructions .wphb-listing li {\n color: #888888;\n font-size: 13px;\n line-height: 22px;\n}\n\n.wpmud .wphb-server-instructions .wphb-listing li {\n margin-top: 0;\n}\n\n.wpmud .wphb-server-instructions .tabs {\n margin: 0;\n}\n\n.wpmud .wphb-server-instructions .tabs .tab .content {\n padding: 20px 0 0;\n}\n\n.wpmud .wphb-server-instructions .tabs .tab > .active {\n color: #333333;\n border-bottom: 2px solid #333333;\n z-index: 10;\n}\n\n/* Page caching */\n.wpmud .box-page-caching .box-footer {\n border-top: 1px solid #E6E6E6;\n padding: 50px 30px;\n}\n\n.wpmud .box-page-caching h4 {\n color: #666666;\n font-size: 15px;\n font-weight: 500;\n text-align: left;\n text-transform: none;\n}\n\n.wpmud .box-page-caching textarea {\n height: 180px;\n max-width: 490px;\n color: #333333;\n border: 1px solid #E6E6E6;\n border-radius: 4px;\n background-color: #F8F8F8;\n margin-top: 20px;\n}\n\n.wpmud .box-page-caching .col-two-third .with-bottom-border {\n margin-bottom: 30px;\n}\n\n/* Page caching: page types table */\n.wpmud .box-page-caching .wphb-dash-table .sub {\n width: 75px;\n}\n\n.wpmud .box-page-caching .wphb-dash-table .wphb-dash-table-row:first-child {\n border-top: 0;\n}\n\n.wpmud .box-page-caching .wphb-dash-table .wphb-dash-table-row:last-child {\n border-bottom: 0;\n}\n\n/* Gravatar caching */\n.wpmud .box-page-caching .wphb-notice,\n.wpmud .box-caching-gravatar .wphb-notice {\n margin-top: 20px;\n}\n\n.wpmud .box-page-caching .settings-form .button-ghost {\n margin: 10px 0;\n}\n\n\n// WEBPACK FOOTER //\n// ./_src/admin/scss/_src/admin/scss/modules/_caching.scss","/* ****************************************************************************\n * MODULES: GZIP COMPRESSION\n */\n\n.wpmud #wphb-code-snippet {\n margin-top: 20px;\n margin-bottom: 20px;\n}\n\n.wpmud .wphb-gzip-error {\n text-align: left;\n}\n\n.wpmud .wphb-gzip-error p:first-child {\n margin: 0 0 10px 0;\n}\n\n.wpmud .wphb-gzip-error a,\n.wpmud #configure-gzip-link {\n text-decoration: underline;\n}\n\n.wpmud .box-gzip-settings .inline-label {\n color: #888888 !important;\n font-size: 13px;\n font-weight: 500;\n padding-left: 0 !important;\n}\n\n.wpmud .box-gzip-settings .select-container {\n max-width: 240px;\n}\n\n.wpmud .box-gzip-settings .wphb-notice-blue {\n margin-top: 0;\n margin-bottom: 30px;\n padding: 15px 20px;\n}\n\n.wpmud .box-gzip-settings .wphb-notice-blue p {\n font-size: 13px;\n}\n\n.wpmud .box-gzip-settings .wphb-notice-blue p:before {\n font-size: 16px;\n}\n\n.wpmud .box-gzip-settings .wphb-notice.htaccess-warning {\n margin-top: 30px;\n margin-bottom: 0 !important;\n padding: 15px 20px;\n}\n\n.wpmud .box-gzip-settings .wphb-notice.htaccess-warning a {\n text-decoration: underline;\n}\n\n@media screen and (min-width: 960px) {\n .wpmud .wphb-border-frame.two-columns .table-header,\n .wpmud .wphb-border-frame.two-columns .table-row {\n justify-content: flex-start;\n }\n .wpmud .wphb-border-frame.two-columns .table-header > div:first-child,\n .wpmud .wphb-border-frame.two-columns .table-row > div:first-child {\n flex-basis: 50%;\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./_src/admin/scss/_src/admin/scss/modules/_gzip.scss","/* ****************************************************************************\n * MODULES: MINIFICATION\n */\n\n/* Checkbox groups */\n.wpmud .checkbox-group {\n border-radius: 41px;\n display: flex;\n justify-content: flex-end;\n height: 40px;\n}\n.wpmud .wphb-modal .checkbox-group {\n justify-content: flex-start;\n}\n\n/* We do not use display: none, because screen readers don't see the element */\n.wpmud .checkbox-group input[type=\"checkbox\"] {\n border: 0;\n clip: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n display: block;\n}\n\n.wpmud .checkbox-group input[type=\"checkbox\"] + label {\n background-color: #FAFAFA;\n border-radius: 4px;\n display: flex;\n padding: 0;\n align-items: center;\n justify-content: center;\n text-align: center;\n width: 107px;\n position: relative;\n transition-property: background, color;\n transition-duration: 0.3s;\n color: transparent !important;\n margin-bottom: 0;\n margin-left: 5px;\n}\n\n/* Overwrite for advanced view */\n.wpmud .wphb-minification-advanced-group input[type=\"checkbox\"] + label {\n width: 50px;\n}\n\n/* Modal window */\n.wpmud .wphb-modal .checkbox-group {\n width: 100%;\n height: 52px;\n}\n\n.wpmud .wphb-modal .checkbox-group input[type=\"checkbox\"] + label {\n padding: 10px 10px;\n width: 70px;\n height: 50px;\n}\n\n.wpmud .wphb-modal .wphb-progress-state {\n text-align: left;\n margin-top: 0;\n}\n\n/* Checkbox group */\n.wpmud .checkbox-group input[type=\"checkbox\"] + label.toggle-label-background, /* modal */\n.wpmud .checkbox-group input[type=\"checkbox\"]:checked + label {\n box-shadow: none;\n background-color: #EFFAFF;\n}\n\n.wpmud .checkbox-group input[type=\"checkbox\"] + label > span:not(.toggle),\n.wpmud .checkbox-group input[type=\"checkbox\"] + label > i {\n color: #888888;\n padding: 0;\n font-size: 12px;\n}\n\n.wpmud .checkbox-group > span {\n color: #AAAAAA;\n font-size: 12px;\n line-height: 40px;\n}\n\n.wpmud .checkbox-group input[type=\"checkbox\"] + label > [class^=\"hb-\"]:before {\n font-size: 14px;\n vertical-align: -2px;\n margin-right: 8px;\n}\n\n/* Overwrite for advanced view */\n.wpmud .wphb-minification-advanced-group input[type=\"checkbox\"] + label > [class^=\"hb-\"]:before,\n.wpmud .wphb-modal input[type=\"checkbox\"] + label > [class^=\"hb-\"]:before {\n margin-right: 0;\n}\n\n.wpmud .checkbox-group input[type=\"checkbox\"] + label.toggle-label-background > span:not(.toggle), /* modal */\n.wpmud .checkbox-group input[type=\"checkbox\"]:checked + label > span:not(.toggle),\n.wpmud .checkbox-group input[type=\"checkbox\"]:checked + label > i {\n color: #17A8E3;\n}\n\n.wpmud .checkbox-group input[type=\"checkbox\"]:disabled + label > span:not(.toggle),\n.wpmud .checkbox-group input[type=\"checkbox\"]:disabled + label > i {\n color: #DDD;\n}\n\n.wpmud .checkbox-group input[type=\"checkbox\"]:disabled + label {\n background-color: #FFF;\n}\n\n.wpmud .checkbox-group input[type=\"checkbox\"] + label > [tooltip] {\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n right: 0;\n z-index: 9;\n}\n\n.wpmud .checkbox-group label [class^=\"hb-\"] {\n display: block;\n padding: 10px 0 4px;\n\n}\n\n/* Notice in header to enable advanced mode */\n.wpmud .wrap-wphb-minification > .row > .wphb-notice {\n margin-bottom: 30px;\n}\n\n/* Minification meta box */\n.wpmud .wphb-minification-files {\n background-color: #F8F8F8;\n padding-bottom: 1px;\n}\n\n.wpmud .box-minification-enqueued-files .box-title .buttons > div {\n display: inline-block;\n vertical-align: top;\n}\n\n/* Switch type button */\n.wpmud .box-minification-enqueued-files .box-title .buttons {\n margin-right: 45px !important;\n}\n\n.wpmud .box-minification-enqueued-files .box-title .wphb-switch-button {\n border-left: 1px solid #E6E6E6;\n display: block;\n height: 60px;\n left: 100%;\n margin-left: -30px;\n position: relative;\n width: 60px;\n}\n\n.wpmud .box-minification-enqueued-files .box-title .wphb-switch-button > i {\n color: #AAAAAA;\n font-size: 20px;\n left: 50%;\n margin-left: -10px;\n margin-top: -10px;\n position: absolute;\n top: 50%;\n}\n\n.wpmud .box-minification-enqueued-files .box-title-advanced .wphb-switch-button > i {\n color: #17A8E3;\n}\n\n.wpmud .wphb-minification-files-header {\n background-color: #fff;\n border-bottom: 1px solid #E6E6E6;\n margin-bottom: 30px;\n padding: 30px;\n}\n\n.wpmud .wphb-border-row {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n flex-flow: row wrap;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n align-content: center;\n}\n\n.wpmud .wphb-minification-files-basic .wphb-border-row,\n.wpmud .wphb-minification-files-advanced .wphb-border-row,\n.wpmud .wphb-minification-files-advanced .wphb-minification-row-details {\n padding: 10px 30px;\n -webkit-box-pack: justify;\n -ms-flex-pack: justify;\n justify-content: space-between;\n}\n\n.wpmud .wphb-minification-files-advanced .wphb-minification-row-details {\n padding: 0;\n display: flex;\n align-content: center;\n align-items: center;\n}\n\n.wpmud .wphb-minification-files-basic .wphb-border-row {\n border-bottom: 1px solid #E6E6E6;\n}\n\n.wpmud .wphb-minification-files-advanced .wphb-border-row {\n padding: 10px 30px 10px 20px;\n min-height: 70px;\n background-color: #FFF;\n border-radius: 4px;\n box-shadow: 0 2px 7px 0 rgba(0, 0, 0, 0.05);\n margin-bottom: 10px;\n}\n\n.wpmud .wphb-minification-files-basic .wphb-border-row:last-child,\n.wpmud .wphb-minification-files-advanced .wphb-border-row:last-child {\n border-bottom: 0;\n}\n\n.wpmud .wphb-minification-files-table.wphb-minification-files-basic,\n.wpmud .wphb-minification-files-table.wphb-minification-files-advanced {\n background-color: #F8F8F8;\n margin: 0 30px 30px;\n}\n\n.wpmud .wphb-minification-files-table.wphb-minification-files-basic {\n background-color: #FFFFFF;\n border-radius: 4px;\n box-shadow: 0 2px 7px 0 rgba(0, 0, 0, 0.05);\n}\n\n.wpmud .wphb-minification-files > h3,\n.wpmud .wphb-minification-files-select h3 {\n font-size: 13px;\n font-weight: bold;\n line-height: 22px;\n color: #888888;\n text-align: left;\n text-transform: none;\n margin: 10px 30px;\n}\n\n/* Notices */\n.wpmud .wphb-minification-files .wphb-notice {\n margin: 0 30px 30px;\n width: auto;\n}\n\n.wpmud .wphb-minification-changed-notice a.wphb-notice-dismiss {\n opacity: 0.5;\n color: #333333;\n font-size: 12px;\n font-weight: bold;\n margin-left: 33px;\n text-transform: uppercase;\n}\n\n/* Styles, common for basic and advanced views */\n.wpmud .wphb-minification-file-info {\n float: left;\n line-height: 18px;\n overflow: hidden;\n position: relative;\n white-space: nowrap;\n width: 300px;\n}\n\n.wpmud .wphb-border-row:not(.disabled) .wphb-minification-file-info:after {\n background: -webkit-linear-gradient(left, rgba(255, 255, 255, 0) 0%, #fff 100%);\n background: -o-linear-gradient(left, rgba(255, 255, 255, 0) 0%, #fff 100%);\n background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, #fff 100%);\n content: '';\n height: 100%;\n pointer-events: none;\n position: absolute;\n right: 0;\n top: 0;\n width: 40px;\n}\n\n.wpmud .wphb-minification-file-info > * {\n color: #AAAAAA;\n font-size: 10px;\n font-weight: 500;\n line-height: 10px;\n}\n\n.wpmud .wphb-minification-file-info > span:first-child {\n color: #666666;\n display: block;\n font-size: 13px;\n line-height: 13px;\n}\n\n.wpmud .wphb-minification-file-info > a {\n max-width: 400px;\n overflow: hidden;\n}\n\n.wpmud .wphb-minification-file-info > .original-size.crossed-out {\n text-decoration: line-through;\n}\n\n.wpmud .wphb-minification-file-info > .dev-icon-caret_down,\n.wpmud .wphb-minification-file-info > .compressed-size {\n color: #1ABC9C;\n}\n\n.wpmud .wphb-minification-file-info > .dev-icon-caret_down {\n font-size: 12px;\n letter-spacing: -3px;\n margin-left: -3px;\n position: relative;\n top: 2px;\n}\n\n/* Advanced minification section */\n.wpmud .wphb-minification-filter-buttons {\n padding: 0 30px 20px;\n}\n\n.wpmud .wphb-minification-files-select {\n display: flex;\n align-items: center;\n align-content: center;\n margin: 0 50px;\n}\n\n.wpmud .wphb-minification-files-select h3 {\n margin: 5px 5px 7px;\n}\n\n.wpmud .wphb-minification-bulk-file-selector {\n float: left;\n}\n\n.wpmud .wphb-minification-file-select {\n float: left;\n line-height: 30px;\n margin-right: 10px;\n}\n\n.wpmud .wphb-minification-exclude {\n margin-left: 30px;\n}\n\n/* Filter */\n.wpmud .wphb-minification-filter {\n background-color: #FFFFFF;\n padding: 0 30px;\n}\n\n.wpmud .wphb-minification-filter > div {\n height: 78px;\n display: flex;\n align-items: center;\n align-content: center;\n}\n\n/* Overwrite for wpmudev styles */\n.wpmud .wphb-minification-filter > div > input {\n margin: 0 10px !important;\n width: 40% !important;\n background-color: #F8F8F8 !important;\n}\n\n.wpmud .wphb-minification-filter > div .wphb-block-title {\n color: #333333;\n font: 500 13px/30px 'Roboto', sans-serif;\n text-transform: none;\n margin-right: 21px;\n}\n\n.wpmud .wphb-minification-filter .select-list-container {\n min-width: 240px !important;\n}\n\n/* Disabled/hidden row start */\n.wpmud .wphb-border-row.out-of-filter,\n.wpmud .wphb-border-row.disabled .checkbox-group {\n display: none;\n}\n\n.wpmud .box-content.disabled,\n.wpmud .wphb-border-row.disabled {\n background-color: #F2F2F2;\n}\n\n.wpmud .wphb-minification-files-advanced .wphb-border-row.disabled {\n box-shadow: none;\n}\n\n.wpmud .wphb-border-row.disabled .wphb-filename-extension-other,\n.wpmud .wphb-border-row.disabled .wphb-filename-extension-css,\n.wpmud .wphb-border-row.disabled .wphb-filename-extension-javascript,\n.wpmud .wphb-border-row.disabled .wphb-filename-extension-js {\n opacity: 0.4;\n}\n\n.wpmud .wphb-border-row.disabled .wphb-minification-file-info > span {\n color: #AAA;\n}\n\n/* Disabled row end */\n\n/* Settings */\n.wpmud .wrap-wphb-minification .settings-form {\n margin: 0;\n}\n\n/* Overwrite upsell message */\n.wpmud .wrap-wphb-minification .content-box-two-cols-image-left .wphb-block-entry-content {\n margin-top: 0;\n}\n\n/* Minification switch mode notice */\n.wpmud .wphb-advanced-minification-modal .box {\n width: 400px !important;\n margin-left: -200px !important;\n padding: 30px !important;\n}\n\n.wpmud .wphb-advanced-minification-modal .title {\n display: none;\n}\n\n.wpmud .wphb-advanced-minification-modal h1 {\n color: #333333;\n font-size: 22px;\n font-weight: bold;\n line-height: 30px;\n text-transform: none;\n}\n\n.wpmud .wphb-advanced-minification-modal p {\n color: #666;\n font-size: 13px;\n line-height: 22px;\n text-align: center;\n}\n\n// Responsive\n@include bp(desktop-large) {\n .wpmud .wphb-minification-files-advanced .wphb-minification-file-info {\n width: 235px;\n }\n}\n\n@include bp(desktop) {\n .wpmud .box-minification-enqueued-files .box-title .buttons {\n float: left;\n margin-right: -5px !important;\n }\n\n .wpmud .wphb-minification-files-advanced .wphb-minification-file-info {\n width: 130px;\n }\n\n .wpmud .wphb-minification-files-advanced .wphb-minification-exclude {\n margin-left: 15px;\n }\n\n .wpmud .box-minification-enqueued-files .box-footer .button {\n margin-top: 15px;\n }\n}\n\n@include bp(desktop-small) {\n .wpmud .box-minification-enqueued-files .box-title .buttons {\n float: right;\n margin-right: 45px !important;\n }\n}\n\n@include bp(tablet) {\n .wpmud .wphb-minification-files-advanced .fileinfo-group:after {\n font-family: dashicons;\n content: \"\\F347\";\n position: absolute;\n left: 100%;\n margin-left: -70px;\n margin-top: 5px;\n }\n\n .wpmud .wphb-minification-files-advanced .fileinfo-group.opened:after {\n content: \"\\f343\";\n }\n\n .wpmud .wphb-minification-files-advanced .fileinfo-group {\n padding: 10px 0;\n overflow: hidden;\n }\n\n .wpmud .wphb-minification-files-advanced .wphb-minification-file-info {\n width: 55%;\n min-width: 200px;\n }\n\n .wpmud .wphb-minification-files-advanced .wphb-minification-file-info > a {\n max-width: 200px;\n }\n\n .wpmud .wphb-minification-files-advanced .wphb-minification-row-details {\n display: none;\n margin: 10px 0;\n border-top: 1px solid #E6E6E6;\n padding-top: 15px !important;\n width: 100%;\n z-index: 100;\n }\n\n .wpmud .wphb-minification-files-advanced .wphb-minification-advanced-group {\n float: left;\n }\n\n .wpmud .wphb-minification-files-advanced .wphb-minification-exclude {\n float: right;\n margin-top: 7px;\n }\n}\n\n@include bp(phone-large) {\n .wpmud .box-minification-enqueued-files .box-title h3,\n .wpmud .box-minification-enqueued-files .box-title .buttons {\n float: none !important;\n }\n\n .wpmud .box-minification-enqueued-files .box-title .wphb-switch-button {\n height: 96px;\n margin-left: -60px;\n position: absolute;\n top: 0;\n }\n\n .wpmud .wphb-minification-file-info {\n width: 185px;\n }\n\n .wpmud .box-minification-enqueued-files .box-footer .status-text {\n display: block;\n max-width: 100%;\n text-align: left;\n padding-left: 0;\n }\n}\n\n@include bp(phone) {\n .wpmud .wphb-minification-files-table.wphb-minification-files-basic,\n .wpmud .wphb-minification-files-table.wphb-minification-files-advanced {\n margin: 0 10px 30px;\n }\n\n .wpmud .wphb-minification-files-header {\n padding: 15px 30px;\n }\n\n .wpmud .box-minification-enqueued-files .buttons .button {\n padding: 7px !important;\n }\n\n .wpmud .wphb-minification-filter-buttons {\n padding: 0 20px 20px;\n }\n\n .wpmud .wphb-minification-files-select {\n margin: 0 20px;\n }\n\n .wpmud .wphb-minification-files > h3 {\n margin: 10px;\n }\n\n .wpmud .wphb-minification-files-basic .wphb-border-row,\n .wpmud .wphb-minification-files-advanced .wphb-border-row {\n padding: 10px;\n }\n\n .wpmud .wphb-minification-file-info {\n width: 155px;\n }\n\n .wpmud .wphb-minification-files-advanced .wphb-minification-file-info {\n min-width: 170px;\n }\n\n .wpmud .wphb-border-row .fileinfo-group {\n margin-top: 5px;\n margin-bottom: -5px;\n }\n\n .wpmud .checkbox-group > span {\n line-height: 20px;\n text-align: right;\n }\n\n .wpmud .checkbox-group input[type=\"checkbox\"] + label {\n width: 60px;\n }\n\n .wpmud .checkbox-group input[type=\"checkbox\"] + label > [class^=\"hb-\"]:before {\n margin-right: 0;\n }\n\n .wpmud .checkbox-group input[type=\"checkbox\"] + label > span[class^=hb] > span {\n display: none;\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./_src/admin/scss/_src/admin/scss/modules/_minification.scss","/* ****************************************************************************\n * MODULES: UPTIME\n */\n\n.wpmud .wphb-block-uptime-status .wphb-uptime-icon {\n max-height: 110px;\n}\n\n.wpmud .wphb-block-content-uptime-data-range {\n padding-top: 9px;\n padding-bottom: 9px;\n}\n\n.wpmud .uptime-chart svg g g rect {\n fill: #E6E6E6;\n stroke: transparent;\n stroke-width: 0;\n}\n\n.wpmud .uptime-chart svg g g text {\n fill: #fff;\n font-family: 'Roboto', Arial, sans-serif;\n font-size: 13px;\n font-weight: 400;\n}\n\n.wpmud .uptime-chart svg g g text:last-of-type {\n fill: #AAAAAA;\n font-weight: 500;\n}\n\n.wpmud .wrap-wphb-uptime .wphb-pills.red,\n.wpmud .wrap-wphb-uptime .wphb-pills.green {\n height: 40px;\n line-height: 40px;\n width: 200px;\n border-radius: 5px;\n}\n\n.wpmud .wphb-block-uptime-downtime .dev-list {\n margin-top: 30px;\n}\n\n.wrap-wphb-uptime .wphb-block-entry .wphb-block-content-center,\n.wrap-wphb-caching .wphb-block-entry .wphb-block-content-center {\n max-width: 600px;\n margin: 0 auto;\n}\n\n\n// WEBPACK FOOTER //\n// ./_src/admin/scss/_src/admin/scss/modules/_uptime.scss","// Common\n@import \"common/_variables\";\n@import \"common/_functions\";\n@import \"common/_mixins\";\n@import \"common/_classes\";\n@import \"common/_overwrites\";\n@import \"common/_typography\";\n@import \"common/_buttons\";\n@import \"common/_layout\";\n@import \"common/_modals\";\n// Modules\n@import \"modules/_dashboard\";\n@import \"modules/_performance\";\n@import \"modules/_caching\";\n@import \"modules/_gzip\";\n@import \"modules/_minification\";\n@import \"modules/_uptime\";\n\n/**\n *\n * -----------------------------------------------------------------------------\n *\n * 1. Extend/Override WPMU DEV Dashboard Styles\n * 2. Common/General Styles\n * 3. Components/Modules\n * 10: Responsive/MQ\n *\n * -----------------------------------------------------------------------------\n */\n\n/* ****************************************************************************\n * 1. EXTEND/OVERRIDE WPMUDEV DASHBOARD/WP STYLES\n */\n.wpmud .wrap-wp-hummingbird .mline {\n margin-bottom: 30px;\n}\n\n.wpmud .select-list-container .list-value {\n font-weight: 500 !important;\n}\n\n#wpbody-content {\n padding-bottom: 25px;\n}\n\n.wpmud .with-bottom-border {\n border-bottom: 1px solid #E6E6E6;\n padding-bottom: 30px;\n}\n\n.wpmud #header {\n position: relative;\n margin-bottom: 0;\n}\n\n.wpmud .dev-overlay .title .title-action {\n font-family: 'Roboto', sans-serif;\n margin-top: 5px;\n vertical-align: middle;\n color: #888888;\n font-size: 13px;\n line-height: 30px;\n margin-right: -20px;\n}\n\n.wpmud #header .actions.status {\n left: 200px;\n margin-top: 1px;\n}\n\n.wpmud .wrap-wphb-uptime > #header .actions.status {\n left: 120px;\n margin-top: 1px !important;\n}\n\n.wpmud #header .actions.status [tooltip]:after {\n margin-left: 27px;\n bottom: -60%;\n}\n\n.wpmud #header .actions.status [tooltip]:before {\n bottom: 25%;\n left: 100%;\n border-right-color: #0B2F3F;\n border-top: 5px solid transparent;\n}\n\n.wpmud #header .actions {\n position: absolute;\n display: flex;\n align-items: center;\n top: 5px;\n right: 0;\n}\n\n.wpmud #header .actions > * {\n display: inline-block;\n margin-left: 10px;\n}\n\n.wpmud #header .actions.label-and-button > *:first-child {\n margin-left: 0;\n}\n\n.wpmud #header .actions.label-and-button .actions-label {\n color: #888888;\n font-size: 13px;\n line-height: 18px;\n margin: 0;\n text-align: right;\n}\n\n.wpmud #header .actions .header-label {\n font-size: 12px;\n color: #AAAAAA;\n}\n\n.wpmud #header ~ .sub-header {\n margin-top: -15px;\n margin-bottom: 30px;\n}\n\n.wpmud .select-list-container {\n min-width: 100px;\n}\n\n.wpmud .select-list-container .list-value {\n color: #333333;\n font-weight: 400;\n padding: 6px 8px 6px 15px;\n}\n\n.wpmud .list-table > tbody > tr:last-child > td {\n border-bottom: 1px solid #eee;\n}\n\n.wpmud .list-table > thead > tr > th {\n text-transform: none;\n font-size: 13px;\n font-weight: bold;\n}\n\n.wpmud .wphb-border-frame .table-header,\n.wpmud .wphb-border-frame .table-row {\n display: flex;\n justify-content: space-between;\n padding: 15px 80px 15px 30px;\n}\n\n.wpmud .wphb-border-frame .table-header {\n color: #333333;\n font-size: 13px;\n font-weight: bold;\n border-bottom: 1px solid #E6E6E6;\n}\n\n.wpmud .wphb-border-frame .table-row {\n border-bottom: 1px solid #E6E6E6;\n}\n\n.wpmud .wphb-border-frame .table-row:last-child {\n border-bottom: 0;\n}\n\n.wpmud .wphb-border-frame .list-table > thead > tr > th {\n color: #333333;\n font-size: 13px;\n padding: 8px 0;\n}\n\n.wpmud .wphb-border-frame .list-table > thead > tr > th:first-child {\n padding: 27px 30px;\n}\n\n.wpmud .wphb-border-frame .list-table > tbody > tr > td:first-child {\n padding-left: 30px;\n}\n\n.wpmud .list-table > tbody > tr > td {\n padding: 12px 10px;\n}\n\n.wpmud .list-table .radio-group.with-icon {\n display: inline-table;\n}\n\n.wpmud .list-table .radio-group.with-icon .dev-icon {\n vertical-align: middle;\n}\n\n.wpmud .dev-list {\n margin: -30px 0 20px;\n}\n\n.wpmud .dev-list .content {\n padding: 30px 0;\n border-bottom: 1px solid #EEEEEE;\n}\n\n.wpmud .dev-list > li.list-header {\n text-transform: none;\n color: #333333;\n font-size: 13px;\n}\n\n.wpmud .dev-list .list-header .list-label {\n font-weight: bold;\n}\n\n.wpmud .dev-list > li .list-label {\n font-size: 13px;\n font-weight: 500;\n line-height: 21px;\n padding: 15px 10px 15px 0\n}\n\n.wpmud .dev-list > li .list-data {\n border-bottom: 1px solid #EEE;\n cursor: default;\n display: table-cell;\n padding: 10px;\n vertical-align: middle;\n}\n\n.wpmud .dev-list > li:last-child .list-label,\n.wpmud .dev-list > li:last-child .list-detail {\n border-bottom: 1px solid #eee;\n}\n\n.wpmud .box-dashboard-welcome .dev-list > li:last-child .list-label,\n.wpmud .box-dashboard-welcome .dev-list > li:last-child .list-detail,\n.wpmud .box-performance-welcome .dev-list > li:last-child .list-label,\n.wpmud .box-performance-welcome .dev-list > li:last-child .list-detail,\n.wpmud .box-minification-summary-meta-box .dev-list > li:last-child .list-label,\n.wpmud .box-minification-summary-meta-box .dev-list > li:last-child .list-detail,\n.wpmud .box-uptime-summary .dev-list > li:last-child .list-label,\n.wpmud .box-uptime-summary .dev-list > li:last-child .list-detail {\n border-bottom: 1px solid transparent;\n}\n\n.wpmud .dev-list > li:last-child .list-data {\n border-bottom: 1px solid transparent;\n}\n\n.wpmud .dev-list > li .list-detail .wphb-dash-numbers {\n font-family: 'Roboto Condensed', sans-serif;\n font-size: 18px;\n color: #666666;\n line-height: 30px;\n text-align: right;\n font-weight: 400;\n /*text-transform: uppercase;*/\n}\n\n.wpmud .dev-list-stats-border > li:first-child .list-label,\n.wpmud .dev-list-stats-border > li:first-child .list-data,\n.wpmud .dev-list-stats-border > li:first-child .list-detail {\n border-top: 1px solid #eee;\n}\n\n.wpmud .dev-list-stats-border > li:last-child .list-label,\n.wpmud .dev-list-stats-border > li:last-child .list-data,\n.wpmud .dev-list-stats-border > li:last-child .list-detail {\n border-bottom-color: #eee;\n}\n\n.wpmud .dev-list-stats > li .list-label-stats,\n.wpmud .dev-list-stats > li .list-detail-stats-heading {\n color: #333;\n font: 500 13px/30px 'Roboto', Arial, sans-serif;\n}\n\n.wpmud .dev-list-stats > li .list-detail-stats-heading {\n font-weight: 400;\n font-size: 18px;\n color: #666;\n}\n\n.wpmud .dev-list-stats > li .list-detail-stats-heading-extra-info {\n color: #BABABA;\n display: block;\n font: 500 12px/16px 'Roboto', Arial, sans-serif;\n margin-top: 5px;\n}\n\n.wpmud .dev-list-stats.standalone {\n margin: 0;\n}\n\n.wpmud .dev-list-stats.small > li .list-label-stats,\n.wpmud .dev-list-stats.small > li .list-detail-stats-heading {\n line-height: 26px;\n}\n\n.wpmud .dev-list-stats > li .list-detail-stats-heading.small {\n font-size: 26px;\n}\n\n.wpmud .dev-list-stats .wphb-pills-group {\n font-size: 0;\n line-height: 1em;\n}\n\n.wpmud .dev-list-stats > li .list-label-stats-date {\n margin-right: 30px;\n}\n\n.wpmud .list-label-link {\n color: #19B4CF;\n}\n\n.wpmud input[type=\"checkbox\"] {\n border-radius: 4px;\n border: 1px solid #E6E6E6;\n background-color: #F8F8F8;\n}\n\n.wpmud [tooltip]:after {\n font: 500 12px/18px 'Roboto';\n padding: 8px 12px;\n background: #333333;\n min-width: 50px;\n max-width: 250px;\n transition: all 0.2s ease;\n text-transform: none;\n}\n\n.wpmud .tooltip-box {\n overflow: hidden;\n}\n\n.wpmud .tooltip-box:hover {\n overflow: visible;\n}\n\n.wpmud .radio-group input[type=\"radio\"] + label > [tooltip] {\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n right: 0;\n z-index: 9;\n}\n\n.wpmud .wphb-dashboard-caching-cloudflare-box p {\n margin-top: 30px;\n margin-bottom: 20px;\n}\n\n.wpmud #wphb-box-dashboard-cloudflare .cloudflare-step form label {\n text-align: left;\n font-weight: 400;\n padding-left: 0;\n padding-right: 0;\n}\n\n.wpmud .cloudflare-step {\n margin-top: 30px;\n}\n\n.wpmud .cloudflare-step form label input {\n margin-top: 5px;\n background-color: #F8F8F8;\n}\n\n.wpmud .cloudflare-step form label input::-webkit-input-placeholder {\n color: #AAAAAA;\n}\n\n.wpmud .cloudflare-step form label input::-moz-placeholder {\n color: #AAAAAA;\n}\n\n/* Firefox 19+ */\n.wpmud .cloudflare-step form label input:-moz-placeholder {\n color: #AAAAAA;\n}\n\n/* Firefox 18- */\n.wpmud .cloudflare-step form label input:-ms-input-placeholder {\n color: #AAAAAA;\n}\n\n.wpmud .cloudflare-step > p:first-child {\n text-align: left;\n}\n\n.wpmud .cloudflare-spinner {\n display: inline-block;\n float: right;\n}\n\n.wpmud .cloudflare-step p.cloudflare-submit,\n.wpmud #cloudflare-how-to-title {\n position: relative;\n margin-top: 11px;\n}\n\n.wpmud .cloudflare-step p.cloudflare-submit input[type=\"submit\"] {\n display: inline-block;\n margin-top: 0;\n}\n\n.wpmud #cloudflare-how-to {\n clear: both;\n margin-left: 0;\n margin-bottom: 0;\n list-style-position: inside;\n}\n\n.wpmud .cloudflare-step > p {\n margin-bottom: 30px;\n}\n\n.wpmud .cloudflare-step p.cloudflare-submit {\n float: right;\n}\n\n.wpmud .cloudflare-step hr {\n margin-top: 20px;\n margin-bottom: 20px;\n}\n\n.wpmud .cloudflare-step p.cloudflare-clear-cache-text {\n text-align: left;\n}\n\n.wpmud #cloudflare-how-to-title {\n float: left;\n line-height: 15px;\n padding-top: 7px;\n font-size: 13px;\n}\n\n.wpmud .cloudflare-step .cloudflare-data {\n text-align: left;\n margin-top: 30px;\n margin-bottom: 0;\n}\n\n.wpmud .cloudflare-data > span {\n display: inline-block;\n margin-right: 20px;\n}\n\n/* Button Labels */\n.wpmud .wphb-button-label {\n border: 1px solid transparent;\n border-radius: 15px;\n color: #fff;\n font: 500 12px/26px 'Roboto';\n display: inline-block;\n height: 26px;\n margin: 0;\n padding: 0 12px;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n white-space: nowrap;\n}\n\n.wpmud .wphb-button-label-red {\n background: #fd6e70;\n}\n\n.wpmud .wphb-button-label-yellow {\n background: #FFD000;\n color: #333333;\n}\n\n.wpmud .wphb-button-label-green {\n background: #1ABC9C;\n}\n\n.wpmud .wphb-button-label-light {\n color: #333333;\n background-color: #F2F2F2;\n}\n\n/* Labels */\n.wpmud .wrap-wp-hummingbird .wphb-label {\n color: #fff;\n display: block;\n font: 500 15px/20px 'Roboto';\n text-shadow: none;\n white-space: nowrap;\n}\n\n.wpmud .wrap-wp-hummingbird .wphb-label-notice {\n background: #14485F;\n border-radius: 3px;\n padding: 5px 10px;\n}\n\n.wpmud .wrap-wp-hummingbird .wphb-label-notice-warning {\n background: #FECF2F;\n color: #4E4B10;\n}\n\n.wpmud .wrap-wp-hummingbird .wphb-label-notice-inline {\n display: inline-block;\n font-size: 13px;\n color: #888888;\n}\n\n.wpmud .wrap-wp-hummingbird .wphb-label-disabled {\n background: #F2F2F2;\n border-radius: 20px;\n color: #C0C0C0;\n display: inline-block;\n font: 500 12px/20px 'Roboto', Arial, sans-serif;\n min-width: 120px;\n padding: 5px;\n text-align: center;\n text-transform: uppercase;\n}\n\n/* ****************************************************************************\n * 2. COMMON/GENERAL STYLES\n */\n.wpmud .footer-love {\n text-align: center;\n margin-top: 50px;\n color: #C0C0C0;\n font-size: 13px;\n}\n\n.wpmud .footer-love > .dashicons-heart {\n font-size: 14px;\n line-height: 22px;\n}\n\n/* Tables */\n.wpmud .wphb-table-wrapper.complex {\n min-height: .01%;\n overflow-x: auto;\n border-bottom: 1px solid #eee;\n}\n\n.wpmud .wphb-table {\n font-weight: 400;\n max-width: 100%;\n width: 100%;\n color: #333333;\n}\n\n.wpmud .wphb-border-frame {\n border: 1px solid #E6E6E6;\n border-radius: 5px;\n margin: 10px 0 0 !important;\n}\n\n.wpmud .list-table.wphb-table tr:hover .wphb-table-td-has-tooltip {\n z-index: 3;\n}\n\n.box-dashboard-welcome .box-content,\n.box-performance-welcome .box-content,\n.box-minification-summary-meta-box .box-content,\n.box-uptime-summary .box-content {\n padding: 30px 30px 10px !important;\n}\n\n.box-dashboard-welcome .wphb-block-entry,\n.box-performance-welcome .wphb-block-entry,\n.box-minification-summary-meta-box .wphb-block-entry,\n.box-uptime-summary .wphb-block-entry {\n width: 100%;\n min-height: 172px;\n}\n\n/* Images */\n.wpmud section[class^=\"box-dashboard-\"] .box-title:before {\n font-family: 'hummingbird', sans-serif;\n color: #333333;\n float: left;\n font-size: 20px;\n margin: 18px 10px 18px 0;\n}\n\n.wpmud section[class^=\"box-dashboard-performance\"] .box-title:before {\n content: '\\e90c';\n}\n\n.wpmud section[class^=\"box-dashboard-minification\"] .box-title:before {\n content: '\\e90b';\n}\n\n.wpmud section[class^=\"box-dashboard-browser\"] .box-title:before {\n content: '\\e905';\n}\n\n.wpmud section[class^=\"box-dashboard-gzip\"] .box-title:before {\n content: '\\e907';\n}\n\n.wpmud section[class^=\"box-dashboard-uptime\"] .box-title:before {\n content: '\\e900';\n}\n\n.wpmud section[class^=\"box-dashboard-smush\"] .box-title:before {\n content: '\\e90f';\n}\n\n.wpmud section[class^=\"box-dashboard-cloudflare\"] .box-title:before {\n content: '\\e906';\n}\n\n.wpmud section[class^=\"box-dashboard-reports\"] .box-title:before {\n content: '\\e90d';\n}\n\n.wpmud section[class^=\"box-dashboard-caching-gravatar\"] .box-title:before {\n content: '\\e913';\n}\n\n.wpmud section[class^=\"box-dashboard-caching-page\"] .box-title:before {\n content: '\\e914';\n}\n\n.wpmud .wphb-image,\n.wpmud .wphb-image-icon-content {\n display: block;\n height: auto;\n max-width: 100%;\n}\n\n.wpmud .wphb-image-center,\n.wpmud .wphb-image-icon-content-center {\n margin-right: auto;\n margin-left: auto;\n}\n\n.wpmud .wphb-image-icon-content-top {\n margin-bottom: 30px;\n}\n\n/* Lists */\n.wpmud .wphb-listing {\n margin: 0;\n}\n\n.wpmud .wphb-listing li {\n font-family: 'Roboto', Arial, sans-serif;\n font-size: 15px;\n font-weight: 400;\n line-height: 21px;\n margin-top: 10px;\n margin-bottom: 0;\n}\n\n.wpmud .wphb-listing li:first-child {\n margin-top: 0;\n}\n\n.wpmud .wphb-listing.bold li {\n font-weight: 500;\n}\n\n.wpmud .wphb-listing-ordered {\n padding-left: 20px;\n}\n\n.wpmud .wphb-listing li strong {\n font-weight: 500;\n}\n\n.wpmud .wphb-listing li:before {\n color: #17A8E3;\n top: 0;\n}\n\n.wpmud .wphb-listing li p {\n font-size: 13px;\n line-height: 22px;\n margin-top: 5px;\n}\n\n/* Forms */\n.wpmud .wphb-select-group {\n clear: both;\n}\n\n.wpmud .wphb-select-group:after {\n content: '';\n display: table;\n clear: both;\n}\n\n.wpmud .wphb-select-group > label,\n.wpmud .wphb-select-group > div {\n float: left;\n display: block;\n}\n\n.wpmud .wphb-select-group > label {\n line-height: 43px;\n margin-right: 10px;\n}\n\n.wpmud .select-container {\n overflow: hidden;\n}\n\n.wpmud .select-container.active {\n overflow: visible;\n}\n\n.wpmud .wphb-select-group .spinner {\n margin: 11px;\n}\n\n/* Notices */\n.wpmud .wrap-wp-hummingbird .notice {\n margin: 15px 0 0;\n}\n\n.wpmud .wrap-wp-hummingbird > .wphb-notice:not(.notice) {\n width: 600px;\n box-shadow: 0 5px 25px 0 rgba(0, 0, 0, 0.15);\n border-radius: 0 0 5px 5px;\n padding: 10px 30px;\n position: absolute !important;\n z-index: 100;\n left: 50%;\n margin-left: -300px;\n top: 0;\n}\n\n.wpmud .wphb-notice:not(.notice) {\n /*background: #fff;*/\n border-radius: 5px;\n color: #333;\n font-family: 'Roboto', Arial, sans-serif;\n font-size: 15px;\n font-weight: 400;\n line-height: 18px;\n padding: 15px 30px;\n position: relative;\n width: 100%;\n}\n\n.wpmud .wphb-notice.notice p {\n font-size: 14px;\n line-height: 1.5;\n margin: 10px 0;\n}\n\n.wpmud .wphb-notice p,\n.wpmud .wphb-notice p a {\n color: #333333;\n font-weight: 400;\n}\n\n.wpmud .wphb-notice:not(.notice) p,\n.wpmud .wphb-notice:not(.notice) span,\n.wpmud .wphb-notice ul,\n.wpmud .wphb-notice strong {\n margin: 0 0 10px -30px;\n padding: 0 0 0 30px;\n}\n\n.wpmud .wphb-notice:not(.notice) p:last-of-type {\n margin: 0;\n}\n\n.wpmud .wphb-notice p a {\n font-weight: 500;\n}\n\n.wpmud .wphb-notice p a:hover {\n color: #333;\n}\n\n.wpmud .wphb-notice .wphb-icon,\n.wpmud .wphb-notice .wphb-icon .wdv-icon {\n font-size: 22px;\n height: 22px;\n line-height: 22px;\n width: 22px;\n}\n\n.wpmud .wphb-notice.can-close .close {\n cursor: pointer;\n color: #333333;\n font-size: 12px;\n font-weight: bold;\n line-height: 36px;\n margin-left: 0;\n opacity: 0.5;\n text-transform: uppercase;\n}\n\n.wpmud .wphb-block-entry-third span.status-ok:before,\n.wpmud span.dash-cloudflare-connected-status:before,\n.wpmud .wphb-notice-error.can-close p:before,\n.wpmud .wphb-notice-success.can-close p:before,\n.wpmud .wphb-notice-success p:first-child:before,\n.wpmud .wphb-notice-error p:first-child:before,\n.wpmud .wphb-notice-warning p:first-child:before,\n.wpmud .wphb-notice-grey p:before,\n.wpmud .wphb-notice-grey-info p:before,\n.wpmud .wphb-notice-blue p:first-child:before,\n.wpmud .wphb-notice-blue-info p:first-child:before {\n font-family: 'hummingbird', sans-serif;\n font-size: 20px;\n vertical-align: middle;\n line-height: 20px;\n top: -2px;\n position: relative;\n margin-left: -30px;\n margin-right: 10px;\n}\n\n.wpmud span.dash-cloudflare-connected-status:before {\n color: #17A8E3;\n content: '\\e903';\n font-size: 16px;\n margin-right: 8px;\n}\n\n.wpmud .wphb-notice-success {\n background-color: #D1F1EA;\n}\n\n.wpmud .wphb-notice-error {\n background-color: #FFE5E9;\n}\n\n.wpmud .wphb-notice-warning {\n background-color: #FFF5D5;\n color: #333333;\n}\n\n.wpmud .wphb-notice-blue,\n.wpmud .wphb-notice-blue-info {\n background-color: #E1F6FF;\n margin-top: 30px;\n}\n\n.wpmud .wphb-notice-grey,\n.wpmud .wphb-notice-grey-info {\n background-color: #F2F2F2;\n margin-top: 10px;\n}\n\n.wpmud .cloudflare-step .wphb-notice-blue {\n margin-top: 0;\n}\n\n.wpmud .wphb-block-entry-third span.status-ok:before,\n.wpmud .wphb-notice-success p:before {\n content: '\\e903';\n color: #1ABC9C;\n}\n\n.wpmud .wphb-block-entry-third span.status-ok:before {\n margin-right: 0;\n line-height: 20px;\n}\n\n.wpmud .wphb-notice-error p:before {\n content: '\\e904';\n color: #FF7F83;\n}\n\n.wpmud .wphb-notice-warning p:before {\n content: '\\e902';\n color: #FECF2F;\n font-size: 18px;\n line-height: 18px;\n}\n\n.wpmud .wphb-notice-blue p:before {\n content: '\\e903';\n color: #17A8E3;\n}\n\n.wpmud .wphb-notice-blue-info p:before {\n content: '\\e902';\n color: #17A8E3;\n}\n\n.wpmud .wphb-notice-grey p:before,\n.wpmud .wphb-notice-grey-info p:before {\n content: '\\e902';\n color: #888888;\n}\n\n.wpmud .dev-overlay .wphb-notice-warning p {\n font-size: 14px;\n line-height: 22px;\n}\n\n.wpmud .wphb-notice-warning p,\n.wpmud .wphb-notice-warning p a {\n color: #333333;\n}\n\n.wpmud .wphb-heading-status-green {\n color: #1ABC9C;\n}\n\n.wpmud .wphb-heading-status {\n font-family: 'Roboto Condensed', 'Roboto', sans-serif;\n font-size: 30px;\n margin-top: 0;\n}\n\n/* Toggles */\n.wpmud .toggle .toggle-label {\n text-align: left;\n}\n\n.wpmud .toggle .toggle-cross {\n color: rgba(221, 221, 221, 1);\n}\n\n.wpmud .toggle-group {\n display: inline-block;\n}\n\n.wpmud .toggle .toggle-checkbox:checked:disabled + .toggle-label {\n background: transparent;\n}\n\n.wpmud .toggle .toggle-checkbox:checked:disabled + .toggle-label:before {\n bottom: 0;\n left: 0;\n right: 0;\n top: 0;\n}\n\n.wpmud .toggle .toggle-checkbox:checked:disabled + .toggle-label:after {\n margin-left: 1px;\n}\n\n.wpmud .toggle-item.bordered,\n.wpmud .wphb-block-entry.bordered {\n border-top: 1px solid #E6E6E6;\n padding-top: 30px;\n}\n\n.wpmud .toggle-item.space-top-small {\n margin: 15px 0 0;\n}\n\n.wpmud .toggle-item label {\n text-align: left;\n}\n\n.wpmud .toggle-item .toggle-item-group {\n display: table;\n width: 100%;\n}\n\n.wpmud .toggle-item .toggle-info,\n.wpmud .toggle-item .toggle-actions {\n display: table-cell;\n}\n\n.wpmud .toggle-item .toggle-item-title {\n color: #555;\n font: 400 15px/20px 'Roboto', Arial, sans-serif;\n margin: 0;\n}\n\n.wpmud .toggle-item .toggle-actions {\n padding-left: 30px;\n vertical-align: middle;\n text-align: right;\n}\n\n/* ****************************************************************************\n * 3. COMPONENTS/MODULES\n */\n/* Pills */\n.wphb-pills {\n display: inline-block;\n background-color: #FFD000;\n color: #333333;\n border-radius: 15px;\n width: 39px;\n height: 26px;\n font-size: 12px;\n line-height: 26px;\n text-align: center;\n font-weight: 500;\n}\n\n.wpmud .box-title .wphb-pills {\n margin: 16px 0 0 10px;\n}\n\n.wphb-pills.grey {\n background-color: #F2F2F2;\n color: #666;\n}\n\n.wphb-pills.red {\n background-color: #FF6D6D;\n color: #fff;\n}\n\n.wphb-pills.green {\n background-color: #1ABC9C;\n color: #fff;\n}\n\n.wphb-pills.with-arrow:after {\n border: 8px solid transparent;\n content: '';\n height: 0;\n pointer-events: none;\n position: absolute;\n width: 0;\n z-index: 1;\n}\n\n.wphb-pills.with-arrow.right:after {\n border-left-color: #19B4CF;\n left: 50%;\n margin-top: -8px;\n top: 50%;\n}\n\n.wphb-pills.with-arrow.left:after {\n border-right-color: #19B4CF;\n right: 100%;\n margin-top: -8px;\n top: 50%;\n}\n\n.wphb-pills.with-arrow.right.grey:after {\n border-left-color: #F2F2F2;\n}\n\n.wphb-pills.with-arrow.left.grey:after {\n border-right-color: #F2F2F2;\n}\n\n.wphb-pills-group {\n border-collapse: collapse;\n border-spacing: 0;\n font-size: 0;\n display: inline-block;\n position: relative;\n}\n\n.wphb-pills-group.stacked .wphb-pills {\n font-size: 10px;\n line-height: 12px;\n height: 12px;\n text-align: left;\n max-width: 69px;\n color: #888888;\n display: block;\n background-color: transparent;\n}\n\n.wphb-pills-group.stacked .wphb-pills:last-child {\n color: #1ABC9C;\n background-color: transparent;\n}\n\n.wphb-pills-group.stacked .dev-icon.dev-icon-caret_down {\n color: #1ABC9C;\n margin-left: 7px;\n}\n\n.wphb-pills-group .wphb-pills {\n border-radius: 0;\n width: 80px;\n line-height: 30px;\n height: 30px;\n margin: 0;\n}\n\n.wphb-pills-group .wphb-pills:first-child {\n border-radius: 5px 0 0 5px !important;\n}\n\n.wphb-pills-group .wphb-pills:last-child {\n background-color: #17A8E3;\n color: #FFFFFF;\n border-radius: 0 5px 5px 0 !important;\n}\n\n/* Block: Section */\n.wpmud .wphb-block-section {\n margin-top: 40px;\n}\n\n.wpmud .wphb-block-section:first-child {\n margin-top: 0;\n}\n\n.wpmud .wphb-block-section-content * {\n color: #555;\n line-height: 20px;\n}\n\n/* Box: Content */\n.wpmud .content-box .wphb-block-entry-image-bottom {\n margin-bottom: -30px;\n}\n\n.wpmud .content-box .wphb-block-entry-image-center {\n margin-top: 30px;\n}\n\n.wpmud .content-box .wphb-block-entry-image-center img {\n margin-left: auto;\n margin-right: auto;\n}\n\n/* Box: Content One Col */\n.wpmud .content-box-one-col {\n}\n\n/* Box: Content One Col Center */\n.wpmud .content-box-one-col-center .box-content {\n text-align: left;\n}\n\n.wpmud .content-box-one-col-center .wphb-block-entry-content {\n margin: 0 auto;\n}\n\n.wpmud .content-box-flex {\n display: flex;\n justify-content: space-between;\n align-items: flex-end;\n}\n\n/* Box: Content w/Image (left) */\n.wpmud .content-box-two-cols-image-left .box-content {\n text-align: left;\n}\n\n.wpmud .content-box-two-cols-image-left .wphb-block-entry-image,\n.wpmud .content-box-two-cols-image-left .wphb-block-entry-content {\n display: block;\n}\n\n.wpmud .content-box-two-cols-image-left .wphb-block-entry-image {\n float: left;\n max-width: 192px;\n}\n\n.wpmud .content-box-two-cols-image-left .wphb-block-entry-content {\n margin: 30px 0 0 285px;\n}\n\n.wpmud .box-dashboard-smush-no-membership .content-box-two-cols-image-left .wphb-block-entry-content {\n margin-top: 45px;\n}\n\n.wpmud .content-box-two-cols-image-left .wphb-block-entry-content .title {\n text-align: left;\n}\n\n/* Block: Content */\n.wpmud .wphb-block + .wphb-block {\n margin-top: 30px;\n}\n\n.wpmud .wphb-block-header {\n margin-bottom: 30px;\n}\n\n.wpmud .wphb-block-title {\n font-family: 'Roboto Condensed', 'Roboto', sans-serif;\n font-size: 22px;\n line-height: 26px;\n margin: 0;\n overflow: hidden;\n text-align: left;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.wpmud .wphb-block-content + .wphb-block-content {\n margin-top: 30px;\n}\n\n.wpmud .wphb-block-content > *:last-child {\n margin-bottom: 0;\n}\n\n#wphb-box-dashboard-cloudflare .wphb-block-entry .wphb-block-entry-content {\n padding-top: 0;\n}\n\n.wpmud .wphb-block-content-center {\n text-align: center;\n}\n\n.wpmud .wphb-block-content pre {\n font-weight: 500;\n font-family: Roboto;\n font-size: 13px;\n line-height: 18px;\n background-color: #F8F8F8;\n border: 1px solid #E6E6E6;\n border-radius: 5px;\n margin: 0;\n padding: 20px 30px;\n white-space: pre;\n overflow-x: scroll;\n max-width: 100%;\n}\n\n.wpmud .wphb-server-instructions .wphb-block-content pre {\n max-height: 240px;\n}\n\n.wpmud .wphb-block-content-blue {\n background-color: #e0f6ff;\n border-radius: 5px;\n padding: 20px 30px;\n}\n\n.wpmud .wphb-block-content .tooltip-box,\n.wpmud .wphb-block-content .toggle,\n.wpmud .wphb-block-content .toggle .toggle-label {\n height: 21px;\n vertical-align: top;\n}\n\n.wpmud .wphb-block-content-group {\n border-collapse: separate;\n border-spacing: 0;\n display: table;\n width: 100%;\n}\n\n.wpmud .wphb-block-content-group-inner {\n display: table-row;\n}\n\n.wpmud .wphb-block-content-group-item {\n display: table-cell;\n vertical-align: middle;\n width: 100%;\n}\n\n.wpmud .wphb-block-content-group-item .wphb-block-content {\n margin-left: 30px;\n}\n\n.wpmud .wphb-block-content-group-item:first-child .wphb-block-content {\n margin-left: 0;\n}\n\n.wpmud .wphb-block-content-group .wphb-block-content.small {\n padding: 20px 23px;\n width: 80px;\n}\n\n/* Block: Entry Content */\n.wpmud .wphb-block-entry:after {\n content: '';\n clear: both;\n display: block;\n}\n\n.wpmud .wphb-block-entry-content .title {\n color: #333333;\n font-size: 22px;\n font-weight: bold;\n line-height: 1.333em;\n margin: 0 0 0.5em;\n max-width: 100%;\n text-transform: uppercase;\n}\n\n.wpmud .wphb-block-entry-content .title,\n.wpmud .wphb-block-entry-content .content > p {\n margin: 0 0 20px;\n}\n\n.wpmud .wphb-block-entry-content .content > p:last-child,\n.wpmud .wphb-block-entry-content .content > p:last-of-type {\n margin-bottom: 0;\n}\n\n/* Progress bar */\n@keyframes spinner {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg)\n }\n\n 50% {\n -webkit-transform: rotate(180deg);\n transform: rotate(180deg)\n }\n\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg)\n }\n}\n\n.wphb-scan-progress {\n overflow: hidden;\n width: 100%;\n}\n\n.not-present .wphb-scan-progress-text:before,\n.wphb-scan-progress .wphb-scan-progress-text:before {\n content: \" \";\n width: 18px;\n height: 18px;\n display: inline-block;\n position: relative;\n top: 5px;\n left: 1px;\n margin-right: 10px;\n border: 2px solid #A9E0EC;\n border-bottom-color: #17A8E3;\n border-radius: 100%;\n background: 0 0;\n box-sizing: border-box;\n animation: spinner .75s 0s linear infinite;\n}\n\n.wphb-scan-progress .wphb-scan-progress-text {\n width: 65px;\n float: left;\n text-align: left;\n}\n\n.wphb-scan-progress .wphb-scan-progress-text img {\n display: inline-block;\n vertical-align: middle;\n margin-right: 10px;\n}\n\n.wphb-scan-progress .wphb-scan-progress-text span {\n font-weight: bold;\n font-family: \"Roboto Condensed\", sans-serif;\n font-size: 13px;\n color: #333333;\n vertical-align: middle;\n line-height: 30px;\n}\n\n.wphb-scan-progress .wphb-scan-progress-bar {\n background: #E6E6E6;\n -webkit-border-radius: 5px;\n -moz-border-radius: 5px;\n border-radius: 5px;\n height: 10px;\n width: 70%;\n overflow: hidden;\n margin-top: 10px;\n position: relative;\n}\n\n.wphb-scan-progress .wphb-scan-progress-bar span {\n background: #17A8E3;\n height: 10px;\n display: inline-block;\n position: absolute;\n top: 0;\n left: 0;\n -webkit-transition: 1000ms width ease-in-out;\n -moz-transition: 1000ms width ease-in-out;\n transition: 1000ms width ease-in-out;\n}\n\n/* Block: Test with progress bar */\n.wphb-block-test {\n background-color: #F9F9F9;\n border-radius: 5px;\n max-width: 700px;\n width: 100%;\n height: 60px;\n padding: 15px 30px;\n}\n\n.wphb-block-test-header {\n margin-bottom: 10px;\n}\n\n.wphb-progress-state {\n margin-top: 10px;\n text-align: center;\n}\n\n.wphb-progress-state .wphb-progress-state-text {\n color: #8B8B8B;\n font-size: 13px;\n line-height: 22px;\n}\n\n.wphb-block-test-standalone {\n max-width: 100%;\n text-align: center;\n margin-top: 25px;\n}\n\n.wphb-block-test-standalone .wphb-progress {\n margin: 0 auto;\n}\n\n/* Filename Extensions Icons */\n.wphb-filename-extension {\n border-radius: 4px;\n display: block;\n float: left;\n font-family: 'Roboto', sans-serif;\n font-size: 9px;\n color: #fff;\n text-transform: uppercase;\n text-align: center;\n line-height: 43px;\n height: 30px;\n margin: 0 10px 0 0;\n width: 30px;\n}\n\n.wphb-filename-extension-html {\n background-color: #F56418;\n}\n\n.wphb-filename-extension-other {\n background-color: #AAAAAA;\n}\n\n.wphb-filename-extension-css {\n background-color: #25A8DE;\n}\n\n.wphb-filename-extension-media {\n background-color: #55DDB8;\n}\n\n.wphb-filename-extension-images {\n background-color: #BDF2F7;\n color: #333333;\n}\n\n.wphb-filename-extension-javascript,\n.wphb-filename-extension-js {\n background-color: #F7E100;\n color: #333333;\n}\n\n/* Performance Results */\n.wphb-score {\n display: inline-block;\n position: relative;\n}\n\n.wphb-score-type-circle {\n border-radius: 100%;\n height: 30px;\n width: 30px;\n}\n\n.wphb-score-type-circle.large {\n height: 80px;\n width: 80px;\n}\n\n.wphb-score-type-circle .wphb-score-graph-circle {\n stroke: #E5E5E5;\n stroke-dashoffset: 80;\n stroke-width: 5px;\n /*-ms-transition: stroke-dashoffset 1s linear;*/\n -moz-transition: stroke-dashoffset 1s linear;\n -webkit-transition: stroke-dashoffset 1s linear;\n transition: stroke-dashoffset 1s linear;\n}\n\n.wphb-score-type-circle.large .wphb-score-graph-circle {\n stroke-dashoffset: 219.8;\n stroke-width: 10px;\n}\n\n.wphb-score-type-circle .wphb-score-graph-result {\n transform: rotate(-80deg) translateX(-27px) translateY(2.5px);\n -moz-transform: rotate(-80deg) translateX(-27px) translateY(2.5px);\n -webkit-transform: rotate(-80deg) translateX(-27px) translateY(2.5px);\n}\n\n.wphb-score-type-circle.large .wphb-score-graph-result {\n transform: rotate(-80deg) translateX(-72.5px) translateY(6.5px);\n -moz-transform: rotate(-80deg) translateX(-72.5px) translateY(6.5px);\n -webkit-transform: rotate(-80deg) translateX(-72.5px) translateY(6.5px);\n}\n\n.wpmud .wphb-performance-report-item-score,\n.wpmud .wphb-button-label,\n.wpmud .wphb-score-result {\n cursor: pointer;\n position: relative;\n}\n\n.wpmud .list-table.hover-effect > tbody > tr[class*=\"wphb-table-score\"] td:first-child {\n padding-left: 30px;\n}\n\n.wpmud .list-table.hover-effect > tbody > tr[class*=\"wphb-table-score\"] td:first-child:before {\n font-family: 'hummingbird', sans-serif;\n speak: none;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n line-height: 1;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n font-size: 20px;\n vertical-align: middle;\n margin-right: 10px;\n}\n\n.wpmud .list-table.hover-effect > tbody > tr.wphb-table-score-success:hover > td:first-child:after,\n.wpmud .list-table.hover-effect > tbody > tr.wphb-table-score-warning:hover td:first-child:after,\n.wpmud .list-table.hover-effect > tbody > tr.wphb-table-score-dismissed:hover td:first-child:after,\n.wpmud .list-table.hover-effect > tbody > tr.wphb-table-score-error:hover td:first-child:after {\n content: normal;\n}\n\n.wpmud .list-table.hover-effect > tbody > tr.wphb-table-score-success:hover td:first-child,\n.wpmud .list-table.hover-effect > tbody > tr.wphb-table-additional-success td:first-child,\n.wphb-table-score-success td:first-child {\n border-left: 4px solid #1ABC9C;\n}\n\n.wpmud .list-table.hover-effect > tbody > tr.wphb-table-score-success td:first-child:before {\n color: #1ABC9C;\n content: \"\\e903\";\n}\n\n.wpmud .list-table.hover-effect > tbody > tr.wphb-table-score-warning:hover td:first-child,\n.wpmud .list-table.hover-effect > tbody > tr.wphb-table-additional-warning td:first-child,\n.wphb-table-score-warning td:first-child {\n border-left: 4px solid #FFD000;\n}\n\n.wpmud .list-table.hover-effect > tbody > tr.wphb-table-score-warning td:first-child:before {\n color: #FFD000;\n content: \"\\e904\";\n}\n\n.wpmud .list-table.hover-effect > tbody > tr.wphb-table-score-error:hover td:first-child,\n.wpmud .list-table.hover-effect > tbody > tr.wphb-table-additional-error td:first-child,\n.wphb-table-score-error td:first-child {\n border-left: 4px solid #FF6D6D;\n}\n\n.wpmud .list-table.hover-effect > tbody > tr.wphb-table-score-error td:first-child:before {\n color: #FF6D6D;\n content: \"\\e904\";\n}\n\n.wpmud .list-table.hover-effect > tbody > tr.wphb-table-score-dismissed:hover td:first-child,\n.wpmud .list-table.hover-effect > tbody > tr.wphb-table-additional-dismissed td:first-child,\n.wphb-table-score-dismissed td:first-child {\n border-left: 4px solid #888888;\n}\n\n.wpmud .list-table.hover-effect > tbody > tr.wphb-table-score-dismissed td:first-child:before {\n color: #888888;\n content: \"\\e904\";\n}\n\n.wphb-score-result-grade-aplus,\n.wphb-score-result-grade-a {\n color: #1ABC9C;\n}\n\n.wphb-score-result-grade-aplus .wphb-score-type-circle .wphb-score-graph-result,\n.wphb-score-result-grade-a .wphb-score-type-circle .wphb-score-graph-result {\n stroke: #1ABC9C;\n}\n\n.wphb-score-result-grade-b {\n color: #1ABC9C;\n}\n\n.wphb-score-result-grade-b .wphb-score-type-circle .wphb-score-graph-result {\n stroke: #1ABC9C;\n}\n\n.wphb-score-result-grade-c {\n color: #FFD000;\n}\n\n.wphb-score-result-grade-c .wphb-score-type-circle .wphb-score-graph-result {\n stroke: #FFD000;\n}\n\n.wphb-score-result-grade-d {\n color: #FFD000;\n}\n\n.wphb-score-result-grade-d .wphb-score-type-circle .wphb-score-graph-result {\n stroke: #FFD000;\n}\n\n.wphb-score-result-grade-e,\n.wphb-score-result-grade-f {\n color: #FF6D6D;\n}\n\n.wphb-score-result-grade-e .wphb-score-type-circle .wphb-score-graph-result,\n.wphb-score-result-grade-f .wphb-score-type-circle .wphb-score-graph-result {\n stroke: #FF6D6D;\n}\n\n.wphb-score-result-grade-dismissed {\n color: #AAAAAA;\n}\n\n.wphb-score-result-grade-dismissed .wphb-score-type-circle .wphb-score-graph-result {\n stroke: #AAAAAA;\n}\n\n.wphb-score-have-label .wphb-score-type,\n.wphb-score-have-label .wphb-score-result-label {\n float: left;\n display: block;\n}\n\n.wphb-score-have-label.inside .wphb-score-type,\n.wphb-score-have-label.inside .wphb-score-result-label {\n float: none;\n}\n\n.wphb-score-have-label .wphb-score-result-label {\n font-family: 'Roboto', Arial, sans-serif;\n font-size: 15px;\n color: #888888;\n padding-left: 10px;\n}\n\n.wphb-score-have-label .wphb-score-type-circle + .wphb-score-result-label {\n line-height: 30px;\n min-width: 35px;\n text-align: left;\n}\n\n.wphb-score-have-label.inside .wphb-score-type {\n position: relative;\n}\n\n.wphb-score-have-label.inside .wphb-score-result-label {\n font-size: 26px;\n left: 0;\n line-height: 34px;\n margin: -17px 0 0;\n min-width: 100%;\n padding: 0;\n position: absolute;\n right: 0;\n text-align: center;\n top: 50%;\n}\n\n#wphb-error-details {\n display: none;\n}\n\n#wphb-error-details-link {\n color: white;\n text-decoration: none;\n margin-top: 10px;\n margin-bottom: 10px;\n display: inline-block;\n font-weight: 400;\n}\n\n#wphb-error-details-link > .dashicons {\n text-decoration: none;\n}\n\n#wphb-error-details-link.expanded {\n display: none;\n}\n\n/* Tabs */\n.wpmud .wphb-tabs a {\n color: #333;\n display: block;\n}\n\n.wpmud .wphb-tabs .wphb-tab {\n padding: 5px 20px;\n height: 30px;\n}\n\n.wpmud .wphb-tabs .wphb-tab.current {\n background-color: #E6E6E6;\n border-radius: 20px;\n font-weight: 500;\n}\n\n.wpmud .wphb-tab .wphb-button-label {\n position: relative;\n top: -25px;\n left: 100%;\n margin-left: -22px;\n width: 39px;\n height: 26px;\n text-align: center;\n font-size: 12px;\n font-weight: 500;\n line-height: 24px;\n}\n\n.wpmud .wphb-tab > i {\n color: #FF6D6D;\n position: relative;\n top: -23px;\n left: 100%;\n margin-left: -5px;\n font-size: 21px;\n}\n\n.wpmud .wphb-tab > i.hb-wpmudev-icon-tick {\n color: #1ABC9C;\n}\n\n/* ****************************************************************************\n * 10. RESPONSIVE/MQ\n */\n/* LARGE DESKTOP */\n@media screen and (max-width: 1200px) {\n\n /* Responsive Class Helpers */\n .hide-to-large {\n display: none;\n }\n\n /* Block: Steps */\n .wphb-steps {\n text-align: center;\n }\n .wphb-step-number {\n float: none;\n margin-bottom: 10px;\n }\n .wphb-step-number-inner {\n margin: 0 auto;\n }\n .wphb-step-content {\n margin-left: 0;\n }\n\n /* Page: Dashboard */\n .wpmud .box-dashboard-smush-no-membership .content-box-two-cols-image-left .wphb-block-entry-content {\n margin-top: 65px;\n }\n .wpmud .content-box-two-cols-image-left .wphb-block-entry-content {\n margin-top: 65px;\n }\n\n /* Page: Performance */\n .wpmud .performance-report-table .wphb-performance-report-item-score,\n .wpmud .performance-report-table .wphb-performance-report-item-type {\n width: 115px;\n }\n .wpmud .performance-report-table .wphb-performance-report-item-cta {\n width: 180px;\n }\n .wpmud .box-reporting-summary .box-footer .wphb-block-entry-content {\n margin-top: 0;\n }\n\n /* Page: Caching */\n .wpmud .wrap-wphb-caching .row {\n display: block;\n table-layout: inherit;\n }\n .wpmud .wrap-wphb .row .col-half,\n .wpmud .wrap-wphb-caching .row .col-half,\n .wpmud .wrap-wphb-gzip .row .col-half {\n display: block;\n margin-top: 30px;\n padding: 0;\n width: 100%;\n }\n .wpmud .wrap-wphb .row .col-half:first-child,\n .wpmud .wrap-wphb-caching .row .col-half:first-child,\n .wpmud .wrap-wphb-gzip .row .col-half:first-child {\n margin-top: 0;\n }\n}\n\n/* DESKTOP */\n@media screen and (max-width: 1100px) {\n\n /* Box: Content w/Image (left) */\n .wpmud .content-box-two-cols-image-left .wphb-block-entry {\n text-align: center;\n min-height: 100%;\n }\n .wpmud .content-box-two-cols-image-left .wphb-block-entry-image {\n display: none;\n }\n .wpmud .wphb-block-entry-third {\n width: 49%;\n }\n .wpmud .content-box-two-cols-image-left .wphb-block-entry-image .wphb-image {\n margin: 0 auto;\n }\n .wpmud .content-box-two-cols-image-left .wphb-block-entry-content {\n margin: 35px 0 0 155px;\n }\n .wpmud .content-box-two-cols-image-left .wphb-block-entry-content .title {\n text-align: center;\n }\n\n .wpmud .wphb-block-entry-third {\n text-align: left;\n padding-left: 0;\n }\n\n /* Responsive Uitlities */\n .hide-to-desktop {\n display: none !important;\n }\n\n /* Page: Dashboard */\n .wpmud .box-dashboard-uptime-no-membership .wphb-block-entry-image,\n .wpmud .box-dashboard-reports-no-membership .wphb-block-entry-image {\n display: none;\n }\n .wpmud .wphb-cf-notice p,\n .wpmud .wphb-upsell-free-message p {\n margin-left: auto;\n margin-top: 30px;\n }\n .wpmud .wphb-cf-notice p:after,\n .wpmud .wphb-upsell-free-message p:after {\n display: none;\n }\n\n /* Page: Performance */\n .wpmud .performance-report-table .wphb-performance-report-item-type {\n width: 105px;\n }\n .wpmud .performance-report-table .wphb-performance-report-item-cta {\n width: 165px;\n }\n .wpmud .performance-report-table .wphb-performance-report-item-score {\n width: 105px;\n padding-left: 20px !important;\n }\n}\n\n@media screen and (max-width: 1060px) {\n .wpmud .wphb-border-row-header,\n .wpmud .wphb-border-row {\n padding: 15px 15px;\n }\n}\n\n/* SMALL DESKTOP */\n@media screen and (max-width: 960px) {\n /* Generic */\n .wpmud .row {\n display: block;\n }\n .wpmud .row .col-fifth {\n display: block;\n width: 100%;\n padding: 0;\n }\n .wpmud .row .col-four-fifths {\n display: block;\n width: 100%;\n padding: 0;\n }\n\n .wpmud .dev-overlay {\n left: 35px;\n top: 15px;\n }\n\n .wpmud .wphb-table.stack {\n display: block;\n }\n .wpmud .wphb-table.stack > thead,\n .wpmud .wphb-table.stack > tfoot {\n display: none;\n }\n .wpmud .wphb-table.stack > tbody {\n display: block;\n width: 100%;\n }\n .wpmud .wphb-table.stack > tbody > tr {\n display: block;\n position: relative;\n width: 100%;\n }\n .wpmud .wphb-table.stack > tbody > tr:before {\n background: transparent;\n border-top: 1px solid #EAEAEA;\n border-bottom: 1px solid transparent;\n bottom: 0;\n content: \"\";\n display: block;\n left: 0;\n margin: 0 -30px;\n position: absolute;\n right: 0;\n top: 0;\n }\n .wpmud .wphb-table.stack > tbody > tr:first-child:before {\n border-top-color: transparent;\n }\n .wpmud .wphb-table.stack > tbody > tr > td {\n border-bottom: none;\n display: block;\n padding-left: 0;\n position: relative;\n text-align: left;\n width: 100%;\n }\n .wpmud .wphb-table.stack > tbody > tr > td:before {\n content: attr(th-data);\n display: block;\n float: left;\n font-size: 15px;\n font-weight: 700;\n line-height: 1.5em;\n min-width: 150px;\n max-width: 300px;\n margin-right: 20px;\n text-transform: uppercase;\n /*width: 40%;*/\n }\n .wpmud .wphb-table.stack > tbody > tr > td.has-button-label:before {\n line-height: 2em;\n }\n .wpmud .wphb-table.stack > tbody > tr > td.has-select {\n max-height: 64px;\n }\n .wpmud .wphb-table.stack > tbody > tr > td.has-select:before {\n line-height: 2.867em;\n }\n .wpmud .wphb-table.stack > tbody > tr,\n .wpmud .wphb-table.stack > tbody > tr > td:first-child {\n border-top: none;\n }\n .wpmud .wphb-table.stack > tbody > tr > td:last-child {\n border-bottom: none;\n }\n .wpmud .wphb-table.stack > tbody > tr:hover:before {\n background: #FBFBFB;\n }\n .wpmud .wphb-table.stack > tbody > tr:first-child:hover:before {\n border-top-color: #EAEAEA;\n }\n .wpmud .wphb-table.stack > tbody > tr:last-child:hover:before {\n border-bottom-color: #EAEAEA;\n }\n .wpmud .wphb-table.stack > tbody > tr:hover > td {\n border-bottom: none;\n }\n .wpmud .wphb-table.stack > tbody > tr:hover > td:first-child:after,\n .wpmud .wphb-table.stack > tbody > tr:hover > td:last-child:after {\n display: none;\n }\n .wpmud .wphb-table.stack > tbody > tr > td > * {\n display: inline-block;\n }\n .wpmud .wphb-block-entry-third {\n padding-left: 0;\n }\n}\n\n/* TABLET */\n@media screen and (max-width: 783px) {\n /* Generic */\n .wpmud #header .actions {\n position: relative;\n display: flex;\n align-items: center;\n top: 0;\n margin: 10px 0 10px;\n float: none;\n padding-bottom: 0;\n }\n .wpmud #header .actions .button:first-child {\n margin-left: 0;\n }\n .wpmud #header .actions [tooltip].tooltip-bottom:after {\n margin-left: -54px;\n }\n .wpmud .box-content .with-padding {\n padding: 0;\n }\n .wpmud .dev-overlay {\n left: 0;\n top: 0;\n }\n .wpmud .row,\n .wpmud .row-sep {\n display: block;\n table-layout: inherit;\n }\n .wpmud .row .col-third,\n .wpmud .row .col-two-third,\n .wpmud .row .col-half,\n .wpmud .row .col-quarter,\n .wpmud .row .col-three-quarters {\n display: block;\n margin-top: 30px;\n padding: 0;\n width: 100%;\n }\n .wpmud .row .col-third:first-child,\n .wpmud .row .col-two-third:first-child,\n .wpmud .row .col-half:first-child,\n .wpmud .row .col-quarter:first-child,\n .wpmud .row .col-three-quarters:first-child {\n margin-top: 0;\n }\n .wpmud .content-box-two-cols-image-left .wphb-block-entry-image {\n display: none;\n }\n\n .wpmud .wphb-border-frame {\n border: 0\n }\n\n .wpmud .wphb-table-wrapper.complex {\n overflow-y: hidden;\n width: 100%;\n padding: 0;\n }\n .wpmud .wphb-table-wrapper.complex p {\n padding: 0 20px;\n }\n .wpmud .wphb-table-wrapper.complex .alignleft {\n padding-left: 20px;\n }\n .wpmud .wphb-table-wrapper.complex .alignright {\n padding-right: 20px;\n }\n\n .wpmud .list-table > thead > tr > th,\n .wpmud .list-table > tbody > tr > td {\n width: 100%;\n }\n\n .wpmud .wphb-table.stack > tbody > tr > td:before {\n max-width: 220px;\n width: 40%;\n }\n\n .wpmud .dev-box .box-title .toggle-group {\n margin-top: 0;\n }\n\n .wpmud .wrap-wp-hummingbird > .wphb-notice {\n width: 85%;\n }\n .wpmud #header .after-header-actions .button {\n margin-top: -15px;\n }\n\n /* Page: Dashboard */\n .wpmud .callout-box .callout-title {\n line-height: 30px;\n }\n\n /* Page: Performance */\n .wpmud .performance-report-table th,\n .wpmud .performance-report-table td {\n width: 70% !important;\n }\n .wpmud .wphb-performance-report-heading.wphb-performance-report-heading-type,\n .wpmud .wphb-performance-report-item-type,\n .wpmud .wphb-performance-report-item-cta > button {\n display: none !important;\n }\n}\n\n/* LARGE MOBILE */\n@media screen and (max-width: 600px) {\n /* Responsive Class Helpers */\n .hide-to-mobile {\n display: none !important;\n }\n\n .wpmud .wphb-block-entry-third {\n display: block;\n text-align: center;\n width: 100%;\n }\n .wpmud .wphb-block-entry-third .dev-list {\n text-align: left;\n }\n\n /* Generic */\n .wpmud .dev-box .box-title .actions,\n .wpmud .dev-box .box-title .extra,\n .wpmud .dev-box .box-title .test-results {\n float: none;\n display: block;\n }\n .wpmud .dev-box .box-title .actions,\n .wpmud .dev-box .box-title .extra {\n margin-top: 15px;\n }\n .wpmud .dev-box .box-title {\n padding: 15px 20px;\n }\n .wpmud .dev-box .box-title .buttons {\n margin-top: 2px;\n float: right;\n }\n .wpmud .dev-box .box-title .wphb-pills {\n margin: 4px 0 0 10px;\n }\n .wpmud .dev-box .box-title h3 {\n line-height: 34px;\n display: inline-block;\n }\n .wpmud section[class^=\"box-dashboard-\"] .box-title:before {\n margin: 5px 10px 5px 0;\n }\n .wphb-pills {\n margin: 0 0 0 10px;\n }\n .wphb-pills-group .wphb-pills:first-child {\n border-radius: 5px 5px 0 0 !important;\n }\n .wphb-pills-group .wphb-pills:last-child {\n border-radius: 0 0 5px 5px !important;\n }\n .wpmud .wrap-wp-hummingbird > .wphb-notice {\n width: 100%;\n top: 46px;\n margin-left: -251px;\n }\n\n /* Page: Dashboard */\n .wpmud .wphb-block-entry-third .current-performance-score {\n margin-bottom: 5px;\n }\n .wpmud .content-box-two-cols-image-left .wphb-block-entry-content.wphb-cf-notice {\n margin: 35px 0 0 0;\n }\n .box-dashboard-browser-caching-module .box-content {\n background-image: none;\n }\n /* Page: Browser Caching */\n .wpmud .box-caching-summary .box-content > .box-content {\n background-image: none;\n }\n}\n\n/* MOBILE */\n@media screen and (max-width: 480px) {\n /* Compoents: Pills */\n .wphb-pills-group {\n border-collapse: inherit;\n border-spacing: inherit;\n }\n .box-dashboard-minification-module .wphb-pills {\n display: block;\n }\n .wphb-pills.with-arrow.right:after,\n .wphb-pills.with-arrow.left:after {\n border-top-color: #19B4CF;\n margin-top: 0;\n margin-left: -8px;\n top: 50%;\n }\n .wphb-pills.with-arrow.right:after {\n border-left-color: transparent;\n left: 50%;\n }\n .wphb-pills.with-arrow.left:after {\n border-right-color: transparent;\n right: 50%;\n }\n .wphb-pills.with-arrow.right.grey:after {\n border-top-color: #eee;\n border-left-color: transparent;\n }\n .wphb-pills.with-arrow.left.grey:after {\n border-top-color: #eee;\n border-right-color: transparent;\n }\n\n /* Page: Dashboard */\n .wpmud .box-dashboard-performance-module .wphb-score-result-label {\n margin-left: 3px;\n margin-right: 5px;\n }\n .wpmud .box-dashboard-performance-module .wphb-dash-table .button-ghost {\n padding: 5px 6px 7px !important;\n }\n .wpmud .wphb-score.wphb-score-have-label {\n width: 65px;\n }\n .wpmud .dev-box .status-text {\n line-height: 15px;\n margin-top: 0;\n padding-left: 10px;\n word-wrap: break-word;\n max-width: 150px;\n }\n\n /* Performance reports */\n .wpmud .wrap-wphb-performance .recipient,\n .wpmud .wrap-wphb-performance .recipient .name,\n .wpmud .wrap-wphb-performance .add-recipient {\n flex-flow: row wrap;\n }\n .wpmud .wrap-wphb-performance .add-recipient > button,\n .wpmud .wrap-wphb-performance .add-recipient #wphb-first-name {\n border-radius: 0 !important;\n margin-bottom: 5px;\n border: 1px solid #E6E6E6;\n }\n .wpmud .wrap-wphb-performance .add-recipient > button {\n margin-top: 10px !important;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./_src/admin/scss/_src/admin/scss/app.scss"],"sourceRoot":""}
admin/assets/fonts/hummingbird.eot CHANGED
Binary file
admin/assets/fonts/hummingbird.svg CHANGED
@@ -7,6 +7,8 @@
7
  <font-face units-per-em="1024" ascent="960" descent="-64" />
8
  <missing-glyph horiz-adv-x="1024" />
9
  <glyph unicode="&#x20;" horiz-adv-x="512" d="" />
 
 
10
  <glyph unicode="&#xe900;" glyph-name="icon-audit" d="M716.8 608.137c-26.123-19.54-48.301-43.688-65.351-71.25-21.784 47.187-43.918 104.997-66.403 173.474l-103.264-737.457c-2.893-20.479-20.425-36.009-41.639-36.862-0.614 0-1.227-0.043-1.841-0.043-20.425 0-38.308 13.823-42.778 33.406l-143.325 627.766-79.64-206.838c-6.443-16.639-22.792-27.689-41.069-27.689h-131.491v85.329h101.116l120.84 313.627c6.794 17.663 24.238 28.969 44.137 27.604 19.329-1.323 35.459-14.89 39.71-33.321l122.155-535.227 98.399 702.386c2.849 20.223 19.943 35.625 40.85 36.819 20.907 1.664 39.754-12.074 45.014-31.87 29.498-110.629 68.375-229.834 104.579-319.856zM844.8 550.4c98.829 0 179.2-80.371 179.2-179.2s-80.371-179.2-179.2-179.2c-98.829 0-179.2 80.371-179.2 179.2s80.371 179.2 179.2 179.2zM844.8 460.8c-49.504 0-89.6-40.096-89.6-89.6s40.096-89.6 89.6-89.6c49.504 0 89.6 40.096 89.6 89.6s-40.096 89.6-89.6 89.6z" />
11
  <glyph unicode="&#xe901;" glyph-name="wpmudev-icon-cross" d="M512 520.408l-117.396 117.396c-19.995 19.995-52.413 19.995-72.408 0s-19.995-52.413 0-72.408l117.396-117.396-117.396-117.396c-19.995-19.995-19.995-52.413 0-72.408s52.413-19.995 72.408 0l117.396 117.396 117.396-117.396c19.995-19.995 52.413-19.995 72.408 0s19.995 52.413 0 72.408l-117.396 117.396 117.396 117.396c19.995 19.995 19.995 52.413 0 72.408s-52.413 19.995-72.408 0l-117.396-117.396zM512 960c282.77 0 512-229.23 512-512s-229.23-512-512-512c-282.77 0-512 229.23-512 512s229.23 512 512 512z" />
12
  <glyph unicode="&#xe902;" glyph-name="wpmudev-icon-info" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512c282.77 0 512 229.23 512 512s-229.23 512-512 512zM563.2 448.472v-205.744c0-27.638-22.923-50.728-51.2-50.728-28.474 0-51.2 22.712-51.2 50.728v205.744c0 27.638 22.923 50.728 51.2 50.728 28.474 0 51.2-22.712 51.2-50.728zM588.8 627.2c0-42.711-34.385-76.8-76.8-76.8-42.711 0-76.8 34.385-76.8 76.8 0 42.711 34.385 76.8 76.8 76.8 42.711 0 76.8-34.385 76.8-76.8z" />
7
  <font-face units-per-em="1024" ascent="960" descent="-64" />
8
  <missing-glyph horiz-adv-x="1024" />
9
  <glyph unicode="&#x20;" horiz-adv-x="512" d="" />
10
+ <glyph unicode="&#x7a;" glyph-name="fi-filter" d="M1024 728.576c-0.063 44.774-35.52 81.246-79.888 82.939l-860.997 0.005c-0.072 0-0.157 0-0.243 0-45.903 0-83.115-37.212-83.115-83.115 0-26.158 12.084-49.494 30.974-64.73l386.036-386.343v-238.933c0.665-15.332 9.197-28.533 21.637-35.729l0.209-0.111 103.424-59.733c6.303-3.758 13.9-5.98 22.016-5.98 24.035 0 43.52 19.485 43.52 43.52 0 0.062 0 0.124 0 0.187 0 1.185 0 2.209 0 3.404v0 293.376l389.803 389.632c16.397 15.17 26.628 36.8 26.628 60.82 0 0.278-0.001 0.555-0.004 0.833zM284.843 645.291v0z" />
11
+ <glyph unicode="&#x7b;" glyph-name="fi-settings-slider-control" horiz-adv-x="978" d="M803.84 448c-0.001-67.298-54.557-121.854-121.856-121.854s-121.856 54.557-121.856 121.856c0 67.299 54.557 121.856 121.856 121.856 0.24 0 0.48-0.001 0.72-0.002 66.968-0.387 121.136-54.795 121.136-121.854 0-0.001 0-0.001 0-0.002zM494.933 355.328h-462.507c0 0 0 0 0 0-17.909 0-32.427 14.518-32.427 32.427 0 0.060 0 0.12 0 0.18v97.271c0 17.909 14.518 32.427 32.427 32.427h462.507zM868.693 355.328h77.141c17.87 0.096 32.33 14.557 32.427 32.417v97.289c0 17.909-14.518 32.427-32.427 32.427h-77.141zM803.84 838.144c-0.001-67.298-54.557-121.854-121.856-121.854s-121.856 54.557-121.856 121.856c0 67.299 54.557 121.856 121.856 121.856 0.24 0 0.48-0.001 0.72-0.002 66.968-0.387 121.136-54.795 121.136-121.854 0-0.001 0-0.001 0-0.002zM494.933 745.472h-462.507c-17.909 0-32.427 14.518-32.427 32.427v96.768c0 17.909 14.518 32.427 32.427 32.427h462.507zM868.693 745.472h77.141c17.909 0 32.427 14.518 32.427 32.427v96.768c0 17.909-14.518 32.427-32.427 32.427h-77.141zM174.592 57.856c0-67.299 54.557-121.856 121.856-121.856s121.856 54.557 121.856 121.856c0 67.299-54.557 121.856-121.856 121.856s-121.856-54.557-121.856-121.856zM482.816-34.645h463.019c17.909 0 32.427 14.518 32.427 32.427v97.28c0 17.909-14.518 32.427-32.427 32.427h-463.019zM109.568-34.645h-77.141c-17.909 0-32.427 14.518-32.427 32.427v97.28c0.096 17.87 14.557 32.33 32.417 32.427h77.151z" />
12
  <glyph unicode="&#xe900;" glyph-name="icon-audit" d="M716.8 608.137c-26.123-19.54-48.301-43.688-65.351-71.25-21.784 47.187-43.918 104.997-66.403 173.474l-103.264-737.457c-2.893-20.479-20.425-36.009-41.639-36.862-0.614 0-1.227-0.043-1.841-0.043-20.425 0-38.308 13.823-42.778 33.406l-143.325 627.766-79.64-206.838c-6.443-16.639-22.792-27.689-41.069-27.689h-131.491v85.329h101.116l120.84 313.627c6.794 17.663 24.238 28.969 44.137 27.604 19.329-1.323 35.459-14.89 39.71-33.321l122.155-535.227 98.399 702.386c2.849 20.223 19.943 35.625 40.85 36.819 20.907 1.664 39.754-12.074 45.014-31.87 29.498-110.629 68.375-229.834 104.579-319.856zM844.8 550.4c98.829 0 179.2-80.371 179.2-179.2s-80.371-179.2-179.2-179.2c-98.829 0-179.2 80.371-179.2 179.2s80.371 179.2 179.2 179.2zM844.8 460.8c-49.504 0-89.6-40.096-89.6-89.6s40.096-89.6 89.6-89.6c49.504 0 89.6 40.096 89.6 89.6s-40.096 89.6-89.6 89.6z" />
13
  <glyph unicode="&#xe901;" glyph-name="wpmudev-icon-cross" d="M512 520.408l-117.396 117.396c-19.995 19.995-52.413 19.995-72.408 0s-19.995-52.413 0-72.408l117.396-117.396-117.396-117.396c-19.995-19.995-19.995-52.413 0-72.408s52.413-19.995 72.408 0l117.396 117.396 117.396-117.396c19.995-19.995 52.413-19.995 72.408 0s19.995 52.413 0 72.408l-117.396 117.396 117.396 117.396c19.995 19.995 19.995 52.413 0 72.408s-52.413 19.995-72.408 0l-117.396-117.396zM512 960c282.77 0 512-229.23 512-512s-229.23-512-512-512c-282.77 0-512 229.23-512 512s229.23 512 512 512z" />
14
  <glyph unicode="&#xe902;" glyph-name="wpmudev-icon-info" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512c282.77 0 512 229.23 512 512s-229.23 512-512 512zM563.2 448.472v-205.744c0-27.638-22.923-50.728-51.2-50.728-28.474 0-51.2 22.712-51.2 50.728v205.744c0 27.638 22.923 50.728 51.2 50.728 28.474 0 51.2-22.712 51.2-50.728zM588.8 627.2c0-42.711-34.385-76.8-76.8-76.8-42.711 0-76.8 34.385-76.8 76.8 0 42.711 34.385 76.8 76.8 76.8 42.711 0 76.8-34.385 76.8-76.8z" />
admin/assets/fonts/hummingbird.ttf CHANGED
Binary file
admin/assets/fonts/hummingbird.woff CHANGED
Binary file
admin/assets/image/hb-graphic-minify-summary.png ADDED
Binary file
admin/assets/image/hb-graphic-minify-summary@2x.png ADDED
Binary file
admin/assets/image/hb-graphic-reports-disabled@1x.png CHANGED
Binary file
admin/assets/image/hb-graphic-reports-disabled@2x.png CHANGED
Binary file
admin/assets/js/admin.min.js CHANGED
@@ -1,15 +1,15 @@
1
- !function(t){function e(r){if(n[r])return n[r].exports;var i=n[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,e),i.l=!0,i.exports}var n={};e.m=t,e.c=n,e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get: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,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=20)}([function(t,e,n){"use strict";function r(){function t(t){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"GET";o.nonce=r,o.action=t;var c={data:o,method:s};return c.url=e,new(0,n(56).Promise)(function(t,e){jQuery.ajax(c).done(t).fail(e)}).then(function(t){return i(t)})}var e=ajaxurl,r=wphb.nonces.HBFetchNonce,o={notice:{dismiss:function(e){return t("wphb_notice_dismiss",{id:e},"POST")},dismissCloudflareDash:function(){return t("wphb_cf_notice_dismiss",{},"POST")}},caching:{setServer:function(e){return t("wphb_caching_set_server_type",{value:e},"POST")}},cloudflare:{connect:function(e,n,r){return t("wphb_cloudflare_connect",{step:e,formData:n,cfData:r},"POST").then(function(t){return t})},setExpiration:function(e){return t("wphb_cloudflare_set_expiry",{value:e},"POST")},purgeCache:function(){return t("wphb_cloudflare_purge_cache",{},"POST")}},dashboard:{toggleMinification:function(e){return t("wphb_dash_toggle_network_minification",{value:e},"POST")},skipSetup:function(){return t("wphb_dash_skip_setup",{},"POST")}},minification:{toggleCDN:function(e){return t("wphb_minification_toggle_cdn",{value:e},"POST")},toggleMinification:function(e){return t("wphb_minification_toggle_minification",{value:e},"POST")},startCheck:function(){return t("wphb_minification_start_check",{},"POST")},checkStep:function(e){return t("wphb_minification_check_step",{step:e},"POST").then(function(t){return t})},finishCheck:function(){return t("wphb_minification_finish_scan",{},"POST")},cancelScan:function(){return t("wphb_minification_cancel_scan",{},"POST")}},performance:{runTest:function(){return t("wphb_performance_run_test",{},"POST").then(function(t){return t})},addRecipient:function(e,n){return t("wphb_pro_performance_add_recipient",{email:e,name:n},"POST").then(function(t){return t})},saveReportsSettings:function(e){return t("wphb_pro_performance_save_reports_settings",{data:e},"POST")}}};(0,c.default)(this,o)}function i(t){if("object"!==(void 0===t?"undefined":o(t))&&(t=JSON.parse(t)),t.success)return t.data;var e=t.data||{},n=new Error(e.message||"Error trying to fetch response from server");throw n.response=t,n}Object.defineProperty(e,"__esModule",{value:!0});var o="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},s=n(22),c=function(t){return t&&t.__esModule?t:{default:t}}(s),a=new r;e.default=a},function(t,e,n){function r(t){return null==t?void 0===t?a:c:u&&u in Object(t)?o(t):s(t)}var i=n(10),o=n(25),s=n(26),c="[object Null]",a="[object Undefined]",u=i?i.toStringTag:void 0;t.exports=r},function(t,e,n){var r=n(11),i="object"==typeof self&&self&&self.Object===Object&&self,o=r||i||Function("return this")();t.exports=o},function(t,e){function n(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}t.exports=n},function(t,e,n){function r(t){return null!=t&&o(t.length)&&!i(t)}var i=n(9),o=n(15);t.exports=r},function(t,e){function n(t){return null!=t&&"object"==typeof t}t.exports=n},function(t,e,n){function r(t,e,n){var r=t[e];c.call(t,e)&&o(r,n)&&(void 0!==n||e in t)||i(t,e,n)}var i=n(7),o=n(13),s=Object.prototype,c=s.hasOwnProperty;t.exports=r},function(t,e,n){function r(t,e,n){"__proto__"==e&&i?i(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n}var i=n(8);t.exports=r},function(t,e,n){var r=n(23),i=function(){try{var t=r(Object,"defineProperty");return t({},"",{}),t}catch(t){}}();t.exports=i},function(t,e,n){function r(t){if(!o(t))return!1;var e=i(t);return e==c||e==a||e==s||e==u}var i=n(1),o=n(3),s="[object AsyncFunction]",c="[object Function]",a="[object GeneratorFunction]",u="[object Proxy]";t.exports=r},function(t,e,n){var r=n(2),i=r.Symbol;t.exports=i},function(t,e,n){(function(e){var n="object"==typeof e&&e&&e.Object===Object&&e;t.exports=n}).call(e,n(12))},function(t,e){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(t){"object"==typeof window&&(n=window)}t.exports=n},function(t,e){function n(t,e){return t===e||t!==t&&e!==e}t.exports=n},function(t,e){function n(t){return t}t.exports=n},function(t,e){function n(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=r}var r=9007199254740991;t.exports=n},function(t,e){function n(t,e){return!!(e=null==e?r:e)&&("number"==typeof t||i.test(t))&&t>-1&&t%1==0&&t<e}var r=9007199254740991,i=/^(?:0|[1-9]\d*)$/;t.exports=n},function(t,e){function n(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||r)}var r=Object.prototype;t.exports=n},function(t,e){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,e,n){"use strict";var r,i,o,s,s,c="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};/*!
2
  * clipboard.js v1.7.1
3
  * https://zenorocha.github.io/clipboard.js
4
  *
5
  * Licensed MIT © Zeno Rocha
6
  */
7
- !function(n){if("object"===c(e)&&void 0!==t)t.exports=n();else{i=[],r=n,void 0!==(o="function"==typeof r?r.apply(e,i):r)&&(t.exports=o)}}(function(){var t;return function t(e,n,r){function i(c,a){if(!n[c]){if(!e[c]){var u="function"==typeof s&&s;if(!a&&u)return s(c,!0);if(o)return o(c,!0);var l=new Error("Cannot find module '"+c+"'");throw l.code="MODULE_NOT_FOUND",l}var f=n[c]={exports:{}};e[c][0].call(f.exports,function(t){var n=e[c][1][t];return i(n||t)},f,f.exports,t,e,n,r)}return n[c].exports}for(var o="function"==typeof s&&s,c=0;c<r.length;c++)i(r[c]);return i}({1:[function(t,e,n){function r(t,e){for(;t&&t.nodeType!==i;){if("function"==typeof t.matches&&t.matches(e))return t;t=t.parentNode}}var i=9;if("undefined"!=typeof Element&&!Element.prototype.matches){var o=Element.prototype;o.matches=o.matchesSelector||o.mozMatchesSelector||o.msMatchesSelector||o.oMatchesSelector||o.webkitMatchesSelector}e.exports=r},{}],2:[function(t,e,n){function r(t,e,n,r,o){var s=i.apply(this,arguments);return t.addEventListener(n,s,o),{destroy:function(){t.removeEventListener(n,s,o)}}}function i(t,e,n,r){return function(n){n.delegateTarget=o(n.target,e),n.delegateTarget&&r.call(t,n)}}var o=t("./closest");e.exports=r},{"./closest":1}],3:[function(t,e,n){n.node=function(t){return void 0!==t&&t instanceof HTMLElement&&1===t.nodeType},n.nodeList=function(t){var e=Object.prototype.toString.call(t);return void 0!==t&&("[object NodeList]"===e||"[object HTMLCollection]"===e)&&"length"in t&&(0===t.length||n.node(t[0]))},n.string=function(t){return"string"==typeof t||t instanceof String},n.fn=function(t){return"[object Function]"===Object.prototype.toString.call(t)}},{}],4:[function(t,e,n){function r(t,e,n){if(!t&&!e&&!n)throw new Error("Missing required arguments");if(!c.string(e))throw new TypeError("Second argument must be a String");if(!c.fn(n))throw new TypeError("Third argument must be a Function");if(c.node(t))return i(t,e,n);if(c.nodeList(t))return o(t,e,n);if(c.string(t))return s(t,e,n);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}function i(t,e,n){return t.addEventListener(e,n),{destroy:function(){t.removeEventListener(e,n)}}}function o(t,e,n){return Array.prototype.forEach.call(t,function(t){t.addEventListener(e,n)}),{destroy:function(){Array.prototype.forEach.call(t,function(t){t.removeEventListener(e,n)})}}}function s(t,e,n){return a(document.body,t,e,n)}var c=t("./is"),a=t("delegate");e.exports=r},{"./is":3,delegate:2}],5:[function(t,e,n){function r(t){var e;if("SELECT"===t.nodeName)t.focus(),e=t.value;else if("INPUT"===t.nodeName||"TEXTAREA"===t.nodeName){var n=t.hasAttribute("readonly");n||t.setAttribute("readonly",""),t.select(),t.setSelectionRange(0,t.value.length),n||t.removeAttribute("readonly"),e=t.value}else{t.hasAttribute("contenteditable")&&t.focus();var r=window.getSelection(),i=document.createRange();i.selectNodeContents(t),r.removeAllRanges(),r.addRange(i),e=r.toString()}return e}e.exports=r},{}],6:[function(t,e,n){function r(){}r.prototype={on:function(t,e,n){var r=this.e||(this.e={});return(r[t]||(r[t]=[])).push({fn:e,ctx:n}),this},once:function(t,e,n){function r(){i.off(t,r),e.apply(n,arguments)}var i=this;return r._=e,this.on(t,r,n)},emit:function(t){var e=[].slice.call(arguments,1),n=((this.e||(this.e={}))[t]||[]).slice(),r=0,i=n.length;for(r;r<i;r++)n[r].fn.apply(n[r].ctx,e);return this},off:function(t,e){var n=this.e||(this.e={}),r=n[t],i=[];if(r&&e)for(var o=0,s=r.length;o<s;o++)r[o].fn!==e&&r[o].fn._!==e&&i.push(r[o]);return i.length?n[t]=i:delete n[t],this}},e.exports=r},{}],7:[function(e,n,r){!function(i,o){if("function"==typeof t&&t.amd)t(["module","select"],o);else if(void 0!==r)o(n,e("select"));else{var s={exports:{}};o(s,i.select),i.clipboardAction=s.exports}}(this,function(t,e){function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var r=function(t){return t&&t.__esModule?t:{default:t}}(e),i="function"==typeof Symbol&&"symbol"===c(Symbol.iterator)?function(t){return void 0===t?"undefined":c(t)}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":void 0===t?"undefined":c(t)},o=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),s=function(){function t(e){n(this,t),this.resolveOptions(e),this.initSelection()}return o(t,[{key:"resolveOptions",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.action=t.action,this.container=t.container,this.emitter=t.emitter,this.target=t.target,this.text=t.text,this.trigger=t.trigger,this.selectedText=""}},{key:"initSelection",value:function(){this.text?this.selectFake():this.target&&this.selectTarget()}},{key:"selectFake",value:function(){var t=this,e="rtl"==document.documentElement.getAttribute("dir");this.removeFake(),this.fakeHandlerCallback=function(){return t.removeFake()},this.fakeHandler=this.container.addEventListener("click",this.fakeHandlerCallback)||!0,this.fakeElem=document.createElement("textarea"),this.fakeElem.style.fontSize="12pt",this.fakeElem.style.border="0",this.fakeElem.style.padding="0",this.fakeElem.style.margin="0",this.fakeElem.style.position="absolute",this.fakeElem.style[e?"right":"left"]="-9999px";var n=window.pageYOffset||document.documentElement.scrollTop;this.fakeElem.style.top=n+"px",this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,this.container.appendChild(this.fakeElem),this.selectedText=(0,r.default)(this.fakeElem),this.copyText()}},{key:"removeFake",value:function(){this.fakeHandler&&(this.container.removeEventListener("click",this.fakeHandlerCallback),this.fakeHandler=null,this.fakeHandlerCallback=null),this.fakeElem&&(this.container.removeChild(this.fakeElem),this.fakeElem=null)}},{key:"selectTarget",value:function(){this.selectedText=(0,r.default)(this.target),this.copyText()}},{key:"copyText",value:function(){var t=void 0;try{t=document.execCommand(this.action)}catch(e){t=!1}this.handleResult(t)}},{key:"handleResult",value:function(t){this.emitter.emit(t?"success":"error",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})}},{key:"clearSelection",value:function(){this.trigger&&this.trigger.focus(),window.getSelection().removeAllRanges()}},{key:"destroy",value:function(){this.removeFake()}},{key:"action",set:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"copy";if(this._action=t,"copy"!==this._action&&"cut"!==this._action)throw new Error('Invalid "action" value, use either "copy" or "cut"')},get:function(){return this._action}},{key:"target",set:function(t){if(void 0!==t){if(!t||"object"!==(void 0===t?"undefined":i(t))||1!==t.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===this.action&&t.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===this.action&&(t.hasAttribute("readonly")||t.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');this._target=t}},get:function(){return this._target}}]),t}();t.exports=s})},{select:5}],8:[function(e,n,r){!function(i,o){if("function"==typeof t&&t.amd)t(["module","./clipboard-action","tiny-emitter","good-listener"],o);else if(void 0!==r)o(n,e("./clipboard-action"),e("tiny-emitter"),e("good-listener"));else{var s={exports:{}};o(s,i.clipboardAction,i.tinyEmitter,i.goodListener),i.clipboard=s.exports}}(this,function(t,e,n,r){function i(t){return t&&t.__esModule?t:{default:t}}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!==(void 0===e?"undefined":c(e))&&"function"!=typeof e?t:e}function a(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+(void 0===e?"undefined":c(e)));t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function u(t,e){var n="data-clipboard-"+t;if(e.hasAttribute(n))return e.getAttribute(n)}var l=i(e),f=i(n),d=i(r),p="function"==typeof Symbol&&"symbol"===c(Symbol.iterator)?function(t){return void 0===t?"undefined":c(t)}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":void 0===t?"undefined":c(t)},h=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),v=function(t){function e(t,n){o(this,e);var r=s(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return r.resolveOptions(n),r.listenClick(t),r}return a(e,t),h(e,[{key:"resolveOptions",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof t.action?t.action:this.defaultAction,this.target="function"==typeof t.target?t.target:this.defaultTarget,this.text="function"==typeof t.text?t.text:this.defaultText,this.container="object"===p(t.container)?t.container:document.body}},{key:"listenClick",value:function(t){var e=this;this.listener=(0,d.default)(t,"click",function(t){return e.onClick(t)})}},{key:"onClick",value:function(t){var e=t.delegateTarget||t.currentTarget;this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new l.default({action:this.action(e),target:this.target(e),text:this.text(e),container:this.container,trigger:e,emitter:this})}},{key:"defaultAction",value:function(t){return u("action",t)}},{key:"defaultTarget",value:function(t){var e=u("target",t);if(e)return document.querySelector(e)}},{key:"defaultText",value:function(t){return u("text",t)}},{key:"destroy",value:function(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)}}],[{key:"isSupported",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["copy","cut"],e="string"==typeof t?[t]:t,n=!!document.queryCommandSupported;return e.forEach(function(t){n=n&&!!document.queryCommandSupported(t)}),n}}]),e}(f.default);t.exports=v})},{"./clipboard-action":7,"good-listener":4,"tiny-emitter":6}]},{},[8])(8)})},function(t,e,n){"use strict";n(21),n(59),n(60),n(61),n(62),n(67),n(68),n(69),n(70),n(71)},function(t,e,n){"use strict";var r=n(0),i=function(t){return t&&t.__esModule?t:{default:t}}(r);!function(t){var e={modules:[],init:function(){function e(t){var e=t.find(".wphb-score-result-label"),n=parseInt(e.text(),10)||100,r=t.find(".wphb-score-graph-result"),i=void 0,o=void 0,s=void 0;i=r.attr("r"),o=Math.PI*(2*i),n<0&&(n=0),n>100&&(n=100),s=(100-n)/100*o,r.css({strokeDashoffset:s})}function n(){t(".wphb-performance-report-overall-score").each(function(){e(t(this))}),t(".wphb-performance-report-current-score").each(function(){e(t(this))}),t(".wphb-performance-report-item-score").each(function(){e(t(this))})}t("body").on("change",".mobile-nav",function(){var e=t(this).val();e.length>0&&(location.href=e)}),t("#wphb-dismissable").on("click",".close",function(){var e=t(this).parent().attr("data-id");i.default.notice.dismiss(e)}),window.register_events_performance=function(){setTimeout(n,500)},t(function(){setTimeout(n,500)})},initModule:function(t){return this.hasOwnProperty(t)?(this.modules[t]=this[t].init(),this.modules[t]):{}},getModule:function(t){return void 0!==this.modules[t]?this.modules[t]:this.initModule(t)}};e.utils={membershipModal:{open:function(){t("#wphb-upgrade-membership-modal-link").trigger("click")}},post:function(e,n){return e.action="wphb_ajax",e.module=n,t.ajax({url:ajaxurl,method:"POST",data:e})}},e.notices={init:function(){t(".wphb-notice:not(.notice) a.wphb-dismiss").click(function(e){e.preventDefault();t(this).data("id"),t(this).data("nonce");t(this).parent(".error").hide()})}},window.WPHB_Admin=e}(jQuery)},function(t,e,n){var r=n(6),i=n(31),o=n(32),s=n(4),c=n(17),a=n(41),u=Object.prototype,l=u.hasOwnProperty,f=o(function(t,e){if(c(e)||s(e))return void i(e,a(e),t);for(var n in e)l.call(e,n)&&r(t,n,e[n])});t.exports=f},function(t,e,n){function r(t,e){var n=o(t,e);return i(n)?n:void 0}var i=n(24),o=n(30);t.exports=r},function(t,e,n){function r(t){return!(!s(t)||o(t))&&(i(t)?h:u).test(c(t))}var i=n(9),o=n(27),s=n(3),c=n(29),a=/[\\^$.*+?()[\]{}|]/g,u=/^\[object .+?Constructor\]$/,l=Function.prototype,f=Object.prototype,d=l.toString,p=f.hasOwnProperty,h=RegExp("^"+d.call(p).replace(a,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");t.exports=r},function(t,e,n){function r(t){var e=s.call(t,a),n=t[a];try{t[a]=void 0;var r=!0}catch(t){}var i=c.call(t);return r&&(e?t[a]=n:delete t[a]),i}var i=n(10),o=Object.prototype,s=o.hasOwnProperty,c=o.toString,a=i?i.toStringTag:void 0;t.exports=r},function(t,e){function n(t){return i.call(t)}var r=Object.prototype,i=r.toString;t.exports=n},function(t,e,n){function r(t){return!!o&&o in t}var i=n(28),o=function(){var t=/[^.]+$/.exec(i&&i.keys&&i.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();t.exports=r},function(t,e,n){var r=n(2),i=r["__core-js_shared__"];t.exports=i},function(t,e){function n(t){if(null!=t){try{return i.call(t)}catch(t){}try{return t+""}catch(t){}}return""}var r=Function.prototype,i=r.toString;t.exports=n},function(t,e){function n(t,e){return null==t?void 0:t[e]}t.exports=n},function(t,e,n){function r(t,e,n,r){var s=!n;n||(n={});for(var c=-1,a=e.length;++c<a;){var u=e[c],l=r?r(n[u],t[u],u,n,t):void 0;void 0===l&&(l=t[u]),s?o(n,u,l):i(n,u,l)}return n}var i=n(6),o=n(7);t.exports=r},function(t,e,n){function r(t){return i(function(e,n){var r=-1,i=n.length,s=i>1?n[i-1]:void 0,c=i>2?n[2]:void 0;for(s=t.length>3&&"function"==typeof s?(i--,s):void 0,c&&o(n[0],n[1],c)&&(s=i<3?void 0:s,i=1),e=Object(e);++r<i;){var a=n[r];a&&t(e,a,r,s)}return e})}var i=n(33),o=n(40);t.exports=r},function(t,e,n){function r(t,e){return s(o(t,e,i),t+"")}var i=n(14),o=n(34),s=n(36);t.exports=r},function(t,e,n){function r(t,e,n){return e=o(void 0===e?t.length-1:e,0),function(){for(var r=arguments,s=-1,c=o(r.length-e,0),a=Array(c);++s<c;)a[s]=r[e+s];s=-1;for(var u=Array(e+1);++s<e;)u[s]=r[s];return u[e]=n(a),i(t,this,u)}}var i=n(35),o=Math.max;t.exports=r},function(t,e){function n(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)}t.exports=n},function(t,e,n){var r=n(37),i=n(39),o=i(r);t.exports=o},function(t,e,n){var r=n(38),i=n(8),o=n(14),s=i?function(t,e){return i(t,"toString",{configurable:!0,enumerable:!1,value:r(e),writable:!0})}:o;t.exports=s},function(t,e){function n(t){return function(){return t}}t.exports=n},function(t,e){function n(t){var e=0,n=0;return function(){var s=o(),c=i-(s-n);if(n=s,c>0){if(++e>=r)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}var r=800,i=16,o=Date.now;t.exports=n},function(t,e,n){function r(t,e,n){if(!c(n))return!1;var r=typeof e;return!!("number"==r?o(n)&&s(e,n.length):"string"==r&&e in n)&&i(n[e],t)}var i=n(13),o=n(4),s=n(16),c=n(3);t.exports=r},function(t,e,n){function r(t){return s(t)?i(t):o(t)}var i=n(42),o=n(53),s=n(4);t.exports=r},function(t,e,n){function r(t,e){var n=s(t),r=!n&&o(t),l=!n&&!r&&c(t),d=!n&&!r&&!l&&u(t),p=n||r||l||d,h=p?i(t.length,String):[],v=h.length;for(var m in t)!e&&!f.call(t,m)||p&&("length"==m||l&&("offset"==m||"parent"==m)||d&&("buffer"==m||"byteLength"==m||"byteOffset"==m)||a(m,v))||h.push(m);return h}var i=n(43),o=n(44),s=n(46),c=n(47),a=n(16),u=n(49),l=Object.prototype,f=l.hasOwnProperty;t.exports=r},function(t,e){function n(t,e){for(var n=-1,r=Array(t);++n<t;)r[n]=e(n);return r}t.exports=n},function(t,e,n){var r=n(45),i=n(5),o=Object.prototype,s=o.hasOwnProperty,c=o.propertyIsEnumerable,a=r(function(){return arguments}())?r:function(t){return i(t)&&s.call(t,"callee")&&!c.call(t,"callee")};t.exports=a},function(t,e,n){function r(t){return o(t)&&i(t)==s}var i=n(1),o=n(5),s="[object Arguments]";t.exports=r},function(t,e){var n=Array.isArray;t.exports=n},function(t,e,n){(function(t){var r=n(2),i=n(48),o="object"==typeof e&&e&&!e.nodeType&&e,s=o&&"object"==typeof t&&t&&!t.nodeType&&t,c=s&&s.exports===o,a=c?r.Buffer:void 0,u=a?a.isBuffer:void 0,l=u||i;t.exports=l}).call(e,n(18)(t))},function(t,e){function n(){return!1}t.exports=n},function(t,e,n){var r=n(50),i=n(51),o=n(52),s=o&&o.isTypedArray,c=s?i(s):r;t.exports=c},function(t,e,n){function r(t){return s(t)&&o(t.length)&&!!c[i(t)]}var i=n(1),o=n(15),s=n(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=r},function(t,e){function n(t){return function(e){return t(e)}}t.exports=n},function(t,e,n){(function(t){var r=n(11),i="object"==typeof e&&e&&!e.nodeType&&e,o=i&&"object"==typeof t&&t&&!t.nodeType&&t,s=o&&o.exports===i,c=s&&r.process,a=function(){try{return c&&c.binding&&c.binding("util")}catch(t){}}();t.exports=a}).call(e,n(18)(t))},function(t,e,n){function r(t){if(!i(t))return o(t);var e=[];for(var n in Object(t))c.call(t,n)&&"constructor"!=n&&e.push(n);return e}var i=n(17),o=n(54),s=Object.prototype,c=s.hasOwnProperty;t.exports=r},function(t,e,n){var r=n(55),i=r(Object.keys,Object);t.exports=i},function(t,e){function n(t,e){return function(n){return t(e(n))}}t.exports=n},function(t,e,n){(function(e,r){/*!
8
  * @overview es6-promise - a tiny implementation of Promises/A+.
9
  * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)
10
  * @license Licensed under MIT license
11
  * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE
12
- * @version 4.1.1
13
  */
14
- !function(e,n){t.exports=n()}(0,function(){"use strict";function t(t){var e=typeof t;return null!==t&&("object"===e||"function"===e)}function i(t){return"function"==typeof t}function o(t){Q=t}function s(t){q=t}function c(){return void 0!==z?function(){z(u)}:a()}function a(){var t=setTimeout;return function(){return t(u,1)}}function u(){for(var t=0;t<N;t+=2){(0,X[t])(X[t+1]),X[t]=void 0,X[t+1]=void 0}N=0}function l(t,e){var n=arguments,r=this,i=new this.constructor(d);void 0===i[tt]&&E(i);var o=r._state;return o?function(){var t=n[o-1];q(function(){return A(o,i,t,r._result)})}():x(r,i,t,e),i}function f(t){var e=this;if(t&&"object"==typeof t&&t.constructor===e)return t;var n=new e(d);return w(n,t),n}function d(){}function p(){return new TypeError("You cannot resolve a promise with itself")}function h(){return new TypeError("A promises callback cannot return that same promise.")}function v(t){try{return t.then}catch(t){return it.error=t,it}}function m(t,e,n,r){try{t.call(e,n,r)}catch(t){return t}}function b(t,e,n){q(function(t){var r=!1,i=m(n,e,function(n){r||(r=!0,e!==n?w(t,n):S(t,n))},function(e){r||(r=!0,k(t,e))},"Settle: "+(t._label||" unknown promise"));!r&&i&&(r=!0,k(t,i))},t)}function g(t,e){e._state===nt?S(t,e._result):e._state===rt?k(t,e._result):x(e,void 0,function(e){return w(t,e)},function(e){return k(t,e)})}function y(t,e,n){e.constructor===t.constructor&&n===l&&e.constructor.resolve===f?g(t,e):n===it?(k(t,it.error),it.error=null):void 0===n?S(t,e):i(n)?b(t,e,n):S(t,e)}function w(e,n){e===n?k(e,p()):t(n)?y(e,n,v(n)):S(e,n)}function _(t){t._onerror&&t._onerror(t._result),T(t)}function S(t,e){t._state===et&&(t._result=e,t._state=nt,0!==t._subscribers.length&&q(T,t))}function k(t,e){t._state===et&&(t._state=rt,t._result=e,q(_,t))}function x(t,e,n,r){var i=t._subscribers,o=i.length;t._onerror=null,i[o]=e,i[o+nt]=n,i[o+rt]=r,0===o&&t._state&&q(T,t)}function T(t){var e=t._subscribers,n=t._state;if(0!==e.length){for(var r=void 0,i=void 0,o=t._result,s=0;s<e.length;s+=3)r=e[s],i=e[s+n],r?A(n,r,i,o):i(o);t._subscribers.length=0}}function j(){this.error=null}function C(t,e){try{return t(e)}catch(t){return ot.error=t,ot}}function A(t,e,n,r){var o=i(n),s=void 0,c=void 0,a=void 0,u=void 0;if(o){if(s=C(n,r),s===ot?(u=!0,c=s.error,s.error=null):a=!0,e===s)return void k(e,h())}else s=r,a=!0;e._state!==et||(o&&a?w(e,s):u?k(e,c):t===nt?S(e,s):t===rt&&k(e,s))}function O(t,e){try{e(function(e){w(t,e)},function(e){k(t,e)})}catch(e){k(t,e)}}function P(){return st++}function E(t){t[tt]=st++,t._state=void 0,t._result=void 0,t._subscribers=[]}function $(t,e){this._instanceConstructor=t,this.promise=new t(d),this.promise[tt]||E(this.promise),U(e)?(this.length=e.length,this._remaining=e.length,this._result=new Array(this.length),0===this.length?S(this.promise,this._result):(this.length=this.length||0,this._enumerate(e),0===this._remaining&&S(this.promise,this._result))):k(this.promise,I())}function I(){return new Error("Array Methods must be provided an Array")}function D(t){return new $(this,t).promise}function B(t){var e=this;return new e(U(t)?function(n,r){for(var i=t.length,o=0;o<i;o++)e.resolve(t[o]).then(n,r)}:function(t,e){return e(new TypeError("You must pass an array to race."))})}function M(t){var e=this,n=new e(d);return k(n,t),n}function F(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}function L(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}function H(t){this[tt]=P(),this._result=this._state=void 0,this._subscribers=[],d!==t&&("function"!=typeof t&&F(),this instanceof H?O(this,t):L())}function R(){var t=void 0;if(void 0!==r)t=r;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 e=t.Promise;if(e){var n=null;try{n=Object.prototype.toString.call(e.resolve())}catch(t){}if("[object Promise]"===n&&!e.cast)return}t.Promise=H}var W=void 0;W=Array.isArray?Array.isArray:function(t){return"[object Array]"===Object.prototype.toString.call(t)};var U=W,N=0,z=void 0,Q=void 0,q=function(t,e){X[N]=t,X[N+1]=e,2===(N+=2)&&(Q?Q(u):Z())},V="undefined"!=typeof window?window:void 0,Y=V||{},J=Y.MutationObserver||Y.WebKitMutationObserver,K="undefined"==typeof self&&void 0!==e&&"[object process]"==={}.toString.call(e),G="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel,X=new Array(1e3),Z=void 0;Z=K?function(){return function(){return e.nextTick(u)}}():J?function(){var t=0,e=new J(u),n=document.createTextNode("");return e.observe(n,{characterData:!0}),function(){n.data=t=++t%2}}():G?function(){var t=new MessageChannel;return t.port1.onmessage=u,function(){return t.port2.postMessage(0)}}():void 0===V?function(){try{var t=n(58);return z=t.runOnLoop||t.runOnContext,c()}catch(t){return a()}}():a();var tt=Math.random().toString(36).substring(16),et=void 0,nt=1,rt=2,it=new j,ot=new j,st=0;return $.prototype._enumerate=function(t){for(var e=0;this._state===et&&e<t.length;e++)this._eachEntry(t[e],e)},$.prototype._eachEntry=function(t,e){var n=this._instanceConstructor,r=n.resolve;if(r===f){var i=v(t);if(i===l&&t._state!==et)this._settledAt(t._state,e,t._result);else if("function"!=typeof i)this._remaining--,this._result[e]=t;else if(n===H){var o=new n(d);y(o,t,i),this._willSettleAt(o,e)}else this._willSettleAt(new n(function(e){return e(t)}),e)}else this._willSettleAt(r(t),e)},$.prototype._settledAt=function(t,e,n){var r=this.promise;r._state===et&&(this._remaining--,t===rt?k(r,n):this._result[e]=n),0===this._remaining&&S(r,this._result)},$.prototype._willSettleAt=function(t,e){var n=this;x(t,void 0,function(t){return n._settledAt(nt,e,t)},function(t){return n._settledAt(rt,e,t)})},H.all=D,H.race=B,H.resolve=f,H.reject=M,H._setScheduler=o,H._setAsap=s,H._asap=q,H.prototype={constructor:H,then:l,catch:function(t){return this.then(null,t)}},H.polyfill=R,H.Promise=H,H})}).call(e,n(57),n(12))},function(t,e){function n(){throw new Error("setTimeout has not been defined")}function r(){throw new Error("clearTimeout has not been defined")}function i(t){if(l===setTimeout)return setTimeout(t,0);if((l===n||!l)&&setTimeout)return l=setTimeout,setTimeout(t,0);try{return l(t,0)}catch(e){try{return l.call(null,t,0)}catch(e){return l.call(this,t,0)}}}function o(t){if(f===clearTimeout)return clearTimeout(t);if((f===r||!f)&&clearTimeout)return f=clearTimeout,clearTimeout(t);try{return f(t)}catch(e){try{return f.call(null,t)}catch(e){return f.call(this,t)}}}function s(){v&&p&&(v=!1,p.length?h=p.concat(h):m=-1,h.length&&c())}function c(){if(!v){var t=i(s);v=!0;for(var e=h.length;e;){for(p=h,h=[];++m<e;)p&&p[m].run();m=-1,e=h.length}p=null,v=!1,o(t)}}function a(t,e){this.fun=t,this.array=e}function u(){}var l,f,d=t.exports={};!function(){try{l="function"==typeof setTimeout?setTimeout:n}catch(t){l=n}try{f="function"==typeof clearTimeout?clearTimeout:r}catch(t){f=r}}();var p,h=[],v=!1,m=-1;d.nextTick=function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)e[n-1]=arguments[n];h.push(new a(t,e)),1!==h.length||v||i(c)},a.prototype.run=function(){this.fun.apply(null,this.array)},d.title="browser",d.browser=!0,d.env={},d.argv=[],d.version="",d.versions={},d.on=u,d.addListener=u,d.once=u,d.off=u,d.removeListener=u,d.removeAllListeners=u,d.emit=u,d.prependListener=u,d.prependOnceListener=u,d.listeners=function(t){return[]},d.binding=function(t){throw new Error("process.binding is not supported")},d.cwd=function(){return"/"},d.chdir=function(t){throw new Error("process.chdir is not supported")},d.umask=function(){return 0}},function(t,e){},function(t,e,n){"use strict";var r=n(0),i=function(t){return t&&t.__esModule?t:{default:t}}(r);!function(t){WPHB_Admin.performance={module:"performance",iteration:0,progress:0,init:function(){var e=this,n=t("body");wphbPerformanceStrings&&(this.strings=wphbPerformanceStrings),this.$runTestButton=t("#run-performance-test");var r=t(".performance-report-table");r.off("click","button"),r.on("click","tr.wphb-performance-report-item",function(e){e.preventDefault();var n=t(this).closest(".wphb-performance-report-item"),r=n.nextUntil(".wphb-performance-report-item");r.toggleClass("wphb-performance-report-item-additional-content-opened"),r.hasClass("wphb-performance-report-item-additional-content-opened")?n.addClass("wphb-performance-report-item-opened"):n.removeClass("wphb-performance-report-item-opened")}),this.$runTestButton.length&&this.$runTestButton.click(function(n){n.preventDefault(),window.WDP.showOverlay("#run-performance-test-modal",{class:"wphb-modal small wphb-progress-modal no-close"}),t(this).attr("disabled",!0),e.performanceTest(e.strings.finishedTestURLsLink)});var o=window.location.hash;if(o){var s=t(o);s.length&&s.find(".trigger-additional-content").trigger("click")}return t('select[name="email-frequency"]').change(function(){"1"===t(this).val()?t(this).closest(".schedule-box").find("div.days-container").hide():t(this).closest(".schedule-box").find("div.days-container").show()}).change(),n.on("click",".wphb-remove-recipient",function(e){e.preventDefault(),t(this).closest(".recipient").remove(),t(".scan-settings").find("input[id='scan_recipient'][value="+t(this).attr("data-id")+"]").remove()}),t("#add-receipt").click(function(){var n=t("#wphb-username-search").val(),r=t("#wphb-first-name").val();return i.default.performance.addRecipient(n,r).then(function(r){var i=t('<div class="recipient"/>'),o=t("<img/>").attr({src:r.avatar,width:"30"}),s=t("<span/>").html(r.name);i.append('<span class="name"/>'),i.find(".name").append(o,s),i.append(t('<span class="email"/>').html(n)),i.append(t("<a/>").attr({"data-id":r.user_id,class:"remove float-r wphb-remove-recipient",href:"#",alt:e.strings.removeButtonText}).html('<i class="dev-icon dev-icon-cross"></i>')),t("<input>").attr({type:"hidden",id:"scan_recipient",name:"email-recipients[]",value:JSON.stringify({email:r.email,name:r.name})}).appendTo(i),t(".receipt .recipients").append(i),t("#wphb-username-search").val(""),t("#wphb-first-name").val("")}).catch(function(t){alert(t.message)}),!1}),n.on("submit",".scan-frm",function(n){n.preventDefault();var r=t(this).serialize(),o=t(this);return o.find(".button").attr("disabled","disabled"),i.default.performance.saveReportsSettings(r).then(function(){o.find(".button").removeAttr("disabled"),e.showUpdateMessage()}),!1}),this},showUpdateMessage:function(){var e=t("#wphb-notice-performance-report-settings-updated");window.scrollTo(0,0),e.slideDown(),setTimeout(function(){e.slideUp()},5e3)},performanceTest:function(t){var e=this;void 0===t&&(t=!1),e.updateProgressBar(),i.default.performance.runTest().then(function(n){n.finished?t&&(window.location=t):window.setTimeout(function(){e.performanceTest(t)},5e3)})},updateProgressBar:function(){this.progress<90&&(this.progress+=35),this.progress>100&&(this.progress=90),t(".wphb-scan-progress .wphb-scan-progress-text span").text(this.progress+"%"),t(".wphb-scan-progress .wphb-scan-progress-bar span").attr("style","width:"+this.progress+"%")}}}(jQuery)},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}var i=n(0),o=r(i),s=n(19),c=r(s);!function(t){WPHB_Admin.gzip={module:"gzip",selectedServer:"",$serverSelector:null,$serverInstructions:[],init:function(){var e=this;this.$serverSelector=t("#wphb-server-type"),this.selectedServer=this.$serverSelector.val();var n=t(".wphb-server-instructions"),r=t("#configure-gzip-link"),i=t("#troubleshooting-link"),o=t("#troubleshooting-link-litespeed");return new c.default(".wphb-code-snippet .button"),n.each(function(){e.$serverInstructions[t(this).data("server")]=t(this)}),this.showServerInstructions(this.selectedServer),this.$serverSelector.change(function(){var n=t(this).val();e.hideCurrentInstructions(),e.showServerInstructions(n),e.setServer(n),e.selectedServer=n,e.updateTabSize()}),r.on("click",function(e){e.preventDefault(),t("html, body").animate({scrollTop:t("#wphb-box-gzip-settings").offset().top-50},"slow")}),i.on("click",function(e){e.preventDefault(),t("html, body").animate({scrollTop:t("#troubleshooting-gzip").offset().top},"slow")}),o.on("click",function(e){e.preventDefault(),t("html, body").animate({scrollTop:t("#troubleshooting-gzip-litespeed").offset().top},"slow")}),t(".tab label").on("click",function(){t(this).parent().parent().find(".tab label.active").removeClass("active"),t(this).addClass("active")}),t(".switch-manual").on("click",function(){var n=e.selectedServer.toLowerCase();t("#wphb-server-instructions-"+n).find(".tab label.active").first().removeClass("active"),t(this).parents().find("#"+n+"-config-manual").prev().addClass("active")}),this},hideCurrentInstructions:function(){var t=this.selectedServer;this.$serverInstructions[t]&&this.$serverInstructions[t].hide()},showServerInstructions:function(e){void 0!==this.$serverInstructions[e]&&this.$serverInstructions[e].show(),"apache"===e||"LiteSpeed"===e?t("#enable-cache-wrap").show():t("#enable-cache-wrap").hide()},updateTabSize:function(){var e=t("#wphb-server-instructions-"+this.selectedServer.toLowerCase()).find(".tabs"),n=e.find(".tab > input:checked").parent(),r=n.find(".content");e.height(r.outerHeight()+n.outerHeight()-6)},setServer:function(t){o.default.caching.setServer(t)}}}(jQuery)},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}var i=n(19),o=r(i),s=n(0),c=r(s);!function(t){WPHB_Admin.caching={module:"caching",selectedServer:"",$serverSelector:null,$serverInstructions:[],$snippets:[],init:function(){var e=this,n=t("#wphb-box-caching-settings #connect-cloudflare-link");new o.default(".wphb-code-snippet .button"),wphbCachingStrings&&(e.strings=wphbCachingStrings),n.on("click",function(n){n.preventDefault(),t("#wphb-server-type").val("cloudflare").trigger("wpmu:change"),e.hideCurrentInstructions(),e.setServer("cloudflare"),e.showServerInstructions("cloudflare"),e.selectedServer="cloudflare",t("html, body").animate({scrollTop:t("#cloudflare-steps").offset().top},"slow")}),this.$serverSelector=t("#wphb-server-type"),this.selectedServer=this.$serverSelector.val(),e.$snippets.apache=t("#wphb-code-snippet-apache").find("pre").first(),e.$snippets.LiteSpeed=t("#wphb-code-snippet-litespeed").find("pre").first(),e.$snippets.nginx=t("#wphb-code-snippet-nginx").find("pre").first(),t(".wphb-server-instructions").each(function(){e.$serverInstructions[t(this).data("server")]=t(this)}),this.showServerInstructions(this.selectedServer),this.$serverSelector.change(function(){var n=t(this).val();e.hideCurrentInstructions(),e.showServerInstructions(n),e.setServer(n),e.selectedServer=n,e.updateTabSize(),t(".hb-server-type").val(n)});var r=t("input[name='expiry-set-type']"),i=t(".settings-form");return r.each(function(){this.checked&&("expiry-all-types"===t(this).attr("id")?(i.find("[data='expiry-single-type']").hide(),i.find("[data='expiry-all-types']").show()):"expiry-single-type"===t(this).attr("id")&&(i.find("[data='expiry-all-types']").hide(),i.find("[data='expiry-single-type']").show()))}),r.on("click",function(){"expiry-all-types"===t(this).attr("id")?(i.find("[data='expiry-single-type']").hide(),i.find("[data='expiry-all-types']").show()):"expiry-single-type"===t(this).attr("id")&&(i.find("[data='expiry-all-types']").hide(),i.find("[data='expiry-single-type']").show())}),t(".tab label").on("click",function(){t(this).parent().parent().find(".tab label.active").removeClass("active"),t(this).addClass("active")}),this},setServer:function(t){c.default.caching.setServer(t)},updateTabSize:function(){var e=t("#wphb-server-instructions-"+this.selectedServer.toLowerCase()).find(".tabs"),n=e.find(".tab > input:checked").parent(),r=n.find(".content");e.height(r.outerHeight()+n.outerHeight()-6)},hideCurrentInstructions:function(){var t=this.selectedServer;this.$serverInstructions[t]&&this.$serverInstructions[t].hide()},showServerInstructions:function(e){if(void 0!==this.$serverInstructions[e]){var n=this.$serverInstructions[e];n.show(),n.find(".tab:first-child > label").trigger("click")}"apache"===e||"LiteSpeed"===e?t(".enable-cache-wrap-"+e).show():t("#enable-cache-wrap").hide()}}}(jQuery)},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}var i=n(0),o=r(i),s=n(63),c=n(64),a=r(c),u=n(65),l=r(u),f=n(66),d=r(f);!function(t){WPHB_Admin.minification={$checkFilesButton:null,$checkFilesResultsContainer:null,module:"minification",checkURLSList:null,checkedURLS:0,$spinner:null,init:function(){var e=this,n=this;this.scanner=new d.default(wphb.minification.get.totalSteps,wphb.minification.get.currentScanStep),this.scanner.onFinishStep=this.updateProgressBar,this.scanner.onFinish=function(n){e.updateProgressBar(100),wphb.minification.get.showCDNModal&&!0===n.show_cdn&&t("#enable-cdn-modal").length?window.WDP.showOverlay("#enable-cdn-modal",{class:"wphb-modal small wphb-progress-modal no-close"}):window.location.href=(0,s.getLink)("minification")},this.$checkFilesButton=t("#check-files"),this.$spinner=t(".spinner"),this.$checkFilesButton.length&&this.$checkFilesButton.click(function(e){e.preventDefault(),window.WDP.showOverlay("#check-files-modal",{class:"wphb-modal small wphb-progress-modal no-close"}),t(this).attr("disabled",!0),n.updateProgressBar(n.scanner.getProgress()),n.scanner.scan()}),t("body").on("click","#cancel-minification-check",function(t){t.preventDefault(),e.updateProgressBar(0,!0),e.scanner.cancel().then(function(){window.location.href=(0,s.getLink)("minification")})}),t("#wphb-minification-filter-button").on("click",function(e){e.preventDefault(),t("#wphb-minification-filter").toggle("slow")}),t(".wphb-discard").click(function(t){return t.preventDefault(),confirm((0,s.__)("discardAlert"))&&location.reload(),!1}),t(".wphb-enqueued-files input").on("change",function(){t(".wphb-discard").attr("disabled",!1)}),t("#use_cdn").change(function(){var e=t(this).is(":checked");o.default.minification.toggleCDN(e).then(function(){var e=t("#wphb-notice-minification-advanced-settings-updated");e.slideDown(),setTimeout(function(){e.slideUp()},5e3)})}),this.rowsCollection=new WPHB_Admin.minification.RowsCollection,t(".wphb-border-row").each(function(e,r){var i=void 0;i=t(r).data("filter-secondary")?new WPHB_Admin.minification.Row(t(r),t(r).data("filter"),t(r).data("filter-secondary")):new WPHB_Admin.minification.Row(t(r),t(r).data("filter")),n.rowsCollection.push(i)}),t("#wphb-s").keyup(function(){n.rowsCollection.addFilter(t(this).val(),"primary"),n.rowsCollection.applyFilters()}),t("#wphb-secondary-filter").change(function(){n.rowsCollection.addFilter(t(this).val(),"secondary"),n.rowsCollection.applyFilters()}),t(".filter-toggles").change(function(){var e=t(this),r=e.data("toggles"),i=e.prop("checked"),o=n.rowsCollection.getVisibleItems();for(var s in o)o[s].change(r,i)}),t("input.wphb-minification-file-selector").click(function(){var e=t(this),r=n.rowsCollection.getItemById(e.data("type"),e.data("handle"));r&&(e.is(":checked")?r.select():r.unSelect())}),t("#minification-bulk-file").click(function(){var e=t(this),r=n.rowsCollection.getItems();for(var i in r)r.hasOwnProperty(i)&&(e.is(":checked")?r[i].select():r[i].unSelect())}),t(".toggle-cross").on("click",function(){var e=t(this),r=e.find("input.toggle-include"),i=n.rowsCollection.getItemById(e.data("type"),e.data("handle"));i&&(i.change("include",!r.prop("checked")),i.getElement().find("input:not(.toggle-include)").prop("disabled",!r.prop("checked")))});var r=t("input[type=checkbox][name=use_cdn]");r.change(function(){var e=t(this).prop("checked");r.each(function(){this.checked=e})}),t("body").on("click",".wphb-minification-file-details",function(){window.innerWidth<783&&t(this).parent().find(".wphb-minification-row-details").toggle("slow")});var i=_.debounce(function(){window.innerWidth>=783?t(".wphb-minification-row-details").css("display","flex"):t(".wphb-minification-row-details").css("display","none")},250);return window.addEventListener("resize",i),this},updateProgressBar:function(e){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];e>100&&(e=100),t(".wphb-scan-progress .wphb-scan-progress-text span").text(e+"%"),t(".wphb-scan-progress .wphb-scan-progress-bar span").width(e+"%"),e>=90&&t(".wphb-progress-state .wphb-progress-state-text").text("Finalizing..."),n&&t(".wphb-progress-state .wphb-progress-state-text").text("Cancelling...")}},WPHB_Admin.minification.Row=a.default,WPHB_Admin.minification.RowsCollection=l.default}(jQuery)},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});e.__=function(t){return wphb.strings[t]||""},e.getLink=function(t){return wphb.links[t]||""}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=function(t,e,n){var r=t,i=e.toLowerCase(),o=!1,s=!1,c=!0,a=r.find(".toggle-include"),u=r.find(".toggle-combine"),l=r.find(".toggle-minify"),f=r.find(".toggle-position-footer"),d=r.find(".toggle-defer"),p=r.find(".toggle-inline"),h=r.find(".toggle-cross > i");return n&&(o=n.toLowerCase()),{hide:function(){r.addClass("out-of-filter"),c=!1},show:function(){r.removeClass("out-of-filter"),c=!0},getElement:function(){return r},getId:function(){return r.attr("id")},getFilter:function(){return i},matchFilter:function(t){return""===t||(t=t.toLowerCase(),i.search(t)>-1)},matchSecondaryFilter:function(t){return""===t||!!o&&(t=t.toLowerCase(),o===t)},isVisible:function(){return c},isSelected:function(){return s},select:function(){s=!0},unSelect:function(){s=!1},change:function(t,e){switch(t){case"minify":l.prop("checked",e);break;case"combine":u.prop("checked",e);break;case"defer":d.prop("checked",e);break;case"inline":p.prop("checked",e);break;case"include":h.removeClass(),a.prop("checked",e),e?(r.removeClass("disabled"),h.addClass("dev-icon dev-icon-cross"),a.attr("checked",!0)):(r.addClass("disabled"),h.addClass("wdv-icon wdv-icon-refresh"),a.removeAttr("checked"));break;case"footer":f.prop("checked",e)}}}};e.default=r},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r="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},i=function(){var t=[],e="",n="";return{push:function(e){"object"===(void 0===e?"undefined":r(e))&&t.push(e)},getItems:function(){return t},getItem:function(e){return!!t[e]&&t[e]},getItemById:function(e,n){var r=!1;for(var i in t)if("wphb-file-"+e+"-"+n===t[i].getId()){r=t[i];break}return r},getVisibleItems:function(){var e=[];for(var n in t)t[n].isVisible()&&e.push(t[n]);return e},getSelectedItems:function(){var e=[];for(var n in t)t[n].isVisible()&&t[n].isSelected()&&e.push(t[n]);return e},addFilter:function(t,r){"secondary"===r?n=t:e=t},applyFilters:function(){for(var r in t)t[r]&&(t[r].matchFilter(e)&&t[r].matchSecondaryFilter(n)?t[r].show():t[r].hide())}}};e.default=i},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(0),i=function(t){return t&&t.__esModule?t:{default:t}}(r),o=function(t,e){t=parseInt(t),e=parseInt(e);var n=!1,r={scan:function(){var n=t-e;0!==e?o(n):i.default.minification.startCheck().then(function(){o(n)})},cancel:function(){return n=!0,i.default.minification.cancelScan()},getProgress:function(){if(n)return 0;var r=t-e;return Math.min(Math.round(100*parseInt(t-r)/t),99)},onFinishStep:function(t){},onFinish:function(t){}},o=function n(o){o>=0?(e=t-o,i.default.minification.checkStep(e).then(function(){o-=1,r.onFinishStep(r.getProgress()),n(o)})):i.default.minification.finishCheck().then(r.onFinish)};return r};e.default=o},function(t,e,n){"use strict";var r=n(0),i=function(t){return t&&t.__esModule?t:{default:t}}(r);!function(t){WPHB_Admin.dashboard={module:"dashboard",init:function(){var e=this,n=t("#dismiss-cf-notice"),r=t(".cf-dash-notice");return wphbDashboardStrings&&(this.strings=wphbDashboardStrings),t("#wphb-activate-minification").change(function(){var n=t(this).val();i.default.dashboard.toggleMinification(n).then(function(){var r=t('input[name="use_cdn"]');"false"===n?(r.prop("checked",!1),r.prop("disabled",!0)):r.prop("disabled",!1),e.showNotice()})}),t("#use_cdn").change(function(){var n=t(this).is(":checked");i.default.minification.toggleCDN(n).then(function(){e.showNotice()})}),t(".wphb-performance-report-item").click(function(){var e=t(this).data("performance-url");e&&(location.href=e)}),n.click(function(t){t.preventDefault(),i.default.notice.dismissCloudflareDash(),r.slideUp(),r.parent().addClass("no-background-image")}),this},showNotice:function(){var e=t("#wphb-notice-minification-settings-updated");e.slideDown(),setTimeout(function(){e.slideUp()},5e3)},startQuickSetup:function(){window.WDP.showOverlay("#wphb-quick-setup-modal",{class:"wphb-modal small wphb-quick-setup-modal no-close"})},skipSetup:function(){i.default.dashboard.skipSetup().then(function(){window.location.reload(!0)})},runPerformanceTest:function(){window.WDP.showOverlay("#run-performance-test-modal",{class:"wphb-modal small wphb-progress-modal no-close"}),window.WPHB_Admin.getModule("performance").performanceTest(this.strings.finishedTestURLsLink)}}}(jQuery)},function(t,e,n){"use strict";var r=n(0),i=function(t){return t&&t.__esModule?t:{default:t}}(r);!function(t){WPHB_Admin.DashboardCloudFlare={init:function(e){this.currentStep=e.currentStep,this.data=e,this.email=e.email,this.apiKey=e.apiKey,this.$stepsContainer=t("#cloudflare-steps"),this.$infoBox=t("#cloudflare-info"),this.$spinner=t(".cloudflare-spinner"),this.$deactivateButton=t(".cloudflare-deactivate.button"),this.renderStep(this.currentStep),t("body").on("click",".cloudflare-clear-cache.button",function(e){e.preventDefault(),this.purgeCache.apply(t(e.target),[this])}.bind(this))},purgeCache:function(e){var n=this;n.attr("disabled",!0),e.showSpinner(),i.default.cloudflare.purgeCache().then(function(){var r=t("#wphb-notice-cloudflare-purge-cache");window.scrollTo(0,0),r.slideDown(),setTimeout(function(){r.slideUp()},5e3),n.removeAttr("disabled"),e.hideSpinner()})},renderStep:function(e){var n=WPHB_Admin.DashboardCloudFlare.template("#cloudflare-step-"+e),r=n(this.data),i=this;r&&(this.currentStep=e,this.$stepsContainer.hide().html(n(this.data)).fadeIn().find("form").on("submit",function(e){e.preventDefault(),i.submitStep.call(i,t(this))}),this.$spinner=this.$stepsContainer.find(".cloudflare-spinner")),this.bindEvents()},bindEvents:function(){var e=t("#cloudflare-how-to");e.hide(),t("#cloudflare-how-to-title > a").click(function(t){t.preventDefault(),e.toggle()}),this.$stepsContainer.find("select").each(function(){window.WDP.wpmuSelect(this)}),"final"===this.currentStep?this.$deactivateButton.removeClass("hidden"):this.$deactivateButton.addClass("hidden")},emptyInfoBox:function(){this.$infoBox.html(""),this.$infoBox.removeClass()},showInfoBox:function(t){this.$infoBox.addClass("wphb-notice"),this.$infoBox.addClass("wphb-notice-error"),this.$infoBox.html(t+"")},showSpinner:function(){this.$spinner.css("visibility","visible")},hideSpinner:function(){this.$spinner.css("visibility","hidden")},submitStep:function(t){var e=this;t.find("input[type=submit]").attr("disabled","true"),this.emptyInfoBox(),this.showSpinner(),i.default.cloudflare.connect(this.currentStep,t.serialize(),this.data).then(function(t){e.data=t.newData,e.renderStep(t.nextStep),"final"===t.nextStep&&(window.location.href=t.redirect)}).catch(function(t){e.showInfoBox(t)}),t.find("input[type=submit]").removeAttr("disabled"),e.hideSpinner()}},WPHB_Admin.DashboardCloudFlare.template=_.memoize(function(e){var n=void 0,r={evaluate:/<#([\s\S]+?)#>/g,interpolate:/\{\{\{([\s\S]+?)\}\}\}/g,escape:/\{\{([^\}]+?)\}\}(?!\})/g,variable:"data"};return function(i){return _.templateSettings=r,(n=n||_.template(t(e).html()))(i)}})}(jQuery)},function(t,e,n){"use strict";!function(t){WPHB_Admin.uptime={module:"uptime",$dataRangeSelector:null,chartData:null,timer:null,$spinner:null,init:function(){this.$spinner=t(".spinner"),this.strings=wphbUptimeStrings,this.$dataRangeSelector=t("#wphb-uptime-data-range"),this.chartData=t("#uptime-chart-json").val(),this.$disableUptime=t("#wphb-disable-uptime"),this.$dataRangeSelector.change(function(){window.location.href=t(this).find(":selected").data("url")});var e=this;this.$disableUptime.change(function(){e.$spinner.css("visibility","visible"),t(this).is(":checked")&&e.timer?(clearTimeout(e.timer),e.$spinner.css("visibility","hidden")):e.timer=setTimeout(function(){location.href=e.strings.disableUptimeURL},3e3)}),this.drawChart(),t("#uptime-re-check-status").on("click",function(t){t.preventDefault(),location.reload()})},drawChart:function(){var e=new google.visualization.DataTable;e.addColumn("datetime","Day"),e.addColumn("number","Response Time (ms)");for(var n=JSON.parse(this.chartData),r=0;r<n.length;r++)n[r][0]=new Date(n[r][0]),n[r][1]=Math.round(n[r][1]),0==Math.round(n[r][1])&&(n[r][1]=-100);e.addRows(n);var i={chartArea:{left:80,top:20,width:"90%",height:"90%"},colors:["#24ADE5"],curveType:"function",legend:{position:"none"},vAxis:{format:"#,### ms",viewWindow:{min:0}},tooltip:{isHtml:!0},series:{0:{axis:"Resp"}},axes:{y:{Resp:{label:"Response Time (ms)"}}}},o=new google.visualization.LineChart(document.getElementById("uptime-chart"));o.draw(e,i),t(window).resize(function(){o.draw(e,i)})}}}(jQuery)},function(t,e,n){"use strict";var r=n(0),i=function(t){return t&&t.__esModule?t:{default:t}}(r);!function(t){WPHB_Admin.cloudflare={module:"cloudflare",$cfSelector:!1,$spinner:!1,init:function(){this.$spinner=t(".wphb-spinner"),this.$cfSelector=t("#set-expiry-all");var e=this;return wphb.cloudflare.is.connected&&this.$cfSelector.change(function(){e.setExpiry.call(e,[this])}),this},setExpiry:function(e){this.displaySpinner();var n=t(e).val();i.default.cloudflare.setExpiration(n).then(function(){window.location.reload()})},displaySpinner:function(){this.$spinner.css("visibility","visible")}}}(jQuery)},function(t,e,n){"use strict";jQuery(document).ready(function(){WPHB_Admin.init()})}]);
15
  //# sourceMappingURL=admin.min.js.map
1
+ !function(t){function e(i){if(n[i])return n[i].exports;var r=n[i]={i:i,l:!1,exports:{}};return t[i].call(r.exports,r,r.exports,e),r.l=!0,r.exports}var n={};e.m=t,e.c=n,e.d=function(t,n,i){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:i})},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,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=20)}([function(t,e,n){"use strict";function i(){function t(t){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"GET";o.nonce=i,o.action=t;var s={data:o,method:c};return s.url=e,new(0,n(56).Promise)(function(t,e){jQuery.ajax(s).done(t).fail(e)}).then(function(t){return r(t)})}var e=ajaxurl,i=wphb.nonces.HBFetchNonce,o={notice:{dismiss:function(e){return t("wphb_notice_dismiss",{id:e},"POST")},dismissCloudflareDash:function(){return t("wphb_cf_notice_dismiss",{},"POST")}},caching:{setExpiration:function(e,n){return t("wphb_caching_set_expiration",{type:e,expiry_times:n},"POST")},setServer:function(e){return t("wphb_caching_set_server_type",{value:e},"POST")},reloadSnippets:function(e,n){return t("wphb_caching_reload_snippet",{type:e,expiry_times:n},"POST").then(function(t){return t})}},cloudflare:{connect:function(e,n,i){return t("wphb_cloudflare_connect",{step:e,formData:n,cfData:i},"POST").then(function(t){return t})},setExpiration:function(e){return t("wphb_cloudflare_set_expiry",{value:e},"POST")},purgeCache:function(){return t("wphb_cloudflare_purge_cache",{},"POST")}},dashboard:{toggleMinification:function(e){return t("wphb_dash_toggle_network_minification",{value:e},"POST")},skipSetup:function(){return t("wphb_dash_skip_setup",{},"POST")}},minification:{toggleCDN:function(e){return t("wphb_minification_toggle_cdn",{value:e},"POST")},toggleMinification:function(e){return t("wphb_minification_toggle_minification",{value:e},"POST")},toggleView:function(e){return t("wphb_minification_toggle_view",{value:e},"POST")},startCheck:function(){return t("wphb_minification_start_check",{},"POST")},checkStep:function(e){return t("wphb_minification_check_step",{step:e},"POST").then(function(t){return t})},finishCheck:function(){return t("wphb_minification_finish_scan",{},"POST")},cancelScan:function(){return t("wphb_minification_cancel_scan",{},"POST")}},performance:{runTest:function(){return t("wphb_performance_run_test",{},"POST").then(function(t){return t})},addRecipient:function(e,n){return t("wphb_pro_performance_add_recipient",{email:e,name:n},"POST").then(function(t){return t})},saveReportsSettings:function(e){return t("wphb_pro_performance_save_reports_settings",{data:e},"POST")}}};(0,s.default)(this,o)}function r(t){if("object"!==(void 0===t?"undefined":o(t))&&(t=JSON.parse(t)),t.success)return t.data;var e=t.data||{},n=new Error(e.message||"Error trying to fetch response from server");throw n.response=t,n}Object.defineProperty(e,"__esModule",{value:!0});var o="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},c=n(22),s=function(t){return t&&t.__esModule?t:{default:t}}(c),a=new i;e.default=a},function(t,e,n){function i(t){return null==t?void 0===t?a:s:u&&u in Object(t)?o(t):c(t)}var r=n(10),o=n(25),c=n(26),s="[object Null]",a="[object Undefined]",u=r?r.toStringTag:void 0;t.exports=i},function(t,e,n){var i=n(11),r="object"==typeof self&&self&&self.Object===Object&&self,o=i||r||Function("return this")();t.exports=o},function(t,e){function n(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}t.exports=n},function(t,e,n){function i(t){return null!=t&&o(t.length)&&!r(t)}var r=n(9),o=n(15);t.exports=i},function(t,e){function n(t){return null!=t&&"object"==typeof t}t.exports=n},function(t,e,n){function i(t,e,n){var i=t[e];s.call(t,e)&&o(i,n)&&(void 0!==n||e in t)||r(t,e,n)}var r=n(7),o=n(13),c=Object.prototype,s=c.hasOwnProperty;t.exports=i},function(t,e,n){function i(t,e,n){"__proto__"==e&&r?r(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n}var r=n(8);t.exports=i},function(t,e,n){var i=n(23),r=function(){try{var t=i(Object,"defineProperty");return t({},"",{}),t}catch(t){}}();t.exports=r},function(t,e,n){function i(t){if(!o(t))return!1;var e=r(t);return e==s||e==a||e==c||e==u}var r=n(1),o=n(3),c="[object AsyncFunction]",s="[object Function]",a="[object GeneratorFunction]",u="[object Proxy]";t.exports=i},function(t,e,n){var i=n(2),r=i.Symbol;t.exports=r},function(t,e,n){(function(e){var n="object"==typeof e&&e&&e.Object===Object&&e;t.exports=n}).call(e,n(12))},function(t,e){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(t){"object"==typeof window&&(n=window)}t.exports=n},function(t,e){function n(t,e){return t===e||t!==t&&e!==e}t.exports=n},function(t,e){function n(t){return t}t.exports=n},function(t,e){function n(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=i}var i=9007199254740991;t.exports=n},function(t,e){function n(t,e){return!!(e=null==e?i:e)&&("number"==typeof t||r.test(t))&&t>-1&&t%1==0&&t<e}var i=9007199254740991,r=/^(?:0|[1-9]\d*)$/;t.exports=n},function(t,e){function n(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||i)}var i=Object.prototype;t.exports=n},function(t,e){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,e,n){"use strict";var i,r,o,c,c,s="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};/*!
2
  * clipboard.js v1.7.1
3
  * https://zenorocha.github.io/clipboard.js
4
  *
5
  * Licensed MIT © Zeno Rocha
6
  */
7
+ !function(n){if("object"===s(e)&&void 0!==t)t.exports=n();else{r=[],i=n,void 0!==(o="function"==typeof i?i.apply(e,r):i)&&(t.exports=o)}}(function(){var t;return function t(e,n,i){function r(s,a){if(!n[s]){if(!e[s]){var u="function"==typeof c&&c;if(!a&&u)return c(s,!0);if(o)return o(s,!0);var l=new Error("Cannot find module '"+s+"'");throw l.code="MODULE_NOT_FOUND",l}var f=n[s]={exports:{}};e[s][0].call(f.exports,function(t){var n=e[s][1][t];return r(n||t)},f,f.exports,t,e,n,i)}return n[s].exports}for(var o="function"==typeof c&&c,s=0;s<i.length;s++)r(i[s]);return r}({1:[function(t,e,n){function i(t,e){for(;t&&t.nodeType!==r;){if("function"==typeof t.matches&&t.matches(e))return t;t=t.parentNode}}var r=9;if("undefined"!=typeof Element&&!Element.prototype.matches){var o=Element.prototype;o.matches=o.matchesSelector||o.mozMatchesSelector||o.msMatchesSelector||o.oMatchesSelector||o.webkitMatchesSelector}e.exports=i},{}],2:[function(t,e,n){function i(t,e,n,i,o){var c=r.apply(this,arguments);return t.addEventListener(n,c,o),{destroy:function(){t.removeEventListener(n,c,o)}}}function r(t,e,n,i){return function(n){n.delegateTarget=o(n.target,e),n.delegateTarget&&i.call(t,n)}}var o=t("./closest");e.exports=i},{"./closest":1}],3:[function(t,e,n){n.node=function(t){return void 0!==t&&t instanceof HTMLElement&&1===t.nodeType},n.nodeList=function(t){var e=Object.prototype.toString.call(t);return void 0!==t&&("[object NodeList]"===e||"[object HTMLCollection]"===e)&&"length"in t&&(0===t.length||n.node(t[0]))},n.string=function(t){return"string"==typeof t||t instanceof String},n.fn=function(t){return"[object Function]"===Object.prototype.toString.call(t)}},{}],4:[function(t,e,n){function i(t,e,n){if(!t&&!e&&!n)throw new Error("Missing required arguments");if(!s.string(e))throw new TypeError("Second argument must be a String");if(!s.fn(n))throw new TypeError("Third argument must be a Function");if(s.node(t))return r(t,e,n);if(s.nodeList(t))return o(t,e,n);if(s.string(t))return c(t,e,n);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}function r(t,e,n){return t.addEventListener(e,n),{destroy:function(){t.removeEventListener(e,n)}}}function o(t,e,n){return Array.prototype.forEach.call(t,function(t){t.addEventListener(e,n)}),{destroy:function(){Array.prototype.forEach.call(t,function(t){t.removeEventListener(e,n)})}}}function c(t,e,n){return a(document.body,t,e,n)}var s=t("./is"),a=t("delegate");e.exports=i},{"./is":3,delegate:2}],5:[function(t,e,n){function i(t){var e;if("SELECT"===t.nodeName)t.focus(),e=t.value;else if("INPUT"===t.nodeName||"TEXTAREA"===t.nodeName){var n=t.hasAttribute("readonly");n||t.setAttribute("readonly",""),t.select(),t.setSelectionRange(0,t.value.length),n||t.removeAttribute("readonly"),e=t.value}else{t.hasAttribute("contenteditable")&&t.focus();var i=window.getSelection(),r=document.createRange();r.selectNodeContents(t),i.removeAllRanges(),i.addRange(r),e=i.toString()}return e}e.exports=i},{}],6:[function(t,e,n){function i(){}i.prototype={on:function(t,e,n){var i=this.e||(this.e={});return(i[t]||(i[t]=[])).push({fn:e,ctx:n}),this},once:function(t,e,n){function i(){r.off(t,i),e.apply(n,arguments)}var r=this;return i._=e,this.on(t,i,n)},emit:function(t){var e=[].slice.call(arguments,1),n=((this.e||(this.e={}))[t]||[]).slice(),i=0,r=n.length;for(i;i<r;i++)n[i].fn.apply(n[i].ctx,e);return this},off:function(t,e){var n=this.e||(this.e={}),i=n[t],r=[];if(i&&e)for(var o=0,c=i.length;o<c;o++)i[o].fn!==e&&i[o].fn._!==e&&r.push(i[o]);return r.length?n[t]=r:delete n[t],this}},e.exports=i},{}],7:[function(e,n,i){!function(r,o){if("function"==typeof t&&t.amd)t(["module","select"],o);else if(void 0!==i)o(n,e("select"));else{var c={exports:{}};o(c,r.select),r.clipboardAction=c.exports}}(this,function(t,e){function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var i=function(t){return t&&t.__esModule?t:{default:t}}(e),r="function"==typeof Symbol&&"symbol"===s(Symbol.iterator)?function(t){return void 0===t?"undefined":s(t)}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":void 0===t?"undefined":s(t)},o=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}(),c=function(){function t(e){n(this,t),this.resolveOptions(e),this.initSelection()}return o(t,[{key:"resolveOptions",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.action=t.action,this.container=t.container,this.emitter=t.emitter,this.target=t.target,this.text=t.text,this.trigger=t.trigger,this.selectedText=""}},{key:"initSelection",value:function(){this.text?this.selectFake():this.target&&this.selectTarget()}},{key:"selectFake",value:function(){var t=this,e="rtl"==document.documentElement.getAttribute("dir");this.removeFake(),this.fakeHandlerCallback=function(){return t.removeFake()},this.fakeHandler=this.container.addEventListener("click",this.fakeHandlerCallback)||!0,this.fakeElem=document.createElement("textarea"),this.fakeElem.style.fontSize="12pt",this.fakeElem.style.border="0",this.fakeElem.style.padding="0",this.fakeElem.style.margin="0",this.fakeElem.style.position="absolute",this.fakeElem.style[e?"right":"left"]="-9999px";var n=window.pageYOffset||document.documentElement.scrollTop;this.fakeElem.style.top=n+"px",this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,this.container.appendChild(this.fakeElem),this.selectedText=(0,i.default)(this.fakeElem),this.copyText()}},{key:"removeFake",value:function(){this.fakeHandler&&(this.container.removeEventListener("click",this.fakeHandlerCallback),this.fakeHandler=null,this.fakeHandlerCallback=null),this.fakeElem&&(this.container.removeChild(this.fakeElem),this.fakeElem=null)}},{key:"selectTarget",value:function(){this.selectedText=(0,i.default)(this.target),this.copyText()}},{key:"copyText",value:function(){var t=void 0;try{t=document.execCommand(this.action)}catch(e){t=!1}this.handleResult(t)}},{key:"handleResult",value:function(t){this.emitter.emit(t?"success":"error",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})}},{key:"clearSelection",value:function(){this.trigger&&this.trigger.focus(),window.getSelection().removeAllRanges()}},{key:"destroy",value:function(){this.removeFake()}},{key:"action",set:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"copy";if(this._action=t,"copy"!==this._action&&"cut"!==this._action)throw new Error('Invalid "action" value, use either "copy" or "cut"')},get:function(){return this._action}},{key:"target",set:function(t){if(void 0!==t){if(!t||"object"!==(void 0===t?"undefined":r(t))||1!==t.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===this.action&&t.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===this.action&&(t.hasAttribute("readonly")||t.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');this._target=t}},get:function(){return this._target}}]),t}();t.exports=c})},{select:5}],8:[function(e,n,i){!function(r,o){if("function"==typeof t&&t.amd)t(["module","./clipboard-action","tiny-emitter","good-listener"],o);else if(void 0!==i)o(n,e("./clipboard-action"),e("tiny-emitter"),e("good-listener"));else{var c={exports:{}};o(c,r.clipboardAction,r.tinyEmitter,r.goodListener),r.clipboard=c.exports}}(this,function(t,e,n,i){function r(t){return t&&t.__esModule?t:{default:t}}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function c(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!==(void 0===e?"undefined":s(e))&&"function"!=typeof e?t:e}function a(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+(void 0===e?"undefined":s(e)));t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function u(t,e){var n="data-clipboard-"+t;if(e.hasAttribute(n))return e.getAttribute(n)}var l=r(e),f=r(n),p=r(i),d="function"==typeof Symbol&&"symbol"===s(Symbol.iterator)?function(t){return void 0===t?"undefined":s(t)}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":void 0===t?"undefined":s(t)},h=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}(),v=function(t){function e(t,n){o(this,e);var i=c(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return i.resolveOptions(n),i.listenClick(t),i}return a(e,t),h(e,[{key:"resolveOptions",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof t.action?t.action:this.defaultAction,this.target="function"==typeof t.target?t.target:this.defaultTarget,this.text="function"==typeof t.text?t.text:this.defaultText,this.container="object"===d(t.container)?t.container:document.body}},{key:"listenClick",value:function(t){var e=this;this.listener=(0,p.default)(t,"click",function(t){return e.onClick(t)})}},{key:"onClick",value:function(t){var e=t.delegateTarget||t.currentTarget;this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new l.default({action:this.action(e),target:this.target(e),text:this.text(e),container:this.container,trigger:e,emitter:this})}},{key:"defaultAction",value:function(t){return u("action",t)}},{key:"defaultTarget",value:function(t){var e=u("target",t);if(e)return document.querySelector(e)}},{key:"defaultText",value:function(t){return u("text",t)}},{key:"destroy",value:function(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)}}],[{key:"isSupported",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["copy","cut"],e="string"==typeof t?[t]:t,n=!!document.queryCommandSupported;return e.forEach(function(t){n=n&&!!document.queryCommandSupported(t)}),n}}]),e}(f.default);t.exports=v})},{"./clipboard-action":7,"good-listener":4,"tiny-emitter":6}]},{},[8])(8)})},function(t,e,n){"use strict";n(21),n(59),n(60),n(61),n(62),n(67),n(68),n(69),n(70),n(71)},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);!function(t){var e={modules:[],init:function(){function e(t){var e=t.find(".wphb-score-result-label"),n=parseInt(e.text(),10)||100,i=t.find(".wphb-score-graph-result"),r=void 0,o=void 0,c=void 0;r=i.attr("r"),o=Math.PI*(2*r),n<0&&(n=0),n>100&&(n=100),c=(100-n)/100*o,i.css({strokeDashoffset:c})}function n(){t(".wphb-performance-report-overall-score").each(function(){e(t(this))}),t(".wphb-performance-report-current-score").each(function(){e(t(this))}),t(".wphb-performance-report-item-score").each(function(){e(t(this))})}t("body").on("change",".mobile-nav",function(){var e=t(this).val();e.length>0&&(location.href=e)}),t("#wphb-dismissable").on("click",".close",function(){var e=t(this).parent().attr("data-id");r.default.notice.dismiss(e)}),window.register_events_performance=function(){setTimeout(n,500)},t(function(){setTimeout(n,500)})},initModule:function(t){return this.hasOwnProperty(t)?(this.modules[t]=this[t].init(),this.modules[t]):{}},getModule:function(t){return void 0!==this.modules[t]?this.modules[t]:this.initModule(t)}};e.utils={membershipModal:{open:function(){t("#wphb-upgrade-membership-modal-link").trigger("click")}},post:function(e,n){return e.action="wphb_ajax",e.module=n,t.ajax({url:ajaxurl,method:"POST",data:e})}},e.notices={init:function(){t(".wphb-notice:not(.notice) a.wphb-dismiss").click(function(e){e.preventDefault();t(this).data("id"),t(this).data("nonce");t(this).parent(".error").hide()})}},window.WPHB_Admin=e}(jQuery)},function(t,e,n){var i=n(6),r=n(31),o=n(32),c=n(4),s=n(17),a=n(41),u=Object.prototype,l=u.hasOwnProperty,f=o(function(t,e){if(s(e)||c(e))return void r(e,a(e),t);for(var n in e)l.call(e,n)&&i(t,n,e[n])});t.exports=f},function(t,e,n){function i(t,e){var n=o(t,e);return r(n)?n:void 0}var r=n(24),o=n(30);t.exports=i},function(t,e,n){function i(t){return!(!c(t)||o(t))&&(r(t)?h:u).test(s(t))}var r=n(9),o=n(27),c=n(3),s=n(29),a=/[\\^$.*+?()[\]{}|]/g,u=/^\[object .+?Constructor\]$/,l=Function.prototype,f=Object.prototype,p=l.toString,d=f.hasOwnProperty,h=RegExp("^"+p.call(d).replace(a,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");t.exports=i},function(t,e,n){function i(t){var e=c.call(t,a),n=t[a];try{t[a]=void 0;var i=!0}catch(t){}var r=s.call(t);return i&&(e?t[a]=n:delete t[a]),r}var r=n(10),o=Object.prototype,c=o.hasOwnProperty,s=o.toString,a=r?r.toStringTag:void 0;t.exports=i},function(t,e){function n(t){return r.call(t)}var i=Object.prototype,r=i.toString;t.exports=n},function(t,e,n){function i(t){return!!o&&o in t}var r=n(28),o=function(){var t=/[^.]+$/.exec(r&&r.keys&&r.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();t.exports=i},function(t,e,n){var i=n(2),r=i["__core-js_shared__"];t.exports=r},function(t,e){function n(t){if(null!=t){try{return r.call(t)}catch(t){}try{return t+""}catch(t){}}return""}var i=Function.prototype,r=i.toString;t.exports=n},function(t,e){function n(t,e){return null==t?void 0:t[e]}t.exports=n},function(t,e,n){function i(t,e,n,i){var c=!n;n||(n={});for(var s=-1,a=e.length;++s<a;){var u=e[s],l=i?i(n[u],t[u],u,n,t):void 0;void 0===l&&(l=t[u]),c?o(n,u,l):r(n,u,l)}return n}var r=n(6),o=n(7);t.exports=i},function(t,e,n){function i(t){return r(function(e,n){var i=-1,r=n.length,c=r>1?n[r-1]:void 0,s=r>2?n[2]:void 0;for(c=t.length>3&&"function"==typeof c?(r--,c):void 0,s&&o(n[0],n[1],s)&&(c=r<3?void 0:c,r=1),e=Object(e);++i<r;){var a=n[i];a&&t(e,a,i,c)}return e})}var r=n(33),o=n(40);t.exports=i},function(t,e,n){function i(t,e){return c(o(t,e,r),t+"")}var r=n(14),o=n(34),c=n(36);t.exports=i},function(t,e,n){function i(t,e,n){return e=o(void 0===e?t.length-1:e,0),function(){for(var i=arguments,c=-1,s=o(i.length-e,0),a=Array(s);++c<s;)a[c]=i[e+c];c=-1;for(var u=Array(e+1);++c<e;)u[c]=i[c];return u[e]=n(a),r(t,this,u)}}var r=n(35),o=Math.max;t.exports=i},function(t,e){function n(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)}t.exports=n},function(t,e,n){var i=n(37),r=n(39),o=r(i);t.exports=o},function(t,e,n){var i=n(38),r=n(8),o=n(14),c=r?function(t,e){return r(t,"toString",{configurable:!0,enumerable:!1,value:i(e),writable:!0})}:o;t.exports=c},function(t,e){function n(t){return function(){return t}}t.exports=n},function(t,e){function n(t){var e=0,n=0;return function(){var c=o(),s=r-(c-n);if(n=c,s>0){if(++e>=i)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}var i=800,r=16,o=Date.now;t.exports=n},function(t,e,n){function i(t,e,n){if(!s(n))return!1;var i=typeof e;return!!("number"==i?o(n)&&c(e,n.length):"string"==i&&e in n)&&r(n[e],t)}var r=n(13),o=n(4),c=n(16),s=n(3);t.exports=i},function(t,e,n){function i(t){return c(t)?r(t):o(t)}var r=n(42),o=n(53),c=n(4);t.exports=i},function(t,e,n){function i(t,e){var n=c(t),i=!n&&o(t),l=!n&&!i&&s(t),p=!n&&!i&&!l&&u(t),d=n||i||l||p,h=d?r(t.length,String):[],v=h.length;for(var m in t)!e&&!f.call(t,m)||d&&("length"==m||l&&("offset"==m||"parent"==m)||p&&("buffer"==m||"byteLength"==m||"byteOffset"==m)||a(m,v))||h.push(m);return h}var r=n(43),o=n(44),c=n(46),s=n(47),a=n(16),u=n(49),l=Object.prototype,f=l.hasOwnProperty;t.exports=i},function(t,e){function n(t,e){for(var n=-1,i=Array(t);++n<t;)i[n]=e(n);return i}t.exports=n},function(t,e,n){var i=n(45),r=n(5),o=Object.prototype,c=o.hasOwnProperty,s=o.propertyIsEnumerable,a=i(function(){return arguments}())?i:function(t){return r(t)&&c.call(t,"callee")&&!s.call(t,"callee")};t.exports=a},function(t,e,n){function i(t){return o(t)&&r(t)==c}var r=n(1),o=n(5),c="[object Arguments]";t.exports=i},function(t,e){var n=Array.isArray;t.exports=n},function(t,e,n){(function(t){var i=n(2),r=n(48),o="object"==typeof e&&e&&!e.nodeType&&e,c=o&&"object"==typeof t&&t&&!t.nodeType&&t,s=c&&c.exports===o,a=s?i.Buffer:void 0,u=a?a.isBuffer:void 0,l=u||r;t.exports=l}).call(e,n(18)(t))},function(t,e){function n(){return!1}t.exports=n},function(t,e,n){var i=n(50),r=n(51),o=n(52),c=o&&o.isTypedArray,s=c?r(c):i;t.exports=s},function(t,e,n){function i(t){return c(t)&&o(t.length)&&!!s[r(t)]}var r=n(1),o=n(15),c=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,t.exports=i},function(t,e){function n(t){return function(e){return t(e)}}t.exports=n},function(t,e,n){(function(t){var i=n(11),r="object"==typeof e&&e&&!e.nodeType&&e,o=r&&"object"==typeof t&&t&&!t.nodeType&&t,c=o&&o.exports===r,s=c&&i.process,a=function(){try{return s&&s.binding&&s.binding("util")}catch(t){}}();t.exports=a}).call(e,n(18)(t))},function(t,e,n){function i(t){if(!r(t))return o(t);var e=[];for(var n in Object(t))s.call(t,n)&&"constructor"!=n&&e.push(n);return e}var r=n(17),o=n(54),c=Object.prototype,s=c.hasOwnProperty;t.exports=i},function(t,e,n){var i=n(55),r=i(Object.keys,Object);t.exports=r},function(t,e){function n(t,e){return function(n){return t(e(n))}}t.exports=n},function(t,e,n){(function(e,i){/*!
8
  * @overview es6-promise - a tiny implementation of Promises/A+.
9
  * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)
10
  * @license Licensed under MIT license
11
  * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE
12
+ * @version v4.2.2+97478eb6
13
  */
14
+ !function(e,n){t.exports=n()}(0,function(){"use strict";function t(t){var e=typeof t;return null!==t&&("object"===e||"function"===e)}function r(t){return"function"==typeof t}function o(t){N=t}function c(t){z=t}function s(){return void 0!==U?function(){U(u)}:a()}function a(){var t=setTimeout;return function(){return t(u,1)}}function u(){for(var t=0;t<W;t+=2){(0,K[t])(K[t+1]),K[t]=void 0,K[t+1]=void 0}W=0}function l(t,e){var n=this,i=new this.constructor(p);void 0===i[X]&&A(i);var r=n._state;if(r){var o=arguments[r-1];z(function(){return E(r,i,o,n._result)})}else k(n,i,t,e);return i}function f(t){var e=this;if(t&&"object"==typeof t&&t.constructor===e)return t;var n=new e(p);return w(n,t),n}function p(){}function d(){return new TypeError("You cannot resolve a promise with itself")}function h(){return new TypeError("A promises callback cannot return that same promise.")}function v(t){try{return t.then}catch(t){return nt.error=t,nt}}function m(t,e,n,i){try{t.call(e,n,i)}catch(t){return t}}function b(t,e,n){z(function(t){var i=!1,r=m(n,e,function(n){i||(i=!0,e!==n?w(t,n):x(t,n))},function(e){i||(i=!0,S(t,e))},"Settle: "+(t._label||" unknown promise"));!i&&r&&(i=!0,S(t,r))},t)}function y(t,e){e._state===tt?x(t,e._result):e._state===et?S(t,e._result):k(e,void 0,function(e){return w(t,e)},function(e){return S(t,e)})}function g(t,e,n){e.constructor===t.constructor&&n===l&&e.constructor.resolve===f?y(t,e):n===nt?(S(t,nt.error),nt.error=null):void 0===n?x(t,e):r(n)?b(t,e,n):x(t,e)}function w(e,n){e===n?S(e,d()):t(n)?g(e,n,v(n)):x(e,n)}function _(t){t._onerror&&t._onerror(t._result),T(t)}function x(t,e){t._state===Z&&(t._result=e,t._state=tt,0!==t._subscribers.length&&z(T,t))}function S(t,e){t._state===Z&&(t._state=et,t._result=e,z(_,t))}function k(t,e,n,i){var r=t._subscribers,o=r.length;t._onerror=null,r[o]=e,r[o+tt]=n,r[o+et]=i,0===o&&t._state&&z(T,t)}function T(t){var e=t._subscribers,n=t._state;if(0!==e.length){for(var i=void 0,r=void 0,o=t._result,c=0;c<e.length;c+=3)i=e[c],r=e[c+n],i?E(n,i,r,o):r(o);t._subscribers.length=0}}function j(){this.error=null}function C(t,e){try{return t(e)}catch(t){return it.error=t,it}}function E(t,e,n,i){var o=r(n),c=void 0,s=void 0,a=void 0,u=void 0;if(o){if(c=C(n,i),c===it?(u=!0,s=c.error,c.error=null):a=!0,e===c)return void S(e,h())}else c=i,a=!0;e._state!==Z||(o&&a?w(e,c):u?S(e,s):t===tt?x(e,c):t===et&&S(e,c))}function O(t,e){try{e(function(e){w(t,e)},function(e){S(t,e)})}catch(e){S(t,e)}}function P(){return rt++}function A(t){t[X]=rt++,t._state=void 0,t._result=void 0,t._subscribers=[]}function $(){return new Error("Array Methods must be provided an Array")}function $(){return new Error("Array Methods must be provided an Array")}function D(t){return new ot(this,t).promise}function I(t){var e=this;return new e(R(t)?function(n,i){for(var r=t.length,o=0;o<r;o++)e.resolve(t[o]).then(n,i)}:function(t,e){return e(new TypeError("You must pass an array to race."))})}function B(t){var e=this,n=new e(p);return S(n,t),n}function M(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}function L(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}function F(){var t=void 0;if(void 0!==i)t=i;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 e=t.Promise;if(e){var n=null;try{n=Object.prototype.toString.call(e.resolve())}catch(t){}if("[object Promise]"===n&&!e.cast)return}t.Promise=ct}var H=void 0;H=Array.isArray?Array.isArray:function(t){return"[object Array]"===Object.prototype.toString.call(t)};var R=H,W=0,U=void 0,N=void 0,z=function(t,e){K[W]=t,K[W+1]=e,2===(W+=2)&&(N?N(u):G())},Q="undefined"!=typeof window?window:void 0,V=Q||{},q=V.MutationObserver||V.WebKitMutationObserver,Y="undefined"==typeof self&&void 0!==e&&"[object process]"==={}.toString.call(e),J="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel,K=new Array(1e3),G=void 0;G=Y?function(){return function(){return e.nextTick(u)}}():q?function(){var t=0,e=new q(u),n=document.createTextNode("");return e.observe(n,{characterData:!0}),function(){n.data=t=++t%2}}():J?function(){var t=new MessageChannel;return t.port1.onmessage=u,function(){return t.port2.postMessage(0)}}():void 0===Q?function(){try{var t=n(58);return U=t.runOnLoop||t.runOnContext,s()}catch(t){return a()}}():a();var X=Math.random().toString(36).substring(16),Z=void 0,tt=1,et=2,nt=new j,it=new j,rt=0,ot=function(){function t(t,e){this._instanceConstructor=t,this.promise=new t(p),this.promise[X]||A(this.promise),R(e)?(this.length=e.length,this._remaining=e.length,this._result=new Array(this.length),0===this.length?x(this.promise,this._result):(this.length=this.length||0,this._enumerate(e),0===this._remaining&&x(this.promise,this._result))):S(this.promise,$())}return t.prototype._enumerate=function(t){for(var e=0;this._state===Z&&e<t.length;e++)this._eachEntry(t[e],e)},t.prototype._eachEntry=function(t,e){var n=this._instanceConstructor,i=n.resolve;if(i===f){var r=v(t);if(r===l&&t._state!==Z)this._settledAt(t._state,e,t._result);else if("function"!=typeof r)this._remaining--,this._result[e]=t;else if(n===ct){var o=new n(p);g(o,t,r),this._willSettleAt(o,e)}else this._willSettleAt(new n(function(e){return e(t)}),e)}else this._willSettleAt(i(t),e)},t.prototype._settledAt=function(t,e,n){var i=this.promise;i._state===Z&&(this._remaining--,t===et?S(i,n):this._result[e]=n),0===this._remaining&&x(i,this._result)},t.prototype._willSettleAt=function(t,e){var n=this;k(t,void 0,function(t){return n._settledAt(tt,e,t)},function(t){return n._settledAt(et,e,t)})},t}(),ct=function(){function t(e){this[X]=P(),this._result=this._state=void 0,this._subscribers=[],p!==e&&("function"!=typeof e&&M(),this instanceof t?O(this,e):L())}return t.prototype.catch=function(t){return this.then(null,t)},t.prototype.finally=function(t){var e=this,n=e.constructor;return e.then(function(e){return n.resolve(t()).then(function(){return e})},function(e){return n.resolve(t()).then(function(){throw e})})},t}();return ct.prototype.then=l,ct.all=D,ct.race=I,ct.resolve=f,ct.reject=B,ct._setScheduler=o,ct._setAsap=c,ct._asap=z,ct.polyfill=F,ct.Promise=ct,ct})}).call(e,n(57),n(12))},function(t,e){function n(){throw new Error("setTimeout has not been defined")}function i(){throw new Error("clearTimeout has not been defined")}function r(t){if(l===setTimeout)return setTimeout(t,0);if((l===n||!l)&&setTimeout)return l=setTimeout,setTimeout(t,0);try{return l(t,0)}catch(e){try{return l.call(null,t,0)}catch(e){return l.call(this,t,0)}}}function o(t){if(f===clearTimeout)return clearTimeout(t);if((f===i||!f)&&clearTimeout)return f=clearTimeout,clearTimeout(t);try{return f(t)}catch(e){try{return f.call(null,t)}catch(e){return f.call(this,t)}}}function c(){v&&d&&(v=!1,d.length?h=d.concat(h):m=-1,h.length&&s())}function s(){if(!v){var t=r(c);v=!0;for(var e=h.length;e;){for(d=h,h=[];++m<e;)d&&d[m].run();m=-1,e=h.length}d=null,v=!1,o(t)}}function a(t,e){this.fun=t,this.array=e}function u(){}var l,f,p=t.exports={};!function(){try{l="function"==typeof setTimeout?setTimeout:n}catch(t){l=n}try{f="function"==typeof clearTimeout?clearTimeout:i}catch(t){f=i}}();var d,h=[],v=!1,m=-1;p.nextTick=function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)e[n-1]=arguments[n];h.push(new a(t,e)),1!==h.length||v||r(s)},a.prototype.run=function(){this.fun.apply(null,this.array)},p.title="browser",p.browser=!0,p.env={},p.argv=[],p.version="",p.versions={},p.on=u,p.addListener=u,p.once=u,p.off=u,p.removeListener=u,p.removeAllListeners=u,p.emit=u,p.prependListener=u,p.prependOnceListener=u,p.listeners=function(t){return[]},p.binding=function(t){throw new Error("process.binding is not supported")},p.cwd=function(){return"/"},p.chdir=function(t){throw new Error("process.chdir is not supported")},p.umask=function(){return 0}},function(t,e){},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);!function(t){WPHB_Admin.performance={module:"performance",iteration:0,progress:0,init:function(){var e=this,n=t("body");wphbPerformanceStrings&&(this.strings=wphbPerformanceStrings),this.$runTestButton=t("#run-performance-test");var i=t(".performance-report-table");i.off("click","button"),i.on("click","tr.wphb-performance-report-item",function(e){e.preventDefault();var n=t(this).closest(".wphb-performance-report-item"),i=n.nextUntil(".wphb-performance-report-item");i.toggleClass("wphb-performance-report-item-additional-content-opened"),i.hasClass("wphb-performance-report-item-additional-content-opened")?n.addClass("wphb-performance-report-item-opened"):n.removeClass("wphb-performance-report-item-opened")}),this.$runTestButton.length&&this.$runTestButton.click(function(n){n.preventDefault(),window.WDP.showOverlay("#run-performance-test-modal",{class:"wphb-modal small wphb-progress-modal no-close"}),t(this).attr("disabled",!0),e.performanceTest(e.strings.finishedTestURLsLink)});var o=window.location.hash;if(o){var c=t(o);c.length&&c.find(".trigger-additional-content").trigger("click")}return t('select[name="email-frequency"]').change(function(){"1"===t(this).val()?t(this).closest(".schedule-box").find("div.days-container").hide():t(this).closest(".schedule-box").find("div.days-container").show()}).change(),n.on("click",".wphb-remove-recipient",function(e){e.preventDefault(),t(this).closest(".recipient").remove(),t(".scan-settings").find("input[id='scan_recipient'][value="+t(this).attr("data-id")+"]").remove()}),t("#add-receipt").click(function(){var n=t("#wphb-username-search").val(),i=t("#wphb-first-name").val();return r.default.performance.addRecipient(n,i).then(function(i){var r=t('<div class="recipient"/>'),o=t("<img/>").attr({src:i.avatar,width:"30"}),c=t("<span/>").html(i.name);r.append('<span class="name"/>'),r.find(".name").append(o,c),r.append(t('<span class="email"/>').html(n)),r.append(t("<a/>").attr({"data-id":i.user_id,class:"remove float-r wphb-remove-recipient",href:"#",alt:e.strings.removeButtonText}).html('<i class="dev-icon dev-icon-cross"></i>')),t("<input>").attr({type:"hidden",id:"scan_recipient",name:"email-recipients[]",value:JSON.stringify({email:i.email,name:i.name})}).appendTo(r),t(".receipt .recipients").append(r),t("#wphb-username-search").val(""),t("#wphb-first-name").val("")}).catch(function(t){alert(t.message)}),!1}),n.on("submit",".scan-frm",function(n){n.preventDefault();var i=t(this).serialize(),o=t(this);return o.find(".button").attr("disabled","disabled"),r.default.performance.saveReportsSettings(i).then(function(){o.find(".button").removeAttr("disabled"),e.showUpdateMessage()}),!1}),this},showUpdateMessage:function(){var e=t("#wphb-notice-performance-report-settings-updated");window.scrollTo(0,0),e.slideDown(),setTimeout(function(){e.slideUp()},5e3)},performanceTest:function(t){var e=this;void 0===t&&(t=!1),e.updateProgressBar(),r.default.performance.runTest().then(function(n){n.finished?t&&(window.location=t):window.setTimeout(function(){e.performanceTest(t)},5e3)})},updateProgressBar:function(){this.progress<90&&(this.progress+=35),this.progress>100&&(this.progress=90),t(".wphb-scan-progress .wphb-scan-progress-text span").text(this.progress+"%"),t(".wphb-scan-progress .wphb-scan-progress-bar span").attr("style","width:"+this.progress+"%")}}}(jQuery)},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}var r=n(0),o=i(r),c=n(19),s=i(c);!function(t){WPHB_Admin.gzip={module:"gzip",selectedServer:"",$serverSelector:null,$serverInstructions:[],init:function(){var e=this;this.$serverSelector=t("#wphb-server-type"),this.selectedServer=this.$serverSelector.val();var n=t(".wphb-server-instructions"),i=t("#configure-gzip-link"),r=t("#troubleshooting-link"),o=t("#troubleshooting-link-litespeed");return new s.default(".wphb-code-snippet .button"),n.each(function(){e.$serverInstructions[t(this).data("server")]=t(this)}),this.showServerInstructions(this.selectedServer),this.$serverSelector.change(function(){var n=t(this).val();e.hideCurrentInstructions(),e.showServerInstructions(n),e.setServer(n),e.selectedServer=n,e.updateTabSize()}),i.on("click",function(e){e.preventDefault(),t("html, body").animate({scrollTop:t("#wphb-box-gzip-settings").offset().top-50},"slow")}),r.on("click",function(e){e.preventDefault(),t("html, body").animate({scrollTop:t("#troubleshooting-gzip").offset().top},"slow")}),o.on("click",function(e){e.preventDefault(),t("html, body").animate({scrollTop:t("#troubleshooting-gzip-litespeed").offset().top},"slow")}),t(".tab label").on("click",function(){t(this).parent().parent().find(".tab label.active").removeClass("active"),t(this).addClass("active")}),t(".switch-manual").on("click",function(){var n=e.selectedServer.toLowerCase();t("#wphb-server-instructions-"+n).find(".tab label.active").first().removeClass("active"),t(this).parents().find("#"+n+"-config-manual").prev().addClass("active")}),this},hideCurrentInstructions:function(){var t=this.selectedServer;this.$serverInstructions[t]&&this.$serverInstructions[t].hide()},showServerInstructions:function(e){void 0!==this.$serverInstructions[e]&&this.$serverInstructions[e].show(),"apache"===e||"LiteSpeed"===e?t("#enable-cache-wrap").show():t("#enable-cache-wrap").hide()},updateTabSize:function(){var e=t("#wphb-server-instructions-"+this.selectedServer.toLowerCase()).find(".tabs"),n=e.find(".tab > input:checked").parent(),i=n.find(".content");e.height(i.outerHeight()+n.outerHeight()-6)},setServer:function(t){o.default.caching.setServer(t)}}}(jQuery)},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}var r=n(19),o=i(r),c=n(0),s=i(c);!function(t){WPHB_Admin.caching={module:"caching",selectedServer:"",$serverSelector:null,$serverInstructions:[],$snippets:[],selectedExpiryType:"",init:function(){var e=this,n=t("#wphb-box-caching-settings #connect-cloudflare-link, #wphb-box-caching-summary #connect-cloudflare-link"),i=t("#dismiss-cf-notice"),r=t(".cf-dash-notice"),c=t("#view-snippet-code");new o.default(".wphb-code-snippet .button"),wphbCachingStrings&&(e.strings=wphbCachingStrings),n.on("click",function(n){n.preventDefault(),t("#wphb-server-type").val("cloudflare").trigger("wpmu:change"),e.hideCurrentInstructions(),e.setServer("cloudflare"),e.showServerInstructions("cloudflare"),e.selectedServer="cloudflare",t("html, body").animate({scrollTop:t("#cloudflare-steps").offset().top},"slow")}),this.$serverSelector=t("#wphb-server-type"),this.selectedServer=this.$serverSelector.val(),e.$snippets.apache=t("#wphb-code-snippet-apache").find("pre").first(),e.$snippets.LiteSpeed=t("#wphb-code-snippet-litespeed").find("pre").first(),e.$snippets.nginx=t("#wphb-code-snippet-nginx").find("pre").first(),c.on("click",function(n){n.preventDefault();var i=t("#wphb-server-instructions-"+e.selectedServer.toLowerCase());t("#manual-"+e.selectedServer.toLowerCase()).trigger("click"),window.WPHB_Admin.getModule("caching").updateTabSize(),t("html, body").animate({scrollTop:i.offset().top-50},"slow")}),t(".wphb-server-instructions").each(function(){e.$serverInstructions[t(this).data("server")]=t(this)});var a=t(".wphb-expiry-select"),u=t("#wphb-expiry-change-notice");a.each(function(){var n=t(this).data("type");n?t(this).change(function(){!function(){var t=[];t="all"===n?e.getExpiryTimes("all"):e.getExpiryTimes(),e.reloadSnippets(t),u.slideDown()}()}):t(this).change(function(){u.slideDown()})}),this.showServerInstructions(this.selectedServer),this.$serverSelector.change(function(){var n=t(this).val();e.hideCurrentInstructions(),e.showServerInstructions(n),e.setServer(n),e.selectedServer=n,e.updateTabSize(),t(".hb-server-type").val(n)});var l=t("input[name='expiry-set-type']"),f=t(".settings-form");return l.each(function(){this.checked&&("expiry-all-types"===t(this).attr("id")?(f.find("[data='expiry-single-type']").hide(),f.find("[data='expiry-all-types']").show(),e.selectedExpiryType="all"):"expiry-single-type"===t(this).attr("id")&&(f.find("[data='expiry-all-types']").hide(),f.find("[data='expiry-single-type']").show(),e.selectedExpiryType="single"))}),l.on("click",function(){var n=[];"expiry-all-types"===t(this).attr("id")?(f.find("[data='expiry-single-type']").hide(),f.find("[data='expiry-all-types']").show(),n=e.getExpiryTimes("all"),e.selectedExpiryType="all"):"expiry-single-type"===t(this).attr("id")&&(f.find("[data='expiry-all-types']").hide(),f.find("[data='expiry-single-type']").show(),n=e.getExpiryTimes(),e.selectedExpiryType="single"),e.reloadSnippets(n)}),t(".tab label").on("click",function(){t(this).parent().parent().find(".tab label.active").removeClass("active"),t(this).addClass("active")}),i.click(function(t){t.preventDefault(),s.default.notice.dismissCloudflareDash(),r.slideUp(),r.parent().addClass("no-background-image")}),t(".activate-button").click(function(){var t=[];""!==e.selectedExpiryType&&(t="all"===e.selectedExpiryType?e.getExpiryTimes("all"):e.getExpiryTimes(),s.default.caching.setExpiration(e.selectedExpiryType,t))}),this},setServer:function(t){s.default.caching.setServer(t)},updateTabSize:function(){var e=t("#wphb-server-instructions-"+this.selectedServer.toLowerCase()).find(".tabs"),n=e.find(".tab > input:checked").parent(),i=n.find(".content");e.height(i.outerHeight()+n.outerHeight()-6)},hideCurrentInstructions:function(){var t=this.selectedServer;this.$serverInstructions[t]&&this.$serverInstructions[t].hide()},showServerInstructions:function(e){if(void 0!==this.$serverInstructions[e]){var n=this.$serverInstructions[e];n.show(),n.find(".tab:first-child > label").trigger("click")}"apache"===e||"LiteSpeed"===e?t(".enable-cache-wrap-"+e).show():t("#enable-cache-wrap").hide()},reloadSnippets:function(t){var e=this;for(var n in e.$snippets)e.$snippets.hasOwnProperty(n)&&s.default.caching.reloadSnippets(n,t).then(function(t){e.$snippets[t.type].text(t.code)})},getExpiryTimes:function(e){var n=[];if("all"===e){var i=t("#set-expiry-all").val();n={caching_expiry_javascript:i,caching_expiry_css:i,caching_expiry_media:i,caching_expiry_images:i}}else n={caching_expiry_javascript:t("#set-expiry-javascript").val(),caching_expiry_css:t("#set-expiry-css").val(),caching_expiry_media:t("#set-expiry-media").val(),caching_expiry_images:t("#set-expiry-images").val()};return n}}}(jQuery)},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}var r=n(0),o=i(r),c=n(63),s=n(64),a=i(s),u=n(65),l=i(u),f=n(66),p=i(f);!function(t){WPHB_Admin.minification={module:"minification",$checkFilesButton:null,$checkFilesResultsContainer:null,checkURLSList:null,checkedURLS:0,init:function(){var e=this,n=this;this.scanner=new p.default(wphb.minification.get.totalSteps,wphb.minification.get.currentScanStep),this.scanner.onFinishStep=this.updateProgressBar,this.scanner.onFinish=function(n){e.updateProgressBar(100),o.default.minification.toggleCDN(t("input#enable_cdn").is(":checked")).then(function(){window.location.href=(0,c.getLink)("minification")})},this.$checkFilesButton=t("#check-files"),this.$checkFilesButton.length&&this.$checkFilesButton.click(function(e){e.preventDefault(),window.WDP.showOverlay("#check-files-modal",{class:"wphb-modal small wphb-progress-modal no-close"}),t(this).attr("disabled",!0),n.updateProgressBar(n.scanner.getProgress()),n.scanner.scan()}),t("body").on("click","#cancel-minification-check",function(t){t.preventDefault(),e.updateProgressBar(0,!0),e.scanner.cancel().then(function(){window.location.href=(0,c.getLink)("minification")})}),t(":input.toggle-checkbox").on("change",function(){t(this).toggleClass("changed"),0===t(".wphb-minification-files").find("input.changed").length?(t(".wphb-minification-changed-notice").slideUp("slow"),t("input[type=submit]").addClass("disabled")):(t(".wphb-minification-changed-notice").slideDown("slow"),t("input[type=submit]").removeClass("disabled"))}),t(":input.wphb-minification-file-selector, :input.wphb-minification-bulk-file-selector").on("change",function(){t(this).toggleClass("changed");var e=t(".wphb-minification-files").find("input.changed"),n=t("#bulk-update");0===e.length?(n.removeClass("button-grey"),n.addClass("button-notice disabled")):(n.removeClass("button-notice disabled"),n.addClass("button-grey"))}),t(".box-title-basic > a.wphb-switch-button, #wphb-dismissable a.wphb-switch-button").on("click",function(t){t.preventDefault(),window.WDP.showOverlay("#wphb-advanced-minification-modal"),o.default.minification.toggleView("advanced")}),t(".box-title-advanced > a").on("click",function(t){t.preventDefault(),o.default.minification.toggleView("basic").then(function(){window.location.href=(0,c.getLink)("minification")})}),t("#wphb-minification-filter-button").on("click",function(e){e.preventDefault(),t(".wphb-minification-filter").toggle("slow"),t("#wphb-minification-filter-button").toggleClass("active")}),t(".wphb-discard").click(function(t){return t.preventDefault(),confirm((0,c.__)("discardAlert"))&&location.reload(),!1}),t(".wphb-enqueued-files input").on("change",function(){t(".wphb-discard").attr("disabled",!1)});var i=t("input[type=checkbox][name=use_cdn]");i.change(function(){var e=t(this).is(":checked");i.each(function(){this.checked=e}),o.default.minification.toggleCDN(e).then(function(){var e=t("#wphb-notice-minification-advanced-settings-updated");e.slideDown(),setTimeout(function(){e.slideUp()},5e3)})}),this.rowsCollection=new WPHB_Admin.minification.RowsCollection,t(".wphb-border-row").each(function(e,i){var r=void 0;r=t(i).data("filter-secondary")?new WPHB_Admin.minification.Row(t(i),t(i).data("filter"),t(i).data("filter-secondary")):new WPHB_Admin.minification.Row(t(i),t(i).data("filter")),n.rowsCollection.push(r)}),t("#wphb-s").keyup(function(){n.rowsCollection.addFilter(t(this).val(),"primary"),n.rowsCollection.applyFilters()}),t("#wphb-secondary-filter").change(function(){n.rowsCollection.addFilter(t(this).val(),"secondary"),n.rowsCollection.applyFilters()}),t(".filter-toggles").change(function(){var e=t(this),i=e.data("toggles"),r=e.prop("checked"),o=n.rowsCollection.getVisibleItems();for(var c in o)o[c].change(i,r)}),t("input.wphb-minification-file-selector").click(function(){var e=t(this),i=n.rowsCollection.getItemById(e.data("type"),e.data("handle"));i&&(e.is(":checked")?i.select():i.unSelect())}),t(".wphb-minification-bulk-file-selector").click(function(){var e=t(this),i=n.rowsCollection.getItemsByDataType(e.attr("data-type"));for(var r in i)i.hasOwnProperty(r)&&(e.is(":checked")?i[r].select():i[r].unSelect())}),t("body").on("click",".wphb-border-row",function(){window.innerWidth<783&&(t(this).find(".wphb-minification-row-details").toggle(),t(this).find(".fileinfo-group").toggleClass("opened"))});var r=_.debounce(function(){window.innerWidth>=783?t(".wphb-minification-row-details").css("display","flex"):t(".wphb-minification-row-details").css("display","none")},250);return window.addEventListener("resize",r),this},updateProgressBar:function(e){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];e>100&&(e=100),t(".wphb-scan-progress .wphb-scan-progress-text span").text(e+"%"),t(".wphb-scan-progress .wphb-scan-progress-bar span").width(e+"%"),e>=90&&t(".wphb-progress-state .wphb-progress-state-text").text("Finalizing..."),n&&t(".wphb-progress-state .wphb-progress-state-text").text("Cancelling...")}},WPHB_Admin.minification.Row=a.default,WPHB_Admin.minification.RowsCollection=l.default}(jQuery)},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});e.__=function(t){return wphb.strings[t]||""},e.getLink=function(t){return wphb.links[t]||""}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=function(t,e,n){var i=t,r=e.toLowerCase(),o=!1,c=!1,s=!0,a=i.find(".toggle-include"),u=i.find(".toggle-combine"),l=i.find(".toggle-minify"),f=i.find(".toggle-position-footer"),p=i.find(".toggle-defer"),d=i.find(".toggle-inline"),h=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"),s=!1},show:function(){i.removeClass("out-of-filter"),s=!0},getElement:function(){return i},getId:function(){return i.attr("id")},getFilter:function(){return r},matchFilter:function(t){return""===t||(t=t.toLowerCase(),r.search(t)>-1)},matchSecondaryFilter:function(t){return""===t||!!o&&(t=t.toLowerCase(),o===t)},isVisible:function(){return s},isSelected:function(){return c},isType:function(t){return t===v.attr("data-type")},select:function(){c=!0,v.prop("checked",!0)},unSelect:function(){c=!1,v.prop("checked",!1)},change:function(t,e){switch(t){case"minify":l.prop("checked",e);break;case"combine":u.prop("checked",e);break;case"defer":p.prop("checked",e);break;case"inline":d.prop("checked",e);break;case"include":h.removeClass(),a.prop("checked",e),e?(i.removeClass("disabled"),h.addClass("dev-icon dev-icon-cross"),a.attr("checked",!0)):(i.addClass("disabled"),h.addClass("wdv-icon wdv-icon-refresh"),a.removeAttr("checked"));break;case"footer":f.prop("checked",e)}}}};e.default=i},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var 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},r=function(){var t=[],e="",n="";return{push:function(e){"object"===(void 0===e?"undefined":i(e))&&t.push(e)},getItems:function(){return t},getItem:function(e){return!!t[e]&&t[e]},getItemById:function(e,n){var i=!1;for(var r in t)if("wphb-file-"+e+"-"+n===t[r].getId()){i=t[r];break}return i},getItemsByDataType:function(e){var n=[];for(var i in t)t[i].isType(e)&&n.push(t[i]);return n},getVisibleItems:function(){var e=[];for(var n in t)t[n].isVisible()&&e.push(t[n]);return e},getSelectedItems:function(){var e=[];for(var n in t)t[n].isVisible()&&t[n].isSelected()&&e.push(t[n]);return e},addFilter:function(t,i){"secondary"===i?n=t:e=t},applyFilters:function(){for(var i in t)t[i]&&(t[i].matchFilter(e)&&t[i].matchSecondaryFilter(n)?t[i].show():t[i].hide())}}};e.default=r},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i),o=function(t,e){t=parseInt(t),e=parseInt(e);var n=!1,i={scan:function(){var n=t-e;0!==e?o(n):r.default.minification.startCheck().then(function(){o(n)})},cancel:function(){return n=!0,r.default.minification.cancelScan()},getProgress:function(){if(n)return 0;var i=t-e;return Math.min(Math.round(100*parseInt(t-i)/t),99)},onFinishStep:function(t){},onFinish:function(t){}},o=function n(o){o>=0?(e=t-o,r.default.minification.checkStep(e).then(function(){o-=1,i.onFinishStep(i.getProgress()),n(o)})):r.default.minification.finishCheck().then(i.onFinish)};return i};e.default=o},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);!function(t){WPHB_Admin.dashboard={module:"dashboard",init:function(){var e=this,n=t("#dismiss-cf-notice"),i=t(".cf-dash-notice");return wphbDashboardStrings&&(this.strings=wphbDashboardStrings),t("#wphb-activate-minification").change(function(){var n=t(this).val();r.default.dashboard.toggleMinification(n).then(function(){var i=t('input[name="use_cdn"]');"false"===n?(i.prop("checked",!1),i.prop("disabled",!0)):i.prop("disabled",!1),e.showNotice()})}),t("#use_cdn").change(function(){var n=t(this).is(":checked");r.default.minification.toggleCDN(n).then(function(){e.showNotice()})}),t(".wphb-performance-report-item").click(function(){var e=t(this).data("performance-url");e&&(location.href=e)}),n.click(function(t){t.preventDefault(),r.default.notice.dismissCloudflareDash(),i.slideUp(),i.parent().addClass("no-background-image")}),this},showNotice:function(){var e=t("#wphb-notice-minification-settings-updated");e.slideDown(),setTimeout(function(){e.slideUp()},5e3)},startQuickSetup:function(){window.WDP.showOverlay("#wphb-quick-setup-modal",{class:"wphb-modal small wphb-quick-setup-modal no-close"})},skipSetup:function(){r.default.dashboard.skipSetup().then(function(){window.location.reload(!0)})},runPerformanceTest:function(){window.WDP.showOverlay("#run-performance-test-modal",{class:"wphb-modal small wphb-progress-modal no-close"}),window.WPHB_Admin.getModule("performance").performanceTest(this.strings.finishedTestURLsLink)}}}(jQuery)},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);!function(t){WPHB_Admin.DashboardCloudFlare={init:function(e){this.currentStep=e.currentStep,this.data=e,this.email=e.email,this.apiKey=e.apiKey,this.$stepsContainer=t("#cloudflare-steps"),this.$infoBox=t("#cloudflare-info"),this.$spinner=t(".cloudflare-spinner"),this.$deactivateButton=t(".cloudflare-deactivate.button"),this.renderStep(this.currentStep),t("body").on("click",".cloudflare-clear-cache.button",function(e){e.preventDefault(),this.purgeCache.apply(t(e.target),[this])}.bind(this))},purgeCache:function(e){var n=this;n.attr("disabled",!0),e.showSpinner(),r.default.cloudflare.purgeCache().then(function(){var i=t("#wphb-notice-cloudflare-purge-cache");window.scrollTo(0,0),i.slideDown(),setTimeout(function(){i.slideUp()},5e3),n.removeAttr("disabled"),e.hideSpinner()})},renderStep:function(e){var n=WPHB_Admin.DashboardCloudFlare.template("#cloudflare-step-"+e),i=n(this.data),r=this;i&&(this.currentStep=e,this.$stepsContainer.hide().html(n(this.data)).fadeIn().find("form").on("submit",function(e){e.preventDefault(),r.submitStep.call(r,t(this))}),this.$spinner=this.$stepsContainer.find(".cloudflare-spinner")),this.bindEvents()},bindEvents:function(){var e=t("#cloudflare-how-to");e.hide(),t("#cloudflare-how-to-title > a").click(function(t){t.preventDefault(),e.toggle()}),this.$stepsContainer.find("select").each(function(){window.WDP.wpmuSelect(this)}),"final"===this.currentStep?this.$deactivateButton.removeClass("hidden"):this.$deactivateButton.addClass("hidden")},emptyInfoBox:function(){this.$infoBox.html(""),this.$infoBox.removeClass()},showInfoBox:function(t){this.$infoBox.addClass("wphb-notice"),this.$infoBox.addClass("wphb-notice-error"),this.$infoBox.html(t+"")},showSpinner:function(){this.$spinner.css("visibility","visible")},hideSpinner:function(){this.$spinner.css("visibility","hidden")},submitStep:function(t){var e=this;t.find("input[type=submit]").attr("disabled","true"),this.emptyInfoBox(),this.showSpinner(),r.default.cloudflare.connect(this.currentStep,t.serialize(),this.data).then(function(t){e.data=t.newData,e.renderStep(t.nextStep),"final"===t.nextStep&&(window.location.href=t.redirect)}).catch(function(t){e.showInfoBox(t)}),t.find("input[type=submit]").removeAttr("disabled"),e.hideSpinner()}},WPHB_Admin.DashboardCloudFlare.template=_.memoize(function(e){var n=void 0,i={evaluate:/<#([\s\S]+?)#>/g,interpolate:/\{\{\{([\s\S]+?)\}\}\}/g,escape:/\{\{([^\}]+?)\}\}(?!\})/g,variable:"data"};return function(r){return _.templateSettings=i,(n=n||_.template(t(e).html()))(r)}})}(jQuery)},function(t,e,n){"use strict";!function(t){WPHB_Admin.uptime={module:"uptime",$dataRangeSelector:null,chartData:null,timer:null,$spinner:null,init:function(){this.$spinner=t(".spinner"),this.strings=wphbUptimeStrings,this.$dataRangeSelector=t("#wphb-uptime-data-range"),this.chartData=t("#uptime-chart-json").val(),this.$disableUptime=t("#wphb-disable-uptime"),this.$dataRangeSelector.change(function(){window.location.href=t(this).find(":selected").data("url")});var e=this;this.$disableUptime.change(function(){e.$spinner.css("visibility","visible"),t(this).is(":checked")&&e.timer?(clearTimeout(e.timer),e.$spinner.css("visibility","hidden")):e.timer=setTimeout(function(){location.href=e.strings.disableUptimeURL},3e3)}),this.drawChart(),t("#uptime-re-check-status").on("click",function(t){t.preventDefault(),location.reload()})},drawChart:function(){var e=new google.visualization.DataTable;e.addColumn("datetime","Day"),e.addColumn("number","Response Time (ms)");for(var n=JSON.parse(this.chartData),i=0;i<n.length;i++)n[i][0]=new Date(n[i][0]),n[i][1]=Math.round(n[i][1]),0==Math.round(n[i][1])&&(n[i][1]=-100);e.addRows(n);var r={chartArea:{left:80,top:20,width:"90%",height:"90%"},colors:["#24ADE5"],curveType:"function",legend:{position:"none"},vAxis:{format:"#,### ms",viewWindow:{min:0}},tooltip:{isHtml:!0},series:{0:{axis:"Resp"}},axes:{y:{Resp:{label:"Response Time (ms)"}}}},o=new google.visualization.LineChart(document.getElementById("uptime-chart"));o.draw(e,r),t(window).resize(function(){o.draw(e,r)})}}}(jQuery)},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);!function(t){WPHB_Admin.cloudflare={module:"cloudflare",$cfSelector:!1,init:function(){this.$cfSelector=t("#set-expiry-all");var e=t("#set-cf-expiry-button"),n=this;return wphb.cloudflare.is.connected&&e.click(function(t){t.preventDefault(),n.setExpiry.call(n,n.$cfSelector)}),this},setExpiry:function(e){var n=t(e).val();r.default.cloudflare.setExpiration(n).then(function(){window.location.reload()})}}}(jQuery)},function(t,e,n){"use strict";jQuery(document).ready(function(){WPHB_Admin.init()})}]);
15
  //# sourceMappingURL=admin.min.js.map
admin/assets/js/admin.min.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack:///admin.min.js","webpack:///webpack/bootstrap beb0d49820ef0e59c001","webpack:///./_src/admin/js/utils/fetcher.js","webpack:////root/hummingbird/node_modules/lodash/_baseGetTag.js","webpack:////root/hummingbird/node_modules/lodash/_root.js","webpack:////root/hummingbird/node_modules/lodash/isObject.js","webpack:////root/hummingbird/node_modules/lodash/isArrayLike.js","webpack:////root/hummingbird/node_modules/lodash/isObjectLike.js","webpack:////root/hummingbird/node_modules/lodash/_assignValue.js","webpack:////root/hummingbird/node_modules/lodash/_baseAssignValue.js","webpack:////root/hummingbird/node_modules/lodash/_defineProperty.js","webpack:////root/hummingbird/node_modules/lodash/isFunction.js","webpack:////root/hummingbird/node_modules/lodash/_Symbol.js","webpack:////root/hummingbird/node_modules/lodash/_freeGlobal.js","webpack:///(webpack)/buildin/global.js","webpack:////root/hummingbird/node_modules/lodash/eq.js","webpack:////root/hummingbird/node_modules/lodash/identity.js","webpack:////root/hummingbird/node_modules/lodash/isLength.js","webpack:////root/hummingbird/node_modules/lodash/_isIndex.js","webpack:////root/hummingbird/node_modules/lodash/_isPrototype.js","webpack:///(webpack)/buildin/module.js","webpack:///./_src/admin/js/utils/clipboard.js","webpack:///./_src/admin/js/index.js","webpack:///./_src/admin/js/admin-main.js","webpack:////root/hummingbird/node_modules/lodash/assign.js","webpack:////root/hummingbird/node_modules/lodash/_getNative.js","webpack:////root/hummingbird/node_modules/lodash/_baseIsNative.js","webpack:////root/hummingbird/node_modules/lodash/_getRawTag.js","webpack:////root/hummingbird/node_modules/lodash/_objectToString.js","webpack:////root/hummingbird/node_modules/lodash/_isMasked.js","webpack:////root/hummingbird/node_modules/lodash/_coreJsData.js","webpack:////root/hummingbird/node_modules/lodash/_toSource.js","webpack:////root/hummingbird/node_modules/lodash/_getValue.js","webpack:////root/hummingbird/node_modules/lodash/_copyObject.js","webpack:////root/hummingbird/node_modules/lodash/_createAssigner.js","webpack:////root/hummingbird/node_modules/lodash/_baseRest.js","webpack:////root/hummingbird/node_modules/lodash/_overRest.js","webpack:////root/hummingbird/node_modules/lodash/_apply.js","webpack:////root/hummingbird/node_modules/lodash/_setToString.js","webpack:////root/hummingbird/node_modules/lodash/_baseSetToString.js","webpack:////root/hummingbird/node_modules/lodash/constant.js","webpack:////root/hummingbird/node_modules/lodash/_shortOut.js","webpack:////root/hummingbird/node_modules/lodash/_isIterateeCall.js","webpack:////root/hummingbird/node_modules/lodash/keys.js","webpack:////root/hummingbird/node_modules/lodash/_arrayLikeKeys.js","webpack:////root/hummingbird/node_modules/lodash/_baseTimes.js","webpack:////root/hummingbird/node_modules/lodash/isArguments.js","webpack:////root/hummingbird/node_modules/lodash/_baseIsArguments.js","webpack:////root/hummingbird/node_modules/lodash/isArray.js","webpack:////root/hummingbird/node_modules/lodash/isBuffer.js","webpack:////root/hummingbird/node_modules/lodash/stubFalse.js","webpack:////root/hummingbird/node_modules/lodash/isTypedArray.js","webpack:////root/hummingbird/node_modules/lodash/_baseIsTypedArray.js","webpack:////root/hummingbird/node_modules/lodash/_baseUnary.js","webpack:////root/hummingbird/node_modules/lodash/_nodeUtil.js","webpack:////root/hummingbird/node_modules/lodash/_baseKeys.js","webpack:////root/hummingbird/node_modules/lodash/_nativeKeys.js","webpack:////root/hummingbird/node_modules/lodash/_overArg.js","webpack:////root/hummingbird/node_modules/es6-promise/dist/es6-promise.js","webpack:////root/hummingbird/node_modules/process/browser.js","webpack:///./_src/admin/js/admin-performance.js","webpack:///./_src/admin/js/admin-gzip.js","webpack:///./_src/admin/js/admin-caching.js","webpack:///./_src/admin/js/admin-minification.js","webpack:///./_src/admin/js/utils/helpers.js","webpack:///./_src/admin/js/minification/Row.js","webpack:///./_src/admin/js/minification/RowsCollection.js","webpack:///./_src/admin/js/minification/Scanner.js","webpack:///./_src/admin/js/admin-dashboard.js","webpack:///./_src/admin/js/admin-dashboard-cloudflare.js","webpack:///./_src/admin/js/admin-uptime.js","webpack:///./_src/admin/js/admin-cloudflare.js","webpack:///./_src/admin/js/admin-app.js"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","i","l","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","Fetcher","request","action","data","arguments","length","undefined","method","nonce","fetchNonce","args","url","fetchUrl","Promise","resolve","reject","jQuery","ajax","done","fail","then","response","checkStatus","ajaxurl","wphb","nonces","HBFetchNonce","methods","notice","dismiss","id","actionPrefix","dismissCloudflareDash","caching","setServer","value","cloudflare","connect","step","formData","cfData","setExpiration","purgeCache","dashboard","toggleMinification","skipSetup","minification","toggleCDN","startCheck","checkStep","finishCheck","cancelScan","performance","runTest","addRecipient","email","actionPrefixPro","saveReportsSettings","_assign2","default","this","_typeof","JSON","parse","success","error","Error","message","Symbol","iterator","obj","constructor","_assign","HBFetcher","baseGetTag","undefinedTag","nullTag","symToStringTag","getRawTag","objectToString","toStringTag","freeGlobal","freeSelf","self","root","Function","isObject","type","isArrayLike","isLength","isFunction","isObjectLike","assignValue","key","objValue","eq","baseAssignValue","objectProto","writable","getNative","func","e","tag","funcTag","genTag","asyncTag","proxyTag","global","g","eval","window","other","identity","MAX_SAFE_INTEGER","isIndex","reIsUint","test","isPrototype","Ctor","webpackPolyfill","deprecate","paths","children","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","require","_typeof2","f","apply","define","t","r","u","a","code","1","closest","element","selector","nodeType","DOCUMENT_NODE_TYPE","matches","parentNode","Element","proto","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","2","delegate","callback","useCapture","listenerFn","listener","addEventListener","destroy","removeEventListener","delegateTarget","target","./closest","3","node","HTMLElement","nodeList","toString","string","String","fn","4","listen","is","TypeError","listenNode","listenNodeList","listenSelector","Array","forEach","document","body","./is","5","select","selectedText","nodeName","focus","isReadOnly","hasAttribute","setAttribute","setSelectionRange","removeAttribute","selection","getSelection","range","createRange","selectNodeContents","removeAllRanges","addRange","6","E","on","ctx","push","once","off","_","emit","slice","evtArr","len","evts","liveEvents","7","factory","amd","mod","clipboardAction","_select","_classCallCheck","instance","Constructor","_select2","_createClass","defineProperties","props","descriptor","protoProps","staticProps","ClipboardAction","options","resolveOptions","initSelection","container","emitter","text","trigger","selectFake","selectTarget","_this","isRTL","documentElement","getAttribute","removeFake","fakeHandlerCallback","fakeHandler","fakeElem","createElement","style","fontSize","border","padding","margin","position","yPosition","pageYOffset","scrollTop","top","appendChild","copyText","removeChild","succeeded","execCommand","err","handleResult","clearSelection","bind","set","_action","_target","8","tinyEmitter","goodListener","clipboard","_clipboardAction","_tinyEmitter","_goodListener","_interopRequireDefault","_possibleConstructorReturn","ReferenceError","_inherits","subClass","superClass","create","setPrototypeOf","__proto__","getAttributeValue","suffix","attribute","_clipboardAction2","_tinyEmitter2","_goodListener2","Clipboard","_Emitter","getPrototypeOf","listenClick","defaultAction","defaultTarget","defaultText","_this2","onClick","currentTarget","querySelector","actions","support","queryCommandSupported","./clipboard-action","good-listener","tiny-emitter","_fetcher","_fetcher2","$","WPHB_Admin","init","updatePerformanceGraph","$wrap","$item","find","val","parseInt","$circle","pct","attr","Math","PI","css","strokeDashoffset","updatePerformanceResultsGraphs","each","location","href","notice_id","parent","register_events_performance","setTimeout","initModule","getModule","utils","membershipModal","open","post","notices","click","preventDefault","hide","copyObject","createAssigner","keys","assign","source","getValue","baseIsNative","isMasked","reIsNative","reIsHostCtor","toSource","reRegExpChar","funcProto","funcToString","RegExp","replace","isOwn","unmasked","result","nativeObjectToString","maskSrcKey","coreJsData","uid","exec","IE_PROTO","customizer","isNew","index","newValue","assigner","baseRest","sources","guard","isIterateeCall","start","setToString","overRest","transform","nativeMax","array","otherArgs","max","thisArg","baseSetToString","shortOut","constant","count","lastCalled","stamp","nativeNow","remaining","HOT_SPAN","HOT_COUNT","Date","now","arrayLikeKeys","baseKeys","inherited","isArr","isArray","isArg","isArguments","isBuff","isBuffer","isType","isTypedArray","skipIndexes","baseTimes","iteratee","baseIsArguments","propertyIsEnumerable","argsTag","stubFalse","freeExports","freeModule","moduleExports","Buffer","nativeIsBuffer","baseIsTypedArray","baseUnary","nodeUtil","nodeIsTypedArray","typedArrayTags","freeProcess","process","binding","nativeKeys","overArg","arg","objectOrFunction","x","setScheduler","scheduleFn","customSchedulerFn","setAsap","asapFn","asap","useVertxTimer","vertxNext","flush","useSetTimeout","globalSetTimeout","queue","onFulfillment","onRejection","_arguments","child","noop","PROMISE_ID","makePromise","_state","invokeCallback","_result","subscribe","resolve$1","promise","selfFulfillment","cannotReturnOwn","getThen","GET_THEN_ERROR","tryThen","then$$1","fulfillmentHandler","rejectionHandler","handleForeignThenable","thenable","sealed","fulfill","reason","_label","handleOwnThenable","FULFILLED","REJECTED","handleMaybeThenable","maybeThenable","publishRejection","_onerror","publish","PENDING","_subscribers","subscribers","settled","detail","ErrorObject","tryCatch","TRY_CATCH_ERROR","hasCallback","failed","initializePromise","resolver","nextId","Enumerator$1","input","_instanceConstructor","_remaining","_enumerate","validationError","all$1","entries","race$1","reject$1","needsResolver","needsNew","Promise$2","polyfill$1","local","P","promiseToString","cast","_isArray","scheduleFlush","browserWindow","browserGlobal","BrowserMutationObserver","MutationObserver","WebKitMutationObserver","isNode","isWorker","Uint8ClampedArray","importScripts","MessageChannel","nextTick","iterations","observer","createTextNode","observe","characterData","channel","port1","onmessage","port2","postMessage","vertx","runOnLoop","runOnContext","random","substring","_eachEntry","entry","resolve$$1","_then","_settledAt","_willSettleAt","state","enumerator","all","race","_setScheduler","_setAsap","_asap","catch","polyfill","defaultSetTimout","defaultClearTimeout","runTimeout","fun","cachedSetTimeout","runClearTimeout","marker","cachedClearTimeout","clearTimeout","cleanUpNextTick","draining","currentQueue","concat","queueIndex","drainQueue","timeout","run","Item","title","browser","env","argv","version","versions","addListener","removeListener","removeAllListeners","prependListener","prependOnceListener","listeners","cwd","chdir","dir","umask","iteration","progress","wphbPerformanceStrings","strings","$runTestButton","performanceReportTable","getParentPerformanceItem","getNextAdditionalContentRow","nextUntil","toggleClass","hasClass","addClass","removeClass","WDP","showOverlay","class","performanceTest","finishedTestURLsLink","hash","row","change","show","remove","user_row","img","src","avatar","width","html","append","data-id","user_id","alt","removeButtonText","stringify","appendTo","alert","form_data","serialize","that","removeAttr","showUpdateMessage","scrollTo","slideDown","slideUp","redirect","updateProgressBar","finished","_clipboard","_clipboard2","gzip","selectedServer","$serverSelector","$serverInstructions","instructionsList","configureLink","troubleshootingLink","troubleshootingLinkLiteSpeed","showServerInstructions","hideCurrentInstructions","updateTabSize","animate","offset","lowercaseServername","toLowerCase","first","parents","prev","selected","server","jq","current","content","height","outerHeight","$snippets","cloudflareLink","wphbCachingStrings","apache","LiteSpeed","nginx","expiryInput","expirySettingsForm","checked","serverTab","_helpers","_Row","_Row2","_RowsCollection","_RowsCollection2","_Scanner","_Scanner2","$checkFilesButton","$checkFilesResultsContainer","checkURLSList","checkedURLS","$spinner","scanner","totalSteps","currentScanStep","onFinishStep","onFinish","showCDNModal","show_cdn","getLink","getProgress","scan","cancel","toggle","confirm","__","reload","cdn_value","rowsCollection","RowsCollection","_row","Row","keyup","addFilter","applyFilters","what","prop","visibleItems","getVisibleItems","$this","getItemById","unSelect","items","getItems","checkbox","getElement","checkboxes","checkedState","innerWidth","minification_resize_rows","debounce","str","screen","links","_element","_filter","_filter_sec","$el","filter","filterSecondary","visible","$include","$combine","$minify","$posFooter","$defer","$inline","$disableIcon","getId","getFilter","matchFilter","search","matchSecondaryFilter","isVisible","isSelected","currentFilter","currentSecondaryFilter","getItem","getSelectedItems","MinificationScanner","currentStep","cancelling","remainingSteps","min","round","cloudFlareDismissLink","cloudFlareDashNotice","wphbDashboardStrings","CDNcheckbox","showNotice","startQuickSetup","runPerformanceTest","DashboardCloudFlare","settings","apiKey","$stepsContainer","$infoBox","$deactivateButton","renderStep","$button","showSpinner","$notice","hideSpinner","template","fadeIn","submitStep","bindEvents","$howToInstructions","wpmuSelect","emptyInfoBox","showInfoBox","$form","newData","nextStep","memoize","compiled","evaluate","interpolate","escape","variable","templateSettings","uptime","$dataRangeSelector","chartData","timer","wphbUptimeStrings","$disableUptime","disableUptimeURL","drawChart","google","visualization","DataTable","addColumn","chart_array","addRows","chartArea","left","colors","curveType","legend","vAxis","format","viewWindow","tooltip","isHtml","series","0","axis","axes","y","Resp","label","chart","LineChart","getElementById","draw","resize","$cfSelector","connected","setExpiry","displaySpinner","ready"],"mappings":"CAAS,SAAUA,GCInB,QAAAC,GAAAC,GAGA,GAAAC,EAAAD,GACA,MAAAC,GAAAD,GAAAE,OAGA,IAAAC,GAAAF,EAAAD,IACAI,EAAAJ,EACAK,GAAA,EACAH,WAUA,OANAJ,GAAAE,GAAAM,KAAAH,EAAAD,QAAAC,IAAAD,QAAAH,GAGAI,EAAAE,GAAA,EAGAF,EAAAD,QAvBA,GAAAD,KA4BAF,GAAAQ,EAAAT,EAGAC,EAAAS,EAAAP,EAGAF,EAAAU,EAAA,SAAAP,EAAAQ,EAAAC,GACAZ,EAAAa,EAAAV,EAAAQ,IACAG,OAAAC,eAAAZ,EAAAQ,GACAK,cAAA,EACAC,YAAA,EACAC,IAAAN,KAMAZ,EAAAmB,EAAA,SAAAf,GACA,GAAAQ,GAAAR,KAAAgB,WACA,WAA2B,MAAAhB,GAAA,SAC3B,WAAiC,MAAAA,GAEjC,OADAJ,GAAAU,EAAAE,EAAA,IAAAA,GACAA,GAIAZ,EAAAa,EAAA,SAAAQ,EAAAC,GAAsD,MAAAR,QAAAS,UAAAC,eAAAjB,KAAAc,EAAAC,IAGtDtB,EAAAyB,EAAA,GAGAzB,IAAA0B,EAAA,MDMM,SAAUtB,EAAQD,EAASH,GAEjC,YEnEA,SAAS2B,KAML,QAASC,GAASC,GAAoC,GAA5BC,GAA4BC,UAAAC,OAAA,OAAAC,KAAAF,UAAA,GAAAA,UAAA,MAAjBG,EAAiBH,UAAAC,OAAA,OAAAC,KAAAF,UAAA,GAAAA,UAAA,GAAR,KAC1CD,GAAKK,MAASC,EACdN,EAAKD,OAASA,CACd,IAAIQ,IAASP,OAAMI,SAGnB,OAFAG,GAAKC,IAAMC,EAEJ,IAAIC,EADGxC,EAAQ,IAAewC,SACjB,SAAEC,EAASC,GAC3BC,OAAOC,KAAMP,GAAOQ,KAAMJ,GAAUK,KAAMJ,KAEzCK,KAAM,SAAEC,GAAF,MAAgBC,GAAaD,KAd5C,GAAMT,GAAkBW,QAClBd,EAAkBe,KAAKC,OAAOC,aAiB9BC,GAIRC,QAKCC,QAAS,SAAEC,GAEJ,MAAO7B,GADQ8B,uBACWD,MAAM,SAK9BE,sBAAuB,WAEnB,MAAO/B,GADQ8B,4BACa,UAMpCE,SAMIC,UAAW,SAAEC,GAET,MAAOlC,GADQ8B,gCACWI,SAAS,UAO3CC,YAQLC,QAAS,SAAEC,EAAMC,EAAUC,GAEd,MAAOvC,GADJ8B,2BACuBO,OAAMC,WAAUC,UAAU,QAC/CpB,KAAM,SAAEC,GACL,MAAOA,MASnBoB,cAAe,SAAEN,GAEb,MAAOlC,GADQ8B,8BACWI,SAAS,SAMhDO,WAAY,WAEC,MAAOzC,GADQ8B,iCACa,UAOpCY,WAMIC,mBAAoB,SAAET,GAElB,MAAOlC,GADQ8B,yCACWI,SAAS,SAMhDU,UAAW,WAEE,MAAO5C,GADQ8B,0BACa,UAOpCe,cAMIC,UAAW,SAAEZ,GAET,MAAOlC,GADQ8B,gCACWI,SAAS,SAQvCS,mBAAoB,SAAET,GAElB,MAAOlC,GADQ8B,yCACWI,SAAS,SAQvCa,WAAY,WAER,MAAO/C,GADQ8B,mCACa,SAShCkB,UAAW,SAAEX,GAET,MAAOrC,GADQ8B,gCACWO,QAAQ,QAC7BlB,KAAM,SAAEC,GACL,MAAOA,MAOnB6B,YAAa,WAET,MAAOjD,GADQ8B,mCACa,SAMzCoB,WAAY,WAEX,MAAOlD,GADQ8B,mCACa,UAOxBqB,aAILC,QAAS,WAEI,MAAOpD,GADQ8B,+BACa,QACvBX,KAAM,SAAEC,GACN,MAAOA,MAUlBiC,aAAc,SAAEC,EAAOvE,GAEnB,MAAOiB,GADQuD,sCACWD,QAAOvE,QAAQ,QACpCoC,KAAM,SAAEC,GACL,MAAOA,MASnBoC,oBAAqB,SAAEtD,GAEnB,MAAOF,GADQuD,8CACWrD,QAAQ,YAK9C,EAAAuD,EAAAC,SAAQC,KAAMjC,GAMlB,QAASL,GAAaD,GAIlB,GAHyB,gBAApB,KAAOA,EAAP,YAAAwC,EAAOxC,MACRA,EAAWyC,KAAKC,MAAO1C,IAEtBA,EAAS2C,QACV,MAAO3C,GAASlB,IAGpB,IAAIA,GAAOkB,EAASlB,SACd8D,EAAQ,GAAIC,OAAO/D,EAAKgE,SAAW,6CAEzC,MADAF,GAAM5C,SAAWA,EACX4C,EFzKV9E,OAAOC,eAAeZ,EAAS,cAC3B2D,OAAO,GAGX,IAAI0B,GAA4B,kBAAXO,SAAoD,gBAApBA,QAAOC,SAAwB,SAAUC,GAAO,aAAcA,IAAS,SAAUA,GAAO,MAAOA,IAAyB,kBAAXF,SAAyBE,EAAIC,cAAgBH,QAAUE,IAAQF,OAAOxE,UAAY,eAAkB0E,IE5EtQE,EAAAnG,EAAA,IFgFIqF,EAEJ,SAAgCY,GAAO,MAAOA,IAAOA,EAAI7E,WAAa6E,GAAQX,QAASW,IAFjDE,GEmJhCC,EAAY,GAAIzE,EFkFtBxB,GAAQmF,QEjFOc,GFoGT,SAAUhG,EAAQD,EAASH,GGtTjC,QAAAqG,GAAAvC,GACA,aAAAA,MACA7B,KAAA6B,EAAAwC,EAAAC,EAEAC,OAAA1F,QAAAgD,GACA2C,EAAA3C,GACA4C,EAAA5C,GAxBA,GAAAiC,GAAA/F,EAAA,IACAyG,EAAAzG,EAAA,IACA0G,EAAA1G,EAAA,IAGAuG,EAAA,gBACAD,EAAA,qBAGAE,EAAAT,IAAAY,gBAAA1E,EAkBA7B,GAAAD,QAAAkG,GH+UM,SAAUjG,EAAQD,EAASH,GI1WjC,GAAA4G,GAAA5G,EAAA,IAGA6G,EAAA,gBAAAC,kBAAAhG,iBAAAgG,KAGAC,EAAAH,GAAAC,GAAAG,SAAA,gBAEA5G,GAAAD,QAAA4G,GJiXM,SAAU3G,EAAQD,GKhWxB,QAAA8G,GAAAnD,GACA,GAAAoD,SAAApD,EACA,cAAAA,IAAA,UAAAoD,GAAA,YAAAA,GAGA9G,EAAAD,QAAA8G,GLgYM,SAAU7G,EAAQD,EAASH,GMlYjC,QAAAmH,GAAArD,GACA,aAAAA,GAAAsD,EAAAtD,EAAA9B,UAAAqF,EAAAvD,GA7BA,GAAAuD,GAAArH,EAAA,GACAoH,EAAApH,EAAA,GA+BAI,GAAAD,QAAAgH,GNqaM,SAAU/G,EAAQD,GO7axB,QAAAmH,GAAAxD,GACA,aAAAA,GAAA,gBAAAA,GAGA1D,EAAAD,QAAAmH,GP4cM,SAAUlH,EAAQD,EAASH,GQrdjC,QAAAuH,GAAAlG,EAAAmG,EAAA1D,GACA,GAAA2D,GAAApG,EAAAmG,EACAhG,GAAAjB,KAAAc,EAAAmG,IAAAE,EAAAD,EAAA3D,SACA7B,KAAA6B,GAAA0D,IAAAnG,KACAsG,EAAAtG,EAAAmG,EAAA1D,GAvBA,GAAA6D,GAAA3H,EAAA,GACA0H,EAAA1H,EAAA,IAGA4H,EAAA9G,OAAAS,UAGAC,EAAAoG,EAAApG,cAoBApB,GAAAD,QAAAoH,GR+eM,SAAUnH,EAAQD,EAASH,GS/fjC,QAAA2H,GAAAtG,EAAAmG,EAAA1D,GACA,aAAA0D,GAAAzG,EACAA,EAAAM,EAAAmG,GACAxG,cAAA,EACAC,YAAA,EACA6C,QACA+D,UAAA,IAGAxG,EAAAmG,GAAA1D,EApBA,GAAA/C,GAAAf,EAAA,EAwBAI,GAAAD,QAAAwH,GTihBM,SAAUvH,EAAQD,EAASH,GUziBjC,GAAA8H,GAAA9H,EAAA,IAEAe,EAAA,WACA,IACA,GAAAgH,GAAAD,EAAAhH,OAAA,iBAEA,OADAiH,MAAW,OACXA,EACG,MAAAC,OAGH5H,GAAAD,QAAAY,GVgjBM,SAAUX,EAAQD,EAASH,GWhiBjC,QAAAqH,GAAAvD,GACA,IAAAmD,EAAAnD,GACA,QAIA,IAAAmE,GAAA5B,EAAAvC,EACA,OAAAmE,IAAAC,GAAAD,GAAAE,GAAAF,GAAAG,GAAAH,GAAAI,EAjCA,GAAAhC,GAAArG,EAAA,GACAiH,EAAAjH,EAAA,GAGAoI,EAAA,yBACAF,EAAA,oBACAC,EAAA,6BACAE,EAAA,gBA6BAjI,GAAAD,QAAAkH,GXikBM,SAAUjH,EAAQD,EAASH,GYrmBjC,GAAA+G,GAAA/G,EAAA,GAGA+F,EAAAgB,EAAAhB,MAEA3F,GAAAD,QAAA4F,GZ4mBM,SAAU3F,EAAQD,EAASH,IajnBjC,SAAAsI,GACA,GAAA1B,GAAA,gBAAA0B,SAAAxH,iBAAAwH,CAEAlI,GAAAD,QAAAyG,IbqnB6BrG,KAAKJ,EAASH,EAAoB,MAIzD,SAAUI,EAAQD,Gc5nBxB,GAAAoI,EAGAA,GAAA,WACA,MAAAhD,QAGA,KAEAgD,KAAAvB,SAAA,qBAAAwB,MAAA,QACC,MAAAR,GAED,gBAAAS,UACAF,EAAAE,QAOArI,EAAAD,QAAAoI,GdmoBM,SAAUnI,EAAQD,GevnBxB,QAAAuH,GAAA5D,EAAA4E,GACA,MAAA5E,KAAA4E,GAAA5E,OAAA4E,MAGAtI,EAAAD,QAAAuH,Gf8pBM,SAAUtH,EAAQD,GgBlrBxB,QAAAwI,GAAA7E,GACA,MAAAA,GAGA1D,EAAAD,QAAAwI,GhBysBM,SAAUvI,EAAQD,GiBhsBxB,QAAAiH,GAAAtD,GACA,sBAAAA,IACAA,GAAA,GAAAA,EAAA,MAAAA,GAAA8E,EA9BA,GAAAA,GAAA,gBAiCAxI,GAAAD,QAAAiH,GjBouBM,SAAUhH,EAAQD,GkBxvBxB,QAAA0I,GAAA/E,EAAA9B,GAEA,SADAA,EAAA,MAAAA,EAAA4G,EAAA5G,KAEA,gBAAA8B,IAAAgF,EAAAC,KAAAjF,KACAA,GAAA,GAAAA,EAAA,MAAAA,EAAA9B,EAjBA,GAAA4G,GAAA,iBAGAE,EAAA,kBAiBA1I,GAAAD,QAAA0I,GlB6wBM,SAAUzI,EAAQD,GmBxxBxB,QAAA6I,GAAAlF,GACA,GAAAmF,GAAAnF,KAAAoC,WAGA,OAAApC,MAFA,kBAAAmF,MAAA1H,WAAAqG,GAXA,GAAAA,GAAA9G,OAAAS,SAgBAnB,GAAAD,QAAA6I,GnByyBM,SAAU5I,EAAQD,GoB1zBxBC,EAAAD,QAAA,SAAAC,GAoBA,MAnBAA,GAAA8I,kBACA9I,EAAA+I,UAAA,aACA/I,EAAAgJ,SAEAhJ,EAAAiJ,WAAAjJ,EAAAiJ,aACAvI,OAAAC,eAAAX,EAAA,UACAa,YAAA,EACAC,IAAA,WACA,MAAAd,GAAAE,KAGAQ,OAAAC,eAAAX,EAAA,MACAa,YAAA,EACAC,IAAA,WACA,MAAAd,GAAAC,KAGAD,EAAA8I,gBAAA,GAEA9I,IpBk0BM,SAAUA,EAAQD,EAASH,GAEjC,YACA,IAAIsJ,GAAgCC,EAA8BC,EAAkCC,EAAYA,EAE5GC,EAA6B,kBAAX3D,SAAoD,gBAApBA,QAAOC,SAAwB,SAAUC,GAAO,aAAcA,IAAS,SAAUA,GAAO,MAAOA,IAAyB,kBAAXF,SAAyBE,EAAIC,cAAgBH,QAAUE,IAAQF,OAAOxE,UAAY,eAAkB0E;;;;;;CqBr1BvQ,SAAU0D,GAAG,GAAoB,WAAjBD,EAAOvJ,QAAoC,KAATC,EAAsBA,EAAOD,QAAQwJ,QAAS,CAA2CJ,KAAAD,EAAA,MAAArH,MAAAuH,EAAA,kBAAAF,KAAAM,MAAAzJ,EAAAoJ,GAAAD,KAAAlJ,EAAAD,QAAAqJ,KAA0L,WAAW,GAAIK,EAAsB,OAAQ,SAAS7B,GAAE8B,EAAE3I,EAAE4I,GAAG,QAASrI,GAAEb,EAAEmJ,GAAG,IAAI7I,EAAEN,GAAG,CAAC,IAAIiJ,EAAEjJ,GAAG,CAAC,GAAIoJ,GAAkB,kBAATR,IAAqBA,CAAQ,KAAIO,GAAGC,EAAE,MAAOR,GAAE5I,GAAE,EAAI,IAAGR,EAAE,MAAOA,GAAEQ,GAAE,EAAI,IAAI8I,GAAE,GAAI9D,OAAM,uBAAuBhF,EAAE,IAAK,MAAM8I,GAAEO,KAAK,mBAAmBP,EAAE,GAAIrJ,GAAEa,EAAEN,IAAIV,WAAY2J,GAAEjJ,GAAG,GAAGN,KAAKD,EAAEH,QAAQ,SAAS6H,GAAG,GAAI7G,GAAE2I,EAAEjJ,GAAG,GAAGmH,EAAG,OAAOtG,GAAEP,GAAI6G,IAAI1H,EAAEA,EAAEH,QAAQ6H,EAAE8B,EAAE3I,EAAE4I,GAAG,MAAO5I,GAAEN,GAAGV,QAAkD,IAAI,GAA1CE,GAAkB,kBAAToJ,IAAqBA,EAAgB5I,EAAE,EAAEA,EAAEkJ,EAAE/H,OAAOnB,IAAIa,EAAEqI,EAAElJ,GAAI,OAAOa,KAAKyI,GAAG,SAASV,EAAQrJ,EAAOD,GAuBx0B,QAASiK,GAASC,EAASC,GACvB,KAAOD,GAAWA,EAAQE,WAAaC,GAAoB,CACvD,GAA+B,kBAApBH,GAAQI,SACfJ,EAAQI,QAAQH,GAClB,MAAOD,EAETA,GAAUA,EAAQK,YA5B1B,GAAIF,GAAqB,CAKzB,IAAuB,mBAAZG,WAA4BA,QAAQpJ,UAAUkJ,QAAS,CAC9D,GAAIG,GAAQD,QAAQpJ,SAEpBqJ,GAAMH,QAAUG,EAAMC,iBACND,EAAME,oBACNF,EAAMG,mBACNH,EAAMI,kBACNJ,EAAMK,sBAoB1B7K,EAAOD,QAAUiK,OAEXc,GAAG,SAASzB,EAAQrJ,EAAOD,GAajC,QAASgL,GAASd,EAASC,EAAUpD,EAAMkE,EAAUC,GACjD,GAAIC,GAAaC,EAAS3B,MAAMrE,KAAMxD,UAItC,OAFAsI,GAAQmB,iBAAiBtE,EAAMoE,EAAYD,IAGvCI,QAAS,WACLpB,EAAQqB,oBAAoBxE,EAAMoE,EAAYD,KAc1D,QAASE,GAASlB,EAASC,EAAUpD,EAAMkE,GACvC,MAAO,UAASpD,GACZA,EAAE2D,eAAiBvB,EAAQpC,EAAE4D,OAAQtB,GAEjCtC,EAAE2D,gBACFP,EAAS7K,KAAK8J,EAASrC,IAtCnC,GAAIoC,GAAUX,EAAQ,YA2CtBrJ,GAAOD,QAAUgL,IAEdU,YAAY,IAAIC,GAAG,SAASrC,EAAQrJ,EAAOD,GAO9CA,EAAQ4L,KAAO,SAASjI,GACpB,WAAiB7B,KAAV6B,GACAA,YAAiBkI,cACE,IAAnBlI,EAAMyG,UASjBpK,EAAQ8L,SAAW,SAASnI,GACxB,GAAIoD,GAAOpG,OAAOS,UAAU2K,SAAS3L,KAAKuD,EAE1C,YAAiB7B,KAAV6B,IACU,sBAAToD,GAAyC,4BAATA,IAChC,UAAYpD,KACK,IAAjBA,EAAM9B,QAAgB7B,EAAQ4L,KAAKjI,EAAM,MASrD3D,EAAQgM,OAAS,SAASrI,GACtB,MAAwB,gBAAVA,IACPA,YAAiBsI,SAS5BjM,EAAQkM,GAAK,SAASvI,GAGlB,MAAgB,sBAFLhD,OAAOS,UAAU2K,SAAS3L,KAAKuD,SAKxCwI,GAAG,SAAS7C,EAAQrJ,EAAOD,GAajC,QAASoM,GAAOX,EAAQ1E,EAAMkE,GAC1B,IAAKQ,IAAW1E,IAASkE,EACrB,KAAM,IAAIvF,OAAM,6BAGpB,KAAK2G,EAAGL,OAAOjF,GACX,KAAM,IAAIuF,WAAU,mCAGxB,KAAKD,EAAGH,GAAGjB,GACP,KAAM,IAAIqB,WAAU,oCAGxB,IAAID,EAAGT,KAAKH,GACR,MAAOc,GAAWd,EAAQ1E,EAAMkE,EAE/B,IAAIoB,EAAGP,SAASL,GACjB,MAAOe,GAAef,EAAQ1E,EAAMkE,EAEnC,IAAIoB,EAAGL,OAAOP,GACf,MAAOgB,GAAehB,EAAQ1E,EAAMkE,EAGpC,MAAM,IAAIqB,WAAU,6EAa5B,QAASC,GAAWX,EAAM7E,EAAMkE,GAG5B,MAFAW,GAAKP,iBAAiBtE,EAAMkE,IAGxBK,QAAS,WACLM,EAAKL,oBAAoBxE,EAAMkE,KAc3C,QAASuB,GAAeV,EAAU/E,EAAMkE,GAKpC,MAJAyB,OAAMtL,UAAUuL,QAAQvM,KAAK0L,EAAU,SAASF,GAC5CA,EAAKP,iBAAiBtE,EAAMkE,MAI5BK,QAAS,WACLoB,MAAMtL,UAAUuL,QAAQvM,KAAK0L,EAAU,SAASF,GAC5CA,EAAKL,oBAAoBxE,EAAMkE,OAe/C,QAASwB,GAAetC,EAAUpD,EAAMkE,GACpC,MAAOD,GAAS4B,SAASC,KAAM1C,EAAUpD,EAAMkE,GA3FnD,GAAIoB,GAAK/C,EAAQ,QACb0B,EAAW1B,EAAQ,WA6FvBrJ,GAAOD,QAAUoM,IAEdU,OAAO,EAAE9B,SAAW,IAAI+B,GAAG,SAASzD,EAAQrJ,EAAOD,GACtD,QAASgN,GAAO9C,GACZ,GAAI+C,EAEJ,IAAyB,WAArB/C,EAAQgD,SACRhD,EAAQiD,QAERF,EAAe/C,EAAQvG,UAEtB,IAAyB,UAArBuG,EAAQgD,UAA6C,aAArBhD,EAAQgD,SAAyB,CACtE,GAAIE,GAAalD,EAAQmD,aAAa,WAEjCD,IACDlD,EAAQoD,aAAa,WAAY,IAGrCpD,EAAQ8C,SACR9C,EAAQqD,kBAAkB,EAAGrD,EAAQvG,MAAM9B,QAEtCuL,GACDlD,EAAQsD,gBAAgB,YAG5BP,EAAe/C,EAAQvG,UAEtB,CACGuG,EAAQmD,aAAa,oBACrBnD,EAAQiD,OAGZ,IAAIM,GAAYnF,OAAOoF,eACnBC,EAAQf,SAASgB,aAErBD,GAAME,mBAAmB3D,GACzBuD,EAAUK,kBACVL,EAAUM,SAASJ,GAEnBV,EAAeQ,EAAU1B,WAG7B,MAAOkB,GAGXhN,EAAOD,QAAUgN,OAEXgB,GAAG,SAAS1E,EAAQrJ,EAAOD,GACjC,QAASiO,MAKTA,EAAE7M,WACA8M,GAAI,SAAU1N,EAAMyK,EAAUkD,GAC5B,GAAItG,GAAIzC,KAAKyC,IAAMzC,KAAKyC,KAOxB,QALCA,EAAErH,KAAUqH,EAAErH,QAAa4N,MAC1BlC,GAAIjB,EACJkD,IAAKA,IAGA/I,MAGTiJ,KAAM,SAAU7N,EAAMyK,EAAUkD,GAE9B,QAAS/C,KACPzE,EAAK2H,IAAI9N,EAAM4K,GACfH,EAASxB,MAAM0E,EAAKvM,WAHtB,GAAI+E,GAAOvB,IAOX,OADAgG,GAASmD,EAAItD,EACN7F,KAAK8I,GAAG1N,EAAM4K,EAAU+C,IAGjCK,KAAM,SAAUhO,GACd,GAAImB,MAAU8M,MAAMrO,KAAKwB,UAAW,GAChC8M,IAAWtJ,KAAKyC,IAAMzC,KAAKyC,OAASrH,QAAaiO,QACjDvO,EAAI,EACJyO,EAAMD,EAAO7M,MAEjB,KAAK3B,EAAGA,EAAIyO,EAAKzO,IACfwO,EAAOxO,GAAGgM,GAAGzC,MAAMiF,EAAOxO,GAAGiO,IAAKxM,EAGpC,OAAOyD,OAGTkJ,IAAK,SAAU9N,EAAMyK,GACnB,GAAIpD,GAAIzC,KAAKyC,IAAMzC,KAAKyC,MACpB+G,EAAO/G,EAAErH,GACTqO,IAEJ,IAAID,GAAQ3D,EACV,IAAK,GAAI/K,GAAI,EAAGyO,EAAMC,EAAK/M,OAAQ3B,EAAIyO,EAAKzO,IACtC0O,EAAK1O,GAAGgM,KAAOjB,GAAY2D,EAAK1O,GAAGgM,GAAGqC,IAAMtD,GAC9C4D,EAAWT,KAAKQ,EAAK1O,GAY3B,OAJC2O,GAAWhN,OACRgG,EAAErH,GAAQqO,QACHhH,GAAErH,GAEN4E,OAIXnF,EAAOD,QAAUiO,OAEXa,GAAG,SAASxF,EAAQrJ,EAAOD,IACjC,SAAWmI,EAAQ4G,GACf,GAAsB,kBAAXrF,IAAyBA,EAAOsF,IACvCtF,GAAQ,SAAU,UAAWqF,OAC1B,QAAuB,KAAZ/O,EACd+O,EAAQ9O,EAAQqJ,EAAQ,eACrB,CACH,GAAI2F,IACAjP,WAEJ+O,GAAQE,EAAK9G,EAAO6E,QACpB7E,EAAO+G,gBAAkBD,EAAIjP,UAElCoF,KAAM,SAAUnF,EAAQkP,GAiBvB,QAASC,GAAgBC,EAAUC,GAC/B,KAAMD,YAAoBC,IACtB,KAAM,IAAIhD,WAAU,qCAhB5B,GAAIiD,GAEJ,SAAgCzJ,GAC5B,MAAOA,IAAOA,EAAI7E,WAAa6E,GAC3BX,QAASW,IAJqBqJ,GAQlC9J,EAA4B,kBAAXO,SAAoD,WAA3B2D,EAAO3D,OAAOC,UAAwB,SAAUC,GAC1F,gBAAcA,EAAd,YAAAyD,EAAczD,IACd,SAAUA,GACV,MAAOA,IAAyB,kBAAXF,SAAyBE,EAAIC,cAAgBH,QAAUE,IAAQF,OAAOxE,UAAY,aAAhG,KAAkH0E,EAAlH,YAAAyD,EAAkHzD,IASzH0J,EAAe,WACf,QAASC,GAAiBhE,EAAQiE,GAC9B,IAAK,GAAIxP,GAAI,EAAGA,EAAIwP,EAAM7N,OAAQ3B,IAAK,CACnC,GAAIyP,GAAaD,EAAMxP,EACvByP,GAAW7O,WAAa6O,EAAW7O,aAAc,EACjD6O,EAAW9O,cAAe,EACtB,SAAW8O,KAAYA,EAAWjI,UAAW,GACjD/G,OAAOC,eAAe6K,EAAQkE,EAAWtI,IAAKsI,IAItD,MAAO,UAAUL,EAAaM,EAAYC,GAGtC,MAFID,IAAYH,EAAiBH,EAAYlO,UAAWwO,GACpDC,GAAaJ,EAAiBH,EAAaO,GACxCP,MAIXQ,EAAkB,WAIlB,QAASA,GAAgBC,GACrBX,EAAgBhK,KAAM0K,GAEtB1K,KAAK4K,eAAeD,GACpB3K,KAAK6K,gBAmKT,MA1JAT,GAAaM,IACTzI,IAAK,iBACL1D,MAAO,WACH,GAAIoM,GAAUnO,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,KAE7EwD,MAAK1D,OAASqO,EAAQrO,OACtB0D,KAAK8K,UAAYH,EAAQG,UACzB9K,KAAK+K,QAAUJ,EAAQI,QACvB/K,KAAKqG,OAASsE,EAAQtE,OACtBrG,KAAKgL,KAAOL,EAAQK,KACpBhL,KAAKiL,QAAUN,EAAQM,QAEvBjL,KAAK6H,aAAe,MAGxB5F,IAAK,gBACL1D,MAAO,WACCyB,KAAKgL,KACLhL,KAAKkL,aACElL,KAAKqG,QACZrG,KAAKmL,kBAIblJ,IAAK,aACL1D,MAAO,WACH,GAAI6M,GAAQpL,KAERqL,EAAwD,OAAhD7D,SAAS8D,gBAAgBC,aAAa,MAElDvL,MAAKwL,aAELxL,KAAKyL,oBAAsB,WACvB,MAAOL,GAAMI,cAEjBxL,KAAK0L,YAAc1L,KAAK8K,UAAU7E,iBAAiB,QAASjG,KAAKyL,uBAAwB,EAEzFzL,KAAK2L,SAAWnE,SAASoE,cAAc,YAEvC5L,KAAK2L,SAASE,MAAMC,SAAW,OAE/B9L,KAAK2L,SAASE,MAAME,OAAS,IAC7B/L,KAAK2L,SAASE,MAAMG,QAAU,IAC9BhM,KAAK2L,SAASE,MAAMI,OAAS,IAE7BjM,KAAK2L,SAASE,MAAMK,SAAW,WAC/BlM,KAAK2L,SAASE,MAAMR,EAAQ,QAAU,QAAU,SAEhD,IAAIc,GAAYjJ,OAAOkJ,aAAe5E,SAAS8D,gBAAgBe,SAC/DrM,MAAK2L,SAASE,MAAMS,IAAMH,EAAY,KAEtCnM,KAAK2L,SAASzD,aAAa,WAAY,IACvClI,KAAK2L,SAASpN,MAAQyB,KAAKgL,KAE3BhL,KAAK8K,UAAUyB,YAAYvM,KAAK2L,UAEhC3L,KAAK6H,cAAe,EAAIsC,EAASpK,SAASC,KAAK2L,UAC/C3L,KAAKwM,cAGTvK,IAAK,aACL1D,MAAO,WACCyB,KAAK0L,cACL1L,KAAK8K,UAAU3E,oBAAoB,QAASnG,KAAKyL,qBACjDzL,KAAK0L,YAAc,KACnB1L,KAAKyL,oBAAsB,MAG3BzL,KAAK2L,WACL3L,KAAK8K,UAAU2B,YAAYzM,KAAK2L,UAChC3L,KAAK2L,SAAW,SAIxB1J,IAAK,eACL1D,MAAO,WACHyB,KAAK6H,cAAe,EAAIsC,EAASpK,SAASC,KAAKqG,QAC/CrG,KAAKwM,cAGTvK,IAAK,WACL1D,MAAO,WACH,GAAImO,OAAY,EAEhB,KACIA,EAAYlF,SAASmF,YAAY3M,KAAK1D,QACxC,MAAOsQ,GACLF,GAAY,EAGhB1M,KAAK6M,aAAaH,MAGtBzK,IAAK,eACL1D,MAAO,SAAsBmO,GACzB1M,KAAK+K,QAAQ3B,KAAKsD,EAAY,UAAY,SACtCpQ,OAAQ0D,KAAK1D,OACb0O,KAAMhL,KAAK6H,aACXoD,QAASjL,KAAKiL,QACd6B,eAAgB9M,KAAK8M,eAAeC,KAAK/M,WAIjDiC,IAAK,iBACL1D,MAAO,WACCyB,KAAKiL,SACLjL,KAAKiL,QAAQlD,QAGjB7E,OAAOoF,eAAeI,qBAG1BzG,IAAK,UACL1D,MAAO,WACHyB,KAAKwL,gBAGTvJ,IAAK,SACL+K,IAAK,WACD,GAAI1Q,GAASE,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,GAAK,MAIjF,IAFAwD,KAAKiN,QAAU3Q,EAEM,SAAjB0D,KAAKiN,SAAuC,QAAjBjN,KAAKiN,QAChC,KAAM,IAAI3M,OAAM,uDAGxB3E,IAAK,WACD,MAAOqE,MAAKiN,WAGhBhL,IAAK,SACL+K,IAAK,SAAa3G,GACd,OAAe3J,KAAX2J,EAAsB,CACtB,IAAIA,GAA8E,gBAAjD,KAAXA,EAAyB,YAAcpG,EAAQoG,KAA6C,IAApBA,EAAOrB,SAWjG,KAAM,IAAI1E,OAAM,8CAVhB,IAAoB,SAAhBN,KAAK1D,QAAqB+J,EAAO4B,aAAa,YAC9C,KAAM,IAAI3H,OAAM,oFAGpB,IAAoB,QAAhBN,KAAK1D,SAAqB+J,EAAO4B,aAAa,aAAe5B,EAAO4B,aAAa,aACjF,KAAM,IAAI3H,OAAM,yGAGpBN,MAAKkN,QAAU7G,IAM3B1K,IAAK,WACD,MAAOqE,MAAKkN,YAIbxC,IAGX7P,GAAOD,QAAU8P,MAGlB9C,OAAS,IAAIuF,GAAG,SAASjJ,EAAQrJ,EAAOD,IAC3C,SAAWmI,EAAQ4G,GACf,GAAsB,kBAAXrF,IAAyBA,EAAOsF,IACvCtF,GAAQ,SAAU,qBAAsB,eAAgB,iBAAkBqF,OACvE,QAAuB,KAAZ/O,EACd+O,EAAQ9O,EAAQqJ,EAAQ,sBAAuBA,EAAQ,gBAAiBA,EAAQ,sBAC7E,CACH,GAAI2F,IACAjP,WAEJ+O,GAAQE,EAAK9G,EAAO+G,gBAAiB/G,EAAOqK,YAAarK,EAAOsK,cAChEtK,EAAOuK,UAAYzD,EAAIjP,UAE5BoF,KAAM,SAAUnF,EAAQ0S,EAAkBC,EAAcC,GASvD,QAASC,GAAuBhN,GAC5B,MAAOA,IAAOA,EAAI7E,WAAa6E,GAC3BX,QAASW,GAUjB,QAASsJ,GAAgBC,EAAUC,GAC/B,KAAMD,YAAoBC,IACtB,KAAM,IAAIhD,WAAU,qCAsB5B,QAASyG,GAA2BpM,EAAMvG,GACtC,IAAKuG,EACD,KAAM,IAAIqM,gBAAe,4DAG7B,QAAO5S,GAAyB,gBAAhB,KAAOA,EAAP,YAAAmJ,EAAOnJ,KAAqC,kBAATA,GAA8BuG,EAAPvG,EAG9E,QAAS6S,GAAUC,EAAUC,GACzB,GAA0B,kBAAfA,IAA4C,OAAfA,EACpC,KAAM,IAAI7G,WAAU,qEAAoE6G,EAApE,YAAA5J,EAAoE4J,IAG5FD,GAAS9R,UAAYT,OAAOyS,OAAOD,GAAcA,EAAW/R,WACxD2E,aACIpC,MAAOuP,EACPpS,YAAY,EACZ4G,UAAU,EACV7G,cAAc,KAGlBsS,IAAYxS,OAAO0S,eAAiB1S,OAAO0S,eAAeH,EAAUC,GAAcD,EAASI,UAAYH,GAqH/G,QAASI,GAAkBC,EAAQtJ,GAC/B,GAAIuJ,GAAY,kBAAoBD,CAEpC,IAAKtJ,EAAQmD,aAAaoG,GAI1B,MAAOvJ,GAAQyG,aAAa8C,GA3LhC,GAAIC,GAAoBZ,EAAuBH,GAE3CgB,EAAgBb,EAAuBF,GAEvCgB,EAAiBd,EAAuBD,GAQxCxN,EAA4B,kBAAXO,SAAoD,WAA3B2D,EAAO3D,OAAOC,UAAwB,SAAUC,GAC1F,gBAAcA,EAAd,YAAAyD,EAAczD,IACd,SAAUA,GACV,MAAOA,IAAyB,kBAAXF,SAAyBE,EAAIC,cAAgBH,QAAUE,IAAQF,OAAOxE,UAAY,aAAhG,KAAkH0E,EAAlH,YAAAyD,EAAkHzD,IASzH0J,EAAe,WACf,QAASC,GAAiBhE,EAAQiE,GAC9B,IAAK,GAAIxP,GAAI,EAAGA,EAAIwP,EAAM7N,OAAQ3B,IAAK,CACnC,GAAIyP,GAAaD,EAAMxP,EACvByP,GAAW7O,WAAa6O,EAAW7O,aAAc,EACjD6O,EAAW9O,cAAe,EACtB,SAAW8O,KAAYA,EAAWjI,UAAW,GACjD/G,OAAOC,eAAe6K,EAAQkE,EAAWtI,IAAKsI,IAItD,MAAO,UAAUL,EAAaM,EAAYC,GAGtC,MAFID,IAAYH,EAAiBH,EAAYlO,UAAWwO,GACpDC,GAAaJ,EAAiBH,EAAaO,GACxCP,MA4BXuE,EAAY,SAAUC,GAOtB,QAASD,GAAUxD,EAASN,GACxBX,EAAgBhK,KAAMyO,EAEtB,IAAIrD,GAAQuC,EAA2B3N,MAAOyO,EAAUP,WAAa3S,OAAOoT,eAAeF,IAAYzT,KAAKgF,MAI5G,OAFAoL,GAAMR,eAAeD,GACrBS,EAAMwD,YAAY3D,GACXG,EA4FX,MAzGAyC,GAAUY,EAAWC,GAuBrBtE,EAAaqE,IACTxM,IAAK,iBACL1D,MAAO,WACH,GAAIoM,GAAUnO,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,KAE7EwD,MAAK1D,OAAmC,kBAAnBqO,GAAQrO,OAAwBqO,EAAQrO,OAAS0D,KAAK6O,cAC3E7O,KAAKqG,OAAmC,kBAAnBsE,GAAQtE,OAAwBsE,EAAQtE,OAASrG,KAAK8O,cAC3E9O,KAAKgL,KAA+B,kBAAjBL,GAAQK,KAAsBL,EAAQK,KAAOhL,KAAK+O,YACrE/O,KAAK8K,UAA2C,WAA/B7K,EAAQ0K,EAAQG,WAA0BH,EAAQG,UAAYtD,SAASC,QAG5FxF,IAAK,cACL1D,MAAO,SAAqB0M,GACxB,GAAI+D,GAAShP,IAEbA,MAAKgG,UAAW,EAAIwI,EAAezO,SAASkL,EAAS,QAAS,SAAUxI,GACpE,MAAOuM,GAAOC,QAAQxM,QAI9BR,IAAK,UACL1D,MAAO,SAAiBkE,GACpB,GAAIwI,GAAUxI,EAAE2D,gBAAkB3D,EAAEyM,aAEhClP,MAAK8J,kBACL9J,KAAK8J,gBAAkB,MAG3B9J,KAAK8J,gBAAkB,GAAIwE,GAAkBvO,SACzCzD,OAAQ0D,KAAK1D,OAAO2O,GACpB5E,OAAQrG,KAAKqG,OAAO4E,GACpBD,KAAMhL,KAAKgL,KAAKC,GAChBH,UAAW9K,KAAK8K,UAChBG,QAASA,EACTF,QAAS/K,UAIjBiC,IAAK,gBACL1D,MAAO,SAAuB0M,GAC1B,MAAOkD,GAAkB,SAAUlD,MAGvChJ,IAAK,gBACL1D,MAAO,SAAuB0M,GAC1B,GAAIlG,GAAWoJ,EAAkB,SAAUlD,EAE3C,IAAIlG,EACA,MAAOyC,UAAS2H,cAAcpK,MAItC9C,IAAK,cACL1D,MAAO,SAAqB0M,GACxB,MAAOkD,GAAkB,OAAQlD,MAGrChJ,IAAK,UACL1D,MAAO,WACHyB,KAAKgG,SAASE,UAEVlG,KAAK8J,kBACL9J,KAAK8J,gBAAgB5D,UACrBlG,KAAK8J,gBAAkB,WAI/B7H,IAAK,cACL1D,MAAO,WACH,GAAIjC,GAASE,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,IAAM,OAAQ,OAEtF4S,EAA4B,gBAAX9S,IAAuBA,GAAUA,EAClD+S,IAAY7H,SAAS8H,qBAMzB,OAJAF,GAAQ7H,QAAQ,SAAUjL,GACtB+S,EAAUA,KAAa7H,SAAS8H,sBAAsBhT,KAGnD+S,MAIRZ,GACTF,EAAcxO,QAiBhBlF,GAAOD,QAAU6T,MAGlBc,qBAAqB,EAAEC,gBAAgB,EAAEC,eAAe,SAAS,IAAI,MrBq2BlE,SAAU5U,EAAQD,EAASH,GAEjC,YsB3nDAA,GAAQ,IACRA,EAAQ,IACRA,EAAQ,IACRA,EAAQ,IACRA,EAAQ,IACRA,EAAQ,IACRA,EAAQ,IACRA,EAAQ,IACRA,EAAQ,IACRA,EAAQ,KtBkoDF,SAAUI,EAAQD,EAASH,GAEjC,YuB7oDA,IAAAiV,GAAAjV,EAAA,GvBkpDIkV,EAEJ,SAAgCjP,GAAO,MAAOA,IAAOA,EAAI7E,WAAa6E,GAAQX,QAASW,IAFhDgP,IuBhpDrC,SAAUE,GAGR,GAAIC,IACArV,WAEAsV,KAAM,WAgBF,QAASC,GAAuBC,GAC5B,GAAIC,GAAQD,EAAME,KAAK,4BACnBC,EAAMC,SAASH,EAAMjF,OAAQ,KAAO,IACpCqF,EAAUL,EAAME,KAAK,4BACrB1L,SAAGtJ,SAAGoV,QAEV9L,GAAI6L,EAAQE,KAAK,KACjBrV,EAAIsV,KAAKC,IAAM,EAAFjM,GAET2L,EAAM,IAAKA,EAAM,GACjBA,EAAM,MAAOA,EAAM,KAEvBG,GAAQ,IAAIH,GAAK,IAAKjV,EAEtBmV,EAAQK,KAAMC,iBAAkBL,IAGpC,QAASM,KAGLhB,EAAE,0CAA0CiB,KAAK,WAC7Cd,EAAuBH,EAAE5P,SAI7B4P,EAAE,0CAA0CiB,KAAK,WAC7Cd,EAAuBH,EAAE5P,SAI7B4P,EAAE,uCAAuCiB,KAAK,WAC1Cd,EAAuBH,EAAE5P,SA5C1C4P,EAAE,QAAQ9G,GAAG,SAAU,cAAe,WACrC,GAAI/L,GAAM6S,EAAE5P,MAAMmQ,KACdpT,GAAIN,OAAS,IAChBqU,SAASC,KAAOhU,KAKlB6S,EAAE,qBAAqB9G,GAAG,QAAS,SAAU,WACzC,GAAMkI,GAAYpB,EAAE5P,MAAMiR,SAASV,KAAK,UACxCZ,GAAA5P,QAAQ/B,OAAOC,QAAS+S,KAsCnB9N,OAAOgO,4BAA8B,WACjCC,WAAWP,EAAgC,MAE/ChB,EAAE,WAAYuB,WAAWP,EAAgC,QAG7DQ,WAAY,SAAUvW,GAClB,MAAKmF,MAAK/D,eAAgBpB,IACtBmF,KAAKxF,QAASK,GAAWmF,KAAMnF,GAASiV,OACjC9P,KAAKxF,QAASK,QAK7BwW,UAAW,SAAUxW,GACjB,WAAuC,KAA3BmF,KAAKxF,QAASK,GACfmF,KAAKxF,QAASK,GAEdmF,KAAKoR,WAAYvW,IAKpCgV,GAAWyB,OAEPC,iBACIC,KAAM,WACF5B,EAAG,uCAAuC3E,QAAS,WAI3DwG,KAAM,SAAUlV,EAAM1B,GAGlB,MAFA0B,GAAKD,OAAS,YACdC,EAAK1B,OAASA,EACP+U,EAAEvS,MACLN,IAAKY,QACLhB,OAAQ,OACRJ,KAAMA,MAKlBsT,EAAW6B,SAEP5B,KAAM,WACFF,EAAG,4CAA4C+B,MAAO,SAAUlP,GAC5DA,EAAEmP,gBACOhC,GAAE5P,MAAMzD,KAAM,MACXqT,EAAE5P,MAAMzD,KAAM,QAE1BqT,GAAE5P,MAAMiR,OAAQ,UAAWY,WAKvC3O,OAAO2M,WAAaA,GAErBzS,SvBwpDG,SAAUvC,EAAQD,EAASH,GwB5wDjC,GAAAuH,GAAAvH,EAAA,GACAqX,EAAArX,EAAA,IACAsX,EAAAtX,EAAA,IACAmH,EAAAnH,EAAA,GACAgJ,EAAAhJ,EAAA,IACAuX,EAAAvX,EAAA,IAGA4H,EAAA9G,OAAAS,UAGAC,EAAAoG,EAAApG,eAkCAgW,EAAAF,EAAA,SAAAjW,EAAAoW,GACA,GAAAzO,EAAAyO,IAAAtQ,EAAAsQ,GAEA,WADAJ,GAAAI,EAAAF,EAAAE,GAAApW,EAGA,QAAAmG,KAAAiQ,GACAjW,EAAAjB,KAAAkX,EAAAjQ,IACAD,EAAAlG,EAAAmG,EAAAiQ,EAAAjQ,KAKApH,GAAAD,QAAAqX,GxBmxDM,SAAUpX,EAAQD,EAASH,GyBj0DjC,QAAA8H,GAAAzG,EAAAmG,GACA,GAAA1D,GAAA4T,EAAArW,EAAAmG,EACA,OAAAmQ,GAAA7T,SAAA7B,GAbA,GAAA0V,GAAA3X,EAAA,IACA0X,EAAA1X,EAAA,GAeAI,GAAAD,QAAA2H,GzBm1DM,SAAU1H,EAAQD,EAASH,G0B7zDjC,QAAA2X,GAAA7T,GACA,SAAAmD,EAAAnD,IAAA8T,EAAA9T,MAGAuD,EAAAvD,GAAA+T,EAAAC,GACA/O,KAAAgP,EAAAjU,IA3CA,GAAAuD,GAAArH,EAAA,GACA4X,EAAA5X,EAAA,IACAiH,EAAAjH,EAAA,GACA+X,EAAA/X,EAAA,IAMAgY,EAAA,sBAGAF,EAAA,8BAGAG,EAAAjR,SAAAzF,UACAqG,EAAA9G,OAAAS,UAGA2W,EAAAD,EAAA/L,SAGA1K,EAAAoG,EAAApG,eAGAqW,EAAAM,OAAA,IACAD,EAAA3X,KAAAiB,GAAA4W,QAAAJ,EAAA,QACAI,QAAA,sEAmBAhY,GAAAD,QAAAwX,G1B02DM,SAAUvX,EAAQD,EAASH,G2B/3DjC,QAAAyG,GAAA3C,GACA,GAAAuU,GAAA7W,EAAAjB,KAAAuD,EAAA0C,GACAyB,EAAAnE,EAAA0C,EAEA,KACA1C,EAAA0C,OAAAvE,EACA,IAAAqW,IAAA,EACG,MAAAtQ,IAEH,GAAAuQ,GAAAC,EAAAjY,KAAAuD,EAQA,OAPAwU,KACAD,EACAvU,EAAA0C,GAAAyB,QAEAnE,GAAA0C,IAGA+R,EA1CA,GAAAxS,GAAA/F,EAAA,IAGA4H,EAAA9G,OAAAS,UAGAC,EAAAoG,EAAApG,eAOAgX,EAAA5Q,EAAAsE,SAGA1F,EAAAT,IAAAY,gBAAA1E,EA6BA7B,GAAAD,QAAAsG,G3B+5DM,SAAUrG,EAAQD,G4B37DxB,QAAAuG,GAAA5C,GACA,MAAA0U,GAAAjY,KAAAuD,GAjBA,GAAA8D,GAAA9G,OAAAS,UAOAiX,EAAA5Q,EAAAsE,QAaA9L,GAAAD,QAAAuG,G5Bm9DM,SAAUtG,EAAQD,EAASH,G6Bz9DjC,QAAA4X,GAAA7P,GACA,QAAA0Q,OAAA1Q,GAhBA,GAAA2Q,GAAA1Y,EAAA,IAGAyY,EAAA,WACA,GAAAE,GAAA,SAAAC,KAAAF,KAAAnB,MAAAmB,EAAAnB,KAAAsB,UAAA,GACA,OAAAF,GAAA,iBAAAA,EAAA,KAcAvY,GAAAD,QAAAyX,G7B++DM,SAAUxX,EAAQD,EAASH,G8BlgEjC,GAAA+G,GAAA/G,EAAA,GAGA0Y,EAAA3R,EAAA,qBAEA3G,GAAAD,QAAAuY,G9BygEM,SAAUtY,EAAQD,G+BjgExB,QAAA4X,GAAAhQ,GACA,SAAAA,EAAA,CACA,IACA,MAAAmQ,GAAA3X,KAAAwH,GACK,MAAAC,IACL,IACA,MAAAD,GAAA,GACK,MAAAC,KAEL,SArBA,GAAAiQ,GAAAjR,SAAAzF,UAGA2W,EAAAD,EAAA/L,QAqBA9L,GAAAD,QAAA4X,G/BqhEM,SAAU3X,EAAQD,GgCtiExB,QAAAuX,GAAArW,EAAAmG,GACA,aAAAnG,MAAAY,GAAAZ,EAAAmG,GAGApH,EAAAD,QAAAuX,GhCqjEM,SAAUtX,EAAQD,EAASH,GiCpjEjC,QAAAqX,GAAAI,EAAA5H,EAAAxO,EAAAyX,GACA,GAAAC,IAAA1X,CACAA,UAKA,KAHA,GAAA2X,IAAA,EACAhX,EAAA6N,EAAA7N,SAEAgX,EAAAhX,GAAA,CACA,GAAAwF,GAAAqI,EAAAmJ,GAEAC,EAAAH,EACAA,EAAAzX,EAAAmG,GAAAiQ,EAAAjQ,KAAAnG,EAAAoW,OACAxV,OAEAA,KAAAgX,IACAA,EAAAxB,EAAAjQ,IAEAuR,EACApR,EAAAtG,EAAAmG,EAAAyR,GAEA1R,EAAAlG,EAAAmG,EAAAyR,GAGA,MAAA5X,GApCA,GAAAkG,GAAAvH,EAAA,GACA2H,EAAA3H,EAAA,EAsCAI,GAAAD,QAAAkX,GjCwkEM,SAAUjX,EAAQD,EAASH,GkCrmEjC,QAAAsX,GAAA4B,GACA,MAAAC,GAAA,SAAA9X,EAAA+X,GACA,GAAAJ,IAAA,EACAhX,EAAAoX,EAAApX,OACA8W,EAAA9W,EAAA,EAAAoX,EAAApX,EAAA,OAAAC,GACAoX,EAAArX,EAAA,EAAAoX,EAAA,OAAAnX,EAWA,KATA6W,EAAAI,EAAAlX,OAAA,qBAAA8W,IACA9W,IAAA8W,OACA7W,GAEAoX,GAAAC,EAAAF,EAAA,GAAAA,EAAA,GAAAC,KACAP,EAAA9W,EAAA,MAAAC,GAAA6W,EACA9W,EAAA,GAEAX,EAAAP,OAAAO,KACA2X,EAAAhX,GAAA,CACA,GAAAyV,GAAA2B,EAAAJ,EACAvB,IACAyB,EAAA7X,EAAAoW,EAAAuB,EAAAF,GAGA,MAAAzX,KAhCA,GAAA8X,GAAAnZ,EAAA,IACAsZ,EAAAtZ,EAAA,GAmCAI,GAAAD,QAAAmX,GlCsnEM,SAAUlX,EAAQD,EAASH,GmC9oEjC,QAAAmZ,GAAApR,EAAAwR,GACA,MAAAC,GAAAC,EAAA1R,EAAAwR,EAAA5Q,GAAAZ,EAAA,IAbA,GAAAY,GAAA3I,EAAA,IACAyZ,EAAAzZ,EAAA,IACAwZ,EAAAxZ,EAAA,GAcAI,GAAAD,QAAAgZ,GnCiqEM,SAAU/Y,EAAQD,EAASH,GoCnqEjC,QAAAyZ,GAAA1R,EAAAwR,EAAAG,GAEA,MADAH,GAAAI,MAAA1X,KAAAsX,EAAAxR,EAAA/F,OAAA,EAAAuX,EAAA,GACA,WAMA,IALA,GAAAlX,GAAAN,UACAiX,GAAA,EACAhX,EAAA2X,EAAAtX,EAAAL,OAAAuX,EAAA,GACAK,EAAA/M,MAAA7K,KAEAgX,EAAAhX,GACA4X,EAAAZ,GAAA3W,EAAAkX,EAAAP,EAEAA,IAAA,CAEA,KADA,GAAAa,GAAAhN,MAAA0M,EAAA,KACAP,EAAAO,GACAM,EAAAb,GAAA3W,EAAA2W,EAGA,OADAa,GAAAN,GAAAG,EAAAE,GACAhQ,EAAA7B,EAAAxC,KAAAsU,IA/BA,GAAAjQ,GAAA5J,EAAA,IAGA2Z,EAAA5D,KAAA+D,GAgCA1Z,GAAAD,QAAAsZ,GpCwrEM,SAAUrZ,EAAQD,GqCjtExB,QAAAyJ,GAAA7B,EAAAgS,EAAA1X,GACA,OAAAA,EAAAL,QACA,aAAA+F,GAAAxH,KAAAwZ,EACA,cAAAhS,GAAAxH,KAAAwZ,EAAA1X,EAAA,GACA,cAAA0F,GAAAxH,KAAAwZ,EAAA1X,EAAA,GAAAA,EAAA,GACA,cAAA0F,GAAAxH,KAAAwZ,EAAA1X,EAAA,GAAAA,EAAA,GAAAA,EAAA,IAEA,MAAA0F,GAAA6B,MAAAmQ,EAAA1X,GAGAjC,EAAAD,QAAAyJ,GrCkuEM,SAAUxJ,EAAQD,EAASH,GsCtvEjC,GAAAga,GAAAha,EAAA,IACAia,EAAAja,EAAA,IAUAwZ,EAAAS,EAAAD,EAEA5Z,GAAAD,QAAAqZ,GtC6vEM,SAAUpZ,EAAQD,EAASH,GuC1wEjC,GAAAka,GAAAla,EAAA,IACAe,EAAAf,EAAA,GACA2I,EAAA3I,EAAA,IAUAga,EAAAjZ,EAAA,SAAAgH,EAAAoE,GACA,MAAApL,GAAAgH,EAAA,YACA/G,cAAA,EACAC,YAAA,EACA6C,MAAAoW,EAAA/N,GACAtE,UAAA,KALAc,CASAvI,GAAAD,QAAA6Z,GvCixEM,SAAU5Z,EAAQD,GwCnxExB,QAAA+Z,GAAApW,GACA,kBACA,MAAAA,IAIA1D,EAAAD,QAAA+Z,GxC6yEM,SAAU9Z,EAAQD,GyCtzExB,QAAA8Z,GAAAlS,GACA,GAAAoS,GAAA,EACAC,EAAA,CAEA,mBACA,GAAAC,GAAAC,IACAC,EAAAC,GAAAH,EAAAD,EAGA,IADAA,EAAAC,EACAE,EAAA,GACA,KAAAJ,GAAAM,EACA,MAAA1Y,WAAA,OAGAoY,GAAA,CAEA,OAAApS,GAAA6B,UAAA3H,GAAAF,YA/BA,GAAA0Y,GAAA,IACAD,EAAA,GAGAF,EAAAI,KAAAC,GA+BAva,GAAAD,QAAA8Z,GzC60EM,SAAU7Z,EAAQD,EAASH,G0Cl2EjC,QAAAsZ,GAAAxV,EAAAkV,EAAA3X,GACA,IAAA4F,EAAA5F,GACA,QAEA,IAAA6F,SAAA8R,EACA,oBAAA9R,EACAC,EAAA9F,IAAAwH,EAAAmQ,EAAA3X,EAAAW,QACA,UAAAkF,GAAA8R,IAAA3X,KAEAqG,EAAArG,EAAA2X,GAAAlV,GAxBA,GAAA4D,GAAA1H,EAAA,IACAmH,EAAAnH,EAAA,GACA6I,EAAA7I,EAAA,IACAiH,EAAAjH,EAAA,EA0BAI,GAAAD,QAAAmZ,G1Cw3EM,SAAUlZ,EAAQD,EAASH,G2Cr3EjC,QAAAuX,GAAAlW,GACA,MAAA8F,GAAA9F,GAAAuZ,EAAAvZ,GAAAwZ,EAAAxZ,GAjCA,GAAAuZ,GAAA5a,EAAA,IACA6a,EAAA7a,EAAA,IACAmH,EAAAnH,EAAA,EAkCAI,GAAAD,QAAAoX,G3C45EM,SAAUnX,EAAQD,EAASH,G4C36EjC,QAAA4a,GAAA9W,EAAAgX,GACA,GAAAC,GAAAC,EAAAlX,GACAmX,GAAAF,GAAAG,EAAApX,GACAqX,GAAAJ,IAAAE,GAAAG,EAAAtX,GACAuX,GAAAN,IAAAE,IAAAE,GAAAG,EAAAxX,GACAyX,EAAAR,GAAAE,GAAAE,GAAAE,EACA9C,EAAAgD,EAAAC,EAAA1X,EAAA9B,OAAAoK,WACApK,EAAAuW,EAAAvW,MAEA,QAAAwF,KAAA1D,IACAgX,IAAAtZ,EAAAjB,KAAAuD,EAAA0D,IACA+T,IAEA,UAAA/T,GAEA2T,IAAA,UAAA3T,GAAA,UAAAA,IAEA6T,IAAA,UAAA7T,GAAA,cAAAA,GAAA,cAAAA,IAEAqB,EAAArB,EAAAxF,KAEAuW,EAAAhK,KAAA/G,EAGA,OAAA+Q,GA7CA,GAAAiD,GAAAxb,EAAA,IACAkb,EAAAlb,EAAA,IACAgb,EAAAhb,EAAA,IACAob,EAAApb,EAAA,IACA6I,EAAA7I,EAAA,IACAsb,EAAAtb,EAAA,IAGA4H,EAAA9G,OAAAS,UAGAC,EAAAoG,EAAApG,cAqCApB,GAAAD,QAAAya,G5Cu8EM,SAAUxa,EAAQD,G6C9+ExB,QAAAqb,GAAAra,EAAAsa,GAIA,IAHA,GAAAzC,IAAA,EACAT,EAAA1L,MAAA1L,KAEA6X,EAAA7X,GACAoX,EAAAS,GAAAyC,EAAAzC,EAEA,OAAAT,GAGAnY,EAAAD,QAAAqb,G7C8/EM,SAAUpb,EAAQD,EAASH,G8CjhFjC,GAAA0b,GAAA1b,EAAA,IACAsH,EAAAtH,EAAA,GAGA4H,EAAA9G,OAAAS,UAGAC,EAAAoG,EAAApG,eAGAma,EAAA/T,EAAA+T,qBAoBAT,EAAAQ,EAAA,WAA8C,MAAA3Z,eAAoB2Z,EAAA,SAAA5X,GAClE,MAAAwD,GAAAxD,IAAAtC,EAAAjB,KAAAuD,EAAA,YACA6X,EAAApb,KAAAuD,EAAA,UAGA1D,GAAAD,QAAA+a,G9CwhFM,SAAU9a,EAAQD,EAASH,G+C9iFjC,QAAA0b,GAAA5X,GACA,MAAAwD,GAAAxD,IAAAuC,EAAAvC,IAAA8X,EAdA,GAAAvV,GAAArG,EAAA,GACAsH,EAAAtH,EAAA,GAGA4b,EAAA,oBAaAxb,GAAAD,QAAAub,G/CkkFM,SAAUtb,EAAQD,GgD5jFxB,GAAA6a,GAAAnO,MAAAmO,OAEA5a,GAAAD,QAAA6a,GhD0lFM,SAAU5a,EAAQD,EAASH,IiDnnFjC,SAAAI,GAAA,GAAA2G,GAAA/G,EAAA,GACA6b,EAAA7b,EAAA,IAGA8b,EAAA,gBAAA3b,UAAAoK,UAAApK,EAGA4b,EAAAD,GAAA,gBAAA1b,UAAAmK,UAAAnK,EAGA4b,EAAAD,KAAA5b,UAAA2b,EAGAG,EAAAD,EAAAjV,EAAAkV,WAAAha,GAGAia,EAAAD,IAAAb,aAAAnZ,GAmBAmZ,EAAAc,GAAAL,CAEAzb,GAAAD,QAAAib,IjDunF6B7a,KAAKJ,EAASH,EAAoB,IAAII,KAI7D,SAAUA,EAAQD,GkDnpFxB,QAAA0b,KACA,SAGAzb,EAAAD,QAAA0b,GlDuqFM,SAAUzb,EAAQD,EAASH,GmDxrFjC,GAAAmc,GAAAnc,EAAA,IACAoc,EAAApc,EAAA,IACAqc,EAAArc,EAAA,IAGAsc,EAAAD,KAAAf,aAmBAA,EAAAgB,EAAAF,EAAAE,GAAAH,CAEA/b,GAAAD,QAAAmb,GnD+rFM,SAAUlb,EAAQD,EAASH,GoDnqFjC,QAAAmc,GAAArY,GACA,MAAAwD,GAAAxD,IACAsD,EAAAtD,EAAA9B,WAAAua,EAAAlW,EAAAvC,IAxDA,GAAAuC,GAAArG,EAAA,GACAoH,EAAApH,EAAA,IACAsH,EAAAtH,EAAA,GA8BAuc,IACAA,GAZA,yBAYAA,EAXA,yBAYAA,EAXA,sBAWAA,EAVA,uBAWAA,EAVA,uBAUAA,EATA,uBAUAA,EATA,8BASAA,EARA,wBASAA,EARA,yBAQA,EACAA,EAjCA,sBAiCAA,EAhCA,kBAiCAA,EApBA,wBAoBAA,EAhCA,oBAiCAA,EApBA,qBAoBAA,EAhCA,iBAiCAA,EAhCA,kBAgCAA,EA/BA,qBAgCAA,EA/BA,gBA+BAA,EA9BA,mBA+BAA,EA9BA,mBA8BAA,EA7BA,mBA8BAA,EA7BA,gBA6BAA,EA5BA,mBA6BAA,EA5BA,qBA4BA,EAcAnc,EAAAD,QAAAgc,GpDguFM,SAAU/b,EAAQD,GqDpxFxB,QAAAic,GAAArU,GACA,gBAAAjE,GACA,MAAAiE,GAAAjE,IAIA1D,EAAAD,QAAAic,GrDkyFM,SAAUhc,EAAQD,EAASH,IsD/yFjC,SAAAI,GAAA,GAAAwG,GAAA5G,EAAA,IAGA8b,EAAA,gBAAA3b,UAAAoK,UAAApK,EAGA4b,EAAAD,GAAA,gBAAA1b,UAAAmK,UAAAnK,EAGA4b,EAAAD,KAAA5b,UAAA2b,EAGAU,EAAAR,GAAApV,EAAA6V,QAGAJ,EAAA,WACA,IACA,MAAAG,MAAAE,SAAAF,EAAAE,QAAA,QACG,MAAA1U,OAGH5H,GAAAD,QAAAkc,ItDmzF6B9b,KAAKJ,EAASH,EAAoB,IAAII,KAI7D,SAAUA,EAAQD,EAASH,GuD5zFjC,QAAA6a,GAAAxZ,GACA,IAAA2H,EAAA3H,GACA,MAAAsb,GAAAtb,EAEA,IAAAkX,KACA,QAAA/Q,KAAA1G,QAAAO,GACAG,EAAAjB,KAAAc,EAAAmG,IAAA,eAAAA,GACA+Q,EAAAhK,KAAA/G,EAGA,OAAA+Q,GA1BA,GAAAvP,GAAAhJ,EAAA,IACA2c,EAAA3c,EAAA,IAGA4H,EAAA9G,OAAAS,UAGAC,EAAAoG,EAAApG,cAsBApB,GAAAD,QAAA0a,GvDm1FM,SAAUza,EAAQD,EAASH,GwDh3FjC,GAAA4c,GAAA5c,EAAA,IAGA2c,EAAAC,EAAA9b,OAAAyW,KAAAzW,OAEAV,GAAAD,QAAAwc,GxDu3FM,SAAUvc,EAAQD,GyDp3FxB,QAAAyc,GAAA7U,EAAA2R,GACA,gBAAAmD,GACA,MAAA9U,GAAA2R,EAAAmD,KAIAzc,EAAAD,QAAAyc,GzDm4FM,SAAUxc,EAAQD,EAASH,IAEL,SAASyc,EAASnU;;;;;;;C0D34F9C,SAAAA,EAAA4G,GACA9O,EAAAD,QAAA+O,KAGC3J,EAAA,WAAqB,YAEtB,SAAAuX,GAAAC,GACA,GAAA7V,SAAA6V,EACA,eAAAA,IAAA,WAAA7V,GAAA,aAAAA,GAGA,QAAAG,GAAA0V,GACA,wBAAAA,GAkCA,QAAAC,GAAAC,GACAC,EAAAD,EAGA,QAAAE,GAAAC,GACAC,EAAAD,EAqBA,QAAAE,KACA,gBAAAC,EACA,WACAA,EAAAC,IAIAC,IAuBA,QAAAA,KAGA,GAAAC,GAAAhH,UACA,mBACA,MAAAgH,GAAAF,EAAA,IAKA,QAAAA,KACA,OAAAnd,GAAA,EAAiBA,EAAAyO,EAASzO,GAAA,IAI1B+K,EAHAuS,EAAAtd,IACAsd,EAAAtd,EAAA,IAIAsd,EAAAtd,OAAA4B,GACA0b,EAAAtd,EAAA,OAAA4B,GAGA6M,EAAA,EA4BA,QAAA/L,GAAA6a,EAAAC,GACA,GAAAC,GAAA/b,UAEAyU,EAAAjR,KAEAwY,EAAA,GAAAxY,MAAAW,YAAA8X,OAEA/b,KAAA8b,EAAAE,KACAC,EAAAH,EAGA,IAAAI,GAAA3H,EAAA2H,MAaA,OAXAA,GACA,WACA,GAAA/S,GAAA0S,EAAAK,EAAA,EACAd,GAAA,WACA,MAAAe,GAAAD,EAAAJ,EAAA3S,EAAAoL,EAAA6H,cAIAC,EAAA9H,EAAAuH,EAAAH,EAAAC,GAGAE,EAkCA,QAAAQ,GAAAld,GAEA,GAAAoO,GAAAlK,IAEA,IAAAlE,GAAA,gBAAAA,MAAA6E,cAAAuJ,EACA,MAAApO,EAGA,IAAAmd,GAAA,GAAA/O,GAAAuO,EAEA,OADAvb,GAAA+b,EAAAnd,GACAmd,EAKA,QAAAR,MAQA,QAAAS,KACA,UAAAhS,WAAA,4CAGA,QAAAiS,KACA,UAAAjS,WAAA,wDAGA,QAAAkS,GAAAH,GACA,IACA,MAAAA,GAAAzb,KACG,MAAA6C,GAEH,MADAgZ,IAAAhZ,QACAgZ,IAIA,QAAAC,GAAAC,EAAAhb,EAAAib,EAAAC,GACA,IACAF,EAAAve,KAAAuD,EAAAib,EAAAC,GACG,MAAAhX,GACH,MAAAA,IAIA,QAAAiX,GAAAT,EAAAU,EAAAJ,GACAzB,EAAA,SAAAmB,GACA,GAAAW,IAAA,EACAvZ,EAAAiZ,EAAAC,EAAAI,EAAA,SAAApb,GACAqb,IAGAA,GAAA,EACAD,IAAApb,EACArB,EAAA+b,EAAA1a,GAEAsb,EAAAZ,EAAA1a,KAEK,SAAAub,GACLF,IAGAA,GAAA,EAEAzc,EAAA8b,EAAAa,KACK,YAAAb,EAAAc,QAAA,sBAELH,GAAAvZ,IACAuZ,GAAA,EACAzc,EAAA8b,EAAA5Y,KAEG4Y,GAGH,QAAAe,GAAAf,EAAAU,GACAA,EAAAf,SAAAqB,GACAJ,EAAAZ,EAAAU,EAAAb,SACGa,EAAAf,SAAAsB,GACH/c,EAAA8b,EAAAU,EAAAb,SAEAC,EAAAY,MAAAjd,GAAA,SAAA6B,GACA,MAAArB,GAAA+b,EAAA1a,IACK,SAAAub,GACL,MAAA3c,GAAA8b,EAAAa,KAKA,QAAAK,GAAAlB,EAAAmB,EAAAb,GACAa,EAAAzZ,cAAAsY,EAAAtY,aAAA4Y,IAAA/b,GAAA4c,EAAAzZ,YAAAzD,UAAA8b,EACAgB,EAAAf,EAAAmB,GAEAb,IAAAF,IACAlc,EAAA8b,EAAAI,GAAAhZ,OACAgZ,GAAAhZ,MAAA,UACK3D,KAAA6c,EACLM,EAAAZ,EAAAmB,GACKtY,EAAAyX,GACLG,EAAAT,EAAAmB,EAAAb,GAEAM,EAAAZ,EAAAmB,GAKA,QAAAld,GAAA+b,EAAA1a,GACA0a,IAAA1a,EACApB,EAAA8b,EAAAC,KACG3B,EAAAhZ,GACH4b,EAAAlB,EAAA1a,EAAA6a,EAAA7a,IAEAsb,EAAAZ,EAAA1a,GAIA,QAAA8b,GAAApB,GACAA,EAAAqB,UACArB,EAAAqB,SAAArB,EAAAH,SAGAyB,EAAAtB,GAGA,QAAAY,GAAAZ,EAAA1a,GACA0a,EAAAL,SAAA4B,KAIAvB,EAAAH,QAAAva,EACA0a,EAAAL,OAAAqB,GAEA,IAAAhB,EAAAwB,aAAAhe,QACAqb,EAAAyC,EAAAtB,IAIA,QAAA9b,GAAA8b,EAAAa,GACAb,EAAAL,SAAA4B,KAGAvB,EAAAL,OAAAsB,GACAjB,EAAAH,QAAAgB,EAEAhC,EAAAuC,EAAApB,IAGA,QAAAF,GAAA9H,EAAAuH,EAAAH,EAAAC,GACA,GAAAmC,GAAAxJ,EAAAwJ,aACAhe,EAAAge,EAAAhe,MAEAwU,GAAAqJ,SAAA,KAEAG,EAAAhe,GAAA+b,EACAiC,EAAAhe,EAAAwd,IAAA5B,EACAoC,EAAAhe,EAAAyd,IAAA5B,EAEA,IAAA7b,GAAAwU,EAAA2H,QACAd,EAAAyC,EAAAtJ,GAIA,QAAAsJ,GAAAtB,GACA,GAAAyB,GAAAzB,EAAAwB,aACAE,EAAA1B,EAAAL,MAEA,QAAA8B,EAAAje,OAAA,CAQA,OAJA+b,OAAA9b,GACAmJ,MAAAnJ,GACAke,EAAA3B,EAAAH,QAEAhe,EAAA,EAAiBA,EAAA4f,EAAAje,OAAwB3B,GAAA,EACzC0d,EAAAkC,EAAA5f,GACA+K,EAAA6U,EAAA5f,EAAA6f,GAEAnC,EACAK,EAAA8B,EAAAnC,EAAA3S,EAAA+U,GAEA/U,EAAA+U,EAIA3B,GAAAwB,aAAAhe,OAAA,GAGA,QAAAoe,KACA7a,KAAAK,MAAA,KAKA,QAAAya,GAAAjV,EAAA+U,GACA,IACA,MAAA/U,GAAA+U,GACG,MAAAnY,GAEH,MADAsY,IAAA1a,MAAAoC,EACAsY,IAIA,QAAAlC,GAAA8B,EAAA1B,EAAApT,EAAA+U,GACA,GAAAI,GAAAlZ,EAAA+D,GACAtH,MAAA7B,GACA2D,MAAA3D,GACAgQ,MAAAhQ,GACAue,MAAAve,EAEA,IAAAse,GAWA,GAVAzc,EAAAuc,EAAAjV,EAAA+U,GAEArc,IAAAwc,IACAE,GAAA,EACA5a,EAAA9B,EAAA8B,MACA9B,EAAA8B,MAAA,MAEAqM,GAAA,EAGAuM,IAAA1a,EAEA,WADApB,GAAA8b,EAAAE,SAIA5a,GAAAqc,EACAlO,GAAA,CAGAuM,GAAAL,SAAA4B,KAEGQ,GAAAtO,EACHxP,EAAA+b,EAAA1a,GACK0c,EACL9d,EAAA8b,EAAA5Y,GACKsa,IAAAV,GACLJ,EAAAZ,EAAA1a,GACKoc,IAAAT,IACL/c,EAAA8b,EAAA1a,IAIA,QAAA2c,GAAAjC,EAAAkC,GACA,IACAA,EAAA,SAAA5c,GACArB,EAAA+b,EAAA1a,IACK,SAAAub,GACL3c,EAAA8b,EAAAa,KAEG,MAAArX,GACHtF,EAAA8b,EAAAxW,IAKA,QAAA2Y,KACA,MAAAld,MAGA,QAAAya,GAAAM,GACAA,EAAAP,IAAAxa,KACA+a,EAAAL,WAAAlc,GACAuc,EAAAH,YAAApc,GACAuc,EAAAwB,gBAGA,QAAAY,GAAAnR,EAAAoR,GACAtb,KAAAub,qBAAArR,EACAlK,KAAAiZ,QAAA,GAAA/O,GAAAuO,GAEAzY,KAAAiZ,QAAAP,KACAC,EAAA3Y,KAAAiZ,SAGAxD,EAAA6F,IACAtb,KAAAvD,OAAA6e,EAAA7e,OACAuD,KAAAwb,WAAAF,EAAA7e,OAEAuD,KAAA8Y,QAAA,GAAAxR,OAAAtH,KAAAvD,QAEA,IAAAuD,KAAAvD,OACAod,EAAA7Z,KAAAiZ,QAAAjZ,KAAA8Y,UAEA9Y,KAAAvD,OAAAuD,KAAAvD,QAAA,EACAuD,KAAAyb,WAAAH,GACA,IAAAtb,KAAAwb,YACA3B,EAAA7Z,KAAAiZ,QAAAjZ,KAAA8Y,WAIA3b,EAAA6C,KAAAiZ,QAAAyC,KAIA,QAAAA,KACA,UAAApb,OAAA,2CA8GA,QAAAqb,GAAAC,GACA,UAAAP,GAAArb,KAAA4b,GAAA3C,QAoEA,QAAA4C,GAAAD,GAEA,GAAA1R,GAAAlK,IAEA,OAKA,IAAAkK,GALAuL,EAAAmG,GAKA,SAAA1e,EAAAC,GAEA,OADAV,GAAAmf,EAAAnf,OACA3B,EAAA,EAAqBA,EAAA2B,EAAY3B,IACjCoP,EAAAhN,QAAA0e,EAAA9gB,IAAA0C,KAAAN,EAAAC,IAPA,SAAAgM,EAAAhM,GACA,MAAAA,GAAA,GAAA+J,WAAA,sCA8CA,QAAA4U,GAAAhC,GAEA,GAAA5P,GAAAlK,KACAiZ,EAAA,GAAA/O,GAAAuO,EAEA,OADAtb,GAAA8b,EAAAa,GACAb,EAGA,QAAA8C,KACA,SAAA7U,WAAA,sFAGA,QAAA8U,KACA,SAAA9U,WAAA,yHA0GA,QAAA+U,GAAAd,GACAnb,KAAA0Y,IAAA0C,IACApb,KAAA8Y,QAAA9Y,KAAA4Y,WAAAlc,GACAsD,KAAAya,gBAEAhC,IAAA0C,IACA,kBAAAA,IAAAY,IACA/b,eAAAic,GAAAf,EAAAlb,KAAAmb,GAAAa,KAmPA,QAAAE,KACA,GAAAC,OAAAzf,EAEA,aAAAqG,EACAoZ,EAAApZ,MACK,uBAAAxB,MACL4a,EAAA5a,SAEA,KACA4a,EAAA1a,SAAA,iBACS,MAAAgB,GACT,SAAAnC,OAAA,4EAIA,GAAA8b,GAAAD,EAAAlf,OAEA,IAAAmf,EAAA,CACA,GAAAC,GAAA,IACA,KACAA,EAAA9gB,OAAAS,UAAA2K,SAAA3L,KAAAohB,EAAAlf,WACS,MAAAuF,IAIT,wBAAA4Z,IAAAD,EAAAE,KACA,OAIAH,EAAAlf,QAAAgf,EAlmCA,GAAAM,OAAA7f,EAEA6f,GADAjV,MAAAmO,QACAnO,MAAAmO,QAEA,SAAA+B,GACA,yBAAAjc,OAAAS,UAAA2K,SAAA3L,KAAAwc,GAIA,IAAA/B,GAAA8G,EAEAhT,EAAA,EACAyO,MAAAtb,GACAib,MAAAjb,GAEAob,EAAA,SAAAjS,EAAAyR,GACAc,EAAA7O,GAAA1D,EACAuS,EAAA7O,EAAA,GAAA+N,EAEA,KADA/N,GAAA,KAKAoO,EACAA,EAAAM,GAEAuE,MAaAC,EAAA,mBAAAvZ,mBAAAxG,GACAggB,EAAAD,MACAE,EAAAD,EAAAE,kBAAAF,EAAAG,uBACAC,EAAA,mBAAAvb,WAAA,KAAA2V,GAAiF,wBAAAvQ,SAAA3L,KAAAkc,GAGjF6F,EAAA,mBAAAC,oBAAA,mBAAAC,gBAAA,mBAAAC,gBAmDA9E,EAAA,GAAA9Q,OAAA,KA0BAkV,MAAA9f,EAGA8f,GADAM,EA5EA,WAGA,kBACA,MAAA5F,GAAAiG,SAAAlF,OA0EC0E,EA3DD,WACA,GAAAS,GAAA,EACAC,EAAA,GAAAV,GAAA1E,GACAzR,EAAAgB,SAAA8V,eAAA,GAGA,OAFAD,GAAAE,QAAA/W,GAA0BgX,eAAA,IAE1B,WACAhX,EAAAjK,KAAA6gB,MAAA,MAsDCL,EAjDD,WACA,GAAAU,GAAA,GAAAP,eAEA,OADAO,GAAAC,MAAAC,UAAA1F,EACA,WACA,MAAAwF,GAAAG,MAAAC,YAAA,WA+CCnhB,KAAA+f,EAnBD,WACA,IACA,GACAqB,GAAArjB,EAAA,GAEA,OADAud,GAAA8F,EAAAC,WAAAD,EAAAE,aACAjG,IACG,MAAAtV,GACH,MAAAyV,SAeAA,GA0EA,IAAAQ,IAAAlI,KAAAyN,SAAAtX,SAAA,IAAAuX,UAAA,IAIA1D,OAAA,GACAP,GAAA,EACAC,GAAA,EAEAb,GAAA,GAAAwB,GA6KAE,GAAA,GAAAF,GA+DA3c,GAAA,CAsqBA,OA1nBAmd,GAAArf,UAAAyf,WAAA,SAAAH,GACA,OAAAxgB,GAAA,EAAiBkF,KAAA4Y,SAAA4B,IAAA1f,EAAAwgB,EAAA7e,OAA6C3B,IAC9DkF,KAAAme,WAAA7C,EAAAxgB,OAIAugB,EAAArf,UAAAmiB,WAAA,SAAAC,EAAAtjB,GACA,GAAAI,GAAA8E,KAAAub,qBACA8C,EAAAnjB,EAAAgC,OAEA,IAAAmhB,IAAArF,EAAA,CACA,GAAAsF,GAAAlF,EAAAgF,EAEA,IAAAE,IAAA9gB,GAAA4gB,EAAAxF,SAAA4B,GACAxa,KAAAue,WAAAH,EAAAxF,OAAA9d,EAAAsjB,EAAAtF,aACK,sBAAAwF,GACLte,KAAAwb,aACAxb,KAAA8Y,QAAAhe,GAAAsjB,MACK,IAAAljB,IAAA+gB,EAAA,CACL,GAAAhD,GAAA,GAAA/d,GAAAud,EACA0B,GAAAlB,EAAAmF,EAAAE,GACAte,KAAAwe,cAAAvF,EAAAne,OAEAkF,MAAAwe,cAAA,GAAAtjB,GAAA,SAAAmjB,GACA,MAAAA,GAAAD,KACOtjB,OAGPkF,MAAAwe,cAAAH,EAAAD,GAAAtjB,IAIAugB,EAAArf,UAAAuiB,WAAA,SAAAE,EAAA3jB,EAAAyD,GACA,GAAA0a,GAAAjZ,KAAAiZ,OAEAA,GAAAL,SAAA4B,KACAxa,KAAAwb,aAEAiD,IAAAvE,GACA/c,EAAA8b,EAAA1a,GAEAyB,KAAA8Y,QAAAhe,GAAAyD,GAIA,IAAAyB,KAAAwb,YACA3B,EAAAZ,EAAAjZ,KAAA8Y,UAIAuC,EAAArf,UAAAwiB,cAAA,SAAAvF,EAAAne,GACA,GAAA4jB,GAAA1e,IAEA+Y,GAAAE,MAAAvc,GAAA,SAAA6B,GACA,MAAAmgB,GAAAH,WAAAtE,GAAAnf,EAAAyD,IACG,SAAAub,GACH,MAAA4E,GAAAH,WAAArE,GAAApf,EAAAgf,MA8SAmC,EAAA0C,IAAAhD,EACAM,EAAA2C,KAAA/C,EACAI,EAAA/e,QAAA8b,EACAiD,EAAA9e,OAAA2e,EACAG,EAAA4C,cAAApH,EACAwE,EAAA6C,SAAAlH,EACAqE,EAAA8C,MAAAjH,EAEAmE,EAAAjgB,WACA2E,YAAAsb,EAmMAze,OA6BAwhB,MAAA,SAAA1G,GACA,MAAAtY,MAAAxC,KAAA,KAAA8a,KAuCA2D,EAAAgD,SAAA/C,EACAD,EAAAhf,QAAAgf,EAEAA,M1Dy5F6BjhB,KAAKJ,EAASH,EAAoB,IAAKA,EAAoB,MAIlF,SAAUI,EAAQD,G2DlhIxB,QAAAskB,KACA,SAAA5e,OAAA,mCAEA,QAAA6e,KACA,SAAA7e,OAAA,qCAsBA,QAAA8e,GAAAC,GACA,GAAAC,IAAAnO,WAEA,MAAAA,YAAAkO,EAAA,EAGA,KAAAC,IAAAJ,IAAAI,IAAAnO,WAEA,MADAmO,GAAAnO,WACAA,WAAAkO,EAAA,EAEA,KAEA,MAAAC,GAAAD,EAAA,GACK,MAAA5c,GACL,IAEA,MAAA6c,GAAAtkB,KAAA,KAAAqkB,EAAA,GACS,MAAA5c,GAET,MAAA6c,GAAAtkB,KAAAgF,KAAAqf,EAAA,KAMA,QAAAE,GAAAC,GACA,GAAAC,IAAAC,aAEA,MAAAA,cAAAF,EAGA,KAAAC,IAAAN,IAAAM,IAAAC,aAEA,MADAD,GAAAC,aACAA,aAAAF,EAEA,KAEA,MAAAC,GAAAD,GACK,MAAA/c,GACL,IAEA,MAAAgd,GAAAzkB,KAAA,KAAAwkB,GACS,MAAA/c,GAGT,MAAAgd,GAAAzkB,KAAAgF,KAAAwf,KAYA,QAAAG,KACAC,GAAAC,IAGAD,GAAA,EACAC,EAAApjB,OACA2b,EAAAyH,EAAAC,OAAA1H,GAEA2H,GAAA,EAEA3H,EAAA3b,QACAujB,KAIA,QAAAA,KACA,IAAAJ,EAAA,CAGA,GAAAK,GAAAb,EAAAO,EACAC,IAAA,CAGA,KADA,GAAArW,GAAA6O,EAAA3b,OACA8M,GAAA,CAGA,IAFAsW,EAAAzH,EACAA,OACA2H,EAAAxW,GACAsW,GACAA,EAAAE,GAAAG,KAGAH,IAAA,EACAxW,EAAA6O,EAAA3b,OAEAojB,EAAA,KACAD,GAAA,EACAL,EAAAU,IAiBA,QAAAE,GAAAd,EAAAhL,GACArU,KAAAqf,MACArf,KAAAqU,QAYA,QAAAoE,MAhKA,GAOA6G,GACAG,EARAvI,EAAArc,EAAAD,YAgBA,WACA,IAEA0kB,EADA,kBAAAnO,YACAA,WAEA+N,EAEK,MAAAzc,GACL6c,EAAAJ,EAEA,IAEAO,EADA,kBAAAC,cACAA,aAEAP,EAEK,MAAA1c,GACLgd,EAAAN,KAuDA,IAEAU,GAFAzH,KACAwH,GAAA,EAEAG,GAAA,CAyCA7I,GAAAiG,SAAA,SAAAkC,GACA,GAAAviB,GAAA,GAAAwK,OAAA9K,UAAAC,OAAA,EACA,IAAAD,UAAAC,OAAA,EACA,OAAA3B,GAAA,EAAuBA,EAAA0B,UAAAC,OAAsB3B,IAC7CgC,EAAAhC,EAAA,GAAA0B,UAAA1B,EAGAsd,GAAApP,KAAA,GAAAmX,GAAAd,EAAAviB,IACA,IAAAsb,EAAA3b,QAAAmjB,GACAR,EAAAY,IASAG,EAAAnkB,UAAAkkB,IAAA,WACAlgB,KAAAqf,IAAAhb,MAAA,KAAArE,KAAAqU,QAEA6C,EAAAkJ,MAAA,UACAlJ,EAAAmJ,SAAA,EACAnJ,EAAAoJ,OACApJ,EAAAqJ,QACArJ,EAAAsJ,QAAA,GACAtJ,EAAAuJ,YAIAvJ,EAAApO,GAAA2P,EACAvB,EAAAwJ,YAAAjI,EACAvB,EAAAjO,KAAAwP,EACAvB,EAAAhO,IAAAuP,EACAvB,EAAAyJ,eAAAlI,EACAvB,EAAA0J,mBAAAnI,EACAvB,EAAA9N,KAAAqP,EACAvB,EAAA2J,gBAAApI,EACAvB,EAAA4J,oBAAArI,EAEAvB,EAAA6J,UAAA,SAAA3lB,GAAqC,UAErC8b,EAAAC,QAAA,SAAA/b,GACA,SAAAkF,OAAA,qCAGA4W,EAAA8J,IAAA,WAA2B,WAC3B9J,EAAA+J,MAAA,SAAAC,GACA,SAAA5gB,OAAA,mCAEA4W,EAAAiK,MAAA,WAA4B,W3DoiItB,SAAUtmB,EAAQD,KAMlB,SAAUC,EAAQD,EAASH,GAEjC,Y4DnuIA,IAAAiV,GAAAjV,EAAA,G5DwuIIkV,EAEJ,SAAgCjP,GAAO,MAAOA,IAAOA,EAAI7E,WAAa6E,GAAQX,QAASW,IAFhDgP,I4DtuIrC,SAAUE,GAERC,WAAWrQ,aAEP3E,OAAQ,cACRumB,UAAW,EACXC,SAAU,EAEVvR,KAAM,WAEF,GAAIvO,GAAOvB,KACPyH,EAAOmI,EAAE,OAET0R,0BACAthB,KAAKuhB,QAAUD,wBAEnBthB,KAAKwhB,eAAiB5R,EAAE,wBAExB,IAAI6R,GAAyB7R,EAAE,4BAE/B6R,GAAuBvY,IAAI,QAAS,UACpCuY,EAAuB3Y,GAAG,QAA2E,kCAAmC,SAAUrG,GAC9IA,EAAEmP,gBAEF,IAAI8P,GAA2B9R,EAAE5P,MAAM6E,QAAQ,iCAC3C8c,EAA8BD,EAAyBE,UAAU,gCAErED,GAA4BE,YAAY,0DAEpCF,EAA4BG,SAAS,0DACrCJ,EAAyBK,SAAS,uCAElCL,EAAyBM,YAAY,yCAKzChiB,KAAKwhB,eAAe/kB,QACpBuD,KAAKwhB,eAAe7P,MAAM,SAAUlP,GAChCA,EAAEmP,iBACjB1O,OAAO+e,IAAIC,YAAY,+BAAiCC,MAAO,kDAChDvS,EAAE5P,MAAMuQ,KAAK,YAAY,GACzBhP,EAAK6gB,gBAAgB7gB,EAAKggB,QAAQc,uBAK1C,IAAMC,GAAOpf,OAAO4N,SAASwR,IAC7B,IAAIA,EAAM,CACN,GAAMC,GAAM3S,EAAE0S,EACVC,GAAI9lB,QACJ8lB,EAAIrS,KAAK,+BAA+BjF,QAAQ,SAgFxD,MA1EA2E,GAAE,kCAAkC4S,OAAO,WAClC,MAAQ5S,EAAE5P,MAAMmQ,MACjBP,EAAE5P,MAAM6E,QAAQ,iBAAiBqL,KAAK,sBAAsB2B,OAE5DjC,EAAE5P,MAAM6E,QAAQ,iBAAiBqL,KAAK,sBAAsBuS,SAEjED,SAGH/a,EAAKqB,GAAG,QAAS,yBAA0B,SAAUrG,GACjDA,EAAEmP,iBACFhC,EAAE5P,MAAM6E,QAAQ,cAAc6d,SAC9B9S,EAAE,kBAAkBM,KAAK,oCAAsCN,EAAE5P,MAAMuQ,KAAK,WAAa,KAAKmS,WAIlG9S,EAAE,gBAAgB+B,MAAM,WACpB,GAAMhS,GAAQiQ,EAAE,yBAAyBO,MACnC/U,EAAOwU,EAAE,oBAAoBO,KAqCnC,OApCAR,GAAA5P,QAAQP,YAAYE,aAAcC,EAAOvE,GACpCoC,KAAM,SAAEC,GACL,GAAMklB,GAAW/S,EAAE,4BAEbgT,EAAMhT,EAAE,UAAUW,MACpBsS,IAAOplB,EAASqlB,OAChBC,MAAS,OAEP3nB,EAAOwU,EAAE,WAAWoT,KAAKvlB,EAASrC,KAExCunB,GAASM,OAAO,wBAChBN,EAASzS,KAAK,SAAS+S,OAAQL,EAAKxnB,GAGpCunB,EAASM,OAAOrT,EAAE,yBAAyBoT,KAAKrjB,IAChDgjB,EAASM,OAAOrT,EAAE,QAAQW,MACtB2S,UAAWzlB,EAAS0lB,QACpBhB,MAAS,uCACTpR,KAAQ,IACRqS,IAAO7hB,EAAKggB,QAAQ8B,mBACrBL,KAAK,4CAERpT,EAAE,WAAWW,MACT5O,KAAM,SACNzD,GAAI,iBACJ9C,KAAM,qBACNmD,MAAO2B,KAAKojB,WAAa3jB,MAAOlC,EAASkC,MAAOvE,KAAMqC,EAASrC,SAChEmoB,SAASZ,GAEZ/S,EAAE,wBAAwBqT,OAAON,GACjC/S,EAAE,yBAAyBO,IAAI,IAC/BP,EAAE,oBAAoBO,IAAI,MAE7B6O,MAAO,SAAE3e,GACNmjB,MAAOnjB,EAAME,YAEd,IAIXkH,EAAKqB,GAAG,SAAU,YAAa,SAAUrG,GACrCA,EAAEmP,gBACF,IAAM6R,GAAY7T,EAAE5P,MAAM0jB,YACtBC,EAAO/T,EAAE5P,KASb,OAPA2jB,GAAKzT,KAAK,WAAWK,KAAK,WAAY,YAEtCZ,EAAA5P,QAAQP,YAAYK,oBAAqB4jB,GACpCjmB,KAAM,WACHmmB,EAAKzT,KAAK,WAAW0T,WAAW,YAChCriB,EAAKsiB,uBAEN,IAGJ7jB,MAIX6jB,kBAAmB,WACf,GAAM7lB,GAAS4R,EAAE,mDACjB1M,QAAO4gB,SAAS,EAAE,GAClB9lB,EAAO+lB,YACP5S,WAAY,WACRnT,EAAOgmB,WACR,MAGb5B,gBAAiB,SAAW6B,GAC3B,GAAM1iB,GAAOvB,SAEqB,KAAbikB,IACRA,GAAW,GAGf1iB,EAAK2iB,oBAELvU,EAAA5P,QAAQP,YAAYC,UACfjC,KAAM,SAAEC,GACbA,EAAS0mB,SAKJF,IACO/gB,OAAO4N,SAAWmT,GAJpC/gB,OAAOiO,WAAW,WACjB5P,EAAK6gB,gBAAiB6B,IACpB,QAODC,kBAAmB,WACnBlkB,KAAKqhB,SAAW,KACpBrhB,KAAKqhB,UAAY,IAEbrhB,KAAKqhB,SAAW,MACpBrhB,KAAKqhB,SAAW,IAEjBzR,EAAE,qDAAqD5E,KAAMhL,KAAKqhB,SAAW,KAC7EzR,EAAE,oDAAoDW,KAAM,QAAS,SAAWvQ,KAAKqhB,SAAW,QAGhGjkB,S5DquIG,SAAUvC,EAAQD,EAASH,GAEjC,YAWA,SAASiT,GAAuBhN,GAAO,MAAOA,IAAOA,EAAI7E,WAAa6E,GAAQX,QAASW,G6Dr6IvF,GAAAgP,GAAAjV,EAAA,G7D+5IIkV,EAAYjC,EAAuBgC,G6D95IvC0U,EAAA3pB,EAAA,I7Dk6II4pB,EAAc3W,EAAuB0W,I6Dh6IzC,SAAUxU,GACNC,WAAWyU,MACPzpB,OAAQ,OACR0pB,eAAgB,GAChBC,gBAAiB,KACjBC,uBAEA3U,KAAM,WACF,GAAMvO,GAAOvB,IAEbA,MAAKwkB,gBAAkB5U,EAAE,qBACzB5P,KAAKukB,eAAiBvkB,KAAKwkB,gBAAgBrU,KAC3C,IAAIuU,GAAmB9U,EAAE,6BACrB+U,EAAgB/U,EAAE,wBAClBgV,EAAsBhV,EAAE,yBACxBiV,EAA+BjV,EAAE,kCAsCrC,OApCA,IAAAyU,GAAAtkB,QAAc,8BAEd2kB,EAAiB7T,KAAK,WAClBtP,EAAKkjB,oBAAoB7U,EAAE5P,MAAMzD,KAAK,WAAaqT,EAAE5P,QAEzDA,KAAK8kB,uBAAuB9kB,KAAKukB,gBACjCvkB,KAAKwkB,gBAAgBhC,OAAO,WACxB,GAAMjkB,GAAQqR,EAAE5P,MAAMmQ,KACtB5O,GAAKwjB,0BACLxjB,EAAKujB,uBAAuBvmB,GAC5BgD,EAAKjD,UAAUC,GACfgD,EAAKgjB,eAAiBhmB,EAEtBgD,EAAKyjB,kBAETL,EAAc7b,GAAG,QAAS,SAASrG,GAC/BA,EAAEmP,iBACFhC,EAAE,cAAcqV,SAAU5Y,UAAWuD,EAAE,2BAA2BsV,SAAS5Y,IAAK,IAAM,UAE1FsY,EAAoB9b,GAAG,QAAS,SAASrG,GACrCA,EAAEmP,iBACFhC,EAAE,cAAcqV,SAAU5Y,UAAWuD,EAAE,yBAAyBsV,SAAS5Y,KAAO,UAEpFuY,EAA6B/b,GAAG,QAAS,SAASrG,GAC9CA,EAAEmP,iBACFhC,EAAE,cAAcqV,SAAU5Y,UAAWuD,EAAE,mCAAmCsV,SAAS5Y,KAAO,UAE9FsD,EAAG,cAAe9G,GAAI,QAAS,WAC3B8G,EAAG5P,MAAOiR,SAASA,SAASf,KAAM,qBAAsB8R,YAAa,UACrEpS,EAAG5P,MAAO+hB,SAAU,YAExBnS,EAAG,kBAAmB9G,GAAI,QAAS,WAC/B,GAAIqc,GAAsB5jB,EAAKgjB,eAAea,aAC9CxV,GAAG,6BAA+BuV,GAAsBjV,KAAM,qBAAsBmV,QAAQrD,YAAa,UACzGpS,EAAG5P,MAAOslB,UAAUpV,KAAM,IAAMiV,EAAsB,kBAAmBI,OAAOxD,SAAU,YAEvF/hB,MAGX+kB,wBAAyB,WACrB,GAAMS,GAAWxlB,KAAKukB,cAClBvkB,MAAKykB,oBAAoBe,IACzBxlB,KAAKykB,oBAAoBe,GAAU3T,QAI3CiT,uBAAwB,SAASW,OACmB,KAArCzlB,KAAKykB,oBAAoBgB,IAChCzlB,KAAKykB,oBAAoBgB,GAAQhD,OAEjC,WAAagD,GAAU,cAAgBA,EACvC7V,EAAE,sBAAsB6S,OAExB7S,EAAE,sBAAsBiC,QAGhCmT,cAAe,WACX,GAAIU,GAAU9V,EAAG,6BAA+B5P,KAAKukB,eAAea,eAAgBlV,KAAM,SACtFyV,EAAUD,EAAGxV,KAAK,wBAAwBe,SAC1C2U,EAAUD,EAAQzV,KAAK,WAE3BwV,GAAGG,OAAQD,EAAQE,cAAgBH,EAAQG,cAAgB,IAG/DxnB,UAAW,SAAUC,GACjBoR,EAAA5P,QAAQ1B,QAAQC,UAAWC,MAGpCnB,S7Dw6IG,SAAUvC,EAAQD,EAASH,GAEjC,YAWA,SAASiT,GAAuBhN,GAAO,MAAOA,IAAOA,EAAI7E,WAAa6E,GAAQX,QAASW,G8D7gJvF,GAAA0jB,GAAA3pB,EAAA,I9DugJI4pB,EAAc3W,EAAuB0W,G8DtgJzC1U,EAAAjV,EAAA,G9D0gJIkV,EAAYjC,EAAuBgC,I8DxgJrC,SAAUE,GAERC,WAAWxR,SAEPxD,OAAQ,UACR0pB,eAAgB,GAChBC,gBAAiB,KACjBC,uBACAsB,aAEAjW,KAAM,WACF,GAAIvO,GAA0BvB,KAC1BgmB,EAA0BpW,EAAE,sDAEzC,IAAAyU,GAAAtkB,QAAc,8BAEAkmB,qBACD1kB,EAAKggB,QAAU0E,oBAEnBD,EAAeld,GAAG,QAAS,SAASrG,GAChCA,EAAEmP,iBACdhC,EAAE,qBAAqBO,IAAI,cAAclF,QAAQ,eACjD1J,EAAKwjB,0BACOxjB,EAAKjD,UAAU,cAC3BiD,EAAKujB,uBAAuB,cAC5BvjB,EAAKgjB,eAAiB,aACtB3U,EAAE,cAAcqV,SAAU5Y,UAAWuD,EAAE,qBAAqBsV,SAAS5Y,KAAO,UAGpEtM,KAAKwkB,gBAAkB5U,EAAG,qBAC1B5P,KAAKukB,eAAkBvkB,KAAKwkB,gBAAgBrU,MAE5C5O,EAAKwkB,UAAUG,OAAYtW,EAAE,6BAA6BM,KAAK,OAAOmV,QAC/E9jB,EAAKwkB,UAAUI,UAAevW,EAAE,gCAAgCM,KAAK,OAAOmV,QACnE9jB,EAAKwkB,UAAUK,MAAYxW,EAAE,4BAA4BM,KAAK,OAAOmV,QAE9CzV,EAAG,6BACTiB,KAAM,WACnBtP,EAAKkjB,oBAAqB7U,EAAE5P,MAAMzD,KAAK,WAAcqT,EAAE5P,QAG3DA,KAAK8kB,uBAAwB9kB,KAAKukB,gBAElCvkB,KAAKwkB,gBAAgBhC,OAAQ,WACzB,GAAIjkB,GAAQqR,EAAE5P,MAAMmQ,KACpB5O,GAAKwjB,0BACLxjB,EAAKujB,uBAAwBvmB,GAC7BgD,EAAKjD,UAAUC,GACfgD,EAAKgjB,eAAiBhmB,EAEtBgD,EAAKyjB,gBACLpV,EAAE,mBAAmBO,IAAK5R,IAG9B,IAAI8nB,GAAczW,EAAE,iCAChB0W,EAAqB1W,EAAE,iBA2B3B,OA1BTyW,GAAYxV,KAAM,WACA7Q,KAAKumB,UACD,qBAAuB3W,EAAE5P,MAAMuQ,KAAK,OACvD+V,EAAmBpW,KAAM,+BAAgC2B,OACzDyU,EAAmBpW,KAAM,6BAA8BuS,QAC7B,uBAAyB7S,EAAE5P,MAAMuQ,KAAK,QAChE+V,EAAmBpW,KAAM,6BAA8B2B,OACvDyU,EAAmBpW,KAAM,+BAAgCuS,WAI5D4D,EAAYvd,GAAI,QAAS,WACP,qBAAuB8G,EAAE5P,MAAMuQ,KAAK,OACpD+V,EAAmBpW,KAAM,+BAAgC2B,OACzDyU,EAAmBpW,KAAM,6BAA8BuS,QAChC,uBAAyB7S,EAAE5P,MAAMuQ,KAAK,QAC7D+V,EAAmBpW,KAAM,6BAA8B2B,OACvDyU,EAAmBpW,KAAM,+BAAgCuS,UAIlD7S,EAAG,cAAe9G,GAAI,QAAS,WAC3B8G,EAAG5P,MAAOiR,SAASA,SAASf,KAAM,qBAAsB8R,YAAa,UACrEpS,EAAG5P,MAAO+hB,SAAU,YAGjB/hB,MAGX1B,UAAW,SAAUC,GACjBoR,EAAA5P,QAAQ1B,QAAQC,UAAWC,IAGrCymB,cAAe,WACd,GAAIU,GAAU9V,EAAG,6BAA+B5P,KAAKukB,eAAea,eAAgBlV,KAAM,SAC7EyV,EAAUD,EAAGxV,KAAK,wBAAwBe,SACtD2U,EAAUD,EAAQzV,KAAK,WAExBwV,GAAGG,OAAQD,EAAQE,cAAgBH,EAAQG,cAAgB,IAGtDf,wBAAyB,WACrB,GAAIS,GAAWxlB,KAAKukB,cACfvkB,MAAKykB,oBAAqBe,IAC3BxlB,KAAKykB,oBAAqBe,GAAW3T,QAI7CiT,uBAAwB,SAAUW,GAC9B,OAAmD,KAAvCzlB,KAAKykB,oBAAqBgB,GAA2B,CAC7D,GAAIe,GAAYxmB,KAAKykB,oBAAqBgB,EACtDe,GAAU/D,OAEV+D,EAAUtW,KAAK,4BAA4BjF,QAAQ,SAGtC,WAAawa,GAAU,cAAgBA,EACxC7V,EAAG,sBAAwB6V,GAAShD,OAGpC7S,EAAG,sBAAuBiC,UAIvCzU,S9D+gJG,SAAUvC,EAAQD,EAASH,GAEjC,YAqBA,SAASiT,GAAuBhN,GAAO,MAAOA,IAAOA,EAAI7E,WAAa6E,GAAQX,QAASW,G+DjqJvF,GAAAgP,GAAAjV,EAAA,G/DipJIkV,EAAYjC,EAAuBgC,G+DhpJvC+W,EAAAhsB,EAAA,IACAisB,EAAAjsB,EAAA,I/DqpJIksB,EAAQjZ,EAAuBgZ,G+DppJnCE,EAAAnsB,EAAA,I/DwpJIosB,EAAmBnZ,EAAuBkZ,G+DvpJ9CE,EAAArsB,EAAA,I/D2pJIssB,EAAYrZ,EAAuBoZ,I+DzpJrC,SAAUlX,GAGRC,WAAW3Q,cAEP8nB,kBAAmB,KACnBC,4BAA8B,KAC9BpsB,OAAQ,eACRqsB,cAAe,KACfC,YAAa,EACbC,SAAU,KAEVtX,KAAM,WAAW,GAAA1E,GAAApL,KACPuB,EAAOvB,IAGbA,MAAKqnB,QAAU,GAAAN,GAAAhnB,QAAanC,KAAKsB,aAAavD,IAAI2rB,WAAY1pB,KAAKsB,aAAavD,IAAI4rB,iBACpFvnB,KAAKqnB,QAAQG,aAAexnB,KAAKkkB,kBACjClkB,KAAKqnB,QAAQI,SAAW,SAAEhqB,GACtB2N,EAAK8Y,kBAAmB,KACnBtmB,KAAKsB,aAAavD,IAAI+rB,eAAgB,IAASjqB,EAASkqB,UAAY/X,EAAE,qBAAqBnT,OAC5FyG,OAAO+e,IAAIC,YAAa,qBAAuBC,MAAO,kDAEtDjf,OAAO4N,SAASC,MAAO,EAAA0V,EAAAmB,SAAS,iBAMxC5nB,KAAKgnB,kBAAoBpX,EAAG,gBAC5B5P,KAAKonB,SAAWxX,EAAE,YAEb5P,KAAKgnB,kBAAkBvqB,QACxBuD,KAAKgnB,kBAAkBrV,MAAO,SAAUlP,GACpCA,EAAEmP,iBACjB1O,OAAO+e,IAAIC,YAAY,sBAAwBC,MAAO,kDACvCvS,EAAE5P,MAAMuQ,KAAK,YAAY,GACzBhP,EAAK2iB,kBAAmB3iB,EAAK8lB,QAAQQ,eACrCtmB,EAAK8lB,QAAQS,SAKrBlY,EAAE,QAAQ9G,GAAI,QAAS,6BAA8B,SAAErG,GACnDA,EAAEmP,iBACFxG,EAAK8Y,kBAAmB,GAAG,GAC3B9Y,EAAKic,QAAQU,SACRvqB,KAAM,WACH0F,OAAO4N,SAASC,MAAO,EAAA0V,EAAAmB,SAAS,oBAM5ChY,EAAE,oCAAoC9G,GAAG,QAAS,SAASrG,GACvDA,EAAEmP,iBACFhC,EAAE,6BAA6BoY,OAAO,UAG1CpY,EAAE,iBAAiB+B,MAAO,SAASlP,GAM/B,MALAA,GAAEmP,iBAEGqW,SAAS,EAAAxB,EAAAyB,IAAI,kBACdpX,SAASqX,UAEN,IAIXvY,EAAG,8BAA+B9G,GAAI,SAAU,WAC5C8G,EAAE,iBAAiBW,KAAM,YAAY,KAGzCX,EAAE,YAAY4S,OAAQ,WAClB,GAAM4F,GAAYxY,EAAE5P,MAAMiH,GAAG,WAC7B0I,GAAA5P,QAAQb,aAAaC,UAAWipB,GAC3B5qB,KAAM,WACH,GAAMQ,GAAS4R,EAAE,sDACjB5R,GAAO+lB,YACP5S,WAAY,WACRnT,EAAOgmB,WACR,SAIfhkB,KAAKqoB,eAAiB,GAAIxY,YAAW3Q,aAAaopB,eAErC1Y,EAAE,oBAEViB,KAAM,SAAU4C,EAAO8O,GACxB,GAAIgG,SAEAA,GADC3Y,EAAE2S,GAAKhmB,KAAK,oBACN,GAAIsT,YAAW3Q,aAAaspB,IAAK5Y,EAAE2S,GAAM3S,EAAE2S,GAAKhmB,KAAK,UAAWqT,EAAE2S,GAAKhmB,KAAK,qBAG5E,GAAIsT,YAAW3Q,aAAaspB,IAAK5Y,EAAE2S,GAAM3S,EAAE2S,GAAKhmB,KAAK,WAEhEgF,EAAK8mB,eAAerf,KAAMuf,KAG9B3Y,EAAE,WAAW6Y,MAAO,WAChBlnB,EAAK8mB,eAAeK,UAAW9Y,EAAE5P,MAAMmQ,MAAO,WAC9C5O,EAAK8mB,eAAeM,iBAGxB/Y,EAAE,0BAA0B4S,OAAQ,WAChCjhB,EAAK8mB,eAAeK,UAAW9Y,EAAE5P,MAAMmQ,MAAO,aAC9C5O,EAAK8mB,eAAeM,iBAGxB/Y,EAAE,mBAAmB4S,OAAQ,WACzB,GAAM1d,GAAU8K,EAAE5P,MACZ4oB,EAAO9jB,EAAQvI,KAAK,WACpBgC,EAAQuG,EAAQ+jB,KAAM,WACtBC,EAAevnB,EAAK8mB,eAAeU,iBAEzC,KAAM,GAAIjuB,KAAKguB,GACXA,EAAahuB,GAAG0nB,OAAQoG,EAAMrqB,KAKpBqR,EAAE,yCACV+B,MAAO,WACb,GAAMqX,GAAQpZ,EAAG5P,MACX8E,EAAUvD,EAAK8mB,eAAeY,YAAaD,EAAMzsB,KAAM,QAAUysB,EAAMzsB,KAAM,UAC5EuI,KAIFkkB,EAAM/hB,GAAI,YACXnC,EAAQ8C,SAGR9C,EAAQokB,cAIEtZ,EAAE,2BACV+B,MAAO,WACb,GAAMqX,GAAQpZ,EAAG5P,MACbmpB,EAAQ5nB,EAAK8mB,eAAee,UAChC,KAAM,GAAItuB,KAAKquB,GACNA,EAAMltB,eAAgBnB,KAClBkuB,EAAM/hB,GAAI,YACXkiB,EAAMruB,GAAG8M,SAGTuhB,EAAMruB,GAAGouB,cAOzBtZ,EAAE,iBAAiB9G,GAAG,QAAS,WAC3B,GAAMkgB,GAAQpZ,EAAE5P,MACVqpB,EAAWL,EAAM9Y,KAAM,wBACvBqS,EAAMhhB,EAAK8mB,eAAeY,YAAaD,EAAMzsB,KAAM,QAAUysB,EAAMzsB,KAAM,UAE1EgmB,KACDA,EAAIC,OAAQ,WAAa6G,EAASR,KAAM,YACxCtG,EAAI+G,aAAapZ,KAAM,8BAA+B2Y,KAAK,YAAcQ,EAASR,KAAM,cAKhG,IAAMU,GAAa3Z,EAAE,qCACrB2Z,GAAW/G,OAAQ,WACf,GAAMgH,GAAe5Z,EAAE5P,MAAM6oB,KAAK,UAElCU,GAAW1Y,KAAM,WACb7Q,KAAKumB,QAAUiD,MAKvB5Z,EAAE,QAAQ9G,GAAG,QAAS,kCAAmC,WAChD5F,OAAOumB,WAAa,KACrB7Z,EAAE5P,MAAMiR,SAASf,KAAK,kCAAkC8X,OAAO,SAQvE,IAAI0B,GAA2BvgB,EAAEwgB,SAAS,WAEjCzmB,OAAOumB,YAAc,IACtB7Z,EAAE,kCAAkCc,IAAI,UAAW,QAEnDd,EAAE,kCAAkCc,IAAI,UAAW,SAGxD,IAIH,OAFAxN,QAAO+C,iBAAiB,SAAUyjB,GAE3B1pB,MAGXkkB,kBAAmB,SAAU7C,GAA2B,GAAjB0G,GAAiBvrB,UAAAC,OAAA,OAAAC,KAAAF,UAAA,IAAAA,UAAA,EAC/C6kB,GAAW,MACZA,EAAW,KAGfzR,EAAE,qDAAqD5E,KAAMqW,EAAW,KACxEzR,EAAE,oDAAoDmT,MAAO1B,EAAW,KACnEA,GAAY,IACbzR,EAAE,kDAAkD5E,KAAK,iBAExD+c,GACDnY,EAAE,kDAAkD5E,KAAK,mBAMrE6E,WAAW3Q,aAAaspB,IAAxB7B,EAAA5mB,QACA8P,WAAW3Q,aAAaopB,eAAxBzB,EAAA9mB,SAED3C,S/D2pJG,SAAUvC,EAAQD,EAASH,GAEjC,YAGAc,QAAOC,eAAeZ,EAAS,cAC7B2D,OAAO,GgE93JI2pB,MAAM,SAAE0B,GACjB,MAAOhsB,MAAK2jB,QAASqI,IAAS,IASrBhC,UAAU,SAAEiC,GACrB,MAAOjsB,MAAKksB,MAAOD,IAAY,KhE44J7B,SAAUhvB,EAAQD,EAASH,GAEjC,YAGAc,QAAOC,eAAeZ,EAAS,cAC3B2D,OAAO,GiEp6JX,IAAMiqB,GAAM,SAAEuB,EAAUC,EAASC,GAC7B,GAAIC,GAAMH,EACNI,EAASH,EAAQ5E,cACjBgF,GAAkB,EAClB5E,GAAW,EACX6E,GAAU,EAERC,EAAWJ,EAAIha,KAAM,mBACvBqa,EAAWL,EAAIha,KAAM,mBACrBsa,EAAUN,EAAIha,KAAM,kBACpBua,EAAaP,EAAIha,KAAM,2BACvBwa,EAASR,EAAIha,KAAM,iBACnBya,EAAUT,EAAIha,KAAM,kBACpB0a,EAAeV,EAAIha,KAAM,oBAM7B,OAJK+Z,KACDG,EAAkBH,EAAY7E,gBAI9BvT,KAAM,WACFqY,EAAInI,SAAU,iBACdsI,GAAU,GAGd5H,KAAM,WACFyH,EAAIlI,YAAa,iBACjBqI,GAAU,GAGdf,WAAY,WACR,MAAOY,IAGXW,MAAO,WACH,MAAOX,GAAI3Z,KAAM,OAGrBua,UAAW,WACP,MAAOX,IAGXY,YAAa,SAAU/f,GACnB,MAAc,KAATA,IAILA,EAAOA,EAAKoa,cACL+E,EAAOa,OAAQhgB,IAAW,IAGrCigB,qBAAsB,SAAUjgB,GAC5B,MAAc,KAATA,KAIEof,IAIPpf,EAAOA,EAAKoa,cACLgF,IAAoBpf,IAG/BkgB,UAAW,WACP,MAAOb,IAGXc,WAAY,WACR,MAAO3F,IAGX5d,OAAQ,WACJ4d,GAAW,GAGf0D,SAAU,WACN1D,GAAW,GAGfhD,OAAQ,SAAUoG,EAAMrqB,GACpB,OAASqqB,GACL,IAAK,SACD4B,EAAQ3B,KAAM,UAAWtqB,EACzB,MAEJ,KAAK,UACDgsB,EAAS1B,KAAM,UAAWtqB,EAC1B,MAEJ,KAAK,QACDmsB,EAAO7B,KAAM,UAAWtqB,EACxB,MAEhB,KAAK,SACJosB,EAAQ9B,KAAM,UAAWtqB,EACzB,MAEW,KAAK,UACDqsB,EAAa5I,cACbsI,EAASzB,KAAM,UAAWtqB,GACrBA,GACD2rB,EAAIlI,YAAa,YACjB4I,EAAa7I,SAAU,2BACvBuI,EAAS/Z,KAAM,WAAW,KAE1B2Z,EAAInI,SAAU,YACd6I,EAAa7I,SAAU,6BACvBuI,EAAS1G,WAAY,WAEzB,MAEJ,KAAK,SACD6G,EAAW5B,KAAM,UAAWtqB,MjEq7JhD3D,GAAQmF,QiE56JOyoB,GjEg7JT,SAAU3tB,EAAQD,EAASH,GAEjC,YAGAc,QAAOC,eAAeZ,EAAS,cAC3B2D,OAAO,GAGX,IAAI0B,GAA4B,kBAAXO,SAAoD,gBAApBA,QAAOC,SAAwB,SAAUC,GAAO,aAAcA,IAAS,SAAUA,GAAO,MAAOA,IAAyB,kBAAXF,SAAyBE,EAAIC,cAAgBH,QAAUE,IAAQF,OAAOxE,UAAY,eAAkB0E,IkEnjKhQ4nB,EAAiB,WACnB,GAAIa,MACAiC,EAAgB,GAChBC,EAAyB,EAE7B,QACIriB,KAAM,SAAUuZ,GACQ,gBAAf,KAAOA,EAAP,YAAAtiB,EAAOsiB,KACR4G,EAAMngB,KAAMuZ,IAIpB6G,SAAU,WACN,MAAOD,IAGXmC,QAAS,SAAUxwB,GACf,QAAKquB,EAAMruB,IACAquB,EAAMruB,IAUrBmuB,YAAa,SAAUtnB,EAAMzD,GACzB,GAAIK,IAAQ,CACZ,KAAM,GAAIzD,KAAKquB,GACX,GAAK,aAAexnB,EAAO,IAAMzD,IAAOirB,EAAMruB,GAAG+vB,QAAU,CACvDtsB,EAAQ4qB,EAAMruB,EACd,OAGR,MAAOyD,IAGXwqB,gBAAiB,WACb,GAAIsB,KACJ,KAAM,GAAIvvB,KAAKquB,GACNA,EAAMruB,GAAGowB,aACVb,EAAQrhB,KAAMmgB,EAAMruB,GAG5B,OAAOuvB,IAGXkB,iBAAkB,WACd,GAAI/F,KAEJ,KAAM,GAAI1qB,KAAKquB,GACNA,EAAMruB,GAAGowB,aAAe/B,EAAMruB,GAAGqwB,cAClC3F,EAASxc,KAAMmgB,EAAMruB,GAI7B,OAAO0qB,IAGXkD,UAAW,SAAUyB,EAAQxoB,GACX,cAATA,EACD0pB,EAAyBlB,EAGzBiB,EAAgBjB,GAIxBxB,aAAc,WACV,IAAM,GAAI7tB,KAAKquB,GACNA,EAAMruB,KACFquB,EAAMruB,GAAGiwB,YAAaK,IAAmBjC,EAAMruB,GAAGmwB,qBAAsBI,GACzElC,EAAMruB,GAAG2nB,OAGT0G,EAAMruB,GAAG+W,UlE2jKjCjX,GAAQmF,QkEljKOuoB,GlEsjKT,SAAUztB,EAAQD,EAASH,GAEjC,YAGAc,QAAOC,eAAeZ,EAAS,cAC3B2D,OAAO,GmElpKX,IAAAmR,GAAAjV,EAAA,GnEupKIkV,EAEJ,SAAgCjP,GAAO,MAAOA,IAAOA,EAAI7E,WAAa6E,GAAQX,QAASW,IAFhDgP,GmErpKjC8b,EAAsB,SAAElE,EAAYmE,GAEtCnE,EAAalX,SAAUkX,GACvBmE,EAAcrb,SAAUqb,EACxB,IAAIC,IAAa,EAEbhrB,GACAonB,KAAM,WACF,GAAI6D,GAAiBrE,EAAamE,CACb,KAAhBA,EAED/sB,EAAMitB,GAGNhc,EAAA5P,QAAQb,aAAaE,aAChB5B,KAAM,WACHkB,EAAMitB,MAKtB5D,OAAQ,WAEJ,MADA2D,IAAa,EACN/b,EAAA5P,QAAQb,aAAaK,cAEhCsoB,YAAa,WACT,GAAK6D,EACD,MAAO,EAEX,IAAMC,GAAiBrE,EAAamE,CACpC,OAAOjb,MAAKob,IAAKpb,KAAKqb,MAAuD,IAA9Czb,SAAYkX,EAAaqE,GAA6BrE,GAAc,KAGvGE,aAAc,SAAUnG,KACxBoG,SAAU,SAAUhqB,MAUlBiB,EAAO,QAAPA,GAAiBitB,GACdA,GAAkB,GACnBF,EAAcnE,EAAaqE,EAC3Bhc,EAAA5P,QAAQb,aAAaG,UAAWosB,GAC3BjuB,KAAM,WACHmuB,GAAkC,EAClCjrB,EAAI8mB,aAAc9mB,EAAImnB,eACtBnpB,EAAMitB,MAIdhc,EAAA5P,QAAQb,aACHI,cACA9B,KAAMkD,EAAI+mB,UAIvB,OAAO/mB,GnEqpKX9F,GAAQmF,QmElpKOyrB,GnEspKT,SAAU3wB,EAAQD,EAASH,GAEjC,YoE1tKA,IAAAiV,GAAAjV,EAAA,GpE+tKIkV,EAEJ,SAAgCjP,GAAO,MAAOA,IAAOA,EAAI7E,WAAa6E,GAAQX,QAASW,IAFhDgP,IoE7tKrC,SAAUE,GACRC,WAAW9Q,WACPlE,OAAQ,YAERiV,KAAM,WACF,GAAMvO,GAAOvB,KACT8rB,EAAwBlc,EAAE,sBAC1Bmc,EAAuBnc,EAAE,kBA2C7B,OAzCLoc,wBACHhsB,KAAKuhB,QAAUyK,sBAEPpc,EAAE,+BAA+B4S,OAAQ,WACrC,GAAMjkB,GAAQqR,EAAE5P,MAAMmQ,KACtBR,GAAA5P,QAAQhB,UAAUC,mBAAoBT,GACjCf,KAAM,WAEH,GAAMyuB,GAAcrc,EAAE,wBACjB,WAAYrR,GACb0tB,EAAYpD,KAAM,WAAW,GAC7BoD,EAAYpD,KAAM,YAAY,IAE9BoD,EAAYpD,KAAM,YAAY,GAElCtnB,EAAK2qB,iBAIjBtc,EAAE,YAAY4S,OAAQ,WAClB,GAAMjkB,GAAQqR,EAAE5P,MAAMiH,GAAG,WACzB0I,GAAA5P,QAAQb,aAAaC,UAAWZ,GAC3Bf,KAAM,WACH+D,EAAK2qB,iBAIjBtc,EAAE,iCAAiC+B,MAAO,WACtC,GAAM5U,GAAM6S,EAAE5P,MAAMzD,KAAM,kBACrBQ,KACD+T,SAASC,KAAOhU,KAIxB+uB,EAAsBna,MAAO,SAASlP,GAClCA,EAAEmP,iBACFjC,EAAA5P,QAAQ/B,OAAOI,wBACf2tB,EAAqB/H,UACrB+H,EAAqB9a,SAAS8Q,SAAS,yBAGpC/hB,MAMXksB,WAAY,WACR,GAAMluB,GAAS4R,EAAE,6CACjB5R,GAAO+lB,YACP5S,WAAY,WACRnT,EAAOgmB,WACR,MAMbmI,gBAAiB,WAEhBjpB,OAAO+e,IAAIC,YAAa,2BAA6BC,MAAO,sDAM7DljB,UAAW,WACD0Q,EAAA5P,QAAQhB,UAAUE,YACbzB,KAAM,WACH0F,OAAO4N,SAASqX,QAAO,MAOzCiE,mBAAoB,WAEnBlpB,OAAO+e,IAAIC,YAAY,+BAAiCC,MAAO,kDAGhDjf,OAAO2M,WAAWwB,UAAU,eACpC+Q,gBAAiBpiB,KAAKuhB,QAAQc,yBAGrCjlB,SpEguKG,SAAUvC,EAAQD,EAASH,GAEjC,YqEl0KA,IAAAiV,GAAAjV,EAAA,GrEu0KIkV,EAEJ,SAAgCjP,GAAO,MAAOA,IAAOA,EAAI7E,WAAa6E,GAAQX,QAASW,IAFhDgP,IqEr0KrC,SAAUE,GACRC,WAAWwc,qBACPvc,KAAM,SAAUwc,GACZtsB,KAAKyrB,YAAca,EAASb,YAC5BzrB,KAAKzD,KAAO+vB,EACZtsB,KAAKL,MAAQ2sB,EAAS3sB,MACtBK,KAAKusB,OAASD,EAASC,OACvBvsB,KAAKwsB,gBAAkB5c,EAAE,qBACzB5P,KAAKysB,SAAW7c,EAAG,oBACnB5P,KAAKonB,SAAWxX,EAAG,uBACnB5P,KAAK0sB,kBAAoB9c,EAAE,iCAE3B5P,KAAK2sB,WAAY3sB,KAAKyrB,aAEtB7b,EAAE,QAAQ9G,GAAI,QAAS,iCAAkC,SAASrG,GAC9DA,EAAEmP,iBACF5R,KAAKlB,WAAWuF,MAAOuL,EAAEnN,EAAE4D,SAAUrG,QACvC+M,KAAK/M,QAIXlB,WAAY,SAAUyC,GAE3B,GAAMqrB,GAAU5sB,IAChB4sB,GAAQrc,KAAM,YAAY,GAC1BhP,EAAKsrB,cAEIld,EAAA5P,QAAQvB,WAAWM,aACdtB,KAAM,WAElB,GAAMsvB,GAAUld,EAAE,sCAClB1M,QAAO4gB,SAAS,EAAG,GACnBgJ,EAAQ/I,YACR5S,WAAW,WACV2b,EAAQ9I,WACN,KAEH4I,EAAQhJ,WAAY,YACpBriB,EAAKwrB,iBAIFJ,WAAY,SAAUjuB,GAClB,GAAMsuB,GAAWnd,WAAWwc,oBAAoBW,SAAU,oBAAsBtuB,GAC1EknB,EAAUoH,EAAUhtB,KAAKzD,MACzBgF,EAAOvB,IAER4lB,KACD5lB,KAAKyrB,YAAc/sB,EACnBsB,KAAKwsB,gBACA3a,OACAmR,KAAMgK,EAAUhtB,KAAKzD,OACrB0wB,SACA/c,KAAM,QACNpH,GAAI,SAAU,SAAUrG,GACrBA,EAAEmP,iBACFrQ,EAAK2rB,WAAWlyB,KAAMuG,EAAMqO,EAAE5P,SAGtCA,KAAKonB,SAAWpnB,KAAKwsB,gBAAgBtc,KAAM,wBAG/ClQ,KAAKmtB,cAGTA,WAAY,WACR,GAAMC,GAAqBxd,EAAE,qBAE7Bwd,GAAmBvb,OAEnBjC,EAAE,gCAAgC+B,MAAO,SAAUlP,GAC/CA,EAAEmP,iBACFwb,EAAmBpF,WAGvBhoB,KAAKwsB,gBAAgBtc,KAAM,UAAWW,KAAM,WACpD3N,OAAO+e,IAAIoL,WAAYrtB,QAGV,UAAYA,KAAKyrB,YAClBzrB,KAAK0sB,kBAAkB1K,YAAa,UAEpChiB,KAAK0sB,kBAAkB3K,SAAU,WAIzCuL,aAAc,WACVttB,KAAKysB,SAASzJ,KAAK,IACnBhjB,KAAKysB,SAASzK,eAGlBuL,YAAa,SAAUhtB,GACnBP,KAAKysB,SAAS1K,SAAU,eACxB/hB,KAAKysB,SAAS1K,SAAU,qBACxB/hB,KAAKysB,SAASzJ,KAAMziB,EAAU,KAGlCssB,YAAa,WACT7sB,KAAKonB,SAAS1W,IAAK,aAAc,YAGrCqc,YAAa,WACT/sB,KAAKonB,SAAS1W,IAAK,aAAc,WAGrCwc,WAAY,SAAUM,GAC3B,GAAMjsB,GAAOvB,IAEbwtB,GAAMtd,KAAM,sBAAuBK,KAAM,WAAY,QACrDvQ,KAAKstB,eACLttB,KAAK6sB,cAELld,EAAA5P,QAAQvB,WAAWC,QAASuB,KAAKyrB,YAAa+B,EAAM9J,YAAa1jB,KAAKzD,MACxDiB,KAAM,SAAEC,GACpB8D,EAAKhF,KAAOkB,EAASgwB,QACrBlsB,EAAKorB,WAAYlvB,EAASiwB,UAEC,UAAtBjwB,EAASiwB,WACbxqB,OAAO4N,SAASC,KAAOtT,EAASwmB,YAGjCjF,MAAO,SAAE3e,GACTkB,EAAKgsB,YAAaltB,KAGpBmtB,EAAMtd,KAAM,sBAAuB0T,WAAY,YAC/CriB,EAAKwrB,gBAIJld,WAAWwc,oBAAoBW,SAAW7jB,EAAEwkB,QAAQ,SAAWzvB,GAC3D,GAAI0vB,UACAjjB,GACIkjB,SAAa,kBACbC,YAAa,0BACbC,OAAa,2BACbC,SAAa,OAGrB,OAAO,UAAWzxB,GAGd,MAFA4M,GAAE8kB,iBAAmBtjB,GACrBijB,EAAWA,GAAYzkB,EAAE6jB,SAAUpd,EAAG1R,GAAK8kB,SAC1BzmB,OAG3Ba,SrEo0KI,SAAUvC,EAAQD,EAASH,GAEjC,csEz9KE,SAAUmV,GACRC,WAAWqe,QACPrzB,OAAQ,SACRszB,mBAAoB,KACpBC,UAAW,KACXC,MAAM,KACNjH,SAAU,KACVtX,KAAM,WACF9P,KAAKonB,SAAWxX,EAAE,YAClB5P,KAAKuhB,QAAU+M,kBACftuB,KAAKmuB,mBAAqBve,EAAG,2BAC7B5P,KAAKouB,UAAYxe,EAAE,sBAAsBO,MACzCnQ,KAAKuuB,eAAiB3e,EAAE,wBAExB5P,KAAKmuB,mBAAmB3L,OAAQ,WAC5Btf,OAAO4N,SAASC,KAAOnB,EAAE5P,MAAMkQ,KAAM,aAAc3T,KAAM,QAG7D,IAAIgF,GAAOvB,IACXA,MAAKuuB,eAAe/L,OAAQ,WACxBjhB,EAAK6lB,SAAS1W,IAAK,aAAc,WACrBd,EAAE5P,MAAMiH,GAAG,aACT1F,EAAK8sB,OACf3O,aAAcne,EAAK8sB,OACnB9sB,EAAK6lB,SAAS1W,IAAK,aAAc,WAIjCnP,EAAK8sB,MAAQld,WAAY,WACrBL,SAASC,KAAOxP,EAAKggB,QAAQiN,kBAC9B,OAMXxuB,KAAKyuB,YAGL7e,EAAE,2BAA2B9G,GAAI,QAAS,SAASrG,GAC/CA,EAAEmP,iBACFd,SAASqX,YAIjBsG,UAAW,WACP,GAAIlyB,GAAO,GAAImyB,QAAOC,cAAcC,SACpCryB,GAAKsyB,UAAU,WAAY,OAC3BtyB,EAAKsyB,UAAU,SAAU,qBAGzB,KAAK,GADDC,GAAc5uB,KAAKC,MAAOH,KAAKouB,WAC1BtzB,EAAI,EAAGA,EAAIg0B,EAAYryB,OAAQ3B,IACpCg0B,EAAYh0B,GAAG,GAAK,GAAIqa,MAAM2Z,EAAYh0B,GAAG,IAC7Cg0B,EAAYh0B,GAAG,GAAK0V,KAAKqb,MAAOiD,EAAYh0B,GAAG,IAGP,GAAnC0V,KAAKqb,MAAOiD,EAAYh0B,GAAG,MAC5Bg0B,EAAYh0B,GAAG,IAAM,IAK7ByB,GAAKwyB,QAAQD,EAEb,IAAInkB,IACAqkB,WACIC,KAAM,GACN3iB,IAAK,GACLyW,MAAO,MACP8C,OAAQ,OAEZqJ,QAAS,WACTC,UAAW,WAEXC,QAAUljB,SAAU,QACpBmjB,OACIC,OAAQ,WACRC,YAAc3D,IAAK,IAEvB4D,SAAWC,QAAQ,GACnBC,QACIC,GAAKC,KAAM,SAEfC,MACIC,GACIC,MAAQC,MAAO,yBAKvBC,EAAQ,GAAIvB,QAAOC,cAAcuB,UAAU1oB,SAAS2oB,eAAe,gBACvEF,GAAMG,KAAK7zB,EAAMoO,GAEjBiF,EAAE1M,QAAQmtB,OAAO,WACbJ,EAAMG,KAAK7zB,EAAMoO,QAI/BvN,StE89KI,SAAUvC,EAAQD,EAASH,GAEjC,YuElkLA,IAAAiV,GAAAjV,EAAA,GvEukLIkV,EAEJ,SAAgCjP,GAAO,MAAOA,IAAOA,EAAI7E,WAAa6E,GAAQX,QAASW,IAFhDgP,IuErkLrC,SAAUE,GACRC,WAAWrR,YACP3D,OAAQ,aACRy1B,aAAa,EACblJ,UAAU,EAEVtX,KAAM,WACF9P,KAAKonB,SAAWxX,EAAE,iBAClB5P,KAAKswB,YAAc1gB,EAAE,kBACrB,IAAIrO,GAAOvB,IAOX,OANKpC,MAAKY,WAAWyI,GAAGspB,WACpBvwB,KAAKswB,YAAY9N,OAAQ,WACrBjhB,EAAKivB,UAAUx1B,KAAMuG,GAAOvB,SAI7BA,MAGXwwB,UAAW,SAAUzrB,GACjB/E,KAAKywB,gBACL,IAAMlyB,GAAQqR,EAAE7K,GAAUoL,KAC1BR,GAAA5P,QAAQvB,WAAWK,cAAeN,GAC7Bf,KAAM,WACH0F,OAAO4N,SAASqX,YAI5BsI,eAAgB,WACZzwB,KAAKonB,SAAS1W,IAAK,aAAc,cAG1CtT,SvE4kLG,SAAUvC,EAAQD,EAASH,GAEjC,YwEhnLA2C,QAAOoK,UAAUkpB,MAAO,WACpB7gB,WAAWC","file":"admin.min.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \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, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\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/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 20);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _assign = __webpack_require__(22);\n\nvar _assign2 = _interopRequireDefault(_assign);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction Fetcher() {\n var fetchUrl = ajaxurl;\n var fetchNonce = wphb.nonces.HBFetchNonce;\n var actionPrefix = 'wphb_';\n var actionPrefixPro = 'wphb_pro_';\n\n function request(action) {\n var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var method = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'GET';\n\n data.nonce = fetchNonce;\n data.action = action;\n var args = { data: data, method: method };\n args.url = fetchUrl;\n var Promise = __webpack_require__(56).Promise;\n return new Promise(function (resolve, reject) {\n jQuery.ajax(args).done(resolve).fail(reject);\n }).then(function (response) {\n return checkStatus(response);\n });\n }\n\n var methods = {\n /**\n * Notices actions.\n */\n notice: {\n /**\n * Dismiss notice\n * @param id Notice id.\n */\n dismiss: function dismiss(id) {\n var action = actionPrefix + 'notice_dismiss';\n return request(action, { id: id }, 'POST');\n },\n /**\n * Dismiss CloudFlare dash notice\n */\n dismissCloudflareDash: function dismissCloudflareDash() {\n var action = actionPrefix + 'cf_notice_dismiss';\n return request(action, {}, 'POST');\n }\n },\n /**\n * Caching module actions.\n */\n caching: {\n /**\n * Set server type.\n *\n * @param value Server type.\n */\n setServer: function setServer(value) {\n var action = actionPrefix + 'caching_set_server_type';\n return request(action, { value: value }, 'POST');\n }\n },\n\n /**\n * CLoudflare module actions.\n */\n cloudflare: {\n /**\n * Connect to Cloudflare.\n *\n * @param step\n * @param formData\n * @param cfData\n */\n connect: function connect(step, formData, cfData) {\n var action = actionPrefix + 'cloudflare_connect';\n return request(action, { step: step, formData: formData, cfData: cfData }, 'POST').then(function (response) {\n return response;\n });\n },\n\n /**\n * Set expiry for Cloudflare cache.\n *\n * @param value Expiry value.\n */\n setExpiration: function setExpiration(value) {\n var action = actionPrefix + 'cloudflare_set_expiry';\n return request(action, { value: value }, 'POST');\n },\n\n /**\n * Purge Cloudflare cache.\n */\n purgeCache: function purgeCache() {\n var action = actionPrefix + 'cloudflare_purge_cache';\n return request(action, {}, 'POST');\n }\n },\n\n /**\n * Dashboard module actions.\n */\n dashboard: {\n /**\n * Toggle global minification settings for network installs.\n *\n * @param value Accepts: 'super-admins', 'false' and 'true'. Default: 'true'.\n */\n toggleMinification: function toggleMinification(value) {\n var action = actionPrefix + 'dash_toggle_network_minification';\n return request(action, { value: value }, 'POST');\n },\n\n /**\n * Skip quick setup.\n */\n skipSetup: function skipSetup() {\n var action = actionPrefix + 'dash_skip_setup';\n return request(action, {}, 'POST');\n }\n },\n\n /**\n * Minification module actions.\n */\n minification: {\n /**\n * Toggle CDN settings.\n *\n * @param value CDN checkbox value.\n */\n toggleCDN: function toggleCDN(value) {\n var action = actionPrefix + 'minification_toggle_cdn';\n return request(action, { value: value }, 'POST');\n },\n\n /**\n * Toggle minificatiojn settings on per site basis.\n *\n * @param value\n */\n toggleMinification: function toggleMinification(value) {\n var action = actionPrefix + 'minification_toggle_minification';\n return request(action, { value: value }, 'POST');\n },\n\n /**\n * Start minification check.\n *\n * @param progress\n */\n startCheck: function startCheck() {\n var action = actionPrefix + 'minification_start_check';\n return request(action, {}, 'POST');\n },\n\n /**\n * Do a step in minification process.\n *\n * @param progress\n * @param step\n */\n checkStep: function checkStep(step) {\n var action = actionPrefix + 'minification_check_step';\n return request(action, { step: step }, 'POST').then(function (response) {\n return response;\n });\n },\n\n /**\n * Finish minification process.\n */\n finishCheck: function finishCheck() {\n var action = actionPrefix + 'minification_finish_scan';\n return request(action, {}, 'POST');\n },\n\n /**\n * Cancel minification scan.\n */\n cancelScan: function cancelScan() {\n var action = actionPrefix + 'minification_cancel_scan';\n return request(action, {}, 'POST');\n }\n },\n\n /**\n * Performance module actions.\n */\n performance: {\n /**\n * Run performance test.\n */\n runTest: function runTest() {\n var action = actionPrefix + 'performance_run_test';\n return request(action, {}, 'POST').then(function (response) {\n return response;\n });\n },\n\n /**\n * Add a single email/name recipient to the reports list.\n *\n * @param email\n * @param name\n */\n addRecipient: function addRecipient(email, name) {\n var action = actionPrefixPro + 'performance_add_recipient';\n return request(action, { email: email, name: name }, 'POST').then(function (response) {\n return response;\n });\n },\n\n /**\n * Save reporting settings on minification page.\n *\n * @param data From data.\n */\n saveReportsSettings: function saveReportsSettings(data) {\n var action = actionPrefixPro + 'performance_save_reports_settings';\n return request(action, { data: data }, 'POST');\n }\n }\n };\n\n (0, _assign2.default)(this, methods);\n}\n\nvar HBFetcher = new Fetcher();\nexports.default = HBFetcher;\n\n\nfunction checkStatus(response) {\n if ((typeof response === 'undefined' ? 'undefined' : _typeof(response)) !== 'object') {\n response = JSON.parse(response);\n }\n if (response.success) {\n return response.data;\n }\n\n var data = response.data || {};\n var error = new Error(data.message || 'Error trying to fetch response from server');\n error.response = response;\n throw error;\n}\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Symbol = __webpack_require__(10),\n getRawTag = __webpack_require__(25),\n objectToString = __webpack_require__(26);\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar freeGlobal = __webpack_require__(11);\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\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isFunction = __webpack_require__(9),\n isLength = __webpack_require__(15);\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\n/***/ }),\n/* 5 */\n/***/ (function(module, exports) {\n\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\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseAssignValue = __webpack_require__(7),\n eq = __webpack_require__(13);\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\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar defineProperty = __webpack_require__(8);\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getNative = __webpack_require__(23);\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\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseGetTag = __webpack_require__(1),\n isObject = __webpack_require__(3);\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\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar root = __webpack_require__(2);\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global) {/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(12)))\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports) {\n\nvar 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 || Function(\"return this\")() || (1,eval)(\"this\");\n} catch(e) {\n\t// This works if the window reference is available\n\tif(typeof window === \"object\")\n\t\tg = 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\n/***/ }),\n/* 13 */\n/***/ (function(module, exports) {\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports) {\n\n/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports) {\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports) {\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports) {\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports) {\n\nmodule.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\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var require;var require;\n\nvar _typeof2 = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/*!\n * clipboard.js v1.7.1\n * https://zenorocha.github.io/clipboard.js\n *\n * Licensed MIT © Zeno Rocha\n */\n(function (f) {\n if (( false ? \"undefined\" : _typeof2(exports)) === \"object\" && typeof module !== \"undefined\") {\n module.exports = f();\n } else if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (f),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else {\n var g;if (typeof window !== \"undefined\") {\n g = window;\n } else if (typeof global !== \"undefined\") {\n g = global;\n } else if (typeof self !== \"undefined\") {\n g = self;\n } else {\n g = this;\n }g.Clipboard = f();\n }\n})(function () {\n var define, module, exports;return function e(t, n, r) {\n function s(o, u) {\n if (!n[o]) {\n if (!t[o]) {\n var a = typeof require == \"function\" && require;if (!u && a) return require(o, !0);if (i) return i(o, !0);var f = new Error(\"Cannot find module '\" + o + \"'\");throw f.code = \"MODULE_NOT_FOUND\", f;\n }var l = n[o] = { exports: {} };t[o][0].call(l.exports, function (e) {\n var n = t[o][1][e];return s(n ? n : e);\n }, l, l.exports, e, t, n, r);\n }return n[o].exports;\n }var i = typeof require == \"function\" && require;for (var o = 0; o < r.length; o++) {\n s(r[o]);\n }return s;\n }({ 1: [function (require, module, exports) {\n var DOCUMENT_NODE_TYPE = 9;\n\n /**\n * A polyfill for Element.matches()\n */\n if (typeof Element !== 'undefined' && !Element.prototype.matches) {\n var proto = Element.prototype;\n\n proto.matches = proto.matchesSelector || proto.mozMatchesSelector || proto.msMatchesSelector || proto.oMatchesSelector || proto.webkitMatchesSelector;\n }\n\n /**\n * Finds the closest parent that matches a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @return {Function}\n */\n function closest(element, selector) {\n while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {\n if (typeof element.matches === 'function' && element.matches(selector)) {\n return element;\n }\n element = element.parentNode;\n }\n }\n\n module.exports = closest;\n }, {}], 2: [function (require, module, exports) {\n var closest = require('./closest');\n\n /**\n * Delegates event to a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\n function delegate(element, selector, type, callback, useCapture) {\n var listenerFn = listener.apply(this, arguments);\n\n element.addEventListener(type, listenerFn, useCapture);\n\n return {\n destroy: function destroy() {\n element.removeEventListener(type, listenerFn, useCapture);\n }\n };\n }\n\n /**\n * Finds closest match and invokes callback.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Function}\n */\n function listener(element, selector, type, callback) {\n return function (e) {\n e.delegateTarget = closest(e.target, selector);\n\n if (e.delegateTarget) {\n callback.call(element, e);\n }\n };\n }\n\n module.exports = delegate;\n }, { \"./closest\": 1 }], 3: [function (require, module, exports) {\n /**\n * Check if argument is a HTML element.\n *\n * @param {Object} value\n * @return {Boolean}\n */\n exports.node = function (value) {\n return value !== undefined && value instanceof HTMLElement && value.nodeType === 1;\n };\n\n /**\n * Check if argument is a list of HTML elements.\n *\n * @param {Object} value\n * @return {Boolean}\n */\n exports.nodeList = function (value) {\n var type = Object.prototype.toString.call(value);\n\n return value !== undefined && (type === '[object NodeList]' || type === '[object HTMLCollection]') && 'length' in value && (value.length === 0 || exports.node(value[0]));\n };\n\n /**\n * Check if argument is a string.\n *\n * @param {Object} value\n * @return {Boolean}\n */\n exports.string = function (value) {\n return typeof value === 'string' || value instanceof String;\n };\n\n /**\n * Check if argument is a function.\n *\n * @param {Object} value\n * @return {Boolean}\n */\n exports.fn = function (value) {\n var type = Object.prototype.toString.call(value);\n\n return type === '[object Function]';\n };\n }, {}], 4: [function (require, module, exports) {\n var is = require('./is');\n var delegate = require('delegate');\n\n /**\n * Validates all params and calls the right\n * listener function based on its target type.\n *\n * @param {String|HTMLElement|HTMLCollection|NodeList} target\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\n function listen(target, type, callback) {\n if (!target && !type && !callback) {\n throw new Error('Missing required arguments');\n }\n\n if (!is.string(type)) {\n throw new TypeError('Second argument must be a String');\n }\n\n if (!is.fn(callback)) {\n throw new TypeError('Third argument must be a Function');\n }\n\n if (is.node(target)) {\n return listenNode(target, type, callback);\n } else if (is.nodeList(target)) {\n return listenNodeList(target, type, callback);\n } else if (is.string(target)) {\n return listenSelector(target, type, callback);\n } else {\n throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');\n }\n }\n\n /**\n * Adds an event listener to a HTML element\n * and returns a remove listener function.\n *\n * @param {HTMLElement} node\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\n function listenNode(node, type, callback) {\n node.addEventListener(type, callback);\n\n return {\n destroy: function destroy() {\n node.removeEventListener(type, callback);\n }\n };\n }\n\n /**\n * Add an event listener to a list of HTML elements\n * and returns a remove listener function.\n *\n * @param {NodeList|HTMLCollection} nodeList\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\n function listenNodeList(nodeList, type, callback) {\n Array.prototype.forEach.call(nodeList, function (node) {\n node.addEventListener(type, callback);\n });\n\n return {\n destroy: function destroy() {\n Array.prototype.forEach.call(nodeList, function (node) {\n node.removeEventListener(type, callback);\n });\n }\n };\n }\n\n /**\n * Add an event listener to a selector\n * and returns a remove listener function.\n *\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\n function listenSelector(selector, type, callback) {\n return delegate(document.body, selector, type, callback);\n }\n\n module.exports = listen;\n }, { \"./is\": 3, \"delegate\": 2 }], 5: [function (require, module, exports) {\n function select(element) {\n var selectedText;\n\n if (element.nodeName === 'SELECT') {\n element.focus();\n\n selectedText = element.value;\n } else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n var isReadOnly = element.hasAttribute('readonly');\n\n if (!isReadOnly) {\n element.setAttribute('readonly', '');\n }\n\n element.select();\n element.setSelectionRange(0, element.value.length);\n\n if (!isReadOnly) {\n element.removeAttribute('readonly');\n }\n\n selectedText = element.value;\n } else {\n if (element.hasAttribute('contenteditable')) {\n element.focus();\n }\n\n var selection = window.getSelection();\n var range = document.createRange();\n\n range.selectNodeContents(element);\n selection.removeAllRanges();\n selection.addRange(range);\n\n selectedText = selection.toString();\n }\n\n return selectedText;\n }\n\n module.exports = select;\n }, {}], 6: [function (require, module, exports) {\n function E() {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n }\n\n E.prototype = {\n on: function on(name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function once(name, callback, ctx) {\n var self = this;\n function listener() {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback;\n return this.on(name, listener, ctx);\n },\n\n emit: function emit(name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function off(name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback) liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n liveEvents.length ? e[name] = liveEvents : delete e[name];\n\n return this;\n }\n };\n\n module.exports = E;\n }, {}], 7: [function (require, module, exports) {\n (function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(['module', 'select'], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(module, require('select'));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod, global.select);\n global.clipboardAction = mod.exports;\n }\n })(this, function (module, _select) {\n 'use strict';\n\n var _select2 = _interopRequireDefault(_select);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n var _typeof = typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\" ? function (obj) {\n return typeof obj === \"undefined\" ? \"undefined\" : _typeof2(obj);\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof2(obj);\n };\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var ClipboardAction = function () {\n /**\n * @param {Object} options\n */\n function ClipboardAction(options) {\n _classCallCheck(this, ClipboardAction);\n\n this.resolveOptions(options);\n this.initSelection();\n }\n\n /**\n * Defines base properties passed from constructor.\n * @param {Object} options\n */\n\n _createClass(ClipboardAction, [{\n key: 'resolveOptions',\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n this.action = options.action;\n this.container = options.container;\n this.emitter = options.emitter;\n this.target = options.target;\n this.text = options.text;\n this.trigger = options.trigger;\n\n this.selectedText = '';\n }\n }, {\n key: 'initSelection',\n value: function initSelection() {\n if (this.text) {\n this.selectFake();\n } else if (this.target) {\n this.selectTarget();\n }\n }\n }, {\n key: 'selectFake',\n value: function selectFake() {\n var _this = this;\n\n var isRTL = document.documentElement.getAttribute('dir') == 'rtl';\n\n this.removeFake();\n\n this.fakeHandlerCallback = function () {\n return _this.removeFake();\n };\n this.fakeHandler = this.container.addEventListener('click', this.fakeHandlerCallback) || true;\n\n this.fakeElem = document.createElement('textarea');\n // Prevent zooming on iOS\n this.fakeElem.style.fontSize = '12pt';\n // Reset box model\n this.fakeElem.style.border = '0';\n this.fakeElem.style.padding = '0';\n this.fakeElem.style.margin = '0';\n // Move element out of screen horizontally\n this.fakeElem.style.position = 'absolute';\n this.fakeElem.style[isRTL ? 'right' : 'left'] = '-9999px';\n // Move element to the same position vertically\n var yPosition = window.pageYOffset || document.documentElement.scrollTop;\n this.fakeElem.style.top = yPosition + 'px';\n\n this.fakeElem.setAttribute('readonly', '');\n this.fakeElem.value = this.text;\n\n this.container.appendChild(this.fakeElem);\n\n this.selectedText = (0, _select2.default)(this.fakeElem);\n this.copyText();\n }\n }, {\n key: 'removeFake',\n value: function removeFake() {\n if (this.fakeHandler) {\n this.container.removeEventListener('click', this.fakeHandlerCallback);\n this.fakeHandler = null;\n this.fakeHandlerCallback = null;\n }\n\n if (this.fakeElem) {\n this.container.removeChild(this.fakeElem);\n this.fakeElem = null;\n }\n }\n }, {\n key: 'selectTarget',\n value: function selectTarget() {\n this.selectedText = (0, _select2.default)(this.target);\n this.copyText();\n }\n }, {\n key: 'copyText',\n value: function copyText() {\n var succeeded = void 0;\n\n try {\n succeeded = document.execCommand(this.action);\n } catch (err) {\n succeeded = false;\n }\n\n this.handleResult(succeeded);\n }\n }, {\n key: 'handleResult',\n value: function handleResult(succeeded) {\n this.emitter.emit(succeeded ? 'success' : 'error', {\n action: this.action,\n text: this.selectedText,\n trigger: this.trigger,\n clearSelection: this.clearSelection.bind(this)\n });\n }\n }, {\n key: 'clearSelection',\n value: function clearSelection() {\n if (this.trigger) {\n this.trigger.focus();\n }\n\n window.getSelection().removeAllRanges();\n }\n }, {\n key: 'destroy',\n value: function destroy() {\n this.removeFake();\n }\n }, {\n key: 'action',\n set: function set() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'copy';\n\n this._action = action;\n\n if (this._action !== 'copy' && this._action !== 'cut') {\n throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');\n }\n },\n get: function get() {\n return this._action;\n }\n }, {\n key: 'target',\n set: function set(target) {\n if (target !== undefined) {\n if (target && (typeof target === 'undefined' ? 'undefined' : _typeof(target)) === 'object' && target.nodeType === 1) {\n if (this.action === 'copy' && target.hasAttribute('disabled')) {\n throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');\n }\n\n if (this.action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {\n throw new Error('Invalid \"target\" attribute. You can\\'t cut text from elements with \"readonly\" or \"disabled\" attributes');\n }\n\n this._target = target;\n } else {\n throw new Error('Invalid \"target\" value, use a valid Element');\n }\n }\n },\n get: function get() {\n return this._target;\n }\n }]);\n\n return ClipboardAction;\n }();\n\n module.exports = ClipboardAction;\n });\n }, { \"select\": 5 }], 8: [function (require, module, exports) {\n (function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(['module', './clipboard-action', 'tiny-emitter', 'good-listener'], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(module, require('./clipboard-action'), require('tiny-emitter'), require('good-listener'));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod, global.clipboardAction, global.tinyEmitter, global.goodListener);\n global.clipboard = mod.exports;\n }\n })(this, function (module, _clipboardAction, _tinyEmitter, _goodListener) {\n 'use strict';\n\n var _clipboardAction2 = _interopRequireDefault(_clipboardAction);\n\n var _tinyEmitter2 = _interopRequireDefault(_tinyEmitter);\n\n var _goodListener2 = _interopRequireDefault(_goodListener);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n var _typeof = typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\" ? function (obj) {\n return typeof obj === \"undefined\" ? \"undefined\" : _typeof2(obj);\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof2(obj);\n };\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && ((typeof call === \"undefined\" ? \"undefined\" : _typeof2(call)) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + (typeof superClass === \"undefined\" ? \"undefined\" : _typeof2(superClass)));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n\n var Clipboard = function (_Emitter) {\n _inherits(Clipboard, _Emitter);\n\n /**\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n * @param {Object} options\n */\n function Clipboard(trigger, options) {\n _classCallCheck(this, Clipboard);\n\n var _this = _possibleConstructorReturn(this, (Clipboard.__proto__ || Object.getPrototypeOf(Clipboard)).call(this));\n\n _this.resolveOptions(options);\n _this.listenClick(trigger);\n return _this;\n }\n\n /**\n * Defines if attributes would be resolved using internal setter functions\n * or custom functions that were passed in the constructor.\n * @param {Object} options\n */\n\n _createClass(Clipboard, [{\n key: 'resolveOptions',\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n this.action = typeof options.action === 'function' ? options.action : this.defaultAction;\n this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;\n this.text = typeof options.text === 'function' ? options.text : this.defaultText;\n this.container = _typeof(options.container) === 'object' ? options.container : document.body;\n }\n }, {\n key: 'listenClick',\n value: function listenClick(trigger) {\n var _this2 = this;\n\n this.listener = (0, _goodListener2.default)(trigger, 'click', function (e) {\n return _this2.onClick(e);\n });\n }\n }, {\n key: 'onClick',\n value: function onClick(e) {\n var trigger = e.delegateTarget || e.currentTarget;\n\n if (this.clipboardAction) {\n this.clipboardAction = null;\n }\n\n this.clipboardAction = new _clipboardAction2.default({\n action: this.action(trigger),\n target: this.target(trigger),\n text: this.text(trigger),\n container: this.container,\n trigger: trigger,\n emitter: this\n });\n }\n }, {\n key: 'defaultAction',\n value: function defaultAction(trigger) {\n return getAttributeValue('action', trigger);\n }\n }, {\n key: 'defaultTarget',\n value: function defaultTarget(trigger) {\n var selector = getAttributeValue('target', trigger);\n\n if (selector) {\n return document.querySelector(selector);\n }\n }\n }, {\n key: 'defaultText',\n value: function defaultText(trigger) {\n return getAttributeValue('text', trigger);\n }\n }, {\n key: 'destroy',\n value: function destroy() {\n this.listener.destroy();\n\n if (this.clipboardAction) {\n this.clipboardAction.destroy();\n this.clipboardAction = null;\n }\n }\n }], [{\n key: 'isSupported',\n value: function isSupported() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];\n\n var actions = typeof action === 'string' ? [action] : action;\n var support = !!document.queryCommandSupported;\n\n actions.forEach(function (action) {\n support = support && !!document.queryCommandSupported(action);\n });\n\n return support;\n }\n }]);\n\n return Clipboard;\n }(_tinyEmitter2.default);\n\n /**\n * Helper function to retrieve attribute value.\n * @param {String} suffix\n * @param {Element} element\n */\n function getAttributeValue(suffix, element) {\n var attribute = 'data-clipboard-' + suffix;\n\n if (!element.hasAttribute(attribute)) {\n return;\n }\n\n return element.getAttribute(attribute);\n }\n\n module.exports = Clipboard;\n });\n }, { \"./clipboard-action\": 7, \"good-listener\": 4, \"tiny-emitter\": 6 }] }, {}, [8])(8);\n});\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(21);\n__webpack_require__(59);\n__webpack_require__(60);\n__webpack_require__(61);\n__webpack_require__(62);\n__webpack_require__(67);\n__webpack_require__(68);\n__webpack_require__(69);\n__webpack_require__(70);\n__webpack_require__(71);\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _fetcher = __webpack_require__(0);\n\nvar _fetcher2 = _interopRequireDefault(_fetcher);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function ($) {\n 'use strict';\n\n var WPHB_Admin = {\n modules: [],\n // Common functionality to all screens\n init: function init() {\n\n // Mobile navigation links.\n $('body').on('change', '.mobile-nav', function () {\n var url = $(this).val();\n if (url.length > 0) {\n location.href = url;\n }\n });\n\n // Dismiss notice via an ajax call.\n $('#wphb-dismissable').on('click', '.close', function () {\n var notice_id = $(this).parent().attr('data-id');\n _fetcher2.default.notice.dismiss(notice_id);\n });\n\n function updatePerformanceGraph($wrap) {\n var $item = $wrap.find('.wphb-score-result-label'),\n val = parseInt($item.text(), 10) || 100,\n $circle = $wrap.find(\".wphb-score-graph-result\"),\n r = void 0,\n c = void 0,\n pct = void 0;\n r = $circle.attr('r');\n c = Math.PI * (r * 2);\n\n if (val < 0) {\n val = 0;\n }\n if (val > 100) {\n val = 100;\n }\n\n pct = (100 - val) / 100 * c;\n\n $circle.css({ strokeDashoffset: pct });\n }\n\n function updatePerformanceResultsGraphs() {\n\n // Update Overall Score\n $(\".wphb-performance-report-overall-score\").each(function () {\n updatePerformanceGraph($(this));\n });\n\n // Update Current Score\n $(\".wphb-performance-report-current-score\").each(function () {\n updatePerformanceGraph($(this));\n });\n\n // Update All Scores\n $(\".wphb-performance-report-item-score\").each(function () {\n updatePerformanceGraph($(this));\n });\n }\n window.register_events_performance = function () {\n setTimeout(updatePerformanceResultsGraphs, 500);\n };\n $(function () {\n setTimeout(updatePerformanceResultsGraphs, 500);\n });\n },\n initModule: function initModule(module) {\n if (this.hasOwnProperty(module)) {\n this.modules[module] = this[module].init();\n return this.modules[module];\n }\n\n return {};\n },\n getModule: function getModule(module) {\n if (typeof this.modules[module] !== 'undefined') return this.modules[module];else return this.initModule(module);\n }\n };\n\n WPHB_Admin.utils = {\n\n membershipModal: {\n open: function open() {\n $('#wphb-upgrade-membership-modal-link').trigger('click');\n }\n },\n\n post: function post(data, module) {\n data.action = 'wphb_ajax';\n data.module = module;\n return $.ajax({\n url: ajaxurl,\n method: 'POST',\n data: data\n });\n }\n };\n\n WPHB_Admin.notices = {\n\n init: function init() {\n $('.wphb-notice:not(.notice) a.wphb-dismiss').click(function (e) {\n e.preventDefault();\n var id = $(this).data('id');\n var nonce = $(this).data('nonce');\n\n $(this).parent('.error').hide();\n });\n }\n };\n\n window.WPHB_Admin = WPHB_Admin;\n})(jQuery);\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar assignValue = __webpack_require__(6),\n copyObject = __webpack_require__(31),\n createAssigner = __webpack_require__(32),\n isArrayLike = __webpack_require__(4),\n isPrototype = __webpack_require__(17),\n keys = __webpack_require__(41);\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\nvar assign = createAssigner(function(object, source) {\n if (isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n});\n\nmodule.exports = assign;\n\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseIsNative = __webpack_require__(24),\n getValue = __webpack_require__(30);\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\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isFunction = __webpack_require__(9),\n isMasked = __webpack_require__(27),\n isObject = __webpack_require__(3),\n toSource = __webpack_require__(29);\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\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Symbol = __webpack_require__(10);\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\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports) {\n\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\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar coreJsData = __webpack_require__(28);\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar root = __webpack_require__(2);\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports) {\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports) {\n\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\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar assignValue = __webpack_require__(6),\n baseAssignValue = __webpack_require__(7);\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\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseRest = __webpack_require__(33),\n isIterateeCall = __webpack_require__(40);\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar identity = __webpack_require__(14),\n overRest = __webpack_require__(34),\n setToString = __webpack_require__(36);\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\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar apply = __webpack_require__(35);\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\n/***/ }),\n/* 35 */\n/***/ (function(module, exports) {\n\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\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseSetToString = __webpack_require__(37),\n shortOut = __webpack_require__(39);\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\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar constant = __webpack_require__(38),\n defineProperty = __webpack_require__(8),\n identity = __webpack_require__(14);\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\n/***/ }),\n/* 38 */\n/***/ (function(module, exports) {\n\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\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports) {\n\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\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar eq = __webpack_require__(13),\n isArrayLike = __webpack_require__(4),\n isIndex = __webpack_require__(16),\n isObject = __webpack_require__(3);\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar arrayLikeKeys = __webpack_require__(42),\n baseKeys = __webpack_require__(53),\n isArrayLike = __webpack_require__(4);\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\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseTimes = __webpack_require__(43),\n isArguments = __webpack_require__(44),\n isArray = __webpack_require__(46),\n isBuffer = __webpack_require__(47),\n isIndex = __webpack_require__(16),\n isTypedArray = __webpack_require__(49);\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\n/***/ }),\n/* 43 */\n/***/ (function(module, exports) {\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n\n\n/***/ }),\n/* 44 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseIsArguments = __webpack_require__(45),\n isObjectLike = __webpack_require__(5);\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\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseGetTag = __webpack_require__(1),\n isObjectLike = __webpack_require__(5);\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\n/***/ }),\n/* 46 */\n/***/ (function(module, exports) {\n\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\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(module) {var root = __webpack_require__(2),\n stubFalse = __webpack_require__(48);\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/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(18)(module)))\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports) {\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseIsTypedArray = __webpack_require__(50),\n baseUnary = __webpack_require__(51),\n nodeUtil = __webpack_require__(52);\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\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseGetTag = __webpack_require__(1),\n isLength = __webpack_require__(15),\n isObjectLike = __webpack_require__(5);\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\n/***/ }),\n/* 51 */\n/***/ (function(module, exports) {\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(module) {var freeGlobal = __webpack_require__(11);\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 return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(18)(module)))\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isPrototype = __webpack_require__(17),\n nativeKeys = __webpack_require__(54);\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\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar overArg = __webpack_require__(55);\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\n/***/ }),\n/* 55 */\n/***/ (function(module, exports) {\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(process, global) {var require;/*!\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 4.1.1\n */\n\n(function (global, factory) {\n\t true ? 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\nvar _isArray = undefined;\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 = undefined;\nvar customSchedulerFn = undefined;\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 r = require;\n var vertx = __webpack_require__(58);\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n } catch (e) {\n return useSetTimeout();\n }\n}\n\nvar scheduleFlush = undefined;\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 && \"function\" === 'function') {\n scheduleFlush = attemptVertx();\n} else {\n scheduleFlush = useSetTimeout();\n}\n\nfunction then(onFulfillment, onRejection) {\n var _arguments = arguments;\n\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 if (_state) {\n (function () {\n var callback = _arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\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(16);\n\nfunction noop() {}\n\nvar PENDING = void 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\n\nvar GET_THEN_ERROR = new ErrorObject();\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 getThen(promise) {\n try {\n return promise.then;\n } catch (error) {\n GET_THEN_ERROR.error = error;\n return GET_THEN_ERROR;\n }\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 === GET_THEN_ERROR) {\n reject(promise, GET_THEN_ERROR.error);\n GET_THEN_ERROR.error = null;\n } else 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 handleMaybeThenable(promise, value, getThen(value));\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 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 = undefined,\n callback = undefined,\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 ErrorObject() {\n this.error = null;\n}\n\nvar TRY_CATCH_ERROR = new ErrorObject();\n\nfunction tryCatch(callback, detail) {\n try {\n return callback(detail);\n } catch (e) {\n TRY_CATCH_ERROR.error = e;\n return TRY_CATCH_ERROR;\n }\n}\n\nfunction invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback),\n value = undefined,\n error = undefined,\n succeeded = undefined,\n failed = undefined;\n\n if (hasCallback) {\n value = tryCatch(callback, detail);\n\n if (value === TRY_CATCH_ERROR) {\n failed = true;\n error = value.error;\n value.error = null;\n } else {\n succeeded = true;\n }\n\n if (promise === value) {\n reject(promise, cannotReturnOwn());\n return;\n }\n } else {\n value = detail;\n succeeded = true;\n }\n\n if (promise._state !== PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n resolve(promise, value);\n } else if (failed) {\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 Enumerator$1(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\nfunction validationError() {\n return new Error('Array Methods must be provided an Array');\n}\n\nEnumerator$1.prototype._enumerate = function (input) {\n for (var i = 0; this._state === PENDING && i < input.length; i++) {\n this._eachEntry(input[i], i);\n }\n};\n\nEnumerator$1.prototype._eachEntry = function (entry, i) {\n var c = this._instanceConstructor;\n var resolve$$1 = c.resolve;\n\n if (resolve$$1 === resolve$1) {\n var _then = getThen(entry);\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$2) {\n var promise = new c(noop);\n handleMaybeThenable(promise, entry, _then);\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\nEnumerator$1.prototype._settledAt = function (state, i, value) {\n var promise = this.promise;\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\nEnumerator$1.prototype._willSettleAt = function (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/**\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$1(entries) {\n return new Enumerator$1(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$1(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*/\nfunction Promise$2(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$2 ? initializePromise(this, resolver) : needsNew();\n }\n}\n\nPromise$2.all = all$1;\nPromise$2.race = race$1;\nPromise$2.resolve = resolve$1;\nPromise$2.reject = reject$1;\nPromise$2._setScheduler = setScheduler;\nPromise$2._setAsap = setAsap;\nPromise$2._asap = asap;\n\nPromise$2.prototype = {\n constructor: Promise$2,\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 \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 \n Chaining\n --------\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 \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 \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 \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 \n Assimilation\n ------------\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 \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 \n If the assimliated promise rejects, then the downstream promise will also reject.\n \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 \n Simple Example\n --------------\n \n Synchronous Example\n \n ```javascript\n let result;\n \n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n \n Errback Example\n \n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n \n Promise Example;\n \n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n \n Advanced Example\n --------------\n \n Synchronous Example\n \n ```javascript\n let author, books;\n \n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n \n Errback Example\n \n ```js\n \n function foundBooks(books) {\n \n }\n \n function failure(reason) {\n \n }\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 \n Promise Example;\n \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 \n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n then: then,\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 \n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n \n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n \n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n \n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n 'catch': function _catch(onRejection) {\n return this.then(null, onRejection);\n }\n};\n\n/*global self*/\nfunction polyfill$1() {\n var local = undefined;\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$2;\n}\n\n// Strange compat..\nPromise$2.polyfill = polyfill$1;\nPromise$2.Promise = Promise$2;\n\nreturn Promise$2;\n\n})));\n\n//# sourceMappingURL=es6-promise.map\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(57), __webpack_require__(12)))\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports) {\n\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\n/***/ }),\n/* 58 */\n/***/ (function(module, exports) {\n\n/* (ignored) */\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _fetcher = __webpack_require__(0);\n\nvar _fetcher2 = _interopRequireDefault(_fetcher);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function ($) {\n 'use strict';\n\n WPHB_Admin.performance = {\n\n module: 'performance',\n iteration: 0,\n progress: 0,\n\n init: function init() {\n\n var self = this;\n var body = $('body');\n\n if (wphbPerformanceStrings) this.strings = wphbPerformanceStrings;\n\n this.$runTestButton = $('#run-performance-test');\n\n var performanceReportTable = $(\".performance-report-table\");\n\n performanceReportTable.off('click', 'button');\n performanceReportTable.on('click', '.wphb-performance-report-item-cta .additional-content-opener' && 'tr.wphb-performance-report-item', function (e) {\n e.preventDefault();\n\n var getParentPerformanceItem = $(this).closest(\".wphb-performance-report-item\"),\n getNextAdditionalContentRow = getParentPerformanceItem.nextUntil(\".wphb-performance-report-item\");\n\n getNextAdditionalContentRow.toggleClass(\"wphb-performance-report-item-additional-content-opened\");\n\n if (getNextAdditionalContentRow.hasClass(\"wphb-performance-report-item-additional-content-opened\")) {\n getParentPerformanceItem.addClass(\"wphb-performance-report-item-opened\");\n } else {\n getParentPerformanceItem.removeClass(\"wphb-performance-report-item-opened\");\n }\n });\n\n if (this.$runTestButton.length) {\n this.$runTestButton.click(function (e) {\n e.preventDefault();\n window.WDP.showOverlay(\"#run-performance-test-modal\", { class: 'wphb-modal small wphb-progress-modal no-close' });\n $(this).attr('disabled', true);\n self.performanceTest(self.strings.finishedTestURLsLink);\n });\n }\n\n // If a hash is present in URL, let's open the rule extra content\n var hash = window.location.hash;\n if (hash) {\n var row = $(hash);\n if (row.length) {\n row.find('.trigger-additional-content').trigger('click');\n }\n }\n\n // Schedule show/hide day of week\n $('select[name=\"email-frequency\"]').change(function () {\n if ('1' === $(this).val()) {\n $(this).closest('.schedule-box').find('div.days-container').hide();\n } else {\n $(this).closest('.schedule-box').find('div.days-container').show();\n }\n }).change();\n\n // Remove recipient\n body.on('click', '.wphb-remove-recipient', function (e) {\n e.preventDefault();\n $(this).closest('.recipient').remove();\n $('.scan-settings').find(\"input[id='scan_recipient'][value=\" + $(this).attr('data-id') + \"]\").remove();\n });\n\n // Add recipient\n $('#add-receipt').click(function () {\n var email = $(\"#wphb-username-search\").val();\n var name = $(\"#wphb-first-name\").val();\n _fetcher2.default.performance.addRecipient(email, name).then(function (response) {\n var user_row = $('<div class=\"recipient\"/>');\n\n var img = $('<img/>').attr({\n 'src': response.avatar,\n 'width': '30'\n });\n var name = $('<span/>').html(response.name);\n\n user_row.append('<span class=\"name\"/>');\n user_row.find('.name').append(img, name);\n\n user_row.append($('<span class=\"email\"/>').html(email));\n user_row.append($('<a/>').attr({\n 'data-id': response.user_id,\n 'class': 'remove float-r wphb-remove-recipient',\n 'href': '#',\n 'alt': self.strings.removeButtonText\n }).html('<i class=\"dev-icon dev-icon-cross\"></i>'));\n\n $('<input>').attr({\n type: 'hidden',\n id: 'scan_recipient',\n name: 'email-recipients[]',\n value: JSON.stringify({ email: response.email, name: response.name })\n }).appendTo(user_row);\n\n $('.receipt .recipients').append(user_row);\n $(\"#wphb-username-search\").val('');\n $(\"#wphb-first-name\").val('');\n }).catch(function (error) {\n alert(error.message);\n });\n return false;\n });\n\n // Save report settings\n body.on('submit', '.scan-frm', function (e) {\n e.preventDefault();\n var form_data = $(this).serialize();\n var that = $(this);\n\n that.find('.button').attr('disabled', 'disabled');\n\n _fetcher2.default.performance.saveReportsSettings(form_data).then(function () {\n that.find('.button').removeAttr('disabled');\n self.showUpdateMessage();\n });\n return false;\n });\n\n return this;\n },\n\n showUpdateMessage: function showUpdateMessage() {\n var notice = $('#wphb-notice-performance-report-settings-updated');\n window.scrollTo(0, 0);\n notice.slideDown();\n setTimeout(function () {\n notice.slideUp();\n }, 5000);\n },\n\n performanceTest: function performanceTest(redirect) {\n var self = this;\n\n if (typeof redirect === 'undefined') redirect = false;\n\n // Update progress bar\n self.updateProgressBar();\n\n _fetcher2.default.performance.runTest().then(function (response) {\n if (!response.finished) {\n // Try again 5 seconds later\n window.setTimeout(function () {\n self.performanceTest(redirect);\n }, 5000);\n } else if (redirect) {\n window.location = redirect;\n }\n });\n },\n\n updateProgressBar: function updateProgressBar() {\n if (this.progress < 90) {\n this.progress += 35;\n }\n if (this.progress > 100) {\n this.progress = 90;\n }\n $('.wphb-scan-progress .wphb-scan-progress-text span').text(this.progress + '%');\n $('.wphb-scan-progress .wphb-scan-progress-bar span').attr('style', 'width:' + this.progress + '%');\n }\n };\n})(jQuery);\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _fetcher = __webpack_require__(0);\n\nvar _fetcher2 = _interopRequireDefault(_fetcher);\n\nvar _clipboard = __webpack_require__(19);\n\nvar _clipboard2 = _interopRequireDefault(_clipboard);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function ($) {\n WPHB_Admin.gzip = {\n module: \"gzip\",\n selectedServer: \"\",\n $serverSelector: null,\n $serverInstructions: [],\n\n init: function init() {\n var self = this;\n\n this.$serverSelector = $(\"#wphb-server-type\");\n this.selectedServer = this.$serverSelector.val();\n var instructionsList = $(\".wphb-server-instructions\"),\n configureLink = $(\"#configure-gzip-link\"),\n troubleshootingLink = $(\"#troubleshooting-link\"),\n troubleshootingLinkLiteSpeed = $(\"#troubleshooting-link-litespeed\");\n\n new _clipboard2.default('.wphb-code-snippet .button');\n\n instructionsList.each(function () {\n self.$serverInstructions[$(this).data(\"server\")] = $(this);\n });\n this.showServerInstructions(this.selectedServer);\n this.$serverSelector.change(function () {\n var value = $(this).val();\n self.hideCurrentInstructions();\n self.showServerInstructions(value);\n self.setServer(value);\n self.selectedServer = value;\n // Update tab size on select change.\n self.updateTabSize();\n });\n configureLink.on('click', function (e) {\n e.preventDefault();\n $('html, body').animate({ scrollTop: $('#wphb-box-gzip-settings').offset().top - 50 }, 'slow');\n });\n troubleshootingLink.on('click', function (e) {\n e.preventDefault();\n $('html, body').animate({ scrollTop: $('#troubleshooting-gzip').offset().top }, 'slow');\n });\n troubleshootingLinkLiteSpeed.on('click', function (e) {\n e.preventDefault();\n $('html, body').animate({ scrollTop: $('#troubleshooting-gzip-litespeed').offset().top }, 'slow');\n });\n $('.tab label').on('click', function () {\n $(this).parent().parent().find('.tab label.active').removeClass('active');\n $(this).addClass('active');\n });\n $('.switch-manual').on('click', function () {\n var lowercaseServername = self.selectedServer.toLowerCase();\n $('#wphb-server-instructions-' + lowercaseServername).find('.tab label.active').first().removeClass('active');\n $(this).parents().find('#' + lowercaseServername + '-config-manual').prev().addClass('active');\n });\n return this;\n },\n\n hideCurrentInstructions: function hideCurrentInstructions() {\n var selected = this.selectedServer;\n if (this.$serverInstructions[selected]) {\n this.$serverInstructions[selected].hide();\n }\n },\n\n showServerInstructions: function showServerInstructions(server) {\n if (typeof this.$serverInstructions[server] !== \"undefined\") {\n this.$serverInstructions[server].show();\n }\n if (\"apache\" === server || 'LiteSpeed' === server) {\n $(\"#enable-cache-wrap\").show();\n } else {\n $(\"#enable-cache-wrap\").hide();\n }\n },\n updateTabSize: function updateTabSize() {\n var jq = $('#wphb-server-instructions-' + this.selectedServer.toLowerCase()).find('.tabs'),\n current = jq.find('.tab > input:checked').parent(),\n content = current.find('.content');\n\n jq.height(content.outerHeight() + current.outerHeight() - 6);\n },\n\n setServer: function setServer(value) {\n _fetcher2.default.caching.setServer(value);\n }\n };\n})(jQuery);\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _clipboard = __webpack_require__(19);\n\nvar _clipboard2 = _interopRequireDefault(_clipboard);\n\nvar _fetcher = __webpack_require__(0);\n\nvar _fetcher2 = _interopRequireDefault(_fetcher);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function ($) {\n 'use strict';\n\n WPHB_Admin.caching = {\n\n module: 'caching',\n selectedServer: '',\n $serverSelector: null,\n $serverInstructions: [],\n $snippets: [],\n\n init: function init() {\n var self = this,\n cloudflareLink = $('#wphb-box-caching-settings #connect-cloudflare-link');\n\n new _clipboard2.default('.wphb-code-snippet .button');\n\n if (wphbCachingStrings) self.strings = wphbCachingStrings;\n\n cloudflareLink.on('click', function (e) {\n e.preventDefault();\n $('#wphb-server-type').val('cloudflare').trigger('wpmu:change');\n self.hideCurrentInstructions();\n self.setServer('cloudflare');\n self.showServerInstructions('cloudflare');\n self.selectedServer = 'cloudflare';\n $('html, body').animate({ scrollTop: $('#cloudflare-steps').offset().top }, 'slow');\n });\n\n this.$serverSelector = $('#wphb-server-type');\n this.selectedServer = this.$serverSelector.val();\n\n self.$snippets.apache = $('#wphb-code-snippet-apache').find('pre').first();\n self.$snippets.LiteSpeed = $('#wphb-code-snippet-litespeed').find('pre').first();\n self.$snippets.nginx = $('#wphb-code-snippet-nginx').find('pre').first();\n\n var instructionsList = $('.wphb-server-instructions');\n instructionsList.each(function () {\n self.$serverInstructions[$(this).data('server')] = $(this);\n });\n\n this.showServerInstructions(this.selectedServer);\n\n this.$serverSelector.change(function () {\n var value = $(this).val();\n self.hideCurrentInstructions();\n self.showServerInstructions(value);\n self.setServer(value);\n self.selectedServer = value;\n // Update tab size on select change.\n self.updateTabSize();\n $('.hb-server-type').val(value);\n });\n\n var expiryInput = $(\"input[name='expiry-set-type']\");\n var expirySettingsForm = $('.settings-form');\n expiryInput.each(function () {\n if (this.checked) {\n if ('expiry-all-types' === $(this).attr('id')) {\n expirySettingsForm.find(\"[data='expiry-single-type']\").hide();\n expirySettingsForm.find(\"[data='expiry-all-types']\").show();\n } else if ('expiry-single-type' === $(this).attr('id')) {\n expirySettingsForm.find(\"[data='expiry-all-types']\").hide();\n expirySettingsForm.find(\"[data='expiry-single-type']\").show();\n }\n }\n });\n expiryInput.on('click', function () {\n if ('expiry-all-types' === $(this).attr('id')) {\n expirySettingsForm.find(\"[data='expiry-single-type']\").hide();\n expirySettingsForm.find(\"[data='expiry-all-types']\").show();\n } else if ('expiry-single-type' === $(this).attr('id')) {\n expirySettingsForm.find(\"[data='expiry-all-types']\").hide();\n expirySettingsForm.find(\"[data='expiry-single-type']\").show();\n }\n });\n\n $('.tab label').on('click', function () {\n $(this).parent().parent().find('.tab label.active').removeClass('active');\n $(this).addClass('active');\n });\n\n return this;\n },\n\n setServer: function setServer(value) {\n _fetcher2.default.caching.setServer(value);\n },\n\n updateTabSize: function updateTabSize() {\n var jq = $('#wphb-server-instructions-' + this.selectedServer.toLowerCase()).find('.tabs'),\n current = jq.find('.tab > input:checked').parent(),\n content = current.find('.content');\n\n jq.height(content.outerHeight() + current.outerHeight() - 6);\n },\n\n hideCurrentInstructions: function hideCurrentInstructions() {\n var selected = this.selectedServer;\n if (this.$serverInstructions[selected]) {\n this.$serverInstructions[selected].hide();\n }\n },\n\n showServerInstructions: function showServerInstructions(server) {\n if (typeof this.$serverInstructions[server] !== 'undefined') {\n var serverTab = this.$serverInstructions[server];\n serverTab.show();\n // Show tab.\n serverTab.find('.tab:first-child > label').trigger('click');\n }\n\n if ('apache' === server || 'LiteSpeed' === server) {\n $('.enable-cache-wrap-' + server).show();\n } else {\n $('#enable-cache-wrap').hide();\n }\n }\n };\n})(jQuery);\n\n/***/ }),\n/* 62 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _fetcher = __webpack_require__(0);\n\nvar _fetcher2 = _interopRequireDefault(_fetcher);\n\nvar _helpers = __webpack_require__(63);\n\nvar _Row = __webpack_require__(64);\n\nvar _Row2 = _interopRequireDefault(_Row);\n\nvar _RowsCollection = __webpack_require__(65);\n\nvar _RowsCollection2 = _interopRequireDefault(_RowsCollection);\n\nvar _Scanner = __webpack_require__(66);\n\nvar _Scanner2 = _interopRequireDefault(_Scanner);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function ($) {\n 'use strict';\n\n WPHB_Admin.minification = {\n\n $checkFilesButton: null,\n $checkFilesResultsContainer: null,\n module: 'minification',\n checkURLSList: null,\n checkedURLS: 0,\n $spinner: null,\n\n init: function init() {\n var _this = this;\n\n var self = this;\n\n // Init files scanner\n this.scanner = new _Scanner2.default(wphb.minification.get.totalSteps, wphb.minification.get.currentScanStep);\n this.scanner.onFinishStep = this.updateProgressBar;\n this.scanner.onFinish = function (response) {\n _this.updateProgressBar(100);\n if (wphb.minification.get.showCDNModal && true === response.show_cdn && $('#enable-cdn-modal').length) {\n window.WDP.showOverlay('#enable-cdn-modal', { class: 'wphb-modal small wphb-progress-modal no-close' });\n } else {\n window.location.href = (0, _helpers.getLink)('minification');\n }\n };\n\n // Check files button\n this.$checkFilesButton = $('#check-files');\n this.$spinner = $('.spinner');\n\n if (this.$checkFilesButton.length) {\n this.$checkFilesButton.click(function (e) {\n e.preventDefault();\n window.WDP.showOverlay(\"#check-files-modal\", { class: 'wphb-modal small wphb-progress-modal no-close' });\n $(this).attr('disabled', true);\n self.updateProgressBar(self.scanner.getProgress());\n self.scanner.scan();\n });\n }\n\n // Cancel scan button\n $('body').on('click', '#cancel-minification-check', function (e) {\n e.preventDefault();\n _this.updateProgressBar(0, true);\n _this.scanner.cancel().then(function () {\n window.location.href = (0, _helpers.getLink)('minification');\n });\n });\n\n // Filter action button on Minification page\n $('#wphb-minification-filter-button').on('click', function (e) {\n e.preventDefault();\n $('#wphb-minification-filter').toggle('slow');\n });\n\n $('.wphb-discard').click(function (e) {\n e.preventDefault();\n\n if (confirm((0, _helpers.__)('discardAlert'))) {\n location.reload();\n }\n return false;\n });\n\n $('.wphb-enqueued-files input').on('change', function () {\n $('.wphb-discard').attr('disabled', false);\n });\n\n $('#use_cdn').change(function () {\n var cdn_value = $(this).is(':checked');\n _fetcher2.default.minification.toggleCDN(cdn_value).then(function () {\n var notice = $('#wphb-notice-minification-advanced-settings-updated');\n notice.slideDown();\n setTimeout(function () {\n notice.slideUp();\n }, 5000);\n });\n });\n\n this.rowsCollection = new WPHB_Admin.minification.RowsCollection();\n\n var rows = $('.wphb-border-row');\n\n rows.each(function (index, row) {\n var _row = void 0;\n if ($(row).data('filter-secondary')) {\n _row = new WPHB_Admin.minification.Row($(row), $(row).data('filter'), $(row).data('filter-secondary'));\n } else {\n _row = new WPHB_Admin.minification.Row($(row), $(row).data('filter'));\n }\n self.rowsCollection.push(_row);\n });\n\n $('#wphb-s').keyup(function () {\n self.rowsCollection.addFilter($(this).val(), 'primary');\n self.rowsCollection.applyFilters();\n });\n\n $('#wphb-secondary-filter').change(function () {\n self.rowsCollection.addFilter($(this).val(), 'secondary');\n self.rowsCollection.applyFilters();\n });\n\n $('.filter-toggles').change(function () {\n var element = $(this);\n var what = element.data('toggles');\n var value = element.prop('checked');\n var visibleItems = self.rowsCollection.getVisibleItems();\n\n for (var i in visibleItems) {\n visibleItems[i].change(what, value);\n }\n });\n\n // Files selectors\n var filesList = $('input.wphb-minification-file-selector');\n filesList.click(function () {\n var $this = $(this);\n var element = self.rowsCollection.getItemById($this.data('type'), $this.data('handle'));\n if (!element) {\n return;\n }\n\n if ($this.is(':checked')) {\n element.select();\n } else {\n element.unSelect();\n }\n });\n\n var selectAll = $('#minification-bulk-file');\n selectAll.click(function () {\n var $this = $(this);\n var items = self.rowsCollection.getItems();\n for (var i in items) {\n if (items.hasOwnProperty(i)) {\n if ($this.is(':checked')) {\n items[i].select();\n } else {\n items[i].unSelect();\n }\n }\n }\n });\n\n // Include/exclude file checkbox\n $('.toggle-cross').on('click', function () {\n var $this = $(this);\n var checkbox = $this.find('input.toggle-include');\n var row = self.rowsCollection.getItemById($this.data('type'), $this.data('handle'));\n // Mark the item as include or not in the rows list\n if (row) {\n row.change('include', !checkbox.prop('checked'));\n row.getElement().find('input:not(.toggle-include)').prop('disabled', !checkbox.prop('checked'));\n }\n });\n\n // Handle two CDN checkboxes on Minification page\n var checkboxes = $(\"input[type=checkbox][name=use_cdn]\");\n checkboxes.change(function () {\n var checkedState = $(this).prop('checked');\n\n checkboxes.each(function () {\n this.checked = checkedState;\n });\n });\n\n /* Show details of minification row on mobile devices */\n $('body').on('click', '.wphb-minification-file-details', function () {\n if (window.innerWidth < 783) {\n $(this).parent().find('.wphb-minification-row-details').toggle('slow');\n }\n });\n\n /*\n Catch window resize and revert styles for responsive divs\n 1/4 of a second should be enough to trigger during device rotations (from portrait to landscape mode)\n */\n var minification_resize_rows = _.debounce(function () {\n\n if (window.innerWidth >= 783) {\n $('.wphb-minification-row-details').css('display', 'flex');\n } else {\n $('.wphb-minification-row-details').css('display', 'none');\n }\n }, 250);\n\n window.addEventListener('resize', minification_resize_rows);\n\n return this;\n },\n\n updateProgressBar: function updateProgressBar(progress) {\n var cancel = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (progress > 100) {\n progress = 100;\n }\n // Update progress bar\n $('.wphb-scan-progress .wphb-scan-progress-text span').text(progress + '%');\n $('.wphb-scan-progress .wphb-scan-progress-bar span').width(progress + '%');\n if (progress >= 90) {\n $('.wphb-progress-state .wphb-progress-state-text').text('Finalizing...');\n }\n if (cancel) {\n $('.wphb-progress-state .wphb-progress-state-text').text('Cancelling...');\n }\n }\n\n }; // End WPHB_Admin.minification\n\n WPHB_Admin.minification.Row = _Row2.default;\n WPHB_Admin.minification.RowsCollection = _RowsCollection2.default;\n})(jQuery);\n\n/***/ }),\n/* 63 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/**\n * Strings internationalization\n *\n * @param str\n *\n * @returns {*|string}\n */\nvar __ = exports.__ = function __(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 */\nvar getLink = exports.getLink = function getLink(screen) {\n return wphb.links[screen] || '';\n};\n\n/***/ }),\n/* 64 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Row = function Row(_element, _filter, _filter_sec) {\n var $el = _element,\n filter = _filter.toLowerCase(),\n filterSecondary = false,\n selected = false,\n visible = true;\n\n var $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\n if (_filter_sec) {\n filterSecondary = _filter_sec.toLowerCase();\n }\n\n return {\n hide: function hide() {\n $el.addClass('out-of-filter');\n visible = false;\n },\n\n show: function show() {\n $el.removeClass('out-of-filter');\n visible = true;\n },\n\n getElement: function getElement() {\n return $el;\n },\n\n getId: function getId() {\n return $el.attr('id');\n },\n\n getFilter: function getFilter() {\n return filter;\n },\n\n matchFilter: function matchFilter(text) {\n if (text === '') {\n return true;\n }\n\n text = text.toLowerCase();\n return filter.search(text) > -1;\n },\n\n matchSecondaryFilter: function matchSecondaryFilter(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 isVisible() {\n return visible;\n },\n\n isSelected: function isSelected() {\n return selected;\n },\n\n select: function select() {\n selected = true;\n },\n\n unSelect: function unSelect() {\n selected = false;\n },\n\n change: function change(what, value) {\n switch (what) {\n case 'minify':\n {\n $minify.prop('checked', value);\n break;\n }\n case 'combine':\n {\n $combine.prop('checked', value);\n break;\n }\n case 'defer':\n {\n $defer.prop('checked', value);\n break;\n }\n case 'inline':\n {\n $inline.prop('checked', value);\n break;\n }\n case 'include':\n {\n $disableIcon.removeClass();\n $include.prop('checked', value);\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 {\n $posFooter.prop('checked', value);\n break;\n }\n }\n }\n\n };\n};\n\nexports.default = Row;\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar RowsCollection = function RowsCollection() {\n var items = [];\n var currentFilter = '';\n var currentSecondaryFilter = '';\n\n return {\n push: function push(row) {\n if ((typeof row === 'undefined' ? 'undefined' : _typeof(row)) === 'object') {\n items.push(row);\n }\n },\n\n getItems: function getItems() {\n return items;\n },\n\n getItem: function getItem(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 getItemById(type, id) {\n var value = false;\n for (var 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 getVisibleItems: function getVisibleItems() {\n var visible = [];\n for (var i in items) {\n if (items[i].isVisible()) {\n visible.push(items[i]);\n }\n }\n return visible;\n },\n\n getSelectedItems: function getSelectedItems() {\n var selected = [];\n\n for (var 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 addFilter(filter, type) {\n if (type === 'secondary') {\n currentSecondaryFilter = filter;\n } else {\n currentFilter = filter;\n }\n },\n\n applyFilters: function applyFilters() {\n for (var i in items) {\n if (items[i]) {\n if (items[i].matchFilter(currentFilter) && items[i].matchSecondaryFilter(currentSecondaryFilter)) {\n items[i].show();\n } else {\n items[i].hide();\n }\n }\n }\n }\n };\n};\n\nexports.default = RowsCollection;\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _fetcher = __webpack_require__(0);\n\nvar _fetcher2 = _interopRequireDefault(_fetcher);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar MinificationScanner = function MinificationScanner(totalSteps, currentStep) {\n\n totalSteps = parseInt(totalSteps);\n currentStep = parseInt(currentStep);\n var cancelling = false;\n\n var obj = {\n scan: function scan() {\n var remainingSteps = totalSteps - currentStep;\n if (currentStep !== 0) {\n // Scan started on a previous pageload\n step(remainingSteps);\n } else {\n _fetcher2.default.minification.startCheck().then(function () {\n step(remainingSteps);\n });\n }\n },\n cancel: function cancel() {\n cancelling = true;\n return _fetcher2.default.minification.cancelScan();\n },\n getProgress: function getProgress() {\n if (cancelling) {\n return 0;\n }\n var remainingSteps = totalSteps - currentStep;\n return Math.min(Math.round(parseInt(totalSteps - remainingSteps) * 100 / totalSteps), 99);\n },\n // Overridable functions\n onFinishStep: function onFinishStep(progress) {},\n onFinish: function onFinish(response) {}\n };\n\n /**\n * Execute a scan step recursively\n *\n * Private to avoid overrdings\n *\n * @param remainingSteps\n */\n var step = function step(remainingSteps) {\n if (remainingSteps >= 0) {\n currentStep = totalSteps - remainingSteps;\n _fetcher2.default.minification.checkStep(currentStep).then(function () {\n remainingSteps = remainingSteps - 1;\n obj.onFinishStep(obj.getProgress());\n step(remainingSteps);\n });\n } else {\n _fetcher2.default.minification.finishCheck().then(obj.onFinish);\n }\n };\n\n return obj;\n};\n\nexports.default = MinificationScanner;\n\n/***/ }),\n/* 67 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _fetcher = __webpack_require__(0);\n\nvar _fetcher2 = _interopRequireDefault(_fetcher);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function ($) {\n WPHB_Admin.dashboard = {\n module: 'dashboard',\n\n init: function init() {\n var self = this;\n var cloudFlareDismissLink = $('#dismiss-cf-notice');\n var cloudFlareDashNotice = $('.cf-dash-notice');\n\n if (wphbDashboardStrings) this.strings = wphbDashboardStrings;\n\n $('#wphb-activate-minification').change(function () {\n var value = $(this).val();\n _fetcher2.default.dashboard.toggleMinification(value).then(function () {\n // If disabled, uncheck CDN checkbox and disable it.\n var CDNcheckbox = $('input[name=\"use_cdn\"]');\n if ('false' === value) {\n CDNcheckbox.prop('checked', false);\n CDNcheckbox.prop('disabled', true);\n } else {\n CDNcheckbox.prop('disabled', false);\n }\n self.showNotice();\n });\n });\n\n $('#use_cdn').change(function () {\n var value = $(this).is(':checked');\n _fetcher2.default.minification.toggleCDN(value).then(function () {\n self.showNotice();\n });\n });\n\n $('.wphb-performance-report-item').click(function () {\n var url = $(this).data('performance-url');\n if (url) {\n location.href = url;\n }\n });\n\n cloudFlareDismissLink.click(function (e) {\n e.preventDefault();\n _fetcher2.default.notice.dismissCloudflareDash();\n cloudFlareDashNotice.slideUp();\n cloudFlareDashNotice.parent().addClass('no-background-image');\n });\n return this;\n },\n\n /**\n * Notice on settings update.\n */\n showNotice: function showNotice() {\n var notice = $('#wphb-notice-minification-settings-updated');\n notice.slideDown();\n setTimeout(function () {\n notice.slideUp();\n }, 5000);\n },\n\n /**\n * Run quick setup.\n */\n startQuickSetup: function startQuickSetup() {\n // Show quick setup modal\n window.WDP.showOverlay('#wphb-quick-setup-modal', { class: 'wphb-modal small wphb-quick-setup-modal no-close' });\n },\n\n /**\n * Skip quick setup.\n */\n skipSetup: function skipSetup() {\n _fetcher2.default.dashboard.skipSetup().then(function () {\n window.location.reload(true);\n });\n },\n\n /**\n * Run performance test after quick setup.\n */\n runPerformanceTest: function runPerformanceTest() {\n // Show performance test modal\n window.WDP.showOverlay(\"#run-performance-test-modal\", { class: 'wphb-modal small wphb-progress-modal no-close' });\n\n // Run performance test\n var module = window.WPHB_Admin.getModule('performance');\n module.performanceTest(this.strings.finishedTestURLsLink);\n }\n };\n})(jQuery);\n\n/***/ }),\n/* 68 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _fetcher = __webpack_require__(0);\n\nvar _fetcher2 = _interopRequireDefault(_fetcher);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function ($) {\n WPHB_Admin.DashboardCloudFlare = {\n init: function init(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\n this.renderStep(this.currentStep);\n\n $('body').on('click', '.cloudflare-clear-cache.button', function (e) {\n e.preventDefault();\n this.purgeCache.apply($(e.target), [this]);\n }.bind(this));\n },\n\n purgeCache: function purgeCache(self) {\n // Show spinner\n var $button = this;\n $button.attr('disabled', true);\n self.showSpinner();\n\n _fetcher2.default.cloudflare.purgeCache().then(function () {\n // Show notice\n var $notice = $('#wphb-notice-cloudflare-purge-cache');\n window.scrollTo(0, 0);\n $notice.slideDown();\n setTimeout(function () {\n $notice.slideUp();\n }, 5e3);\n // Remove spinner\n $button.removeAttr('disabled');\n self.hideSpinner();\n });\n },\n\n renderStep: function renderStep(step) {\n var template = WPHB_Admin.DashboardCloudFlare.template('#cloudflare-step-' + step);\n var content = template(this.data);\n var self = this;\n\n if (content) {\n this.currentStep = step;\n this.$stepsContainer.hide().html(template(this.data)).fadeIn().find('form').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 bindEvents() {\n var $howToInstructions = $('#cloudflare-how-to');\n\n $howToInstructions.hide();\n\n $('#cloudflare-how-to-title > a').click(function (e) {\n e.preventDefault();\n $howToInstructions.toggle();\n });\n\n this.$stepsContainer.find('select').each(function () {\n window.WDP.wpmuSelect(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 emptyInfoBox() {\n this.$infoBox.html('');\n this.$infoBox.removeClass();\n },\n\n showInfoBox: function showInfoBox(message) {\n this.$infoBox.addClass('wphb-notice');\n this.$infoBox.addClass('wphb-notice-error');\n this.$infoBox.html(message + '');\n },\n\n showSpinner: function showSpinner() {\n this.$spinner.css('visibility', 'visible');\n },\n\n hideSpinner: function hideSpinner() {\n this.$spinner.css('visibility', 'hidden');\n },\n\n submitStep: function submitStep($form) {\n var self = this;\n\n $form.find('input[type=submit]').attr('disabled', 'true');\n this.emptyInfoBox();\n this.showSpinner();\n\n _fetcher2.default.cloudflare.connect(this.currentStep, $form.serialize(), this.data).then(function (response) {\n self.data = response.newData;\n self.renderStep(response.nextStep);\n\n if (response.nextStep === 'final') {\n window.location.href = response.redirect;\n }\n }).catch(function (error) {\n self.showInfoBox(error);\n });\n\n $form.find('input[type=submit]').removeAttr('disabled');\n self.hideSpinner();\n }\n };\n\n WPHB_Admin.DashboardCloudFlare.template = _.memoize(function (id) {\n var compiled = void 0,\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\n/***/ }),\n/* 69 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n(function ($) {\n WPHB_Admin.uptime = {\n module: 'uptime',\n $dataRangeSelector: null,\n chartData: null,\n timer: null,\n $spinner: null,\n init: function init() {\n this.$spinner = $('.spinner');\n this.strings = wphbUptimeStrings;\n this.$dataRangeSelector = $('#wphb-uptime-data-range');\n this.chartData = $('#uptime-chart-json').val();\n this.$disableUptime = $('#wphb-disable-uptime');\n\n this.$dataRangeSelector.change(function () {\n window.location.href = $(this).find(':selected').data('url');\n });\n\n var self = this;\n this.$disableUptime.change(function () {\n self.$spinner.css('visibility', 'visible');\n var value = $(this).is(':checked');\n if (value && self.timer) {\n clearTimeout(self.timer);\n self.$spinner.css('visibility', 'hidden');\n } else {\n // you have 3 seconds to change your mind\n self.timer = setTimeout(function () {\n location.href = self.strings.disableUptimeURL;\n }, 3000);\n }\n\n return;\n });\n\n this.drawChart();\n\n /* Re-check Uptime status */\n $('#uptime-re-check-status').on('click', function (e) {\n e.preventDefault();\n location.reload();\n });\n },\n\n drawChart: function drawChart() {\n var data = new google.visualization.DataTable();\n data.addColumn('datetime', 'Day');\n data.addColumn('number', 'Response Time (ms)');\n\n var chart_array = JSON.parse(this.chartData);\n for (var i = 0; i < chart_array.length; i++) {\n chart_array[i][0] = new Date(chart_array[i][0]);\n chart_array[i][1] = Math.round(chart_array[i][1]);\n\n /* brings the graph below the x axis */\n if (Math.round(chart_array[i][1]) == 0) {\n chart_array[i][1] = -100;\n }\n }\n\n data.addRows(chart_array);\n\n var options = {\n chartArea: {\n left: 80,\n top: 20,\n width: '90%',\n height: '90%'\n },\n colors: ['#24ADE5'],\n curveType: 'function',\n /*interpolateNulls: true,*/\n legend: { position: 'none' },\n vAxis: {\n format: '#,### ms',\n viewWindow: { min: 0 /* don't display negative values */\n } },\n tooltip: { isHtml: true },\n series: {\n 0: { axis: 'Resp' }\n },\n axes: {\n y: {\n Resp: { label: 'Response Time (ms)' }\n }\n }\n };\n\n var chart = new google.visualization.LineChart(document.getElementById('uptime-chart'));\n chart.draw(data, options);\n\n $(window).resize(function () {\n chart.draw(data, options);\n });\n }\n };\n})(jQuery);\n\n/***/ }),\n/* 70 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _fetcher = __webpack_require__(0);\n\nvar _fetcher2 = _interopRequireDefault(_fetcher);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function ($) {\n WPHB_Admin.cloudflare = {\n module: 'cloudflare',\n $cfSelector: false,\n $spinner: false,\n\n init: function init() {\n this.$spinner = $('.wphb-spinner');\n this.$cfSelector = $('#set-expiry-all');\n var self = this;\n if (wphb.cloudflare.is.connected) {\n this.$cfSelector.change(function () {\n self.setExpiry.call(self, [this]);\n });\n }\n\n return this;\n },\n\n setExpiry: function setExpiry(selector) {\n this.displaySpinner();\n var value = $(selector).val();\n _fetcher2.default.cloudflare.setExpiration(value).then(function () {\n window.location.reload();\n });\n },\n\n displaySpinner: function displaySpinner() {\n this.$spinner.css('visibility', 'visible');\n }\n };\n})(jQuery);\n\n/***/ }),\n/* 71 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\njQuery(document).ready(function () {\n WPHB_Admin.init();\n});\n\n/***/ })\n/******/ ]);\n\n\n// WEBPACK FOOTER //\n// admin.min.js"," \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, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\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 \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 20);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap beb0d49820ef0e59c001","import assign from 'lodash/assign';\n\nfunction Fetcher() {\n let fetchUrl = ajaxurl;\n let fetchNonce = wphb.nonces.HBFetchNonce;\n const actionPrefix = 'wphb_';\n const actionPrefixPro = 'wphb_pro_';\n\n function request( action, data = {}, method = 'GET' ) {\n data.nonce = fetchNonce;\n data.action = action;\n let args = { data, method };\n args.url = fetchUrl;\n let Promise = require('es6-promise').Promise;\n return new Promise( ( resolve, reject ) => {\n jQuery.ajax( args ).done( resolve ).fail( reject );\n })\n .then( ( response ) => checkStatus( response ) );\n\n }\n\n const methods = {\n\t\t/**\n * Notices actions.\n\t\t */\n\t\tnotice: {\n\t\t\t/**\n * Dismiss notice\n\t\t\t * @param id Notice id.\n\t\t\t */\n\t\t\tdismiss: ( id ) => {\n\t\t const action = actionPrefix + 'notice_dismiss';\n\t\t return request( action, { id }, 'POST' );\n },\n /**\n * Dismiss CloudFlare dash notice\n */\n dismissCloudflareDash: () => {\n const action = actionPrefix + 'cf_notice_dismiss';\n return request( action, {}, 'POST' );\n }\n },\n\t\t/**\n\t\t * Caching module actions.\n */\n caching: {\n /**\n * Set server type.\n *\n * @param value Server type.\n */\n setServer: ( value ) => {\n const action = actionPrefix + 'caching_set_server_type';\n return request( action, { value }, 'POST' );\n }\n },\n\n /**\n * CLoudflare module actions.\n */\n cloudflare: {\n\t\t\t/**\n\t\t\t * Connect to Cloudflare.\n\t\t\t *\n\t\t\t * @param step\n\t\t\t * @param formData\n\t\t\t * @param cfData\n\t\t\t */\n\t\t\tconnect: ( step, formData, cfData ) => {\n\t\t\t\tconst action = actionPrefix + 'cloudflare_connect';\n return request( action, { step, formData, cfData }, 'POST' )\n .then( ( response ) => {\n return response;\n });\n },\n\n /**\n * Set expiry for Cloudflare cache.\n *\n * @param value Expiry value.\n */\n setExpiration: ( value ) => {\n const action = actionPrefix + 'cloudflare_set_expiry';\n return request( action, { value }, 'POST' );\n },\n\n\t\t\t/**\n * Purge Cloudflare cache.\n\t\t\t */\n\t\t\tpurgeCache: () => {\n const action = actionPrefix + 'cloudflare_purge_cache';\n return request( action, {}, 'POST' );\n }\n },\n\n /**\n * Dashboard module actions.\n */\n dashboard: {\n /**\n * Toggle global minification settings for network installs.\n *\n * @param value Accepts: 'super-admins', 'false' and 'true'. Default: 'true'.\n */\n toggleMinification: ( value ) => {\n const action = actionPrefix + 'dash_toggle_network_minification';\n return request( action, { value }, 'POST' );\n },\n\n\t\t\t/**\n * Skip quick setup.\n\t\t\t */\n\t\t\tskipSetup: () => {\n const action = actionPrefix + 'dash_skip_setup';\n return request( action, {}, 'POST' );\n }\n },\n\n /**\n * Minification module actions.\n */\n minification: {\n /**\n * Toggle CDN settings.\n *\n * @param value CDN checkbox value.\n */\n toggleCDN: ( value ) => {\n const action = actionPrefix + 'minification_toggle_cdn';\n return request( action, { value }, 'POST' );\n },\n\n /**\n * Toggle minificatiojn settings on per site basis.\n *\n * @param value\n */\n toggleMinification: ( value ) => {\n const action = actionPrefix + 'minification_toggle_minification';\n return request( action, { value }, 'POST' );\n },\n\n /**\n * Start minification check.\n *\n * @param progress\n */\n startCheck: () => {\n const action = actionPrefix + 'minification_start_check';\n return request( action, {}, 'POST' );\n },\n\n /**\n * Do a step in minification process.\n *\n * @param progress\n * @param step\n */\n checkStep: ( step ) => {\n const action = actionPrefix + 'minification_check_step';\n return request( action, { step }, 'POST' )\n .then( ( response ) => {\n return response;\n });\n },\n\n /**\n * Finish minification process.\n */\n finishCheck: () => {\n const action = actionPrefix + 'minification_finish_scan';\n return request( action, {}, 'POST' );\n },\n\n\t\t\t/**\n * Cancel minification scan.\n\t\t\t */\n\t\t\tcancelScan: function cancelScan() {\n\t\t\t\tconst action = actionPrefix + 'minification_cancel_scan';\n\t\t\t\treturn request( action, {}, 'POST' );\n\t\t\t}\n },\n\n /**\n * Performance module actions.\n */\n performance: {\n\t\t\t/**\n * Run performance test.\n\t\t\t */\n\t\t\trunTest: () => {\n const action = actionPrefix + 'performance_run_test';\n return request( action, {}, 'POST' )\n .then( ( response ) => {\n return response;\n });\n },\n\n /**\n * Add a single email/name recipient to the reports list.\n *\n * @param email\n * @param name\n */\n addRecipient: ( email, name ) => {\n const action = actionPrefixPro + 'performance_add_recipient';\n return request( action, { email, name }, 'POST' )\n .then( ( response ) => {\n return response;\n });\n },\n\n /**\n * Save reporting settings on minification page.\n *\n * @param data From data.\n */\n saveReportsSettings: ( data ) => {\n const action = actionPrefixPro + 'performance_save_reports_settings';\n return request( action, { data }, 'POST' );\n }\n }\n };\n\n assign( this, methods );\n}\n\nconst HBFetcher = new Fetcher();\nexport default HBFetcher;\n\nfunction checkStatus( response ) {\n if ( typeof response !== 'object' ) {\n response = JSON.parse( response );\n }\n if ( response.success ) {\n return response.data;\n }\n\n let data = response.data || {};\n const error = new Error( data.message || 'Error trying to fetch response from server' );\n error.response = response;\n throw error;\n}\n\n\n// WEBPACK FOOTER //\n// ./_src/admin/js/utils/fetcher.js","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// /root/hummingbird/node_modules/lodash/_baseGetTag.js\n// module id = 1\n// module chunks = 0","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\n\n//////////////////\n// WEBPACK FOOTER\n// /root/hummingbird/node_modules/lodash/_root.js\n// module id = 2\n// module chunks = 0","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// /root/hummingbird/node_modules/lodash/isObject.js\n// module id = 3\n// module chunks = 0","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\n\n//////////////////\n// WEBPACK FOOTER\n// /root/hummingbird/node_modules/lodash/isArrayLike.js\n// module id = 4\n// module chunks = 0","/**\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\n\n\n//////////////////\n// WEBPACK FOOTER\n// /root/hummingbird/node_modules/lodash/isObjectLike.js\n// module id = 5\n// module chunks = 0","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\n\n\n//////////////////\n// WEBPACK FOOTER\n// /root/hummingbird/node_modules/lodash/_assignValue.js\n// module id = 6\n// module chunks = 0","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// /root/hummingbird/node_modules/lodash/_baseAssignValue.js\n// module id = 7\n// module chunks = 0","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\n\n\n//////////////////\n// WEBPACK FOOTER\n// /root/hummingbird/node_modules/lodash/_defineProperty.js\n// module id = 8\n// module chunks = 0","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\n\n\n//////////////////\n// WEBPACK FOOTER\n// /root/hummingbird/node_modules/lodash/isFunction.js\n// module id = 9\n// module chunks = 0","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// /root/hummingbird/node_modules/lodash/_Symbol.js\n// module id = 10\n// module chunks = 0","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// /root/hummingbird/node_modules/lodash/_freeGlobal.js\n// module id = 11\n// module chunks = 0","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 || Function(\"return this\")() || (1,eval)(\"this\");\n} catch(e) {\n\t// This works if the window reference is available\n\tif(typeof window === \"object\")\n\t\tg = 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\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/global.js\n// module id = 12\n// module chunks = 0","/**\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\n\n//////////////////\n// WEBPACK FOOTER\n// /root/hummingbird/node_modules/lodash/eq.js\n// module id = 13\n// module chunks = 0","/**\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\n\n\n//////////////////\n// WEBPACK FOOTER\n// /root/hummingbird/node_modules/lodash/identity.js\n// module id = 14\n// module chunks = 0","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// /root/hummingbird/node_modules/lodash/isLength.js\n// module id = 15\n// module chunks = 0","/** 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 length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// /root/hummingbird/node_modules/lodash/_isIndex.js\n// module id = 16\n// module chunks = 0","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// /root/hummingbird/node_modules/lodash/_isPrototype.js\n// module id = 17\n// module chunks = 0","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\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/module.js\n// module id = 18\n// module chunks = 0","/*!\n * clipboard.js v1.7.1\n * https://zenorocha.github.io/clipboard.js\n *\n * Licensed MIT © Zeno Rocha\n */\n(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.Clipboard = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){\nvar DOCUMENT_NODE_TYPE = 9;\n\n/**\n * A polyfill for Element.matches()\n */\nif (typeof Element !== 'undefined' && !Element.prototype.matches) {\n var proto = Element.prototype;\n\n proto.matches = proto.matchesSelector ||\n proto.mozMatchesSelector ||\n proto.msMatchesSelector ||\n proto.oMatchesSelector ||\n proto.webkitMatchesSelector;\n}\n\n/**\n * Finds the closest parent that matches a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @return {Function}\n */\nfunction closest (element, selector) {\n while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {\n if (typeof element.matches === 'function' &&\n element.matches(selector)) {\n return element;\n }\n element = element.parentNode;\n }\n}\n\nmodule.exports = closest;\n\n},{}],2:[function(require,module,exports){\nvar closest = require('./closest');\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction delegate(element, selector, type, callback, useCapture) {\n var listenerFn = listener.apply(this, arguments);\n\n element.addEventListener(type, listenerFn, useCapture);\n\n return {\n destroy: function() {\n element.removeEventListener(type, listenerFn, useCapture);\n }\n }\n}\n\n/**\n * Finds closest match and invokes callback.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Function}\n */\nfunction listener(element, selector, type, callback) {\n return function(e) {\n e.delegateTarget = closest(e.target, selector);\n\n if (e.delegateTarget) {\n callback.call(element, e);\n }\n }\n}\n\nmodule.exports = delegate;\n\n},{\"./closest\":1}],3:[function(require,module,exports){\n/**\n * Check if argument is a HTML element.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.node = function(value) {\n return value !== undefined\n && value instanceof HTMLElement\n && value.nodeType === 1;\n};\n\n/**\n * Check if argument is a list of HTML elements.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.nodeList = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return value !== undefined\n && (type === '[object NodeList]' || type === '[object HTMLCollection]')\n && ('length' in value)\n && (value.length === 0 || exports.node(value[0]));\n};\n\n/**\n * Check if argument is a string.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.string = function(value) {\n return typeof value === 'string'\n || value instanceof String;\n};\n\n/**\n * Check if argument is a function.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.fn = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return type === '[object Function]';\n};\n\n},{}],4:[function(require,module,exports){\nvar is = require('./is');\nvar delegate = require('delegate');\n\n/**\n * Validates all params and calls the right\n * listener function based on its target type.\n *\n * @param {String|HTMLElement|HTMLCollection|NodeList} target\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listen(target, type, callback) {\n if (!target && !type && !callback) {\n throw new Error('Missing required arguments');\n }\n\n if (!is.string(type)) {\n throw new TypeError('Second argument must be a String');\n }\n\n if (!is.fn(callback)) {\n throw new TypeError('Third argument must be a Function');\n }\n\n if (is.node(target)) {\n return listenNode(target, type, callback);\n }\n else if (is.nodeList(target)) {\n return listenNodeList(target, type, callback);\n }\n else if (is.string(target)) {\n return listenSelector(target, type, callback);\n }\n else {\n throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');\n }\n}\n\n/**\n * Adds an event listener to a HTML element\n * and returns a remove listener function.\n *\n * @param {HTMLElement} node\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNode(node, type, callback) {\n node.addEventListener(type, callback);\n\n return {\n destroy: function() {\n node.removeEventListener(type, callback);\n }\n }\n}\n\n/**\n * Add an event listener to a list of HTML elements\n * and returns a remove listener function.\n *\n * @param {NodeList|HTMLCollection} nodeList\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNodeList(nodeList, type, callback) {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.addEventListener(type, callback);\n });\n\n return {\n destroy: function() {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.removeEventListener(type, callback);\n });\n }\n }\n}\n\n/**\n * Add an event listener to a selector\n * and returns a remove listener function.\n *\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenSelector(selector, type, callback) {\n return delegate(document.body, selector, type, callback);\n}\n\nmodule.exports = listen;\n\n},{\"./is\":3,\"delegate\":2}],5:[function(require,module,exports){\nfunction select(element) {\n var selectedText;\n\n if (element.nodeName === 'SELECT') {\n element.focus();\n\n selectedText = element.value;\n }\n else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n var isReadOnly = element.hasAttribute('readonly');\n\n if (!isReadOnly) {\n element.setAttribute('readonly', '');\n }\n\n element.select();\n element.setSelectionRange(0, element.value.length);\n\n if (!isReadOnly) {\n element.removeAttribute('readonly');\n }\n\n selectedText = element.value;\n }\n else {\n if (element.hasAttribute('contenteditable')) {\n element.focus();\n }\n\n var selection = window.getSelection();\n var range = document.createRange();\n\n range.selectNodeContents(element);\n selection.removeAllRanges();\n selection.addRange(range);\n\n selectedText = selection.toString();\n }\n\n return selectedText;\n}\n\nmodule.exports = select;\n\n},{}],6:[function(require,module,exports){\nfunction E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\n\n},{}],7:[function(require,module,exports){\n(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(['module', 'select'], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(module, require('select'));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod, global.select);\n global.clipboardAction = mod.exports;\n }\n})(this, function (module, _select) {\n 'use strict';\n\n var _select2 = _interopRequireDefault(_select);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var ClipboardAction = function () {\n /**\n * @param {Object} options\n */\n function ClipboardAction(options) {\n _classCallCheck(this, ClipboardAction);\n\n this.resolveOptions(options);\n this.initSelection();\n }\n\n /**\n * Defines base properties passed from constructor.\n * @param {Object} options\n */\n\n\n _createClass(ClipboardAction, [{\n key: 'resolveOptions',\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n this.action = options.action;\n this.container = options.container;\n this.emitter = options.emitter;\n this.target = options.target;\n this.text = options.text;\n this.trigger = options.trigger;\n\n this.selectedText = '';\n }\n }, {\n key: 'initSelection',\n value: function initSelection() {\n if (this.text) {\n this.selectFake();\n } else if (this.target) {\n this.selectTarget();\n }\n }\n }, {\n key: 'selectFake',\n value: function selectFake() {\n var _this = this;\n\n var isRTL = document.documentElement.getAttribute('dir') == 'rtl';\n\n this.removeFake();\n\n this.fakeHandlerCallback = function () {\n return _this.removeFake();\n };\n this.fakeHandler = this.container.addEventListener('click', this.fakeHandlerCallback) || true;\n\n this.fakeElem = document.createElement('textarea');\n // Prevent zooming on iOS\n this.fakeElem.style.fontSize = '12pt';\n // Reset box model\n this.fakeElem.style.border = '0';\n this.fakeElem.style.padding = '0';\n this.fakeElem.style.margin = '0';\n // Move element out of screen horizontally\n this.fakeElem.style.position = 'absolute';\n this.fakeElem.style[isRTL ? 'right' : 'left'] = '-9999px';\n // Move element to the same position vertically\n var yPosition = window.pageYOffset || document.documentElement.scrollTop;\n this.fakeElem.style.top = yPosition + 'px';\n\n this.fakeElem.setAttribute('readonly', '');\n this.fakeElem.value = this.text;\n\n this.container.appendChild(this.fakeElem);\n\n this.selectedText = (0, _select2.default)(this.fakeElem);\n this.copyText();\n }\n }, {\n key: 'removeFake',\n value: function removeFake() {\n if (this.fakeHandler) {\n this.container.removeEventListener('click', this.fakeHandlerCallback);\n this.fakeHandler = null;\n this.fakeHandlerCallback = null;\n }\n\n if (this.fakeElem) {\n this.container.removeChild(this.fakeElem);\n this.fakeElem = null;\n }\n }\n }, {\n key: 'selectTarget',\n value: function selectTarget() {\n this.selectedText = (0, _select2.default)(this.target);\n this.copyText();\n }\n }, {\n key: 'copyText',\n value: function copyText() {\n var succeeded = void 0;\n\n try {\n succeeded = document.execCommand(this.action);\n } catch (err) {\n succeeded = false;\n }\n\n this.handleResult(succeeded);\n }\n }, {\n key: 'handleResult',\n value: function handleResult(succeeded) {\n this.emitter.emit(succeeded ? 'success' : 'error', {\n action: this.action,\n text: this.selectedText,\n trigger: this.trigger,\n clearSelection: this.clearSelection.bind(this)\n });\n }\n }, {\n key: 'clearSelection',\n value: function clearSelection() {\n if (this.trigger) {\n this.trigger.focus();\n }\n\n window.getSelection().removeAllRanges();\n }\n }, {\n key: 'destroy',\n value: function destroy() {\n this.removeFake();\n }\n }, {\n key: 'action',\n set: function set() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'copy';\n\n this._action = action;\n\n if (this._action !== 'copy' && this._action !== 'cut') {\n throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');\n }\n },\n get: function get() {\n return this._action;\n }\n }, {\n key: 'target',\n set: function set(target) {\n if (target !== undefined) {\n if (target && (typeof target === 'undefined' ? 'undefined' : _typeof(target)) === 'object' && target.nodeType === 1) {\n if (this.action === 'copy' && target.hasAttribute('disabled')) {\n throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');\n }\n\n if (this.action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {\n throw new Error('Invalid \"target\" attribute. You can\\'t cut text from elements with \"readonly\" or \"disabled\" attributes');\n }\n\n this._target = target;\n } else {\n throw new Error('Invalid \"target\" value, use a valid Element');\n }\n }\n },\n get: function get() {\n return this._target;\n }\n }]);\n\n return ClipboardAction;\n }();\n\n module.exports = ClipboardAction;\n});\n\n},{\"select\":5}],8:[function(require,module,exports){\n(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(['module', './clipboard-action', 'tiny-emitter', 'good-listener'], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(module, require('./clipboard-action'), require('tiny-emitter'), require('good-listener'));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod, global.clipboardAction, global.tinyEmitter, global.goodListener);\n global.clipboard = mod.exports;\n }\n})(this, function (module, _clipboardAction, _tinyEmitter, _goodListener) {\n 'use strict';\n\n var _clipboardAction2 = _interopRequireDefault(_clipboardAction);\n\n var _tinyEmitter2 = _interopRequireDefault(_tinyEmitter);\n\n var _goodListener2 = _interopRequireDefault(_goodListener);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n\n var Clipboard = function (_Emitter) {\n _inherits(Clipboard, _Emitter);\n\n /**\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n * @param {Object} options\n */\n function Clipboard(trigger, options) {\n _classCallCheck(this, Clipboard);\n\n var _this = _possibleConstructorReturn(this, (Clipboard.__proto__ || Object.getPrototypeOf(Clipboard)).call(this));\n\n _this.resolveOptions(options);\n _this.listenClick(trigger);\n return _this;\n }\n\n /**\n * Defines if attributes would be resolved using internal setter functions\n * or custom functions that were passed in the constructor.\n * @param {Object} options\n */\n\n\n _createClass(Clipboard, [{\n key: 'resolveOptions',\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n this.action = typeof options.action === 'function' ? options.action : this.defaultAction;\n this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;\n this.text = typeof options.text === 'function' ? options.text : this.defaultText;\n this.container = _typeof(options.container) === 'object' ? options.container : document.body;\n }\n }, {\n key: 'listenClick',\n value: function listenClick(trigger) {\n var _this2 = this;\n\n this.listener = (0, _goodListener2.default)(trigger, 'click', function (e) {\n return _this2.onClick(e);\n });\n }\n }, {\n key: 'onClick',\n value: function onClick(e) {\n var trigger = e.delegateTarget || e.currentTarget;\n\n if (this.clipboardAction) {\n this.clipboardAction = null;\n }\n\n this.clipboardAction = new _clipboardAction2.default({\n action: this.action(trigger),\n target: this.target(trigger),\n text: this.text(trigger),\n container: this.container,\n trigger: trigger,\n emitter: this\n });\n }\n }, {\n key: 'defaultAction',\n value: function defaultAction(trigger) {\n return getAttributeValue('action', trigger);\n }\n }, {\n key: 'defaultTarget',\n value: function defaultTarget(trigger) {\n var selector = getAttributeValue('target', trigger);\n\n if (selector) {\n return document.querySelector(selector);\n }\n }\n }, {\n key: 'defaultText',\n value: function defaultText(trigger) {\n return getAttributeValue('text', trigger);\n }\n }, {\n key: 'destroy',\n value: function destroy() {\n this.listener.destroy();\n\n if (this.clipboardAction) {\n this.clipboardAction.destroy();\n this.clipboardAction = null;\n }\n }\n }], [{\n key: 'isSupported',\n value: function isSupported() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];\n\n var actions = typeof action === 'string' ? [action] : action;\n var support = !!document.queryCommandSupported;\n\n actions.forEach(function (action) {\n support = support && !!document.queryCommandSupported(action);\n });\n\n return support;\n }\n }]);\n\n return Clipboard;\n }(_tinyEmitter2.default);\n\n /**\n * Helper function to retrieve attribute value.\n * @param {String} suffix\n * @param {Element} element\n */\n function getAttributeValue(suffix, element) {\n var attribute = 'data-clipboard-' + suffix;\n\n if (!element.hasAttribute(attribute)) {\n return;\n }\n\n return element.getAttribute(attribute);\n }\n\n module.exports = Clipboard;\n});\n\n},{\"./clipboard-action\":7,\"good-listener\":4,\"tiny-emitter\":6}]},{},[8])(8)\n});\n\n\n// WEBPACK FOOTER //\n// ./_src/admin/js/utils/clipboard.js","require('./admin-main.js');\nrequire('./admin-performance.js');\nrequire('./admin-gzip.js');\nrequire('./admin-caching.js');\nrequire('./admin-minification.js');\nrequire('./admin-dashboard.js');\nrequire('./admin-dashboard-cloudflare.js');\nrequire('./admin-uptime.js');\nrequire('./admin-cloudflare.js');\nrequire('./admin-app.js');\n\n\n// WEBPACK FOOTER //\n// ./_src/admin/js/index.js","import Fetcher from './utils/fetcher';\n\n( function( $ ) {\n 'use strict';\n\n let WPHB_Admin = {\n modules: [],\n // Common functionality to all screens\n init: function() {\n\n // Mobile navigation links.\n\t\t\t$('body').on('change', '.mobile-nav', function () {\n\t\t\t\tlet url = $(this).val();\n\t\t\t\tif (url.length > 0) {\n\t\t\t\t\tlocation.href = url;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// Dismiss notice via an ajax call.\n\t\t\t$('#wphb-dismissable').on('click', '.close', function() {\n\t\t\t const notice_id = $(this).parent().attr('data-id');\n\t\t\t Fetcher.notice.dismiss( notice_id );\n });\n\n function updatePerformanceGraph($wrap){\n let $item = $wrap.find('.wphb-score-result-label'),\n val = parseInt($item.text(), 10) || 100,\n $circle = $wrap.find(\".wphb-score-graph-result\"),\n r, c, pct\n ;\n r = $circle.attr('r');\n c = Math.PI*(r*2);\n\n if (val < 0) { val = 0;}\n if (val > 100) { val = 100;}\n\n pct = ((100-val)/100)*c;\n\n $circle.css({ strokeDashoffset: pct});\n }\n\n function updatePerformanceResultsGraphs(){\n\n // Update Overall Score\n $(\".wphb-performance-report-overall-score\").each(function(){\n updatePerformanceGraph($(this));\n });\n\n // Update Current Score\n $(\".wphb-performance-report-current-score\").each(function(){\n updatePerformanceGraph($(this));\n });\n\n // Update All Scores\n $(\".wphb-performance-report-item-score\").each(function(){\n updatePerformanceGraph($(this));\n });\n\n }\n window.register_events_performance = function(){\n setTimeout(updatePerformanceResultsGraphs, 500);\n };\n $(function(){ setTimeout(updatePerformanceResultsGraphs, 500); });\n\n },\n initModule: function( module ) {\n if ( this.hasOwnProperty( module ) ) {\n this.modules[ module ] = this[ module ].init();\n return this.modules[ module ];\n }\n\n return {};\n },\n getModule: function( module ) {\n if ( typeof this.modules[ module ] !== 'undefined' )\n return this.modules[ module ];\n else\n return this.initModule( module );\n }\n };\n \n\n WPHB_Admin.utils = {\n\n membershipModal: {\n open: function() {\n $( '#wphb-upgrade-membership-modal-link').trigger( 'click' );\n }\n },\n\n post: function( data, module ) {\n data.action = 'wphb_ajax';\n data.module = module;\n return $.ajax({\n url: ajaxurl,\n method: 'POST',\n data: data\n });\n }\n };\n\n WPHB_Admin.notices = {\n\n init: function() {\n $( '.wphb-notice:not(.notice) a.wphb-dismiss').click( function( e ) {\n e.preventDefault();\n let id = $(this).data( 'id' );\n let nonce = $(this).data( 'nonce' );\n\n $(this).parent( '.error' ).hide();\n });\n }\n };\n\n window.WPHB_Admin = WPHB_Admin;\n\n}( jQuery ) );\n\n\n// WEBPACK FOOTER //\n// ./_src/admin/js/admin-main.js","var assignValue = require('./_assignValue'),\n copyObject = require('./_copyObject'),\n createAssigner = require('./_createAssigner'),\n isArrayLike = require('./isArrayLike'),\n isPrototype = require('./_isPrototype'),\n keys = require('./keys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\nvar assign = createAssigner(function(object, source) {\n if (isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n});\n\nmodule.exports = assign;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// /root/hummingbird/node_modules/lodash/assign.js\n// module id = 22\n// module chunks = 0","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\n\n\n//////////////////\n// WEBPACK FOOTER\n// /root/hummingbird/node_modules/lodash/_getNative.js\n// module id = 23\n// module chunks = 0","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\n\n\n//////////////////\n// WEBPACK FOOTER\n// /root/hummingbird/node_modules/lodash/_baseIsNative.js\n// module id = 24\n// module chunks = 0","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\n\n\n//////////////////\n// WEBPACK FOOTER\n// /root/hummingbird/node_modules/lodash/_getRawTag.js\n// module id = 25\n// module chunks = 0","/** 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\n\n\n//////////////////\n// WEBPACK FOOTER\n// /root/hummingbird/node_modules/lodash/_objectToString.js\n// module id = 26\n// module chunks = 0","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// /root/hummingbird/node_modules/lodash/_isMasked.js\n// module id = 27\n// module chunks = 0","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// /root/hummingbird/node_modules/lodash/_coreJsData.js\n// module id = 28\n// module chunks = 0","/** 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\n\n//////////////////\n// WEBPACK FOOTER\n// /root/hummingbird/node_modules/lodash/_toSource.js\n// module id = 29\n// module chunks = 0","/**\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\n\n\n//////////////////\n// WEBPACK FOOTER\n// /root/hummingbird/node_modules/lodash/_getValue.js\n// module id = 30\n// module chunks = 0","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\n\n\n//////////////////\n// WEBPACK FOOTER\n// /root/hummingbird/node_modules/lodash/_copyObject.js\n// module id = 31\n// module chunks = 0","var baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// /root/hummingbird/node_modules/lodash/_createAssigner.js\n// module id = 32\n// module chunks = 0","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\n\n\n//////////////////\n// WEBPACK FOOTER\n// /root/hummingbird/node_modules/lodash/_baseRest.js\n// module id = 33\n// module chunks = 0","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\n\n//////////////////\n// WEBPACK FOOTER\n// /root/hummingbird/node_modules/lodash/_overRest.js\n// module id = 34\n// module chunks = 0","/**\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\n\n\n//////////////////\n// WEBPACK FOOTER\n// /root/hummingbird/node_modules/lodash/_apply.js\n// module id = 35\n// module chunks = 0","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\n\n\n//////////////////\n// WEBPACK FOOTER\n// /root/hummingbird/node_modules/lodash/_setToString.js\n// module id = 36\n// module chunks = 0","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\n\n//////////////////\n// WEBPACK FOOTER\n// /root/hummingbird/node_modules/lodash/_baseSetToString.js\n// module id = 37\n// module chunks = 0","/**\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\n\n\n//////////////////\n// WEBPACK FOOTER\n// /root/hummingbird/node_modules/lodash/constant.js\n// module id = 38\n// module chunks = 0","/** 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\n\n\n//////////////////\n// WEBPACK FOOTER\n// /root/hummingbird/node_modules/lodash/_shortOut.js\n// module id = 39\n// module chunks = 0","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// /root/hummingbird/node_modules/lodash/_isIterateeCall.js\n// module id = 40\n// module chunks = 0","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\n\n\n//////////////////\n// WEBPACK FOOTER\n// /root/hummingbird/node_modules/lodash/keys.js\n// module id = 41\n// module chunks = 0","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\n\n//////////////////\n// WEBPACK FOOTER\n// /root/hummingbird/node_modules/lodash/_arrayLikeKeys.js\n// module id = 42\n// module chunks = 0","/**\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\n\n\n//////////////////\n// WEBPACK FOOTER\n// /root/hummingbird/node_modules/lodash/_baseTimes.js\n// module id = 43\n// module chunks = 0","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\n\n\n//////////////////\n// WEBPACK FOOTER\n// /root/hummingbird/node_modules/lodash/isArguments.js\n// module id = 44\n// module chunks = 0","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\n\n//////////////////\n// WEBPACK FOOTER\n// /root/hummingbird/node_modules/lodash/_baseIsArguments.js\n// module id = 45\n// module chunks = 0","/**\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\n\n\n//////////////////\n// WEBPACK FOOTER\n// /root/hummingbird/node_modules/lodash/isArray.js\n// module id = 46\n// module chunks = 0","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\n\n//////////////////\n// WEBPACK FOOTER\n// /root/hummingbird/node_modules/lodash/isBuffer.js\n// module id = 47\n// module chunks = 0","/**\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\n\n\n//////////////////\n// WEBPACK FOOTER\n// /root/hummingbird/node_modules/lodash/stubFalse.js\n// module id = 48\n// module chunks = 0","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\n\n\n//////////////////\n// WEBPACK FOOTER\n// /root/hummingbird/node_modules/lodash/isTypedArray.js\n// module id = 49\n// module chunks = 0","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\n\n//////////////////\n// WEBPACK FOOTER\n// /root/hummingbird/node_modules/lodash/_baseIsTypedArray.js\n// module id = 50\n// module chunks = 0","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// /root/hummingbird/node_modules/lodash/_baseUnary.js\n// module id = 51\n// module chunks = 0","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 return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// /root/hummingbird/node_modules/lodash/_nodeUtil.js\n// module id = 52\n// module chunks = 0","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\n\n\n//////////////////\n// WEBPACK FOOTER\n// /root/hummingbird/node_modules/lodash/_baseKeys.js\n// module id = 53\n// module chunks = 0","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\n\n//////////////////\n// WEBPACK FOOTER\n// /root/hummingbird/node_modules/lodash/_nativeKeys.js\n// module id = 54\n// module chunks = 0","/**\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\n\n//////////////////\n// WEBPACK FOOTER\n// /root/hummingbird/node_modules/lodash/_overArg.js\n// module id = 55\n// module chunks = 0","/*!\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 4.1.1\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\nvar _isArray = undefined;\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 = undefined;\nvar customSchedulerFn = undefined;\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 r = require;\n var vertx = r('vertx');\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n } catch (e) {\n return useSetTimeout();\n }\n}\n\nvar scheduleFlush = undefined;\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 _arguments = arguments;\n\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 if (_state) {\n (function () {\n var callback = _arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\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(16);\n\nfunction noop() {}\n\nvar PENDING = void 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\n\nvar GET_THEN_ERROR = new ErrorObject();\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 getThen(promise) {\n try {\n return promise.then;\n } catch (error) {\n GET_THEN_ERROR.error = error;\n return GET_THEN_ERROR;\n }\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 === GET_THEN_ERROR) {\n reject(promise, GET_THEN_ERROR.error);\n GET_THEN_ERROR.error = null;\n } else 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 handleMaybeThenable(promise, value, getThen(value));\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 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 = undefined,\n callback = undefined,\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 ErrorObject() {\n this.error = null;\n}\n\nvar TRY_CATCH_ERROR = new ErrorObject();\n\nfunction tryCatch(callback, detail) {\n try {\n return callback(detail);\n } catch (e) {\n TRY_CATCH_ERROR.error = e;\n return TRY_CATCH_ERROR;\n }\n}\n\nfunction invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback),\n value = undefined,\n error = undefined,\n succeeded = undefined,\n failed = undefined;\n\n if (hasCallback) {\n value = tryCatch(callback, detail);\n\n if (value === TRY_CATCH_ERROR) {\n failed = true;\n error = value.error;\n value.error = null;\n } else {\n succeeded = true;\n }\n\n if (promise === value) {\n reject(promise, cannotReturnOwn());\n return;\n }\n } else {\n value = detail;\n succeeded = true;\n }\n\n if (promise._state !== PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n resolve(promise, value);\n } else if (failed) {\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 Enumerator$1(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\nfunction validationError() {\n return new Error('Array Methods must be provided an Array');\n}\n\nEnumerator$1.prototype._enumerate = function (input) {\n for (var i = 0; this._state === PENDING && i < input.length; i++) {\n this._eachEntry(input[i], i);\n }\n};\n\nEnumerator$1.prototype._eachEntry = function (entry, i) {\n var c = this._instanceConstructor;\n var resolve$$1 = c.resolve;\n\n if (resolve$$1 === resolve$1) {\n var _then = getThen(entry);\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$2) {\n var promise = new c(noop);\n handleMaybeThenable(promise, entry, _then);\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\nEnumerator$1.prototype._settledAt = function (state, i, value) {\n var promise = this.promise;\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\nEnumerator$1.prototype._willSettleAt = function (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/**\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$1(entries) {\n return new Enumerator$1(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$1(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*/\nfunction Promise$2(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$2 ? initializePromise(this, resolver) : needsNew();\n }\n}\n\nPromise$2.all = all$1;\nPromise$2.race = race$1;\nPromise$2.resolve = resolve$1;\nPromise$2.reject = reject$1;\nPromise$2._setScheduler = setScheduler;\nPromise$2._setAsap = setAsap;\nPromise$2._asap = asap;\n\nPromise$2.prototype = {\n constructor: Promise$2,\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 \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 \n Chaining\n --------\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 \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 \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 \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 \n Assimilation\n ------------\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 \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 \n If the assimliated promise rejects, then the downstream promise will also reject.\n \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 \n Simple Example\n --------------\n \n Synchronous Example\n \n ```javascript\n let result;\n \n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n \n Errback Example\n \n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n \n Promise Example;\n \n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n \n Advanced Example\n --------------\n \n Synchronous Example\n \n ```javascript\n let author, books;\n \n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n \n Errback Example\n \n ```js\n \n function foundBooks(books) {\n \n }\n \n function failure(reason) {\n \n }\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 \n Promise Example;\n \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 \n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n then: then,\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 \n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n \n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n \n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n \n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n 'catch': function _catch(onRejection) {\n return this.then(null, onRejection);\n }\n};\n\n/*global self*/\nfunction polyfill$1() {\n var local = undefined;\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$2;\n}\n\n// Strange compat..\nPromise$2.polyfill = polyfill$1;\nPromise$2.Promise = Promise$2;\n\nreturn Promise$2;\n\n})));\n\n//# sourceMappingURL=es6-promise.map\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// /root/hummingbird/node_modules/es6-promise/dist/es6-promise.js\n// module id = 56\n// module chunks = 0","// 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\n\n//////////////////\n// WEBPACK FOOTER\n// /root/hummingbird/node_modules/process/browser.js\n// module id = 57\n// module chunks = 0","import Fetcher from './utils/fetcher';\n\n( function( $ ) {\n 'use strict';\n WPHB_Admin.performance = {\n\n module: 'performance',\n iteration: 0,\n progress: 0,\n\n init: function () {\n\n let self = this;\n let body = $('body');\n\n if (wphbPerformanceStrings)\n this.strings = wphbPerformanceStrings;\n\n this.$runTestButton = $('#run-performance-test');\n\n let performanceReportTable = $(\".performance-report-table\");\n\n performanceReportTable.off('click', 'button');\n performanceReportTable.on('click', '.wphb-performance-report-item-cta .additional-content-opener' && 'tr.wphb-performance-report-item', function (e) {\n e.preventDefault();\n\n let getParentPerformanceItem = $(this).closest(\".wphb-performance-report-item\"),\n getNextAdditionalContentRow = getParentPerformanceItem.nextUntil(\".wphb-performance-report-item\");\n\n getNextAdditionalContentRow.toggleClass(\"wphb-performance-report-item-additional-content-opened\");\n\n if (getNextAdditionalContentRow.hasClass(\"wphb-performance-report-item-additional-content-opened\")) {\n getParentPerformanceItem.addClass(\"wphb-performance-report-item-opened\");\n } else {\n getParentPerformanceItem.removeClass(\"wphb-performance-report-item-opened\");\n }\n\n });\n\n if (this.$runTestButton.length) {\n this.$runTestButton.click(function (e) {\n e.preventDefault();\n\t\t\t\t\twindow.WDP.showOverlay(\"#run-performance-test-modal\", { class: 'wphb-modal small wphb-progress-modal no-close' } );\n $(this).attr('disabled', true);\n self.performanceTest(self.strings.finishedTestURLsLink);\n });\n }\n\n // If a hash is present in URL, let's open the rule extra content\n const hash = window.location.hash;\n if (hash) {\n const row = $(hash);\n if (row.length) {\n row.find('.trigger-additional-content').trigger('click');\n }\n\n }\n\n // Schedule show/hide day of week\n $('select[name=\"email-frequency\"]').change(function () {\n if ( '1' === $(this).val() ) {\n $(this).closest('.schedule-box').find('div.days-container').hide();\n } else {\n $(this).closest('.schedule-box').find('div.days-container').show();\n }\n }).change();\n\n // Remove recipient\n body.on('click', '.wphb-remove-recipient', function (e) {\n e.preventDefault();\n $(this).closest('.recipient').remove();\n $('.scan-settings').find(\"input[id='scan_recipient'][value=\" + $(this).attr('data-id') + \"]\").remove();\n });\n\n // Add recipient\n $('#add-receipt').click(function () {\n const email = $(\"#wphb-username-search\").val();\n const name = $(\"#wphb-first-name\").val();\n Fetcher.performance.addRecipient( email, name )\n .then( ( response ) => {\n const user_row = $('<div class=\"recipient\"/>');\n\n const img = $('<img/>').attr({\n 'src': response.avatar,\n 'width': '30'\n });\n const name = $('<span/>').html(response.name);\n\n user_row.append('<span class=\"name\"/>');\n user_row.find('.name').append( img, name);\n\n\n user_row.append($('<span class=\"email\"/>').html(email));\n user_row.append($('<a/>').attr({\n 'data-id': response.user_id,\n 'class': 'remove float-r wphb-remove-recipient',\n 'href': '#',\n 'alt': self.strings.removeButtonText\n }).html('<i class=\"dev-icon dev-icon-cross\"></i>'));\n\n $('<input>').attr({\n type: 'hidden',\n id: 'scan_recipient',\n name: 'email-recipients[]',\n value: JSON.stringify( { email: response.email, name: response.name } )\n }).appendTo(user_row);\n\n $('.receipt .recipients').append(user_row);\n $(\"#wphb-username-search\").val('');\n $(\"#wphb-first-name\").val('');\n })\n .catch( ( error ) => {\n alert( error.message );\n } );\n return false;\n });\n\n // Save report settings\n body.on('submit', '.scan-frm', function (e) {\n e.preventDefault();\n const form_data = $(this).serialize();\n let that = $(this);\n\n that.find('.button').attr('disabled', 'disabled');\n\n Fetcher.performance.saveReportsSettings( form_data )\n .then( () => {\n that.find('.button').removeAttr('disabled');\n self.showUpdateMessage();\n });\n return false;\n });\n\n return this;\n\n },\n\n showUpdateMessage: function () {\n const notice = $('#wphb-notice-performance-report-settings-updated');\n window.scrollTo(0,0);\n notice.slideDown();\n setTimeout( function() {\n notice.slideUp();\n }, 5000 );\n },\n\n\t\tperformanceTest: function ( redirect ) {\n\t\t\tconst self = this;\n\n if ( typeof redirect === 'undefined' )\n redirect = false;\n\n // Update progress bar\n self.updateProgressBar();\n\n Fetcher.performance.runTest()\n .then( ( response ) => {\n\t\t\t\t\tif ( ! response.finished ) {\n\t\t\t\t\t\t// Try again 5 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}, 5000);\n\t\t\t\t\t} else if ( redirect ) {\n window.location = redirect;\n\t\t\t\t\t}\n });\n },\n\n updateProgressBar: function() {\n\t\t\tif ( this.progress < 90 ) {\n\t\t\t\tthis.progress += 35;\n\t\t\t}\n\t\t\tif ( this.progress > 100 ) {\n\t\t\t\tthis.progress = 90;\n\t\t\t}\n\t\t\t$('.wphb-scan-progress .wphb-scan-progress-text span').text( this.progress + '%' );\n\t\t\t$('.wphb-scan-progress .wphb-scan-progress-bar span').attr( 'style', 'width:' + this.progress + '%' );\n }\n };\n}( jQuery ));\n\n\n// WEBPACK FOOTER //\n// ./_src/admin/js/admin-performance.js","import Fetcher from './utils/fetcher';\nimport Clipboard from './utils/clipboard';\n\n(function($) {\n WPHB_Admin.gzip = {\n module: \"gzip\",\n selectedServer: \"\",\n $serverSelector: null,\n $serverInstructions: [],\n\n init: function() {\n const self = this;\n\n this.$serverSelector = $(\"#wphb-server-type\");\n this.selectedServer = this.$serverSelector.val();\n let instructionsList = $(\".wphb-server-instructions\"),\n configureLink = $(\"#configure-gzip-link\"),\n troubleshootingLink = $(\"#troubleshooting-link\"),\n troubleshootingLinkLiteSpeed = $(\"#troubleshooting-link-litespeed\");\n\n new Clipboard('.wphb-code-snippet .button');\n \n instructionsList.each(function() {\n self.$serverInstructions[$(this).data(\"server\")] = $(this);\n });\n this.showServerInstructions(this.selectedServer);\n this.$serverSelector.change(function() {\n const value = $(this).val();\n self.hideCurrentInstructions();\n self.showServerInstructions(value);\n self.setServer(value);\n self.selectedServer = value;\n // Update tab size on select change.\n self.updateTabSize();\n });\n configureLink.on('click', function(e) {\n e.preventDefault();\n $('html, body').animate({ scrollTop: $('#wphb-box-gzip-settings').offset().top -50 }, 'slow');\n });\n troubleshootingLink.on('click', function(e) {\n e.preventDefault();\n $('html, body').animate({ scrollTop: $('#troubleshooting-gzip').offset().top }, 'slow');\n });\n troubleshootingLinkLiteSpeed.on('click', function(e) {\n e.preventDefault();\n $('html, body').animate({ scrollTop: $('#troubleshooting-gzip-litespeed').offset().top }, 'slow');\n });\n $( '.tab label' ).on( 'click', function() {\n $( this ).parent().parent().find( '.tab label.active' ).removeClass( 'active' );\n $( this ).addClass( 'active' );\n });\n $( '.switch-manual' ).on( 'click', function() {\n let lowercaseServername = self.selectedServer.toLowerCase();\n $( '#wphb-server-instructions-' + lowercaseServername ).find( '.tab label.active' ).first().removeClass( 'active' );\n $( this ).parents().find( '#' + lowercaseServername + '-config-manual' ).prev().addClass( 'active' );\n });\n return this;\n },\n\n hideCurrentInstructions: function() {\n const selected = this.selectedServer;\n if (this.$serverInstructions[selected]) {\n this.$serverInstructions[selected].hide();\n }\n },\n\n showServerInstructions: function(server) {\n if (typeof this.$serverInstructions[server] !== \"undefined\") {\n this.$serverInstructions[server].show();\n }\n if (\"apache\" === server || 'LiteSpeed' === server) {\n $(\"#enable-cache-wrap\").show();\n } else {\n $(\"#enable-cache-wrap\").hide();\n }\n },\n updateTabSize: function() {\n let jq = $( '#wphb-server-instructions-' + this.selectedServer.toLowerCase() ).find( '.tabs' ),\n current = jq.find('.tab > input:checked').parent(),\n content = current.find('.content');\n\n jq.height( content.outerHeight() + current.outerHeight() - 6 );\n },\n\n setServer: function( value ) {\n Fetcher.caching.setServer( value );\n },\n };\n})(jQuery);\n\n\n// WEBPACK FOOTER //\n// ./_src/admin/js/admin-gzip.js","import Clipboard from './utils/clipboard';\nimport Fetcher from './utils/fetcher';\n\n( function( $ ) {\n 'use strict';\n WPHB_Admin.caching = {\n\n module: 'caching',\n selectedServer: '',\n $serverSelector: null,\n $serverInstructions: [],\n $snippets: [],\n\n init: function () {\n let self = this,\n cloudflareLink = $('#wphb-box-caching-settings #connect-cloudflare-link');\n\n\t\t\tnew Clipboard('.wphb-code-snippet .button');\n\n if ( wphbCachingStrings )\n self.strings = wphbCachingStrings;\n\n cloudflareLink.on('click', function(e) {\n e.preventDefault();\n\t\t\t\t$('#wphb-server-type').val('cloudflare').trigger('wpmu:change');\n\t\t\t\tself.hideCurrentInstructions();\n self.setServer('cloudflare');\n\t\t\t\tself.showServerInstructions('cloudflare');\n\t\t\t\tself.selectedServer = 'cloudflare';\n\t\t\t\t$('html, body').animate({ scrollTop: $('#cloudflare-steps').offset().top }, 'slow');\n });\n\n this.$serverSelector = $( '#wphb-server-type' );\n this.selectedServer = this.$serverSelector.val();\n\n self.$snippets.apache = $('#wphb-code-snippet-apache').find('pre').first();\n\t\t\tself.$snippets.LiteSpeed = $('#wphb-code-snippet-litespeed').find('pre').first();\n self.$snippets.nginx = $('#wphb-code-snippet-nginx').find('pre').first();\n\n let instructionsList = $( '.wphb-server-instructions' );\n instructionsList.each( function() {\n self.$serverInstructions[ $(this).data('server') ] = $(this);\n });\n\n this.showServerInstructions( this.selectedServer );\n\n this.$serverSelector.change( function() {\n let value = $(this).val();\n self.hideCurrentInstructions();\n self.showServerInstructions( value );\n self.setServer(value);\n self.selectedServer = value;\n\t\t\t\t// Update tab size on select change.\n self.updateTabSize();\n $('.hb-server-type').val( value );\n });\n\n let expiryInput = $(\"input[name='expiry-set-type']\");\n let expirySettingsForm = $('.settings-form');\n\t\t\texpiryInput.each( function () {\n if ( this.checked ) {\n if ( 'expiry-all-types' === $(this).attr('id') ) {\n\t\t\t\t\t\texpirySettingsForm.find( \"[data='expiry-single-type']\" ).hide();\n\t\t\t\t\t\texpirySettingsForm.find( \"[data='expiry-all-types']\" ).show();\n } else if ( 'expiry-single-type' === $(this).attr('id') ) {\n\t\t\t\t\t\texpirySettingsForm.find( \"[data='expiry-all-types']\" ).hide();\n\t\t\t\t\t\texpirySettingsForm.find( \"[data='expiry-single-type']\" ).show();\n }\n }\n });\n\t\t\texpiryInput.on( 'click', function () {\n if ( 'expiry-all-types' === $(this).attr('id') ) {\n\t\t\t\t\texpirySettingsForm.find( \"[data='expiry-single-type']\" ).hide();\n\t\t\t\t\texpirySettingsForm.find( \"[data='expiry-all-types']\" ).show();\n } else if ( 'expiry-single-type' === $(this).attr('id') ) {\n\t\t\t\t\texpirySettingsForm.find( \"[data='expiry-all-types']\" ).hide();\n\t\t\t\t\texpirySettingsForm.find( \"[data='expiry-single-type']\" ).show();\n }\n\t\t\t});\n\n $( '.tab label' ).on( 'click', function() {\n $( this ).parent().parent().find( '.tab label.active' ).removeClass( 'active' );\n $( this ).addClass( 'active' );\n });\n\n return this;\n },\n\n setServer: function( value ) {\n Fetcher.caching.setServer( value );\n },\n\n\t\tupdateTabSize: function() {\n\t\t\tlet jq = $( '#wphb-server-instructions-' + this.selectedServer.toLowerCase() ).find( '.tabs' ),\n current = jq.find('.tab > input:checked').parent(),\n\t\t\t\tcontent = current.find('.content');\n\n\t\t\tjq.height( content.outerHeight() + current.outerHeight() - 6 );\n },\n\n hideCurrentInstructions: function() {\n let selected = this.selectedServer;\n if ( this.$serverInstructions[ selected ] ) {\n this.$serverInstructions[ selected ].hide();\n }\n },\n\n showServerInstructions: function( server ) {\n if ( typeof this.$serverInstructions[ server ] !== 'undefined' ) {\n let serverTab = this.$serverInstructions[ server ];\n\t\t\t\tserverTab.show();\n // Show tab.\n\t\t\t\tserverTab.find('.tab:first-child > label').trigger('click');\n }\n\n if ( 'apache' === server || 'LiteSpeed' === server ) {\n $( '.enable-cache-wrap-' + server ).show();\n }\n else {\n $( '#enable-cache-wrap' ).hide();\n }\n }\n };\n}( jQuery ));\n\n\n// WEBPACK FOOTER //\n// ./_src/admin/js/admin-caching.js","import 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 'use strict';\n\n WPHB_Admin.minification = {\n\n $checkFilesButton: null,\n $checkFilesResultsContainer : null,\n module: 'minification',\n checkURLSList: null,\n checkedURLS: 0,\n $spinner: null,\n\n init: function() {\n const self = this;\n\n // Init files scanner\n this.scanner = new Scanner( wphb.minification.get.totalSteps, wphb.minification.get.currentScanStep );\n this.scanner.onFinishStep = this.updateProgressBar;\n this.scanner.onFinish = ( response ) => {\n this.updateProgressBar( 100 );\n if ( wphb.minification.get.showCDNModal && true === response.show_cdn && $('#enable-cdn-modal').length ) {\n window.WDP.showOverlay( '#enable-cdn-modal', { class: 'wphb-modal small wphb-progress-modal no-close' } );\n } else {\n window.location.href = getLink( 'minification' );\n }\n };\n\n\n // Check files button\n this.$checkFilesButton = $( '#check-files' );\n this.$spinner = $('.spinner');\n\n if ( this.$checkFilesButton.length ) {\n this.$checkFilesButton.click( function( e ) {\n e.preventDefault();\n\t\t\t\t\twindow.WDP.showOverlay(\"#check-files-modal\", { class: 'wphb-modal small wphb-progress-modal no-close' } );\n $(this).attr('disabled', true);\n self.updateProgressBar( self.scanner.getProgress() );\n self.scanner.scan();\n });\n }\n\n // Cancel scan button\n $('body').on( 'click', '#cancel-minification-check', ( e ) => {\n e.preventDefault();\n this.updateProgressBar( 0, true );\n this.scanner.cancel()\n .then( () => {\n window.location.href = getLink( 'minification' );\n });\n\n });\n\n // Filter action button on Minification page\n $('#wphb-minification-filter-button').on('click', function(e) {\n e.preventDefault();\n $('#wphb-minification-filter').toggle('slow');\n });\n\n $('.wphb-discard').click( function(e) {\n e.preventDefault();\n\n if ( confirm( __( 'discardAlert' ) ) ) {\n location.reload();\n }\n return false;\n\n });\n\n $( '.wphb-enqueued-files input' ).on( 'change', function() {\n $('.wphb-discard').attr( 'disabled', false );\n });\n\n $('#use_cdn').change( function() {\n const cdn_value = $(this).is(':checked');\n Fetcher.minification.toggleCDN( cdn_value )\n .then( () => {\n const notice = $('#wphb-notice-minification-advanced-settings-updated');\n notice.slideDown();\n setTimeout( function() {\n notice.slideUp();\n }, 5000 );\n });\n });\n\n this.rowsCollection = new WPHB_Admin.minification.RowsCollection();\n\n const rows = $('.wphb-border-row');\n\n rows.each( function( index, row ) {\n let _row;\n if ( $(row).data('filter-secondary') ) {\n _row = new WPHB_Admin.minification.Row( $(row), $(row).data('filter'), $(row).data('filter-secondary') );\n }\n else {\n _row = new WPHB_Admin.minification.Row( $(row), $(row).data('filter') );\n }\n self.rowsCollection.push( _row );\n });\n\n $('#wphb-s').keyup( function() {\n self.rowsCollection.addFilter( $(this).val(), 'primary' );\n self.rowsCollection.applyFilters();\n });\n\n $('#wphb-secondary-filter').change( function() {\n self.rowsCollection.addFilter( $(this).val(), 'secondary' );\n self.rowsCollection.applyFilters();\n });\n\n $('.filter-toggles').change( function() {\n const element = $(this);\n const what = element.data('toggles');\n const value = element.prop( 'checked' );\n const visibleItems = self.rowsCollection.getVisibleItems();\n\n for ( let i in visibleItems ) {\n visibleItems[i].change( what, value );\n }\n });\n\n // Files selectors\n const filesList = $('input.wphb-minification-file-selector');\n filesList.click( function() {\n const $this = $( this );\n const element = self.rowsCollection.getItemById( $this.data( 'type' ), $this.data( 'handle' ) );\n if ( ! element ) {\n return;\n }\n\n if ( $this.is( ':checked' ) ) {\n element.select();\n }\n else {\n element.unSelect();\n }\n });\n\n const selectAll = $('#minification-bulk-file');\n selectAll.click( function() {\n const $this = $( this );\n let items = self.rowsCollection.getItems();\n for ( let i in items ) {\n if ( items.hasOwnProperty( i ) ) {\n if ( $this.is( ':checked' ) ) {\n items[i].select();\n }\n else {\n items[i].unSelect();\n }\n }\n }\n });\n\n // Include/exclude file checkbox\n $('.toggle-cross').on('click', function() {\n const $this = $(this);\n const checkbox = $this.find( 'input.toggle-include' );\n const row = self.rowsCollection.getItemById( $this.data( 'type' ), $this.data( 'handle' ) );\n // Mark the item as include or not in the rows list\n if ( row ) {\n row.change( 'include', ! checkbox.prop( 'checked' ) );\n row.getElement().find( 'input:not(.toggle-include)' ).prop('disabled', ! checkbox.prop( 'checked' ) );\n }\n });\n\n // Handle two CDN checkboxes on Minification page\n const checkboxes = $(\"input[type=checkbox][name=use_cdn]\");\n checkboxes.change( function() {\n const checkedState = $(this).prop('checked');\n\n checkboxes.each( function() {\n this.checked = checkedState;\n });\n });\n\n /* Show details of minification row on mobile devices */\n $('body').on('click', '.wphb-minification-file-details', function() {\n if ( window.innerWidth < 783 ) {\n $(this).parent().find('.wphb-minification-row-details').toggle('slow');\n }\n });\n\n /*\n Catch window resize and revert styles for responsive divs\n 1/4 of a second should be enough to trigger during device rotations (from portrait to landscape mode)\n */\n let minification_resize_rows = _.debounce(function() {\n\n if ( window.innerWidth >= 783 ) {\n $('.wphb-minification-row-details').css('display', 'flex');\n } else {\n $('.wphb-minification-row-details').css('display', 'none');\n }\n\n }, 250);\n\n window.addEventListener('resize', minification_resize_rows);\n\n return this;\n },\n\n updateProgressBar: function( progress, cancel = false ) {\n if ( progress > 100 ) {\n progress = 100;\n }\n // Update progress bar\n $('.wphb-scan-progress .wphb-scan-progress-text span').text( progress + '%' );\n $('.wphb-scan-progress .wphb-scan-progress-bar span').width( progress + '%' );\n if ( progress >= 90 ) {\n $('.wphb-progress-state .wphb-progress-state-text').text('Finalizing...');\n }\n if ( cancel ) {\n $('.wphb-progress-state .wphb-progress-state-text').text('Cancelling...');\n }\n },\n\n }; // End WPHB_Admin.minification\n\n WPHB_Admin.minification.Row = Row;\n WPHB_Admin.minification.RowsCollection = RowsCollection;\n\n}( jQuery ));\n\n\n// WEBPACK FOOTER //\n// ./_src/admin/js/admin-minification.js","/**\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\n\n\n// WEBPACK FOOTER //\n// ./_src/admin/js/utils/helpers.js","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\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 select: function() {\n selected = true;\n },\n\n unSelect: function() {\n selected = false;\n },\n\n change: function( what, value ) {\n switch ( what ) {\n case 'minify': {\n $minify.prop( 'checked', value );\n break;\n }\n case 'combine': {\n $combine.prop( 'checked', value );\n break;\n }\n case 'defer': {\n $defer.prop( 'checked', value );\n break;\n }\n\t\t\t\tcase 'inline': {\n\t\t\t\t\t$inline.prop( 'checked', value );\n\t\t\t\t\tbreak;\n\t\t\t\t}\n case 'include': {\n $disableIcon.removeClass();\n $include.prop( 'checked', value );\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 break;\n }\n }\n }\n\n };\n};\n\nexport default Row;\n\n\n\n// WEBPACK FOOTER //\n// ./_src/admin/js/minification/Row.js","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 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;\n\n\n// WEBPACK FOOTER //\n// ./_src/admin/js/minification/RowsCollection.js","import Fetcher from '../utils/fetcher';\n\nconst MinificationScanner = ( totalSteps, currentStep ) => {\n\n totalSteps = parseInt( totalSteps );\n currentStep = parseInt( currentStep );\n let cancelling = false;\n\n let obj = {\n scan: function() {\n let remainingSteps = totalSteps - currentStep;\n if ( currentStep !== 0 ) {\n // Scan started on a previous pageload\n step( remainingSteps );\n }\n else {\n Fetcher.minification.startCheck()\n .then( () => {\n step( remainingSteps );\n });\n }\n\n },\n cancel: function() {\n cancelling = true;\n return Fetcher.minification.cancelScan();\n },\n getProgress: function() {\n if ( cancelling ) {\n return 0;\n }\n const remainingSteps = totalSteps - currentStep;\n return Math.min( Math.round( ( parseInt( ( totalSteps - remainingSteps ) ) * 100 ) / totalSteps ), 99 );\n },\n // Overridable functions\n onFinishStep: function( progress ) {},\n onFinish: function( response ) {},\n };\n\n /**\n * Execute a scan step recursively\n *\n * Private to avoid overrdings\n *\n * @param remainingSteps\n */\n const step = function( remainingSteps ) {\n if ( remainingSteps >= 0 ) {\n currentStep = totalSteps - remainingSteps;\n Fetcher.minification.checkStep( currentStep )\n .then( () => {\n remainingSteps = remainingSteps - 1;\n obj.onFinishStep( obj.getProgress() );\n step( remainingSteps );\n });\n }\n else {\n Fetcher.minification\n .finishCheck()\n .then( obj.onFinish );\n }\n };\n\n return obj;\n};\n\nexport default MinificationScanner;\n\n\n// WEBPACK FOOTER //\n// ./_src/admin/js/minification/Scanner.js","import Fetcher from './utils/fetcher';\n\n( function( $ ) {\n WPHB_Admin.dashboard = {\n module: 'dashboard',\n\n init: function() {\n const self = this;\n let cloudFlareDismissLink = $('#dismiss-cf-notice');\n let cloudFlareDashNotice = $('.cf-dash-notice');\n\n\t\t\tif (wphbDashboardStrings)\n\t\t\t\tthis.strings = wphbDashboardStrings;\n\n $('#wphb-activate-minification').change( function() {\n const value = $(this).val();\n Fetcher.dashboard.toggleMinification( value )\n .then( () => {\n // If disabled, uncheck CDN checkbox and disable it.\n const CDNcheckbox = $('input[name=\"use_cdn\"]');\n if ( 'false' === value ) {\n CDNcheckbox.prop( 'checked', false );\n CDNcheckbox.prop( 'disabled', true );\n } else {\n CDNcheckbox.prop( 'disabled', false );\n }\n self.showNotice();\n });\n });\n\n $('#use_cdn').change( function() {\n const value = $(this).is(':checked');\n Fetcher.minification.toggleCDN( value )\n .then( () => {\n self.showNotice();\n });\n });\n\n $('.wphb-performance-report-item').click( function() {\n const url = $(this).data( 'performance-url' );\n if ( url ) {\n location.href = url;\n }\n });\n\n cloudFlareDismissLink.click( function(e) {\n e.preventDefault();\n Fetcher.notice.dismissCloudflareDash();\n cloudFlareDashNotice.slideUp();\n cloudFlareDashNotice.parent().addClass('no-background-image');\n\n });\n return this;\n },\n\n /**\n * Notice on settings update.\n */\n showNotice: function () {\n const notice = $('#wphb-notice-minification-settings-updated');\n notice.slideDown();\n setTimeout( function() {\n notice.slideUp();\n }, 5000 );\n },\n\n\t\t/**\n * Run quick setup.\n\t\t */\n\t\tstartQuickSetup: function () {\n // Show quick setup modal\n\t\t\twindow.WDP.showOverlay( '#wphb-quick-setup-modal', { class: 'wphb-modal small wphb-quick-setup-modal no-close' } );\n },\n\n\t\t/**\n * Skip quick setup.\n\t\t */\n\t\tskipSetup: function () {\n Fetcher.dashboard.skipSetup()\n .then( () => {\n window.location.reload(true);\n });\n },\n\n\t\t/**\n * Run performance test after quick setup.\n\t\t */\n\t\trunPerformanceTest: function() {\n\t\t\t// Show performance test modal\n\t\t\twindow.WDP.showOverlay(\"#run-performance-test-modal\", { class: 'wphb-modal small wphb-progress-modal no-close' } );\n\n\t\t\t// Run performance test\n\t\t\tconst module = window.WPHB_Admin.getModule('performance');\n\t\t\tmodule.performanceTest( this.strings.finishedTestURLsLink );\n }\n };\n}( jQuery ));\n\n\n// WEBPACK FOOTER //\n// ./_src/admin/js/admin-dashboard.js","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\n this.renderStep( this.currentStep );\n\n $('body').on( 'click', '.cloudflare-clear-cache.button', function(e ) {\n e.preventDefault();\n this.purgeCache.apply( $(e.target), [this] );\n }.bind(this));\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\tconst $notice = $('#wphb-notice-cloudflare-purge-cache');\n\t\t\t\t\twindow.scrollTo(0, 0);\n\t\t\t\t\t$notice.slideDown();\n\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\t$notice.slideUp();\n\t\t\t\t\t}, 5e3);\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 $('#cloudflare-how-to-title > a').click( function( e ) {\n e.preventDefault();\n $howToInstructions.toggle();\n });\n\n this.$stepsContainer.find( 'select' ).each( function() {\n\t\t\t\twindow.WDP.wpmuSelect( 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 showInfoBox: function( message ) {\n this.$infoBox.addClass( 'wphb-notice' );\n this.$infoBox.addClass( 'wphb-notice-error' );\n this.$infoBox.html( message + '' );\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\n\n\n// WEBPACK FOOTER //\n// ./_src/admin/js/admin-dashboard-cloudflare.js","( function( $ ) {\n WPHB_Admin.uptime = {\n module: 'uptime',\n $dataRangeSelector: null,\n chartData: null,\n timer:null,\n $spinner: null,\n init: function() {\n this.$spinner = $('.spinner');\n this.strings = wphbUptimeStrings;\n this.$dataRangeSelector = $( '#wphb-uptime-data-range' );\n this.chartData = $('#uptime-chart-json').val();\n this.$disableUptime = $('#wphb-disable-uptime');\n\n this.$dataRangeSelector.change( function() {\n window.location.href = $(this).find( ':selected' ).data( 'url' );\n });\n\n var self = this;\n this.$disableUptime.change( function() {\n self.$spinner.css( 'visibility', 'visible' );\n var value = $(this).is(':checked');\n if ( value && self.timer ) {\n clearTimeout( self.timer );\n self.$spinner.css( 'visibility', 'hidden' );\n }\n else {\n // you have 3 seconds to change your mind\n self.timer = setTimeout( function() {\n location.href = self.strings.disableUptimeURL;\n }, 3000 );\n }\n\n return;\n });\n\n this.drawChart();\n\n /* Re-check Uptime status */\n $('#uptime-re-check-status').on( 'click', function(e){\n e.preventDefault();\n location.reload();\n });\n },\n\n drawChart: function() {\n var data = new google.visualization.DataTable();\n data.addColum