From 09aaf2c9884595b340b69e4331ed75ccfc6ff49a Mon Sep 17 00:00:00 2001 From: Samuel Attard Date: Fri, 11 Mar 2016 00:17:20 +1100 Subject: [PATCH] Initial Implementation of light theming --- README.md | 8 ++++- dist/gmusic-theme.js | 70 ++++++++++++++++++++++++++++-------- dist/gmusic-theme.js.map | 2 +- dist/gmusic-theme.min.js | 4 +-- lib/_constants.js | 1 + lib/generate-stylesheet.js | 2 +- lib/style.css | 25 ++++++++++++- src/gmusic-theme.js | 74 +++++++++++++++++++++++++++++--------- 8 files changed, 148 insertions(+), 38 deletions(-) diff --git a/README.md b/README.md index 875703d..a2f4203 100644 --- a/README.md +++ b/README.md @@ -56,8 +56,14 @@ included will not be changed from the defaults. `enabled` is set to false by de ### States +#### `enableAll` +Enables the current custom theme for ALL custom colors. Everything becomes themed + +### `enableHighlight` +Enables the current custom theme but ONLY uses the custom highlight color. Everything else remains standard Google Play Music styles. + #### `enable()` -Enables the current custom theme +Is a mirror of `enableAll`, present for backwards compatibility #### `disable()` Disables the current custom theme diff --git a/dist/gmusic-theme.js b/dist/gmusic-theme.js index 299cb33..a803b2c 100644 --- a/dist/gmusic-theme.js +++ b/dist/gmusic-theme.js @@ -20,7 +20,8 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons }return s; })({ 1: [function (require, module, exports) { module.exports = { - CLASS_NAMESPACE: 'gmusic-theme' + CLASS_NAMESPACE: 'gmusic-theme', + CLASS_NAMESPACE_LIGHT: 'gmusic-theme-light' }; }, {}], 2: [function (require, module, exports) { /* MIT license */ @@ -1614,10 +1615,18 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons var color = require('color'); // DEV: These constants will be transformed into string constants by browserify - var BASE_CSS = ".gmusic-theme #material-app-bar {\n background-color: <> !important;\n}\n\n.gmusic-theme #material-app-bar .tab-text,\n.gmusic-theme [data-id=\"prev-history\"],\n.gmusic-theme [data-id=\"next-history\"],\n.gmusic-theme #searchIcon {\n color: <> !important;\n}\n\n.gmusic-theme #material-one-left #left-nav-open-button svg {\n fill: <> !important;\n}\n\nbody.gmusic-theme {\n background-color: <> !important;\n}\n\n.gmusic-theme #drawer,\n.gmusic-theme .material-card {\n background-color: <> !important;\n}\n\n.gmusic-theme #nav-container,\n.gmusic-theme #loading-overlay,\n.gmusic-theme #loading-progress,\n.gmusic-theme #loading-progress-bar {\n background: <> !important;\n}\n\n.gmusic-theme #loading-progress-bar {\n border: none !important;\n}\n\n.gmusic-theme .nav-toolbar,\n.gmusic-theme .material-card .details,\n.gmusic-theme .material-card .image-wrapper,\n.gmusic-theme .situations-filter {\n background: <> !important;\n}\n\n.gmusic-theme #nav {\n background: <> !important;\n color: <> !important;\n}\n\n.gmusic-theme #player,\n.gmusic-theme .player-rating-container,\n.gmusic-theme #player.material .now-playing-actions paper-icon-button {\n color: <> !important;\n background-color: <> !important;\n}\n\n.gmusic-theme #player.material paper-icon-button.playing > iron-icon::before {\n content: '' !important;\n display: block !important;\n position: absolute !important;\n background: <> !important;\n z-index: -1 !important;\n border-radius: 100% !important;\n height: calc(100% - 16px) !important;\n width: calc(100% - 16px) !important;\n top: 8px !important;\n left: 8px !important;\n}\n\n.gmusic-theme #player.material:hover #material-player-progress #sliderContainer:not(.disabled) #sliderBar #progressContainer,\n.gmusic-theme .playlist-view .editable:hover {\n background: <> !important;\n}\n\n.gmusic-theme .cluster-text-protection::before,\n.gmusic-theme .cluster-text-protection {\n background: transparent !important;\n}\n\n.gmusic-theme .title,\n.gmusic-theme .situation-title,\n.gmusic-theme .recommended-header {\n color: <> !important;\n}\n\n.gmusic-theme .nav-item-container {\n color: <> !important;\n}\n\n.gmusic-theme #nav_collections .nav-item-container:focus,\n.gmusic-theme .nav-item-container:focus,\n.gmusic-theme .nav-item-container:hover,\n.gmusic-theme .nav-item-container.selected {\n background-color: <> !important;\n}\n\n.gmusic-theme .nav-item-container:not(:focus):hover iron-icon {\n color: <> !important;\n}\n\n.gmusic-theme #nav_collections .nav-item-container:focus iron-icon,\n.gmusic-theme .nav-item-container:focus iron-icon {\n color: <> !important;\n}\n\n.gmusic-theme .fade-out:after {\n display: none !important;\n}\n\n.gmusic-theme .column.col-0 .material-card:first-child .image-wrapper {\n padding-top: 0 !important;\n}\n\n.gmusic-theme .song-row .song-indicator {\n background-image: url('ani_equalizer_white_x2.gif') !important;\n background-size: 28px 28px !important;\n background-color: <> !important;\n}\n\n.gmusic-theme .song-row:hover .song-indicator {\n background-color: <> !important;\n}\n\n.gmusic-theme .material-detail-view .has-hero-image,\n.gmusic-theme .song-row td,\n.gmusic-theme .song-row td > *,\n.gmusic-theme .upload-progress-row td,\n.gmusic-theme .song-row.selected-song-row td {\n background-color: <> !important;\n color: <> !important;\n}\n\n.gmusic-theme .song-row.selected-song-row .song-indicator,\n.gmusic-theme .song-row.selected-song-row .title-right-items,\n.gmusic-theme .song-row.selected-song-row .content,\n.gmusic-theme .song-row.selected-song-row .song-indicator[data-playback-status=\"paused\"],\n.gmusic-theme .song-row.selected-song-row .song-indicator[data-playback-status=\"loading\"],\n.gmusic-theme .song-row.selected-song-row [data-col=\"index\"] .hover-button[data-id=\"play\"],\n.gmusic-theme .song-row.selected-song-row [data-col=\"track\"] .hover-button[data-id=\"play\"],\n.gmusic-theme .song-row.selected-song-row td,\n.gmusic-theme .song-row.selected-song-row td > * {\n background-color: <> !important;\n}\n\n.gmusic-theme .song-row:hover,\n.gmusic-theme .song-row.hover .song-indicator,\n.gmusic-theme .song-row.hover .title-right-items,\n.gmusic-theme .song-row.hover .content,\n.gmusic-theme .song-row.hover .song-indicator[data-playback-status=\"paused\"],\n.gmusic-theme .song-row.hover .song-indicator[data-playback-status=\"loading\"],\n.gmusic-theme .song-row.hover [data-col=\"index\"] .hover-button[data-id=\"play\"],\n.gmusic-theme .song-row.hover [data-col=\"track\"] .hover-button[data-id=\"play\"],\n.gmusic-theme .song-row.hover td,\n.gmusic-theme .song-row.hover td > * {\n background-color: <> !important;\n}\n\nbody.gmusic-theme.material,\n.gmusic-theme .material-detail-view .material-container-details .info .description,\n.gmusic-theme .song-table th {\n color: #efefef !important;\n}\n\n.gmusic-theme .song-row.hover [data-col=\"track\"] .hover-button[data-id=\"play\"] {\n background-color: <> !important;\n}\n\n.gmusic-theme .song-row [data-col=\"index\"] .song-indicator {\n background-color: <> !important;\n}\n\n.gmusic-theme .song-row.hover [data-col=\"index\"] .song-indicator,\n.gmusic-theme .song-row.selected-song-row [data-col=\"index\"] .song-indicator {\n background-color: <> !important;\n}\n\n.gmusic-theme .song-row.selected-song-row.hover [data-col=\"index\"] .hover-button[data-id=\"play\"] {\n background-color: <> !important;\n}\n\n.gmusic-theme .songlist-container {\n background-color: <> !important;\n}\n\n.gmusic-theme .nav-section-divider {\n border-bottom: 1px solid <> !important;\n}\n\n.gmusic-theme .goog-menu,\n.gmusic-theme .now-playing-menu .goog-menuitem,\n.gmusic-theme .now-playing-menu .goog-submenu,\n.gmusic-theme .now-playing-menu .goog-submenu .goog-submenu-arrow,\n.gmusic-theme .goog-menuitem {\n background-color: <> !important;\n}\n\n.gmusic-theme .goog-menu .goog-menuitem .goog-menuitem-content,\n.gmusic-theme .goog-menuitem-highlight .goog-menuitem-content .goog-submenu-arrow,\n.gmusic-theme .goog-menuitem-highlight .goog-menuitem-content {\n color: <> !important;\n}\n\n.gmusic-theme .goog-menu .goog-menuitem.selected .goog-menuitem-content {\n color: <> !important;\n}\n\n.gmusic-theme .goog-menu .goog-menuitem:hover,\n.gmusic-theme .goog-menu .goog-menuseparator {\n background-color: <> !important;\n}\n\n.gmusic-theme .material-detail-view .artist-details .bio-wrapper .bio {\n color: <> !important;\n}\n\n.gmusic-theme .song-row.hover td a,\n.gmusic-theme .song-row.selected-song-row td a {\n color: <> !important;\n}\n\n.gmusic-theme paper-action-dialog {\n background: <> !important;\n color: <> !important;\n}\n\n.gmusic-theme .settings-card {\n background-color: <> !important;\n color: <> !important;\n}\n\n.gmusic-theme #queue-overlay {\n background-color: <> !important;\n}\n\n.gmusic-theme #queue-overlay::after {\n border-color: transparent transparent <> <> !important;\n}\n\n.gmusic-theme .upload-dialog-content {\n background-color: <> !important;\n}\n\n.gmusic-theme .upload-dialog-description {\n color: <> !important;\n}\n\n.gmusic-theme .song-row:hover [data-col=\"index\"] .hover-button[data-id=\"play\"] {\n background-color: <> !important;\n}\n\n.gmusic-theme .goog-menuheader {\n color: <> !important;\n}\n\n.gmusic-theme .paper-progress-1 #primaryProgress.paper-progress {\n background-color: <> !important;\n}\n\n.gmusic-theme .album-view .material-container-details .info .title .explicit {\n background-color: <> !important;\n}\n\n.gmusic-theme .paper-input-container-0 .input-content.label-is-highlighted.paper-input-container label,\n.gmusic-theme .paper-input-container-0 .input-content.label-is-highlighted.paper-input-container .paper-input-label {\n color: <> !important;\n}\n\n.gmusic-theme .paper-input-container-0 .input-content.paper-input-container input,\n.gmusic-theme .paper-input-container-0 .input-content.paper-input-container textarea,\n.gmusic-theme .paper-input-container-0 .input-content.paper-input-container iron-autogrow-textarea,\n.gmusic-theme .paper-input-container-0 .input-content.paper-input-container .paper-input-input,\n.gmusic-theme .material-share-options #sharing-option-label {\n color: <> !important;\n}\n\n.gmusic-theme .paper-input-container-0 .add-on-content.is-highlighted.paper-input-container * {\n color: <> !important;\n}\n\n.gmusic-theme .material-container-details paper-fab,\n.gmusic-theme #current-loading-progress {\n background-color: <> !important;\n}\n\n.gmusic-theme #player.material .material-player-middle paper-icon-button[data-id=\"play-pause\"]:not([disabled]) {\n color: <> !important;\n}\n\n.gmusic-theme #loading-overlay.material[data-type=\"full-loading-overlay\"],\n.gmusic-theme #loading-overlay.material[data-type=\"regular-loading-overlay\"] {\n background: <> !important;\n}\n\n.gmusic-theme iron-overlay-backdrop {\n background: <> !important;\n}\n\n.gmusic-theme #loading-overlay.material paper-spinner .circle,\n.gmusic-theme #loading-overlay.material paper-spinner-lite .circle {\n border-color: <><> !important;\n}\n\n.gmusic-theme a.primary {\n color: <> !important;\n}\n\n.gmusic-theme paper-button.material-primary {\n background-color: <> !important;\n}\n\n.gmusic-theme paper-checkbox #checkbox.checked {\n border-color: <> !important;\n background-color: <> !important;\n}\n\n.gmusic-theme paper-checkbox #ink {\n color: <> !important;\n}\n\n.gmusic-theme paper-checkbox #checkboxLabel {\n color: <> !important;\n}\n\n.gmusic-theme paper-toggle-button[checked] .toggle-button {\n background-color: <> !important;\n}\n\n.gmusic-theme paper-toggle-button[checked] .toggle-bar {\n background-color: <> !important;\n}\n\n.gmusic-theme paper-toggle-button[checked] .toggle-ink {\n color: <> !important;\n}\n\n.gmusic-theme .paper-slider-0 #sliderKnobInner.paper-slider,\n.gmusic-theme #sliderKnobInner.paper-slider,\n.gmusic-theme .paper-progress-0 #primaryProgress.paper-progress {\n background-color: <> !important;\n}\n\n.gmusic-theme .nav-item-container.selected iron-icon {\n color: <> !important;\n}\n\n.gmusic-theme .upload-dialog-title {\n background-color: <> !important;\n}\n\n.gmusic-theme a,\n.gmusic-theme .simple-dialog a {\n color: <> !important;\n}\n\n.gmusic-theme .song-table [data-col=\"title\"],\n.gmusic-theme .song-table.mini [data-col=\"song-details\"] .song-title {\n color: <> !important;\n}\n\n.gmusic-theme .subcategories-list,\n.gmusic-theme .material-detail-view .station-container-content-wrapper .material-container-details {\n background-color: <> !important;\n}\n\n.gmusic-theme .material-list li a:hover,\n.gmusic-theme .material-list li a:focus {\n background-color: <> !important;\n}\n\n.gmusic-theme .paper-input-container-0 .focused-line.paper-input-container {\n background-color: <> !important;\n}\n\n.gmusic-theme paper-action-dialog paper-button,\n.gmusic-theme paper-dialog .buttons paper-button,\n.gmusic-theme .share-buttons .share-button .button-label {\n color: <> !important;\n}\n\n.gmusic-theme .song-row:hover td,\n.gmusic-theme .song-row:hover td > * {\n background: <> !important;\n}\n\n.gmusic-theme .song-row:hover [data-col=\"track\"] .hover-button[data-id=\"play\"] {\n background-color: <> !important;\n}\n\n.gmusic-theme .rating-container li {\n -webkit-filter: invert(1) !important;\n}\n\n.gmusic-theme #player.material .material-player-middle paper-icon-button[data-id=\"repeat\"][value=\"LIST_REPEAT\"],\n.gmusic-theme #player.material .material-player-middle paper-icon-button[data-id=\"repeat\"][value=\"SINGLE_REPEAT\"],\n.gmusic-theme #player.material .material-player-middle paper-icon-button[data-id=\"shuffle\"][value=\"ALL_SHUFFLE\"],\n.gmusic-theme #player.material .material-player-middle paper-icon-button[data-id=\"repeat\"][value=\"LIST_REPEAT\"],\n.gmusic-theme #player.material .material-player-middle paper-icon-button[data-id=\"repeat\"][value=\"SINGLE_REPEAT\"],\n.gmusic-theme #player.material .material-player-middle paper-icon-button[data-id=\"shuffle\"][value=\"ALL_SHUFFLE\"] {\n color: <> !important;\n}\n\n.gmusic-theme .cluster .lane-button core-icon,\n.gmusic-theme .cluster .lane-button iron-icon,\n.gmusic-theme #player.material .material-player-middle paper-icon-button[data-id=\"repeat\"].active,\n.gmusic-theme #player.material .material-player-middle paper-icon-button[data-id=\"shuffle\"].active,\n.gmusic-theme #player.material #material-player-right-wrapper paper-icon-button[data-id=\"queue\"].opened {\n color: <> !important;\n}\n\n.gmusic-theme .cluster .header .cluster-title,\n.gmusic-theme .cluster .header .subtitle {\n color: <> !important;\n}\n\n.gmusic-theme .song-row .explicit,\n.gmusic-theme .material-card .explicit {\n background-color: <> !important;\n}\n\n.gmusic-theme .material-detail-view .material-container-details .read-more-button {\n color: <> !important;\n}\n\n.gmusic-theme paper-dialog {\n background: <> !important;\n color: <> !important;\n}\n\n.gmusic-theme .simple-dialog {\n background-color: <> !important;\n border-color: <> !important;\n}\n\n.gmusic-theme .simple-dialog,\n.gmusic-theme .simple-dialog > div {\n background-color: <> !important;\n color: <> !important;\n}\n\n.gmusic-theme .goog-buttonset-default {\n background-color: <> !important;\n}\n\n.gmusic-theme button.goog-buttonset-default,\n.gmusic-theme button.goog-buttonset-default:hover {\n background-color: <> !important;\n}\n\n.gmusic-theme .top-charts-view .song-row [data-col=\"index\"] .column-content,\n.gmusic-theme .material-card .details .left-items .index,\n.gmusic-theme .more-songs-container {\n color: <> !important;\n}\n\n.gmusic-theme .material-detail-view .top-tracks {\n background-color: <> !important;\n}"; + var BASE_CSS = ".gmusic-theme #material-app-bar {\n background-color: <> !important;\n}\n\n.gmusic-theme #material-app-bar .tab-text,\n.gmusic-theme [data-id=\"prev-history\"],\n.gmusic-theme [data-id=\"next-history\"],\n.gmusic-theme #searchIcon {\n color: <> !important;\n}\n\n.gmusic-theme #material-one-left #left-nav-open-button svg {\n fill: <> !important;\n}\n\n.gmusic-theme body {\n background-color: <> !important;\n}\n\n.gmusic-theme #drawer,\n.gmusic-theme .material-card {\n background-color: <> !important;\n}\n\n.gmusic-theme #nav-container,\n.gmusic-theme #loading-overlay,\n.gmusic-theme #loading-progress,\n.gmusic-theme #loading-progress-bar {\n background: <> !important;\n}\n\n.gmusic-theme #loading-progress-bar {\n border: none !important;\n}\n\n.gmusic-theme .nav-toolbar,\n.gmusic-theme .material-card .details,\n.gmusic-theme .material-card .image-wrapper,\n.gmusic-theme .situations-filter {\n background: <> !important;\n}\n\n.gmusic-theme #nav {\n background: <> !important;\n color: <> !important;\n}\n\n.gmusic-theme #player,\n.gmusic-theme .player-rating-container,\n.gmusic-theme #player.material .now-playing-actions paper-icon-button {\n color: <> !important;\n background-color: <> !important;\n}\n\n.gmusic-theme #player.material paper-icon-button.playing > iron-icon::before {\n content: '' !important;\n display: block !important;\n position: absolute !important;\n background: <> !important;\n z-index: -1 !important;\n border-radius: 100% !important;\n height: calc(100% - 16px) !important;\n width: calc(100% - 16px) !important;\n top: 8px !important;\n left: 8px !important;\n}\n\n.gmusic-theme #player.material:hover #material-player-progress #sliderContainer:not(.disabled) #sliderBar #progressContainer,\n.gmusic-theme .playlist-view .editable:hover {\n background: <> !important;\n}\n\n.gmusic-theme .cluster-text-protection::before,\n.gmusic-theme .cluster-text-protection {\n background: transparent !important;\n}\n\n.gmusic-theme .title,\n.gmusic-theme .situation-title,\n.gmusic-theme .recommended-header {\n color: <> !important;\n}\n\n.gmusic-theme .nav-item-container {\n color: <> !important;\n}\n\n.gmusic-theme #nav_collections .nav-item-container:focus,\n.gmusic-theme .nav-item-container:focus,\n.gmusic-theme .nav-item-container:hover,\n.gmusic-theme .nav-item-container.selected {\n background-color: <> !important;\n}\n\n.gmusic-theme .nav-item-container:not(:focus):hover iron-icon {\n color: <> !important;\n}\n\n.gmusic-theme #nav_collections .nav-item-container:focus iron-icon,\n.gmusic-theme .nav-item-container:focus iron-icon {\n color: <> !important;\n}\n\n.gmusic-theme .fade-out:after {\n display: none !important;\n}\n\n.gmusic-theme .column.col-0 .material-card:first-child .image-wrapper {\n padding-top: 0 !important;\n}\n\n.gmusic-theme .song-row .song-indicator {\n background-image: url('ani_equalizer_white_x2.gif') !important;\n background-size: 28px 28px !important;\n background-color: <> !important;\n}\n\n.gmusic-theme .song-row:hover .song-indicator {\n background-color: <> !important;\n}\n\n.gmusic-theme .material-detail-view .has-hero-image,\n.gmusic-theme .song-row td,\n.gmusic-theme .song-row td > *,\n.gmusic-theme .upload-progress-row td,\n.gmusic-theme .song-row.selected-song-row td {\n background-color: <> !important;\n color: <> !important;\n}\n\n.gmusic-theme .song-row.selected-song-row .song-indicator,\n.gmusic-theme .song-row.selected-song-row .title-right-items,\n.gmusic-theme .song-row.selected-song-row .content,\n.gmusic-theme .song-row.selected-song-row .song-indicator[data-playback-status=\"paused\"],\n.gmusic-theme .song-row.selected-song-row .song-indicator[data-playback-status=\"loading\"],\n.gmusic-theme .song-row.selected-song-row [data-col=\"index\"] .hover-button[data-id=\"play\"],\n.gmusic-theme .song-row.selected-song-row [data-col=\"track\"] .hover-button[data-id=\"play\"],\n.gmusic-theme .song-row.selected-song-row td,\n.gmusic-theme .song-row.selected-song-row td > * {\n background-color: <> !important;\n}\n\n.gmusic-theme .song-row:hover,\n.gmusic-theme .song-row.hover .song-indicator,\n.gmusic-theme .song-row.hover .title-right-items,\n.gmusic-theme .song-row.hover .content,\n.gmusic-theme .song-row.hover .song-indicator[data-playback-status=\"paused\"],\n.gmusic-theme .song-row.hover .song-indicator[data-playback-status=\"loading\"],\n.gmusic-theme .song-row.hover [data-col=\"index\"] .hover-button[data-id=\"play\"],\n.gmusic-theme .song-row.hover [data-col=\"track\"] .hover-button[data-id=\"play\"],\n.gmusic-theme .song-row.hover td,\n.gmusic-theme .song-row.hover td > * {\n background-color: <> !important;\n}\n\n.gmusic-theme body,\n.gmusic-theme .material-detail-view .material-container-details .info .description,\n.gmusic-theme .song-table th {\n color: #efefef !important;\n}\n\n.gmusic-theme .song-row.hover [data-col=\"track\"] .hover-button[data-id=\"play\"] {\n background-color: <> !important;\n}\n\n.gmusic-theme .song-row [data-col=\"index\"] .song-indicator {\n background-color: <> !important;\n}\n\n.gmusic-theme .song-row.hover [data-col=\"index\"] .song-indicator,\n.gmusic-theme .song-row.selected-song-row [data-col=\"index\"] .song-indicator {\n background-color: <> !important;\n}\n\n.gmusic-theme .song-row.selected-song-row.hover [data-col=\"index\"] .hover-button[data-id=\"play\"] {\n background-color: <> !important;\n}\n\n.gmusic-theme .songlist-container {\n background-color: <> !important;\n}\n\n.gmusic-theme .nav-section-divider {\n border-bottom: 1px solid <> !important;\n}\n\n.gmusic-theme .goog-menu,\n.gmusic-theme .now-playing-menu .goog-menuitem,\n.gmusic-theme .now-playing-menu .goog-submenu,\n.gmusic-theme .now-playing-menu .goog-submenu .goog-submenu-arrow,\n.gmusic-theme .goog-menuitem {\n background-color: <> !important;\n}\n\n.gmusic-theme .goog-menu .goog-menuitem .goog-menuitem-content,\n.gmusic-theme .goog-menuitem-highlight .goog-menuitem-content .goog-submenu-arrow,\n.gmusic-theme .goog-menuitem-highlight .goog-menuitem-content {\n color: <> !important;\n}\n\n.gmusic-theme .goog-menu .goog-menuitem.selected .goog-menuitem-content {\n color: <> !important;\n}\n\n.gmusic-theme .goog-menu .goog-menuitem:hover,\n.gmusic-theme .goog-menu .goog-menuseparator {\n background-color: <> !important;\n}\n\n.gmusic-theme .material-detail-view .artist-details .bio-wrapper .bio {\n color: <> !important;\n}\n\n.gmusic-theme .song-row.hover td a,\n.gmusic-theme .song-row.selected-song-row td a {\n color: <> !important;\n}\n\n.gmusic-theme paper-action-dialog {\n background: <> !important;\n color: <> !important;\n}\n\n.gmusic-theme .settings-card {\n background-color: <> !important;\n color: <> !important;\n}\n\n.gmusic-theme #queue-overlay {\n background-color: <> !important;\n}\n\n.gmusic-theme #queue-overlay::after {\n border-color: transparent transparent <> <> !important;\n}\n\n.gmusic-theme .upload-dialog-content {\n background-color: <> !important;\n}\n\n.gmusic-theme .upload-dialog-description {\n color: <> !important;\n}\n\n.gmusic-theme .song-row:hover [data-col=\"index\"] .hover-button[data-id=\"play\"] {\n background-color: <> !important;\n}\n\n.gmusic-theme .goog-menuheader {\n color: <> !important;\n}\n\n.gmusic-theme .paper-progress-1 #primaryProgress.paper-progress {\n background-color: <> !important;\n}\n\n.gmusic-theme .album-view .material-container-details .info .title .explicit {\n background-color: <> !important;\n}\n\n.gmusic-theme .paper-input-container-0 .input-content.label-is-highlighted.paper-input-container label,\n.gmusic-theme .paper-input-container-0 .input-content.label-is-highlighted.paper-input-container .paper-input-label {\n color: <> !important;\n}\n\n.gmusic-theme .paper-input-container-0 .input-content.paper-input-container input,\n.gmusic-theme .paper-input-container-0 .input-content.paper-input-container textarea,\n.gmusic-theme .paper-input-container-0 .input-content.paper-input-container iron-autogrow-textarea,\n.gmusic-theme .paper-input-container-0 .input-content.paper-input-container .paper-input-input,\n.gmusic-theme .material-share-options #sharing-option-label {\n color: <> !important;\n}\n\n.gmusic-theme .paper-input-container-0 .add-on-content.is-highlighted.paper-input-container * {\n color: <> !important;\n}\n\n.gmusic-theme .material-container-details paper-fab,\n.gmusic-theme #current-loading-progress {\n background-color: <> !important;\n}\n\n.gmusic-theme #player.material .material-player-middle paper-icon-button[data-id=\"play-pause\"]:not([disabled]) {\n color: <> !important;\n}\n\n.gmusic-theme #loading-overlay.material[data-type=\"full-loading-overlay\"],\n.gmusic-theme #loading-overlay.material[data-type=\"regular-loading-overlay\"] {\n background: <> !important;\n}\n\n.gmusic-theme iron-overlay-backdrop {\n background: <> !important;\n}\n\n.gmusic-theme #loading-overlay.material paper-spinner .circle,\n.gmusic-theme #loading-overlay.material paper-spinner-lite .circle {\n border-color: <><> !important;\n}\n\n.gmusic-theme a.primary {\n color: <> !important;\n}\n\n.gmusic-theme paper-button.material-primary {\n background-color: <> !important;\n}\n\n.gmusic-theme paper-checkbox #checkbox.checked {\n border-color: <> !important;\n background-color: <> !important;\n}\n\n.gmusic-theme paper-checkbox #ink {\n color: <> !important;\n}\n\n.gmusic-theme paper-checkbox #checkboxLabel {\n color: <> !important;\n}\n\n.gmusic-theme paper-toggle-button[checked] .toggle-button {\n background-color: <> !important;\n}\n\n.gmusic-theme paper-toggle-button[checked] .toggle-bar {\n background-color: <> !important;\n}\n\n.gmusic-theme paper-toggle-button[checked] .toggle-ink {\n color: <> !important;\n}\n\n.gmusic-theme .paper-slider-0 #sliderKnobInner.paper-slider,\n.gmusic-theme #sliderKnobInner.paper-slider,\n.gmusic-theme .paper-progress-0 #primaryProgress.paper-progress {\n background-color: <> !important;\n}\n\n.gmusic-theme .nav-item-container.selected iron-icon {\n color: <> !important;\n}\n\n.gmusic-theme .upload-dialog-title {\n background-color: <> !important;\n}\n\n.gmusic-theme a,\n.gmusic-theme .simple-dialog a {\n color: <> !important;\n}\n\n.gmusic-theme .song-table [data-col=\"title\"],\n.gmusic-theme .song-table.mini [data-col=\"song-details\"] .song-title {\n color: <> !important;\n}\n\n.gmusic-theme .subcategories-list,\n.gmusic-theme .material-detail-view .station-container-content-wrapper .material-container-details {\n background-color: <> !important;\n}\n\n.gmusic-theme .material-list li a:hover,\n.gmusic-theme .material-list li a:focus {\n background-color: <> !important;\n}\n\n.gmusic-theme .paper-input-container-0 .focused-line.paper-input-container {\n background-color: <> !important;\n}\n\n.gmusic-theme paper-action-dialog paper-button,\n.gmusic-theme paper-dialog .buttons paper-button,\n.gmusic-theme .share-buttons .share-button .button-label {\n color: <> !important;\n}\n\n.gmusic-theme .song-row:hover td,\n.gmusic-theme .song-row:hover td > * {\n background: <> !important;\n}\n\n.gmusic-theme .song-row:hover [data-col=\"track\"] .hover-button[data-id=\"play\"] {\n background-color: <> !important;\n}\n\n.gmusic-theme .rating-container li {\n -webkit-filter: invert(1) !important;\n}\n\n.gmusic-theme #player.material .material-player-middle paper-icon-button[data-id=\"repeat\"][value=\"LIST_REPEAT\"],\n.gmusic-theme #player.material .material-player-middle paper-icon-button[data-id=\"repeat\"][value=\"SINGLE_REPEAT\"],\n.gmusic-theme #player.material .material-player-middle paper-icon-button[data-id=\"shuffle\"][value=\"ALL_SHUFFLE\"],\n.gmusic-theme #player.material .material-player-middle paper-icon-button[data-id=\"repeat\"][value=\"LIST_REPEAT\"],\n.gmusic-theme #player.material .material-player-middle paper-icon-button[data-id=\"repeat\"][value=\"SINGLE_REPEAT\"],\n.gmusic-theme #player.material .material-player-middle paper-icon-button[data-id=\"shuffle\"][value=\"ALL_SHUFFLE\"] {\n color: <> !important;\n}\n\n.gmusic-theme .cluster .lane-button core-icon,\n.gmusic-theme .cluster .lane-button iron-icon,\n.gmusic-theme #player.material .material-player-middle paper-icon-button[data-id=\"repeat\"].active,\n.gmusic-theme #player.material .material-player-middle paper-icon-button[data-id=\"shuffle\"].active,\n.gmusic-theme #player.material #material-player-right-wrapper paper-icon-button[data-id=\"queue\"].opened {\n color: <> !important;\n}\n\n.gmusic-theme .cluster .header .cluster-title,\n.gmusic-theme .cluster .header .subtitle {\n color: <> !important;\n}\n\n.gmusic-theme .song-row .explicit,\n.gmusic-theme .material-card .explicit {\n background-color: <> !important;\n}\n\n.gmusic-theme .material-detail-view .material-container-details .read-more-button {\n color: <> !important;\n}\n\n.gmusic-theme paper-dialog {\n background: <> !important;\n color: <> !important;\n}\n\n.gmusic-theme .simple-dialog {\n background-color: <> !important;\n border-color: <> !important;\n}\n\n.gmusic-theme .simple-dialog,\n.gmusic-theme .simple-dialog > div {\n background-color: <> !important;\n color: <> !important;\n}\n\n.gmusic-theme .goog-buttonset-default {\n background-color: <> !important;\n}\n\n.gmusic-theme button.goog-buttonset-default,\n.gmusic-theme button.goog-buttonset-default:hover {\n background-color: <> !important;\n}\n\n.gmusic-theme .top-charts-view .song-row [data-col=\"index\"] .column-content,\n.gmusic-theme .material-card .details .left-items .index,\n.gmusic-theme .more-songs-container {\n color: <> !important;\n}\n\n.gmusic-theme .material-detail-view .top-tracks {\n background-color: <> !important;\n}\n\n.gmusic-theme .gmusic-theme-light #material-app-bar {\n background-color: <> !important;\n}\n\n.gmusic-theme .gmusic-theme-light .nav-item-container.selected {\n color: <> !important;\n}\n\n.gmusic-theme body.gmusic-theme-light,\n.gmusic-theme .gmusic-theme-light .material-detail-view .material-container-details .info .description,\n.gmusic-theme .gmusic-theme-light .song-table th {\n color: #212121 !important;\n}\n\n.gmusic-theme .gmusic-theme-light .song-row .song-indicator {\n background-image: url('ani_equalizer_black.gif') !important;\n background-size: 40px 40px !important;\n}"; var BASE_SVG = "\r\n \r\n \r\n \r\n \r\n\r\n"; var CONSTANTS = require('../lib/_constants'); + var DEFAULTS = { + BACK_PRIMARY: '#222326', + BACK_SECONDARY: '#121314', + BACK_HIGHLIGHT: '#615F59', + FORE_PRIMARY: '#FFFFFF', + FORE_SECONDARY: '#1ED760' + }; + window.GMusicTheme = function () { /** * Constructor for a new Google Music Theme API. @@ -1633,11 +1642,11 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons _classCallCheck(this, GMusicTheme); // DEV: Use the colors specified in the options or the default if it isn't set - this.BACK_PRIMARY = '#222326'; - this.BACK_SECONDARY = '#121314'; - this.BACK_HIGHLIGHT = '#615F59'; - this.FORE_PRIMARY = '#FFFFFF'; - this.FORE_SECONDARY = '#1ED760'; + this.BACK_PRIMARY = DEFAULTS.BACK_PRIMARY; + this.BACK_SECONDARY = DEFAULTS.BACK_SECONDARY; + this.BACK_HIGHLIGHT = DEFAULTS.BACK_HIGHLIGHT; + this.FORE_PRIMARY = DEFAULTS.FORE_PRIMARY; + this.FORE_SECONDARY = DEFAULTS.FORE_SECONDARY; this.enabled = false; if (options.enabled) { @@ -1665,15 +1674,40 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons } /** - * Enables the custom theme - */ + * Enabled the dark theme, this allows for backwards compatibility + */ }, { key: "enable", value: function enable() { - document.body.classList.add(CONSTANTS.CLASS_NAMESPACE); - this.enabled = true; - this._drawLogo(); + this.enableAll(); + } + + /** + * Enables the custom theme in dark mode (All colors) + */ + + }, { + key: "enableAll", + value: function enableAll() { + this.disable(); + document.querySelector('html').classList.add(CONSTANTS.CLASS_NAMESPACE); + this.enabled = 1; + this.redrawTheme(); + } + + /** + * Enables the custom theme in light mode (only highlight) + */ + + }, { + key: "enableHighlight", + value: function enableHighlight() { + this.disable(); + document.querySelector('html').classList.add(CONSTANTS.CLASS_NAMESPACE); + document.body.classList.add(CONSTANTS.CLASS_NAMESPACE_LIGHT); + this.enabled = 2; + this.redrawTheme(); } /** @@ -1683,8 +1717,9 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons }, { key: "disable", value: function disable() { - document.body.classList.remove(CONSTANTS.CLASS_NAMESPACE); - this.enabled = false; + document.querySelector('html').classList.remove(CONSTANTS.CLASS_NAMESPACE); + document.body.classList.remove(CONSTANTS.CLASS_NAMESPACE_LIGHT); + this.enabled = 0; this._drawLogo(); } @@ -1768,7 +1803,12 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons }, { key: "_substituteColors", value: function _substituteColors(styleString) { - return styleString.replace(/<>/g, this.BACK_PRIMARY).replace(/<>/g, this.BACK_SECONDARY).replace(/<>/g, this.BACK_HIGHLIGHT).replace(/<>/g, this.FORE_PRIMARY).replace(/<>/g, this.FORE_SECONDARY).replace(/<>/g, this._rgba(this.BACK_SECONDARY, 0.5)).replace(/<> \!important/g, ''); + // DEV: If replacing all colors + if (this.enabled === 1) { + return styleString.replace(/<>/g, this.BACK_PRIMARY).replace(/<>/g, this.BACK_SECONDARY).replace(/<>/g, this.BACK_HIGHLIGHT).replace(/<>/g, this.FORE_PRIMARY).replace(/<>/g, this.FORE_SECONDARY).replace(/<>/g, this._rgba(this.BACK_SECONDARY, 0.5)).replace(/<> \!important/g, ''); + } + // DEV: Else remove all rules for anything that isn't the highlight color (foreSecondary) + return styleString.replace(/\n.+<>.*;\n/g, '').replace(/\n.+<>.*;\n/g, '').replace(/\n.+<>.*;\n/g, '').replace(/\n.+<>.*;\n/g, '').replace(/<>/g, this.FORE_SECONDARY).replace(/\n.+<>.*;\n/g, '').replace(/<> \!important/g, ''); } }]); diff --git a/dist/gmusic-theme.js.map b/dist/gmusic-theme.js.map index ad34f3b..d192e2a 100644 --- a/dist/gmusic-theme.js.map +++ b/dist/gmusic-theme.js.map @@ -1 +1 @@ -{"version":3,"sources":["gmusic-theme.js"],"names":[],"mappings":"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","file":"gmusic-theme.js","sourcesContent":["(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 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n g = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n b = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n var x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n var y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n var z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n return [x * 100, y *100, z * 100];\n}\n\nfunction rgb2lab(rgb) {\n var xyz = rgb2xyz(rgb),\n x = xyz[0],\n y = xyz[1],\n z = xyz[2],\n l, a, b;\n\n x /= 95.047;\n y /= 100;\n z /= 108.883;\n\n x = x > 0.008856 ? Math.pow(x, 1/3) : (7.787 * x) + (16 / 116);\n y = y > 0.008856 ? Math.pow(y, 1/3) : (7.787 * y) + (16 / 116);\n z = z > 0.008856 ? Math.pow(z, 1/3) : (7.787 * z) + (16 / 116);\n\n l = (116 * y) - 16;\n a = 500 * (x - y);\n b = 200 * (y - z);\n\n return [l, a, b];\n}\n\nfunction rgb2lch(args) {\n return lab2lch(rgb2lab(args));\n}\n\nfunction hsl2rgb(hsl) {\n var h = hsl[0] / 360,\n s = hsl[1] / 100,\n l = hsl[2] / 100,\n t1, t2, t3, rgb, val;\n\n if (s == 0) {\n val = l * 255;\n return [val, val, val];\n }\n\n if (l < 0.5)\n t2 = l * (1 + s);\n else\n t2 = l + s - l * s;\n t1 = 2 * l - t2;\n\n rgb = [0, 0, 0];\n for (var i = 0; i < 3; i++) {\n t3 = h + 1 / 3 * - (i - 1);\n t3 < 0 && t3++;\n t3 > 1 && t3--;\n\n if (6 * t3 < 1)\n val = t1 + (t2 - t1) * 6 * t3;\n else if (2 * t3 < 1)\n val = t2;\n else if (3 * t3 < 2)\n val = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n else\n val = t1;\n\n rgb[i] = val * 255;\n }\n\n return rgb;\n}\n\nfunction hsl2hsv(hsl) {\n var h = hsl[0],\n s = hsl[1] / 100,\n l = hsl[2] / 100,\n sv, v;\n\n if(l === 0) {\n // no need to do calc on black\n // also avoids divide by 0 error\n return [0, 0, 0];\n }\n\n l *= 2;\n s *= (l <= 1) ? l : 2 - l;\n v = (l + s) / 2;\n sv = (2 * s) / (l + s);\n return [h, sv * 100, v * 100];\n}\n\nfunction hsl2hwb(args) {\n return rgb2hwb(hsl2rgb(args));\n}\n\nfunction hsl2cmyk(args) {\n return rgb2cmyk(hsl2rgb(args));\n}\n\nfunction hsl2keyword(args) {\n return rgb2keyword(hsl2rgb(args));\n}\n\n\nfunction hsv2rgb(hsv) {\n var h = hsv[0] / 60,\n s = hsv[1] / 100,\n v = hsv[2] / 100,\n hi = Math.floor(h) % 6;\n\n var f = h - Math.floor(h),\n p = 255 * v * (1 - s),\n q = 255 * v * (1 - (s * f)),\n t = 255 * v * (1 - (s * (1 - f))),\n v = 255 * v;\n\n switch(hi) {\n case 0:\n return [v, t, p];\n case 1:\n return [q, v, p];\n case 2:\n return [p, v, t];\n case 3:\n return [p, q, v];\n case 4:\n return [t, p, v];\n case 5:\n return [v, p, q];\n }\n}\n\nfunction hsv2hsl(hsv) {\n var h = hsv[0],\n s = hsv[1] / 100,\n v = hsv[2] / 100,\n sl, l;\n\n l = (2 - s) * v;\n sl = s * v;\n sl /= (l <= 1) ? l : 2 - l;\n sl = sl || 0;\n l /= 2;\n return [h, sl * 100, l * 100];\n}\n\nfunction hsv2hwb(args) {\n return rgb2hwb(hsv2rgb(args))\n}\n\nfunction hsv2cmyk(args) {\n return rgb2cmyk(hsv2rgb(args));\n}\n\nfunction hsv2keyword(args) {\n return rgb2keyword(hsv2rgb(args));\n}\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nfunction hwb2rgb(hwb) {\n var h = hwb[0] / 360,\n wh = hwb[1] / 100,\n bl = hwb[2] / 100,\n ratio = wh + bl,\n i, v, f, n;\n\n // wh + bl cant be > 1\n if (ratio > 1) {\n wh /= ratio;\n bl /= ratio;\n }\n\n i = Math.floor(6 * h);\n v = 1 - bl;\n f = 6 * h - i;\n if ((i & 0x01) != 0) {\n f = 1 - f;\n }\n n = wh + f * (v - wh); // linear interpolation\n\n switch (i) {\n default:\n case 6:\n case 0: r = v; g = n; b = wh; break;\n case 1: r = n; g = v; b = wh; break;\n case 2: r = wh; g = v; b = n; break;\n case 3: r = wh; g = n; b = v; break;\n case 4: r = n; g = wh; b = v; break;\n case 5: r = v; g = wh; b = n; break;\n }\n\n return [r * 255, g * 255, b * 255];\n}\n\nfunction hwb2hsl(args) {\n return rgb2hsl(hwb2rgb(args));\n}\n\nfunction hwb2hsv(args) {\n return rgb2hsv(hwb2rgb(args));\n}\n\nfunction hwb2cmyk(args) {\n return rgb2cmyk(hwb2rgb(args));\n}\n\nfunction hwb2keyword(args) {\n return rgb2keyword(hwb2rgb(args));\n}\n\nfunction cmyk2rgb(cmyk) {\n var c = cmyk[0] / 100,\n m = cmyk[1] / 100,\n y = cmyk[2] / 100,\n k = cmyk[3] / 100,\n r, g, b;\n\n r = 1 - Math.min(1, c * (1 - k) + k);\n g = 1 - Math.min(1, m * (1 - k) + k);\n b = 1 - Math.min(1, y * (1 - k) + k);\n return [r * 255, g * 255, b * 255];\n}\n\nfunction cmyk2hsl(args) {\n return rgb2hsl(cmyk2rgb(args));\n}\n\nfunction cmyk2hsv(args) {\n return rgb2hsv(cmyk2rgb(args));\n}\n\nfunction cmyk2hwb(args) {\n return rgb2hwb(cmyk2rgb(args));\n}\n\nfunction cmyk2keyword(args) {\n return rgb2keyword(cmyk2rgb(args));\n}\n\n\nfunction xyz2rgb(xyz) {\n var x = xyz[0] / 100,\n y = xyz[1] / 100,\n z = xyz[2] / 100,\n r, g, b;\n\n r = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n g = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n b = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n // assume sRGB\n r = r > 0.0031308 ? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n : r = (r * 12.92);\n\n g = g > 0.0031308 ? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n : g = (g * 12.92);\n\n b = b > 0.0031308 ? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)\n : b = (b * 12.92);\n\n r = Math.min(Math.max(0, r), 1);\n g = Math.min(Math.max(0, g), 1);\n b = Math.min(Math.max(0, b), 1);\n\n return [r * 255, g * 255, b * 255];\n}\n\nfunction xyz2lab(xyz) {\n var x = xyz[0],\n y = xyz[1],\n z = xyz[2],\n l, a, b;\n\n x /= 95.047;\n y /= 100;\n z /= 108.883;\n\n x = x > 0.008856 ? Math.pow(x, 1/3) : (7.787 * x) + (16 / 116);\n y = y > 0.008856 ? Math.pow(y, 1/3) : (7.787 * y) + (16 / 116);\n z = z > 0.008856 ? Math.pow(z, 1/3) : (7.787 * z) + (16 / 116);\n\n l = (116 * y) - 16;\n a = 500 * (x - y);\n b = 200 * (y - z);\n\n return [l, a, b];\n}\n\nfunction xyz2lch(args) {\n return lab2lch(xyz2lab(args));\n}\n\nfunction lab2xyz(lab) {\n var l = lab[0],\n a = lab[1],\n b = lab[2],\n x, y, z, y2;\n\n if (l <= 8) {\n y = (l * 100) / 903.3;\n y2 = (7.787 * (y / 100)) + (16 / 116);\n } else {\n y = 100 * Math.pow((l + 16) / 116, 3);\n y2 = Math.pow(y / 100, 1/3);\n }\n\n x = x / 95.047 <= 0.008856 ? x = (95.047 * ((a / 500) + y2 - (16 / 116))) / 7.787 : 95.047 * Math.pow((a / 500) + y2, 3);\n\n z = z / 108.883 <= 0.008859 ? z = (108.883 * (y2 - (b / 200) - (16 / 116))) / 7.787 : 108.883 * Math.pow(y2 - (b / 200), 3);\n\n return [x, y, z];\n}\n\nfunction lab2lch(lab) {\n var l = lab[0],\n a = lab[1],\n b = lab[2],\n hr, h, c;\n\n hr = Math.atan2(b, a);\n h = hr * 360 / 2 / Math.PI;\n if (h < 0) {\n h += 360;\n }\n c = Math.sqrt(a * a + b * b);\n return [l, c, h];\n}\n\nfunction lab2rgb(args) {\n return xyz2rgb(lab2xyz(args));\n}\n\nfunction lch2lab(lch) {\n var l = lch[0],\n c = lch[1],\n h = lch[2],\n a, b, hr;\n\n hr = h / 360 * 2 * Math.PI;\n a = c * Math.cos(hr);\n b = c * Math.sin(hr);\n return [l, a, b];\n}\n\nfunction lch2xyz(args) {\n return lab2xyz(lch2lab(args));\n}\n\nfunction lch2rgb(args) {\n return lab2rgb(lch2lab(args));\n}\n\nfunction keyword2rgb(keyword) {\n return cssKeywords[keyword];\n}\n\nfunction keyword2hsl(args) {\n return rgb2hsl(keyword2rgb(args));\n}\n\nfunction keyword2hsv(args) {\n return rgb2hsv(keyword2rgb(args));\n}\n\nfunction keyword2hwb(args) {\n return rgb2hwb(keyword2rgb(args));\n}\n\nfunction keyword2cmyk(args) {\n return rgb2cmyk(keyword2rgb(args));\n}\n\nfunction keyword2lab(args) {\n return rgb2lab(keyword2rgb(args));\n}\n\nfunction keyword2xyz(args) {\n return rgb2xyz(keyword2rgb(args));\n}\n\nvar cssKeywords = {\n aliceblue: [240,248,255],\n antiquewhite: [250,235,215],\n aqua: [0,255,255],\n aquamarine: [127,255,212],\n azure: [240,255,255],\n beige: [245,245,220],\n bisque: [255,228,196],\n black: [0,0,0],\n blanchedalmond: [255,235,205],\n blue: [0,0,255],\n blueviolet: [138,43,226],\n brown: [165,42,42],\n burlywood: [222,184,135],\n cadetblue: [95,158,160],\n chartreuse: [127,255,0],\n chocolate: [210,105,30],\n coral: [255,127,80],\n cornflowerblue: [100,149,237],\n cornsilk: [255,248,220],\n crimson: [220,20,60],\n cyan: [0,255,255],\n darkblue: [0,0,139],\n darkcyan: [0,139,139],\n darkgoldenrod: [184,134,11],\n darkgray: [169,169,169],\n darkgreen: [0,100,0],\n darkgrey: [169,169,169],\n darkkhaki: [189,183,107],\n darkmagenta: [139,0,139],\n darkolivegreen: [85,107,47],\n darkorange: [255,140,0],\n darkorchid: [153,50,204],\n darkred: [139,0,0],\n darksalmon: [233,150,122],\n darkseagreen: [143,188,143],\n darkslateblue: [72,61,139],\n darkslategray: [47,79,79],\n darkslategrey: [47,79,79],\n darkturquoise: [0,206,209],\n darkviolet: [148,0,211],\n deeppink: [255,20,147],\n deepskyblue: [0,191,255],\n dimgray: [105,105,105],\n dimgrey: [105,105,105],\n dodgerblue: [30,144,255],\n firebrick: [178,34,34],\n floralwhite: [255,250,240],\n forestgreen: [34,139,34],\n fuchsia: [255,0,255],\n gainsboro: [220,220,220],\n ghostwhite: [248,248,255],\n gold: [255,215,0],\n goldenrod: [218,165,32],\n gray: [128,128,128],\n green: [0,128,0],\n greenyellow: [173,255,47],\n grey: [128,128,128],\n honeydew: [240,255,240],\n hotpink: [255,105,180],\n indianred: [205,92,92],\n indigo: [75,0,130],\n ivory: [255,255,240],\n khaki: [240,230,140],\n lavender: [230,230,250],\n lavenderblush: [255,240,245],\n lawngreen: [124,252,0],\n lemonchiffon: [255,250,205],\n lightblue: [173,216,230],\n lightcoral: [240,128,128],\n lightcyan: [224,255,255],\n lightgoldenrodyellow: [250,250,210],\n lightgray: [211,211,211],\n lightgreen: [144,238,144],\n lightgrey: [211,211,211],\n lightpink: [255,182,193],\n lightsalmon: [255,160,122],\n lightseagreen: [32,178,170],\n lightskyblue: [135,206,250],\n lightslategray: [119,136,153],\n lightslategrey: [119,136,153],\n lightsteelblue: [176,196,222],\n lightyellow: [255,255,224],\n lime: [0,255,0],\n limegreen: [50,205,50],\n linen: [250,240,230],\n magenta: [255,0,255],\n maroon: [128,0,0],\n mediumaquamarine: [102,205,170],\n mediumblue: [0,0,205],\n mediumorchid: [186,85,211],\n mediumpurple: [147,112,219],\n mediumseagreen: [60,179,113],\n mediumslateblue: [123,104,238],\n mediumspringgreen: [0,250,154],\n mediumturquoise: [72,209,204],\n mediumvioletred: [199,21,133],\n midnightblue: [25,25,112],\n mintcream: [245,255,250],\n mistyrose: [255,228,225],\n moccasin: [255,228,181],\n navajowhite: [255,222,173],\n navy: [0,0,128],\n oldlace: [253,245,230],\n olive: [128,128,0],\n olivedrab: [107,142,35],\n orange: [255,165,0],\n orangered: [255,69,0],\n orchid: [218,112,214],\n palegoldenrod: [238,232,170],\n palegreen: [152,251,152],\n paleturquoise: [175,238,238],\n palevioletred: [219,112,147],\n papayawhip: [255,239,213],\n peachpuff: [255,218,185],\n peru: [205,133,63],\n pink: [255,192,203],\n plum: [221,160,221],\n powderblue: [176,224,230],\n purple: [128,0,128],\n rebeccapurple: [102, 51, 153],\n red: [255,0,0],\n rosybrown: [188,143,143],\n royalblue: [65,105,225],\n saddlebrown: [139,69,19],\n salmon: [250,128,114],\n sandybrown: [244,164,96],\n seagreen: [46,139,87],\n seashell: [255,245,238],\n sienna: [160,82,45],\n silver: [192,192,192],\n skyblue: [135,206,235],\n slateblue: [106,90,205],\n slategray: [112,128,144],\n slategrey: [112,128,144],\n snow: [255,250,250],\n springgreen: [0,255,127],\n steelblue: [70,130,180],\n tan: [210,180,140],\n teal: [0,128,128],\n thistle: [216,191,216],\n tomato: [255,99,71],\n turquoise: [64,224,208],\n violet: [238,130,238],\n wheat: [245,222,179],\n white: [255,255,255],\n whitesmoke: [245,245,245],\n yellow: [255,255,0],\n yellowgreen: [154,205,50]\n};\n\nvar reverseKeywords = {};\nfor (var key in cssKeywords) {\n reverseKeywords[JSON.stringify(cssKeywords[key])] = key;\n}\n\n},{}],3:[function(require,module,exports){\nvar conversions = require(\"./conversions\");\n\nvar convert = function() {\n return new Converter();\n}\n\nfor (var func in conversions) {\n // export Raw versions\n convert[func + \"Raw\"] = (function(func) {\n // accept array or plain args\n return function(arg) {\n if (typeof arg == \"number\")\n arg = Array.prototype.slice.call(arguments);\n return conversions[func](arg);\n }\n })(func);\n\n var pair = /(\\w+)2(\\w+)/.exec(func),\n from = pair[1],\n to = pair[2];\n\n // export rgb2hsl and [\"rgb\"][\"hsl\"]\n convert[from] = convert[from] || {};\n\n convert[from][to] = convert[func] = (function(func) { \n return function(arg) {\n if (typeof arg == \"number\")\n arg = Array.prototype.slice.call(arguments);\n \n var val = conversions[func](arg);\n if (typeof val == \"string\" || val === undefined)\n return val; // keyword\n\n for (var i = 0; i < val.length; i++)\n val[i] = Math.round(val[i]);\n return val;\n }\n })(func);\n}\n\n\n/* Converter does lazy conversion and caching */\nvar Converter = function() {\n this.convs = {};\n};\n\n/* Either get the values for a space or\n set the values for a space, depending on args */\nConverter.prototype.routeSpace = function(space, args) {\n var values = args[0];\n if (values === undefined) {\n // color.rgb()\n return this.getValues(space);\n }\n // color.rgb(10, 10, 10)\n if (typeof values == \"number\") {\n values = Array.prototype.slice.call(args); \n }\n\n return this.setValues(space, values);\n};\n \n/* Set the values for a space, invalidating cache */\nConverter.prototype.setValues = function(space, values) {\n this.space = space;\n this.convs = {};\n this.convs[space] = values;\n return this;\n};\n\n/* Get the values for a space. If there's already\n a conversion for the space, fetch it, otherwise\n compute it */\nConverter.prototype.getValues = function(space) {\n var vals = this.convs[space];\n if (!vals) {\n var fspace = this.space,\n from = this.convs[fspace];\n vals = convert[fspace][space](from);\n\n this.convs[space] = vals;\n }\n return vals;\n};\n\n[\"rgb\", \"hsl\", \"hsv\", \"cmyk\", \"keyword\"].forEach(function(space) {\n Converter.prototype[space] = function(vals) {\n return this.routeSpace(space, arguments);\n }\n});\n\nmodule.exports = convert;\n},{\"./conversions\":2}],4:[function(require,module,exports){\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\n},{}],5:[function(require,module,exports){\n/* MIT license */\nvar colorNames = require('color-name');\n\nmodule.exports = {\n getRgba: getRgba,\n getHsla: getHsla,\n getRgb: getRgb,\n getHsl: getHsl,\n getHwb: getHwb,\n getAlpha: getAlpha,\n\n hexString: hexString,\n rgbString: rgbString,\n rgbaString: rgbaString,\n percentString: percentString,\n percentaString: percentaString,\n hslString: hslString,\n hslaString: hslaString,\n hwbString: hwbString,\n keyword: keyword\n}\n\nfunction getRgba(string) {\n if (!string) {\n return;\n }\n var abbr = /^#([a-fA-F0-9]{3})$/,\n hex = /^#([a-fA-F0-9]{6})$/,\n rgba = /^rgba?\\(\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/,\n per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/,\n keyword = /(\\D+)/;\n\n var rgb = [0, 0, 0],\n a = 1,\n match = string.match(abbr);\n if (match) {\n match = match[1];\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match[i] + match[i], 16);\n }\n }\n else if (match = string.match(hex)) {\n match = match[1];\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match.slice(i * 2, i * 2 + 2), 16);\n }\n }\n else if (match = string.match(rgba)) {\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match[i + 1]);\n }\n a = parseFloat(match[4]);\n }\n else if (match = string.match(per)) {\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n }\n a = parseFloat(match[4]);\n }\n else if (match = string.match(keyword)) {\n if (match[1] == \"transparent\") {\n return [0, 0, 0, 0];\n }\n rgb = colorNames[match[1]];\n if (!rgb) {\n return;\n }\n }\n\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = scale(rgb[i], 0, 255);\n }\n if (!a && a != 0) {\n a = 1;\n }\n else {\n a = scale(a, 0, 1);\n }\n rgb[3] = a;\n return rgb;\n}\n\nfunction getHsla(string) {\n if (!string) {\n return;\n }\n var hsl = /^hsla?\\(\\s*([+-]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)/;\n var match = string.match(hsl);\n if (match) {\n var alpha = parseFloat(match[4]);\n var h = scale(parseInt(match[1]), 0, 360),\n s = scale(parseFloat(match[2]), 0, 100),\n l = scale(parseFloat(match[3]), 0, 100),\n a = scale(isNaN(alpha) ? 1 : alpha, 0, 1);\n return [h, s, l, a];\n }\n}\n\nfunction getHwb(string) {\n if (!string) {\n return;\n }\n var hwb = /^hwb\\(\\s*([+-]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)/;\n var match = string.match(hwb);\n if (match) {\n var alpha = parseFloat(match[4]);\n var h = scale(parseInt(match[1]), 0, 360),\n w = scale(parseFloat(match[2]), 0, 100),\n b = scale(parseFloat(match[3]), 0, 100),\n a = scale(isNaN(alpha) ? 1 : alpha, 0, 1);\n return [h, w, b, a];\n }\n}\n\nfunction getRgb(string) {\n var rgba = getRgba(string);\n return rgba && rgba.slice(0, 3);\n}\n\nfunction getHsl(string) {\n var hsla = getHsla(string);\n return hsla && hsla.slice(0, 3);\n}\n\nfunction getAlpha(string) {\n var vals = getRgba(string);\n if (vals) {\n return vals[3];\n }\n else if (vals = getHsla(string)) {\n return vals[3];\n }\n else if (vals = getHwb(string)) {\n return vals[3];\n }\n}\n\n// generators\nfunction hexString(rgb) {\n return \"#\" + hexDouble(rgb[0]) + hexDouble(rgb[1])\n + hexDouble(rgb[2]);\n}\n\nfunction rgbString(rgba, alpha) {\n if (alpha < 1 || (rgba[3] && rgba[3] < 1)) {\n return rgbaString(rgba, alpha);\n }\n return \"rgb(\" + rgba[0] + \", \" + rgba[1] + \", \" + rgba[2] + \")\";\n}\n\nfunction rgbaString(rgba, alpha) {\n if (alpha === undefined) {\n alpha = (rgba[3] !== undefined ? rgba[3] : 1);\n }\n return \"rgba(\" + rgba[0] + \", \" + rgba[1] + \", \" + rgba[2]\n + \", \" + alpha + \")\";\n}\n\nfunction percentString(rgba, alpha) {\n if (alpha < 1 || (rgba[3] && rgba[3] < 1)) {\n return percentaString(rgba, alpha);\n }\n var r = Math.round(rgba[0]/255 * 100),\n g = Math.round(rgba[1]/255 * 100),\n b = Math.round(rgba[2]/255 * 100);\n\n return \"rgb(\" + r + \"%, \" + g + \"%, \" + b + \"%)\";\n}\n\nfunction percentaString(rgba, alpha) {\n var r = Math.round(rgba[0]/255 * 100),\n g = Math.round(rgba[1]/255 * 100),\n b = Math.round(rgba[2]/255 * 100);\n return \"rgba(\" + r + \"%, \" + g + \"%, \" + b + \"%, \" + (alpha || rgba[3] || 1) + \")\";\n}\n\nfunction hslString(hsla, alpha) {\n if (alpha < 1 || (hsla[3] && hsla[3] < 1)) {\n return hslaString(hsla, alpha);\n }\n return \"hsl(\" + hsla[0] + \", \" + hsla[1] + \"%, \" + hsla[2] + \"%)\";\n}\n\nfunction hslaString(hsla, alpha) {\n if (alpha === undefined) {\n alpha = (hsla[3] !== undefined ? hsla[3] : 1);\n }\n return \"hsla(\" + hsla[0] + \", \" + hsla[1] + \"%, \" + hsla[2] + \"%, \"\n + alpha + \")\";\n}\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\nfunction hwbString(hwb, alpha) {\n if (alpha === undefined) {\n alpha = (hwb[3] !== undefined ? hwb[3] : 1);\n }\n return \"hwb(\" + hwb[0] + \", \" + hwb[1] + \"%, \" + hwb[2] + \"%\"\n + (alpha !== undefined && alpha !== 1 ? \", \" + alpha : \"\") + \")\";\n}\n\nfunction keyword(rgb) {\n return reverseNames[rgb.slice(0, 3)];\n}\n\n// helpers\nfunction scale(num, min, max) {\n return Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n var str = num.toString(16).toUpperCase();\n return (str.length < 2) ? \"0\" + str : str;\n}\n\n\n//create a list of reverse color names\nvar reverseNames = {};\nfor (var name in colorNames) {\n reverseNames[colorNames[name]] = name;\n}\n\n},{\"color-name\":4}],6:[function(require,module,exports){\n/* MIT license */\nvar convert = require('color-convert');\nvar string = require('color-string');\n\nvar Color = function (obj) {\n\tif (obj instanceof Color) {\n\t\treturn obj;\n\t}\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(obj);\n\t}\n\n\tthis.values = {\n\t\trgb: [0, 0, 0],\n\t\thsl: [0, 0, 0],\n\t\thsv: [0, 0, 0],\n\t\thwb: [0, 0, 0],\n\t\tcmyk: [0, 0, 0, 0],\n\t\talpha: 1\n\t};\n\n\t// parse Color() argument\n\tvar vals;\n\tif (typeof obj === 'string') {\n\t\tvals = string.getRgba(obj);\n\t\tif (vals) {\n\t\t\tthis.setValues('rgb', vals);\n\t\t} else if (vals = string.getHsla(obj)) {\n\t\t\tthis.setValues('hsl', vals);\n\t\t} else if (vals = string.getHwb(obj)) {\n\t\t\tthis.setValues('hwb', vals);\n\t\t} else {\n\t\t\tthrow new Error('Unable to parse color from string \"' + obj + '\"');\n\t\t}\n\t} else if (typeof obj === 'object') {\n\t\tvals = obj;\n\t\tif (vals.r !== undefined || vals.red !== undefined) {\n\t\t\tthis.setValues('rgb', vals);\n\t\t} else if (vals.l !== undefined || vals.lightness !== undefined) {\n\t\t\tthis.setValues('hsl', vals);\n\t\t} else if (vals.v !== undefined || vals.value !== undefined) {\n\t\t\tthis.setValues('hsv', vals);\n\t\t} else if (vals.w !== undefined || vals.whiteness !== undefined) {\n\t\t\tthis.setValues('hwb', vals);\n\t\t} else if (vals.c !== undefined || vals.cyan !== undefined) {\n\t\t\tthis.setValues('cmyk', vals);\n\t\t} else {\n\t\t\tthrow new Error('Unable to parse color from object ' + JSON.stringify(obj));\n\t\t}\n\t}\n};\n\nColor.prototype = {\n\trgb: function () {\n\t\treturn this.setSpace('rgb', arguments);\n\t},\n\thsl: function () {\n\t\treturn this.setSpace('hsl', arguments);\n\t},\n\thsv: function () {\n\t\treturn this.setSpace('hsv', arguments);\n\t},\n\thwb: function () {\n\t\treturn this.setSpace('hwb', arguments);\n\t},\n\tcmyk: function () {\n\t\treturn this.setSpace('cmyk', arguments);\n\t},\n\n\trgbArray: function () {\n\t\treturn this.values.rgb;\n\t},\n\thslArray: function () {\n\t\treturn this.values.hsl;\n\t},\n\thsvArray: function () {\n\t\treturn this.values.hsv;\n\t},\n\thwbArray: function () {\n\t\tif (this.values.alpha !== 1) {\n\t\t\treturn this.values.hwb.concat([this.values.alpha]);\n\t\t}\n\t\treturn this.values.hwb;\n\t},\n\tcmykArray: function () {\n\t\treturn this.values.cmyk;\n\t},\n\trgbaArray: function () {\n\t\tvar rgb = this.values.rgb;\n\t\treturn rgb.concat([this.values.alpha]);\n\t},\n\thslaArray: function () {\n\t\tvar hsl = this.values.hsl;\n\t\treturn hsl.concat([this.values.alpha]);\n\t},\n\talpha: function (val) {\n\t\tif (val === undefined) {\n\t\t\treturn this.values.alpha;\n\t\t}\n\t\tthis.setValues('alpha', val);\n\t\treturn this;\n\t},\n\n\tred: function (val) {\n\t\treturn this.setChannel('rgb', 0, val);\n\t},\n\tgreen: function (val) {\n\t\treturn this.setChannel('rgb', 1, val);\n\t},\n\tblue: function (val) {\n\t\treturn this.setChannel('rgb', 2, val);\n\t},\n\thue: function (val) {\n\t\tif (val) {\n\t\t\tval %= 360;\n\t\t\tval = val < 0 ? 360 + val : val;\n\t\t}\n\t\treturn this.setChannel('hsl', 0, val);\n\t},\n\tsaturation: function (val) {\n\t\treturn this.setChannel('hsl', 1, val);\n\t},\n\tlightness: function (val) {\n\t\treturn this.setChannel('hsl', 2, val);\n\t},\n\tsaturationv: function (val) {\n\t\treturn this.setChannel('hsv', 1, val);\n\t},\n\twhiteness: function (val) {\n\t\treturn this.setChannel('hwb', 1, val);\n\t},\n\tblackness: function (val) {\n\t\treturn this.setChannel('hwb', 2, val);\n\t},\n\tvalue: function (val) {\n\t\treturn this.setChannel('hsv', 2, val);\n\t},\n\tcyan: function (val) {\n\t\treturn this.setChannel('cmyk', 0, val);\n\t},\n\tmagenta: function (val) {\n\t\treturn this.setChannel('cmyk', 1, val);\n\t},\n\tyellow: function (val) {\n\t\treturn this.setChannel('cmyk', 2, val);\n\t},\n\tblack: function (val) {\n\t\treturn this.setChannel('cmyk', 3, val);\n\t},\n\n\thexString: function () {\n\t\treturn string.hexString(this.values.rgb);\n\t},\n\trgbString: function () {\n\t\treturn string.rgbString(this.values.rgb, this.values.alpha);\n\t},\n\trgbaString: function () {\n\t\treturn string.rgbaString(this.values.rgb, this.values.alpha);\n\t},\n\tpercentString: function () {\n\t\treturn string.percentString(this.values.rgb, this.values.alpha);\n\t},\n\thslString: function () {\n\t\treturn string.hslString(this.values.hsl, this.values.alpha);\n\t},\n\thslaString: function () {\n\t\treturn string.hslaString(this.values.hsl, this.values.alpha);\n\t},\n\thwbString: function () {\n\t\treturn string.hwbString(this.values.hwb, this.values.alpha);\n\t},\n\tkeyword: function () {\n\t\treturn string.keyword(this.values.rgb, this.values.alpha);\n\t},\n\n\trgbNumber: function () {\n\t\treturn (this.values.rgb[0] << 16) | (this.values.rgb[1] << 8) | this.values.rgb[2];\n\t},\n\n\tluminosity: function () {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tvar rgb = this.values.rgb;\n\t\tvar lum = [];\n\t\tfor (var i = 0; i < rgb.length; i++) {\n\t\t\tvar chan = rgb[i] / 255;\n\t\t\tlum[i] = (chan <= 0.03928) ? chan / 12.92 : Math.pow(((chan + 0.055) / 1.055), 2.4);\n\t\t}\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast: function (color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tvar lum1 = this.luminosity();\n\t\tvar lum2 = color2.luminosity();\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel: function (color2) {\n\t\tvar contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7.1) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tdark: function () {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tvar rgb = this.values.rgb;\n\t\tvar yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n\t\treturn yiq < 128;\n\t},\n\n\tlight: function () {\n\t\treturn !this.dark();\n\t},\n\n\tnegate: function () {\n\t\tvar rgb = [];\n\t\tfor (var i = 0; i < 3; i++) {\n\t\t\trgb[i] = 255 - this.values.rgb[i];\n\t\t}\n\t\tthis.setValues('rgb', rgb);\n\t\treturn this;\n\t},\n\n\tlighten: function (ratio) {\n\t\tthis.values.hsl[2] += this.values.hsl[2] * ratio;\n\t\tthis.setValues('hsl', this.values.hsl);\n\t\treturn this;\n\t},\n\n\tdarken: function (ratio) {\n\t\tthis.values.hsl[2] -= this.values.hsl[2] * ratio;\n\t\tthis.setValues('hsl', this.values.hsl);\n\t\treturn this;\n\t},\n\n\tsaturate: function (ratio) {\n\t\tthis.values.hsl[1] += this.values.hsl[1] * ratio;\n\t\tthis.setValues('hsl', this.values.hsl);\n\t\treturn this;\n\t},\n\n\tdesaturate: function (ratio) {\n\t\tthis.values.hsl[1] -= this.values.hsl[1] * ratio;\n\t\tthis.setValues('hsl', this.values.hsl);\n\t\treturn this;\n\t},\n\n\twhiten: function (ratio) {\n\t\tthis.values.hwb[1] += this.values.hwb[1] * ratio;\n\t\tthis.setValues('hwb', this.values.hwb);\n\t\treturn this;\n\t},\n\n\tblacken: function (ratio) {\n\t\tthis.values.hwb[2] += this.values.hwb[2] * ratio;\n\t\tthis.setValues('hwb', this.values.hwb);\n\t\treturn this;\n\t},\n\n\tgreyscale: function () {\n\t\tvar rgb = this.values.rgb;\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tvar val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\tthis.setValues('rgb', [val, val, val]);\n\t\treturn this;\n\t},\n\n\tclearer: function (ratio) {\n\t\tthis.setValues('alpha', this.values.alpha - (this.values.alpha * ratio));\n\t\treturn this;\n\t},\n\n\topaquer: function (ratio) {\n\t\tthis.setValues('alpha', this.values.alpha + (this.values.alpha * ratio));\n\t\treturn this;\n\t},\n\n\trotate: function (degrees) {\n\t\tvar hue = this.values.hsl[0];\n\t\thue = (hue + degrees) % 360;\n\t\thue = hue < 0 ? 360 + hue : hue;\n\t\tthis.values.hsl[0] = hue;\n\t\tthis.setValues('hsl', this.values.hsl);\n\t\treturn this;\n\t},\n\n\t/**\n\t * Ported from sass implementation in C\n\t * https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t */\n\tmix: function (mixinColor, weight) {\n\t\tvar color1 = this;\n\t\tvar color2 = mixinColor;\n\t\tvar p = weight === undefined ? 0.5 : weight;\n\n\t\tvar w = 2 * p - 1;\n\t\tvar a = color1.alpha() - color2.alpha();\n\n\t\tvar w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n\t\tvar w2 = 1 - w1;\n\n\t\treturn this\n\t\t\t.rgb(\n\t\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\t\tw1 * color1.blue() + w2 * color2.blue()\n\t\t\t)\n\t\t\t.alpha(color1.alpha() * p + color2.alpha() * (1 - p));\n\t},\n\n\ttoJSON: function () {\n\t\treturn this.rgb();\n\t},\n\n\tclone: function () {\n\t\treturn new Color(this.rgb());\n\t}\n};\n\nColor.prototype.getValues = function (space) {\n\tvar vals = {};\n\n\tfor (var i = 0; i < space.length; i++) {\n\t\tvals[space.charAt(i)] = this.values[space][i];\n\t}\n\n\tif (this.values.alpha !== 1) {\n\t\tvals.a = this.values.alpha;\n\t}\n\n\t// {r: 255, g: 255, b: 255, a: 0.4}\n\treturn vals;\n};\n\nColor.prototype.setValues = function (space, vals) {\n\tvar spaces = {\n\t\trgb: ['red', 'green', 'blue'],\n\t\thsl: ['hue', 'saturation', 'lightness'],\n\t\thsv: ['hue', 'saturation', 'value'],\n\t\thwb: ['hue', 'whiteness', 'blackness'],\n\t\tcmyk: ['cyan', 'magenta', 'yellow', 'black']\n\t};\n\n\tvar maxes = {\n\t\trgb: [255, 255, 255],\n\t\thsl: [360, 100, 100],\n\t\thsv: [360, 100, 100],\n\t\thwb: [360, 100, 100],\n\t\tcmyk: [100, 100, 100, 100]\n\t};\n\n\tvar i;\n\tvar alpha = 1;\n\tif (space === 'alpha') {\n\t\talpha = vals;\n\t} else if (vals.length) {\n\t\t// [10, 10, 10]\n\t\tthis.values[space] = vals.slice(0, space.length);\n\t\talpha = vals[space.length];\n\t} else if (vals[space.charAt(0)] !== undefined) {\n\t\t// {r: 10, g: 10, b: 10}\n\t\tfor (i = 0; i < space.length; i++) {\n\t\t\tthis.values[space][i] = vals[space.charAt(i)];\n\t\t}\n\n\t\talpha = vals.a;\n\t} else if (vals[spaces[space][0]] !== undefined) {\n\t\t// {red: 10, green: 10, blue: 10}\n\t\tvar chans = spaces[space];\n\n\t\tfor (i = 0; i < space.length; i++) {\n\t\t\tthis.values[space][i] = vals[chans[i]];\n\t\t}\n\n\t\talpha = vals.alpha;\n\t}\n\n\tthis.values.alpha = Math.max(0, Math.min(1, (alpha === undefined ? this.values.alpha : alpha)));\n\n\tif (space === 'alpha') {\n\t\treturn false;\n\t}\n\n\tvar capped;\n\n\t// cap values of the space prior converting all values\n\tfor (i = 0; i < space.length; i++) {\n\t\tcapped = Math.max(0, Math.min(maxes[space][i], this.values[space][i]));\n\t\tthis.values[space][i] = Math.round(capped);\n\t}\n\n\t// convert to all the other color spaces\n\tfor (var sname in spaces) {\n\t\tif (sname !== space) {\n\t\t\tthis.values[sname] = convert[space][sname](this.values[space]);\n\t\t}\n\n\t\t// cap values\n\t\tfor (i = 0; i < sname.length; i++) {\n\t\t\tcapped = Math.max(0, Math.min(maxes[sname][i], this.values[sname][i]));\n\t\t\tthis.values[sname][i] = Math.round(capped);\n\t\t}\n\t}\n\n\treturn true;\n};\n\nColor.prototype.setSpace = function (space, args) {\n\tvar vals = args[0];\n\n\tif (vals === undefined) {\n\t\t// color.rgb()\n\t\treturn this.getValues(space);\n\t}\n\n\t// color.rgb(10, 10, 10)\n\tif (typeof vals === 'number') {\n\t\tvals = Array.prototype.slice.call(args);\n\t}\n\n\tthis.setValues(space, vals);\n\treturn this;\n};\n\nColor.prototype.setChannel = function (space, index, val) {\n\tif (val === undefined) {\n\t\t// color.red()\n\t\treturn this.values[space][index];\n\t} else if (val === this.values[space][index]) {\n\t\t// color.red(color.red())\n\t\treturn this;\n\t}\n\n\t// color.red(100)\n\tthis.values[space][index] = val;\n\tthis.setValues(space, this.values[space]);\n\n\treturn this;\n};\n\nmodule.exports = Color;\n\n},{\"color-convert\":3,\"color-string\":5}],7:[function(require,module,exports){\nconst color = require('color');\r\n\r\n\r\n// DEV: These constants will be transformed into string constants by browserify\r\nconst BASE_CSS = \".gmusic-theme #material-app-bar {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme #material-app-bar .tab-text,\\n.gmusic-theme [data-id=\\\"prev-history\\\"],\\n.gmusic-theme [data-id=\\\"next-history\\\"],\\n.gmusic-theme #searchIcon {\\n color: <> !important;\\n}\\n\\n.gmusic-theme #material-one-left #left-nav-open-button svg {\\n fill: <> !important;\\n}\\n\\nbody.gmusic-theme {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme #drawer,\\n.gmusic-theme .material-card {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme #nav-container,\\n.gmusic-theme #loading-overlay,\\n.gmusic-theme #loading-progress,\\n.gmusic-theme #loading-progress-bar {\\n background: <> !important;\\n}\\n\\n.gmusic-theme #loading-progress-bar {\\n border: none !important;\\n}\\n\\n.gmusic-theme .nav-toolbar,\\n.gmusic-theme .material-card .details,\\n.gmusic-theme .material-card .image-wrapper,\\n.gmusic-theme .situations-filter {\\n background: <> !important;\\n}\\n\\n.gmusic-theme #nav {\\n background: <> !important;\\n color: <> !important;\\n}\\n\\n.gmusic-theme #player,\\n.gmusic-theme .player-rating-container,\\n.gmusic-theme #player.material .now-playing-actions paper-icon-button {\\n color: <> !important;\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme #player.material paper-icon-button.playing > iron-icon::before {\\n content: '' !important;\\n display: block !important;\\n position: absolute !important;\\n background: <> !important;\\n z-index: -1 !important;\\n border-radius: 100% !important;\\n height: calc(100% - 16px) !important;\\n width: calc(100% - 16px) !important;\\n top: 8px !important;\\n left: 8px !important;\\n}\\n\\n.gmusic-theme #player.material:hover #material-player-progress #sliderContainer:not(.disabled) #sliderBar #progressContainer,\\n.gmusic-theme .playlist-view .editable:hover {\\n background: <> !important;\\n}\\n\\n.gmusic-theme .cluster-text-protection::before,\\n.gmusic-theme .cluster-text-protection {\\n background: transparent !important;\\n}\\n\\n.gmusic-theme .title,\\n.gmusic-theme .situation-title,\\n.gmusic-theme .recommended-header {\\n color: <> !important;\\n}\\n\\n.gmusic-theme .nav-item-container {\\n color: <> !important;\\n}\\n\\n.gmusic-theme #nav_collections .nav-item-container:focus,\\n.gmusic-theme .nav-item-container:focus,\\n.gmusic-theme .nav-item-container:hover,\\n.gmusic-theme .nav-item-container.selected {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme .nav-item-container:not(:focus):hover iron-icon {\\n color: <> !important;\\n}\\n\\n.gmusic-theme #nav_collections .nav-item-container:focus iron-icon,\\n.gmusic-theme .nav-item-container:focus iron-icon {\\n color: <> !important;\\n}\\n\\n.gmusic-theme .fade-out:after {\\n display: none !important;\\n}\\n\\n.gmusic-theme .column.col-0 .material-card:first-child .image-wrapper {\\n padding-top: 0 !important;\\n}\\n\\n.gmusic-theme .song-row .song-indicator {\\n background-image: url('ani_equalizer_white_x2.gif') !important;\\n background-size: 28px 28px !important;\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme .song-row:hover .song-indicator {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme .material-detail-view .has-hero-image,\\n.gmusic-theme .song-row td,\\n.gmusic-theme .song-row td > *,\\n.gmusic-theme .upload-progress-row td,\\n.gmusic-theme .song-row.selected-song-row td {\\n background-color: <> !important;\\n color: <> !important;\\n}\\n\\n.gmusic-theme .song-row.selected-song-row .song-indicator,\\n.gmusic-theme .song-row.selected-song-row .title-right-items,\\n.gmusic-theme .song-row.selected-song-row .content,\\n.gmusic-theme .song-row.selected-song-row .song-indicator[data-playback-status=\\\"paused\\\"],\\n.gmusic-theme .song-row.selected-song-row .song-indicator[data-playback-status=\\\"loading\\\"],\\n.gmusic-theme .song-row.selected-song-row [data-col=\\\"index\\\"] .hover-button[data-id=\\\"play\\\"],\\n.gmusic-theme .song-row.selected-song-row [data-col=\\\"track\\\"] .hover-button[data-id=\\\"play\\\"],\\n.gmusic-theme .song-row.selected-song-row td,\\n.gmusic-theme .song-row.selected-song-row td > * {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme .song-row:hover,\\n.gmusic-theme .song-row.hover .song-indicator,\\n.gmusic-theme .song-row.hover .title-right-items,\\n.gmusic-theme .song-row.hover .content,\\n.gmusic-theme .song-row.hover .song-indicator[data-playback-status=\\\"paused\\\"],\\n.gmusic-theme .song-row.hover .song-indicator[data-playback-status=\\\"loading\\\"],\\n.gmusic-theme .song-row.hover [data-col=\\\"index\\\"] .hover-button[data-id=\\\"play\\\"],\\n.gmusic-theme .song-row.hover [data-col=\\\"track\\\"] .hover-button[data-id=\\\"play\\\"],\\n.gmusic-theme .song-row.hover td,\\n.gmusic-theme .song-row.hover td > * {\\n background-color: <> !important;\\n}\\n\\nbody.gmusic-theme.material,\\n.gmusic-theme .material-detail-view .material-container-details .info .description,\\n.gmusic-theme .song-table th {\\n color: #efefef !important;\\n}\\n\\n.gmusic-theme .song-row.hover [data-col=\\\"track\\\"] .hover-button[data-id=\\\"play\\\"] {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme .song-row [data-col=\\\"index\\\"] .song-indicator {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme .song-row.hover [data-col=\\\"index\\\"] .song-indicator,\\n.gmusic-theme .song-row.selected-song-row [data-col=\\\"index\\\"] .song-indicator {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme .song-row.selected-song-row.hover [data-col=\\\"index\\\"] .hover-button[data-id=\\\"play\\\"] {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme .songlist-container {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme .nav-section-divider {\\n border-bottom: 1px solid <> !important;\\n}\\n\\n.gmusic-theme .goog-menu,\\n.gmusic-theme .now-playing-menu .goog-menuitem,\\n.gmusic-theme .now-playing-menu .goog-submenu,\\n.gmusic-theme .now-playing-menu .goog-submenu .goog-submenu-arrow,\\n.gmusic-theme .goog-menuitem {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme .goog-menu .goog-menuitem .goog-menuitem-content,\\n.gmusic-theme .goog-menuitem-highlight .goog-menuitem-content .goog-submenu-arrow,\\n.gmusic-theme .goog-menuitem-highlight .goog-menuitem-content {\\n color: <> !important;\\n}\\n\\n.gmusic-theme .goog-menu .goog-menuitem.selected .goog-menuitem-content {\\n color: <> !important;\\n}\\n\\n.gmusic-theme .goog-menu .goog-menuitem:hover,\\n.gmusic-theme .goog-menu .goog-menuseparator {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme .material-detail-view .artist-details .bio-wrapper .bio {\\n color: <> !important;\\n}\\n\\n.gmusic-theme .song-row.hover td a,\\n.gmusic-theme .song-row.selected-song-row td a {\\n color: <> !important;\\n}\\n\\n.gmusic-theme paper-action-dialog {\\n background: <> !important;\\n color: <> !important;\\n}\\n\\n.gmusic-theme .settings-card {\\n background-color: <> !important;\\n color: <> !important;\\n}\\n\\n.gmusic-theme #queue-overlay {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme #queue-overlay::after {\\n border-color: transparent transparent <> <> !important;\\n}\\n\\n.gmusic-theme .upload-dialog-content {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme .upload-dialog-description {\\n color: <> !important;\\n}\\n\\n.gmusic-theme .song-row:hover [data-col=\\\"index\\\"] .hover-button[data-id=\\\"play\\\"] {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme .goog-menuheader {\\n color: <> !important;\\n}\\n\\n.gmusic-theme .paper-progress-1 #primaryProgress.paper-progress {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme .album-view .material-container-details .info .title .explicit {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme .paper-input-container-0 .input-content.label-is-highlighted.paper-input-container label,\\n.gmusic-theme .paper-input-container-0 .input-content.label-is-highlighted.paper-input-container .paper-input-label {\\n color: <> !important;\\n}\\n\\n.gmusic-theme .paper-input-container-0 .input-content.paper-input-container input,\\n.gmusic-theme .paper-input-container-0 .input-content.paper-input-container textarea,\\n.gmusic-theme .paper-input-container-0 .input-content.paper-input-container iron-autogrow-textarea,\\n.gmusic-theme .paper-input-container-0 .input-content.paper-input-container .paper-input-input,\\n.gmusic-theme .material-share-options #sharing-option-label {\\n color: <> !important;\\n}\\n\\n.gmusic-theme .paper-input-container-0 .add-on-content.is-highlighted.paper-input-container * {\\n color: <> !important;\\n}\\n\\n.gmusic-theme .material-container-details paper-fab,\\n.gmusic-theme #current-loading-progress {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme #player.material .material-player-middle paper-icon-button[data-id=\\\"play-pause\\\"]:not([disabled]) {\\n color: <> !important;\\n}\\n\\n.gmusic-theme #loading-overlay.material[data-type=\\\"full-loading-overlay\\\"],\\n.gmusic-theme #loading-overlay.material[data-type=\\\"regular-loading-overlay\\\"] {\\n background: <> !important;\\n}\\n\\n.gmusic-theme iron-overlay-backdrop {\\n background: <> !important;\\n}\\n\\n.gmusic-theme #loading-overlay.material paper-spinner .circle,\\n.gmusic-theme #loading-overlay.material paper-spinner-lite .circle {\\n border-color: <><> !important;\\n}\\n\\n.gmusic-theme a.primary {\\n color: <> !important;\\n}\\n\\n.gmusic-theme paper-button.material-primary {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme paper-checkbox #checkbox.checked {\\n border-color: <> !important;\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme paper-checkbox #ink {\\n color: <> !important;\\n}\\n\\n.gmusic-theme paper-checkbox #checkboxLabel {\\n color: <> !important;\\n}\\n\\n.gmusic-theme paper-toggle-button[checked] .toggle-button {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme paper-toggle-button[checked] .toggle-bar {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme paper-toggle-button[checked] .toggle-ink {\\n color: <> !important;\\n}\\n\\n.gmusic-theme .paper-slider-0 #sliderKnobInner.paper-slider,\\n.gmusic-theme #sliderKnobInner.paper-slider,\\n.gmusic-theme .paper-progress-0 #primaryProgress.paper-progress {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme .nav-item-container.selected iron-icon {\\n color: <> !important;\\n}\\n\\n.gmusic-theme .upload-dialog-title {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme a,\\n.gmusic-theme .simple-dialog a {\\n color: <> !important;\\n}\\n\\n.gmusic-theme .song-table [data-col=\\\"title\\\"],\\n.gmusic-theme .song-table.mini [data-col=\\\"song-details\\\"] .song-title {\\n color: <> !important;\\n}\\n\\n.gmusic-theme .subcategories-list,\\n.gmusic-theme .material-detail-view .station-container-content-wrapper .material-container-details {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme .material-list li a:hover,\\n.gmusic-theme .material-list li a:focus {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme .paper-input-container-0 .focused-line.paper-input-container {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme paper-action-dialog paper-button,\\n.gmusic-theme paper-dialog .buttons paper-button,\\n.gmusic-theme .share-buttons .share-button .button-label {\\n color: <> !important;\\n}\\n\\n.gmusic-theme .song-row:hover td,\\n.gmusic-theme .song-row:hover td > * {\\n background: <> !important;\\n}\\n\\n.gmusic-theme .song-row:hover [data-col=\\\"track\\\"] .hover-button[data-id=\\\"play\\\"] {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme .rating-container li {\\n -webkit-filter: invert(1) !important;\\n}\\n\\n.gmusic-theme #player.material .material-player-middle paper-icon-button[data-id=\\\"repeat\\\"][value=\\\"LIST_REPEAT\\\"],\\n.gmusic-theme #player.material .material-player-middle paper-icon-button[data-id=\\\"repeat\\\"][value=\\\"SINGLE_REPEAT\\\"],\\n.gmusic-theme #player.material .material-player-middle paper-icon-button[data-id=\\\"shuffle\\\"][value=\\\"ALL_SHUFFLE\\\"],\\n.gmusic-theme #player.material .material-player-middle paper-icon-button[data-id=\\\"repeat\\\"][value=\\\"LIST_REPEAT\\\"],\\n.gmusic-theme #player.material .material-player-middle paper-icon-button[data-id=\\\"repeat\\\"][value=\\\"SINGLE_REPEAT\\\"],\\n.gmusic-theme #player.material .material-player-middle paper-icon-button[data-id=\\\"shuffle\\\"][value=\\\"ALL_SHUFFLE\\\"] {\\n color: <> !important;\\n}\\n\\n.gmusic-theme .cluster .lane-button core-icon,\\n.gmusic-theme .cluster .lane-button iron-icon,\\n.gmusic-theme #player.material .material-player-middle paper-icon-button[data-id=\\\"repeat\\\"].active,\\n.gmusic-theme #player.material .material-player-middle paper-icon-button[data-id=\\\"shuffle\\\"].active,\\n.gmusic-theme #player.material #material-player-right-wrapper paper-icon-button[data-id=\\\"queue\\\"].opened {\\n color: <> !important;\\n}\\n\\n.gmusic-theme .cluster .header .cluster-title,\\n.gmusic-theme .cluster .header .subtitle {\\n color: <> !important;\\n}\\n\\n.gmusic-theme .song-row .explicit,\\n.gmusic-theme .material-card .explicit {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme .material-detail-view .material-container-details .read-more-button {\\n color: <> !important;\\n}\\n\\n.gmusic-theme paper-dialog {\\n background: <> !important;\\n color: <> !important;\\n}\\n\\n.gmusic-theme .simple-dialog {\\n background-color: <> !important;\\n border-color: <> !important;\\n}\\n\\n.gmusic-theme .simple-dialog,\\n.gmusic-theme .simple-dialog > div {\\n background-color: <> !important;\\n color: <> !important;\\n}\\n\\n.gmusic-theme .goog-buttonset-default {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme button.goog-buttonset-default,\\n.gmusic-theme button.goog-buttonset-default:hover {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme .top-charts-view .song-row [data-col=\\\"index\\\"] .column-content,\\n.gmusic-theme .material-card .details .left-items .index,\\n.gmusic-theme .more-songs-container {\\n color: <> !important;\\n}\\n\\n.gmusic-theme .material-detail-view .top-tracks {\\n background-color: <> !important;\\n}\";\r\nconst BASE_SVG = \"\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\";\r\nconst CONSTANTS = require('../lib/_constants');\r\n\r\nwindow.GMusicTheme = class GMusicTheme {\r\n /**\r\n * Constructor for a new Google Music Theme API.\r\n *\r\n * @param {Object} - A colors object containing `backPrimary`, `backSecondary`,\r\n * `backHighlight`, `forePrimary`, `foreSecondary` attributes\r\n * any attribute not included will not be overriden\r\n */\r\n constructor(options = {}) {\r\n // DEV: Use the colors specified in the options or the default if it isn't set\r\n this.BACK_PRIMARY = '#222326';\r\n this.BACK_SECONDARY = '#121314';\r\n this.BACK_HIGHLIGHT = '#615F59';\r\n this.FORE_PRIMARY = '#FFFFFF';\r\n this.FORE_SECONDARY = '#1ED760';\r\n\r\n this.enabled = false;\r\n if (options.enabled) {\r\n this.enable();\r\n }\r\n\r\n // DEV: This is the style element where we put our custom CSS\r\n this.styleElement = document.createElement('style');\r\n document.body.appendChild(this.styleElement);\r\n\r\n // DEV: updateTheme calls redrawTheme\r\n this.updateTheme(options);\r\n }\r\n\r\n /**\r\n * Regenerates the custom CSS and and updates the SVG logo\r\n */\r\n redrawTheme() {\r\n this._refreshStyleSheet();\r\n this._drawLogo();\r\n }\r\n\r\n /**\r\n * Enables the custom theme\r\n */\r\n enable() {\r\n document.body.classList.add(CONSTANTS.CLASS_NAMESPACE);\r\n this.enabled = true;\r\n this._drawLogo();\r\n }\r\n\r\n /**\r\n * Disables the custom theme\r\n */\r\n disable() {\r\n document.body.classList.remove(CONSTANTS.CLASS_NAMESPACE);\r\n this.enabled = false;\r\n this._drawLogo();\r\n }\r\n\r\n /**\r\n * Updates the custom colors used in the theme and redraws the custom CSS\r\n *\r\n * @param {Object} - A colors object containing `backPrimary`, `backSecondary`,\r\n * `backHighlight`, `forePrimary`, `foreSecondary` attributes\r\n * any attribute not included will not be overriden\r\n */\r\n updateTheme(colorObject) {\r\n this.BACK_PRIMARY = colorObject.backPrimary || this.BACK_PRIMARY;\r\n this.BACK_SECONDARY = colorObject.backSecondary || this.BACK_SECONDARY;\r\n this.BACK_HIGHLIGHT = colorObject.backHighlight || this.BACK_HIGHLIGHT;\r\n this.FORE_PRIMARY = colorObject.forePrimary || this.FORE_PRIMARY;\r\n this.FORE_SECONDARY = colorObject.foreSecondary || this.FORE_SECONDARY;\r\n this.redrawTheme();\r\n }\r\n\r\n _drawLogo() {\r\n const logo = document.querySelectorAll('.menu-logo')[0];\r\n const normalSVG = BASE_SVG;\r\n const customSVG = normalSVG.replace('#EE6B00', this.FORE_SECONDARY).replace('id=\"normalSVGIcon\"', 'id=\"customSVGIcon\"');\r\n let parent;\r\n let tmpSVG;\r\n\r\n if (logo) {\r\n parent = logo.parentNode;\r\n if (this.logoObserver) {\r\n this.logoObserver.disconnect();\r\n delete this.logoObserver;\r\n }\r\n\r\n if (this.enabled) {\r\n // DEV: Only update the SVG element if we need to\r\n if (logo.nodeName === 'IMG' || logo.id === 'normalSVGIcon' || logo.getAttribute('current-custom') !== this.FORE_SECONDARY) {\r\n parent.removeChild(logo);\r\n tmpSVG = (new DOMParser()).parseFromString(customSVG, 'text/xml').firstChild;\r\n tmpSVG.setAttribute('current-custom', this.FORE_SECONDARY);\r\n parent.appendChild(tmpSVG);\r\n }\r\n } else {\r\n // DEV: Only update the SVG element if we need to\r\n if (logo.nodeName === 'IMG' || logo.id === 'customSVGIcon') {\r\n parent.removeChild(logo);\r\n parent.appendChild((new DOMParser()).parseFromString(normalSVG, 'text/xml').firstChild);\r\n }\r\n }\r\n\r\n // DEV: Google sometimes changes its logo by itself, we need to monitor this\r\n this.logoObserver = new MutationObserver(() => {\r\n this._drawLogo();\r\n });\r\n this.logoObserver.observe(parent, {\r\n childList: true,\r\n attributes: true,\r\n subtree: true,\r\n });\r\n } else {\r\n // DEV: If the logo isn't ready yet wait a few milliseconds and try again\r\n setTimeout(this._drawLogo, 10);\r\n }\r\n }\r\n\r\n _refreshStyleSheet() {\r\n // DEV: Take the current style string and put it in the style element in the DOM\r\n this.styleElement.innerHTML = this._substituteColors(BASE_CSS);\r\n }\r\n\r\n _rgba(colorCode, opacity) {\r\n return color(colorCode).clearer(opacity).rgbString();\r\n }\r\n\r\n _substituteColors(styleString) {\r\n return styleString\r\n .replace(/<>/g, this.BACK_PRIMARY)\r\n .replace(/<>/g, this.BACK_SECONDARY)\r\n .replace(/<>/g, this.BACK_HIGHLIGHT)\r\n .replace(/<>/g, this.FORE_PRIMARY)\r\n .replace(/<>/g, this.FORE_SECONDARY)\r\n .replace(/<>/g, this._rgba(this.BACK_SECONDARY, 0.5))\r\n .replace(/<> \\!important/g, '');\r\n }\r\n};\r\n\n},{\"../lib/_constants\":1,\"color\":6}]},{},[7]);\n"]} \ No newline at end of file +{"version":3,"sources":["gmusic-theme.js"],"names":[],"mappings":"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","file":"gmusic-theme.js","sourcesContent":["(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 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n g = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n b = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n var x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n var y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n var z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n return [x * 100, y *100, z * 100];\n}\n\nfunction rgb2lab(rgb) {\n var xyz = rgb2xyz(rgb),\n x = xyz[0],\n y = xyz[1],\n z = xyz[2],\n l, a, b;\n\n x /= 95.047;\n y /= 100;\n z /= 108.883;\n\n x = x > 0.008856 ? Math.pow(x, 1/3) : (7.787 * x) + (16 / 116);\n y = y > 0.008856 ? Math.pow(y, 1/3) : (7.787 * y) + (16 / 116);\n z = z > 0.008856 ? Math.pow(z, 1/3) : (7.787 * z) + (16 / 116);\n\n l = (116 * y) - 16;\n a = 500 * (x - y);\n b = 200 * (y - z);\n\n return [l, a, b];\n}\n\nfunction rgb2lch(args) {\n return lab2lch(rgb2lab(args));\n}\n\nfunction hsl2rgb(hsl) {\n var h = hsl[0] / 360,\n s = hsl[1] / 100,\n l = hsl[2] / 100,\n t1, t2, t3, rgb, val;\n\n if (s == 0) {\n val = l * 255;\n return [val, val, val];\n }\n\n if (l < 0.5)\n t2 = l * (1 + s);\n else\n t2 = l + s - l * s;\n t1 = 2 * l - t2;\n\n rgb = [0, 0, 0];\n for (var i = 0; i < 3; i++) {\n t3 = h + 1 / 3 * - (i - 1);\n t3 < 0 && t3++;\n t3 > 1 && t3--;\n\n if (6 * t3 < 1)\n val = t1 + (t2 - t1) * 6 * t3;\n else if (2 * t3 < 1)\n val = t2;\n else if (3 * t3 < 2)\n val = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n else\n val = t1;\n\n rgb[i] = val * 255;\n }\n\n return rgb;\n}\n\nfunction hsl2hsv(hsl) {\n var h = hsl[0],\n s = hsl[1] / 100,\n l = hsl[2] / 100,\n sv, v;\n\n if(l === 0) {\n // no need to do calc on black\n // also avoids divide by 0 error\n return [0, 0, 0];\n }\n\n l *= 2;\n s *= (l <= 1) ? l : 2 - l;\n v = (l + s) / 2;\n sv = (2 * s) / (l + s);\n return [h, sv * 100, v * 100];\n}\n\nfunction hsl2hwb(args) {\n return rgb2hwb(hsl2rgb(args));\n}\n\nfunction hsl2cmyk(args) {\n return rgb2cmyk(hsl2rgb(args));\n}\n\nfunction hsl2keyword(args) {\n return rgb2keyword(hsl2rgb(args));\n}\n\n\nfunction hsv2rgb(hsv) {\n var h = hsv[0] / 60,\n s = hsv[1] / 100,\n v = hsv[2] / 100,\n hi = Math.floor(h) % 6;\n\n var f = h - Math.floor(h),\n p = 255 * v * (1 - s),\n q = 255 * v * (1 - (s * f)),\n t = 255 * v * (1 - (s * (1 - f))),\n v = 255 * v;\n\n switch(hi) {\n case 0:\n return [v, t, p];\n case 1:\n return [q, v, p];\n case 2:\n return [p, v, t];\n case 3:\n return [p, q, v];\n case 4:\n return [t, p, v];\n case 5:\n return [v, p, q];\n }\n}\n\nfunction hsv2hsl(hsv) {\n var h = hsv[0],\n s = hsv[1] / 100,\n v = hsv[2] / 100,\n sl, l;\n\n l = (2 - s) * v;\n sl = s * v;\n sl /= (l <= 1) ? l : 2 - l;\n sl = sl || 0;\n l /= 2;\n return [h, sl * 100, l * 100];\n}\n\nfunction hsv2hwb(args) {\n return rgb2hwb(hsv2rgb(args))\n}\n\nfunction hsv2cmyk(args) {\n return rgb2cmyk(hsv2rgb(args));\n}\n\nfunction hsv2keyword(args) {\n return rgb2keyword(hsv2rgb(args));\n}\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nfunction hwb2rgb(hwb) {\n var h = hwb[0] / 360,\n wh = hwb[1] / 100,\n bl = hwb[2] / 100,\n ratio = wh + bl,\n i, v, f, n;\n\n // wh + bl cant be > 1\n if (ratio > 1) {\n wh /= ratio;\n bl /= ratio;\n }\n\n i = Math.floor(6 * h);\n v = 1 - bl;\n f = 6 * h - i;\n if ((i & 0x01) != 0) {\n f = 1 - f;\n }\n n = wh + f * (v - wh); // linear interpolation\n\n switch (i) {\n default:\n case 6:\n case 0: r = v; g = n; b = wh; break;\n case 1: r = n; g = v; b = wh; break;\n case 2: r = wh; g = v; b = n; break;\n case 3: r = wh; g = n; b = v; break;\n case 4: r = n; g = wh; b = v; break;\n case 5: r = v; g = wh; b = n; break;\n }\n\n return [r * 255, g * 255, b * 255];\n}\n\nfunction hwb2hsl(args) {\n return rgb2hsl(hwb2rgb(args));\n}\n\nfunction hwb2hsv(args) {\n return rgb2hsv(hwb2rgb(args));\n}\n\nfunction hwb2cmyk(args) {\n return rgb2cmyk(hwb2rgb(args));\n}\n\nfunction hwb2keyword(args) {\n return rgb2keyword(hwb2rgb(args));\n}\n\nfunction cmyk2rgb(cmyk) {\n var c = cmyk[0] / 100,\n m = cmyk[1] / 100,\n y = cmyk[2] / 100,\n k = cmyk[3] / 100,\n r, g, b;\n\n r = 1 - Math.min(1, c * (1 - k) + k);\n g = 1 - Math.min(1, m * (1 - k) + k);\n b = 1 - Math.min(1, y * (1 - k) + k);\n return [r * 255, g * 255, b * 255];\n}\n\nfunction cmyk2hsl(args) {\n return rgb2hsl(cmyk2rgb(args));\n}\n\nfunction cmyk2hsv(args) {\n return rgb2hsv(cmyk2rgb(args));\n}\n\nfunction cmyk2hwb(args) {\n return rgb2hwb(cmyk2rgb(args));\n}\n\nfunction cmyk2keyword(args) {\n return rgb2keyword(cmyk2rgb(args));\n}\n\n\nfunction xyz2rgb(xyz) {\n var x = xyz[0] / 100,\n y = xyz[1] / 100,\n z = xyz[2] / 100,\n r, g, b;\n\n r = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n g = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n b = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n // assume sRGB\n r = r > 0.0031308 ? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n : r = (r * 12.92);\n\n g = g > 0.0031308 ? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n : g = (g * 12.92);\n\n b = b > 0.0031308 ? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)\n : b = (b * 12.92);\n\n r = Math.min(Math.max(0, r), 1);\n g = Math.min(Math.max(0, g), 1);\n b = Math.min(Math.max(0, b), 1);\n\n return [r * 255, g * 255, b * 255];\n}\n\nfunction xyz2lab(xyz) {\n var x = xyz[0],\n y = xyz[1],\n z = xyz[2],\n l, a, b;\n\n x /= 95.047;\n y /= 100;\n z /= 108.883;\n\n x = x > 0.008856 ? Math.pow(x, 1/3) : (7.787 * x) + (16 / 116);\n y = y > 0.008856 ? Math.pow(y, 1/3) : (7.787 * y) + (16 / 116);\n z = z > 0.008856 ? Math.pow(z, 1/3) : (7.787 * z) + (16 / 116);\n\n l = (116 * y) - 16;\n a = 500 * (x - y);\n b = 200 * (y - z);\n\n return [l, a, b];\n}\n\nfunction xyz2lch(args) {\n return lab2lch(xyz2lab(args));\n}\n\nfunction lab2xyz(lab) {\n var l = lab[0],\n a = lab[1],\n b = lab[2],\n x, y, z, y2;\n\n if (l <= 8) {\n y = (l * 100) / 903.3;\n y2 = (7.787 * (y / 100)) + (16 / 116);\n } else {\n y = 100 * Math.pow((l + 16) / 116, 3);\n y2 = Math.pow(y / 100, 1/3);\n }\n\n x = x / 95.047 <= 0.008856 ? x = (95.047 * ((a / 500) + y2 - (16 / 116))) / 7.787 : 95.047 * Math.pow((a / 500) + y2, 3);\n\n z = z / 108.883 <= 0.008859 ? z = (108.883 * (y2 - (b / 200) - (16 / 116))) / 7.787 : 108.883 * Math.pow(y2 - (b / 200), 3);\n\n return [x, y, z];\n}\n\nfunction lab2lch(lab) {\n var l = lab[0],\n a = lab[1],\n b = lab[2],\n hr, h, c;\n\n hr = Math.atan2(b, a);\n h = hr * 360 / 2 / Math.PI;\n if (h < 0) {\n h += 360;\n }\n c = Math.sqrt(a * a + b * b);\n return [l, c, h];\n}\n\nfunction lab2rgb(args) {\n return xyz2rgb(lab2xyz(args));\n}\n\nfunction lch2lab(lch) {\n var l = lch[0],\n c = lch[1],\n h = lch[2],\n a, b, hr;\n\n hr = h / 360 * 2 * Math.PI;\n a = c * Math.cos(hr);\n b = c * Math.sin(hr);\n return [l, a, b];\n}\n\nfunction lch2xyz(args) {\n return lab2xyz(lch2lab(args));\n}\n\nfunction lch2rgb(args) {\n return lab2rgb(lch2lab(args));\n}\n\nfunction keyword2rgb(keyword) {\n return cssKeywords[keyword];\n}\n\nfunction keyword2hsl(args) {\n return rgb2hsl(keyword2rgb(args));\n}\n\nfunction keyword2hsv(args) {\n return rgb2hsv(keyword2rgb(args));\n}\n\nfunction keyword2hwb(args) {\n return rgb2hwb(keyword2rgb(args));\n}\n\nfunction keyword2cmyk(args) {\n return rgb2cmyk(keyword2rgb(args));\n}\n\nfunction keyword2lab(args) {\n return rgb2lab(keyword2rgb(args));\n}\n\nfunction keyword2xyz(args) {\n return rgb2xyz(keyword2rgb(args));\n}\n\nvar cssKeywords = {\n aliceblue: [240,248,255],\n antiquewhite: [250,235,215],\n aqua: [0,255,255],\n aquamarine: [127,255,212],\n azure: [240,255,255],\n beige: [245,245,220],\n bisque: [255,228,196],\n black: [0,0,0],\n blanchedalmond: [255,235,205],\n blue: [0,0,255],\n blueviolet: [138,43,226],\n brown: [165,42,42],\n burlywood: [222,184,135],\n cadetblue: [95,158,160],\n chartreuse: [127,255,0],\n chocolate: [210,105,30],\n coral: [255,127,80],\n cornflowerblue: [100,149,237],\n cornsilk: [255,248,220],\n crimson: [220,20,60],\n cyan: [0,255,255],\n darkblue: [0,0,139],\n darkcyan: [0,139,139],\n darkgoldenrod: [184,134,11],\n darkgray: [169,169,169],\n darkgreen: [0,100,0],\n darkgrey: [169,169,169],\n darkkhaki: [189,183,107],\n darkmagenta: [139,0,139],\n darkolivegreen: [85,107,47],\n darkorange: [255,140,0],\n darkorchid: [153,50,204],\n darkred: [139,0,0],\n darksalmon: [233,150,122],\n darkseagreen: [143,188,143],\n darkslateblue: [72,61,139],\n darkslategray: [47,79,79],\n darkslategrey: [47,79,79],\n darkturquoise: [0,206,209],\n darkviolet: [148,0,211],\n deeppink: [255,20,147],\n deepskyblue: [0,191,255],\n dimgray: [105,105,105],\n dimgrey: [105,105,105],\n dodgerblue: [30,144,255],\n firebrick: [178,34,34],\n floralwhite: [255,250,240],\n forestgreen: [34,139,34],\n fuchsia: [255,0,255],\n gainsboro: [220,220,220],\n ghostwhite: [248,248,255],\n gold: [255,215,0],\n goldenrod: [218,165,32],\n gray: [128,128,128],\n green: [0,128,0],\n greenyellow: [173,255,47],\n grey: [128,128,128],\n honeydew: [240,255,240],\n hotpink: [255,105,180],\n indianred: [205,92,92],\n indigo: [75,0,130],\n ivory: [255,255,240],\n khaki: [240,230,140],\n lavender: [230,230,250],\n lavenderblush: [255,240,245],\n lawngreen: [124,252,0],\n lemonchiffon: [255,250,205],\n lightblue: [173,216,230],\n lightcoral: [240,128,128],\n lightcyan: [224,255,255],\n lightgoldenrodyellow: [250,250,210],\n lightgray: [211,211,211],\n lightgreen: [144,238,144],\n lightgrey: [211,211,211],\n lightpink: [255,182,193],\n lightsalmon: [255,160,122],\n lightseagreen: [32,178,170],\n lightskyblue: [135,206,250],\n lightslategray: [119,136,153],\n lightslategrey: [119,136,153],\n lightsteelblue: [176,196,222],\n lightyellow: [255,255,224],\n lime: [0,255,0],\n limegreen: [50,205,50],\n linen: [250,240,230],\n magenta: [255,0,255],\n maroon: [128,0,0],\n mediumaquamarine: [102,205,170],\n mediumblue: [0,0,205],\n mediumorchid: [186,85,211],\n mediumpurple: [147,112,219],\n mediumseagreen: [60,179,113],\n mediumslateblue: [123,104,238],\n mediumspringgreen: [0,250,154],\n mediumturquoise: [72,209,204],\n mediumvioletred: [199,21,133],\n midnightblue: [25,25,112],\n mintcream: [245,255,250],\n mistyrose: [255,228,225],\n moccasin: [255,228,181],\n navajowhite: [255,222,173],\n navy: [0,0,128],\n oldlace: [253,245,230],\n olive: [128,128,0],\n olivedrab: [107,142,35],\n orange: [255,165,0],\n orangered: [255,69,0],\n orchid: [218,112,214],\n palegoldenrod: [238,232,170],\n palegreen: [152,251,152],\n paleturquoise: [175,238,238],\n palevioletred: [219,112,147],\n papayawhip: [255,239,213],\n peachpuff: [255,218,185],\n peru: [205,133,63],\n pink: [255,192,203],\n plum: [221,160,221],\n powderblue: [176,224,230],\n purple: [128,0,128],\n rebeccapurple: [102, 51, 153],\n red: [255,0,0],\n rosybrown: [188,143,143],\n royalblue: [65,105,225],\n saddlebrown: [139,69,19],\n salmon: [250,128,114],\n sandybrown: [244,164,96],\n seagreen: [46,139,87],\n seashell: [255,245,238],\n sienna: [160,82,45],\n silver: [192,192,192],\n skyblue: [135,206,235],\n slateblue: [106,90,205],\n slategray: [112,128,144],\n slategrey: [112,128,144],\n snow: [255,250,250],\n springgreen: [0,255,127],\n steelblue: [70,130,180],\n tan: [210,180,140],\n teal: [0,128,128],\n thistle: [216,191,216],\n tomato: [255,99,71],\n turquoise: [64,224,208],\n violet: [238,130,238],\n wheat: [245,222,179],\n white: [255,255,255],\n whitesmoke: [245,245,245],\n yellow: [255,255,0],\n yellowgreen: [154,205,50]\n};\n\nvar reverseKeywords = {};\nfor (var key in cssKeywords) {\n reverseKeywords[JSON.stringify(cssKeywords[key])] = key;\n}\n\n},{}],3:[function(require,module,exports){\nvar conversions = require(\"./conversions\");\n\nvar convert = function() {\n return new Converter();\n}\n\nfor (var func in conversions) {\n // export Raw versions\n convert[func + \"Raw\"] = (function(func) {\n // accept array or plain args\n return function(arg) {\n if (typeof arg == \"number\")\n arg = Array.prototype.slice.call(arguments);\n return conversions[func](arg);\n }\n })(func);\n\n var pair = /(\\w+)2(\\w+)/.exec(func),\n from = pair[1],\n to = pair[2];\n\n // export rgb2hsl and [\"rgb\"][\"hsl\"]\n convert[from] = convert[from] || {};\n\n convert[from][to] = convert[func] = (function(func) { \n return function(arg) {\n if (typeof arg == \"number\")\n arg = Array.prototype.slice.call(arguments);\n \n var val = conversions[func](arg);\n if (typeof val == \"string\" || val === undefined)\n return val; // keyword\n\n for (var i = 0; i < val.length; i++)\n val[i] = Math.round(val[i]);\n return val;\n }\n })(func);\n}\n\n\n/* Converter does lazy conversion and caching */\nvar Converter = function() {\n this.convs = {};\n};\n\n/* Either get the values for a space or\n set the values for a space, depending on args */\nConverter.prototype.routeSpace = function(space, args) {\n var values = args[0];\n if (values === undefined) {\n // color.rgb()\n return this.getValues(space);\n }\n // color.rgb(10, 10, 10)\n if (typeof values == \"number\") {\n values = Array.prototype.slice.call(args); \n }\n\n return this.setValues(space, values);\n};\n \n/* Set the values for a space, invalidating cache */\nConverter.prototype.setValues = function(space, values) {\n this.space = space;\n this.convs = {};\n this.convs[space] = values;\n return this;\n};\n\n/* Get the values for a space. If there's already\n a conversion for the space, fetch it, otherwise\n compute it */\nConverter.prototype.getValues = function(space) {\n var vals = this.convs[space];\n if (!vals) {\n var fspace = this.space,\n from = this.convs[fspace];\n vals = convert[fspace][space](from);\n\n this.convs[space] = vals;\n }\n return vals;\n};\n\n[\"rgb\", \"hsl\", \"hsv\", \"cmyk\", \"keyword\"].forEach(function(space) {\n Converter.prototype[space] = function(vals) {\n return this.routeSpace(space, arguments);\n }\n});\n\nmodule.exports = convert;\n},{\"./conversions\":2}],4:[function(require,module,exports){\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\n},{}],5:[function(require,module,exports){\n/* MIT license */\nvar colorNames = require('color-name');\n\nmodule.exports = {\n getRgba: getRgba,\n getHsla: getHsla,\n getRgb: getRgb,\n getHsl: getHsl,\n getHwb: getHwb,\n getAlpha: getAlpha,\n\n hexString: hexString,\n rgbString: rgbString,\n rgbaString: rgbaString,\n percentString: percentString,\n percentaString: percentaString,\n hslString: hslString,\n hslaString: hslaString,\n hwbString: hwbString,\n keyword: keyword\n}\n\nfunction getRgba(string) {\n if (!string) {\n return;\n }\n var abbr = /^#([a-fA-F0-9]{3})$/,\n hex = /^#([a-fA-F0-9]{6})$/,\n rgba = /^rgba?\\(\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/,\n per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/,\n keyword = /(\\D+)/;\n\n var rgb = [0, 0, 0],\n a = 1,\n match = string.match(abbr);\n if (match) {\n match = match[1];\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match[i] + match[i], 16);\n }\n }\n else if (match = string.match(hex)) {\n match = match[1];\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match.slice(i * 2, i * 2 + 2), 16);\n }\n }\n else if (match = string.match(rgba)) {\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match[i + 1]);\n }\n a = parseFloat(match[4]);\n }\n else if (match = string.match(per)) {\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n }\n a = parseFloat(match[4]);\n }\n else if (match = string.match(keyword)) {\n if (match[1] == \"transparent\") {\n return [0, 0, 0, 0];\n }\n rgb = colorNames[match[1]];\n if (!rgb) {\n return;\n }\n }\n\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = scale(rgb[i], 0, 255);\n }\n if (!a && a != 0) {\n a = 1;\n }\n else {\n a = scale(a, 0, 1);\n }\n rgb[3] = a;\n return rgb;\n}\n\nfunction getHsla(string) {\n if (!string) {\n return;\n }\n var hsl = /^hsla?\\(\\s*([+-]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)/;\n var match = string.match(hsl);\n if (match) {\n var alpha = parseFloat(match[4]);\n var h = scale(parseInt(match[1]), 0, 360),\n s = scale(parseFloat(match[2]), 0, 100),\n l = scale(parseFloat(match[3]), 0, 100),\n a = scale(isNaN(alpha) ? 1 : alpha, 0, 1);\n return [h, s, l, a];\n }\n}\n\nfunction getHwb(string) {\n if (!string) {\n return;\n }\n var hwb = /^hwb\\(\\s*([+-]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)/;\n var match = string.match(hwb);\n if (match) {\n var alpha = parseFloat(match[4]);\n var h = scale(parseInt(match[1]), 0, 360),\n w = scale(parseFloat(match[2]), 0, 100),\n b = scale(parseFloat(match[3]), 0, 100),\n a = scale(isNaN(alpha) ? 1 : alpha, 0, 1);\n return [h, w, b, a];\n }\n}\n\nfunction getRgb(string) {\n var rgba = getRgba(string);\n return rgba && rgba.slice(0, 3);\n}\n\nfunction getHsl(string) {\n var hsla = getHsla(string);\n return hsla && hsla.slice(0, 3);\n}\n\nfunction getAlpha(string) {\n var vals = getRgba(string);\n if (vals) {\n return vals[3];\n }\n else if (vals = getHsla(string)) {\n return vals[3];\n }\n else if (vals = getHwb(string)) {\n return vals[3];\n }\n}\n\n// generators\nfunction hexString(rgb) {\n return \"#\" + hexDouble(rgb[0]) + hexDouble(rgb[1])\n + hexDouble(rgb[2]);\n}\n\nfunction rgbString(rgba, alpha) {\n if (alpha < 1 || (rgba[3] && rgba[3] < 1)) {\n return rgbaString(rgba, alpha);\n }\n return \"rgb(\" + rgba[0] + \", \" + rgba[1] + \", \" + rgba[2] + \")\";\n}\n\nfunction rgbaString(rgba, alpha) {\n if (alpha === undefined) {\n alpha = (rgba[3] !== undefined ? rgba[3] : 1);\n }\n return \"rgba(\" + rgba[0] + \", \" + rgba[1] + \", \" + rgba[2]\n + \", \" + alpha + \")\";\n}\n\nfunction percentString(rgba, alpha) {\n if (alpha < 1 || (rgba[3] && rgba[3] < 1)) {\n return percentaString(rgba, alpha);\n }\n var r = Math.round(rgba[0]/255 * 100),\n g = Math.round(rgba[1]/255 * 100),\n b = Math.round(rgba[2]/255 * 100);\n\n return \"rgb(\" + r + \"%, \" + g + \"%, \" + b + \"%)\";\n}\n\nfunction percentaString(rgba, alpha) {\n var r = Math.round(rgba[0]/255 * 100),\n g = Math.round(rgba[1]/255 * 100),\n b = Math.round(rgba[2]/255 * 100);\n return \"rgba(\" + r + \"%, \" + g + \"%, \" + b + \"%, \" + (alpha || rgba[3] || 1) + \")\";\n}\n\nfunction hslString(hsla, alpha) {\n if (alpha < 1 || (hsla[3] && hsla[3] < 1)) {\n return hslaString(hsla, alpha);\n }\n return \"hsl(\" + hsla[0] + \", \" + hsla[1] + \"%, \" + hsla[2] + \"%)\";\n}\n\nfunction hslaString(hsla, alpha) {\n if (alpha === undefined) {\n alpha = (hsla[3] !== undefined ? hsla[3] : 1);\n }\n return \"hsla(\" + hsla[0] + \", \" + hsla[1] + \"%, \" + hsla[2] + \"%, \"\n + alpha + \")\";\n}\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\nfunction hwbString(hwb, alpha) {\n if (alpha === undefined) {\n alpha = (hwb[3] !== undefined ? hwb[3] : 1);\n }\n return \"hwb(\" + hwb[0] + \", \" + hwb[1] + \"%, \" + hwb[2] + \"%\"\n + (alpha !== undefined && alpha !== 1 ? \", \" + alpha : \"\") + \")\";\n}\n\nfunction keyword(rgb) {\n return reverseNames[rgb.slice(0, 3)];\n}\n\n// helpers\nfunction scale(num, min, max) {\n return Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n var str = num.toString(16).toUpperCase();\n return (str.length < 2) ? \"0\" + str : str;\n}\n\n\n//create a list of reverse color names\nvar reverseNames = {};\nfor (var name in colorNames) {\n reverseNames[colorNames[name]] = name;\n}\n\n},{\"color-name\":4}],6:[function(require,module,exports){\n/* MIT license */\nvar convert = require('color-convert');\nvar string = require('color-string');\n\nvar Color = function (obj) {\n\tif (obj instanceof Color) {\n\t\treturn obj;\n\t}\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(obj);\n\t}\n\n\tthis.values = {\n\t\trgb: [0, 0, 0],\n\t\thsl: [0, 0, 0],\n\t\thsv: [0, 0, 0],\n\t\thwb: [0, 0, 0],\n\t\tcmyk: [0, 0, 0, 0],\n\t\talpha: 1\n\t};\n\n\t// parse Color() argument\n\tvar vals;\n\tif (typeof obj === 'string') {\n\t\tvals = string.getRgba(obj);\n\t\tif (vals) {\n\t\t\tthis.setValues('rgb', vals);\n\t\t} else if (vals = string.getHsla(obj)) {\n\t\t\tthis.setValues('hsl', vals);\n\t\t} else if (vals = string.getHwb(obj)) {\n\t\t\tthis.setValues('hwb', vals);\n\t\t} else {\n\t\t\tthrow new Error('Unable to parse color from string \"' + obj + '\"');\n\t\t}\n\t} else if (typeof obj === 'object') {\n\t\tvals = obj;\n\t\tif (vals.r !== undefined || vals.red !== undefined) {\n\t\t\tthis.setValues('rgb', vals);\n\t\t} else if (vals.l !== undefined || vals.lightness !== undefined) {\n\t\t\tthis.setValues('hsl', vals);\n\t\t} else if (vals.v !== undefined || vals.value !== undefined) {\n\t\t\tthis.setValues('hsv', vals);\n\t\t} else if (vals.w !== undefined || vals.whiteness !== undefined) {\n\t\t\tthis.setValues('hwb', vals);\n\t\t} else if (vals.c !== undefined || vals.cyan !== undefined) {\n\t\t\tthis.setValues('cmyk', vals);\n\t\t} else {\n\t\t\tthrow new Error('Unable to parse color from object ' + JSON.stringify(obj));\n\t\t}\n\t}\n};\n\nColor.prototype = {\n\trgb: function () {\n\t\treturn this.setSpace('rgb', arguments);\n\t},\n\thsl: function () {\n\t\treturn this.setSpace('hsl', arguments);\n\t},\n\thsv: function () {\n\t\treturn this.setSpace('hsv', arguments);\n\t},\n\thwb: function () {\n\t\treturn this.setSpace('hwb', arguments);\n\t},\n\tcmyk: function () {\n\t\treturn this.setSpace('cmyk', arguments);\n\t},\n\n\trgbArray: function () {\n\t\treturn this.values.rgb;\n\t},\n\thslArray: function () {\n\t\treturn this.values.hsl;\n\t},\n\thsvArray: function () {\n\t\treturn this.values.hsv;\n\t},\n\thwbArray: function () {\n\t\tif (this.values.alpha !== 1) {\n\t\t\treturn this.values.hwb.concat([this.values.alpha]);\n\t\t}\n\t\treturn this.values.hwb;\n\t},\n\tcmykArray: function () {\n\t\treturn this.values.cmyk;\n\t},\n\trgbaArray: function () {\n\t\tvar rgb = this.values.rgb;\n\t\treturn rgb.concat([this.values.alpha]);\n\t},\n\thslaArray: function () {\n\t\tvar hsl = this.values.hsl;\n\t\treturn hsl.concat([this.values.alpha]);\n\t},\n\talpha: function (val) {\n\t\tif (val === undefined) {\n\t\t\treturn this.values.alpha;\n\t\t}\n\t\tthis.setValues('alpha', val);\n\t\treturn this;\n\t},\n\n\tred: function (val) {\n\t\treturn this.setChannel('rgb', 0, val);\n\t},\n\tgreen: function (val) {\n\t\treturn this.setChannel('rgb', 1, val);\n\t},\n\tblue: function (val) {\n\t\treturn this.setChannel('rgb', 2, val);\n\t},\n\thue: function (val) {\n\t\tif (val) {\n\t\t\tval %= 360;\n\t\t\tval = val < 0 ? 360 + val : val;\n\t\t}\n\t\treturn this.setChannel('hsl', 0, val);\n\t},\n\tsaturation: function (val) {\n\t\treturn this.setChannel('hsl', 1, val);\n\t},\n\tlightness: function (val) {\n\t\treturn this.setChannel('hsl', 2, val);\n\t},\n\tsaturationv: function (val) {\n\t\treturn this.setChannel('hsv', 1, val);\n\t},\n\twhiteness: function (val) {\n\t\treturn this.setChannel('hwb', 1, val);\n\t},\n\tblackness: function (val) {\n\t\treturn this.setChannel('hwb', 2, val);\n\t},\n\tvalue: function (val) {\n\t\treturn this.setChannel('hsv', 2, val);\n\t},\n\tcyan: function (val) {\n\t\treturn this.setChannel('cmyk', 0, val);\n\t},\n\tmagenta: function (val) {\n\t\treturn this.setChannel('cmyk', 1, val);\n\t},\n\tyellow: function (val) {\n\t\treturn this.setChannel('cmyk', 2, val);\n\t},\n\tblack: function (val) {\n\t\treturn this.setChannel('cmyk', 3, val);\n\t},\n\n\thexString: function () {\n\t\treturn string.hexString(this.values.rgb);\n\t},\n\trgbString: function () {\n\t\treturn string.rgbString(this.values.rgb, this.values.alpha);\n\t},\n\trgbaString: function () {\n\t\treturn string.rgbaString(this.values.rgb, this.values.alpha);\n\t},\n\tpercentString: function () {\n\t\treturn string.percentString(this.values.rgb, this.values.alpha);\n\t},\n\thslString: function () {\n\t\treturn string.hslString(this.values.hsl, this.values.alpha);\n\t},\n\thslaString: function () {\n\t\treturn string.hslaString(this.values.hsl, this.values.alpha);\n\t},\n\thwbString: function () {\n\t\treturn string.hwbString(this.values.hwb, this.values.alpha);\n\t},\n\tkeyword: function () {\n\t\treturn string.keyword(this.values.rgb, this.values.alpha);\n\t},\n\n\trgbNumber: function () {\n\t\treturn (this.values.rgb[0] << 16) | (this.values.rgb[1] << 8) | this.values.rgb[2];\n\t},\n\n\tluminosity: function () {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tvar rgb = this.values.rgb;\n\t\tvar lum = [];\n\t\tfor (var i = 0; i < rgb.length; i++) {\n\t\t\tvar chan = rgb[i] / 255;\n\t\t\tlum[i] = (chan <= 0.03928) ? chan / 12.92 : Math.pow(((chan + 0.055) / 1.055), 2.4);\n\t\t}\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast: function (color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tvar lum1 = this.luminosity();\n\t\tvar lum2 = color2.luminosity();\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel: function (color2) {\n\t\tvar contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7.1) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tdark: function () {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tvar rgb = this.values.rgb;\n\t\tvar yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n\t\treturn yiq < 128;\n\t},\n\n\tlight: function () {\n\t\treturn !this.dark();\n\t},\n\n\tnegate: function () {\n\t\tvar rgb = [];\n\t\tfor (var i = 0; i < 3; i++) {\n\t\t\trgb[i] = 255 - this.values.rgb[i];\n\t\t}\n\t\tthis.setValues('rgb', rgb);\n\t\treturn this;\n\t},\n\n\tlighten: function (ratio) {\n\t\tthis.values.hsl[2] += this.values.hsl[2] * ratio;\n\t\tthis.setValues('hsl', this.values.hsl);\n\t\treturn this;\n\t},\n\n\tdarken: function (ratio) {\n\t\tthis.values.hsl[2] -= this.values.hsl[2] * ratio;\n\t\tthis.setValues('hsl', this.values.hsl);\n\t\treturn this;\n\t},\n\n\tsaturate: function (ratio) {\n\t\tthis.values.hsl[1] += this.values.hsl[1] * ratio;\n\t\tthis.setValues('hsl', this.values.hsl);\n\t\treturn this;\n\t},\n\n\tdesaturate: function (ratio) {\n\t\tthis.values.hsl[1] -= this.values.hsl[1] * ratio;\n\t\tthis.setValues('hsl', this.values.hsl);\n\t\treturn this;\n\t},\n\n\twhiten: function (ratio) {\n\t\tthis.values.hwb[1] += this.values.hwb[1] * ratio;\n\t\tthis.setValues('hwb', this.values.hwb);\n\t\treturn this;\n\t},\n\n\tblacken: function (ratio) {\n\t\tthis.values.hwb[2] += this.values.hwb[2] * ratio;\n\t\tthis.setValues('hwb', this.values.hwb);\n\t\treturn this;\n\t},\n\n\tgreyscale: function () {\n\t\tvar rgb = this.values.rgb;\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tvar val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\tthis.setValues('rgb', [val, val, val]);\n\t\treturn this;\n\t},\n\n\tclearer: function (ratio) {\n\t\tthis.setValues('alpha', this.values.alpha - (this.values.alpha * ratio));\n\t\treturn this;\n\t},\n\n\topaquer: function (ratio) {\n\t\tthis.setValues('alpha', this.values.alpha + (this.values.alpha * ratio));\n\t\treturn this;\n\t},\n\n\trotate: function (degrees) {\n\t\tvar hue = this.values.hsl[0];\n\t\thue = (hue + degrees) % 360;\n\t\thue = hue < 0 ? 360 + hue : hue;\n\t\tthis.values.hsl[0] = hue;\n\t\tthis.setValues('hsl', this.values.hsl);\n\t\treturn this;\n\t},\n\n\t/**\n\t * Ported from sass implementation in C\n\t * https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t */\n\tmix: function (mixinColor, weight) {\n\t\tvar color1 = this;\n\t\tvar color2 = mixinColor;\n\t\tvar p = weight === undefined ? 0.5 : weight;\n\n\t\tvar w = 2 * p - 1;\n\t\tvar a = color1.alpha() - color2.alpha();\n\n\t\tvar w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n\t\tvar w2 = 1 - w1;\n\n\t\treturn this\n\t\t\t.rgb(\n\t\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\t\tw1 * color1.blue() + w2 * color2.blue()\n\t\t\t)\n\t\t\t.alpha(color1.alpha() * p + color2.alpha() * (1 - p));\n\t},\n\n\ttoJSON: function () {\n\t\treturn this.rgb();\n\t},\n\n\tclone: function () {\n\t\treturn new Color(this.rgb());\n\t}\n};\n\nColor.prototype.getValues = function (space) {\n\tvar vals = {};\n\n\tfor (var i = 0; i < space.length; i++) {\n\t\tvals[space.charAt(i)] = this.values[space][i];\n\t}\n\n\tif (this.values.alpha !== 1) {\n\t\tvals.a = this.values.alpha;\n\t}\n\n\t// {r: 255, g: 255, b: 255, a: 0.4}\n\treturn vals;\n};\n\nColor.prototype.setValues = function (space, vals) {\n\tvar spaces = {\n\t\trgb: ['red', 'green', 'blue'],\n\t\thsl: ['hue', 'saturation', 'lightness'],\n\t\thsv: ['hue', 'saturation', 'value'],\n\t\thwb: ['hue', 'whiteness', 'blackness'],\n\t\tcmyk: ['cyan', 'magenta', 'yellow', 'black']\n\t};\n\n\tvar maxes = {\n\t\trgb: [255, 255, 255],\n\t\thsl: [360, 100, 100],\n\t\thsv: [360, 100, 100],\n\t\thwb: [360, 100, 100],\n\t\tcmyk: [100, 100, 100, 100]\n\t};\n\n\tvar i;\n\tvar alpha = 1;\n\tif (space === 'alpha') {\n\t\talpha = vals;\n\t} else if (vals.length) {\n\t\t// [10, 10, 10]\n\t\tthis.values[space] = vals.slice(0, space.length);\n\t\talpha = vals[space.length];\n\t} else if (vals[space.charAt(0)] !== undefined) {\n\t\t// {r: 10, g: 10, b: 10}\n\t\tfor (i = 0; i < space.length; i++) {\n\t\t\tthis.values[space][i] = vals[space.charAt(i)];\n\t\t}\n\n\t\talpha = vals.a;\n\t} else if (vals[spaces[space][0]] !== undefined) {\n\t\t// {red: 10, green: 10, blue: 10}\n\t\tvar chans = spaces[space];\n\n\t\tfor (i = 0; i < space.length; i++) {\n\t\t\tthis.values[space][i] = vals[chans[i]];\n\t\t}\n\n\t\talpha = vals.alpha;\n\t}\n\n\tthis.values.alpha = Math.max(0, Math.min(1, (alpha === undefined ? this.values.alpha : alpha)));\n\n\tif (space === 'alpha') {\n\t\treturn false;\n\t}\n\n\tvar capped;\n\n\t// cap values of the space prior converting all values\n\tfor (i = 0; i < space.length; i++) {\n\t\tcapped = Math.max(0, Math.min(maxes[space][i], this.values[space][i]));\n\t\tthis.values[space][i] = Math.round(capped);\n\t}\n\n\t// convert to all the other color spaces\n\tfor (var sname in spaces) {\n\t\tif (sname !== space) {\n\t\t\tthis.values[sname] = convert[space][sname](this.values[space]);\n\t\t}\n\n\t\t// cap values\n\t\tfor (i = 0; i < sname.length; i++) {\n\t\t\tcapped = Math.max(0, Math.min(maxes[sname][i], this.values[sname][i]));\n\t\t\tthis.values[sname][i] = Math.round(capped);\n\t\t}\n\t}\n\n\treturn true;\n};\n\nColor.prototype.setSpace = function (space, args) {\n\tvar vals = args[0];\n\n\tif (vals === undefined) {\n\t\t// color.rgb()\n\t\treturn this.getValues(space);\n\t}\n\n\t// color.rgb(10, 10, 10)\n\tif (typeof vals === 'number') {\n\t\tvals = Array.prototype.slice.call(args);\n\t}\n\n\tthis.setValues(space, vals);\n\treturn this;\n};\n\nColor.prototype.setChannel = function (space, index, val) {\n\tif (val === undefined) {\n\t\t// color.red()\n\t\treturn this.values[space][index];\n\t} else if (val === this.values[space][index]) {\n\t\t// color.red(color.red())\n\t\treturn this;\n\t}\n\n\t// color.red(100)\n\tthis.values[space][index] = val;\n\tthis.setValues(space, this.values[space]);\n\n\treturn this;\n};\n\nmodule.exports = Color;\n\n},{\"color-convert\":3,\"color-string\":5}],7:[function(require,module,exports){\nconst color = require('color');\r\n\r\n\r\n// DEV: These constants will be transformed into string constants by browserify\r\nconst BASE_CSS = \".gmusic-theme #material-app-bar {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme #material-app-bar .tab-text,\\n.gmusic-theme [data-id=\\\"prev-history\\\"],\\n.gmusic-theme [data-id=\\\"next-history\\\"],\\n.gmusic-theme #searchIcon {\\n color: <> !important;\\n}\\n\\n.gmusic-theme #material-one-left #left-nav-open-button svg {\\n fill: <> !important;\\n}\\n\\n.gmusic-theme body {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme #drawer,\\n.gmusic-theme .material-card {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme #nav-container,\\n.gmusic-theme #loading-overlay,\\n.gmusic-theme #loading-progress,\\n.gmusic-theme #loading-progress-bar {\\n background: <> !important;\\n}\\n\\n.gmusic-theme #loading-progress-bar {\\n border: none !important;\\n}\\n\\n.gmusic-theme .nav-toolbar,\\n.gmusic-theme .material-card .details,\\n.gmusic-theme .material-card .image-wrapper,\\n.gmusic-theme .situations-filter {\\n background: <> !important;\\n}\\n\\n.gmusic-theme #nav {\\n background: <> !important;\\n color: <> !important;\\n}\\n\\n.gmusic-theme #player,\\n.gmusic-theme .player-rating-container,\\n.gmusic-theme #player.material .now-playing-actions paper-icon-button {\\n color: <> !important;\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme #player.material paper-icon-button.playing > iron-icon::before {\\n content: '' !important;\\n display: block !important;\\n position: absolute !important;\\n background: <> !important;\\n z-index: -1 !important;\\n border-radius: 100% !important;\\n height: calc(100% - 16px) !important;\\n width: calc(100% - 16px) !important;\\n top: 8px !important;\\n left: 8px !important;\\n}\\n\\n.gmusic-theme #player.material:hover #material-player-progress #sliderContainer:not(.disabled) #sliderBar #progressContainer,\\n.gmusic-theme .playlist-view .editable:hover {\\n background: <> !important;\\n}\\n\\n.gmusic-theme .cluster-text-protection::before,\\n.gmusic-theme .cluster-text-protection {\\n background: transparent !important;\\n}\\n\\n.gmusic-theme .title,\\n.gmusic-theme .situation-title,\\n.gmusic-theme .recommended-header {\\n color: <> !important;\\n}\\n\\n.gmusic-theme .nav-item-container {\\n color: <> !important;\\n}\\n\\n.gmusic-theme #nav_collections .nav-item-container:focus,\\n.gmusic-theme .nav-item-container:focus,\\n.gmusic-theme .nav-item-container:hover,\\n.gmusic-theme .nav-item-container.selected {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme .nav-item-container:not(:focus):hover iron-icon {\\n color: <> !important;\\n}\\n\\n.gmusic-theme #nav_collections .nav-item-container:focus iron-icon,\\n.gmusic-theme .nav-item-container:focus iron-icon {\\n color: <> !important;\\n}\\n\\n.gmusic-theme .fade-out:after {\\n display: none !important;\\n}\\n\\n.gmusic-theme .column.col-0 .material-card:first-child .image-wrapper {\\n padding-top: 0 !important;\\n}\\n\\n.gmusic-theme .song-row .song-indicator {\\n background-image: url('ani_equalizer_white_x2.gif') !important;\\n background-size: 28px 28px !important;\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme .song-row:hover .song-indicator {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme .material-detail-view .has-hero-image,\\n.gmusic-theme .song-row td,\\n.gmusic-theme .song-row td > *,\\n.gmusic-theme .upload-progress-row td,\\n.gmusic-theme .song-row.selected-song-row td {\\n background-color: <> !important;\\n color: <> !important;\\n}\\n\\n.gmusic-theme .song-row.selected-song-row .song-indicator,\\n.gmusic-theme .song-row.selected-song-row .title-right-items,\\n.gmusic-theme .song-row.selected-song-row .content,\\n.gmusic-theme .song-row.selected-song-row .song-indicator[data-playback-status=\\\"paused\\\"],\\n.gmusic-theme .song-row.selected-song-row .song-indicator[data-playback-status=\\\"loading\\\"],\\n.gmusic-theme .song-row.selected-song-row [data-col=\\\"index\\\"] .hover-button[data-id=\\\"play\\\"],\\n.gmusic-theme .song-row.selected-song-row [data-col=\\\"track\\\"] .hover-button[data-id=\\\"play\\\"],\\n.gmusic-theme .song-row.selected-song-row td,\\n.gmusic-theme .song-row.selected-song-row td > * {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme .song-row:hover,\\n.gmusic-theme .song-row.hover .song-indicator,\\n.gmusic-theme .song-row.hover .title-right-items,\\n.gmusic-theme .song-row.hover .content,\\n.gmusic-theme .song-row.hover .song-indicator[data-playback-status=\\\"paused\\\"],\\n.gmusic-theme .song-row.hover .song-indicator[data-playback-status=\\\"loading\\\"],\\n.gmusic-theme .song-row.hover [data-col=\\\"index\\\"] .hover-button[data-id=\\\"play\\\"],\\n.gmusic-theme .song-row.hover [data-col=\\\"track\\\"] .hover-button[data-id=\\\"play\\\"],\\n.gmusic-theme .song-row.hover td,\\n.gmusic-theme .song-row.hover td > * {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme body,\\n.gmusic-theme .material-detail-view .material-container-details .info .description,\\n.gmusic-theme .song-table th {\\n color: #efefef !important;\\n}\\n\\n.gmusic-theme .song-row.hover [data-col=\\\"track\\\"] .hover-button[data-id=\\\"play\\\"] {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme .song-row [data-col=\\\"index\\\"] .song-indicator {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme .song-row.hover [data-col=\\\"index\\\"] .song-indicator,\\n.gmusic-theme .song-row.selected-song-row [data-col=\\\"index\\\"] .song-indicator {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme .song-row.selected-song-row.hover [data-col=\\\"index\\\"] .hover-button[data-id=\\\"play\\\"] {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme .songlist-container {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme .nav-section-divider {\\n border-bottom: 1px solid <> !important;\\n}\\n\\n.gmusic-theme .goog-menu,\\n.gmusic-theme .now-playing-menu .goog-menuitem,\\n.gmusic-theme .now-playing-menu .goog-submenu,\\n.gmusic-theme .now-playing-menu .goog-submenu .goog-submenu-arrow,\\n.gmusic-theme .goog-menuitem {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme .goog-menu .goog-menuitem .goog-menuitem-content,\\n.gmusic-theme .goog-menuitem-highlight .goog-menuitem-content .goog-submenu-arrow,\\n.gmusic-theme .goog-menuitem-highlight .goog-menuitem-content {\\n color: <> !important;\\n}\\n\\n.gmusic-theme .goog-menu .goog-menuitem.selected .goog-menuitem-content {\\n color: <> !important;\\n}\\n\\n.gmusic-theme .goog-menu .goog-menuitem:hover,\\n.gmusic-theme .goog-menu .goog-menuseparator {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme .material-detail-view .artist-details .bio-wrapper .bio {\\n color: <> !important;\\n}\\n\\n.gmusic-theme .song-row.hover td a,\\n.gmusic-theme .song-row.selected-song-row td a {\\n color: <> !important;\\n}\\n\\n.gmusic-theme paper-action-dialog {\\n background: <> !important;\\n color: <> !important;\\n}\\n\\n.gmusic-theme .settings-card {\\n background-color: <> !important;\\n color: <> !important;\\n}\\n\\n.gmusic-theme #queue-overlay {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme #queue-overlay::after {\\n border-color: transparent transparent <> <> !important;\\n}\\n\\n.gmusic-theme .upload-dialog-content {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme .upload-dialog-description {\\n color: <> !important;\\n}\\n\\n.gmusic-theme .song-row:hover [data-col=\\\"index\\\"] .hover-button[data-id=\\\"play\\\"] {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme .goog-menuheader {\\n color: <> !important;\\n}\\n\\n.gmusic-theme .paper-progress-1 #primaryProgress.paper-progress {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme .album-view .material-container-details .info .title .explicit {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme .paper-input-container-0 .input-content.label-is-highlighted.paper-input-container label,\\n.gmusic-theme .paper-input-container-0 .input-content.label-is-highlighted.paper-input-container .paper-input-label {\\n color: <> !important;\\n}\\n\\n.gmusic-theme .paper-input-container-0 .input-content.paper-input-container input,\\n.gmusic-theme .paper-input-container-0 .input-content.paper-input-container textarea,\\n.gmusic-theme .paper-input-container-0 .input-content.paper-input-container iron-autogrow-textarea,\\n.gmusic-theme .paper-input-container-0 .input-content.paper-input-container .paper-input-input,\\n.gmusic-theme .material-share-options #sharing-option-label {\\n color: <> !important;\\n}\\n\\n.gmusic-theme .paper-input-container-0 .add-on-content.is-highlighted.paper-input-container * {\\n color: <> !important;\\n}\\n\\n.gmusic-theme .material-container-details paper-fab,\\n.gmusic-theme #current-loading-progress {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme #player.material .material-player-middle paper-icon-button[data-id=\\\"play-pause\\\"]:not([disabled]) {\\n color: <> !important;\\n}\\n\\n.gmusic-theme #loading-overlay.material[data-type=\\\"full-loading-overlay\\\"],\\n.gmusic-theme #loading-overlay.material[data-type=\\\"regular-loading-overlay\\\"] {\\n background: <> !important;\\n}\\n\\n.gmusic-theme iron-overlay-backdrop {\\n background: <> !important;\\n}\\n\\n.gmusic-theme #loading-overlay.material paper-spinner .circle,\\n.gmusic-theme #loading-overlay.material paper-spinner-lite .circle {\\n border-color: <><> !important;\\n}\\n\\n.gmusic-theme a.primary {\\n color: <> !important;\\n}\\n\\n.gmusic-theme paper-button.material-primary {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme paper-checkbox #checkbox.checked {\\n border-color: <> !important;\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme paper-checkbox #ink {\\n color: <> !important;\\n}\\n\\n.gmusic-theme paper-checkbox #checkboxLabel {\\n color: <> !important;\\n}\\n\\n.gmusic-theme paper-toggle-button[checked] .toggle-button {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme paper-toggle-button[checked] .toggle-bar {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme paper-toggle-button[checked] .toggle-ink {\\n color: <> !important;\\n}\\n\\n.gmusic-theme .paper-slider-0 #sliderKnobInner.paper-slider,\\n.gmusic-theme #sliderKnobInner.paper-slider,\\n.gmusic-theme .paper-progress-0 #primaryProgress.paper-progress {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme .nav-item-container.selected iron-icon {\\n color: <> !important;\\n}\\n\\n.gmusic-theme .upload-dialog-title {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme a,\\n.gmusic-theme .simple-dialog a {\\n color: <> !important;\\n}\\n\\n.gmusic-theme .song-table [data-col=\\\"title\\\"],\\n.gmusic-theme .song-table.mini [data-col=\\\"song-details\\\"] .song-title {\\n color: <> !important;\\n}\\n\\n.gmusic-theme .subcategories-list,\\n.gmusic-theme .material-detail-view .station-container-content-wrapper .material-container-details {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme .material-list li a:hover,\\n.gmusic-theme .material-list li a:focus {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme .paper-input-container-0 .focused-line.paper-input-container {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme paper-action-dialog paper-button,\\n.gmusic-theme paper-dialog .buttons paper-button,\\n.gmusic-theme .share-buttons .share-button .button-label {\\n color: <> !important;\\n}\\n\\n.gmusic-theme .song-row:hover td,\\n.gmusic-theme .song-row:hover td > * {\\n background: <> !important;\\n}\\n\\n.gmusic-theme .song-row:hover [data-col=\\\"track\\\"] .hover-button[data-id=\\\"play\\\"] {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme .rating-container li {\\n -webkit-filter: invert(1) !important;\\n}\\n\\n.gmusic-theme #player.material .material-player-middle paper-icon-button[data-id=\\\"repeat\\\"][value=\\\"LIST_REPEAT\\\"],\\n.gmusic-theme #player.material .material-player-middle paper-icon-button[data-id=\\\"repeat\\\"][value=\\\"SINGLE_REPEAT\\\"],\\n.gmusic-theme #player.material .material-player-middle paper-icon-button[data-id=\\\"shuffle\\\"][value=\\\"ALL_SHUFFLE\\\"],\\n.gmusic-theme #player.material .material-player-middle paper-icon-button[data-id=\\\"repeat\\\"][value=\\\"LIST_REPEAT\\\"],\\n.gmusic-theme #player.material .material-player-middle paper-icon-button[data-id=\\\"repeat\\\"][value=\\\"SINGLE_REPEAT\\\"],\\n.gmusic-theme #player.material .material-player-middle paper-icon-button[data-id=\\\"shuffle\\\"][value=\\\"ALL_SHUFFLE\\\"] {\\n color: <> !important;\\n}\\n\\n.gmusic-theme .cluster .lane-button core-icon,\\n.gmusic-theme .cluster .lane-button iron-icon,\\n.gmusic-theme #player.material .material-player-middle paper-icon-button[data-id=\\\"repeat\\\"].active,\\n.gmusic-theme #player.material .material-player-middle paper-icon-button[data-id=\\\"shuffle\\\"].active,\\n.gmusic-theme #player.material #material-player-right-wrapper paper-icon-button[data-id=\\\"queue\\\"].opened {\\n color: <> !important;\\n}\\n\\n.gmusic-theme .cluster .header .cluster-title,\\n.gmusic-theme .cluster .header .subtitle {\\n color: <> !important;\\n}\\n\\n.gmusic-theme .song-row .explicit,\\n.gmusic-theme .material-card .explicit {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme .material-detail-view .material-container-details .read-more-button {\\n color: <> !important;\\n}\\n\\n.gmusic-theme paper-dialog {\\n background: <> !important;\\n color: <> !important;\\n}\\n\\n.gmusic-theme .simple-dialog {\\n background-color: <> !important;\\n border-color: <> !important;\\n}\\n\\n.gmusic-theme .simple-dialog,\\n.gmusic-theme .simple-dialog > div {\\n background-color: <> !important;\\n color: <> !important;\\n}\\n\\n.gmusic-theme .goog-buttonset-default {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme button.goog-buttonset-default,\\n.gmusic-theme button.goog-buttonset-default:hover {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme .top-charts-view .song-row [data-col=\\\"index\\\"] .column-content,\\n.gmusic-theme .material-card .details .left-items .index,\\n.gmusic-theme .more-songs-container {\\n color: <> !important;\\n}\\n\\n.gmusic-theme .material-detail-view .top-tracks {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme .gmusic-theme-light #material-app-bar {\\n background-color: <> !important;\\n}\\n\\n.gmusic-theme .gmusic-theme-light .nav-item-container.selected {\\n color: <> !important;\\n}\\n\\n.gmusic-theme body.gmusic-theme-light,\\n.gmusic-theme .gmusic-theme-light .material-detail-view .material-container-details .info .description,\\n.gmusic-theme .gmusic-theme-light .song-table th {\\n color: #212121 !important;\\n}\\n\\n.gmusic-theme .gmusic-theme-light .song-row .song-indicator {\\n background-image: url('ani_equalizer_black.gif') !important;\\n background-size: 40px 40px !important;\\n}\";\r\nconst BASE_SVG = \"\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\";\r\nconst CONSTANTS = require('../lib/_constants');\r\n\r\nconst DEFAULTS = {\r\n BACK_PRIMARY: '#222326',\r\n BACK_SECONDARY: '#121314',\r\n BACK_HIGHLIGHT: '#615F59',\r\n FORE_PRIMARY: '#FFFFFF',\r\n FORE_SECONDARY: '#1ED760',\r\n};\r\n\r\nwindow.GMusicTheme = class GMusicTheme {\r\n /**\r\n * Constructor for a new Google Music Theme API.\r\n *\r\n * @param {Object} - A colors object containing `backPrimary`, `backSecondary`,\r\n * `backHighlight`, `forePrimary`, `foreSecondary` attributes\r\n * any attribute not included will not be overriden\r\n */\r\n constructor(options = {}) {\r\n // DEV: Use the colors specified in the options or the default if it isn't set\r\n this.BACK_PRIMARY = DEFAULTS.BACK_PRIMARY;\r\n this.BACK_SECONDARY = DEFAULTS.BACK_SECONDARY;\r\n this.BACK_HIGHLIGHT = DEFAULTS.BACK_HIGHLIGHT;\r\n this.FORE_PRIMARY = DEFAULTS.FORE_PRIMARY;\r\n this.FORE_SECONDARY = DEFAULTS.FORE_SECONDARY;\r\n\r\n this.enabled = false;\r\n if (options.enabled) {\r\n this.enable();\r\n }\r\n\r\n // DEV: This is the style element where we put our custom CSS\r\n this.styleElement = document.createElement('style');\r\n document.body.appendChild(this.styleElement);\r\n\r\n // DEV: updateTheme calls redrawTheme\r\n this.updateTheme(options);\r\n }\r\n\r\n /**\r\n * Regenerates the custom CSS and and updates the SVG logo\r\n */\r\n redrawTheme() {\r\n this._refreshStyleSheet();\r\n this._drawLogo();\r\n }\r\n\r\n /**\r\n * Enabled the dark theme, this allows for backwards compatibility\r\n */\r\n enable() {\r\n this.enableAll();\r\n }\r\n\r\n /**\r\n * Enables the custom theme in dark mode (All colors)\r\n */\r\n enableAll() {\r\n this.disable();\r\n document.querySelector('html').classList.add(CONSTANTS.CLASS_NAMESPACE);\r\n this.enabled = 1;\r\n this.redrawTheme();\r\n }\r\n\r\n /**\r\n * Enables the custom theme in light mode (only highlight)\r\n */\r\n enableHighlight() {\r\n this.disable();\r\n document.querySelector('html').classList.add(CONSTANTS.CLASS_NAMESPACE);\r\n document.body.classList.add(CONSTANTS.CLASS_NAMESPACE_LIGHT);\r\n this.enabled = 2;\r\n this.redrawTheme();\r\n }\r\n\r\n /**\r\n * Disables the custom theme\r\n */\r\n disable() {\r\n document.querySelector('html').classList.remove(CONSTANTS.CLASS_NAMESPACE);\r\n document.body.classList.remove(CONSTANTS.CLASS_NAMESPACE_LIGHT);\r\n this.enabled = 0;\r\n this._drawLogo();\r\n }\r\n\r\n /**\r\n * Updates the custom colors used in the theme and redraws the custom CSS\r\n *\r\n * @param {Object} - A colors object containing `backPrimary`, `backSecondary`,\r\n * `backHighlight`, `forePrimary`, `foreSecondary` attributes\r\n * any attribute not included will not be overriden\r\n */\r\n updateTheme(colorObject) {\r\n this.BACK_PRIMARY = colorObject.backPrimary || this.BACK_PRIMARY;\r\n this.BACK_SECONDARY = colorObject.backSecondary || this.BACK_SECONDARY;\r\n this.BACK_HIGHLIGHT = colorObject.backHighlight || this.BACK_HIGHLIGHT;\r\n this.FORE_PRIMARY = colorObject.forePrimary || this.FORE_PRIMARY;\r\n this.FORE_SECONDARY = colorObject.foreSecondary || this.FORE_SECONDARY;\r\n this.redrawTheme();\r\n }\r\n\r\n _drawLogo() {\r\n const logo = document.querySelectorAll('.menu-logo')[0];\r\n const normalSVG = BASE_SVG;\r\n const customSVG = normalSVG.replace('#EE6B00', this.FORE_SECONDARY).replace('id=\"normalSVGIcon\"', 'id=\"customSVGIcon\"');\r\n let parent;\r\n let tmpSVG;\r\n\r\n if (logo) {\r\n parent = logo.parentNode;\r\n if (this.logoObserver) {\r\n this.logoObserver.disconnect();\r\n delete this.logoObserver;\r\n }\r\n\r\n if (this.enabled) {\r\n // DEV: Only update the SVG element if we need to\r\n if (logo.nodeName === 'IMG' || logo.id === 'normalSVGIcon' || logo.getAttribute('current-custom') !== this.FORE_SECONDARY) {\r\n parent.removeChild(logo);\r\n tmpSVG = (new DOMParser()).parseFromString(customSVG, 'text/xml').firstChild;\r\n tmpSVG.setAttribute('current-custom', this.FORE_SECONDARY);\r\n parent.appendChild(tmpSVG);\r\n }\r\n } else {\r\n // DEV: Only update the SVG element if we need to\r\n if (logo.nodeName === 'IMG' || logo.id === 'customSVGIcon') {\r\n parent.removeChild(logo);\r\n parent.appendChild((new DOMParser()).parseFromString(normalSVG, 'text/xml').firstChild);\r\n }\r\n }\r\n\r\n // DEV: Google sometimes changes its logo by itself, we need to monitor this\r\n this.logoObserver = new MutationObserver(() => {\r\n this._drawLogo();\r\n });\r\n this.logoObserver.observe(parent, {\r\n childList: true,\r\n attributes: true,\r\n subtree: true,\r\n });\r\n } else {\r\n // DEV: If the logo isn't ready yet wait a few milliseconds and try again\r\n setTimeout(this._drawLogo, 10);\r\n }\r\n }\r\n\r\n _refreshStyleSheet() {\r\n // DEV: Take the current style string and put it in the style element in the DOM\r\n this.styleElement.innerHTML = this._substituteColors(BASE_CSS);\r\n }\r\n\r\n _rgba(colorCode, opacity) {\r\n return color(colorCode).clearer(opacity).rgbString();\r\n }\r\n\r\n _substituteColors(styleString) {\r\n // DEV: If replacing all colors\r\n if (this.enabled === 1) {\r\n return styleString\r\n .replace(/<>/g, this.BACK_PRIMARY)\r\n .replace(/<>/g, this.BACK_SECONDARY)\r\n .replace(/<>/g, this.BACK_HIGHLIGHT)\r\n .replace(/<>/g, this.FORE_PRIMARY)\r\n .replace(/<>/g, this.FORE_SECONDARY)\r\n .replace(/<>/g, this._rgba(this.BACK_SECONDARY, 0.5))\r\n .replace(/<> \\!important/g, '');\r\n }\r\n // DEV: Else remove all rules for anything that isn't the highlight color (foreSecondary)\r\n return styleString\r\n .replace(/\\n.+<>.*;\\n/g, '')\r\n .replace(/\\n.+<>.*;\\n/g, '')\r\n .replace(/\\n.+<>.*;\\n/g, '')\r\n .replace(/\\n.+<>.*;\\n/g, '')\r\n .replace(/<>/g, this.FORE_SECONDARY)\r\n .replace(/\\n.+<>.*;\\n/g, '')\r\n .replace(/<> \\!important/g, '');\r\n }\r\n};\r\n\n},{\"../lib/_constants\":1,\"color\":6}]},{},[7]);\n"]} \ No newline at end of file diff --git a/dist/gmusic-theme.min.js b/dist/gmusic-theme.min.js index b6f17e8..357010b 100644 --- a/dist/gmusic-theme.min.js +++ b/dist/gmusic-theme.min.js @@ -1,2 +1,2 @@ -"use strict";function _classCallCheck(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var _createClass=function(){function a(a,b){for(var c=0;cb&&(b+=360),d=(h+i)/2,c=i==h?0:.5>=d?j/(i+h):j/(2-i-h),[b,100*c,100*d]}function f(a){var b,c,d,e=a[0],f=a[1],g=a[2],h=Math.min(e,f,g),i=Math.max(e,f,g),j=i-h;return c=0==i?0:j/i*1e3/10,i==h?b=0:e==i?b=(f-g)/j:f==i?b=2+(g-e)/j:g==i&&(b=4+(e-f)/j),b=Math.min(60*b,360),0>b&&(b+=360),d=i/255*1e3/10,[b,c,d]}function h(a){var b=a[0],c=a[1],d=a[2],f=e(a)[0],g=1/255*Math.min(b,Math.min(c,d)),d=1-1/255*Math.max(b,Math.max(c,d));return[f,100*g,100*d]}function i(a){var b,c,d,e,f=a[0]/255,g=a[1]/255,h=a[2]/255;return e=Math.min(1-f,1-g,1-h),b=(1-f-e)/(1-e)||0,c=(1-g-e)/(1-e)||0,d=(1-h-e)/(1-e)||0,[100*b,100*c,100*d,100*e]}function j(a){return Z[JSON.stringify(a)]}function k(a){var b=a[0]/255,c=a[1]/255,d=a[2]/255;b=b>.04045?Math.pow((b+.055)/1.055,2.4):b/12.92,c=c>.04045?Math.pow((c+.055)/1.055,2.4):c/12.92,d=d>.04045?Math.pow((d+.055)/1.055,2.4):d/12.92;var e=.4124*b+.3576*c+.1805*d,f=.2126*b+.7152*c+.0722*d,g=.0193*b+.1192*c+.9505*d;return[100*e,100*f,100*g]}function l(a){var b,c,d,e=k(a),f=e[0],g=e[1],h=e[2];return f/=95.047,g/=100,h/=108.883,f=f>.008856?Math.pow(f,1/3):7.787*f+16/116,g=g>.008856?Math.pow(g,1/3):7.787*g+16/116,h=h>.008856?Math.pow(h,1/3):7.787*h+16/116,b=116*g-16,c=500*(f-g),d=200*(g-h),[b,c,d]}function m(a){return M(l(a))}function n(a){var b,c,d,e,f,g=a[0]/360,h=a[1]/100,i=a[2]/100;if(0==h)return f=255*i,[f,f,f];c=.5>i?i*(1+h):i+h-i*h,b=2*i-c,e=[0,0,0];for(var j=0;3>j;j++)d=g+1/3*-(j-1),0>d&&d++,d>1&&d--,f=1>6*d?b+6*(c-b)*d:1>2*d?c:2>3*d?b+(c-b)*(2/3-d)*6:b,e[j]=255*f;return e}function o(a){var b,c,d=a[0],e=a[1]/100,f=a[2]/100;return 0===f?[0,0,0]:(f*=2,e*=1>=f?f:2-f,c=(f+e)/2,b=2*e/(f+e),[d,100*b,100*c])}function p(a){return h(n(a))}function q(a){return i(n(a))}function s(a){return j(n(a))}function t(a){var b=a[0]/60,c=a[1]/100,d=a[2]/100,e=Math.floor(b)%6,f=b-Math.floor(b),g=255*d*(1-c),h=255*d*(1-c*f),i=255*d*(1-c*(1-f)),d=255*d;switch(e){case 0:return[d,i,g];case 1:return[h,d,g];case 2:return[g,d,i];case 3:return[g,h,d];case 4:return[i,g,d];case 5:return[d,g,h]}}function u(a){var b,c,d=a[0],e=a[1]/100,f=a[2]/100;return c=(2-e)*f,b=e*f,b/=1>=c?c:2-c,b=b||0,c/=2,[d,100*b,100*c]}function v(a){return h(t(a))}function w(a){return i(t(a))}function x(a){return j(t(a))}function y(a){var c,d,e,f,h=a[0]/360,i=a[1]/100,j=a[2]/100,k=i+j;switch(k>1&&(i/=k,j/=k),c=Math.floor(6*h),d=1-j,e=6*h-c,0!=(1&c)&&(e=1-e),f=i+e*(d-i),c){default:case 6:case 0:r=d,g=f,b=i;break;case 1:r=f,g=d,b=i;break;case 2:r=i,g=d,b=f;break;case 3:r=i,g=f,b=d;break;case 4:r=f,g=i,b=d;break;case 5:r=d,g=i,b=f}return[255*r,255*g,255*b]}function z(a){return e(y(a))}function A(a){return f(y(a))}function B(a){return i(y(a))}function C(a){return j(y(a))}function D(a){var b,c,d,e=a[0]/100,f=a[1]/100,g=a[2]/100,h=a[3]/100;return b=1-Math.min(1,e*(1-h)+h),c=1-Math.min(1,f*(1-h)+h),d=1-Math.min(1,g*(1-h)+h),[255*b,255*c,255*d]}function E(a){return e(D(a))}function F(a){return f(D(a))}function G(a){return h(D(a))}function H(a){return j(D(a))}function I(a){var b,c,d,e=a[0]/100,f=a[1]/100,g=a[2]/100;return b=3.2406*e+-1.5372*f+g*-.4986,c=e*-.9689+1.8758*f+.0415*g,d=.0557*e+f*-.204+1.057*g,b=b>.0031308?1.055*Math.pow(b,1/2.4)-.055:b=12.92*b,c=c>.0031308?1.055*Math.pow(c,1/2.4)-.055:c=12.92*c,d=d>.0031308?1.055*Math.pow(d,1/2.4)-.055:d=12.92*d,b=Math.min(Math.max(0,b),1),c=Math.min(Math.max(0,c),1),d=Math.min(Math.max(0,d),1),[255*b,255*c,255*d]}function J(a){var b,c,d,e=a[0],f=a[1],g=a[2];return e/=95.047,f/=100,g/=108.883,e=e>.008856?Math.pow(e,1/3):7.787*e+16/116,f=f>.008856?Math.pow(f,1/3):7.787*f+16/116,g=g>.008856?Math.pow(g,1/3):7.787*g+16/116,b=116*f-16,c=500*(e-f),d=200*(f-g),[b,c,d]}function K(a){return M(J(a))}function L(a){var b,c,d,e,f=a[0],g=a[1],h=a[2];return 8>=f?(c=100*f/903.3,e=7.787*(c/100)+16/116):(c=100*Math.pow((f+16)/116,3),e=Math.pow(c/100,1/3)),b=.008856>=b/95.047?b=95.047*(g/500+e-16/116)/7.787:95.047*Math.pow(g/500+e,3),d=.008859>=d/108.883?d=108.883*(e-h/200-16/116)/7.787:108.883*Math.pow(e-h/200,3),[b,c,d]}function M(a){var b,c,d,e=a[0],f=a[1],g=a[2];return b=Math.atan2(g,f),c=360*b/2/Math.PI,0>c&&(c+=360),d=Math.sqrt(f*f+g*g),[e,d,c]}function N(a){return I(L(a))}function O(a){var b,c,d,e=a[0],f=a[1],g=a[2];return d=g/360*2*Math.PI,b=f*Math.cos(d),c=f*Math.sin(d),[e,b,c]}function P(a){return L(O(a))}function Q(a){return N(O(a))}function R(a){return Y[a]}function S(a){return e(R(a))}function T(a){return f(R(a))}function U(a){return h(R(a))}function V(a){return i(R(a))}function W(a){return l(R(a))}function X(a){return k(R(a))}c.exports={rgb2hsl:e,rgb2hsv:f,rgb2hwb:h,rgb2cmyk:i,rgb2keyword:j,rgb2xyz:k,rgb2lab:l,rgb2lch:m,hsl2rgb:n,hsl2hsv:o,hsl2hwb:p,hsl2cmyk:q,hsl2keyword:s,hsv2rgb:t,hsv2hsl:u,hsv2hwb:v,hsv2cmyk:w,hsv2keyword:x,hwb2rgb:y,hwb2hsl:z,hwb2hsv:A,hwb2cmyk:B,hwb2keyword:C,cmyk2rgb:D,cmyk2hsl:E,cmyk2hsv:F,cmyk2hwb:G,cmyk2keyword:H,keyword2rgb:R,keyword2hsl:S,keyword2hsv:T,keyword2hwb:U,keyword2cmyk:V,keyword2lab:W,keyword2xyz:X,xyz2rgb:I,xyz2lab:J,xyz2lch:K,lab2xyz:L,lab2rgb:N,lab2lch:M,lch2lab:O,lch2xyz:P,lch2rgb:Q};var Y={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},Z={};for(var $ in Y)Z[JSON.stringify(Y[$])]=$},{}],3:[function(a,b,c){var d=a("./conversions"),e=function(){return new j};for(var f in d){e[f+"Raw"]=function(a){return function(b){return"number"==typeof b&&(b=Array.prototype.slice.call(arguments)),d[a](b)}}(f);var g=/(\w+)2(\w+)/.exec(f),h=g[1],i=g[2];e[h]=e[h]||{},e[h][i]=e[f]=function(a){return function(b){"number"==typeof b&&(b=Array.prototype.slice.call(arguments));var c=d[a](b);if("string"==typeof c||void 0===c)return c;for(var e=0;eb||a[3]&&a[3]<1?l(a,b):"rgb("+a[0]+", "+a[1]+", "+a[2]+")"}function l(a,b){return void 0===b&&(b=void 0!==a[3]?a[3]:1),"rgba("+a[0]+", "+a[1]+", "+a[2]+", "+b+")"}function m(a,b){if(1>b||a[3]&&a[3]<1)return n(a,b);var c=Math.round(a[0]/255*100),d=Math.round(a[1]/255*100),e=Math.round(a[2]/255*100);return"rgb("+c+"%, "+d+"%, "+e+"%)"}function n(a,b){var c=Math.round(a[0]/255*100),d=Math.round(a[1]/255*100),e=Math.round(a[2]/255*100);return"rgba("+c+"%, "+d+"%, "+e+"%, "+(b||a[3]||1)+")"}function o(a,b){return 1>b||a[3]&&a[3]<1?p(a,b):"hsl("+a[0]+", "+a[1]+"%, "+a[2]+"%)"}function p(a,b){return void 0===b&&(b=void 0!==a[3]?a[3]:1),"hsla("+a[0]+", "+a[1]+"%, "+a[2]+"%, "+b+")"}function q(a,b){return void 0===b&&(b=void 0!==a[3]?a[3]:1),"hwb("+a[0]+", "+a[1]+"%, "+a[2]+"%"+(void 0!==b&&1!==b?", "+b:"")+")"}function r(a){return v[a.slice(0,3)]}function s(a,b,c){return Math.min(Math.max(b,a),c)}function t(a){var b=a.toString(16).toUpperCase();return b.length<2?"0"+b:b}var u=a("color-name");b.exports={getRgba:d,getHsla:e,getRgb:g,getHsl:h,getHwb:f,getAlpha:i,hexString:j,rgbString:k,rgbaString:l,percentString:m,percentaString:n,hslString:o,hslaString:p,hwbString:q,keyword:r};var v={};for(var w in u)v[u[w]]=w},{"color-name":4}],6:[function(a,b,c){var d=a("color-convert"),e=a("color-string"),f=function g(a){if(a instanceof g)return a;if(!(this instanceof g))return new g(a);this.values={rgb:[0,0,0],hsl:[0,0,0],hsv:[0,0,0],hwb:[0,0,0],cmyk:[0,0,0,0],alpha:1};var b;if("string"==typeof a)if(b=e.getRgba(a))this.setValues("rgb",b);else if(b=e.getHsla(a))this.setValues("hsl",b);else{if(!(b=e.getHwb(a)))throw new Error('Unable to parse color from string "'+a+'"');this.setValues("hwb",b)}else if("object"===("undefined"==typeof a?"undefined":_typeof(a)))if(b=a,void 0!==b.r||void 0!==b.red)this.setValues("rgb",b);else if(void 0!==b.l||void 0!==b.lightness)this.setValues("hsl",b);else if(void 0!==b.v||void 0!==b.value)this.setValues("hsv",b);else if(void 0!==b.w||void 0!==b.whiteness)this.setValues("hwb",b);else{if(void 0===b.c&&void 0===b.cyan)throw new Error("Unable to parse color from object "+JSON.stringify(a));this.setValues("cmyk",b)}};f.prototype={rgb:function(){return this.setSpace("rgb",arguments)},hsl:function(){return this.setSpace("hsl",arguments)},hsv:function(){return this.setSpace("hsv",arguments)},hwb:function(){return this.setSpace("hwb",arguments)},cmyk:function(){return this.setSpace("cmyk",arguments)},rgbArray:function(){return this.values.rgb},hslArray:function(){return this.values.hsl},hsvArray:function(){return this.values.hsv},hwbArray:function(){return 1!==this.values.alpha?this.values.hwb.concat([this.values.alpha]):this.values.hwb},cmykArray:function(){return this.values.cmyk},rgbaArray:function(){var a=this.values.rgb;return a.concat([this.values.alpha])},hslaArray:function(){var a=this.values.hsl;return a.concat([this.values.alpha])},alpha:function(a){return void 0===a?this.values.alpha:(this.setValues("alpha",a),this)},red:function(a){return this.setChannel("rgb",0,a)},green:function(a){return this.setChannel("rgb",1,a)},blue:function(a){return this.setChannel("rgb",2,a)},hue:function(a){return a&&(a%=360,a=0>a?360+a:a),this.setChannel("hsl",0,a)},saturation:function(a){return this.setChannel("hsl",1,a)},lightness:function(a){return this.setChannel("hsl",2,a)},saturationv:function(a){return this.setChannel("hsv",1,a)},whiteness:function(a){return this.setChannel("hwb",1,a)},blackness:function(a){return this.setChannel("hwb",2,a)},value:function(a){return this.setChannel("hsv",2,a)},cyan:function(a){return this.setChannel("cmyk",0,a)},magenta:function(a){return this.setChannel("cmyk",1,a)},yellow:function(a){return this.setChannel("cmyk",2,a)},black:function(a){return this.setChannel("cmyk",3,a)},hexString:function(){return e.hexString(this.values.rgb)},rgbString:function(){return e.rgbString(this.values.rgb,this.values.alpha)},rgbaString:function(){return e.rgbaString(this.values.rgb,this.values.alpha)},percentString:function(){return e.percentString(this.values.rgb,this.values.alpha)},hslString:function(){return e.hslString(this.values.hsl,this.values.alpha)},hslaString:function(){return e.hslaString(this.values.hsl,this.values.alpha)},hwbString:function(){return e.hwbString(this.values.hwb,this.values.alpha)},keyword:function(){return e.keyword(this.values.rgb,this.values.alpha)},rgbNumber:function(){return this.values.rgb[0]<<16|this.values.rgb[1]<<8|this.values.rgb[2]},luminosity:function(){for(var a=this.values.rgb,b=[],c=0;c=d?d/12.92:Math.pow((d+.055)/1.055,2.4)}return.2126*b[0]+.7152*b[1]+.0722*b[2]},contrast:function(a){var b=this.luminosity(),c=a.luminosity();return b>c?(b+.05)/(c+.05):(c+.05)/(b+.05)},level:function(a){var b=this.contrast(a);return b>=7.1?"AAA":b>=4.5?"AA":""},dark:function(){var a=this.values.rgb,b=(299*a[0]+587*a[1]+114*a[2])/1e3;return 128>b},light:function(){return!this.dark()},negate:function(){for(var a=[],b=0;3>b;b++)a[b]=255-this.values.rgb[b];return this.setValues("rgb",a),this},lighten:function(a){return this.values.hsl[2]+=this.values.hsl[2]*a,this.setValues("hsl",this.values.hsl),this},darken:function(a){return this.values.hsl[2]-=this.values.hsl[2]*a,this.setValues("hsl",this.values.hsl),this},saturate:function(a){return this.values.hsl[1]+=this.values.hsl[1]*a,this.setValues("hsl",this.values.hsl),this},desaturate:function(a){return this.values.hsl[1]-=this.values.hsl[1]*a,this.setValues("hsl",this.values.hsl),this},whiten:function(a){return this.values.hwb[1]+=this.values.hwb[1]*a,this.setValues("hwb",this.values.hwb),this},blacken:function(a){return this.values.hwb[2]+=this.values.hwb[2]*a,this.setValues("hwb",this.values.hwb),this},greyscale:function(){var a=this.values.rgb,b=.3*a[0]+.59*a[1]+.11*a[2];return this.setValues("rgb",[b,b,b]),this},clearer:function(a){return this.setValues("alpha",this.values.alpha-this.values.alpha*a),this},opaquer:function(a){return this.setValues("alpha",this.values.alpha+this.values.alpha*a),this},rotate:function(a){var b=this.values.hsl[0];return b=(b+a)%360,b=0>b?360+b:b,this.values.hsl[0]=b,this.setValues("hsl",this.values.hsl),this},mix:function(a,b){var c=this,d=a,e=void 0===b?.5:b,f=2*e-1,g=c.alpha()-d.alpha(),h=((f*g===-1?f:(f+g)/(1+f*g))+1)/2,i=1-h;return this.rgb(h*c.red()+i*d.red(),h*c.green()+i*d.green(),h*c.blue()+i*d.blue()).alpha(c.alpha()*e+d.alpha()*(1-e))},toJSON:function(){return this.rgb()},clone:function(){return new f(this.rgb())}},f.prototype.getValues=function(a){for(var b={},c=0;c> !important;\n}\n\n.gmusic-theme #material-app-bar .tab-text,\n.gmusic-theme [data-id="prev-history"],\n.gmusic-theme [data-id="next-history"],\n.gmusic-theme #searchIcon {\n color: <> !important;\n}\n\n.gmusic-theme #material-one-left #left-nav-open-button svg {\n fill: <> !important;\n}\n\nbody.gmusic-theme {\n background-color: <> !important;\n}\n\n.gmusic-theme #drawer,\n.gmusic-theme .material-card {\n background-color: <> !important;\n}\n\n.gmusic-theme #nav-container,\n.gmusic-theme #loading-overlay,\n.gmusic-theme #loading-progress,\n.gmusic-theme #loading-progress-bar {\n background: <> !important;\n}\n\n.gmusic-theme #loading-progress-bar {\n border: none !important;\n}\n\n.gmusic-theme .nav-toolbar,\n.gmusic-theme .material-card .details,\n.gmusic-theme .material-card .image-wrapper,\n.gmusic-theme .situations-filter {\n background: <> !important;\n}\n\n.gmusic-theme #nav {\n background: <> !important;\n color: <> !important;\n}\n\n.gmusic-theme #player,\n.gmusic-theme .player-rating-container,\n.gmusic-theme #player.material .now-playing-actions paper-icon-button {\n color: <> !important;\n background-color: <> !important;\n}\n\n.gmusic-theme #player.material paper-icon-button.playing > iron-icon::before {\n content: \'\' !important;\n display: block !important;\n position: absolute !important;\n background: <> !important;\n z-index: -1 !important;\n border-radius: 100% !important;\n height: calc(100% - 16px) !important;\n width: calc(100% - 16px) !important;\n top: 8px !important;\n left: 8px !important;\n}\n\n.gmusic-theme #player.material:hover #material-player-progress #sliderContainer:not(.disabled) #sliderBar #progressContainer,\n.gmusic-theme .playlist-view .editable:hover {\n background: <> !important;\n}\n\n.gmusic-theme .cluster-text-protection::before,\n.gmusic-theme .cluster-text-protection {\n background: transparent !important;\n}\n\n.gmusic-theme .title,\n.gmusic-theme .situation-title,\n.gmusic-theme .recommended-header {\n color: <> !important;\n}\n\n.gmusic-theme .nav-item-container {\n color: <> !important;\n}\n\n.gmusic-theme #nav_collections .nav-item-container:focus,\n.gmusic-theme .nav-item-container:focus,\n.gmusic-theme .nav-item-container:hover,\n.gmusic-theme .nav-item-container.selected {\n background-color: <> !important;\n}\n\n.gmusic-theme .nav-item-container:not(:focus):hover iron-icon {\n color: <> !important;\n}\n\n.gmusic-theme #nav_collections .nav-item-container:focus iron-icon,\n.gmusic-theme .nav-item-container:focus iron-icon {\n color: <> !important;\n}\n\n.gmusic-theme .fade-out:after {\n display: none !important;\n}\n\n.gmusic-theme .column.col-0 .material-card:first-child .image-wrapper {\n padding-top: 0 !important;\n}\n\n.gmusic-theme .song-row .song-indicator {\n background-image: url(\'ani_equalizer_white_x2.gif\') !important;\n background-size: 28px 28px !important;\n background-color: <> !important;\n}\n\n.gmusic-theme .song-row:hover .song-indicator {\n background-color: <> !important;\n}\n\n.gmusic-theme .material-detail-view .has-hero-image,\n.gmusic-theme .song-row td,\n.gmusic-theme .song-row td > *,\n.gmusic-theme .upload-progress-row td,\n.gmusic-theme .song-row.selected-song-row td {\n background-color: <> !important;\n color: <> !important;\n}\n\n.gmusic-theme .song-row.selected-song-row .song-indicator,\n.gmusic-theme .song-row.selected-song-row .title-right-items,\n.gmusic-theme .song-row.selected-song-row .content,\n.gmusic-theme .song-row.selected-song-row .song-indicator[data-playback-status="paused"],\n.gmusic-theme .song-row.selected-song-row .song-indicator[data-playback-status="loading"],\n.gmusic-theme .song-row.selected-song-row [data-col="index"] .hover-button[data-id="play"],\n.gmusic-theme .song-row.selected-song-row [data-col="track"] .hover-button[data-id="play"],\n.gmusic-theme .song-row.selected-song-row td,\n.gmusic-theme .song-row.selected-song-row td > * {\n background-color: <> !important;\n}\n\n.gmusic-theme .song-row:hover,\n.gmusic-theme .song-row.hover .song-indicator,\n.gmusic-theme .song-row.hover .title-right-items,\n.gmusic-theme .song-row.hover .content,\n.gmusic-theme .song-row.hover .song-indicator[data-playback-status="paused"],\n.gmusic-theme .song-row.hover .song-indicator[data-playback-status="loading"],\n.gmusic-theme .song-row.hover [data-col="index"] .hover-button[data-id="play"],\n.gmusic-theme .song-row.hover [data-col="track"] .hover-button[data-id="play"],\n.gmusic-theme .song-row.hover td,\n.gmusic-theme .song-row.hover td > * {\n background-color: <> !important;\n}\n\nbody.gmusic-theme.material,\n.gmusic-theme .material-detail-view .material-container-details .info .description,\n.gmusic-theme .song-table th {\n color: #efefef !important;\n}\n\n.gmusic-theme .song-row.hover [data-col="track"] .hover-button[data-id="play"] {\n background-color: <> !important;\n}\n\n.gmusic-theme .song-row [data-col="index"] .song-indicator {\n background-color: <> !important;\n}\n\n.gmusic-theme .song-row.hover [data-col="index"] .song-indicator,\n.gmusic-theme .song-row.selected-song-row [data-col="index"] .song-indicator {\n background-color: <> !important;\n}\n\n.gmusic-theme .song-row.selected-song-row.hover [data-col="index"] .hover-button[data-id="play"] {\n background-color: <> !important;\n}\n\n.gmusic-theme .songlist-container {\n background-color: <> !important;\n}\n\n.gmusic-theme .nav-section-divider {\n border-bottom: 1px solid <> !important;\n}\n\n.gmusic-theme .goog-menu,\n.gmusic-theme .now-playing-menu .goog-menuitem,\n.gmusic-theme .now-playing-menu .goog-submenu,\n.gmusic-theme .now-playing-menu .goog-submenu .goog-submenu-arrow,\n.gmusic-theme .goog-menuitem {\n background-color: <> !important;\n}\n\n.gmusic-theme .goog-menu .goog-menuitem .goog-menuitem-content,\n.gmusic-theme .goog-menuitem-highlight .goog-menuitem-content .goog-submenu-arrow,\n.gmusic-theme .goog-menuitem-highlight .goog-menuitem-content {\n color: <> !important;\n}\n\n.gmusic-theme .goog-menu .goog-menuitem.selected .goog-menuitem-content {\n color: <> !important;\n}\n\n.gmusic-theme .goog-menu .goog-menuitem:hover,\n.gmusic-theme .goog-menu .goog-menuseparator {\n background-color: <> !important;\n}\n\n.gmusic-theme .material-detail-view .artist-details .bio-wrapper .bio {\n color: <> !important;\n}\n\n.gmusic-theme .song-row.hover td a,\n.gmusic-theme .song-row.selected-song-row td a {\n color: <> !important;\n}\n\n.gmusic-theme paper-action-dialog {\n background: <> !important;\n color: <> !important;\n}\n\n.gmusic-theme .settings-card {\n background-color: <> !important;\n color: <> !important;\n}\n\n.gmusic-theme #queue-overlay {\n background-color: <> !important;\n}\n\n.gmusic-theme #queue-overlay::after {\n border-color: transparent transparent <> <> !important;\n}\n\n.gmusic-theme .upload-dialog-content {\n background-color: <> !important;\n}\n\n.gmusic-theme .upload-dialog-description {\n color: <> !important;\n}\n\n.gmusic-theme .song-row:hover [data-col="index"] .hover-button[data-id="play"] {\n background-color: <> !important;\n}\n\n.gmusic-theme .goog-menuheader {\n color: <> !important;\n}\n\n.gmusic-theme .paper-progress-1 #primaryProgress.paper-progress {\n background-color: <> !important;\n}\n\n.gmusic-theme .album-view .material-container-details .info .title .explicit {\n background-color: <> !important;\n}\n\n.gmusic-theme .paper-input-container-0 .input-content.label-is-highlighted.paper-input-container label,\n.gmusic-theme .paper-input-container-0 .input-content.label-is-highlighted.paper-input-container .paper-input-label {\n color: <> !important;\n}\n\n.gmusic-theme .paper-input-container-0 .input-content.paper-input-container input,\n.gmusic-theme .paper-input-container-0 .input-content.paper-input-container textarea,\n.gmusic-theme .paper-input-container-0 .input-content.paper-input-container iron-autogrow-textarea,\n.gmusic-theme .paper-input-container-0 .input-content.paper-input-container .paper-input-input,\n.gmusic-theme .material-share-options #sharing-option-label {\n color: <> !important;\n}\n\n.gmusic-theme .paper-input-container-0 .add-on-content.is-highlighted.paper-input-container * {\n color: <> !important;\n}\n\n.gmusic-theme .material-container-details paper-fab,\n.gmusic-theme #current-loading-progress {\n background-color: <> !important;\n}\n\n.gmusic-theme #player.material .material-player-middle paper-icon-button[data-id="play-pause"]:not([disabled]) {\n color: <> !important;\n}\n\n.gmusic-theme #loading-overlay.material[data-type="full-loading-overlay"],\n.gmusic-theme #loading-overlay.material[data-type="regular-loading-overlay"] {\n background: <> !important;\n}\n\n.gmusic-theme iron-overlay-backdrop {\n background: <> !important;\n}\n\n.gmusic-theme #loading-overlay.material paper-spinner .circle,\n.gmusic-theme #loading-overlay.material paper-spinner-lite .circle {\n border-color: <><> !important;\n}\n\n.gmusic-theme a.primary {\n color: <> !important;\n}\n\n.gmusic-theme paper-button.material-primary {\n background-color: <> !important;\n}\n\n.gmusic-theme paper-checkbox #checkbox.checked {\n border-color: <> !important;\n background-color: <> !important;\n}\n\n.gmusic-theme paper-checkbox #ink {\n color: <> !important;\n}\n\n.gmusic-theme paper-checkbox #checkboxLabel {\n color: <> !important;\n}\n\n.gmusic-theme paper-toggle-button[checked] .toggle-button {\n background-color: <> !important;\n}\n\n.gmusic-theme paper-toggle-button[checked] .toggle-bar {\n background-color: <> !important;\n}\n\n.gmusic-theme paper-toggle-button[checked] .toggle-ink {\n color: <> !important;\n}\n\n.gmusic-theme .paper-slider-0 #sliderKnobInner.paper-slider,\n.gmusic-theme #sliderKnobInner.paper-slider,\n.gmusic-theme .paper-progress-0 #primaryProgress.paper-progress {\n background-color: <> !important;\n}\n\n.gmusic-theme .nav-item-container.selected iron-icon {\n color: <> !important;\n}\n\n.gmusic-theme .upload-dialog-title {\n background-color: <> !important;\n}\n\n.gmusic-theme a,\n.gmusic-theme .simple-dialog a {\n color: <> !important;\n}\n\n.gmusic-theme .song-table [data-col="title"],\n.gmusic-theme .song-table.mini [data-col="song-details"] .song-title {\n color: <> !important;\n}\n\n.gmusic-theme .subcategories-list,\n.gmusic-theme .material-detail-view .station-container-content-wrapper .material-container-details {\n background-color: <> !important;\n}\n\n.gmusic-theme .material-list li a:hover,\n.gmusic-theme .material-list li a:focus {\n background-color: <> !important;\n}\n\n.gmusic-theme .paper-input-container-0 .focused-line.paper-input-container {\n background-color: <> !important;\n}\n\n.gmusic-theme paper-action-dialog paper-button,\n.gmusic-theme paper-dialog .buttons paper-button,\n.gmusic-theme .share-buttons .share-button .button-label {\n color: <> !important;\n}\n\n.gmusic-theme .song-row:hover td,\n.gmusic-theme .song-row:hover td > * {\n background: <> !important;\n}\n\n.gmusic-theme .song-row:hover [data-col="track"] .hover-button[data-id="play"] {\n background-color: <> !important;\n}\n\n.gmusic-theme .rating-container li {\n -webkit-filter: invert(1) !important;\n}\n\n.gmusic-theme #player.material .material-player-middle paper-icon-button[data-id="repeat"][value="LIST_REPEAT"],\n.gmusic-theme #player.material .material-player-middle paper-icon-button[data-id="repeat"][value="SINGLE_REPEAT"],\n.gmusic-theme #player.material .material-player-middle paper-icon-button[data-id="shuffle"][value="ALL_SHUFFLE"],\n.gmusic-theme #player.material .material-player-middle paper-icon-button[data-id="repeat"][value="LIST_REPEAT"],\n.gmusic-theme #player.material .material-player-middle paper-icon-button[data-id="repeat"][value="SINGLE_REPEAT"],\n.gmusic-theme #player.material .material-player-middle paper-icon-button[data-id="shuffle"][value="ALL_SHUFFLE"] {\n color: <> !important;\n}\n\n.gmusic-theme .cluster .lane-button core-icon,\n.gmusic-theme .cluster .lane-button iron-icon,\n.gmusic-theme #player.material .material-player-middle paper-icon-button[data-id="repeat"].active,\n.gmusic-theme #player.material .material-player-middle paper-icon-button[data-id="shuffle"].active,\n.gmusic-theme #player.material #material-player-right-wrapper paper-icon-button[data-id="queue"].opened {\n color: <> !important;\n}\n\n.gmusic-theme .cluster .header .cluster-title,\n.gmusic-theme .cluster .header .subtitle {\n color: <> !important;\n}\n\n.gmusic-theme .song-row .explicit,\n.gmusic-theme .material-card .explicit {\n background-color: <> !important;\n}\n\n.gmusic-theme .material-detail-view .material-container-details .read-more-button {\n color: <> !important;\n}\n\n.gmusic-theme paper-dialog {\n background: <> !important;\n color: <> !important;\n}\n\n.gmusic-theme .simple-dialog {\n background-color: <> !important;\n border-color: <> !important;\n}\n\n.gmusic-theme .simple-dialog,\n.gmusic-theme .simple-dialog > div {\n background-color: <> !important;\n color: <> !important;\n}\n\n.gmusic-theme .goog-buttonset-default {\n background-color: <> !important;\n}\n\n.gmusic-theme button.goog-buttonset-default,\n.gmusic-theme button.goog-buttonset-default:hover {\n background-color: <> !important;\n}\n\n.gmusic-theme .top-charts-view .song-row [data-col="index"] .column-content,\n.gmusic-theme .material-card .details .left-items .index,\n.gmusic-theme .more-songs-container {\n color: <> !important;\n}\n\n.gmusic-theme .material-detail-view .top-tracks {\n background-color: <> !important;\n}',f='\r\n',g=a("../lib/_constants"); -window.GMusicTheme=function(){function a(){var b=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];_classCallCheck(this,a),this.BACK_PRIMARY="#222326",this.BACK_SECONDARY="#121314",this.BACK_HIGHLIGHT="#615F59",this.FORE_PRIMARY="#FFFFFF",this.FORE_SECONDARY="#1ED760",this.enabled=!1,b.enabled&&this.enable(),this.styleElement=document.createElement("style"),document.body.appendChild(this.styleElement),this.updateTheme(b)}return _createClass(a,[{key:"redrawTheme",value:function(){this._refreshStyleSheet(),this._drawLogo()}},{key:"enable",value:function(){document.body.classList.add(g.CLASS_NAMESPACE),this.enabled=!0,this._drawLogo()}},{key:"disable",value:function(){document.body.classList.remove(g.CLASS_NAMESPACE),this.enabled=!1,this._drawLogo()}},{key:"updateTheme",value:function(a){this.BACK_PRIMARY=a.backPrimary||this.BACK_PRIMARY,this.BACK_SECONDARY=a.backSecondary||this.BACK_SECONDARY,this.BACK_HIGHLIGHT=a.backHighlight||this.BACK_HIGHLIGHT,this.FORE_PRIMARY=a.forePrimary||this.FORE_PRIMARY,this.FORE_SECONDARY=a.foreSecondary||this.FORE_SECONDARY,this.redrawTheme()}},{key:"_drawLogo",value:function(){var a=this,b=document.querySelectorAll(".menu-logo")[0],c=f,d=c.replace("#EE6B00",this.FORE_SECONDARY).replace('id="normalSVGIcon"','id="customSVGIcon"'),e=void 0,g=void 0;b?(e=b.parentNode,this.logoObserver&&(this.logoObserver.disconnect(),delete this.logoObserver),this.enabled?"IMG"!==b.nodeName&&"normalSVGIcon"!==b.id&&b.getAttribute("current-custom")===this.FORE_SECONDARY||(e.removeChild(b),g=(new DOMParser).parseFromString(d,"text/xml").firstChild,g.setAttribute("current-custom",this.FORE_SECONDARY),e.appendChild(g)):"IMG"!==b.nodeName&&"customSVGIcon"!==b.id||(e.removeChild(b),e.appendChild((new DOMParser).parseFromString(c,"text/xml").firstChild)),this.logoObserver=new MutationObserver(function(){a._drawLogo()}),this.logoObserver.observe(e,{childList:!0,attributes:!0,subtree:!0})):setTimeout(this._drawLogo,10)}},{key:"_refreshStyleSheet",value:function(){this.styleElement.innerHTML=this._substituteColors(e)}},{key:"_rgba",value:function(a,b){return d(a).clearer(b).rgbString()}},{key:"_substituteColors",value:function(a){return a.replace(/<>/g,this.BACK_PRIMARY).replace(/<>/g,this.BACK_SECONDARY).replace(/<>/g,this.BACK_HIGHLIGHT).replace(/<>/g,this.FORE_PRIMARY).replace(/<>/g,this.FORE_SECONDARY).replace(/<>/g,this._rgba(this.BACK_SECONDARY,.5)).replace(/<> \!important/g,"")}}]),a}()},{"../lib/_constants":1,color:6}]},{},[7]); \ No newline at end of file +"use strict";function _classCallCheck(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var _createClass=function(){function a(a,b){for(var c=0;cb&&(b+=360),d=(h+i)/2,c=i==h?0:.5>=d?j/(i+h):j/(2-i-h),[b,100*c,100*d]}function f(a){var b,c,d,e=a[0],f=a[1],g=a[2],h=Math.min(e,f,g),i=Math.max(e,f,g),j=i-h;return c=0==i?0:j/i*1e3/10,i==h?b=0:e==i?b=(f-g)/j:f==i?b=2+(g-e)/j:g==i&&(b=4+(e-f)/j),b=Math.min(60*b,360),0>b&&(b+=360),d=i/255*1e3/10,[b,c,d]}function h(a){var b=a[0],c=a[1],d=a[2],f=e(a)[0],g=1/255*Math.min(b,Math.min(c,d)),d=1-1/255*Math.max(b,Math.max(c,d));return[f,100*g,100*d]}function i(a){var b,c,d,e,f=a[0]/255,g=a[1]/255,h=a[2]/255;return e=Math.min(1-f,1-g,1-h),b=(1-f-e)/(1-e)||0,c=(1-g-e)/(1-e)||0,d=(1-h-e)/(1-e)||0,[100*b,100*c,100*d,100*e]}function j(a){return Z[JSON.stringify(a)]}function k(a){var b=a[0]/255,c=a[1]/255,d=a[2]/255;b=b>.04045?Math.pow((b+.055)/1.055,2.4):b/12.92,c=c>.04045?Math.pow((c+.055)/1.055,2.4):c/12.92,d=d>.04045?Math.pow((d+.055)/1.055,2.4):d/12.92;var e=.4124*b+.3576*c+.1805*d,f=.2126*b+.7152*c+.0722*d,g=.0193*b+.1192*c+.9505*d;return[100*e,100*f,100*g]}function l(a){var b,c,d,e=k(a),f=e[0],g=e[1],h=e[2];return f/=95.047,g/=100,h/=108.883,f=f>.008856?Math.pow(f,1/3):7.787*f+16/116,g=g>.008856?Math.pow(g,1/3):7.787*g+16/116,h=h>.008856?Math.pow(h,1/3):7.787*h+16/116,b=116*g-16,c=500*(f-g),d=200*(g-h),[b,c,d]}function m(a){return M(l(a))}function n(a){var b,c,d,e,f,g=a[0]/360,h=a[1]/100,i=a[2]/100;if(0==h)return f=255*i,[f,f,f];c=.5>i?i*(1+h):i+h-i*h,b=2*i-c,e=[0,0,0];for(var j=0;3>j;j++)d=g+1/3*-(j-1),0>d&&d++,d>1&&d--,f=1>6*d?b+6*(c-b)*d:1>2*d?c:2>3*d?b+(c-b)*(2/3-d)*6:b,e[j]=255*f;return e}function o(a){var b,c,d=a[0],e=a[1]/100,f=a[2]/100;return 0===f?[0,0,0]:(f*=2,e*=1>=f?f:2-f,c=(f+e)/2,b=2*e/(f+e),[d,100*b,100*c])}function p(a){return h(n(a))}function q(a){return i(n(a))}function s(a){return j(n(a))}function t(a){var b=a[0]/60,c=a[1]/100,d=a[2]/100,e=Math.floor(b)%6,f=b-Math.floor(b),g=255*d*(1-c),h=255*d*(1-c*f),i=255*d*(1-c*(1-f)),d=255*d;switch(e){case 0:return[d,i,g];case 1:return[h,d,g];case 2:return[g,d,i];case 3:return[g,h,d];case 4:return[i,g,d];case 5:return[d,g,h]}}function u(a){var b,c,d=a[0],e=a[1]/100,f=a[2]/100;return c=(2-e)*f,b=e*f,b/=1>=c?c:2-c,b=b||0,c/=2,[d,100*b,100*c]}function v(a){return h(t(a))}function w(a){return i(t(a))}function x(a){return j(t(a))}function y(a){var c,d,e,f,h=a[0]/360,i=a[1]/100,j=a[2]/100,k=i+j;switch(k>1&&(i/=k,j/=k),c=Math.floor(6*h),d=1-j,e=6*h-c,0!=(1&c)&&(e=1-e),f=i+e*(d-i),c){default:case 6:case 0:r=d,g=f,b=i;break;case 1:r=f,g=d,b=i;break;case 2:r=i,g=d,b=f;break;case 3:r=i,g=f,b=d;break;case 4:r=f,g=i,b=d;break;case 5:r=d,g=i,b=f}return[255*r,255*g,255*b]}function z(a){return e(y(a))}function A(a){return f(y(a))}function B(a){return i(y(a))}function C(a){return j(y(a))}function D(a){var b,c,d,e=a[0]/100,f=a[1]/100,g=a[2]/100,h=a[3]/100;return b=1-Math.min(1,e*(1-h)+h),c=1-Math.min(1,f*(1-h)+h),d=1-Math.min(1,g*(1-h)+h),[255*b,255*c,255*d]}function E(a){return e(D(a))}function F(a){return f(D(a))}function G(a){return h(D(a))}function H(a){return j(D(a))}function I(a){var b,c,d,e=a[0]/100,f=a[1]/100,g=a[2]/100;return b=3.2406*e+-1.5372*f+g*-.4986,c=e*-.9689+1.8758*f+.0415*g,d=.0557*e+f*-.204+1.057*g,b=b>.0031308?1.055*Math.pow(b,1/2.4)-.055:b=12.92*b,c=c>.0031308?1.055*Math.pow(c,1/2.4)-.055:c=12.92*c,d=d>.0031308?1.055*Math.pow(d,1/2.4)-.055:d=12.92*d,b=Math.min(Math.max(0,b),1),c=Math.min(Math.max(0,c),1),d=Math.min(Math.max(0,d),1),[255*b,255*c,255*d]}function J(a){var b,c,d,e=a[0],f=a[1],g=a[2];return e/=95.047,f/=100,g/=108.883,e=e>.008856?Math.pow(e,1/3):7.787*e+16/116,f=f>.008856?Math.pow(f,1/3):7.787*f+16/116,g=g>.008856?Math.pow(g,1/3):7.787*g+16/116,b=116*f-16,c=500*(e-f),d=200*(f-g),[b,c,d]}function K(a){return M(J(a))}function L(a){var b,c,d,e,f=a[0],g=a[1],h=a[2];return 8>=f?(c=100*f/903.3,e=7.787*(c/100)+16/116):(c=100*Math.pow((f+16)/116,3),e=Math.pow(c/100,1/3)),b=.008856>=b/95.047?b=95.047*(g/500+e-16/116)/7.787:95.047*Math.pow(g/500+e,3),d=.008859>=d/108.883?d=108.883*(e-h/200-16/116)/7.787:108.883*Math.pow(e-h/200,3),[b,c,d]}function M(a){var b,c,d,e=a[0],f=a[1],g=a[2];return b=Math.atan2(g,f),c=360*b/2/Math.PI,0>c&&(c+=360),d=Math.sqrt(f*f+g*g),[e,d,c]}function N(a){return I(L(a))}function O(a){var b,c,d,e=a[0],f=a[1],g=a[2];return d=g/360*2*Math.PI,b=f*Math.cos(d),c=f*Math.sin(d),[e,b,c]}function P(a){return L(O(a))}function Q(a){return N(O(a))}function R(a){return Y[a]}function S(a){return e(R(a))}function T(a){return f(R(a))}function U(a){return h(R(a))}function V(a){return i(R(a))}function W(a){return l(R(a))}function X(a){return k(R(a))}c.exports={rgb2hsl:e,rgb2hsv:f,rgb2hwb:h,rgb2cmyk:i,rgb2keyword:j,rgb2xyz:k,rgb2lab:l,rgb2lch:m,hsl2rgb:n,hsl2hsv:o,hsl2hwb:p,hsl2cmyk:q,hsl2keyword:s,hsv2rgb:t,hsv2hsl:u,hsv2hwb:v,hsv2cmyk:w,hsv2keyword:x,hwb2rgb:y,hwb2hsl:z,hwb2hsv:A,hwb2cmyk:B,hwb2keyword:C,cmyk2rgb:D,cmyk2hsl:E,cmyk2hsv:F,cmyk2hwb:G,cmyk2keyword:H,keyword2rgb:R,keyword2hsl:S,keyword2hsv:T,keyword2hwb:U,keyword2cmyk:V,keyword2lab:W,keyword2xyz:X,xyz2rgb:I,xyz2lab:J,xyz2lch:K,lab2xyz:L,lab2rgb:N,lab2lch:M,lch2lab:O,lch2xyz:P,lch2rgb:Q};var Y={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},Z={};for(var $ in Y)Z[JSON.stringify(Y[$])]=$},{}],3:[function(a,b,c){var d=a("./conversions"),e=function(){return new j};for(var f in d){e[f+"Raw"]=function(a){return function(b){return"number"==typeof b&&(b=Array.prototype.slice.call(arguments)),d[a](b)}}(f);var g=/(\w+)2(\w+)/.exec(f),h=g[1],i=g[2];e[h]=e[h]||{},e[h][i]=e[f]=function(a){return function(b){"number"==typeof b&&(b=Array.prototype.slice.call(arguments));var c=d[a](b);if("string"==typeof c||void 0===c)return c;for(var e=0;eb||a[3]&&a[3]<1?l(a,b):"rgb("+a[0]+", "+a[1]+", "+a[2]+")"}function l(a,b){return void 0===b&&(b=void 0!==a[3]?a[3]:1),"rgba("+a[0]+", "+a[1]+", "+a[2]+", "+b+")"}function m(a,b){if(1>b||a[3]&&a[3]<1)return n(a,b);var c=Math.round(a[0]/255*100),d=Math.round(a[1]/255*100),e=Math.round(a[2]/255*100);return"rgb("+c+"%, "+d+"%, "+e+"%)"}function n(a,b){var c=Math.round(a[0]/255*100),d=Math.round(a[1]/255*100),e=Math.round(a[2]/255*100);return"rgba("+c+"%, "+d+"%, "+e+"%, "+(b||a[3]||1)+")"}function o(a,b){return 1>b||a[3]&&a[3]<1?p(a,b):"hsl("+a[0]+", "+a[1]+"%, "+a[2]+"%)"}function p(a,b){return void 0===b&&(b=void 0!==a[3]?a[3]:1),"hsla("+a[0]+", "+a[1]+"%, "+a[2]+"%, "+b+")"}function q(a,b){return void 0===b&&(b=void 0!==a[3]?a[3]:1),"hwb("+a[0]+", "+a[1]+"%, "+a[2]+"%"+(void 0!==b&&1!==b?", "+b:"")+")"}function r(a){return v[a.slice(0,3)]}function s(a,b,c){return Math.min(Math.max(b,a),c)}function t(a){var b=a.toString(16).toUpperCase();return b.length<2?"0"+b:b}var u=a("color-name");b.exports={getRgba:d,getHsla:e,getRgb:g,getHsl:h,getHwb:f,getAlpha:i,hexString:j,rgbString:k,rgbaString:l,percentString:m,percentaString:n,hslString:o,hslaString:p,hwbString:q,keyword:r};var v={};for(var w in u)v[u[w]]=w},{"color-name":4}],6:[function(a,b,c){var d=a("color-convert"),e=a("color-string"),f=function g(a){if(a instanceof g)return a;if(!(this instanceof g))return new g(a);this.values={rgb:[0,0,0],hsl:[0,0,0],hsv:[0,0,0],hwb:[0,0,0],cmyk:[0,0,0,0],alpha:1};var b;if("string"==typeof a)if(b=e.getRgba(a))this.setValues("rgb",b);else if(b=e.getHsla(a))this.setValues("hsl",b);else{if(!(b=e.getHwb(a)))throw new Error('Unable to parse color from string "'+a+'"');this.setValues("hwb",b)}else if("object"===("undefined"==typeof a?"undefined":_typeof(a)))if(b=a,void 0!==b.r||void 0!==b.red)this.setValues("rgb",b);else if(void 0!==b.l||void 0!==b.lightness)this.setValues("hsl",b);else if(void 0!==b.v||void 0!==b.value)this.setValues("hsv",b);else if(void 0!==b.w||void 0!==b.whiteness)this.setValues("hwb",b);else{if(void 0===b.c&&void 0===b.cyan)throw new Error("Unable to parse color from object "+JSON.stringify(a));this.setValues("cmyk",b)}};f.prototype={rgb:function(){return this.setSpace("rgb",arguments)},hsl:function(){return this.setSpace("hsl",arguments)},hsv:function(){return this.setSpace("hsv",arguments)},hwb:function(){return this.setSpace("hwb",arguments)},cmyk:function(){return this.setSpace("cmyk",arguments)},rgbArray:function(){return this.values.rgb},hslArray:function(){return this.values.hsl},hsvArray:function(){return this.values.hsv},hwbArray:function(){return 1!==this.values.alpha?this.values.hwb.concat([this.values.alpha]):this.values.hwb},cmykArray:function(){return this.values.cmyk},rgbaArray:function(){var a=this.values.rgb;return a.concat([this.values.alpha])},hslaArray:function(){var a=this.values.hsl;return a.concat([this.values.alpha])},alpha:function(a){return void 0===a?this.values.alpha:(this.setValues("alpha",a),this)},red:function(a){return this.setChannel("rgb",0,a)},green:function(a){return this.setChannel("rgb",1,a)},blue:function(a){return this.setChannel("rgb",2,a)},hue:function(a){return a&&(a%=360,a=0>a?360+a:a),this.setChannel("hsl",0,a)},saturation:function(a){return this.setChannel("hsl",1,a)},lightness:function(a){return this.setChannel("hsl",2,a)},saturationv:function(a){return this.setChannel("hsv",1,a)},whiteness:function(a){return this.setChannel("hwb",1,a)},blackness:function(a){return this.setChannel("hwb",2,a)},value:function(a){return this.setChannel("hsv",2,a)},cyan:function(a){return this.setChannel("cmyk",0,a)},magenta:function(a){return this.setChannel("cmyk",1,a)},yellow:function(a){return this.setChannel("cmyk",2,a)},black:function(a){return this.setChannel("cmyk",3,a)},hexString:function(){return e.hexString(this.values.rgb)},rgbString:function(){return e.rgbString(this.values.rgb,this.values.alpha)},rgbaString:function(){return e.rgbaString(this.values.rgb,this.values.alpha)},percentString:function(){return e.percentString(this.values.rgb,this.values.alpha)},hslString:function(){return e.hslString(this.values.hsl,this.values.alpha)},hslaString:function(){return e.hslaString(this.values.hsl,this.values.alpha)},hwbString:function(){return e.hwbString(this.values.hwb,this.values.alpha)},keyword:function(){return e.keyword(this.values.rgb,this.values.alpha)},rgbNumber:function(){return this.values.rgb[0]<<16|this.values.rgb[1]<<8|this.values.rgb[2]},luminosity:function(){for(var a=this.values.rgb,b=[],c=0;c=d?d/12.92:Math.pow((d+.055)/1.055,2.4)}return.2126*b[0]+.7152*b[1]+.0722*b[2]},contrast:function(a){var b=this.luminosity(),c=a.luminosity();return b>c?(b+.05)/(c+.05):(c+.05)/(b+.05)},level:function(a){var b=this.contrast(a);return b>=7.1?"AAA":b>=4.5?"AA":""},dark:function(){var a=this.values.rgb,b=(299*a[0]+587*a[1]+114*a[2])/1e3;return 128>b},light:function(){return!this.dark()},negate:function(){for(var a=[],b=0;3>b;b++)a[b]=255-this.values.rgb[b];return this.setValues("rgb",a),this},lighten:function(a){return this.values.hsl[2]+=this.values.hsl[2]*a,this.setValues("hsl",this.values.hsl),this},darken:function(a){return this.values.hsl[2]-=this.values.hsl[2]*a,this.setValues("hsl",this.values.hsl),this},saturate:function(a){return this.values.hsl[1]+=this.values.hsl[1]*a,this.setValues("hsl",this.values.hsl),this},desaturate:function(a){return this.values.hsl[1]-=this.values.hsl[1]*a,this.setValues("hsl",this.values.hsl),this},whiten:function(a){return this.values.hwb[1]+=this.values.hwb[1]*a,this.setValues("hwb",this.values.hwb),this},blacken:function(a){return this.values.hwb[2]+=this.values.hwb[2]*a,this.setValues("hwb",this.values.hwb),this},greyscale:function(){var a=this.values.rgb,b=.3*a[0]+.59*a[1]+.11*a[2];return this.setValues("rgb",[b,b,b]),this},clearer:function(a){return this.setValues("alpha",this.values.alpha-this.values.alpha*a),this},opaquer:function(a){return this.setValues("alpha",this.values.alpha+this.values.alpha*a),this},rotate:function(a){var b=this.values.hsl[0];return b=(b+a)%360,b=0>b?360+b:b,this.values.hsl[0]=b,this.setValues("hsl",this.values.hsl),this},mix:function(a,b){var c=this,d=a,e=void 0===b?.5:b,f=2*e-1,g=c.alpha()-d.alpha(),h=((f*g===-1?f:(f+g)/(1+f*g))+1)/2,i=1-h;return this.rgb(h*c.red()+i*d.red(),h*c.green()+i*d.green(),h*c.blue()+i*d.blue()).alpha(c.alpha()*e+d.alpha()*(1-e))},toJSON:function(){return this.rgb()},clone:function(){return new f(this.rgb())}},f.prototype.getValues=function(a){for(var b={},c=0;c> !important;\n}\n\n.gmusic-theme #material-app-bar .tab-text,\n.gmusic-theme [data-id="prev-history"],\n.gmusic-theme [data-id="next-history"],\n.gmusic-theme #searchIcon {\n color: <> !important;\n}\n\n.gmusic-theme #material-one-left #left-nav-open-button svg {\n fill: <> !important;\n}\n\n.gmusic-theme body {\n background-color: <> !important;\n}\n\n.gmusic-theme #drawer,\n.gmusic-theme .material-card {\n background-color: <> !important;\n}\n\n.gmusic-theme #nav-container,\n.gmusic-theme #loading-overlay,\n.gmusic-theme #loading-progress,\n.gmusic-theme #loading-progress-bar {\n background: <> !important;\n}\n\n.gmusic-theme #loading-progress-bar {\n border: none !important;\n}\n\n.gmusic-theme .nav-toolbar,\n.gmusic-theme .material-card .details,\n.gmusic-theme .material-card .image-wrapper,\n.gmusic-theme .situations-filter {\n background: <> !important;\n}\n\n.gmusic-theme #nav {\n background: <> !important;\n color: <> !important;\n}\n\n.gmusic-theme #player,\n.gmusic-theme .player-rating-container,\n.gmusic-theme #player.material .now-playing-actions paper-icon-button {\n color: <> !important;\n background-color: <> !important;\n}\n\n.gmusic-theme #player.material paper-icon-button.playing > iron-icon::before {\n content: \'\' !important;\n display: block !important;\n position: absolute !important;\n background: <> !important;\n z-index: -1 !important;\n border-radius: 100% !important;\n height: calc(100% - 16px) !important;\n width: calc(100% - 16px) !important;\n top: 8px !important;\n left: 8px !important;\n}\n\n.gmusic-theme #player.material:hover #material-player-progress #sliderContainer:not(.disabled) #sliderBar #progressContainer,\n.gmusic-theme .playlist-view .editable:hover {\n background: <> !important;\n}\n\n.gmusic-theme .cluster-text-protection::before,\n.gmusic-theme .cluster-text-protection {\n background: transparent !important;\n}\n\n.gmusic-theme .title,\n.gmusic-theme .situation-title,\n.gmusic-theme .recommended-header {\n color: <> !important;\n}\n\n.gmusic-theme .nav-item-container {\n color: <> !important;\n}\n\n.gmusic-theme #nav_collections .nav-item-container:focus,\n.gmusic-theme .nav-item-container:focus,\n.gmusic-theme .nav-item-container:hover,\n.gmusic-theme .nav-item-container.selected {\n background-color: <> !important;\n}\n\n.gmusic-theme .nav-item-container:not(:focus):hover iron-icon {\n color: <> !important;\n}\n\n.gmusic-theme #nav_collections .nav-item-container:focus iron-icon,\n.gmusic-theme .nav-item-container:focus iron-icon {\n color: <> !important;\n}\n\n.gmusic-theme .fade-out:after {\n display: none !important;\n}\n\n.gmusic-theme .column.col-0 .material-card:first-child .image-wrapper {\n padding-top: 0 !important;\n}\n\n.gmusic-theme .song-row .song-indicator {\n background-image: url(\'ani_equalizer_white_x2.gif\') !important;\n background-size: 28px 28px !important;\n background-color: <> !important;\n}\n\n.gmusic-theme .song-row:hover .song-indicator {\n background-color: <> !important;\n}\n\n.gmusic-theme .material-detail-view .has-hero-image,\n.gmusic-theme .song-row td,\n.gmusic-theme .song-row td > *,\n.gmusic-theme .upload-progress-row td,\n.gmusic-theme .song-row.selected-song-row td {\n background-color: <> !important;\n color: <> !important;\n}\n\n.gmusic-theme .song-row.selected-song-row .song-indicator,\n.gmusic-theme .song-row.selected-song-row .title-right-items,\n.gmusic-theme .song-row.selected-song-row .content,\n.gmusic-theme .song-row.selected-song-row .song-indicator[data-playback-status="paused"],\n.gmusic-theme .song-row.selected-song-row .song-indicator[data-playback-status="loading"],\n.gmusic-theme .song-row.selected-song-row [data-col="index"] .hover-button[data-id="play"],\n.gmusic-theme .song-row.selected-song-row [data-col="track"] .hover-button[data-id="play"],\n.gmusic-theme .song-row.selected-song-row td,\n.gmusic-theme .song-row.selected-song-row td > * {\n background-color: <> !important;\n}\n\n.gmusic-theme .song-row:hover,\n.gmusic-theme .song-row.hover .song-indicator,\n.gmusic-theme .song-row.hover .title-right-items,\n.gmusic-theme .song-row.hover .content,\n.gmusic-theme .song-row.hover .song-indicator[data-playback-status="paused"],\n.gmusic-theme .song-row.hover .song-indicator[data-playback-status="loading"],\n.gmusic-theme .song-row.hover [data-col="index"] .hover-button[data-id="play"],\n.gmusic-theme .song-row.hover [data-col="track"] .hover-button[data-id="play"],\n.gmusic-theme .song-row.hover td,\n.gmusic-theme .song-row.hover td > * {\n background-color: <> !important;\n}\n\n.gmusic-theme body,\n.gmusic-theme .material-detail-view .material-container-details .info .description,\n.gmusic-theme .song-table th {\n color: #efefef !important;\n}\n\n.gmusic-theme .song-row.hover [data-col="track"] .hover-button[data-id="play"] {\n background-color: <> !important;\n}\n\n.gmusic-theme .song-row [data-col="index"] .song-indicator {\n background-color: <> !important;\n}\n\n.gmusic-theme .song-row.hover [data-col="index"] .song-indicator,\n.gmusic-theme .song-row.selected-song-row [data-col="index"] .song-indicator {\n background-color: <> !important;\n}\n\n.gmusic-theme .song-row.selected-song-row.hover [data-col="index"] .hover-button[data-id="play"] {\n background-color: <> !important;\n}\n\n.gmusic-theme .songlist-container {\n background-color: <> !important;\n}\n\n.gmusic-theme .nav-section-divider {\n border-bottom: 1px solid <> !important;\n}\n\n.gmusic-theme .goog-menu,\n.gmusic-theme .now-playing-menu .goog-menuitem,\n.gmusic-theme .now-playing-menu .goog-submenu,\n.gmusic-theme .now-playing-menu .goog-submenu .goog-submenu-arrow,\n.gmusic-theme .goog-menuitem {\n background-color: <> !important;\n}\n\n.gmusic-theme .goog-menu .goog-menuitem .goog-menuitem-content,\n.gmusic-theme .goog-menuitem-highlight .goog-menuitem-content .goog-submenu-arrow,\n.gmusic-theme .goog-menuitem-highlight .goog-menuitem-content {\n color: <> !important;\n}\n\n.gmusic-theme .goog-menu .goog-menuitem.selected .goog-menuitem-content {\n color: <> !important;\n}\n\n.gmusic-theme .goog-menu .goog-menuitem:hover,\n.gmusic-theme .goog-menu .goog-menuseparator {\n background-color: <> !important;\n}\n\n.gmusic-theme .material-detail-view .artist-details .bio-wrapper .bio {\n color: <> !important;\n}\n\n.gmusic-theme .song-row.hover td a,\n.gmusic-theme .song-row.selected-song-row td a {\n color: <> !important;\n}\n\n.gmusic-theme paper-action-dialog {\n background: <> !important;\n color: <> !important;\n}\n\n.gmusic-theme .settings-card {\n background-color: <> !important;\n color: <> !important;\n}\n\n.gmusic-theme #queue-overlay {\n background-color: <> !important;\n}\n\n.gmusic-theme #queue-overlay::after {\n border-color: transparent transparent <> <> !important;\n}\n\n.gmusic-theme .upload-dialog-content {\n background-color: <> !important;\n}\n\n.gmusic-theme .upload-dialog-description {\n color: <> !important;\n}\n\n.gmusic-theme .song-row:hover [data-col="index"] .hover-button[data-id="play"] {\n background-color: <> !important;\n}\n\n.gmusic-theme .goog-menuheader {\n color: <> !important;\n}\n\n.gmusic-theme .paper-progress-1 #primaryProgress.paper-progress {\n background-color: <> !important;\n}\n\n.gmusic-theme .album-view .material-container-details .info .title .explicit {\n background-color: <> !important;\n}\n\n.gmusic-theme .paper-input-container-0 .input-content.label-is-highlighted.paper-input-container label,\n.gmusic-theme .paper-input-container-0 .input-content.label-is-highlighted.paper-input-container .paper-input-label {\n color: <> !important;\n}\n\n.gmusic-theme .paper-input-container-0 .input-content.paper-input-container input,\n.gmusic-theme .paper-input-container-0 .input-content.paper-input-container textarea,\n.gmusic-theme .paper-input-container-0 .input-content.paper-input-container iron-autogrow-textarea,\n.gmusic-theme .paper-input-container-0 .input-content.paper-input-container .paper-input-input,\n.gmusic-theme .material-share-options #sharing-option-label {\n color: <> !important;\n}\n\n.gmusic-theme .paper-input-container-0 .add-on-content.is-highlighted.paper-input-container * {\n color: <> !important;\n}\n\n.gmusic-theme .material-container-details paper-fab,\n.gmusic-theme #current-loading-progress {\n background-color: <> !important;\n}\n\n.gmusic-theme #player.material .material-player-middle paper-icon-button[data-id="play-pause"]:not([disabled]) {\n color: <> !important;\n}\n\n.gmusic-theme #loading-overlay.material[data-type="full-loading-overlay"],\n.gmusic-theme #loading-overlay.material[data-type="regular-loading-overlay"] {\n background: <> !important;\n}\n\n.gmusic-theme iron-overlay-backdrop {\n background: <> !important;\n}\n\n.gmusic-theme #loading-overlay.material paper-spinner .circle,\n.gmusic-theme #loading-overlay.material paper-spinner-lite .circle {\n border-color: <><> !important;\n}\n\n.gmusic-theme a.primary {\n color: <> !important;\n}\n\n.gmusic-theme paper-button.material-primary {\n background-color: <> !important;\n}\n\n.gmusic-theme paper-checkbox #checkbox.checked {\n border-color: <> !important;\n background-color: <> !important;\n}\n\n.gmusic-theme paper-checkbox #ink {\n color: <> !important;\n}\n\n.gmusic-theme paper-checkbox #checkboxLabel {\n color: <> !important;\n}\n\n.gmusic-theme paper-toggle-button[checked] .toggle-button {\n background-color: <> !important;\n}\n\n.gmusic-theme paper-toggle-button[checked] .toggle-bar {\n background-color: <> !important;\n}\n\n.gmusic-theme paper-toggle-button[checked] .toggle-ink {\n color: <> !important;\n}\n\n.gmusic-theme .paper-slider-0 #sliderKnobInner.paper-slider,\n.gmusic-theme #sliderKnobInner.paper-slider,\n.gmusic-theme .paper-progress-0 #primaryProgress.paper-progress {\n background-color: <> !important;\n}\n\n.gmusic-theme .nav-item-container.selected iron-icon {\n color: <> !important;\n}\n\n.gmusic-theme .upload-dialog-title {\n background-color: <> !important;\n}\n\n.gmusic-theme a,\n.gmusic-theme .simple-dialog a {\n color: <> !important;\n}\n\n.gmusic-theme .song-table [data-col="title"],\n.gmusic-theme .song-table.mini [data-col="song-details"] .song-title {\n color: <> !important;\n}\n\n.gmusic-theme .subcategories-list,\n.gmusic-theme .material-detail-view .station-container-content-wrapper .material-container-details {\n background-color: <> !important;\n}\n\n.gmusic-theme .material-list li a:hover,\n.gmusic-theme .material-list li a:focus {\n background-color: <> !important;\n}\n\n.gmusic-theme .paper-input-container-0 .focused-line.paper-input-container {\n background-color: <> !important;\n}\n\n.gmusic-theme paper-action-dialog paper-button,\n.gmusic-theme paper-dialog .buttons paper-button,\n.gmusic-theme .share-buttons .share-button .button-label {\n color: <> !important;\n}\n\n.gmusic-theme .song-row:hover td,\n.gmusic-theme .song-row:hover td > * {\n background: <> !important;\n}\n\n.gmusic-theme .song-row:hover [data-col="track"] .hover-button[data-id="play"] {\n background-color: <> !important;\n}\n\n.gmusic-theme .rating-container li {\n -webkit-filter: invert(1) !important;\n}\n\n.gmusic-theme #player.material .material-player-middle paper-icon-button[data-id="repeat"][value="LIST_REPEAT"],\n.gmusic-theme #player.material .material-player-middle paper-icon-button[data-id="repeat"][value="SINGLE_REPEAT"],\n.gmusic-theme #player.material .material-player-middle paper-icon-button[data-id="shuffle"][value="ALL_SHUFFLE"],\n.gmusic-theme #player.material .material-player-middle paper-icon-button[data-id="repeat"][value="LIST_REPEAT"],\n.gmusic-theme #player.material .material-player-middle paper-icon-button[data-id="repeat"][value="SINGLE_REPEAT"],\n.gmusic-theme #player.material .material-player-middle paper-icon-button[data-id="shuffle"][value="ALL_SHUFFLE"] {\n color: <> !important;\n}\n\n.gmusic-theme .cluster .lane-button core-icon,\n.gmusic-theme .cluster .lane-button iron-icon,\n.gmusic-theme #player.material .material-player-middle paper-icon-button[data-id="repeat"].active,\n.gmusic-theme #player.material .material-player-middle paper-icon-button[data-id="shuffle"].active,\n.gmusic-theme #player.material #material-player-right-wrapper paper-icon-button[data-id="queue"].opened {\n color: <> !important;\n}\n\n.gmusic-theme .cluster .header .cluster-title,\n.gmusic-theme .cluster .header .subtitle {\n color: <> !important;\n}\n\n.gmusic-theme .song-row .explicit,\n.gmusic-theme .material-card .explicit {\n background-color: <> !important;\n}\n\n.gmusic-theme .material-detail-view .material-container-details .read-more-button {\n color: <> !important;\n}\n\n.gmusic-theme paper-dialog {\n background: <> !important;\n color: <> !important;\n}\n\n.gmusic-theme .simple-dialog {\n background-color: <> !important;\n border-color: <> !important;\n}\n\n.gmusic-theme .simple-dialog,\n.gmusic-theme .simple-dialog > div {\n background-color: <> !important;\n color: <> !important;\n}\n\n.gmusic-theme .goog-buttonset-default {\n background-color: <> !important;\n}\n\n.gmusic-theme button.goog-buttonset-default,\n.gmusic-theme button.goog-buttonset-default:hover {\n background-color: <> !important;\n}\n\n.gmusic-theme .top-charts-view .song-row [data-col="index"] .column-content,\n.gmusic-theme .material-card .details .left-items .index,\n.gmusic-theme .more-songs-container {\n color: <> !important;\n}\n\n.gmusic-theme .material-detail-view .top-tracks {\n background-color: <> !important;\n}\n\n.gmusic-theme .gmusic-theme-light #material-app-bar {\n background-color: <> !important;\n}\n\n.gmusic-theme .gmusic-theme-light .nav-item-container.selected {\n color: <> !important;\n}\n\n.gmusic-theme body.gmusic-theme-light,\n.gmusic-theme .gmusic-theme-light .material-detail-view .material-container-details .info .description,\n.gmusic-theme .gmusic-theme-light .song-table th {\n color: #212121 !important;\n}\n\n.gmusic-theme .gmusic-theme-light .song-row .song-indicator {\n background-image: url(\'ani_equalizer_black.gif\') !important;\n background-size: 40px 40px !important;\n}',f='\r\n',g=a("../lib/_constants"),h={ +BACK_PRIMARY:"#222326",BACK_SECONDARY:"#121314",BACK_HIGHLIGHT:"#615F59",FORE_PRIMARY:"#FFFFFF",FORE_SECONDARY:"#1ED760"};window.GMusicTheme=function(){function a(){var b=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];_classCallCheck(this,a),this.BACK_PRIMARY=h.BACK_PRIMARY,this.BACK_SECONDARY=h.BACK_SECONDARY,this.BACK_HIGHLIGHT=h.BACK_HIGHLIGHT,this.FORE_PRIMARY=h.FORE_PRIMARY,this.FORE_SECONDARY=h.FORE_SECONDARY,this.enabled=!1,b.enabled&&this.enable(),this.styleElement=document.createElement("style"),document.body.appendChild(this.styleElement),this.updateTheme(b)}return _createClass(a,[{key:"redrawTheme",value:function(){this._refreshStyleSheet(),this._drawLogo()}},{key:"enable",value:function(){this.enableAll()}},{key:"enableAll",value:function(){this.disable(),document.querySelector("html").classList.add(g.CLASS_NAMESPACE),this.enabled=1,this.redrawTheme()}},{key:"enableHighlight",value:function(){this.disable(),document.querySelector("html").classList.add(g.CLASS_NAMESPACE),document.body.classList.add(g.CLASS_NAMESPACE_LIGHT),this.enabled=2,this.redrawTheme()}},{key:"disable",value:function(){document.querySelector("html").classList.remove(g.CLASS_NAMESPACE),document.body.classList.remove(g.CLASS_NAMESPACE_LIGHT),this.enabled=0,this._drawLogo()}},{key:"updateTheme",value:function(a){this.BACK_PRIMARY=a.backPrimary||this.BACK_PRIMARY,this.BACK_SECONDARY=a.backSecondary||this.BACK_SECONDARY,this.BACK_HIGHLIGHT=a.backHighlight||this.BACK_HIGHLIGHT,this.FORE_PRIMARY=a.forePrimary||this.FORE_PRIMARY,this.FORE_SECONDARY=a.foreSecondary||this.FORE_SECONDARY,this.redrawTheme()}},{key:"_drawLogo",value:function(){var a=this,b=document.querySelectorAll(".menu-logo")[0],c=f,d=c.replace("#EE6B00",this.FORE_SECONDARY).replace('id="normalSVGIcon"','id="customSVGIcon"'),e=void 0,g=void 0;b?(e=b.parentNode,this.logoObserver&&(this.logoObserver.disconnect(),delete this.logoObserver),this.enabled?"IMG"!==b.nodeName&&"normalSVGIcon"!==b.id&&b.getAttribute("current-custom")===this.FORE_SECONDARY||(e.removeChild(b),g=(new DOMParser).parseFromString(d,"text/xml").firstChild,g.setAttribute("current-custom",this.FORE_SECONDARY),e.appendChild(g)):"IMG"!==b.nodeName&&"customSVGIcon"!==b.id||(e.removeChild(b),e.appendChild((new DOMParser).parseFromString(c,"text/xml").firstChild)),this.logoObserver=new MutationObserver(function(){a._drawLogo()}),this.logoObserver.observe(e,{childList:!0,attributes:!0,subtree:!0})):setTimeout(this._drawLogo,10)}},{key:"_refreshStyleSheet",value:function(){this.styleElement.innerHTML=this._substituteColors(e)}},{key:"_rgba",value:function(a,b){return d(a).clearer(b).rgbString()}},{key:"_substituteColors",value:function(a){return 1===this.enabled?a.replace(/<>/g,this.BACK_PRIMARY).replace(/<>/g,this.BACK_SECONDARY).replace(/<>/g,this.BACK_HIGHLIGHT).replace(/<>/g,this.FORE_PRIMARY).replace(/<>/g,this.FORE_SECONDARY).replace(/<>/g,this._rgba(this.BACK_SECONDARY,.5)).replace(/<> \!important/g,""):a.replace(/\n.+<>.*;\n/g,"").replace(/\n.+<>.*;\n/g,"").replace(/\n.+<>.*;\n/g,"").replace(/\n.+<>.*;\n/g,"").replace(/<>/g,this.FORE_SECONDARY).replace(/\n.+<>.*;\n/g,"").replace(/<> \!important/g,"")}}]),a}()},{"../lib/_constants":1,color:6}]},{},[7]); \ No newline at end of file diff --git a/lib/_constants.js b/lib/_constants.js index 325b9bd..d1592b8 100644 --- a/lib/_constants.js +++ b/lib/_constants.js @@ -1,3 +1,4 @@ module.exports = { CLASS_NAMESPACE: 'gmusic-theme', + CLASS_NAMESPACE_LIGHT: 'gmusic-theme-light', }; diff --git a/lib/generate-stylesheet.js b/lib/generate-stylesheet.js index dfc7c6f..f4ab6ad 100644 --- a/lib/generate-stylesheet.js +++ b/lib/generate-stylesheet.js @@ -12,7 +12,7 @@ const reworkCSS = rework(styles) // DEV: Adds a .custom selector to the beginning of all CSS selectors .use(rework.namespace({ selector: '.' + CONSTANTS.CLASS_NAMESPACE, - root: 'body', + root: 'html', namespaceBody: false, })) // DEV: Adds !important flag to all CSS rules diff --git a/lib/style.css b/lib/style.css index 0f32d47..27934a1 100644 --- a/lib/style.css +++ b/lib/style.css @@ -161,7 +161,7 @@ body { background-color: <>; } -body.material, +body, .material-detail-view .material-container-details .info .description, .song-table th { color: #efefef; @@ -460,3 +460,26 @@ button.goog-buttonset-default:hover { .material-detail-view .top-tracks { background-color: <>; } + +/* +* Light theme specific things +*/ + +.gmusic-theme-light #material-app-bar { + background-color: <>; +} + +.gmusic-theme-light .nav-item-container.selected { + color: <>; +} + +body.gmusic-theme-light, +.gmusic-theme-light .material-detail-view .material-container-details .info .description, +.gmusic-theme-light .song-table th { + color: #212121; +} + +.gmusic-theme-light .song-row .song-indicator { + background-image: url('ani_equalizer_black.gif'); + background-size: 40px 40px; +} diff --git a/src/gmusic-theme.js b/src/gmusic-theme.js index 776e821..e489546 100644 --- a/src/gmusic-theme.js +++ b/src/gmusic-theme.js @@ -6,6 +6,14 @@ const BASE_CSS = fs.readFileSync(__dirname + '/../build/rework.css', 'utf8'); const BASE_SVG = fs.readFileSync(__dirname + '/../lib/logo.svg', 'utf8'); const CONSTANTS = require('../lib/_constants'); +const DEFAULTS = { + BACK_PRIMARY: '#222326', + BACK_SECONDARY: '#121314', + BACK_HIGHLIGHT: '#615F59', + FORE_PRIMARY: '#FFFFFF', + FORE_SECONDARY: '#1ED760', +}; + window.GMusicTheme = class GMusicTheme { /** * Constructor for a new Google Music Theme API. @@ -16,11 +24,11 @@ window.GMusicTheme = class GMusicTheme { */ constructor(options = {}) { // DEV: Use the colors specified in the options or the default if it isn't set - this.BACK_PRIMARY = '#222326'; - this.BACK_SECONDARY = '#121314'; - this.BACK_HIGHLIGHT = '#615F59'; - this.FORE_PRIMARY = '#FFFFFF'; - this.FORE_SECONDARY = '#1ED760'; + this.BACK_PRIMARY = DEFAULTS.BACK_PRIMARY; + this.BACK_SECONDARY = DEFAULTS.BACK_SECONDARY; + this.BACK_HIGHLIGHT = DEFAULTS.BACK_HIGHLIGHT; + this.FORE_PRIMARY = DEFAULTS.FORE_PRIMARY; + this.FORE_SECONDARY = DEFAULTS.FORE_SECONDARY; this.enabled = false; if (options.enabled) { @@ -44,20 +52,40 @@ window.GMusicTheme = class GMusicTheme { } /** - * Enables the custom theme - */ + * Enabled the dark theme, this allows for backwards compatibility + */ enable() { - document.body.classList.add(CONSTANTS.CLASS_NAMESPACE); - this.enabled = true; - this._drawLogo(); + this.enableAll(); + } + + /** + * Enables the custom theme in dark mode (All colors) + */ + enableAll() { + this.disable(); + document.querySelector('html').classList.add(CONSTANTS.CLASS_NAMESPACE); + this.enabled = 1; + this.redrawTheme(); + } + + /** + * Enables the custom theme in light mode (only highlight) + */ + enableHighlight() { + this.disable(); + document.querySelector('html').classList.add(CONSTANTS.CLASS_NAMESPACE); + document.body.classList.add(CONSTANTS.CLASS_NAMESPACE_LIGHT); + this.enabled = 2; + this.redrawTheme(); } /** * Disables the custom theme */ disable() { - document.body.classList.remove(CONSTANTS.CLASS_NAMESPACE); - this.enabled = false; + document.querySelector('html').classList.remove(CONSTANTS.CLASS_NAMESPACE); + document.body.classList.remove(CONSTANTS.CLASS_NAMESPACE_LIGHT); + this.enabled = 0; this._drawLogo(); } @@ -132,13 +160,25 @@ window.GMusicTheme = class GMusicTheme { } _substituteColors(styleString) { + // DEV: If replacing all colors + if (this.enabled === 1) { + return styleString + .replace(/<>/g, this.BACK_PRIMARY) + .replace(/<>/g, this.BACK_SECONDARY) + .replace(/<>/g, this.BACK_HIGHLIGHT) + .replace(/<>/g, this.FORE_PRIMARY) + .replace(/<>/g, this.FORE_SECONDARY) + .replace(/<>/g, this._rgba(this.BACK_SECONDARY, 0.5)) + .replace(/<> \!important/g, ''); + } + // DEV: Else remove all rules for anything that isn't the highlight color (foreSecondary) return styleString - .replace(/<>/g, this.BACK_PRIMARY) - .replace(/<>/g, this.BACK_SECONDARY) - .replace(/<>/g, this.BACK_HIGHLIGHT) - .replace(/<>/g, this.FORE_PRIMARY) + .replace(/\n.+<>.*;\n/g, '') + .replace(/\n.+<>.*;\n/g, '') + .replace(/\n.+<>.*;\n/g, '') + .replace(/\n.+<>.*;\n/g, '') .replace(/<>/g, this.FORE_SECONDARY) - .replace(/<>/g, this._rgba(this.BACK_SECONDARY, 0.5)) + .replace(/\n.+<>.*;\n/g, '') .replace(/<> \!important/g, ''); } };