diff --git a/wp-content/plugins/audioigniter/.prettierignore b/wp-content/plugins/audioigniter/.prettierignore new file mode 100644 index 00000000..2618472a --- /dev/null +++ b/wp-content/plugins/audioigniter/.prettierignore @@ -0,0 +1 @@ +player/build diff --git a/wp-content/plugins/audioigniter/assets/css/_mixins.scss b/wp-content/plugins/audioigniter/assets/css/_mixins.scss new file mode 100644 index 00000000..f4db14b7 --- /dev/null +++ b/wp-content/plugins/audioigniter/assets/css/_mixins.scss @@ -0,0 +1,106 @@ +// +// Mixins +// +@mixin clearfix() { + &::after { + content: ""; + display: table; + clear: both; + } +} + +@keyframes ai-spin { + 0% { + transform: rotate(0deg); + } + + 100% { + transform: rotate(360deg); + } +} + +@mixin spinner($color: #fff, $opacity: .35, $size: 40px) { + border: 6px solid rgba($color, $opacity); + border-top-color: rgba($color, $opacity*2.5); + border-radius: 100%; + height: $size; + width: $size; + animation: ai-spin .8s infinite linear; +} + +@mixin btn-reset { + display: inline-block; + font-weight: normal; + margin: 0; + padding: 0; + line-height: normal; + border: 0; + appearance: none; + text-align: center; + box-shadow: none; + vertical-align: middle; + cursor: pointer; + white-space: nowrap; + user-select: none; + border-radius: 0; + min-width: 0; + max-width: 100%; + min-height: 0; + width: auto; + height: auto; + background-image: none; + background-color: transparent; + + &::before, + &::after { + display: none; + } +} + +@keyframes backgroundPosition { + 0% { + background-position: -140px 0 + } + + 100% { + background-position: 140px 0 + } +} + +@mixin animatedBackground($width: 140px, $height: 8px, $top: 0, $left: 0) { + content: ''; + width: $width; + height: $height; + background: linear-gradient(to right, $control-color 8%, lighten($control-color, 6%) 18%, $control-color 33%); + background-size: 500px; + position: absolute; + top: $top; + left: $left; + opacity: 1; + animation-duration: 1s; + animation-fill-mode: forwards; + animation-iteration-count: infinite; + animation-name: backgroundPosition; + animation-timing-function: linear; +} + +@mixin sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0; +} + +@mixin dashicon($icon) { + content: $icon; + display: inline-block; + font: 400 20px/1 dashicons; + speak: none; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + text-decoration: none !important; +} diff --git a/wp-content/plugins/audioigniter/assets/css/admin-styles.css b/wp-content/plugins/audioigniter/assets/css/admin-styles.css new file mode 100644 index 00000000..9da07c0c --- /dev/null +++ b/wp-content/plugins/audioigniter/assets/css/admin-styles.css @@ -0,0 +1,155 @@ +@charset "UTF-8"; +@keyframes ai-spin { 0% { transform: rotate(0deg); } + 100% { transform: rotate(360deg); } } +@keyframes backgroundPosition { 0% { background-position: -140px 0; } + 100% { background-position: 140px 0; } } +.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); border: 0; } + +.ai-row { margin-left: -15px; margin-right: -15px; box-sizing: border-box; } +.ai-row::after { content: ""; display: table; clear: both; } + +[class^="ai-col"] { float: left; padding-left: 15px; padding-right: 15px; width: 50%; box-sizing: border-box; } + +.ai-btn { display: inline-block; font-weight: normal; margin: 0; line-height: normal; border: 0; box-shadow: none; text-align: center; vertical-align: middle; cursor: pointer; white-space: nowrap; user-select: none; border-radius: 2px; width: auto; height: auto; background-image: none; padding: 11px 20px 11px; font-size: 12px; text-transform: uppercase; background-color: #1c4866; color: #ffffff; text-decoration: none; } +.ai-btn:hover, .ai-btn:focus { color: #ffffff; background-color: #173a52; } + +.ai-btn-green { background-color: #14b552; } +.ai-btn-green:hover, .ai-btn-green:focus { color: #ffffff; background-color: #119e48; } + +.ai-brand-module { background-color: #1c4866; padding: 15px; color: #ffffff; font-size: 12px; } +.ai-brand-module p { font-size: 12px; } +.ai-brand-module a:not(.ai-btn) { color: #ffcc00; text-decoration: none; } + +.ai-brand-module-actions { text-align: right; } +.ai-brand-module-actions p { margin: 0; } + +.ai-header { margin: 12px 0 -12px; height: 40px; } + +.ai-header-actions { text-align: right; } + +.ai-logo { display: inline-block; position: relative; top: -2px; } +.ai-logo img { height: 44px; } + +.ai-note { font-style: italic; } + +.ai-list-inline { margin: 0; padding: 0; list-style: none; } +.ai-list-inline li { display: inline-block; margin: 0; } + +.ai-footer-links a::after { content: "\007c"; color: #ffffff; opacity: .5; margin: 0 7px; } +.ai-footer-links li:last-child a::after { display: none; } + +.ai-module { border: 1px solid #eeeeee; margin-top: 12px; padding: 15px; } +.ai-module::after { content: ""; display: table; clear: both; } + +.ai-container { margin-top: 12px; } + +.ai-field-controls-wrap { padding: 15px; border: 1px solid #eeeeee; } +.ai-field-controls-wrap::after { content: ""; display: table; clear: both; } + +.ai-field-controls { float: left; } +.ai-field-controls .button { margin-right: 5px; } + +.ai-field-controls-visibility { float: right; padding-top: 4px; } + +.ai-field-controls-visibility a { text-decoration: none; } + +.ai-fields-expand-all { margin-right: 8px; padding-right: 6px; border-right: 1px solid #f1f1f1; } + +.ai-fields-container { padding: 15px; border-left: 1px solid #eeeeee; border-right: 1px solid #eeeeee; } + +.ai-field-repeatable { margin-bottom: 15px; border: 1px solid #d7d7d7; box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.07); } +.ai-field-repeatable:last-child { margin-bottom: 0; } +.ai-field-repeatable:only-child .ai-remove-field { display: none; } + +.ai-field-container { padding: 15px; background-color: #ffffff; } +.ai-field-container::after { content: ""; display: table; clear: both; } + +.ai-field-head { padding: 8px 15px 5px; line-height: normal; background-color: #d7d7d7; background: linear-gradient(to bottom, #f1f1f1, #d7d7d7); border-bottom: 1px solid #cccccc; } +.ai-field-head::after { content: ""; display: table; clear: both; } +.ai-field-head .toggle-indicator { border-radius: 50%; } +.ai-fields-sortable .ai-field-head { cursor: move; } + +.ai-field-sort-handle { position: relative; top: 1px; color: #0073aa; } +.ai-field-sort-handle .dashicons { font-size: 18px; } + +.ai-field-title { font-weight: bold; font-size: 1.05em; margin-left: 8px; padding-top: 3px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; max-width: 80%; display: inline-block; } + +.ai-field-toggle { float: right; } + +.ai-field-cover { float: left; width: 100px; height: 100px; margin-right: 15px; background-color: #eeeeee; border: 1px solid #cccccc; } + +.ai-field-split { float: left; width: calc(50% - 71px); margin-right: 15px; } +.ai-field-split:nth-child(2n + 1) { margin-right: 0; } + +.ai-container .button .dashicons, .ai-module .button .dashicons { font-size: 1.2em; line-height: 1.7em; } + +.ai-form-field-group { padding: 15px; border: 1px solid #f1f1f1; margin-bottom: 15px; } +.ai-form-field-group :last-child { margin-bottom: 0; } +.ai-form-field-group-title { margin-top: 0; } + +.ai-form-field { margin-bottom: 15px; } +.ai-form-field label { display: inline-block; font-weight: bold; margin-bottom: 3px; } +.ai-form-field input[type="text"], .ai-form-field input[type="url"], .ai-form-field input[type="search"], .ai-form-field input[type="email"], .ai-form-field input[type="password"], .ai-form-field input[type="number"], .ai-form-field input[type="tel"], .ai-form-field input[type="date"], .ai-form-field textarea { width: 100%; } +.ai-form-field input[type="checkbox"], .ai-form-field input[type="radio"] { display: inline-block; position: relative; top: 1px; } + +.ai-module-settings .ai-form-field input[type="text"], .ai-module-settings .ai-form-field input[type="url"], .ai-module-settings .ai-form-field input[type="search"], .ai-module-settings .ai-form-field input[type="email"], .ai-module-settings .ai-form-field input[type="password"], .ai-module-settings .ai-form-field input[type="number"], .ai-module-settings .ai-form-field input[type="tel"], .ai-module-settings .ai-form-field input[type="date"], .ai-module-settings .ai-form-field textarea, .ai-module-settings .ai-form-field select { width: 200px; max-width: 100%; display: block; } + +.ai-form-field-addon { position: relative; } +.ai-form-field-addon input { padding-right: 80px; } +.ai-form-field-addon button { position: absolute; top: 0; right: -2px; } + +.ai-field-help { margin: 5px 0 0; font-style: italic; color: #999; } + +.ai-remove-field { float: right; } + +.ai-field-upload-cover { display: block; position: relative; width: 100px; height: 100px; text-decoration: none; color: initial; overflow: hidden; } +.ai-field-upload-cover img { max-width: 100%; display: none; } + +.ai-has-cover .ai-remove-cover { display: block; } +.ai-has-cover .ai-field-cover-placeholder { display: none; } +.ai-has-cover img { display: inline-block; } + +.ai-field-cover-placeholder { text-align: center; font-style: normal; font-size: .9em; opacity: .8; padding-top: 28px; } +.ai-field-cover-placeholder::before { content: ""; display: inline-block; font: 400 20px/1 dashicons; speak: none; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-decoration: none !important; display: block; } +.ai-track-loading .ai-field-cover-placeholder::before { content: "\f463"; animation: rotation 1.2s infinite linear; } + +.ai-remove-cover { color: #ffffff; background-color: #ff0000; width: 16px; height: 16px; font-size: 12px; cursor: pointer; position: absolute; top: 0; right: 0; opacity: .9; transition: opacity 0.18s ease-in; display: none; text-align: center; } +.ai-remove-cover:hover { opacity: 1; } +.ai-remove-cover .dashicons { font-size: 16px; width: 100%; height: 100%; } + +.ai-remove-all-fields .dashicons, .ai-remove-field .dashicons { color: #ff0000; } + +.ai-add-field-batch .dashicons, .ai-add-field .dashicons { color: #0073aa; } + +.ai-info-box { background: #fffce6; color: #948832; font-size: 12px; border: solid 1px #eeeac9; padding: 15px; margin: 0 0 15px 0; } + +.ai-player-type-message { display: none; } + +.ai-drop-placeholder { background-color: #f1f1f1; border: 2px dashed #cccccc; opacity: 0.5; margin-bottom: 15px; } + +.ai-collapsed .ai-field-container { display: none; } +.ai-collapsed .toggle-indicator::before { content: "\f140" !important; } + +.ai-module-shortcode .code { display: block; width: 100%; margin-top: 3px; padding: 10px 10px 8px; font-weight: bold; background: #f1f1f1; } + +.ai-sync-soundcloud.button { display: none; } +.ai-sync-soundcloud.button::before { content: "\f463"; color: #d54e21; display: inline-block; font: 400 19px/1 dashicons; speak: none; position: relative; left: -1px; top: 4px; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; vertical-align: top; } +.ai-track-loading .ai-sync-soundcloud.button::before { animation: rotation 1.2s infinite linear; } + +.ai-soundcloud-track .ai-sync-soundcloud { display: inline-block; } +.ai-soundcloud-track .ai-upload { display: none; } + +@media (max-width: 1100px) { .ai-field-controls, .ai-field-controls-visibility { margin: 0; float: none; width: 100%; } + .ai-field-controls { margin-bottom: 5px; } + .ai-field-split { float: none; width: 100%; } + .ai-field-cover { margin-bottom: 15px; } + .ai-footer { text-align: center; } + .ai-footer .ai-brand-module-actions { text-align: center; margin-top: 10px; } + .ai-footer [class^="ai-col"] { width: 100%; } } +@media (max-width: 782px) { .ai-container .button .dashicons, .ai-module .button .dashicons { line-height: 1.2em; } + .ai-form-field-addon .button { top: 2px; } } +@media (max-width: 600px) { .ai-field-controls .button { width: 100%; } + .ai-header { text-align: center; } + .ai-header .ai-brand-module-actions { margin-top: 10px; } + .ai-header .ai-btn { display: block; } + .ai-header [class^="ai-col"] { width: 100%; } } diff --git a/wp-content/plugins/audioigniter/assets/css/admin-styles.min.css b/wp-content/plugins/audioigniter/assets/css/admin-styles.min.css new file mode 100644 index 00000000..e5eb0ba5 --- /dev/null +++ b/wp-content/plugins/audioigniter/assets/css/admin-styles.min.css @@ -0,0 +1 @@ +@charset "UTF-8";@-webkit-keyframes backgroundPosition{0%{background-position:-140px 0}100%{background-position:140px 0}}@keyframes backgroundPosition{0%{background-position:-140px 0}100%{background-position:140px 0}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.ai-row{margin-left:-15px;margin-right:-15px;box-sizing:border-box}.ai-row::after{content:"";display:table;clear:both}[class^=ai-col]{float:left;padding-left:15px;padding-right:15px;width:50%;box-sizing:border-box}.ai-btn{display:inline-block;font-weight:400;margin:0;line-height:normal;border:0;box-shadow:none;text-align:center;vertical-align:middle;cursor:pointer;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border-radius:2px;width:auto;height:auto;background-image:none;padding:11px 20px 11px;font-size:12px;text-transform:uppercase;background-color:#1c4866;color:#fff;text-decoration:none}.ai-btn:focus,.ai-btn:hover{color:#fff;background-color:#173a52}.ai-btn-green{background-color:#14b552}.ai-btn-green:focus,.ai-btn-green:hover{color:#fff;background-color:#119e48}.ai-brand-module{background-color:#1c4866;padding:15px;color:#fff;font-size:12px}.ai-brand-module p{font-size:12px}.ai-brand-module a:not(.ai-btn){color:#fc0;text-decoration:none}.ai-brand-module-actions{text-align:right}.ai-brand-module-actions p{margin:0}.ai-header{margin:12px 0 -12px;height:40px}.ai-header-actions{text-align:right}.ai-logo{display:inline-block;position:relative;top:-2px}.ai-logo img{height:44px}.ai-note{font-style:italic}.ai-list-inline{margin:0;padding:0;list-style:none}.ai-list-inline li{display:inline-block;margin:0 5px 0 0}.ai-module{border:1px solid #eee;margin-top:12px;padding:15px}.ai-module::after{content:"";display:table;clear:both}.ai-container{margin-top:12px}.ai-field-controls-wrap{padding:15px;border:1px solid #eee}.ai-field-controls-wrap::after{content:"";display:table;clear:both}.ai-field-controls{float:left}.ai-field-controls .button{margin-right:5px}.ai-field-controls-visibility{float:right;padding-top:4px}.ai-field-controls-visibility a{text-decoration:none}.ai-fields-expand-all{margin-right:8px;padding-right:6px;border-right:1px solid #f1f1f1}.ai-fields-container{padding:15px;border-left:1px solid #eee;border-right:1px solid #eee}.ai-field-repeatable{margin-bottom:15px;border:1px solid #d7d7d7;box-shadow:1px 1px 2px rgba(0,0,0,.07)}.ai-field-repeatable:last-child{margin-bottom:0}.ai-field-repeatable:only-child .ai-remove-field{display:none}.ai-field-container{padding:15px;background-color:#fff}.ai-field-container::after{content:"";display:table;clear:both}.ai-field-head{padding:8px 15px 5px;line-height:normal;background-color:#d7d7d7;background:-webkit-linear-gradient(top,#f1f1f1,#d7d7d7);background:linear-gradient(to bottom,#f1f1f1,#d7d7d7);border-bottom:1px solid #ccc}.ai-field-head::after{content:"";display:table;clear:both}.ai-field-head .toggle-indicator{border-radius:50%}.ai-fields-sortable .ai-field-head{cursor:move}.ai-field-sort-handle{position:relative;top:1px;color:#0073aa}.ai-field-sort-handle .dashicons{font-size:18px}.ai-field-title{font-weight:700;font-size:1.05em;margin-left:8px;padding-top:3px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;max-width:80%;display:inline-block}.ai-field-toggle{float:right}.ai-field-cover{float:left;width:100px;height:100px;margin-right:15px;background-color:#eee;border:1px solid #ccc}.ai-field-split{float:left;width:calc(50% - 71px);margin-right:15px}.ai-field-split:nth-child(2n+1){margin-right:0}.ai-container .button .dashicons,.ai-module .button .dashicons{font-size:1.2em;line-height:1.7em}.ai-form-field-group{padding:15px;border:1px solid #f1f1f1;margin-bottom:15px}.ai-form-field-group :last-child{margin-bottom:0}.ai-form-field-group-title{margin-top:0}.ai-form-field{margin-bottom:15px}.ai-form-field label{display:inline-block;font-weight:700;margin-bottom:3px}.ai-form-field input[type=date],.ai-form-field input[type=email],.ai-form-field input[type=number],.ai-form-field input[type=password],.ai-form-field input[type=search],.ai-form-field input[type=tel],.ai-form-field input[type=text],.ai-form-field input[type=url],.ai-form-field textarea{width:100%}.ai-form-field input[type=checkbox],.ai-form-field input[type=radio]{display:inline-block;position:relative;top:1px}.ai-module-settings .ai-form-field input[type=date],.ai-module-settings .ai-form-field input[type=email],.ai-module-settings .ai-form-field input[type=number],.ai-module-settings .ai-form-field input[type=password],.ai-module-settings .ai-form-field input[type=search],.ai-module-settings .ai-form-field input[type=tel],.ai-module-settings .ai-form-field input[type=text],.ai-module-settings .ai-form-field input[type=url],.ai-module-settings .ai-form-field select,.ai-module-settings .ai-form-field textarea{width:200px;max-width:100%;display:block}.ai-form-field-addon{position:relative}.ai-form-field-addon input{padding-right:80px}.ai-form-field-addon button{position:absolute;top:0;right:-2px}.ai-field-help{margin:5px 0 0;font-style:italic;color:#999}.ai-remove-field{float:right}.ai-field-upload-cover{display:block;position:relative;width:100px;height:100px;text-decoration:none;color:initial;overflow:hidden}.ai-field-upload-cover img{max-width:100%;display:none}.ai-has-cover .ai-remove-cover{display:block}.ai-has-cover .ai-field-cover-placeholder{display:none}.ai-has-cover img{display:inline-block}.ai-field-cover-placeholder{text-align:center;font-style:normal;font-size:.9em;opacity:.8;padding-top:28px}.ai-field-cover-placeholder::before{content:"";display:inline-block;font:400 20px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;display:block}.ai-track-loading .ai-field-cover-placeholder::before{content:"\f463";-webkit-animation:rotation 1.2s infinite linear;animation:rotation 1.2s infinite linear}.ai-remove-cover{color:#fff;background-color:red;width:16px;height:16px;font-size:12px;cursor:pointer;position:absolute;top:0;right:0;opacity:.9;-webkit-transition:opacity .18s ease-in;transition:opacity .18s ease-in;display:none;text-align:center}.ai-remove-cover:hover{opacity:1}.ai-remove-cover .dashicons{font-size:16px;width:100%;height:100%}.ai-remove-all-fields .dashicons,.ai-remove-field .dashicons{color:red}.ai-add-field .dashicons,.ai-add-field-batch .dashicons{color:#0073aa}.ai-info-box{background:#fffce6;color:#948832;font-size:12px;border:solid 1px #eeeac9;padding:15px;margin:0 0 15px 0}.ai-player-type-message{display:none}.ai-drop-placeholder{background-color:#f1f1f1;border:2px dashed #ccc;opacity:.5;margin-bottom:15px}.ai-collapsed .ai-field-container{display:none}.ai-collapsed .toggle-indicator::before{content:"\f140"!important}.ai-module-shortcode .code{display:block;width:100%;margin-top:3px;padding:10px 10px 8px;font-weight:700;background:#f1f1f1}.ai-sync-soundcloud.button{display:none}.ai-sync-soundcloud.button::before{content:"\f463";color:#d54e21;display:inline-block;font:400 19px/1 dashicons;speak:none;position:relative;left:-1px;top:4px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:top}.ai-track-loading .ai-sync-soundcloud.button::before{-webkit-animation:rotation 1.2s infinite linear;animation:rotation 1.2s infinite linear}.ai-soundcloud-track .ai-sync-soundcloud{display:inline-block}.ai-soundcloud-track .ai-upload{display:none}@media (max-width:1100px){.ai-field-controls,.ai-field-controls-visibility{margin:0;float:none;width:100%}.ai-field-controls{margin-bottom:5px}.ai-field-split{float:none;width:100%}.ai-field-cover{margin-bottom:15px}.ai-footer{text-align:center}.ai-footer .ai-brand-module-actions{text-align:center;margin-top:10px}.ai-footer [class^=ai-col]{width:100%}}@media (max-width:782px){.ai-container .button .dashicons,.ai-module .button .dashicons{line-height:1.2em}.ai-form-field-addon .button{top:2px}}@media (max-width:600px){.ai-field-controls .button{width:100%}.ai-header{text-align:center}.ai-header .ai-brand-module-actions{margin-top:10px}.ai-header .ai-btn{display:block}.ai-header [class^=ai-col]{width:100%}} \ No newline at end of file diff --git a/wp-content/plugins/audioigniter/assets/css/admin-styles.scss b/wp-content/plugins/audioigniter/assets/css/admin-styles.scss new file mode 100644 index 00000000..40a46234 --- /dev/null +++ b/wp-content/plugins/audioigniter/assets/css/admin-styles.scss @@ -0,0 +1,660 @@ +@import 'mixins'; + +$brand-color: #1c4866 !default; +$brand-secondary-color: #ffcc00 !default; +$lighter-grey: #f1f1f1 !default; +$light-grey: #eeeeee !default; +$medium-grey: #d7d7d7 !default; +$dark-grey: #cccccc !default; +$white: #ffffff !default; +$blue: #0073aa !default; +$red: #ff0000 !default; +$green: #14b552 !default; +$info-box-bg-color: #fffce6 !default; +$info-box-border-color: #eeeac9 !default; +$info-box-text-color: #948832 !default; +$base-pad: 15px !default; +$transition-time: .18s !default; +$border-color: $lighter-grey !default; + +.sr-only { + @include sr-only; +} + +.ai-row { + @include clearfix; + margin-left: -15px; + margin-right: -15px; + box-sizing: border-box; +} + +[class^="ai-col"] { + float: left; + padding-left: 15px; + padding-right: 15px; + width: 50%; + box-sizing: border-box; +} + +.ai-btn { + display: inline-block; + font-weight: normal; + margin: 0; + line-height: normal; + border: 0; + box-shadow: none; + text-align: center; + vertical-align: middle; + cursor: pointer; + white-space: nowrap; + user-select: none; + border-radius: 2px; + width: auto; + height: auto; + background-image: none; + padding: 11px 20px 11px; + font-size: 12px; + text-transform: uppercase; + background-color: $brand-color; + color: $white; + text-decoration: none; + + &:hover, + &:focus { + color: $white; + background-color: darken($brand-color, 5%); + } +} + +.ai-btn-green { + background-color: $green; + + &:hover, + &:focus { + color: $white; + background-color: darken($green, 5%); + } +} + +// +// Brand Modules +// +.ai-brand-module { + background-color: $brand-color; + padding: $base-pad; + color: $white; + font-size: 12px; + + p { + font-size: 12px; + } + + a:not(.ai-btn) { + color: $brand-secondary-color; + text-decoration: none; + } +} + +.ai-brand-module-actions { + text-align: right; + + p { + margin: 0; + } +} + +// +// Header +// +.ai-header { + margin: 12px 0 -12px; + height: 40px; +} + +.ai-header-actions { + text-align: right; +} + +.ai-logo { + display: inline-block; + position: relative; + top: -2px; + + img { + height: 44px; + } +} + +// +// Footer +// +.ai-note { + font-style: italic; +} + +.ai-list-inline { + margin: 0; + padding: 0; + list-style: none; + + li { + display: inline-block; + margin: 0; + } +} + +.ai-footer-links { + a { + &::after { + content: "\007c"; + color: $white; + opacity: .5; + margin: 0 7px; + } + } + + li { + &:last-child { + a::after { + display: none; + } + } + } +} + +// +// General +// +.ai-module { + @include clearfix; + border: 1px solid $light-grey; + margin-top: 12px; + padding: $base-pad; +} + +.ai-container { + margin-top: 12px; +} + +// +// Field Controls +// +.ai-field-controls-wrap { + @include clearfix; + padding: $base-pad; + border: 1px solid $light-grey; +} + +.ai-field-controls { + float: left; + + .button { + margin-right: 5px; + } +} + +.ai-field-controls-visibility { + float: right; + padding-top: 4px; +} + +.ai-field-controls-visibility { + a { + text-decoration: none; + } +} + +.ai-fields-expand-all { + margin-right: 8px; + padding-right: 6px; + border-right: 1px solid $lighter-grey; +} + +// +// Fields general structure +// +.ai-fields-container { + padding: $base-pad; + border-left: 1px solid $light-grey; + border-right: 1px solid $light-grey; +} + +.ai-field-repeatable { + margin-bottom: $base-pad; + border: 1px solid $medium-grey; + box-shadow: 1px 1px 2px rgba(black, .07); + + &:last-child { + margin-bottom: 0; + } + + &:only-child { + .ai-remove-field { + display: none; + } + } +} + +.ai-field-container { + @include clearfix; + padding: $base-pad; + background-color: $white; +} + +.ai-field-head { + @include clearfix; + padding: 8px $base-pad 5px; + line-height: normal; + background-color: $medium-grey; + background: linear-gradient(to bottom, $lighter-grey, $medium-grey); + border-bottom: 1px solid $dark-grey; + + .toggle-indicator { + border-radius: 50%; + } + + .ai-fields-sortable & { + cursor: move; + } +} + +.ai-field-sort-handle { + position: relative; + top: 1px; + color: $blue; + + .dashicons { + font-size: 18px; + } +} + +.ai-field-title { + font-weight: bold; + font-size: 1.05em; + margin-left: 8px; + padding-top: 3px; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; + max-width: 80%; + display: inline-block; +} + +.ai-field-toggle { + float: right; +} + +.ai-field-cover { + float: left; + width: 100px; + height: 100px; + margin-right: $base-pad; + background-color: $light-grey; + border: 1px solid $dark-grey; +} + +.ai-field-split { + float: left; + width: calc(50% - 71px); + margin-right: $base-pad; + + &:nth-child(2n + 1) { + margin-right: 0; + } +} + +// +// Form elements +// +.ai-container, +.ai-module { + .button { + .dashicons { + font-size: 1.2em; + line-height: 1.7em; + } + } +} + +.ai-form-field-group { + padding: $base-pad; + border: 1px solid $border-color; + margin-bottom: $base-pad; + + :last-child { + margin-bottom: 0; + } + + &-title { + margin-top: 0; + } +} + +.ai-form-field { + margin-bottom: $base-pad; + + label { + display: inline-block; + font-weight: bold; + margin-bottom: 3px; + } + + input[type="text"], + input[type="url"], + input[type="search"], + input[type="email"], + input[type="password"], + input[type="number"], + input[type="tel"], + input[type="date"], + textarea { + width: 100%; + } + + input[type="checkbox"], + input[type="radio"] { + display: inline-block; + position: relative; + top: 1px; + } +} + +.ai-module-settings { + .ai-form-field { + input[type="text"], + input[type="url"], + input[type="search"], + input[type="email"], + input[type="password"], + input[type="number"], + input[type="tel"], + input[type="date"], + textarea, + select { + width: 200px; + max-width: 100%; + display: block; + } + } +} + +.ai-form-field-addon { + position: relative; + + input { + padding-right: 80px; + } + + button { + position: absolute; + top: 0; + right: -2px; + } +} + +.ai-field-help { + margin: 5px 0 0; + font-style: italic; + color: #999; +} + +.ai-remove-field { + float: right; +} + +.ai-field-upload-cover { + display: block; + position: relative; + width: 100px; + height: 100px; + text-decoration: none; + color: initial; + overflow: hidden; + + img { + max-width: 100%; + display: none; + } +} + +.ai-has-cover { + .ai-remove-cover { + display: block; + } + + .ai-field-cover-placeholder { + display: none; + } + + img { + display: inline-block; + } +} + +.ai-field-cover-placeholder { + text-align: center; + font-style: normal; + font-size: .9em; + opacity: .8; + padding-top: 28px; + + &::before { + @include dashicon($icon: "\f128"); + display: block; + } + + .ai-track-loading & { + &::before { + content: "\f463"; + animation: rotation 1.2s infinite linear; + } + } +} + +.ai-remove-cover { + color: $white; + background-color: $red; + width: 16px; + height: 16px; + font-size: 12px; + cursor: pointer; + position: absolute; + top: 0; + right: 0; + opacity: .9; + transition: opacity $transition-time ease-in; + display: none; + text-align: center; + + &:hover { + opacity: 1; + } + + .dashicons { + font-size: 16px; + width: 100%; + height: 100%; + } +} + +.ai-remove-all-fields, +.ai-remove-field { + .dashicons { + color: $red; + } +} + +.ai-add-field-batch, +.ai-add-field { + .dashicons { + color: $blue; + } +} + +.ai-info-box { + background: $info-box-bg-color; + color: $info-box-text-color; + font-size: 12px; + border: solid 1px $info-box-border-color; + padding: 15px; + margin: 0 0 15px 0; +} + +.ai-player-type-message { + display: none; +} + +// +// Sortable specific +// +.ai-drop-placeholder { + background-color: $lighter-grey; + border: 2px dashed $dark-grey; + opacity: 0.5; + margin-bottom: $base-pad; +} + +// +// Collapsible +// +.ai-collapsed { + .ai-field-container { + display: none; + } + + .toggle-indicator { + &::before { + content: "\f140" !important; + } + } +} + +// +// Shortcode field +// +.ai-module-shortcode { + .code { + display: block; + width: 100%; + margin-top: 3px; + padding: 10px 10px 8px; + font-weight: bold; + background: $lighter-grey; + } +} + +// +// Soundcloud module +// +.ai-sync-soundcloud.button { // Overcoming specificity + display: none; + + &::before { + content: "\f463"; + color: #d54e21; + display: inline-block; + font: 400 19px/1 dashicons; + speak: none; + position: relative; + left: -1px; + top: 4px; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + vertical-align: top; + } + + .ai-track-loading & { + &::before { + animation: rotation 1.2s infinite linear; + } + } +} + +.ai-soundcloud-track { + .ai-sync-soundcloud { + display: inline-block; + } + + .ai-upload { + display: none; + } +} + +// +// Media queries +// +@media (max-width: 1100px) { + .ai-field-controls, + .ai-field-controls-visibility { + margin: 0; + float: none; + width: 100%; + } + + .ai-field-controls { + margin-bottom: 5px; + } + + .ai-field-split { + float: none; + width: 100%; + } + + .ai-field-cover { + margin-bottom: $base-pad; + } + + .ai-footer { + text-align: center; + + .ai-brand-module-actions { + text-align: center; + margin-top: 10px; + } + + [class^="ai-col"] { + width: 100%; + } + } +} + +@media (max-width: 782px) { + .ai-container, + .ai-module { + .button { + .dashicons { + line-height: 1.2em; + } + } + } + + .ai-form-field-addon { + .button { + top: 2px; + } + } +} + +@media (max-width: 600px) { + .ai-field-controls { + .button { + width: 100%; + } + } + + .ai-header { + text-align: center; + + .ai-brand-module-actions { + margin-top: 10px; + } + + .ai-btn { + display: block; + } + + [class^="ai-col"] { + width: 100%; + } + } +} diff --git a/wp-content/plugins/audioigniter/assets/images/logo.svg b/wp-content/plugins/audioigniter/assets/images/logo.svg new file mode 100644 index 00000000..f2722937 --- /dev/null +++ b/wp-content/plugins/audioigniter/assets/images/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/plugins/audioigniter/assets/images/vc_icon.png b/wp-content/plugins/audioigniter/assets/images/vc_icon.png new file mode 100644 index 00000000..5d44eb65 Binary files /dev/null and b/wp-content/plugins/audioigniter/assets/images/vc_icon.png differ diff --git a/wp-content/plugins/audioigniter/assets/js/audioigniter.js b/wp-content/plugins/audioigniter/assets/js/audioigniter.js new file mode 100644 index 00000000..615b781e --- /dev/null +++ b/wp-content/plugins/audioigniter/assets/js/audioigniter.js @@ -0,0 +1,529 @@ +/* eslint-env browser, jquery */ +/* eslint-disable prefer-arrow-callback, prefer-template, func-names, no-var, object-shorthand, no-alert */ +/* global wp ai_scripts */ + +jQuery(function($) { + // Return early if ai_scripts are not available + if (!ai_scripts) { + // eslint-disable-line camelcase + return; + } + + // eslint-disable-next-line vars-on-top + var AudioIgniter = (function() { + var el = { + $trackContainer: $(".ai-fields-container"), + trackFieldClassName: ".ai-field-repeatable", + $addTrackButtonTop: $(".ai-add-field-top"), + $addTrackButtonBottom: $(".ai-add-field-bottom"), + removeFieldButtonClassName: ".ai-remove-field", + $removeAllTracksButton: $(".ai-remove-all-fields"), + $batchUploadButton: $(".ai-add-field-batch"), + audioUploadButtonClassName: ".ai-upload", + coverUploadButtonClassName: ".ai-field-upload-cover", + coverRemoveClassName: ".ai-remove-cover", + fieldTitleClassName: ".ai-field-title", + trackTitleClassName: ".ai-track-title", + trackArtistClassName: ".ai-track-artist", + trackLyricsClassName: ".ai-track-lyrics", + trackUrlClassName: ".ai-track-url", + hasCoverClass: "ai-has-cover", + fieldHeadClassName: ".ai-field-head", + fieldCollapsedClass: "ai-collapsed", + $expandAllButton: $(".ai-fields-expand-all"), + $collapseAllButton: $(".ai-fields-collapse-all"), + $shortcodeInputField: $("#ai_shortcode"), + soundCloudTrackClass: "ai-soundcloud-track" + }; + + /** + * Generate a rfc4122 version 4 compliant UUID + * http://stackoverflow.com/a/2117523 + * + * @returns {string} - UUID + */ + function uuid() { + return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function( + c + ) { + var r = (Math.random() * 16) | 0; + var v = c === "x" ? r : (r & 0x3) | 0x8; + return v.toString(16); + }); + } + + /** + * Check if field is collapsed + * + * @param {Object} $field - jQuery object + * @returns {*|boolean} + */ + function isFieldCollapsed($field) { + return $field.hasClass(el.fieldCollapsedClass); + } + + /** + * Collapse a field + * + * @param {Object} $field - jQuery object + */ + function collapseField($field) { + $field.addClass(el.fieldCollapsedClass); + } + + /** + * Expand a field + * + * @param {Object} $field - jQuery object + */ + function expandField($field) { + $field.removeClass(el.fieldCollapsedClass); + } + + /** + * Resets the cover image placeholder state + * + * @param {Object} $field - the remove button jQuery object + */ + function resetCoverImage($field) { + var $coverWrap = $field.find("." + el.hasCoverClass); + + $coverWrap + .removeClass(el.hasCoverClass) + .find("img") + .attr("src", "") + .attr("alt", ""); + $coverWrap + .parent() + .find("input") + .val(""); + } + + /** + * Resets a form field + * - Clears input values + * - Clears thumbnail + * + * @param {object} $field - the field's jQuery object + * @param {string} [hash] - UUID or random hash + */ + function resetField($field, hash) { + var fieldHash = $field.data("uid"); + var newHash = hash || uuid(); + + $field.attr("data-uid", newHash); + $field + .find("input, textarea") + .not(":button") + .each(function() { + var $this = $(this); + $this.attr("id", $this.attr("id").replace(fieldHash, newHash)); + $this.attr("name", $this.attr("name").replace(fieldHash, newHash)); + $this.val(""); + }); + $field.find("label").each(function() { + var $this = $(this); + $this.attr("for", $this.attr("for").replace(fieldHash, newHash)); + }); + $field.find(el.fieldTitleClassName).text(""); + $field.removeClass(el.soundCloudTrackClass); + expandField($field); + resetCoverImage($field); + } + + /** + * Checks if a track field is clear of values + * + * @param {object} $field - Track field jQuery object + * @returns {boolean} + */ + function isTrackFieldEmpty($field) { + var isEmpty = true; + var $inputs = $field.find("input"); + $inputs.each(function() { + if ($(this).val()) { + isEmpty = false; + } + }); + + return isEmpty; + } + + /** + * Gets the first field from $trackContainer + * and appends it back after resetting it + * + * @param {string} [hash] - UUID or random hash + * + * return {Object} - jQuery object + */ + function getNewTrackField(hash) { + var newHash = hash || uuid(); + var $clone = el.$trackContainer + .find(el.trackFieldClassName) + .first() + .clone() + .hide() + .fadeIn(); + resetField($clone, newHash); + + return $clone; + } + + /** + * Removes an element (or many) from the DOM + * by fading it out first + * + * @param {Object} $el - jQuery object of the element(s) to be removed + * @param {Function} [callback] - Optional callback + */ + function removeElement($el, callback) { + $el.fadeOut("fast", function() { + $(this).remove(); + + if (callback && typeof callback === "function") { + callback(); + } + }); + } + + /** + * Populates a track field + * + * @param {Object} $field - The field's jQuery object + * @param {Object} media - WP Media Manager media object + */ + function populateTrackField($field, media) { + var $urlInput = $field.find(el.trackUrlClassName); + var $titleInput = $field.find(el.trackTitleClassName); + var $artistInput = $field.find(el.trackArtistClassName); + var $fieldTitle = $field.find(el.fieldTitleClassName); + + if (media.url) { + $urlInput.val(media.url); + } + + if (media.title && $titleInput.val() === "") { + $titleInput.val(media.title); + $fieldTitle.text(media.title); + } + + if (media.meta && media.meta.artist && $artistInput.val() === "") { + $artistInput.val(media.meta.artist); + } + } + + /** + * Sets a cover image for the field + * + * @param $field - The field's jQuery object + * @param {Object} cover - Cover object + * @param {number} cover.id - Image ID + * @param {string} cover.url - Image URL + * @param {string} [cover.alt] - Image alt text + */ + function setTrackFieldCover($field, cover) { + var $coverField = $field.find(el.coverUploadButtonClassName); + + if (!cover || !cover.url || !cover.id) { + return; + } + + $coverField + .find("img") + .attr("src", cover.url) + .attr("alt", cover.alt || ""); + + $coverField + .addClass(el.hasCoverClass) + .siblings("input") + .val(cover.id); + } + + /** + * Initializes the WordPress Media Manager + * + * @param {Object} opts - Options object + * @param {string} opts.handler - Handler identifier of the media frame, + * this allows multiple media manager frames with different functionalities + * @param {string} [opts.type] - Filter media manager by type (audio, image etc) + * @param {string} [opts.title=Select Media] - Title of the media manager frame + * @param {boolean} [opts.multiple=false] - Accept multiple selections + * @param {Function} [opts.onMediaSelect] - Do something after media selection + */ + function wpMediaInit(opts) { + if (!opts.handler) { + throw new Error("Missing `handler` option"); + } + + /* eslint-disable */ + var multiple = opts.multiple || false; + var title = opts.title || "Select media"; + var mediaManager = wp.media.frames[opts.handler]; + /* eslint-enable */ + + if (mediaManager) { + mediaManager.open(); + return; + } + + mediaManager = wp.media({ + title: title, + multiple: multiple, + library: { + type: opts.type + } + }); + + mediaManager.open(); + + mediaManager.on("select", function() { + var attachments; + var attachmentModels = mediaManager.state().get("selection"); + + if (multiple) { + attachments = attachmentModels.map(function(attachment) { + return attachment.toJSON(); + }); + } else { + attachments = attachmentModels.first().toJSON(); + } + + if (opts.onMediaSelect && typeof opts.onMediaSelect === "function") { + opts.onMediaSelect(attachments); + } + }); + } + + /** + * Collapsible bindings + */ + el.$trackContainer.on("click", el.fieldHeadClassName, function(e) { + var $this = $(this); + var $parentField = $this.parents(el.trackFieldClassName); + + if (isFieldCollapsed($parentField)) { + expandField($parentField); + } else { + collapseField($parentField); + } + + e.preventDefault(); + }); + + el.$expandAllButton.on("click", function(e) { + expandField(el.$trackContainer.find(el.trackFieldClassName)); + e.preventDefault(); + }); + + el.$collapseAllButton.on("click", function(e) { + collapseField(el.$trackContainer.find(el.trackFieldClassName)); + e.preventDefault(); + }); + + /** + * Field control bindings + * (Add, remove buttons etc) + */ + + /* Bind track title to title input value */ + el.$trackContainer.on("keyup", el.trackTitleClassName, function() { + var $this = $(this); + var $fieldTitle = $this + .parents(el.trackFieldClassName) + .find(el.fieldTitleClassName); + $fieldTitle.text($this.val()); + }); + + /* Add Track Top*/ + el.$addTrackButtonTop.on("click", function() { + el.$trackContainer.prepend(getNewTrackField()); + }); + + /* Add Track Bottom*/ + el.$addTrackButtonBottom.on("click", function () { + el.$trackContainer.append(getNewTrackField()); + }); + + /* Remove Track */ + el.$trackContainer.on("click", el.removeFieldButtonClassName, function() { + var $this = $(this); + removeElement($this.parents(".ai-field-repeatable")); + }); + + /* Remove All Tracks */ + el.$removeAllTracksButton.on("click", function() { + var $trackFields = el.$trackContainer.find(el.trackFieldClassName); + + if (window.confirm(ai_scripts.messages.confirm_clear_tracks)) { + if ($trackFields.length > 1) { + removeElement($trackFields.slice(1)); + resetField($trackFields); + } else { + resetField($trackFields); + } + } + }); + + /** + * Bind media uploaders + */ + + /* Audio upload */ + el.$trackContainer.on("click", el.audioUploadButtonClassName, function() { + var $this = $(this); + var $parentTrackField = $this.parents(el.trackFieldClassName); + + wpMediaInit({ + handler: "ai-audio", + title: ai_scripts.messages.media_title_upload, + type: "audio", + onMediaSelect: function(media) { + populateTrackField($parentTrackField, media); + } + }); + }); + + /** + * Cover image upload + * + * Element `coverUploadButtonClassName` *must* have + * an `img` and `coverRemoveClassName` elements + * as children + */ + el.$trackContainer + .on("click", el.coverUploadButtonClassName, function(e) { + var $this = $(this); + + wpMediaInit({ + handler: "ai-cover", + title: ai_scripts.messages.media_title_upload_cover, + type: "image", + onMediaSelect: function(media) { + setTrackFieldCover($this.parents(el.trackFieldClassName), { + id: media.id, + url: media.sizes.thumbnail.url, + alt: media.alt + }); + } + }); + + e.preventDefault(); + }) + /* Remove Image */ + .on("click", el.coverRemoveClassName, function(e) { + var $this = $(this); + resetCoverImage($this.parents(el.trackFieldClassName)); + e.stopPropagation(); + e.preventDefault(); + }); + + /** + * Hide / show options based on player type + * + * Different player types support different kind of options. + * E.g. "Simple Player" doesn't support tracklist height, etc. + */ + var $settingsWrap = $(".ai-module-settings"); + var $typeSelect = $(".ai-form-select-player-type"); + + function getUnsupportedSettings($el) { + var settingsString = $el.data("no-support"); + + if (typeof settingsString !== "string") { + return []; + } + + return settingsString + .replace(/\s/g, "") // remove all whitespace + .split(",") + .map(function(x) { + return "_audioigniter_" + x; + }); + } + + function filterUIBasedOnPlayerType($el) { + var type = $el.val(); + + // Reset styles + var $shortcodeMetaBox = $("#ai-meta-box-shortcode"); + var $messageBox = $(".ai-player-type-message"); + var info = $el.data("info"); + + $shortcodeMetaBox.show(); + + if (info) { + $messageBox.text(info).show(); + } else { + $messageBox.text("").hide(); + } + + // Player specific controls + switch (type) { + case "global-footer": + $shortcodeMetaBox.hide(); + break; + default: + return; + } + } + + function filterSettings() { + var $formFields; + var $type = $typeSelect.find(":selected"); + var unsupportedSettings = getUnsupportedSettings($type); + + filterUIBasedOnPlayerType($type); + + if (unsupportedSettings.length === 0) { + $formFields = $settingsWrap.find(".ai-form-field"); + $formFields.show(); + return; + } + + $settingsWrap.find("input", "select", "textarea").each(function() { + var $this = $(this); + var $parent = $this.parents(".ai-form-field"); + if (unsupportedSettings.indexOf($this.attr("name")) > -1) { + $parent.hide(); + } else { + $parent.show(); + } + }); + } + + filterSettings(); + $typeSelect.on("change", filterSettings); + + /** + * Shortcode select on click + */ + el.$shortcodeInputField.on("click", function() { + $(this).select(); + }); + + /** + * Export public methods and variables + */ + return { + elements: el, + uuid: uuid, + collapseField: collapseField, + expandField: expandField, + isFieldCollapsed: isFieldCollapsed, + isTrackFieldEmpty: isTrackFieldEmpty, + resetField: resetField, + resetCoverImage: resetCoverImage, + getNewTrackField: getNewTrackField, + removeElement: removeElement, + populateTrackField: populateTrackField, + setTrackFieldCover: setTrackFieldCover, + wpMediaInit: wpMediaInit + }; + })(); + + // Expose the AudioIgniter instance as a global + if (!window.AudioIgniter) { + window.AudioIgniter = AudioIgniter; + } +}); diff --git a/wp-content/plugins/audioigniter/audioigniter.php b/wp-content/plugins/audioigniter/audioigniter.php new file mode 100644 index 00000000..3f02db67 --- /dev/null +++ b/wp-content/plugins/audioigniter/audioigniter.php @@ -0,0 +1,1375 @@ +. + * + */ + +if ( ! defined( 'ABSPATH' ) ) { + exit; +} + + +class AudioIgniter { + + /** + * AudioIgniter version. + * + * @var string + * @since 1.0.0 + * @since 1.7.0 Changed from static to non-static. + */ + public $version = null; + + /** + * Instance of this class. + * + * @var AudioIgniter + * @since 1.0.0 + */ + protected static $instance = null; + + /** + * Sanitizer instance. + * + * @var AudioIgniter_Sanitizer + * @since 1.0.0 + */ + public $sanitizer = null; + + /** + * The URL directory path (with trailing slash) of the main plugin file. + * + * @var string + * @since 1.0.0 + */ + protected static $plugin_url = ''; + + /** + * The filesystem directory path (with trailing slash) of the main plugin file. + * + * @var string + * @since 1.0.0 + */ + protected static $plugin_path = ''; + + + /** + * Playlist post type name. + * + * @var string + * @since 1.0.0 + */ + public $post_type = 'ai_playlist'; + + + + /** + * AudioIgniter Instance. + * + * Instantiates or reuses an instance of AudioIgniter. + * + * @since 1.0.0 + * @static + * @see AudioIgniter() + * @return AudioIgniter - Single instance. + */ + public static function instance() { + if ( is_null( self::$instance ) ) { + self::$instance = new self(); + } + return self::$instance; + } + + + /** + * AudioIgniter constructor. Intentionally left empty so that instances can be created without + * re-loading of resources (e.g. scripts/styles), or re-registering hooks. + * http://wordpress.stackexchange.com/questions/70055/best-way-to-initiate-a-class-in-a-wp-plugin + * https://gist.github.com/toscho/3804204 + * + * @since 1.0.0 + */ + public function __construct() {} + + /** + * Kickstarts plugin loading. + * + * @since 1.0.0 + */ + public function plugin_setup() { + if ( is_null( $this->version ) ) { + if ( ! function_exists( 'get_plugin_data' ) ) { + include_once ABSPATH . 'wp-admin/includes/plugin.php'; + } + $plugin_data = get_plugin_data( __FILE__ ); + + $this->version = $plugin_data['Version']; + } + + self::$plugin_url = plugin_dir_url( __FILE__ ); + self::$plugin_path = plugin_dir_path( __FILE__ ); + + load_plugin_textdomain( 'audioigniter', false, dirname( self::plugin_basename() ) . '/languages' ); + + include_once( 'class-audioigniter-sanitizer.php' ); + $this->sanitizer = new AudioIgniter_Sanitizer(); + + // Initialization needed in every request. + $this->init(); + + // Initialization needed in admin requests. + $this->admin_init(); + + // Initialization needed in frontend requests. + $this->frontend_init(); + + do_action( 'audioigniter_loaded' ); + } + + /** + * Registers actions that need to be run on both admin and frontend + * + * @since 1.0.0 + */ + protected function init() { + add_action( 'init', array( $this, 'register_post_types' ) ); + add_action( 'init', array( $this, 'register_scripts' ) ); + add_action( 'init', array( $this, 'register_playlist_endpoint' ) ); + add_action( 'init', array( $this, 'register_image_sizes' ) ); + add_action( 'init', array( $this, 'register_shortcodes' ) ); + add_action( 'widgets_init', array( $this, 'register_widgets' ) ); + + do_action( 'audioigniter_init' ); + } + + + /** + * Registers actions that need to be run on admin only. + * + * @since 1.0.0 + */ + protected function admin_init() { + if ( ! is_admin() ) { + return; + } + + add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_admin_scripts' ) ); + add_action( 'add_meta_boxes', array( $this, 'add_meta_boxes' ) ); + add_action( 'save_post', array( $this, 'save_post' ) ); + + do_action( 'audioigniter_admin_init' ); + } + + /** + * Registers actions that need to be run on frontend only. + * + * @since 1.0.0 + */ + protected function frontend_init() { + if ( is_admin() ) { + return; + } + + add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_scripts' ) ); + add_action( 'template_redirect', array( $this, 'handle_playlist_endpoint' ) ); + + do_action( 'audioigniter_frontend_init' ); + } + + /** + * Register (but not enqueue) all scripts and styles to be used throughout the plugin. + * + * @since 1.0.0 + */ + public function register_scripts() { + wp_register_style( 'audioigniter', $this->plugin_url() . 'player/build/style.css', array(), $this->version ); + wp_register_style( 'audioigniter-admin', $this->plugin_url() . 'assets/css/admin-styles.css', array(), $this->version ); + + wp_register_script( 'audioigniter', $this->plugin_url() . 'player/build/app.js', array(), $this->version, true ); + wp_register_script( 'audioigniter-admin', $this->plugin_url() . 'assets/js/audioigniter.js', array(), $this->version, true ); + + wp_localize_script( 'audioigniter', 'aiStrings', apply_filters( 'audioigniter_aiStrings', array( + /* translators: %s is the track's title. */ + 'play_title' => esc_html__( 'Play %s', 'audioigniter' ), + /* translators: %s is the track's title. */ + 'pause_title' => esc_html__( 'Pause %s', 'audioigniter' ), + 'previous' => esc_html__( 'Previous track', 'audioigniter' ), + 'next' => esc_html__( 'Next track', 'audioigniter' ), + 'toggle_list_repeat' => esc_html__( 'Toggle track listing repeat', 'audioigniter' ), + 'toggle_track_repeat' => esc_html__( 'Toggle track repeat' ), + 'toggle_list_visible' => esc_html__( 'Toggle track listing visibility', 'audioigniter' ), + 'buy_track' => esc_html__( 'Buy this track', 'audioigniter' ), + 'download_track' => esc_html__( 'Download this track', 'audioigniter' ), + 'volume_up' => esc_html__( 'Volume Up', 'audioigniter' ), + 'volume_down' => esc_html__( 'Volume Down', 'audioigniter' ), + 'open_track_lyrics' => esc_html__( 'Open track lyrics', 'audioigniter' ), + 'set_playback_rate' => esc_html__( 'Set playback rate', 'audioigniter' ), + 'skip_forward' => esc_html__( 'Skip forward', 'audioigniter' ), + 'skip_backward' => esc_html__( 'Skip backward', 'audioigniter' ), + 'shuffle' => esc_html__( 'Shuffle', 'audioigniter' ), + ) ) ); + + wp_localize_script( 'audioigniter-admin', 'ai_scripts', array( + 'messages' => array( + 'confirm_clear_tracks' => esc_html__( 'Do you really want to remove all tracks? (This will not delete your audio files).', 'audioigniter' ), + 'media_title_upload' => esc_html__( 'Select or upload audio media', 'audioigniter' ), + 'media_title_upload_cover' => esc_html__( 'Select a cover image', 'audioigniter' ), + ), + ) ); + } + + /** + * Enqueues frontend scripts and styles. + * + * @since 1.0.0 + */ + public function enqueue_scripts() { + wp_enqueue_style( 'audioigniter' ); + wp_enqueue_script( 'audioigniter' ); + } + + /** + * Enqueues admin scripts and styles. + * + * @since 1.0.0 + */ + public function enqueue_admin_scripts( $hook ) { + $screen = get_current_screen(); + + if ( 'post' === $screen->base && $screen->post_type === $this->post_type ) { + wp_enqueue_media(); + wp_enqueue_style( 'audioigniter-admin' ); + wp_enqueue_script( 'audioigniter-admin' ); + } + } + + /** + * Post types registration. + * + * @since 1.0.0 + */ + public function register_post_types() { + $labels = array( + 'name' => esc_html_x( 'Playlists', 'post type general name', 'audioigniter' ), + 'singular_name' => esc_html_x( 'Playlist', 'post type singular name', 'audioigniter' ), + 'menu_name' => esc_html_x( 'Playlists', 'admin menu', 'audioigniter' ), + 'name_admin_bar' => esc_html_x( 'Playlist', 'add new on admin bar', 'audioigniter' ), + 'add_new' => esc_html__( 'Add New Playlist', 'audioigniter' ), + 'add_new_item' => esc_html__( 'Add New Playlist', 'audioigniter' ), + 'edit_item' => esc_html__( 'Edit Playlist', 'audioigniter' ), + 'new_item' => esc_html__( 'New Playlist', 'audioigniter' ), + 'view_item' => esc_html__( 'View Playlist', 'audioigniter' ), + 'search_items' => esc_html__( 'Search Playlists', 'audioigniter' ), + 'not_found' => esc_html__( 'No playlists found', 'audioigniter' ), + 'not_found_in_trash' => esc_html__( 'No playlists found in the trash', 'audioigniter' ), + ); + + $args = array( + 'labels' => $labels, + 'singular_label' => esc_html_x( 'Playlist', 'post type singular name', 'audioigniter' ), + 'public' => false, + 'show_ui' => true, + 'capability_type' => 'post', + 'hierarchical' => false, + 'has_archive' => false, + 'supports' => array( 'title' ), + 'menu_icon' => 'dashicons-controls-volumeon', + ); + + register_post_type( $this->post_type, $args ); + } + + + /** + * Registers metaboxes for the ai_playlist post type. + * + * @since 1.0.0 + */ + public function add_meta_boxes() { + add_meta_box( 'ai-meta-box-tracks', esc_html__( 'Tracks', 'audioigniter' ), array( $this, 'metabox_tracks' ), $this->post_type, 'normal', 'high' ); + add_meta_box( 'ai-meta-box-settings', esc_html__( 'Settings', 'audioigniter' ), array( $this, 'metabox_settings' ), $this->post_type, 'normal', 'high' ); + add_meta_box( 'ai-meta-box-shortcode', esc_html__( 'Shortcode', 'audioigniter' ), array( $this, 'metabox_shortcode' ), $this->post_type, 'normal', 'high' ); + } + + /** + * Echoes the Tracks metabox markup. + * + * @since 1.0.0 + * + * @param WP_Post $object + * @param array $box + */ + public function metabox_tracks( $object, $box ) { + $tracks = $this->get_post_meta( $object->ID, '_audioigniter_tracks', array() ); + + wp_nonce_field( basename( __FILE__ ), $object->post_type . '_nonce' ); + ?> + + metabox_tracks_header(); ?> + +
+ metabox_tracks_field_controls( 'top' ); ?> + + + +
+ metabox_tracks_repeatable_track_field( $track ); + } + } else { + $this->metabox_tracks_repeatable_track_field(); + } + ?> +
+ + metabox_tracks_field_controls( 'bottom' ); ?> +
+ + metabox_tracks_footer(); ?> + + + +
+
+
+ +
+ + +
+
+ + + +
+
+ +
+
+ + + +
+
+ + + + + + +
+ +
+ + +
+
+ + +
+
+ + +
+ +
+ + +
+ + +
+ +
+
+ + +
+ + + + +
+
+ +
+ + +
+ + + + +
+ +
+
+ +
+
+ + + + + +
+ +
+ + + + + + +
+
+ get_post_meta( $object->ID, '_audioigniter_player_type', 'full' ); + $numbers = $this->get_post_meta( $object->ID, '_audioigniter_show_numbers', 1 ); + $numbers_reverse = $this->get_post_meta( $object->ID, '_audioigniter_show_numbers_reverse', 0 ); + $thumb = $this->get_post_meta( $object->ID, '_audioigniter_show_covers', 1 ); + $active_thumb = $this->get_post_meta( $object->ID, '_audioigniter_show_active_cover', 1 ); + $artist = $this->get_post_meta( $object->ID, '_audioigniter_show_artist', 1 ); + $buy_links = $this->get_post_meta( $object->ID, '_audioigniter_show_buy_links', 1 ); + $buy_links_new_target = $this->get_post_meta( $object->ID, '_audioigniter_buy_links_new_target', 1 ); + $cycle_tracks = $this->get_post_meta( $object->ID, '_audioigniter_cycle_tracks', 0 ); + $track_listing = $this->get_post_meta( $object->ID, '_audioigniter_show_track_listing', 1 ); + $track_listing_allow_toggle = $this->get_post_meta( $object->ID, '_audioigniter_allow_track_listing_toggle', 1 ); + $track_listing_allow_loop = $this->get_post_meta( $object->ID, '_audioigniter_allow_track_listing_loop', 1 ); + $credit = $this->get_post_meta( $object->ID, '_audioigniter_show_credit', 0 ); + $limit_tracklisting_height = $this->get_post_meta( $object->ID, '_audioigniter_limit_tracklisting_height', 1 ); + $tracklisting_height = $this->get_post_meta( $object->ID, '_audioigniter_tracklisting_height', 185 ); + $volume = $this->get_post_meta( $object->ID, '_audioigniter_volume', 100 ); + $max_width = $this->get_post_meta( $object->ID, '_audioigniter_max_width' ); + + wp_nonce_field( basename( __FILE__ ), $object->post_type . '_nonce' ); + ?> +
+
+

+ +
+
+ + + +
+ +
+ + /> + + +
+ +
+ + /> + + +
+ +
+ + /> + + +
+ +
+ + + + +

+ +

+
+ +
+ + /> + + +
+ +
+ + + + +

+ +

+
+ +
+ + + + +

+ +

+
+ + +
+ +
+

+ +
+ + /> + + +
+ +
+ + /> + + +
+ +
+ + /> + + +
+ +
+ + /> + + +
+ +
+ + /> + + +
+ +
+ + /> + + +
+ + +
+ +
+

+ +
+ + /> + + +
+ +
+ + /> + + +
+ + +
+ +
+ + /> + + + +

+ +

+
+
+ +
+
+ + + ID ) ); ?>" + /> + +
+
+ array( + 'label' => __( 'Full Player', 'audioigniter' ), + 'no-support' => array(), + 'info' => '', + ), + 'simple' => array( + 'label' => __( 'Simple Player', 'audioigniter' ), + 'no-support' => array( + 'show_track_listing', + 'show_covers', + 'show_active_cover', + 'limit_tracklisting_height', + 'tracklisting_height', + 'allow_track_listing_loop', + 'allow_track_listing_toggle', + 'skip_amount', + 'initial_track', + ), + 'info' => '', + ), + ); + + return apply_filters( 'audioigniter_player_types', $player_types ); + } + + public function save_post( $post_id ) { + if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) { return false; } + if ( isset( $_POST['post_view'] ) && 'list' === $_POST['post_view'] ) { return false; } + if ( ! isset( $_POST['post_type'] ) || $_POST['post_type'] !== $this->post_type ) { return false; } + if ( ! isset( $_POST[ $this->post_type . '_nonce' ] ) || ! wp_verify_nonce( $_POST[ $this->post_type . '_nonce' ], basename( __FILE__ ) ) ) { return false; } + $post_type_obj = get_post_type_object( $this->post_type ); + if ( ! current_user_can( $post_type_obj->cap->edit_post, $post_id ) ) { return false; } + + update_post_meta( $post_id, '_audioigniter_tracks', $this->sanitizer->metabox_playlist( $_POST['ai_playlist_tracks'], $post_id ) ); + + update_post_meta( $post_id, '_audioigniter_show_numbers', $this->sanitizer->checkbox_ref( $_POST['_audioigniter_show_numbers'] ) ); + update_post_meta( $post_id, '_audioigniter_show_numbers_reverse', $this->sanitizer->checkbox_ref( $_POST['_audioigniter_show_numbers_reverse'] ) ); + update_post_meta( $post_id, '_audioigniter_show_covers', $this->sanitizer->checkbox_ref( $_POST['_audioigniter_show_covers'] ) ); + update_post_meta( $post_id, '_audioigniter_show_active_cover', $this->sanitizer->checkbox_ref( $_POST['_audioigniter_show_active_cover'] ) ); + update_post_meta( $post_id, '_audioigniter_show_artist', $this->sanitizer->checkbox_ref( $_POST['_audioigniter_show_artist'] ) ); + update_post_meta( $post_id, '_audioigniter_show_buy_links', $this->sanitizer->checkbox_ref( $_POST['_audioigniter_show_buy_links'] ) ); + update_post_meta( $post_id, '_audioigniter_buy_links_new_target', $this->sanitizer->checkbox_ref( $_POST['_audioigniter_buy_links_new_target'] ) ); + update_post_meta( $post_id, '_audioigniter_cycle_tracks', $this->sanitizer->checkbox_ref( $_POST['_audioigniter_cycle_tracks'] ) ); + update_post_meta( $post_id, '_audioigniter_show_track_listing', $this->sanitizer->checkbox_ref( $_POST['_audioigniter_show_track_listing'] ) ); + update_post_meta( $post_id, '_audioigniter_allow_track_listing_toggle', $this->sanitizer->checkbox_ref( $_POST['_audioigniter_allow_track_listing_toggle'] ) ); + update_post_meta( $post_id, '_audioigniter_allow_track_listing_loop', $this->sanitizer->checkbox_ref( $_POST['_audioigniter_allow_track_listing_loop'] ) ); + update_post_meta( $post_id, '_audioigniter_player_type', $this->sanitizer->player_type( $_POST['_audioigniter_player_type'] ) ); + update_post_meta( $post_id, '_audioigniter_show_credit', $this->sanitizer->checkbox_ref( $_POST['_audioigniter_show_credit'] ) ); + update_post_meta( $post_id, '_audioigniter_limit_tracklisting_height', $this->sanitizer->checkbox_ref( $_POST['_audioigniter_limit_tracklisting_height'] ) ); + update_post_meta( $post_id, '_audioigniter_tracklisting_height', intval( $_POST['_audioigniter_tracklisting_height'] ) ); + update_post_meta( $post_id, '_audioigniter_volume', intval( $_POST['_audioigniter_volume'] ) ); + update_post_meta( $post_id, '_audioigniter_max_width', $this->sanitizer->intval_or_empty( $_POST['_audioigniter_max_width'] ) ); + + /** + * @since 1.4.0 + */ + do_action( 'audioigniter_save_post', $post_id ); + } + + public static function get_default_track_values() { + return apply_filters( 'audioigniter_default_track_values', array( + 'cover_id' => '', + 'title' => '', + 'artist' => '', + 'track_url' => '', + 'buy_link' => '', + 'download_url' => '', + ) ); + } + + public function register_image_sizes() { + add_image_size( 'audioigniter_cover', 560, 560, true ); + } + + public function register_widgets() { + $widgets = apply_filters( 'audioigniter_register_widgets', array() ); + + foreach ( $widgets as $class => $file ) { + require_once( $file ); + register_widget( $class ); + } + } + + public function register_shortcodes() { + add_shortcode( 'ai_playlist', array( $this, 'shortcode_ai_playlist' ) ); + } + + /** + * Checks whether passed post object or ID is an AudioIgniter playlist. + * + * @version 1.4.0 + * @since 1.4.0 + * + * @param int|WP_Post $post Post ID or post object. + * + * @return bool + */ + public function is_playlist( $post ) { + $post = get_post( $post ); + + if ( is_wp_error( $post ) || empty( $post ) || is_null( $post ) || $post->post_type !== $this->post_type ) { + return false; + } + + return true; + } + + /** + * Returns a data attributes array for the given playlist. + * + * @version 1.4.0 + * @since 1.4.0 + * + * @param int $post_id Post ID. + * + * @return array + */ + public function get_playlist_data_attributes_array( $post_id ) { + $post_id = intval( $post_id ); + + if ( ! $this->is_playlist( $post_id ) ) { + return array(); + } + + $attrs = array( + 'data-player-type' => $this->get_post_meta( $post_id, '_audioigniter_player_type', 'full' ), + 'data-tracks-url' => add_query_arg( array( 'audioigniter_playlist_id' => $post_id ), home_url( '/' ) ), + 'data-display-track-no' => $this->convert_bool_string( $this->get_post_meta( $post_id, '_audioigniter_show_numbers', 1 ) ), + 'data-reverse-track-order' => $this->convert_bool_string( $this->get_post_meta( $post_id, '_audioigniter_show_numbers_reverse', 0 ) ), + 'data-display-tracklist-covers' => $this->convert_bool_string( $this->get_post_meta( $post_id, '_audioigniter_show_covers', 1 ) ), + 'data-display-active-cover' => $this->convert_bool_string( $this->get_post_meta( $post_id, '_audioigniter_show_active_cover', 1 ) ), + 'data-display-artist-names' => $this->convert_bool_string( $this->get_post_meta( $post_id, '_audioigniter_show_artist', 1 ) ), + 'data-display-buy-buttons' => $this->convert_bool_string( $this->get_post_meta( $post_id, '_audioigniter_show_buy_links', 1 ) ), + 'data-buy-buttons-target' => $this->convert_bool_string( $this->get_post_meta( $post_id, '_audioigniter_buy_links_new_target', 1 ) ), + 'data-cycle-tracks' => $this->convert_bool_string( $this->get_post_meta( $post_id, '_audioigniter_cycle_tracks', 0 ) ), + 'data-display-credits' => $this->convert_bool_string( $this->get_post_meta( $post_id, '_audioigniter_show_credit', 1 ) ), + 'data-display-tracklist' => $this->convert_bool_string( $this->get_post_meta( $post_id, '_audioigniter_show_track_listing', 1 ) ), + 'data-allow-tracklist-toggle' => $this->convert_bool_string( $this->get_post_meta( $post_id, '_audioigniter_allow_track_listing_toggle', 1 ) ), + 'data-allow-tracklist-loop' => $this->convert_bool_string( $this->get_post_meta( $post_id, '_audioigniter_allow_track_listing_loop', 1 ) ), + 'data-limit-tracklist-height' => $this->convert_bool_string( $this->get_post_meta( $post_id, '_audioigniter_limit_tracklisting_height', 1 ) ), + 'data-volume' => intval( $this->get_post_meta( $post_id, '_audioigniter_volume', 100 ) ), + 'data-tracklist-height' => intval( $this->get_post_meta( $post_id, '_audioigniter_tracklisting_height', 185 ) ), + 'data-max-width' => $this->get_post_meta( $post_id, '_audioigniter_max_width' ), + ); + + return apply_filters( 'audioigniter_get_playlist_data_attributes_array', $attrs, $post_id ); + } + + /** + * Returns the output of the [ai_playlist] shortcode. + * + * @version 1.4.0 + * @since 1.0.0 + * + * @param array $atts The shortcode attributes. + * @param string $content Content, when used with a shortcode closing tag. + * @param string $tag The shortcode name used to reach this function. + * + * @return string + */ + public function shortcode_ai_playlist( $atts, $content, $tag ) { + $atts = shortcode_atts( array( + 'id' => '', + 'class' => '', + ), $atts, $tag ); + + $id = intval( $atts['id'] ); + $class_name = $atts['class']; + + if ( ! $this->is_playlist( $id ) ) { + return ''; + } + + $post = get_post( $id ); + + $params = apply_filters( 'audioigniter_shortcode_data_attributes_array', $this->get_playlist_data_attributes_array( $id ), $id, $post ); + $params = array_filter( $params, array( $this->sanitizer, 'array_filter_empty_null' ) ); + $params = $this->sanitizer->html_data_attributes_array( $params ); + + // Returning a truthy value from the filter, will short-circuit execution of the shortcode. + if ( false !== apply_filters( 'audioigniter_shortcode_shortcircuit', false, $id, $post, $params ) ) { + return ''; + } + + $data = ''; + foreach ( $params as $attribute => $value ) { + $data .= sprintf( '%s="%s" ', sanitize_key( $attribute ), esc_attr( $value ) ); + } + + $player_classes = array_merge( array( + 'audioigniter-root', + ), explode( ' ', $class_name ) ); + + $output = sprintf( '
', + esc_attr( $id ), + esc_attr( implode( ' ', $player_classes ) ), + $data + ); + + return $output; + } + + public function convert_bool_string( $value ) { + if ( $value ) { + return 'true'; + } + + return 'false'; + } + + public function register_playlist_endpoint() { + add_rewrite_tag( '%audioigniter_playlist_id%', '([0-9]+)' ); + add_rewrite_rule( '^audioigniter/playlist/([0-9]+)/?', 'index.php?audioigniter_playlist_id=$matches[1]', 'bottom' ); + } + + public function handle_playlist_endpoint() { + global $wp_query; + + $playlist_id = $wp_query->get( 'audioigniter_playlist_id' ); + + if ( empty( $playlist_id ) ) { + return; + } + + $playlist_id = intval( $playlist_id ); + $post = get_post( $playlist_id ); + + if ( empty( $post ) || $post->post_type !== $this->post_type ) { + wp_send_json_error( __( "ID doesn't match a playlist", 'audioigniter' ) ); + } + + $response = array(); + $tracks = $this->get_post_meta( $playlist_id, '_audioigniter_tracks', array() ); + + if ( empty( $tracks ) ) { + $tracks = array(); + } + + foreach ( $tracks as $track ) { + $track = wp_parse_args( $track, self::get_default_track_values() ); + $track_response = array(); + + $track_response['title'] = $track['title']; + $track_response['subtitle'] = $track['artist']; + $track_response['audio'] = $track['track_url']; + $track_response['buyUrl'] = $track['buy_link']; + $track_response['downloadUrl'] = $track['download_url']; + $track_response['downloadFilename'] = $this->get_filename_from_url( $track['download_url'] ); + + if ( ! $track_response['downloadFilename'] ) { + $track_response['downloadFilename'] = $track_response['downloadUrl']; + } + + $cover_url = wp_get_attachment_image_src( intval( $track['cover_id'] ), 'audioigniter_cover' ); + if ( ! empty( $cover_url[0] ) ) { + $cover_url = $cover_url[0]; + } else { + $cover_url = ''; + } + + $track_response['cover'] = $cover_url; + + $track_response = apply_filters( 'audioigniter_playlist_endpoint_track', $track_response, $track, $playlist_id, $post ); + + $response[] = $track_response; + } + + wp_send_json( $response ); + } + + function get_filename_from_url( $url ) { + $struct = wp_parse_url( $url ); + + if ( ! empty( $struct['path'] ) ) { + return basename( $struct['path'] ); + } + + return ''; + } + + public function get_all_playlists( $orderby = 'date', $order = 'DESC' ) { + $q = new WP_Query( array( + 'post_type' => $this->post_type, + 'posts_per_page' => - 1, + 'orderby' => $orderby, + 'order' => $order, + ) ); + + return $q->posts; + } + + public function get_post_meta( $post_id, $key, $default = '' ) { + $keys = get_post_custom_keys( $post_id ); + + $value = $default; + + if ( is_array( $keys ) && in_array( $key, $keys, true ) ) { + $value = get_post_meta( $post_id, $key, true ); + } + + return $value; + } + + public function plugin_activated() { + if ( ! current_user_can( 'activate_plugins' ) ) { + return; + } + + $this->register_post_types(); + + do_action( 'audioigniter_activated' ); + + flush_rewrite_rules(); + } + + public function plugin_deactivated() { + if ( ! current_user_can( 'activate_plugins' ) ) { + return; + } + + unregister_post_type( $this->post_type ); + + do_action( 'audioigniter_deactivated' ); + + flush_rewrite_rules(); + } + + public static function plugin_basename() { + return plugin_basename( __FILE__ ); + } + + public function plugin_url() { + return self::$plugin_url; + } + + public function plugin_path() { + return self::$plugin_path; + } +} + + +/** + * Main instance of AudioIgniter. + * + * Returns the working instance of AudioIgniter. No need for globals. + * + * @since 1.0.0 + * @return AudioIgniter + */ +function AudioIgniter() { + return AudioIgniter::instance(); +} + +add_action( 'plugins_loaded', array( AudioIgniter(), 'plugin_setup' ) ); +register_activation_hook( __FILE__, array( AudioIgniter(), 'plugin_activated' ) ); +register_deactivation_hook( __FILE__, array( AudioIgniter(), 'plugin_deactivated' ) ); diff --git a/wp-content/plugins/audioigniter/class-audioigniter-sanitizer.php b/wp-content/plugins/audioigniter/class-audioigniter-sanitizer.php new file mode 100644 index 00000000..2925f997 --- /dev/null +++ b/wp-content/plugins/audioigniter/class-audioigniter-sanitizer.php @@ -0,0 +1,367 @@ +get_player_types() + * + * @param string $value Player type to sanitize. + * + * @return string + */ + public static function player_type( $value ) { + $choices = AudioIgniter()->get_player_types(); + if ( array_key_exists( $value, $choices ) ) { + return $value; + } + + return 'full'; + } + + /** + * Sanitizes a playlist (repeatable tracks). + * + * @version 1.2.0 + * @since 1.0.0 + * + * @uses AudioIgniter_Sanitizer::playlist_track() + * + * @param array $post_tracks Input values to sanitize, as passed by the playlist metabox. + * @param int|null $post_id Optional. Post ID where the track belongs to. + * + * @return array + */ + public static function metabox_playlist( $post_tracks, $post_id = null ) { + if ( empty( $post_tracks ) || ! is_array( $post_tracks ) ) { + return array(); + } + + $tracks = array(); + + foreach ( $post_tracks as $uid => $track_data ) { + $track = self::playlist_track( $track_data, $post_id, $uid ); + if ( false !== $track ) { + $tracks[] = $track; + } + } + + return apply_filters( 'audioigniter_sanitize_playlist', $tracks, $post_tracks, $post_id ); + } + + /** + * Sanitizes a single playlist track. + * + * @since 1.0.0 + * + * @uses AudioIgniter::get_default_track_values() + * + * @param array $track Input values to sanitize. + * @param int|null $post_id Optional. Post ID where the track belongs to. + * @param string $track_uid Optional. UID that identifies the track in the metabox list. + * + * @return array|false Array if at least one field is completed, false otherwise. + */ + public static function playlist_track( $track, $post_id = null, $track_uid = '' ) { + $track = wp_parse_args( $track, AudioIgniter::get_default_track_values() ); + + $sanitized_track = array(); + + $sanitized_track['cover_id'] = intval( $track['cover_id'] ); + $sanitized_track['title'] = sanitize_text_field( $track['title'] ); + $sanitized_track['artist'] = sanitize_text_field( $track['artist'] ); + $sanitized_track['track_url'] = esc_url_raw( $track['track_url'] ); + $sanitized_track['buy_link'] = esc_url_raw( $track['buy_link'] ); + $sanitized_track['download_url'] = esc_url_raw( $track['download_url'] ); + + $sanitized_track = array_map( 'trim', $sanitized_track ); + + $tmp = array_filter( $sanitized_track ); + if ( empty( $tmp ) ) { + $sanitized_track = false; + } + + return apply_filters( 'audioigniter_sanitize_playlist_track', $sanitized_track, $track, $post_id, $track_uid ); + } + + /** + * Sanitizes a checkbox value. + * + * @since 1.0.0 + * + * @param int|string|bool $input Input value to sanitize. + * + * @return int|string Returns 1 if $input evaluates to 1, an empty string otherwise. + */ + public static function checkbox( $input ) { + if ( 1 == $input ) { // WPCS: loose comparison ok. + return 1; + } + + return ''; + } + + /** + * Sanitizes a checkbox value. Value is passed by reference. + * + * Useful when sanitizing form checkboxes. Since browsers don't send any data when a checkbox + * is not checked, checkbox() throws an error. + * checkbox_ref() however evaluates &$input as null so no errors are thrown. + * + * @since 1.0.0 + * + * @param int|string|bool &$input Input value to sanitize. + * + * @return int|string Returns 1 if $input evaluates to 1, an empty string otherwise. + */ + public static function checkbox_ref( &$input ) { + if ( 1 == $input ) { // WPCS: loose comparison ok. + return 1; + } + + return ''; + } + + + /** + * Sanitizes integer input while differentiating zero from empty string. + * + * @since 1.0.0 + * + * @param mixed $input Input value to sanitize. + * + * @return int|string Integer value (including zero), or an empty string otherwise. + */ + public static function intval_or_empty( $input ) { + if ( is_null( $input ) || false === $input || '' === $input ) { + return ''; + } + + if ( 0 == $input ) { // WPCS: loose comparison ok. + return 0; + } + + return intval( $input ); + } + + + /** + * Returns a sanitized hex color code. + * + * @since 1.0.0 + * + * @param string $str The color string to be sanitized. + * @param bool $return_hash Whether to return the color code prepended by a hash. + * @param string $return_fail The value to return on failure. + * + * @return string A valid hex color code on success, an empty string on failure. + */ + public static function hex_color( $str, $return_hash = true, $return_fail = '' ) { + if ( false === $str || empty( $str ) || 'false' === $str ) { + return $return_fail; + } + + // Allow keywords and predefined colors + if ( in_array( $str, array( 'transparent', 'initial', 'inherit', 'black', 'silver', 'gray', 'grey', 'white', 'maroon', 'red', 'purple', 'fuchsia', 'green', 'lime', 'olive', 'yellow', 'navy', 'blue', 'teal', 'aqua', 'orange', 'aliceblue', 'antiquewhite', 'aquamarine', 'azure', 'beige', 'bisque', 'blanchedalmond', 'blueviolet', 'brown', 'burlywood', 'cadetblue', 'chartreuse', 'chocolate', 'coral', 'cornflowerblue', 'cornsilk', 'crimson', 'darkblue', 'darkcyan', 'darkgoldenrod', 'darkgray', 'darkgrey', 'darkgreen', 'darkkhaki', 'darkmagenta', 'darkolivegreen', 'darkorange', 'darkorchid', 'darkred', 'darksalmon', 'darkseagreen', 'darkslateblue', 'darkslategray', 'darkslategrey', 'darkturquoise', 'darkviolet', 'deeppink', 'deepskyblue', 'dimgray', 'dimgrey', 'dodgerblue', 'firebrick', 'floralwhite', 'forestgreen', 'gainsboro', 'ghostwhite', 'gold', 'goldenrod', 'greenyellow', 'grey', 'honeydew', 'hotpink', 'indianred', 'indigo', 'ivory', 'khaki', 'lavender', 'lavenderblush', 'lawngreen', 'lemonchiffon', 'lightblue', 'lightcoral', 'lightcyan', 'lightgoldenrodyellow', 'lightgray', 'lightgreen', 'lightgrey', 'lightpink', 'lightsalmon', 'lightseagreen', 'lightskyblue', 'lightslategray', 'lightslategrey', 'lightsteelblue', 'lightyellow', 'limegreen', 'linen', 'mediumaquamarine', 'mediumblue', 'mediumorchid', 'mediumpurple', 'mediumseagreen', 'mediumslateblue', 'mediumspringgreen', 'mediumturquoise', 'mediumvioletred', 'midnightblue', 'mintcream', 'mistyrose', 'moccasin', 'navajowhite', 'oldlace', 'olivedrab', 'orangered', 'orchid', 'palegoldenrod', 'palegreen', 'paleturquoise', 'palevioletred', 'papayawhip', 'peachpuff', 'peru', 'pink', 'plum', 'powderblue', 'rosybrown', 'royalblue', 'saddlebrown', 'salmon', 'sandybrown', 'seagreen', 'seashell', 'sienna', 'skyblue', 'slateblue', 'slategray', 'slategrey', 'snow', 'springgreen', 'steelblue', 'tan', 'thistle', 'tomato', 'turquoise', 'violet', 'wheat', 'whitesmoke', 'yellowgreen', 'rebeccapurple' ), true ) ) { + return $str; + } + + // Include the hash if not there. + // The regex below depends on in. + if ( substr( $str, 0, 1 ) !== '#' ) { + $str = '#' . $str; + } + + preg_match( '/(#)([0-9a-fA-F]{6})/', $str, $matches ); + + if ( count( $matches ) === 3 ) { + if ( $return_hash ) { + return $matches[1] . $matches[2]; + } else { + return $matches[2]; + } + } + + return $return_fail; + } + + /** + * Sanitizes a CSS color. + * + * Tries to validate and sanitize values in these formats: + * - rgba() + * - 3 and 6 digit hex values, optionally prefixed with `#` + * - Predefined CSS named colors/keywords, such as 'transparent', 'initial', 'inherit', 'black', 'silver', etc. + * + * @since 1.7.1 + * + * @param string $color The color value to sanitize + * @param bool $return_hash Whether to return hex color prefixed with a `#` + * @param string $return_fail Value to return when $color fails validation. + * + * @return string + */ + public static function rgba_color( $color, $return_hash = true, $return_fail = '' ) { + if ( false === $color || empty( $color ) || 'false' === $color ) { + return $return_fail; + } + + // Allow keywords and predefined colors + if ( in_array( $color, array( 'transparent', 'initial', 'inherit', 'black', 'silver', 'gray', 'grey', 'white', 'maroon', 'red', 'purple', 'fuchsia', 'green', 'lime', 'olive', 'yellow', 'navy', 'blue', 'teal', 'aqua', 'orange', 'aliceblue', 'antiquewhite', 'aquamarine', 'azure', 'beige', 'bisque', 'blanchedalmond', 'blueviolet', 'brown', 'burlywood', 'cadetblue', 'chartreuse', 'chocolate', 'coral', 'cornflowerblue', 'cornsilk', 'crimson', 'darkblue', 'darkcyan', 'darkgoldenrod', 'darkgray', 'darkgrey', 'darkgreen', 'darkkhaki', 'darkmagenta', 'darkolivegreen', 'darkorange', 'darkorchid', 'darkred', 'darksalmon', 'darkseagreen', 'darkslateblue', 'darkslategray', 'darkslategrey', 'darkturquoise', 'darkviolet', 'deeppink', 'deepskyblue', 'dimgray', 'dimgrey', 'dodgerblue', 'firebrick', 'floralwhite', 'forestgreen', 'gainsboro', 'ghostwhite', 'gold', 'goldenrod', 'greenyellow', 'grey', 'honeydew', 'hotpink', 'indianred', 'indigo', 'ivory', 'khaki', 'lavender', 'lavenderblush', 'lawngreen', 'lemonchiffon', 'lightblue', 'lightcoral', 'lightcyan', 'lightgoldenrodyellow', 'lightgray', 'lightgreen', 'lightgrey', 'lightpink', 'lightsalmon', 'lightseagreen', 'lightskyblue', 'lightslategray', 'lightslategrey', 'lightsteelblue', 'lightyellow', 'limegreen', 'linen', 'mediumaquamarine', 'mediumblue', 'mediumorchid', 'mediumpurple', 'mediumseagreen', 'mediumslateblue', 'mediumspringgreen', 'mediumturquoise', 'mediumvioletred', 'midnightblue', 'mintcream', 'mistyrose', 'moccasin', 'navajowhite', 'oldlace', 'olivedrab', 'orangered', 'orchid', 'palegoldenrod', 'palegreen', 'paleturquoise', 'palevioletred', 'papayawhip', 'peachpuff', 'peru', 'pink', 'plum', 'powderblue', 'rosybrown', 'royalblue', 'saddlebrown', 'salmon', 'sandybrown', 'seagreen', 'seashell', 'sienna', 'skyblue', 'slateblue', 'slategray', 'slategrey', 'snow', 'springgreen', 'steelblue', 'tan', 'thistle', 'tomato', 'turquoise', 'violet', 'wheat', 'whitesmoke', 'yellowgreen', 'rebeccapurple' ), true ) ) { + return $color; + } + + preg_match( '/rgba\(\s*(\d{1,3}\.?\d*\%?)\s*,\s*(\d{1,3}\.?\d*\%?)\s*,\s*(\d{1,3}\.?\d*\%?)\s*,\s*(\d{1}\.?\d*\%?)\s*\)/', $color, $rgba_matches ); + if ( ! empty( $rgba_matches ) && 5 === count( $rgba_matches ) ) { + for ( $i = 1; $i < 4; $i++ ) { + if ( strpos( $rgba_matches[ $i ], '%' ) !== false ) { + $rgba_matches[ $i ] = self::float_0_100( $rgba_matches[ $i ] ); + } else { + $rgba_matches[ $i ] = self::int_0_255( $rgba_matches[ $i ] ); + } + } + $rgba_matches[4] = self::float_0_1( $rgba_matches[ $i ] ); + return sprintf( 'rgba(%s, %s, %s, %s)', $rgba_matches[1], $rgba_matches[2], $rgba_matches[3], $rgba_matches[4] ); + } + + // Not a color function either. Let's see if it's a hex color. + + // Include the hash if not there. + // The regex below depends on in. + if ( substr( $color, 0, 1 ) !== '#' ) { + $color = '#' . $color; + } + + preg_match( '/(#)([0-9a-fA-F]{6})/', $color, $matches ); + + if ( 3 === count( $matches ) ) { + if ( $return_hash ) { + return $matches[1] . $matches[2]; + } else { + return $matches[2]; + } + } + + return $return_fail; + } + + /** + * Sanitizes a percentage value, 0% - 100% + * + * Accepts float values with or without the percentage sign `%` + * Returns a string suffixed with the percentage sign `%`. + * + * @since 1.7.1 + * + * @param mixed $value + * + * @return string A percentage value, including the percentage sign. + */ + public static function float_0_100( $value ) { + $value = str_replace( '%', '', $value ); + if ( floatval( $value ) > 100 ) { + $value = 100; + } elseif ( floatval( $value ) < 0 ) { + $value = 0; + } + + return floatval( $value ) . '%'; + } + + /** + * Sanitizes a decimal CSS color value, 0 - 255. + * + * Accepts float values with or without the percentage sign `%` + * Returns a string suffixed with the percentage sign `%`. + * + * @since 1.7.1 + * + * @param mixed $value + * + * @return int A number between 0-255. + */ + public static function int_0_255( $value ) { + if ( intval( $value ) > 255 ) { + $value = 255; + } elseif ( intval( $value ) < 0 ) { + $value = 0; + } + + return intval( $value ); + } + + /** + * Sanitizes a CSS opacity value, 0 - 1. + * + * @since 1.7.1 + * + * @param mixed $value + * + * @return float A number between 0-1. + */ + public static function float_0_1( $value ) { + if ( floatval( $value ) > 1 ) { + $value = 1; + } elseif ( floatval( $value ) < 0 ) { + $value = 0; + } + + return floatval( $value ); + } + + /** + * Removes elements whose keys are not valid data-attribute names. + * + * @since 1.0.0 + * + * @param array $array Input array to sanitize. + * + * @return array() + */ + public static function html_data_attributes_array( $array ) { + $keys = array_keys( $array ); + $key_prefix = 'data-'; + + // Remove keys that are not data attributes. + foreach ( $keys as $key ) { + if ( substr( $key, 0, strlen( $key_prefix ) ) !== $key_prefix ) { + unset( $array[ $key ] ); + } + } + + return $array; + } + + + /** + * Returns false when value is empty or null. + * Only use with array_filter() or similar, as the naming can lead to confusion. + * + * @since 1.2.0 + * + * @param mixed $value Array value to check whether empty or null. + * + * @return bool false if empty or null, true otherwise. + */ + public static function array_filter_empty_null( $value ) { + if ( '' === $value || is_null( $value ) ) { + return false; + } + + return true; + } + +} diff --git a/wp-content/plugins/audioigniter/ignitefile.js b/wp-content/plugins/audioigniter/ignitefile.js new file mode 100644 index 00000000..cdeecbdb --- /dev/null +++ b/wp-content/plugins/audioigniter/ignitefile.js @@ -0,0 +1,8 @@ +module.exports = { + name: 'audioigniter', + paths: { + src: { + styles: ['./assets/css/*.scss'], + }, + }, +}; diff --git a/wp-content/plugins/audioigniter/languages/audioigniter.pot b/wp-content/plugins/audioigniter/languages/audioigniter.pot new file mode 100644 index 00000000..71b0e1e8 --- /dev/null +++ b/wp-content/plugins/audioigniter/languages/audioigniter.pot @@ -0,0 +1,391 @@ +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: AudioIgniter\n" +"POT-Creation-Date: 2021-12-14 12:04+0200\n" +"PO-Revision-Date: 2016-08-29 19:22+0300\n" +"Last-Translator: Anastis Sourgoutsidis \n" +"Language-Team: Anastis Sourgoutsidis \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" +"X-Generator: Poedit 3.0.1\n" +"X-Poedit-Basepath: ..\n" +"X-Poedit-WPHeader: audioigniter.php\n" +"X-Poedit-SourceCharset: UTF-8\n" +"X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;" +"esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;_n_noop:1,2;" +"_nx_noop:3c,1,2;__ngettext_noop:1,2\n" +"X-Poedit-Flags-xgettext: --add-comments=translators:\n" +"X-Poedit-SearchPath-0: .\n" +"X-Poedit-SearchPathExcluded-0: *.js\n" + +#. translators: %s is the track's title. +#: audioigniter.php:213 +#, php-format +msgid "Play %s" +msgstr "" + +#. translators: %s is the track's title. +#: audioigniter.php:215 +#, php-format +msgid "Pause %s" +msgstr "" + +#: audioigniter.php:216 +msgid "Previous track" +msgstr "" + +#: audioigniter.php:217 +msgid "Next track" +msgstr "" + +#: audioigniter.php:218 +msgid "Toggle track listing repeat" +msgstr "" + +#: audioigniter.php:219 +msgid "Toggle track repeat" +msgstr "" + +#: audioigniter.php:220 +msgid "Toggle track listing visibility" +msgstr "" + +#: audioigniter.php:221 +msgid "Buy this track" +msgstr "" + +#: audioigniter.php:222 +msgid "Download this track" +msgstr "" + +#: audioigniter.php:223 +msgid "Volume Up" +msgstr "" + +#: audioigniter.php:224 +msgid "Volume Down" +msgstr "" + +#: audioigniter.php:225 +msgid "Open track lyrics" +msgstr "" + +#: audioigniter.php:226 +msgid "Set playback rate" +msgstr "" + +#: audioigniter.php:227 +msgid "Skip forward" +msgstr "" + +#: audioigniter.php:228 +msgid "Skip backward" +msgstr "" + +#: audioigniter.php:229 +msgid "Shuffle" +msgstr "" + +#: audioigniter.php:234 +msgid "" +"Do you really want to remove all tracks? (This will not delete your audio " +"files)." +msgstr "" + +#: audioigniter.php:235 +msgid "Select or upload audio media" +msgstr "" + +#: audioigniter.php:236 +msgid "Select a cover image" +msgstr "" + +#: audioigniter.php:273 +msgctxt "post type general name" +msgid "Playlists" +msgstr "" + +#: audioigniter.php:274 audioigniter.php:289 +msgctxt "post type singular name" +msgid "Playlist" +msgstr "" + +#: audioigniter.php:275 +msgctxt "admin menu" +msgid "Playlists" +msgstr "" + +#: audioigniter.php:276 +msgctxt "add new on admin bar" +msgid "Playlist" +msgstr "" + +#: audioigniter.php:277 audioigniter.php:278 +msgid "Add New Playlist" +msgstr "" + +#: audioigniter.php:279 +msgid "Edit Playlist" +msgstr "" + +#: audioigniter.php:280 +msgid "New Playlist" +msgstr "" + +#: audioigniter.php:281 +msgid "View Playlist" +msgstr "" + +#: audioigniter.php:282 +msgid "Search Playlists" +msgstr "" + +#: audioigniter.php:283 +msgid "No playlists found" +msgstr "" + +#: audioigniter.php:284 +msgid "No playlists found in the trash" +msgstr "" + +#: audioigniter.php:309 audioigniter.php:830 +msgid "Tracks" +msgstr "" + +#: audioigniter.php:310 +msgid "Settings" +msgstr "" + +#: audioigniter.php:311 +msgid "Shortcode" +msgstr "" + +#: audioigniter.php:370 +msgid "AudioIgniter Logo" +msgstr "" + +#: audioigniter.php:379 +msgid "Upgrade to Pro" +msgstr "" + +#: audioigniter.php:403 +msgid "Support" +msgstr "" + +#: audioigniter.php:407 +msgid "Documentation" +msgstr "" + +#: audioigniter.php:411 +msgid "Rate this plugin" +msgstr "" + +#. translators: %s is a URL. +#: audioigniter.php:434 +#, php-format +msgid "" +"Thank you for creating with AudioIgniter" +msgstr "" + +#: audioigniter.php:479 +msgid "Toggle track visibility" +msgstr "" + +#: audioigniter.php:490 +msgid "Remove Cover Image" +msgstr "" + +#: audioigniter.php:503 +msgid "Upload Cover" +msgstr "" + +#: audioigniter.php:521 audioigniter.php:528 +msgid "Title" +msgstr "" + +#: audioigniter.php:536 audioigniter.php:543 +msgid "Artist" +msgstr "" + +#: audioigniter.php:552 audioigniter.php:559 +msgid "Buy link" +msgstr "" + +#: audioigniter.php:572 audioigniter.php:581 +msgid "Audio file or radio stream" +msgstr "" + +#: audioigniter.php:585 +msgid "Upload" +msgstr "" + +#: audioigniter.php:596 audioigniter.php:603 +msgid "Download URL" +msgstr "" + +#: audioigniter.php:612 +msgid "Remove Track" +msgstr "" + +#: audioigniter.php:627 +msgid "Add Track" +msgstr "" + +#: audioigniter.php:634 +msgid "Clear Playlist" +msgstr "" + +#: audioigniter.php:640 +msgid "Expand All" +msgstr "" + +#: audioigniter.php:643 +msgid "Collapse All" +msgstr "" + +#: audioigniter.php:682 +msgid "Player & Track listing" +msgstr "" + +#: audioigniter.php:687 +msgid "Player Type" +msgstr "" + +#: audioigniter.php:718 +msgid "Show track listing by default" +msgstr "" + +#: audioigniter.php:732 +msgid "Show track listing visibility toggle button" +msgstr "" + +#: audioigniter.php:746 +msgid "Reverse track order" +msgstr "" + +#: audioigniter.php:752 +msgid "Starting volume" +msgstr "" + +#: audioigniter.php:763 +msgid "0-100" +msgstr "" + +#: audioigniter.php:768 +msgid "Enter a value between 0 and 100 in increments of 10" +msgstr "" + +#: audioigniter.php:782 +msgid "Limit track listing height" +msgstr "" + +#: audioigniter.php:788 audioigniter.php:798 +msgid "Track listing height" +msgstr "" + +#: audioigniter.php:803 +msgid "Set a number of pixels" +msgstr "" + +#: audioigniter.php:809 +msgid "Maximum player width" +msgstr "" + +#: audioigniter.php:817 +msgid "Automatic width" +msgstr "" + +#: audioigniter.php:822 +#, php-format +msgid "" +"Set a number of pixels, or leave empty to automatically cover 100% of the " +"available area (recommended)." +msgstr "" + +#: audioigniter.php:842 +msgid "Show track numbers in tracklist" +msgstr "" + +#: audioigniter.php:856 +msgid "Show track covers in tracklist" +msgstr "" + +#: audioigniter.php:870 +msgid "Show active track's cover" +msgstr "" + +#: audioigniter.php:884 +msgid "Show artist names" +msgstr "" + +#: audioigniter.php:898 +msgid "Show track extra buttons (buy link, download button etc)" +msgstr "" + +#: audioigniter.php:912 +msgid "Open buy links in new window" +msgstr "" + +#: audioigniter.php:920 +msgid "Track & Track listing repeat" +msgstr "" + +#: audioigniter.php:932 +msgid "Repeat track listing enabled by default" +msgstr "" + +#: audioigniter.php:946 +msgid "Show track listing repeat toggle button" +msgstr "" + +#: audioigniter.php:963 +msgid "Show \"Powered by AudioIgniter\" link" +msgstr "" + +#: audioigniter.php:967 +msgid "" +"We've put a great deal of effort into building this plugin. If you feel like " +"it, let others know about it by enabling this option." +msgstr "" + +#: audioigniter.php:987 +msgid "Grab the shortcode" +msgstr "" + +#: audioigniter.php:1021 +msgid "Full Player" +msgstr "" + +#: audioigniter.php:1026 +msgid "Simple Player" +msgstr "" + +#: audioigniter.php:1248 +msgid "ID doesn't match a playlist" +msgstr "" + +#. Plugin Name of the plugin/theme +msgid "AudioIgniter" +msgstr "" + +#. Plugin URI of the plugin/theme +msgid "https://www.cssigniter.com/plugins/audioigniter/" +msgstr "" + +#. Description of the plugin/theme +msgid "" +"AudioIgniter lets you create music playlists and embed them in your " +"WordPress posts, pages or custom post types and serve your audio content in " +"style!" +msgstr "" + +#. Author of the plugin/theme +msgid "The CSSIgniter Team" +msgstr "" + +#. Author URI of the plugin/theme +msgid "https://www.cssigniter.com" +msgstr "" diff --git a/wp-content/plugins/audioigniter/player/.babelrc b/wp-content/plugins/audioigniter/player/.babelrc new file mode 100644 index 00000000..0fc370d2 --- /dev/null +++ b/wp-content/plugins/audioigniter/player/.babelrc @@ -0,0 +1,7 @@ +{ + "presets": [ + "es2015", + "react", + "stage-2" + ] +} diff --git a/wp-content/plugins/audioigniter/player/.editorconfig b/wp-content/plugins/audioigniter/player/.editorconfig new file mode 100644 index 00000000..1ba11605 --- /dev/null +++ b/wp-content/plugins/audioigniter/player/.editorconfig @@ -0,0 +1,18 @@ +root = true + +[*] +indent_style = space +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true + +[*.php] +indent_style = tab + +[*.js] +indent_size = 2 + +[*.md] +trim_trailing_whitespace = false +indent_size = 4 diff --git a/wp-content/plugins/audioigniter/player/.eslintignore b/wp-content/plugins/audioigniter/player/.eslintignore new file mode 100644 index 00000000..3e2e84b0 --- /dev/null +++ b/wp-content/plugins/audioigniter/player/.eslintignore @@ -0,0 +1,2 @@ +build/ +node_modules/ diff --git a/wp-content/plugins/audioigniter/player/.eslintrc b/wp-content/plugins/audioigniter/player/.eslintrc new file mode 100644 index 00000000..44989aaf --- /dev/null +++ b/wp-content/plugins/audioigniter/player/.eslintrc @@ -0,0 +1,38 @@ +{ + "extends": [ + "airbnb", + "plugin:prettier/recommended", + "prettier/react" + ], + "plugins": [ + "import" + ], + "globals": { + "aiStrings": true + }, + "env": { + "browser": true + }, + "rules": { + "arrow-body-style": 0, + "no-confusing-arrow": 0, + "global-require": 0, + "import/no-extraneous-dependencies": ["error", {"devDependencies": true}], + "import/prefer-default-export": 0, + "react/jsx-filename-extension": 0, + "react/require-default-props": 0, + "react/forbid-prop-types": 0, + "react/default-props-match-prop-types": 0, + "react/prefer-stateless-function": 0, + "react/jsx-curly-spacing": [2, { + "when": "never", + "children": true + }], + "react/no-array-index-key": 0, + "jsx-a11y/anchor-is-valid": 0, + "jsx-a11y/no-static-element-interactions": 0, + "react/destructuring-assignment": 0, + "react/button-has-type": 0, + "jsx-a11y/label-has-for": 0 + } +} diff --git a/wp-content/plugins/audioigniter/player/.nvmrc b/wp-content/plugins/audioigniter/player/.nvmrc new file mode 100644 index 00000000..368fe859 --- /dev/null +++ b/wp-content/plugins/audioigniter/player/.nvmrc @@ -0,0 +1 @@ +v8.12.0 diff --git a/wp-content/plugins/audioigniter/player/.prettierrc b/wp-content/plugins/audioigniter/player/.prettierrc new file mode 100644 index 00000000..5db0251a --- /dev/null +++ b/wp-content/plugins/audioigniter/player/.prettierrc @@ -0,0 +1,13 @@ +{ + "arrowParens": "avoid", + "bracketSpacing": true, + "jsxBracketSameLine": false, + "printWidth": 80, + "proseWrap": "never", + "requirePragma": false, + "semi": true, + "singleQuote": true, + "tabWidth": 2, + "trailingComma": "all", + "useTabs": false +} diff --git a/wp-content/plugins/audioigniter/player/build/app.js b/wp-content/plugins/audioigniter/player/build/app.js new file mode 100644 index 00000000..004cdff7 --- /dev/null +++ b/wp-content/plugins/audioigniter/player/build/app.js @@ -0,0 +1 @@ +!function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=29)}([function(e,t,n){"use strict";e.exports=n(30)},function(e,t,n){"use strict";e.exports=n(38)()},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==(void 0===t?"undefined":s(t))&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+(void 0===t?"undefined":s(t)));e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function l(e,t){if(v.ok())return t(v.createSound(e)),function(){};y||(y=!0,v.beginDelayedInit());var n=function(){t(v.createSound(e))};return m.push(n),function(){m.splice(m.indexOf(n),1)}}function u(){}var s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};Object.defineProperty(t,"__esModule",{value:!0});var c=function(){function e(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:{};e&&(this.props.playStatus===b.PLAYING?(0===e.playState&&e.play(),e.paused&&e.resume()):this.props.playStatus===b.STOPPED?0!==e.playState&&e.stop():e.paused||e.pause(),null!=this.props.playFromPosition&&this.props.playFromPosition!==t.playFromPosition&&e.setPosition(this.props.playFromPosition),null!=this.props.position&&e.position!==this.props.position&&Math.round(e.position)!==Math.round(this.props.position)&&e.setPosition(this.props.position),this.props.volume!==t.volume&&e.setVolume(this.props.volume),this.props.playbackRate!==t.playbackRate&&e.setPlaybackRate(this.props.playbackRate))}},{key:"createSound",value:function(e){var t=this;this.removeSound();var n=this;this.props.url&&(this.stopCreatingSound=l({url:this.props.url,autoLoad:this.props.autoLoad,volume:this.props.volume,position:this.props.playFromPosition||this.props.position||0,playbackRate:this.props.playbackRate,whileloading:function(){n.props.onLoading(this)},whileplaying:function(){n.props.onPlaying(this)},onerror:function(e,t){n.props.onError(e,t,this)},onload:function(){n.props.onLoad(this)},onpause:function(){n.props.onPause(this)},onresume:function(){n.props.onResume(this)},onstop:function(){n.props.onStop(this)},onfinish:function(){n.props.loop&&n.props.playStatus===b.PLAYING?n.sound.play():n.props.onFinishedPlaying()},onbufferchange:function(){n.props.onBufferChange(this.isBuffering)}},function(n){t.sound=n,e(n)}))}},{key:"removeSound",value:function(){if(this.stopCreatingSound&&(this.stopCreatingSound(),delete this.stopCreatingSound),this.sound){try{this.sound.destruct()}catch(e){}delete this.sound}}},{key:"render",value:function(){return null}}]),t}(d.default.Component);k.status=b,k.propTypes={url:h.default.string.isRequired,playStatus:h.default.oneOf(Object.keys(b)).isRequired,position:h.default.number,playFromPosition:h.default.number,volume:h.default.number,playbackRate:h.default.number,onError:h.default.func,onLoading:h.default.func,onLoad:h.default.func,onPlaying:h.default.func,onPause:h.default.func,onResume:h.default.func,onStop:h.default.func,onFinishedPlaying:h.default.func,onBufferChange:h.default.func,autoLoad:h.default.bool,loop:h.default.bool},k.defaultProps={volume:100,playbackRate:1,onError:u,onLoading:u,onPlaying:u,onLoad:u,onPause:u,onResume:u,onStop:u,onFinishedPlaying:u,onBufferChange:u,autoLoad:!1,loop:!1},t.default=k},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ShuffleIcon=t.LyricsIcon=t.DownloadIcon=t.RefreshIcon=t.CartIcon=t.MusicNoteIcon=t.VolumeDownIcon=t.VolumeUpIcon=t.PlaylistIcon=t.PreviousIcon=t.NextIcon=t.PauseIcon=t.PlayIcon=void 0;var r=n(0),o=function(e){return e&&e.__esModule?e:{default:e}}(r);t.PlayIcon=function(){return o.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 18 24"},o.default.createElement("path",{d:"M18 12c0 .712-.37 1.355-.99 1.72L3.159 23.625C2.757 23.889 2.382 24 2 24c-1.103 0-2-.897-2-2V2C0 .897.897 0 2 0c.385 0 .76.111 1.085.323l13.962 9.981c.583.34.953.983.953 1.695z"}))},t.PauseIcon=function(){return o.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o.default.createElement("path",{d:"M9 2v20c0 1.103-.897 2-2 2H2c-1.103 0-2-.897-2-2V2C0 .897.897 0 2 0h5c1.103 0 2 .897 2 2zm13-2h-5c-1.103 0-2 .897-2 2v20c0 1.103.897 2 2 2h5c1.103 0 2-.897 2-2V2c0-1.103-.897-2-2-2z"}))},t.NextIcon=function(){return o.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o.default.createElement("path",{d:"M24 1.999v19.989c0 1.102-.897 1.999-2 1.999h-5c-1.103 0-2-.897-2-1.999v-6.837L3.16 23.612C1.597 24.635 0 23.472 0 21.988V1.999C0 .897.897 0 2 0c.384 0 .76.111 1.085.322L15 8.837V1.999C15 .897 15.897 0 17 0h5c1.103 0 2 .897 2 1.999z"}))},t.PreviousIcon=function(){return o.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o.default.createElement("path",{d:"M24 2.014v19.987C24 23.103 23.103 24 22 24c-.385 0-.76-.111-1.085-.323L9 15.164v6.838c0 1.102-.897 1.999-2 1.999H2c-1.103 0-2-.897-2-1.999V2.015C0 .913.897.016 2 .016h5c1.103 0 2 .897 2 1.999v6.837L20.841.391C22.41-.636 24 .533 24 2.016z"}))},t.PlaylistIcon=function(){return o.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o.default.createElement("path",{d:"M.871 5h10.758c.488 0 .871-.439.871-1s-.383-1-.871-1H.871C.383 3 0 3.439 0 4s.383 1 .871 1zM.871 10.25h10.758c.488 0 .871-.439.871-1s-.383-1-.871-1H.871c-.488 0-.871.439-.871 1s.383 1 .871 1zM23.595 3.129l-.002-.001c-.254-.156-.574-.17-.833-.036l-7.449 3.756c-.291.148-.472.442-.472.77v8.259c-.5-.234-1.055-.356-1.626-.356-1.841 0-3.339 1.229-3.339 2.74s1.498 2.74 3.339 2.74 3.338-1.229 3.338-2.74V8.15l5.736-2.893v8.116c-.5-.233-1.056-.355-1.627-.355-1.841 0-3.338 1.229-3.338 2.739s1.497 2.74 3.338 2.74 3.339-1.229 3.339-2.74V3.862c0-.3-.151-.574-.405-.733zM8.129 13.5H.871c-.488 0-.871.439-.871 1s.383 1 .871 1h7.258c.488 0 .871-.439.871-1s-.383-1-.871-1z"}))},t.VolumeUpIcon=function(){return o.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o.default.createElement("path",{d:"M24 11v2c0 1.103-.897 2-2 2h-7v7c0 1.103-.897 2-2 2h-2c-1.103 0-2-.897-2-2v-7H2c-1.103 0-2-.897-2-2v-2c0-1.103.897-2 2-2h7V2c0-1.103.897-2 2-2h2c1.103 0 2 .897 2 2v7h7c1.103 0 2 .897 2 2z"}))},t.VolumeDownIcon=function(){return o.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 21 24"},o.default.createElement("path",{d:"M24 11v2c0 1.103-.897 2-2 2H2c-1.103 0-2-.897-2-2v-2c0-1.103.897-2 2-2h20c1.103 0 2 .897 2 2z"}))},t.MusicNoteIcon=function(){return o.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 18 24"},o.default.createElement("path",{d:"M18 2v16c0 1.654-1.794 3-4 3s-4-1.346-4-3 1.794-3 4-3V4.5L8 6.374V21c0 1.654-1.794 3-4 3s-4-1.346-4-3 1.794-3 4-3V5c0-.966.691-1.793 1.645-1.966L15.238.157c.204-.097.481-.157.763-.157 1.103 0 2 .897 2 2z"}))},t.CartIcon=function(){return o.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o.default.createElement("path",{d:"M8.707 15h9.898c1.042 0 1.985-.657 2.346-1.636l2.94-7.979c.072-.196.109-.402.109-.616 0-.976-.794-1.77-1.77-1.77H5.734l-.339-1.188C5.09.744 4.101-.001 2.991-.001H.5c-.276 0-.5.224-.5.5s.224.5.5.5h2.491c.666 0 1.259.447 1.442 1.088l3.505 12.267-2.379 2.379c-.361.36-.56.841-.56 1.356 0 1.054.857 1.91 1.91 1.91h15.59c.276 0 .5-.224.5-.5s-.224-.5-.5-.5H6.909c-.502 0-.91-.408-.91-.916 0-.243.095-.472.267-.644l2.44-2.44zM18 12h-7.5c-.276 0-.5-.224-.5-.5s.224-.5.5-.5H18c.276 0 .5.224.5.5s-.224.5-.5.5zm.5-2.5H10c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h8.5c.276 0 .5.224.5.5s-.224.5-.5.5zM9.5 6H20c.276 0 .5.224.5.5s-.224.5-.5.5H9.5c-.276 0-.5-.224-.5-.5s.224-.5.5-.5zM21 20c1.103 0 2 .897 2 2s-.897 2-2 2-2-.897-2-2 .897-2 2-2zM8 20c1.103 0 2 .897 2 2s-.897 2-2 2-2-.897-2-2 .897-2 2-2z"}))},t.RefreshIcon=function(){return o.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o.default.createElement("path",{d:"M24 12c0 2.756-2.243 4.999-5 4.999-.004 0-.02.001-.047.001-.295 0-1.919-.082-3.953-1.398v.397c0 .553-.447 1-1 1s-1-.447-1-1v-2.5c0-.553.447-1 1-1h2.5c.553 0 1 .447 1 1 0 .403-.241.745-.584.903 1.193.589 2.011.604 2.055.597 1.683 0 3.028-1.345 3.028-3s-1.346-3-3-3c-2.151 0-4.213 1.832-6.396 3.772-2.338 2.078-4.756 4.227-7.604 4.227-2.757 0-5-2.243-5-4.999S2.242 7 4.999 7c.046-.002 1.777-.044 4 1.394V8c0-.553.447-1 1-1s1 .447 1 1v2.5c0 .553-.447 1-1 1h-2.5c-.553 0-1-.447-1-1 0-.403.241-.746.585-.904-1.186-.587-1.997-.6-2.056-.596C3.345 9 2 10.346 2 12s1.346 3 3 3c2.089 0 4.122-1.807 6.275-3.722C13.641 9.176 16.087 7.001 19 7.001c2.757 0 5 2.243 5 4.999z"}))},t.DownloadIcon=function(){return o.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o.default.createElement("path",{d:"M24 15c0 2.757-2.243 5-5 5h-.183c-.177 0-.333-.092-.422-.23-.05-.078-.078-.17-.078-.269 0-.078.018-.153.05-.219.419-.882.632-1.819.632-2.782 0-3.584-2.916-6.5-6.5-6.5s-6.5 2.916-6.5 6.5c0 .923.196 1.823.583 2.676.074.087.119.2.119.324 0 .276-.224.5-.5.5-.005.001-.013 0-.02 0h-.183c-3.309 0-6-2.691-6-6 0-2.158 1.143-4.121 3.003-5.193C3.104 5.036 6.203 2 9.998 2c2.759 0 5.205 1.58 6.35 4.062.227-.042.439-.063.65-.063 2.206 0 4 1.794 4 4 0 .142-.008.283-.024.428 1.825.785 3.024 2.572 3.024 4.572zm-6 1.5c0 3.032-2.468 5.5-5.5 5.5S7 19.532 7 16.5 9.468 11 12.5 11s5.5 2.468 5.5 5.5zm-3.146.646c-.195-.195-.512-.195-.707 0l-1.146 1.146v-4.793c0-.276-.224-.5-.5-.5s-.5.224-.5.5v4.793l-1.146-1.146c-.195-.195-.512-.195-.707 0s-.195.512 0 .707l2 2c.046.046.1.083.161.108.059.025.124.038.192.038.065 0 .129-.013.19-.038h.002c.002-.001.003-.003.005-.004.057-.024.111-.058.157-.105l2-2c.195-.195.195-.512 0-.707z"}))},t.LyricsIcon=function(){return o.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o.default.createElement("path",{d:"M0 4.5C0 3.673.673 3 1.5 3h21c.827 0 1.5.673 1.5 1.5S23.327 6 22.5 6h-21C.673 6 0 5.327 0 4.5zM1.5 11h15c.827 0 1.5-.673 1.5-1.5S17.327 8 16.5 8h-15C.673 8 0 8.673 0 9.5S.673 11 1.5 11zm15 7h-15c-.827 0-1.5.673-1.5 1.5S.673 21 1.5 21h15c.827 0 1.5-.673 1.5-1.5s-.673-1.5-1.5-1.5zm6-5h-21c-.827 0-1.5.673-1.5 1.5S.673 16 1.5 16h21c.827 0 1.5-.673 1.5-1.5s-.673-1.5-1.5-1.5z"}))},t.ShuffleIcon=function(){return o.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o.default.createElement("path",{d:"M23.927 16.827c.098.23.098.504-.004.743-.044.111-.119.223-.212.314l-2.876 2.833c-.184.182-.428.282-.688.282s-.506-.101-.69-.283c-.187-.183-.289-.428-.289-.689s.103-.506.29-.69l1.188-1.171h-.86c-1.881 0-3.649-.722-4.979-2.034l-2.14-2.107c-.187-.185-.289-.43-.289-.69 0-.176.062-.336.149-.484l-2.372 2.337c-1.329 1.312-3.098 2.034-4.979 2.034H.98c-.54 0-.979-.436-.979-.972s.438-.972.979-.972h4.196c1.36 0 2.639-.522 3.599-1.469l2.354-2.319c-.148.086-.308.146-.484.146-.26 0-.505-.1-.689-.282l-1.179-1.163c-.962-.947-2.24-1.469-3.601-1.469H.98c-.54 0-.979-.436-.979-.972s.438-.972.979-.972h4.196c1.88 0 3.648.722 4.979 2.033l1.179 1.163c.188.184.29.429.29.69 0 .177-.063.339-.152.487l3.333-3.284c1.33-1.312 3.099-2.034 4.979-2.034h.86l-1.188-1.171c-.188-.184-.29-.429-.29-.69s.103-.506.29-.69c.379-.375.998-.375 1.379.001l2.874 2.833c.096.094.168.202.217.323.098.231.098.505-.004.743-.044.111-.116.219-.21.312l-2.878 2.835c-.363.363-1.013.365-1.38-.001-.186-.182-.288-.428-.288-.689s.104-.506.29-.69l1.188-1.17h-.86c-1.36 0-2.639.521-3.601 1.469l-3.313 3.265c.374-.215.855-.181 1.174.134l2.139 2.108c.963.947 2.241 1.469 3.602 1.469h.86l-1.188-1.171c-.188-.184-.29-.429-.29-.69s.104-.506.29-.69c.379-.374.998-.375 1.379.001l2.877 2.834c.094.094.166.202.214.321z"}))}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}Object.defineProperty(t,"__esModule",{value:!0}),t.AppContext=void 0;var a=Object.assign||function(e){for(var t=1;t=0),i[8]){case"b":n=parseInt(n,10).toString(2);break;case"c":n=String.fromCharCode(parseInt(n,10));break;case"d":case"i":n=parseInt(n,10);break;case"j":n=JSON.stringify(n,null,i[6]?parseInt(i[6]):0);break;case"e":n=i[7]?parseFloat(n).toExponential(i[7]):parseFloat(n).toExponential();break;case"f":n=i[7]?parseFloat(n).toFixed(i[7]):parseFloat(n);break;case"g":n=i[7]?String(Number(n.toPrecision(i[7]))):parseFloat(n);break;case"o":n=(parseInt(n,10)>>>0).toString(8);break;case"s":n=String(n),n=i[7]?n.substring(0,i[7]):n;break;case"t":n=String(!!n),n=i[7]?n.substring(0,i[7]):n;break;case"T":n=Object.prototype.toString.call(n).slice(8,-1).toLowerCase(),n=i[7]?n.substring(0,i[7]):n;break;case"u":n=parseInt(n,10)>>>0;break;case"v":n=n.valueOf(),n=i[7]?n.substring(0,i[7]):n;break;case"x":n=(parseInt(n,10)>>>0).toString(16);break;case"X":n=(parseInt(n,10)>>>0).toString(16).toUpperCase()}u.json.test(i[8])?m+=n:(!u.number.test(i[8])||f&&!i[3]?d="":(d=f?"+":"-",n=n.toString().replace(u.sign,"")),s=i[4]?"0"===i[4]?"0":i[4].charAt(1):" ",c=i[6]-(d+n).length,l=i[6]&&c>0?s.repeat(c):"",m+=i[5]?d+n+l:"0"===s?d+l+n:l+d+n)}return m}function l(e){if(s[e])return s[e];for(var t,n=e,r=[],o=0;n;){if(null!==(t=u.text.exec(n)))r.push(t[0]);else if(null!==(t=u.modulo.exec(n)))r.push("%");else{if(null===(t=u.placeholder.exec(n)))throw new SyntaxError("[sprintf] unexpected placeholder");if(t[2]){o|=1;var a=[],i=t[2],l=[];if(null===(l=u.key.exec(i)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(a.push(l[1]);""!==(i=i.substring(l[0].length));)if(null!==(l=u.key_access.exec(i)))a.push(l[1]);else{if(null===(l=u.index_access.exec(i)))throw new SyntaxError("[sprintf] failed to parse named argument key");a.push(l[1])}t[2]=a}else o|=2;if(3===o)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");r.push(t)}n=n.substring(t[0].length)}return s[e]=r}var u={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^\)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[\+\-]/},s=Object.create(null);t.sprintf=o,t.vsprintf=a,"undefined"!=typeof window&&(window.sprintf=o,window.vsprintf=a,void 0!==(r=function(){return{sprintf:o,vsprintf:a}}.call(t,n,t,e))&&(e.exports=r))}()},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=n(0),a=r(o),i=n(1),l=r(i),u=n(3),s=function(e){var t=e.className,n=e.title,r=e.src,o=e.onClick;return a.default.createElement("div",{className:t+(r?"":" ai-track-no-thumb"),onClick:o},r?a.default.createElement("img",{src:r,alt:n||""}):a.default.createElement(u.MusicNoteIcon,null))};s.propTypes={className:l.default.string,title:l.default.string,src:l.default.string,onClick:l.default.func},t.default=s},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var l=function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:1,t=this.state.position,n=this.props.skipAmount,r=1e3*parseInt(n,10);this.setPosition(t+r*e)}},{key:"playTrack",value:function(e,t){t&&t.preventDefault();var n=this.state,r=n.repeatingTrackIndex;n.isMultiSoundDisabled&&window.soundManager.pauseAll(),this.setState(function(){return{activeIndex:e,position:0,playStatus:m.default.status.PLAYING}}),e!==r&&null!=r&&this.setTrackCycling(null)}},{key:"pauseTrack",value:function(e){e&&e.preventDefault(),this.state.playStatus===m.default.status.PLAYING&&this.setState(function(){return{playStatus:m.default.status.PAUSED}})}},{key:"togglePlay",value:function(e,t){t&&t.preventDefault();var n=this.state.activeIndex;if("number"==typeof e&&e!==n)return void this.playTrack(e);this.setState(function(e){var t=e.playStatus,n=e.isMultiSoundDisabled;return t!==m.default.status.PLAYING&&n&&window.soundManager.pauseAll(),{playStatus:t===m.default.status.PLAYING?m.default.status.PAUSED:m.default.status.PLAYING}})}},{key:"nextTrack",value:function(){var e=this.state,t=e.trackQueue,n=e.activeIndex,r=t.indexOf(n),o=(r+1)%t.length,a=t[o];this.playTrack(a)}},{key:"prevTrack",value:function(){var e=this.state,t=e.trackQueue,n=e.activeIndex,r=t.indexOf(n),o=(r+t.length-1)%t.length,a=t[o];this.playTrack(a)}},{key:"toggleTracklistCycling",value:function(){null!==this.state.repeatingTrackIndex&&this.setTrackCycling(null),this.setState(function(e){return{cycleTracks:!e.cycleTracks}})}},{key:"reverseTracks",value:function(){this.setState(function(e){return{tracks:e.tracks.slice().reverse()}})}},{key:"render",value:function(){var t=this,n=this.state,r=n.tracks,o=n.playStatus,a=n.position,i=n.volume,l=n.playbackRate,u=this.getFinalProps();return f.default.createElement("div",{className:"ai-audioigniter"},f.default.createElement(e,u),r.length>0&&f.default.createElement(m.default,{url:u.currentTrack.audio,playStatus:o,position:a,volume:i,onPlaying:this.onPlaying,onFinishedPlaying:this.onFinishedPlaying,onPause:function(){return t.pauseTrack()},playbackRate:l,onBufferChange:function(e){t.setState({buffering:e})}}))}}]),r}(f.default.Component);return n.propTypes={volume:p.default.number,cycleTracks:p.default.bool,tracksUrl:p.default.string,soundcloudClientId:p.default.string,reverseTrackOrder:p.default.bool,skipAmount:p.default.number,stopOnTrackFinish:p.default.bool,delayBetweenTracks:p.default.number,initialTrack:p.default.number,shuffleEnabled:p.default.bool,defaultShuffle:p.default.bool},n};t.default=T},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return window.ai_pro_front_scripts&&!!window.ai_pro_front_scripts.typography_disabled};t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.canUseDOM=void 0;var r=n(83),o=function(e){return e&&e.__esModule?e:{default:e}}(r),a=o.default,i=a.canUseDOM?window.HTMLElement:{};t.canUseDOM=a.canUseDOM;t.default=i},function(e,t,n){"use strict";function r(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}var o=Object.getOwnPropertySymbols,a=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map(function(e){return t[e]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(e){r[e]=e}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var n,l,u=r(e),s=1;s1)for(var n=1;na)}},{key:"renderTracklist",value:function(){return s.default.createElement(h.default,{tracks:this.props.tracks,activeTrackIndex:this.props.activeTrackIndex,onTrackClick:this.props.onTrackClick,className:this.props.className,trackClassName:this.props.trackClassName,reverseTrackOrder:this.props.reverseTrackOrder,displayTrackNo:this.props.displayTrackNo,displayBuyButtons:this.props.displayBuyButtons,buyButtonsTarget:this.props.buyButtonsTarget,displayCovers:this.props.displayCovers,displayArtistNames:this.props.displayArtistNames,onTrackLoop:this.props.onTrackLoop,repeatingTrackIndex:this.props.repeatingTrackIndex})}},{key:"render",value:function(){var e=this,t=this.props,n=t.isOpen,r=t.limitTracklistHeight,o=t.tracklistHeight;return s.default.createElement("div",{id:"tracklisting",style:{display:n?"block":"none"}},r?s.default.createElement(d.Scrollbars,{className:"ai-scroll-wrap",ref:function(t){return e.scrollbarsRef=t},style:{height:o}},this.renderTracklist()):this.renderTracklist())}}]),t}(s.default.Component);t.default=m,m.propTypes={tracks:f.default.arrayOf(f.default.object).isRequired,activeTrackIndex:f.default.number.isRequired,onTrackClick:f.default.func.isRequired,isOpen:f.default.bool,className:f.default.string,trackClassName:f.default.string,reverseTrackOrder:f.default.bool,displayTrackNo:f.default.bool,limitTracklistHeight:f.default.bool,tracklistHeight:f.default.number,displayBuyButtons:f.default.bool,buyButtonsTarget:f.default.bool,displayCovers:f.default.bool,displayArtistNames:f.default.bool,onTrackLoop:f.default.func,repeatingTrackIndex:f.default.number}},function(e,t,n){"use strict";function r(e,t,n){var r=s[t];if(void 0===r&&(r=a(t)),r){if(void 0===n)return e.style[r];e.style[r]=c(r,n)}}function o(e,t){for(var n in t)t.hasOwnProperty(n)&&r(e,n,t[n])}function a(e){var t=u(e),n=l(t);return s[t]=s[e]=s[n]=n,n}function i(){2===arguments.length?"string"==typeof arguments[1]?arguments[0].style.cssText=arguments[1]:o(arguments[0],arguments[1]):r(arguments[0],arguments[1],arguments[2])}var l=n(49),u=n(50),s={float:"cssFloat"},c=n(53);e.exports=i,e.exports.set=i,e.exports.get=function(e,t){return Array.isArray(t)?t.reduce(function(t,n){return t[n]=r(e,n||""),t},{}):r(e,t||"")}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}Object.defineProperty(t,"__esModule",{value:!0});var a=n(0),i=r(a),l=n(1),u=r(l),s=n(2),c=r(s),f=n(64),d=r(f),p=function(e){var t=o(e,[]),n=t.tracks;return i.default.createElement("ul",{className:t.className,"aria-expanded":"true"},n&&n.map(function(e,r){var o=t.reverseTrackOrder?n.length-r:r+1,a=r===t.repeatingTrackIndex;return i.default.createElement(d.default,{key:r,track:e,index:r,trackNo:t.displayTrackNo?o:void 0,playStatus:t.playStatus,isActive:t.activeTrackIndex===r,buyButtonsTarget:t.buyButtonsTarget,displayArtistNames:t.displayArtistNames,displayBuyButtons:t.displayBuyButtons,displayCovers:t.displayCovers,onTrackClick:t.onTrackClick,onTrackLoop:t.onTrackLoop,setPosition:t.setPosition,duration:t.duration,position:t.position,className:t.trackClassName,isStandalone:t.standaloneTracks,isLooping:a,playbackRate:t.playbackRate,setPlaybackRate:t.setPlaybackRate,allowPlaybackRate:t.allowPlaybackRate,buffering:t.buffering})}))};p.propTypes={tracks:u.default.arrayOf(u.default.object).isRequired,playStatus:u.default.oneOf([c.default.status.PLAYING,c.default.status.PAUSED,c.default.status.STOPPED]),activeTrackIndex:u.default.number,position:u.default.number,duration:u.default.number,setPosition:u.default.func,standaloneTracks:u.default.bool,onTrackClick:u.default.func.isRequired,onTrackLoop:u.default.func,className:u.default.string,trackClassName:u.default.string,reverseTrackOrder:u.default.bool,displayTrackNo:u.default.bool,displayBuyButtons:u.default.bool,buyButtonsTarget:u.default.bool,displayCovers:u.default.bool,displayArtistNames:u.default.bool,playbackRate:u.default.number,setPlaybackRate:u.default.func,allowPlaybackRate:u.default.bool,buffering:u.default.bool},t.default=p},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var l=function(){function e(e,t){for(var n=0;n=10?a:"0"+a,i=i>=10?i:"0"+i,isNaN(i)||(l=o?o+":"+a+":"+i:a+":"+i),n?"-"+l:l}},{key:"handleClick",value:function(){var e=this.state.showRemaining;this.setState({showRemaining:!e})}},{key:"render",value:function(){var e=this.props,t=e.position,n=e.duration;return s.default.createElement("span",{className:"ai-track-time",onClick:this.handleClick},this.formatTime(t,n))}}]),t}(s.default.Component);t.default=d,d.propTypes={position:f.default.number.isRequired,duration:f.default.number.isRequired,countdown:f.default.bool.isRequired}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t=100?t:t+10)},"aria-label":aiStrings.volume_up},c.default.createElement(m.VolumeUpIcon,null)),c.default.createElement(h.default,{className:"ai-btn",onClick:function(){return n(t<=0?t:t-10)},"aria-label":aiStrings.volume_down},c.default.createElement(m.VolumeDownIcon,null))))}}]),t}(c.default.Component);t.default=y,y.propTypes={volume:d.default.number.isRequired,setVolume:d.default.func.isRequired}},function(e,t,n){"use strict";"function"==typeof Symbol&&Symbol.iterator;e.exports=n(77)()},function(e,t,n){"use strict";function r(e){var t=e.offsetWidth<=0&&e.offsetHeight<=0;if(t&&!e.innerHTML)return!0;var n=window.getComputedStyle(e);return t?"visible"!==n.getPropertyValue("overflow"):"none"==n.getPropertyValue("display")}function o(e){for(var t=e;t&&t!==document.body;){if(r(t))return!1;t=t.parentNode}return!0}function a(e,t){var n=e.nodeName.toLowerCase();return(u.test(n)&&!e.disabled||("a"===n?e.href||t:t))&&o(e)}function i(e){var t=e.getAttribute("tabindex");null===t&&(t=void 0);var n=isNaN(t);return(n||t>=0)&&a(e,!n)}function l(e){return[].slice.call(e.querySelectorAll("*"),0).filter(i)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=l;var u=/input|select|textarea|button|object/;e.exports=t.default},function(e,t,n){"use strict";function r(e,t){if(!e||!e.length)throw new Error("react-modal: No elements were found for selector "+t+".")}function o(e){var t=e;if("string"==typeof t&&d.canUseDOM){var n=document.querySelectorAll(t);r(n,t),t="length"in n?n[0]:n}return p=t||p}function a(e){return!(!e&&!p)||((0,f.default)(!1,["react-modal: App element is not defined.","Please use `Modal.setAppElement(el)` or set `appElement={el}`.","This is needed so screen readers don't see main content","when modal is opened. It is not recommended, but you can opt-out","by setting `ariaHideApp={false}`."].join(" ")),!1)}function i(e){a(e)&&(e||p).setAttribute("aria-hidden","true")}function l(e){a(e)&&(e||p).removeAttribute("aria-hidden")}function u(){p=null}function s(){p=null}Object.defineProperty(t,"__esModule",{value:!0}),t.assertNodeList=r,t.setElement=o,t.validateElement=a,t.hide=i,t.show=l,t.documentNotReadyOrSSRTesting=u,t.resetForTesting=s;var c=n(82),f=function(e){return e&&e.__esModule?e:{default:e}}(c),d=n(16),p=null},,function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e){var t=e.getAttribute("data-player-type"),n={tracksUrl:e.getAttribute("data-tracks-url"),displayTracklistCovers:JSON.parse(e.getAttribute("data-display-tracklist-covers")),displayActiveCover:JSON.parse(e.getAttribute("data-display-active-cover")),displayCredits:JSON.parse(e.getAttribute("data-display-credits")),displayTracklist:JSON.parse(e.getAttribute("data-display-tracklist")),allowTracklistToggle:JSON.parse(e.getAttribute("data-allow-tracklist-toggle")),allowPlaybackRate:JSON.parse(e.getAttribute("data-allow-playback-rate")),allowTracklistLoop:JSON.parse(e.getAttribute("data-allow-tracklist-loop")),allowTrackLoop:JSON.parse(e.getAttribute("data-allow-track-loop")),displayTrackNo:JSON.parse(e.getAttribute("data-display-track-no")),displayBuyButtons:JSON.parse(e.getAttribute("data-display-buy-buttons")),buyButtonsTarget:JSON.parse(e.getAttribute("data-buy-buttons-target")),volume:parseInt(e.getAttribute("data-volume"),10),displayArtistNames:JSON.parse(e.getAttribute("data-display-artist-names")),cycleTracks:JSON.parse(e.getAttribute("data-cycle-tracks")),limitTracklistHeight:JSON.parse(e.getAttribute("data-limit-tracklist-height")),tracklistHeight:parseInt(e.getAttribute("data-tracklist-height"),10),reverseTrackOrder:JSON.parse(e.getAttribute("data-reverse-track-order")),maxWidth:e.getAttribute("data-max-width"),soundcloudClientId:e.getAttribute("data-soundcloud-client-id"),skipAmount:parseInt(e.getAttribute("data-skip-amount"),10),initialTrack:parseInt(e.getAttribute("data-initial-track"),10),delayBetweenTracks:parseInt(e.getAttribute("data-tracks-delay"),10),stopOnTrackFinish:JSON.parse(e.getAttribute("data-stop-on-finish")),defaultShuffle:JSON.parse(e.getAttribute("data-shuffle")),shuffleEnabled:JSON.parse(e.getAttribute("data-shuffle")),countdownTimerByDefault:JSON.parse(e.getAttribute("data-timer-countdown"))};(0,u.render)(l.default.createElement(c.default,a({type:t},n)),e)}var a=Object.assign||function(e){for(var t=1;tq.length&&q.push(e)}function h(e,t,n,r){var a=void 0===e?"undefined":_(e);"undefined"!==a&&"boolean"!==a||(e=null);var i=!1;if(null===e)i=!0;else switch(a){case"string":case"number":i=!0;break;case"object":switch(e.$$typeof){case S:case O:i=!0}}if(i)return n(r,e,""===t?"."+y(e,0):t),1;if(i=0,t=""===t?".":t+":",Array.isArray(e))for(var l=0;lthis.eventPool.length&&this.eventPool.push(e)}function I(e){e.eventPool=[],e.getPooled=L,e.release=R}function A(e,t){switch(e){case"keyup":return-1!==Wo.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"blur":return!0;default:return!1}}function D(e){return e=e.detail,"object"===(void 0===e?"undefined":io(e))&&"data"in e?e.data:null}function F(e,t){switch(e){case"compositionend":return D(t);case"keypress":return 32!==t.which?null:(Xo=!0,Go);case"textInput":return e=t.data,e===Go&&Xo?null:e;default:return null}}function H(e,t){if(Jo)return"compositionend"===e||!qo&&A(e,t)?(e=x(),zo=Uo=jo=null,Jo=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1t}return!1}function ae(e,t,n,r,o){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=o,this.mustUseProperty=n,this.propertyName=e,this.type=t}function ie(e){return e[1].toUpperCase()}function le(e,t,n,r){var o=Oa.hasOwnProperty(t)?Oa[t]:null;(null!==o?0===o.type:!r&&(2oi.length&&oi.push(e)}}}function Ue(e){return Object.prototype.hasOwnProperty.call(e,ui)||(e[ui]=li++,ii[e[ui]]={}),ii[e[ui]]}function ze(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function Be(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function Ve(e,t){var n=Be(e);e=0;for(var r;n;){if(3===n.nodeType){if(r=e+n.textContent.length,e<=t&&r>=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=Be(n)}}function We(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?We(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function qe(){for(var e=window,t=ze();t instanceof e.HTMLIFrameElement;){try{e=t.contentDocument.defaultView}catch(e){break}t=ze(e.document)}return t}function Qe(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}function Ye(){var e=qe();if(Qe(e)){if("selectionStart"in e)var t={start:e.selectionStart,end:e.selectionEnd};else e:{t=(t=e.ownerDocument)&&t.defaultView||window;var n=t.getSelection&&t.getSelection();if(n&&0!==n.rangeCount){t=n.anchorNode;var r=n.anchorOffset,o=n.focusNode;n=n.focusOffset;try{t.nodeType,o.nodeType}catch(e){t=null;break e}var a=0,i=-1,l=-1,u=0,s=0,c=e,f=null;t:for(;;){for(var d;c!==t||0!==r&&3!==c.nodeType||(i=a+r),c!==o||0!==n&&3!==c.nodeType||(l=a+n),3===c.nodeType&&(a+=c.nodeValue.length),null!==(d=c.firstChild);)f=c,c=d;for(;;){if(c===e)break t;if(f===t&&++u===r&&(i=a),f===o&&++s===n&&(l=a),null!==(d=c.nextSibling))break;c=f,f=c.parentNode}c=d}t=-1===i||-1===l?null:{start:i,end:l}}else t=null}t=t||{start:0,end:0}}else t=null;return{focusedElem:e,selectionRange:t}}function $e(e){var t=qe(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&We(n.ownerDocument.documentElement,n)){if(null!==r&&Qe(n))if(t=r.start,e=r.end,void 0===e&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var o=n.textContent.length,a=Math.min(r.start,o);r=void 0===r.end?a:Math.min(r.end,o),!e.extend&&a>r&&(o=r,r=a,a=o),o=Ve(n,a);var i=Ve(n,r);o&&i&&(1!==e.rangeCount||e.anchorNode!==o.node||e.anchorOffset!==o.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&(t=t.createRange(),t.setStart(o.node,o.offset),e.removeAllRanges(),a>r?(e.addRange(t),e.extend(i.node,i.offset)):(t.setEnd(i.node,i.offset),e.addRange(t)))}for(t=[],e=n;e=e.parentNode;)1===e.nodeType&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for("function"==typeof n.focus&&n.focus(),n=0;n=t.length||o("93"),t=t[0]),n=t),null==n&&(n="")),e._wrapperState={initialValue:ue(n)}}function tt(e,t){var n=ue(t.value),r=ue(t.defaultValue);null!=n&&(n=""+n,n!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function nt(e){var t=e.textContent;t===e._wrapperState.initialValue&&(e.value=t)}function rt(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function ot(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?rt(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}function at(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}function it(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||bi.hasOwnProperty(e)&&bi[e]?(""+t).trim():t+"px"}function lt(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),o=it(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,o):e[n]=o}}function ut(e,t){t&&(_i[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML)&&o("137",e,""),null!=t.dangerouslySetInnerHTML&&(null!=t.children&&o("60"),"object"===io(t.dangerouslySetInnerHTML)&&"__html"in t.dangerouslySetInnerHTML||o("61")),null!=t.style&&"object"!==io(t.style)&&o("62",""))}function st(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function ct(e,t){e=9===e.nodeType||11===e.nodeType?e:e.ownerDocument;var n=Ue(e);t=_o[t];for(var r=0;rCi||(e.current=xi[Ci],xi[Ci]=null,Ci--)}function gt(e,t){Ci++,xi[Ci]=e.current,e.current=t}function bt(e,t){var n=e.type.contextTypes;if(!n)return Mi;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var o,a={};for(o in n)a[o]=t[o];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=a),a}function kt(e){return null!==(e=e.childContextTypes)&&void 0!==e}function _t(e){vt(Li,e),vt(Ni,e)}function Tt(e){vt(Li,e),vt(Ni,e)}function wt(e,t,n){Ni.current!==Mi&&o("168"),gt(Ni,t,e),gt(Li,n,e)}function St(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,"function"!=typeof r.getChildContext)return n;r=r.getChildContext();for(var a in r)a in e||o("108",ee(t)||"Unknown",a);return uo({},n,r)}function Ot(e){var t=e.stateNode;return t=t&&t.__reactInternalMemoizedMergedChildContext||Mi,Ri=Ni.current,gt(Ni,t,e),gt(Li,Li.current,e),!0}function Et(e,t,n){var r=e.stateNode;r||o("169"),n?(t=St(e,t,Ri),r.__reactInternalMemoizedMergedChildContext=t,vt(Li,e),vt(Ni,e),gt(Ni,t,e)):vt(Li,e),gt(Li,n,e)}function Pt(e){return function(t){try{return e(t)}catch(e){}}}function xt(e){if("undefined"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)return!1;var t=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(t.isDisabled||!t.supportsFiber)return!0;try{var n=t.inject(e);Ii=Pt(function(e){return t.onCommitFiberRoot(n,e)}),Ai=Pt(function(e){return t.onCommitFiberUnmount(n,e)})}catch(e){}return!0}function Ct(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.contextDependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.effectTag=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childExpirationTime=this.expirationTime=0,this.alternate=null}function Mt(e,t,n,r){return new Ct(e,t,n,r)}function Nt(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Lt(e){if("function"==typeof e)return Nt(e)?1:0;if(void 0!==e&&null!==e){if((e=e.$$typeof)===ya)return 11;if(e===ga)return 14}return 2}function Rt(e,t){var n=e.alternate;return null===n?(n=Mt(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.effectTag=0,n.nextEffect=null,n.firstEffect=null,n.lastEffect=null),n.childExpirationTime=e.childExpirationTime,n.expirationTime=e.expirationTime,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,n.contextDependencies=e.contextDependencies,n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function It(e,t,n,r,a,i){var l=2;if(r=e,"function"==typeof e)Nt(e)&&(l=1);else if("string"==typeof e)l=5;else e:switch(e){case ca:return At(n.children,a,i,t);case ma:return Dt(n,3|a,i,t);case fa:return Dt(n,2|a,i,t);case da:return e=Mt(12,n,t,4|a),e.elementType=da,e.type=da,e.expirationTime=i,e;case va:return e=Mt(13,n,t,a),e.elementType=va,e.type=va,e.expirationTime=i,e;default:if("object"===(void 0===e?"undefined":io(e))&&null!==e)switch(e.$$typeof){case pa:l=10;break e;case ha:l=9;break e;case ya:l=11;break e;case ga:l=14;break e;case ba:l=16,r=null;break e}o("130",null==e?e:void 0===e?"undefined":io(e),"")}return t=Mt(l,n,t,a),t.elementType=e,t.type=r,t.expirationTime=i,t}function At(e,t,n,r){return e=Mt(7,e,r,t),e.expirationTime=n,e}function Dt(e,t,n,r){return e=Mt(8,e,r,t),t=0==(1&t)?fa:ma,e.elementType=t,e.type=t,e.expirationTime=n,e}function Ft(e,t,n){return e=Mt(6,e,null,t),e.expirationTime=n,e}function Ht(e,t,n){return t=Mt(4,null!==e.children?e.children:[],e.key,t),t.expirationTime=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function jt(e,t){e.didError=!1;var n=e.earliestPendingTime;0===n?e.earliestPendingTime=e.latestPendingTime=t:nt&&(e.latestPendingTime=t),Vt(t,e)}function Ut(e,t){if(e.didError=!1,0===t)e.earliestPendingTime=0,e.latestPendingTime=0,e.earliestSuspendedTime=0,e.latestSuspendedTime=0,e.latestPingedTime=0;else{tt?e.earliestPendingTime=e.latestPendingTime=0:e.earliestPendingTime>t&&(e.earliestPendingTime=e.latestPendingTime)),n=e.earliestSuspendedTime,0===n?jt(e,t):tn&&jt(e,t)}Vt(0,e)}function zt(e,t){e.didError=!1,e.latestPingedTime>=t&&(e.latestPingedTime=0);var n=e.earliestPendingTime,r=e.latestPendingTime;n===t?e.earliestPendingTime=r===t?e.latestPendingTime=0:r:r===t&&(e.latestPendingTime=n),n=e.earliestSuspendedTime,r=e.latestSuspendedTime,0===n?e.earliestSuspendedTime=e.latestSuspendedTime=t:nt&&(e.latestSuspendedTime=t),Vt(t,e)}function Bt(e,t){var n=e.earliestPendingTime;return e=e.earliestSuspendedTime,n>t&&(t=n),e>t&&(t=e),t}function Vt(e,t){var n=t.earliestSuspendedTime,r=t.latestSuspendedTime,o=t.earliestPendingTime,a=t.latestPingedTime;o=0!==o?o:a,0===o&&(0===e||re&&(e=n),t.nextExpirationTimeToWorkOn=o,t.expirationTime=e}function Wt(e,t){if(e&&e.defaultProps){t=uo({},t),e=e.defaultProps;for(var n in e)void 0===t[n]&&(t[n]=e[n])}return t}function qt(e){var t=e._result;switch(e._status){case 1:return t;case 2:case 0:throw t;default:switch(e._status=0,t=e._ctor,t=t(),t.then(function(t){0===e._status&&(t=t.default,e._status=1,e._result=t)},function(t){0===e._status&&(e._status=2,e._result=t)}),e._status){case 1:return e._result;case 2:throw e._result}throw e._result=t,t}}function Qt(e,t,n,r){t=e.memoizedState,n=n(r,t),n=null===n||void 0===n?t:uo({},t,n),e.memoizedState=n,null!==(r=e.updateQueue)&&0===e.expirationTime&&(r.baseState=n)}function Yt(e,t,n,r,o,a,i){return e=e.stateNode,"function"==typeof e.shouldComponentUpdate?e.shouldComponentUpdate(r,a,i):!t.prototype||!t.prototype.isPureReactComponent||(!xe(n,r)||!xe(o,a))}function $t(e,t,n){var r=!1,o=Mi,a=t.contextType;return"object"===(void 0===a?"undefined":io(a))&&null!==a?a=zn(a):(o=kt(t)?Ri:Ni.current,r=t.contextTypes,a=(r=null!==r&&void 0!==r)?bt(e,o):Mi),t=new t(n,a),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=Fi,e.stateNode=t,t._reactInternalFiber=e,r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=o,e.__reactInternalMemoizedMaskedChildContext=a),t}function Gt(e,t,n,r){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&Fi.enqueueReplaceState(t,t.state,null)}function Kt(e,t,n,r){var o=e.stateNode;o.props=n,o.state=e.memoizedState,o.refs=Di;var a=t.contextType;"object"===(void 0===a?"undefined":io(a))&&null!==a?o.context=zn(a):(a=kt(t)?Ri:Ni.current,o.context=bt(e,a)),a=e.updateQueue,null!==a&&(Kn(e,a,n,o,r),o.state=e.memoizedState),a=t.getDerivedStateFromProps,"function"==typeof a&&(Qt(e,t,a,n),o.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof o.getSnapshotBeforeUpdate||"function"!=typeof o.UNSAFE_componentWillMount&&"function"!=typeof o.componentWillMount||(t=o.state,"function"==typeof o.componentWillMount&&o.componentWillMount(),"function"==typeof o.UNSAFE_componentWillMount&&o.UNSAFE_componentWillMount(),t!==o.state&&Fi.enqueueReplaceState(o,o.state,null),null!==(a=e.updateQueue)&&(Kn(e,a,n,o,r),o.state=e.memoizedState)),"function"==typeof o.componentDidMount&&(e.effectTag|=4)}function Xt(e,t,n){if(null!==(e=n.ref)&&"function"!=typeof e&&"object"!==(void 0===e?"undefined":io(e))){if(n._owner){n=n._owner;var r=void 0;n&&(1!==n.tag&&o("309"),r=n.stateNode),r||o("147",e);var a=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===a?t.ref:(t=function(e){var t=r.refs;t===Di&&(t=r.refs={}),null===e?delete t[a]:t[a]=e},t._stringRef=a,t)}"string"!=typeof e&&o("284"),n._owner||o("290",e)}return e}function Jt(e,t){"textarea"!==e.type&&o("31","[object Object]"===Object.prototype.toString.call(t)?"object with keys {"+Object.keys(t).join(", ")+"}":t,"")}function Zt(e){function t(t,n){if(e){var r=t.lastEffect;null!==r?(r.nextEffect=n,t.lastEffect=n):t.firstEffect=t.lastEffect=n,n.nextEffect=null,n.effectTag=8}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function a(e,t,n){return e=Rt(e,t,n),e.index=0,e.sibling=null,e}function i(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index,rm?(y=f,f=null):y=f.sibling;var v=p(o,f,l[m],u);if(null===v){null===f&&(f=y);break}e&&f&&null===v.alternate&&t(o,f),a=i(v,a,m),null===c?s=v:c.sibling=v,c=v,f=y}if(m===l.length)return n(o,f),s;if(null===f){for(;my?(v=m,m=null):v=m.sibling;var b=p(a,m,g.value,s);if(null===b){m||(m=v);break}e&&m&&null===b.alternate&&t(a,m),l=i(b,l,y),null===f?c=b:f.sibling=b,f=b,m=v}if(g.done)return n(a,m),c;if(null===m){for(;!g.done;y++,g=u.next())null!==(g=d(a,g.value,s))&&(l=i(g,l,y),null===f?c=g:f.sibling=g,f=g);return c}for(m=r(a,m);!g.done;y++,g=u.next())null!==(g=h(m,a,y,g.value,s))&&(e&&null!==g.alternate&&m.delete(null===g.key?y:g.key),l=i(g,l,y),null===f?c=g:f.sibling=g,f=g);return e&&m.forEach(function(e){return t(a,e)}),c}return function(e,r,i,u){var s="object"===(void 0===i?"undefined":io(i))&&null!==i&&i.type===ca&&null===i.key;s&&(i=i.props.children);var c="object"===(void 0===i?"undefined":io(i))&&null!==i;if(c)switch(i.$$typeof){case ua:e:{for(c=i.key,s=r;null!==s;){if(s.key===c){if(7===s.tag?i.type===ca:s.elementType===i.type){n(e,s.sibling),r=a(s,i.type===ca?i.props.children:i.props,u),r.ref=Xt(e,s,i),r.return=e,e=r;break e}n(e,s);break}t(e,s),s=s.sibling}i.type===ca?(r=At(i.props.children,e.mode,u,i.key),r.return=e,e=r):(u=It(i.type,i.key,i.props,null,e.mode,u),u.ref=Xt(e,r,i),u.return=e,e=u)}return l(e);case sa:e:{for(s=i.key;null!==r;){if(r.key===s){if(4===r.tag&&r.stateNode.containerInfo===i.containerInfo&&r.stateNode.implementation===i.implementation){n(e,r.sibling),r=a(r,i.children||[],u),r.return=e,e=r;break e}n(e,r);break}t(e,r),r=r.sibling}r=Ht(i,e.mode,u),r.return=e,e=r}return l(e)}if("string"==typeof i||"number"==typeof i)return i=""+i,null!==r&&6===r.tag?(n(e,r.sibling),r=a(r,i,u),r.return=e,e=r):(n(e,r),r=Ft(i,e.mode,u),r.return=e,e=r),l(e);if(Hi(i))return m(e,r,i,u);if(Z(i))return y(e,r,i,u);if(c&&Jt(e,i),void 0===i&&!s)switch(e.tag){case 1:case 0:u=e.type,o("152",u.displayName||u.name||"Component")}return n(e,r)}}function en(e){return e===zi&&o("174"),e}function tn(e,t){gt(Wi,t,e),gt(Vi,e,e),gt(Bi,zi,e);var n=t.nodeType;switch(n){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:ot(null,"");break;default:n=8===n?t.parentNode:t,t=n.namespaceURI||null,n=n.tagName,t=ot(t,n)}vt(Bi,e),gt(Bi,t,e)}function nn(e){vt(Bi,e),vt(Vi,e),vt(Wi,e)}function rn(e){en(Wi.current);var t=en(Bi.current),n=ot(t,e.type);t!==n&&(gt(Vi,e,e),gt(Bi,n,e))}function on(e){Vi.current===e&&(vt(Bi,e),vt(Vi,e))}function an(){o("307")}function ln(e,t){if(null===t)return!1;for(var n=0;nll&&(ll=f)):i=s.eagerReducer===e?s.eagerState:e(i,s.action),l=s,s=s.next}while(null!==s&&s!==r);c||(u=l,a=i),Pe(i,t.memoizedState)||(kl=!0),t.memoizedState=i,t.baseUpdate=u,t.baseState=a,n.eagerReducer=e,n.eagerState=i}return[t.memoizedState,n.dispatch]}function hn(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===ul?(ul={lastEffect:null},ul.lastEffect=e.next=e):(t=ul.lastEffect,null===t?ul.lastEffect=e.next=e:(n=t.next,t.next=e,e.next=n,ul.lastEffect=e)),e}function mn(e,t,n,r){var o=cn();sl|=e,o.memoizedState=hn(t,n,void 0,void 0===r?null:r)}function yn(e,t,n,r){var o=fn();r=void 0===r?null:r;var a=void 0;if(null!==nl){var i=nl.memoizedState;if(a=i.destroy,null!==r&&ln(r,i.deps))return void hn(qi,n,a,r)}sl|=e,o.memoizedState=hn(t,n,a,r)}function vn(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!==t&&void 0!==t?(e=e(),t.current=e,function(){t.current=null}):void 0}function gn(){}function bn(e,t,n){25>dl||o("301");var r=e.alternate;if(e===tl||null!==r&&r===tl)if(cl=!0,e={expirationTime:el,action:n,eagerReducer:null,eagerState:null,next:null},null===fl&&(fl=new Map),void 0===(n=fl.get(t)))fl.set(t,e);else{for(t=n;null!==t.next;)t=t.next;t.next=e}else{gr();var a=Ar();a=Sr(a,e);var i={expirationTime:a,action:n,eagerReducer:null,eagerState:null,next:null},l=t.last;if(null===l)i.next=i;else{var u=l.next;null!==u&&(i.next=u),l.next=i}if(t.last=i,0===e.expirationTime&&(null===r||0===r.expirationTime)&&null!==(r=t.eagerReducer))try{var s=t.eagerState,c=r(s,n);if(i.eagerReducer=r,i.eagerState=c,Pe(c,s))return}catch(e){}xr(e,a)}}function kn(e,t){var n=Mt(5,null,null,0);n.elementType="DELETED",n.type="DELETED",n.stateNode=t,n.return=e,n.effectTag=8,null!==e.lastEffect?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function _n(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,!0);case 13:default:return!1}}function Tn(e){if(gl){var t=vl;if(t){var n=t;if(!_n(e,t)){if(!(t=mt(n))||!_n(e,t))return e.effectTag|=2,gl=!1,void(yl=e);kn(yl,n)}yl=e,vl=yt(t)}else e.effectTag|=2,gl=!1,yl=e}}function wn(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&18!==e.tag;)e=e.return;yl=e}function Sn(e){if(e!==yl)return!1;if(!gl)return wn(e),gl=!0,!1;var t=e.type;if(5!==e.tag||"head"!==t&&"body"!==t&&!pt(t,e.memoizedProps))for(t=vl;t;)kn(e,t),t=mt(t);return wn(e),vl=yl?mt(e.stateNode):null,!0}function On(){vl=yl=null,gl=!1}function En(e,t,n,r){t.child=null===e?Ui(t,null,n,r):ji(t,e.child,n,r)}function Pn(e,t,n,r,o){n=n.render;var a=t.ref;return Un(t,o),r=un(e,t,n,r,a,o),null===e||kl?(t.effectTag|=1,En(e,t,r,o),t.child):(t.updateQueue=e.updateQueue,t.effectTag&=-517,e.expirationTime<=o&&(e.expirationTime=0),Dn(e,t,o))}function xn(e,t,n,r,o,a){if(null===e){var i=n.type;return"function"!=typeof i||Nt(i)||void 0!==i.defaultProps||null!==n.compare||void 0!==n.defaultProps?(e=It(n.type,null,r,null,t.mode,a),e.ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=i,Cn(e,t,i,r,o,a))}return i=e.child,o=n?An(e,t,n):(t=Dn(e,t,n),null!==t?t.sibling:null)}return Dn(e,t,n)}}else kl=!1;switch(t.expirationTime=0,t.tag){case 2:r=t.elementType,null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),e=t.pendingProps;var a=bt(t,Ni.current);if(Un(t,n),a=un(null,t,r,e,a,n),t.effectTag|=1,"object"===(void 0===a?"undefined":io(a))&&null!==a&&"function"==typeof a.render&&void 0===a.$$typeof){if(t.tag=1,sn(),kt(r)){var i=!0;Ot(t)}else i=!1;t.memoizedState=null!==a.state&&void 0!==a.state?a.state:null;var l=r.getDerivedStateFromProps;"function"==typeof l&&Qt(t,r,l,e),a.updater=Fi,t.stateNode=a,a._reactInternalFiber=t,Kt(t,r,e,n),t=Rn(null,t,r,!0,i,n)}else t.tag=0,En(null,t,a,n),t=t.child;return t;case 16:switch(a=t.elementType,null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),i=t.pendingProps,e=qt(a),t.type=e,a=t.tag=Lt(e),i=Wt(e,i),l=void 0,a){case 0:l=Nn(null,t,e,i,n);break;case 1:l=Ln(null,t,e,i,n);break;case 11:l=Pn(null,t,e,i,n);break;case 14:l=xn(null,t,e,Wt(e.type,i),r,n);break;default:o("306",e,"")}return l;case 0:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:Wt(r,a),Nn(e,t,r,a,n);case 1:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:Wt(r,a),Ln(e,t,r,a,n);case 3:return In(t),r=t.updateQueue,null===r&&o("282"),a=t.memoizedState,a=null!==a?a.element:null,Kn(t,r,t.pendingProps,null,n),r=t.memoizedState.element,r===a?(On(),t=Dn(e,t,n)):(a=t.stateNode,(a=(null===e||null===e.child)&&a.hydrate)&&(vl=yt(t.stateNode.containerInfo),yl=t,a=gl=!0),a?(t.effectTag|=2,t.child=Ui(t,null,r,n)):(En(e,t,r,n),On()),t=t.child),t;case 5:return rn(t),null===e&&Tn(t),r=t.type,a=t.pendingProps,i=null!==e?e.memoizedProps:null,l=a.children,pt(r,a)?l=null:null!==i&&pt(r,i)&&(t.effectTag|=16),Mn(e,t),1!==n&&1&t.mode&&a.hidden?(t.expirationTime=t.childExpirationTime=1,t=null):(En(e,t,l,n),t=t.child),t;case 6:return null===e&&Tn(t),null;case 13:return An(e,t,n);case 4:return tn(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=ji(t,null,r,n):En(e,t,r,n),t.child;case 11:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:Wt(r,a),Pn(e,t,r,a,n);case 7:return En(e,t,t.pendingProps,n),t.child;case 8:case 12:return En(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,a=t.pendingProps,l=t.memoizedProps,i=a.value,Hn(t,i),null!==l){var u=l.value;if(0===(i=Pe(u,i)?0:0|("function"==typeof r._calculateChangedBits?r._calculateChangedBits(u,i):1073741823))){if(l.children===a.children&&!Li.current){t=Dn(e,t,n);break e}}else for(null!==(u=t.child)&&(u.return=t);null!==u;){var s=u.contextDependencies;if(null!==s){l=u.child;for(var c=s.first;null!==c;){if(c.context===r&&0!=(c.observedBits&i)){1===u.tag&&(c=Wn(n),c.tag=Pl,Qn(u,c)),u.expirationTime=t&&(kl=!0),e.contextDependencies=null}function zn(e,t){return Sl!==e&&!1!==t&&0!==t&&("number"==typeof t&&1073741823!==t||(Sl=e,t=1073741823),t={context:e,observedBits:t,next:null},null===wl?(null===Tl&&o("308"),wl=t,Tl.contextDependencies={first:t,expirationTime:0}):wl=wl.next=t),e._currentValue}function Bn(e){return{baseState:e,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function Vn(e){return{baseState:e.baseState,firstUpdate:e.firstUpdate,lastUpdate:e.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function Wn(e){return{expirationTime:e,tag:Ol,payload:null,callback:null,next:null,nextEffect:null}}function qn(e,t){null===e.lastUpdate?e.firstUpdate=e.lastUpdate=t:(e.lastUpdate.next=t,e.lastUpdate=t)}function Qn(e,t){var n=e.alternate;if(null===n){var r=e.updateQueue,o=null;null===r&&(r=e.updateQueue=Bn(e.memoizedState))}else r=e.updateQueue,o=n.updateQueue,null===r?null===o?(r=e.updateQueue=Bn(e.memoizedState),o=n.updateQueue=Bn(n.memoizedState)):r=e.updateQueue=Vn(o):null===o&&(o=n.updateQueue=Vn(r));null===o||r===o?qn(r,t):null===r.lastUpdate||null===o.lastUpdate?(qn(r,t),qn(o,t)):(qn(r,t),o.lastUpdate=t)}function Yn(e,t){var n=e.updateQueue;n=null===n?e.updateQueue=Bn(e.memoizedState):$n(e,n),null===n.lastCapturedUpdate?n.firstCapturedUpdate=n.lastCapturedUpdate=t:(n.lastCapturedUpdate.next=t,n.lastCapturedUpdate=t)}function $n(e,t){var n=e.alternate;return null!==n&&t===n.updateQueue&&(t=e.updateQueue=Vn(t)),t}function Gn(e,t,n,r,o,a){switch(n.tag){case El:return e=n.payload,"function"==typeof e?e.call(a,r,o):e;case xl:e.effectTag=-2049&e.effectTag|64;case Ol:if(e=n.payload,null===(o="function"==typeof e?e.call(a,r,o):e)||void 0===o)break;return uo({},r,o);case Pl:Cl=!0}return r}function Kn(e,t,n,r,o){Cl=!1,t=$n(e,t);for(var a=t.baseState,i=null,l=0,u=t.firstUpdate,s=a;null!==u;){var c=u.expirationTime;cr?a:r),Fl.current=null,r=void 0,1n?t:n,0===t&&(Kl=null),Ir(e,t)}function kr(e){for(;;){var t=e.alternate,n=e.return,r=e.sibling;if(0==(1024&e.effectTag)){Ul=e;e:{var a=t;t=e;var i=Bl,l=t.pendingProps;switch(t.tag){case 2:case 16:break;case 15:case 0:break;case 1:kt(t.type)&&_t(t);break;case 3:nn(t),Tt(t),l=t.stateNode,l.pendingContext&&(l.context=l.pendingContext,l.pendingContext=null),null!==a&&null!==a.child||(Sn(t),t.effectTag&=-3),Nl(t);break;case 5:on(t);var u=en(Wi.current);if(i=t.type,null!==a&&null!=t.stateNode)Ll(a,t,i,l,u),a.ref!==t.ref&&(t.effectTag|=128);else if(l){var s=en(Bi.current);if(Sn(t)){l=t,a=l.stateNode;var c=l.type,f=l.memoizedProps,d=u;switch(a[xo]=l,a[Co]=f,i=void 0,u=c){case"iframe":case"object":De("load",a);break;case"video":case"audio":for(c=0;c<\/script>",c=a.removeChild(a.firstChild)):"string"==typeof d.is?c=c.createElement(a,{is:d.is}):(c=c.createElement(a),"select"===a&&d.multiple&&(c.multiple=!0)):c=c.createElementNS(s,a),a=c,a[xo]=f,a[Co]=l,Ml(a,t,!1,!1),d=a,c=i,f=l;var p=u,h=st(c,f);switch(c){case"iframe":case"object":De("load",d),u=f;break;case"video":case"audio":for(u=0;ul&&(l=a),u>l&&(l=u),i=i.sibling;t.childExpirationTime=l}if(null!==Ul)return Ul;null!==n&&0==(1024&n.effectTag)&&(null===n.firstEffect&&(n.firstEffect=e.firstEffect),null!==e.lastEffect&&(null!==n.lastEffect&&(n.lastEffect.nextEffect=e.firstEffect),n.lastEffect=e.lastEffect),1=m?p=0:(-1===p||m component higher in the tree to provide a loading indicator or placeholder to display."+te(c))}Wl=!0,f=Zn(f,c),u=s;do{switch(u.tag){case 3:u.effectTag|=2048,u.expirationTime=l,l=cr(u,f,l),Yn(u,l);break e;case 1:if(p=f,h=u.type,c=u.stateNode,0==(64&u.effectTag)&&("function"==typeof h.getDerivedStateFromError||null!==c&&"function"==typeof c.componentDidCatch&&(null===Kl||!Kl.has(c)))){u.effectTag|=2048,u.expirationTime=l,l=fr(u,p,l),Yn(u,l);break e}}u=u.return}while(null!==u)}Ul=kr(i);continue}a=!0,Wr(t)}}break}if(jl=!1,Dl.current=n,Sl=wl=Tl=null,sn(),a)zl=null,e.finishedWork=null;else if(null!==Ul)e.finishedWork=null;else{if(n=e.current.alternate,null===n&&o("281"),zl=null,Wl){if(a=e.latestPendingTime,i=e.latestSuspendedTime,l=e.latestPingedTime,0!==a&&at?0:t)):(e.pendingCommitExpirationTime=r,e.finishedWork=n)}}function wr(e,t){for(var n=e.return;null!==n;){switch(n.tag){case 1:var r=n.stateNode;if("function"==typeof n.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Kl||!Kl.has(r)))return e=Zn(t,e),e=fr(n,e,1073741823),Qn(n,e),void xr(n,1073741823);break;case 3:return e=Zn(t,e),e=cr(n,e,1073741823),Qn(n,e),void xr(n,1073741823)}n=n.return}3===e.tag&&(n=Zn(t,e),n=cr(e,n,1073741823),Qn(e,n),xr(e,1073741823))}function Sr(e,t){var n=so.unstable_getCurrentPriorityLevel(),r=void 0;if(0==(1&t.mode))r=1073741823;else if(jl&&!Ql)r=Bl;else{switch(n){case so.unstable_ImmediatePriority:r=1073741823;break;case so.unstable_UserBlockingPriority:r=1073741822-10*(1+((1073741822-e+15)/10|0));break;case so.unstable_NormalPriority:r=1073741822-25*(1+((1073741822-e+500)/25|0));break;case so.unstable_LowPriority:case so.unstable_IdlePriority:r=1;break;default:o("313")}null!==zl&&r===Bl&&--r}return n===so.unstable_UserBlockingPriority&&(0===ou||r=r&&(e.didError=!1,t=e.latestPingedTime,(0===t||t>n)&&(e.latestPingedTime=n),Vt(n,e),0!==(n=e.expirationTime)&&Dr(e,n)))}function Er(e,t){var n=e.stateNode;null!==n&&n.delete(t),t=Ar(),t=Sr(t,e),null!==(e=Pr(e,t))&&(jt(e,t),0!==(t=e.expirationTime)&&Dr(e,t))}function Pr(e,t){e.expirationTimeBl&&pr(),jt(e,t),jl&&!Ql&&zl===e||Dr(e,e.expirationTime),hu>pu&&(hu=0,o("185")))}function Cr(e,t,n,r,o){return so.unstable_runWithPriority(so.unstable_ImmediatePriority,function(){return e(t,n,r,o)})}function Mr(){fu=1073741822-((so.unstable_now()-cu)/10|0)}function Nr(e,t){if(0!==Zl){if(te.expirationTime&&(e.expirationTime=t),tu||(lu?uu&&(nu=e,ru=1073741823,Br(e,1073741823,!1)):1073741823===t?Ur(1073741823,!1):Nr(e,t))}function Fr(){var e=0,t=null;if(null!==Jl)for(var n=Jl,r=Xl;null!==r;){var a=r.expirationTime;if(0===a){if((null===n||null===Jl)&&o("244"),r===r.nextScheduledRoot){Xl=Jl=r.nextScheduledRoot=null;break}if(r===Xl)Xl=a=r.nextScheduledRoot,Jl.nextScheduledRoot=a,r.nextScheduledRoot=null;else{if(r===Jl){Jl=n,Jl.nextScheduledRoot=Xl,r.nextScheduledRoot=null;break}n.nextScheduledRoot=r.nextScheduledRoot,r.nextScheduledRoot=null}r=n.nextScheduledRoot}else{if(a>e&&(e=a,t=r),r===Jl)break;if(1073741823===e)break;n=r,r=r.nextScheduledRoot}}nu=t,ru=e}function Hr(){return!!yu||!!so.unstable_shouldYield()&&(yu=!0)}function jr(){try{if(!Hr()&&null!==Xl){Mr();var e=Xl;do{var t=e.expirationTime;0!==t&&fu<=t&&(e.nextExpirationTimeToWorkOn=fu),e=e.nextScheduledRoot}while(e!==Xl)}Ur(0,!0)}finally{yu=!1}}function Ur(e,t){if(Fr(),t)for(Mr(),du=fu;null!==nu&&0!==ru&&e<=ru&&!(yu&&fu>ru);)Br(nu,ru,fu>ru),Fr(),Mr(),du=fu;else for(;null!==nu&&0!==ru&&e<=ru;)Br(nu,ru,!1),Fr();if(t&&(Zl=0,eu=null),0!==ru&&Nr(nu,ru),hu=0,mu=null,null!==su)for(e=su,su=null,t=0;t=n&&(null===su?su=[r]:su.push(r),r._defer))return e.finishedWork=t,void(e.expirationTime=0);e.finishedWork=null,e===mu?hu++:(mu=e,hu=0),so.unstable_runWithPriority(so.unstable_ImmediatePriority,function(){br(e,t)})}function Wr(e){null===nu&&o("246"),nu.expirationTime=0,au||(au=!0,iu=e)}function qr(e,t){var n=lu;lu=!0;try{return e(t)}finally{(lu=n)||tu||Ur(1073741823,!1)}}function Qr(e,t){if(lu&&!uu){uu=!0;try{return e(t)}finally{uu=!1}}return e(t)}function Yr(e,t,n){lu||tu||0===ou||(Ur(ou,!1),ou=0);var r=lu;lu=!0;try{return so.unstable_runWithPriority(so.unstable_UserBlockingPriority,function(){return e(t,n)})}finally{(lu=r)||tu||Ur(1073741823,!1)}}function $r(e,t,n,r,a){var i=t.current;e:if(n){n=n._reactInternalFiber;t:{2===Ce(n)&&1===n.tag||o("170");var l=n;do{switch(l.tag){case 3:l=l.stateNode.context;break t;case 1:if(kt(l.type)){l=l.stateNode.__reactInternalMemoizedMergedChildContext;break t}}l=l.return}while(null!==l);o("171"),l=void 0}if(1===n.tag){var u=n.type;if(kt(u)){n=St(n,u,l);break e}}n=l}else n=Mi;return null===t.context?t.context=n:t.pendingContext=n,t=a,a=Wn(r),a.payload={element:e},t=void 0===t?null:t,null!==t&&(a.callback=t),gr(),Qn(i,a),xr(i,r),r}function Gr(e,t,n,r){var o=t.current;return o=Sr(Ar(),o),$r(e,t,n,o,r)}function Kr(e){if(e=e.current,!e.child)return null;switch(e.child.tag){case 5:default:return e.child.stateNode}}function Xr(e,t,n){var r=3=Hl&&(t=Hl-1),this._expirationTime=Hl=t,this._root=e,this._callbacks=this._next=null,this._hasChildren=this._didComplete=!1,this._children=null,this._defer=!0}function Zr(){this._callbacks=null,this._didCommit=!1,this._onCommit=this._onCommit.bind(this)}function eo(e,t,n){t=Mt(3,null,null,t?3:0),e={current:t,containerInfo:e,pendingChildren:null,pingCache:null,earliestPendingTime:0,latestPendingTime:0,earliestSuspendedTime:0,latestSuspendedTime:0,latestPingedTime:0,didError:!1,pendingCommitExpirationTime:0,finishedWork:null,timeoutHandle:-1,context:null,pendingContext:null,hydrate:n,nextExpirationTimeToWorkOn:0,expirationTime:0,firstBatch:null,nextScheduledRoot:null},this._internalRoot=t.stateNode=e}function to(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function no(e,t){if(t||(t=e?9===e.nodeType?e.documentElement:e.firstChild:null,t=!(!t||1!==t.nodeType||!t.hasAttribute("data-reactroot"))),!t)for(var n;n=e.lastChild;)e.removeChild(n);return new eo(e,!1,t)}function ro(e,t,n,r,o){var a=n._reactRootContainer;if(a){if("function"==typeof o){var i=o;o=function(){var e=Kr(a._internalRoot);i.call(e)}}null!=e?a.legacy_renderSubtreeIntoContainer(e,t,o):a.render(t,o)}else{if(a=n._reactRootContainer=no(n,r),"function"==typeof o){var l=o;o=function(){var e=Kr(a._internalRoot);l.call(e)}}Qr(function(){null!=e?a.legacy_renderSubtreeIntoContainer(e,t,o):a.render(t,o)})}return Kr(a._internalRoot)}function oo(e,t){var n=2=Qo),Go=String.fromCharCode(32),Ko={beforeInput:{phasedRegistrationNames:{bubbled:"onBeforeInput",captured:"onBeforeInputCapture"},dependencies:["compositionend","keypress","textInput","paste"]},compositionEnd:{phasedRegistrationNames:{bubbled:"onCompositionEnd",captured:"onCompositionEndCapture"},dependencies:"blur compositionend keydown keypress keyup mousedown".split(" ")},compositionStart:{phasedRegistrationNames:{bubbled:"onCompositionStart",captured:"onCompositionStartCapture"},dependencies:"blur compositionstart keydown keypress keyup mousedown".split(" ")},compositionUpdate:{phasedRegistrationNames:{bubbled:"onCompositionUpdate",captured:"onCompositionUpdateCapture"},dependencies:"blur compositionupdate keydown keypress keyup mousedown".split(" ")}},Xo=!1,Jo=!1,Zo={eventTypes:Ko,extractEvents:function(e,t,n,r){var o=void 0,a=void 0;if(qo)e:{switch(e){case"compositionstart":o=Ko.compositionStart;break e;case"compositionend":o=Ko.compositionEnd;break e;case"compositionupdate":o=Ko.compositionUpdate;break e}o=void 0}else Jo?A(e,n)&&(o=Ko.compositionEnd):"keydown"===e&&229===n.keyCode&&(o=Ko.compositionStart);return o?($o&&"ko"!==n.locale&&(Jo||o!==Ko.compositionStart?o===Ko.compositionEnd&&Jo&&(a=x()):(jo=r,Uo="value"in jo?jo.value:jo.textContent,Jo=!0)),o=Bo.getPooled(o,t,n,r),a?o.data=a:null!==(a=D(n))&&(o.data=a),O(o),a=o):a=null,(e=Yo?F(e,n):H(e,n))?(t=Vo.getPooled(Ko.beforeInput,t,n,r),t.data=e,O(t)):t=null,null===a?t:null===t?a:[a,t]}},ea=null,ta=null,na=null,ra=!1,oa={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0},aa=lo.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;aa.hasOwnProperty("ReactCurrentDispatcher")||(aa.ReactCurrentDispatcher={current:null});var ia=/^(.*)[\\\/]/,la="function"==typeof Symbol&&Symbol.for,ua=la?Symbol.for("react.element"):60103,sa=la?Symbol.for("react.portal"):60106,ca=la?Symbol.for("react.fragment"):60107,fa=la?Symbol.for("react.strict_mode"):60108,da=la?Symbol.for("react.profiler"):60114,pa=la?Symbol.for("react.provider"):60109,ha=la?Symbol.for("react.context"):60110,ma=la?Symbol.for("react.concurrent_mode"):60111,ya=la?Symbol.for("react.forward_ref"):60112,va=la?Symbol.for("react.suspense"):60113,ga=la?Symbol.for("react.memo"):60115,ba=la?Symbol.for("react.lazy"):60116,ka="function"==typeof Symbol&&Symbol.iterator,_a=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,Ta=Object.prototype.hasOwnProperty,wa={},Sa={},Oa={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){Oa[e]=new ae(e,0,!1,e,null)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];Oa[t]=new ae(t,1,!1,e[1],null)}),["contentEditable","draggable","spellCheck","value"].forEach(function(e){Oa[e]=new ae(e,2,!1,e.toLowerCase(),null)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){Oa[e]=new ae(e,2,!1,e,null)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){Oa[e]=new ae(e,3,!1,e.toLowerCase(),null)}),["checked","multiple","muted","selected"].forEach(function(e){Oa[e]=new ae(e,3,!0,e,null)}),["capture","download"].forEach(function(e){Oa[e]=new ae(e,4,!1,e,null)}),["cols","rows","size","span"].forEach(function(e){Oa[e]=new ae(e,6,!1,e,null)}),["rowSpan","start"].forEach(function(e){Oa[e]=new ae(e,5,!1,e.toLowerCase(),null)});var Ea=/[\-:]([a-z])/g;"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(Ea,ie);Oa[t]=new ae(t,1,!1,e,null)}),"xlink:actuate xlink:arcrole xlink:href xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(Ea,ie);Oa[t]=new ae(t,1,!1,e,"http://www.w3.org/1999/xlink")}),["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(Ea,ie);Oa[t]=new ae(t,1,!1,e,"http://www.w3.org/XML/1998/namespace")}),["tabIndex","crossOrigin"].forEach(function(e){Oa[e]=new ae(e,1,!1,e.toLowerCase(),null)});var Pa={change:{phasedRegistrationNames:{bubbled:"onChange",captured:"onChangeCapture"},dependencies:"blur change click focus input keydown keyup selectionchange".split(" ")}},xa=null,Ca=null,Ma=!1;Mo&&(Ma=$("input")&&(!document.documentMode||9=document.documentMode,ci={select:{phasedRegistrationNames:{bubbled:"onSelect",captured:"onSelectCapture"},dependencies:"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange".split(" ")}},fi=null,di=null,pi=null,hi=!1,mi={eventTypes:ci,extractEvents:function(e,t,n,r){var o,a=r.window===r?r.document:9===r.nodeType?r:r.ownerDocument;if(!(o=!a)){e:{a=Ue(a),o=_o.onSelect;for(var i=0;i"+t+"",t=vi.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}}),bi={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},ki=["Webkit","ms","Moz","O"];Object.keys(bi).forEach(function(e){ki.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),bi[t]=bi[e]})});var _i=uo({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0}),Ti=null,wi=null,Si="function"==typeof setTimeout?setTimeout:void 0,Oi="function"==typeof clearTimeout?clearTimeout:void 0,Ei=so.unstable_scheduleCallback,Pi=so.unstable_cancelCallback;new Set;var xi=[],Ci=-1,Mi={},Ni={current:Mi},Li={current:!1},Ri=Mi,Ii=null,Ai=null,Di=(new lo.Component).refs,Fi={isMounted:function(e){return!!(e=e._reactInternalFiber)&&2===Ce(e)},enqueueSetState:function(e,t,n){e=e._reactInternalFiber;var r=Ar();r=Sr(r,e);var o=Wn(r);o.payload=t,void 0!==n&&null!==n&&(o.callback=n),gr(),Qn(e,o),xr(e,r)},enqueueReplaceState:function(e,t,n){e=e._reactInternalFiber;var r=Ar();r=Sr(r,e);var o=Wn(r);o.tag=El,o.payload=t,void 0!==n&&null!==n&&(o.callback=n),gr(),Qn(e,o),xr(e,r)},enqueueForceUpdate:function(e,t){e=e._reactInternalFiber;var n=Ar();n=Sr(n,e);var r=Wn(n);r.tag=Pl,void 0!==t&&null!==t&&(r.callback=t),gr(),Qn(e,r),xr(e,n)}},Hi=Array.isArray,ji=Zt(!0),Ui=Zt(!1),zi={},Bi={current:zi},Vi={current:zi},Wi={current:zi},qi=0,Qi=2,Yi=4,$i=8,Gi=16,Ki=32,Xi=64,Ji=128,Zi=aa.ReactCurrentDispatcher,el=0,tl=null,nl=null,rl=null,ol=null,al=null,il=null,ll=0,ul=null,sl=0,cl=!1,fl=null,dl=0,pl={readContext:zn,useCallback:an,useContext:an,useEffect:an,useImperativeHandle:an,useLayoutEffect:an,useMemo:an,useReducer:an,useRef:an,useState:an,useDebugValue:an},hl={readContext:zn,useCallback:function(e,t){return cn().memoizedState=[e,void 0===t?null:t],e},useContext:zn,useEffect:function(e,t){return mn(516,Ji|Xi,e,t)},useImperativeHandle:function(e,t,n){return n=null!==n&&void 0!==n?n.concat([e]):null,mn(4,Yi|Ki,vn.bind(null,t,e),n)},useLayoutEffect:function(e,t){return mn(4,Yi|Ki,e,t)},useMemo:function(e,t){var n=cn();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=cn();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e=r.queue={last:null,dispatch:null,eagerReducer:e,eagerState:t},e=e.dispatch=bn.bind(null,tl,e),[r.memoizedState,e]},useRef:function(e){var t=cn();return e={current:e},t.memoizedState=e},useState:function(e){var t=cn();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=t.queue={last:null,dispatch:null,eagerReducer:dn,eagerState:e},e=e.dispatch=bn.bind(null,tl,e),[t.memoizedState,e]},useDebugValue:gn},ml={readContext:zn,useCallback:function(e,t){var n=fn();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&ln(t,r[1])?r[0]:(n.memoizedState=[e,t],e)},useContext:zn,useEffect:function(e,t){return yn(516,Ji|Xi,e,t)},useImperativeHandle:function(e,t,n){return n=null!==n&&void 0!==n?n.concat([e]):null,yn(4,Yi|Ki,vn.bind(null,t,e),n)},useLayoutEffect:function(e,t){return yn(4,Yi|Ki,e,t)},useMemo:function(e,t){var n=fn();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&ln(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)},useReducer:pn,useRef:function(){return fn().memoizedState},useState:function(e){return pn(dn)},useDebugValue:gn},yl=null,vl=null,gl=!1,bl=aa.ReactCurrentOwner,kl=!1,_l={current:null},Tl=null,wl=null,Sl=null,Ol=0,El=1,Pl=2,xl=3,Cl=!1,Ml=void 0,Nl=void 0,Ll=void 0,Rl=void 0;Ml=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Nl=function(){},Ll=function(e,t,n,r,o){var a=e.memoizedProps;if(a!==r){var i=t.stateNode;switch(en(Bi.current),e=null,n){case"input":a=se(i,a),r=se(i,r),e=[];break;case"option":a=Xe(i,a),r=Xe(i,r),e=[];break;case"select":a=uo({},a,{value:void 0}),r=uo({},r,{value:void 0}),e=[];break;case"textarea":a=Ze(i,a),r=Ze(i,r),e=[];break;default:"function"!=typeof a.onClick&&"function"==typeof r.onClick&&(i.onclick=ft)}ut(n,r),i=n=void 0;var l=null;for(n in a)if(!r.hasOwnProperty(n)&&a.hasOwnProperty(n)&&null!=a[n])if("style"===n){var u=a[n];for(i in u)u.hasOwnProperty(i)&&(l||(l={}),l[i]="")}else"dangerouslySetInnerHTML"!==n&&"children"!==n&&"suppressContentEditableWarning"!==n&&"suppressHydrationWarning"!==n&&"autoFocus"!==n&&(ko.hasOwnProperty(n)?e||(e=[]):(e=e||[]).push(n,null));for(n in r){var s=r[n];if(u=null!=a?a[n]:void 0,r.hasOwnProperty(n)&&s!==u&&(null!=s||null!=u))if("style"===n)if(u){for(i in u)!u.hasOwnProperty(i)||s&&s.hasOwnProperty(i)||(l||(l={}),l[i]="");for(i in s)s.hasOwnProperty(i)&&u[i]!==s[i]&&(l||(l={}),l[i]=s[i])}else l||(e||(e=[]),e.push(n,l)),l=s;else"dangerouslySetInnerHTML"===n?(s=s?s.__html:void 0,u=u?u.__html:void 0,null!=s&&u!==s&&(e=e||[]).push(n,""+s)):"children"===n?u===s||"string"!=typeof s&&"number"!=typeof s||(e=e||[]).push(n,""+s):"suppressContentEditableWarning"!==n&&"suppressHydrationWarning"!==n&&(ko.hasOwnProperty(n)?(null!=s&&ct(o,n),e||u===s||(e=[])):(e=e||[]).push(n,s))}l&&(e=e||[]).push("style",l),o=e,(t.updateQueue=o)&&er(t)}},Rl=function(e,t,n,r){n!==r&&er(t)};var Il="function"==typeof WeakSet?WeakSet:Set,Al="function"==typeof WeakMap?WeakMap:Map,Dl=aa.ReactCurrentDispatcher,Fl=aa.ReactCurrentOwner,Hl=1073741822,jl=!1,Ul=null,zl=null,Bl=0,Vl=-1,Wl=!1,ql=null,Ql=!1,Yl=null,$l=null,Gl=null,Kl=null,Xl=null,Jl=null,Zl=0,eu=void 0,tu=!1,nu=null,ru=0,ou=0,au=!1,iu=null,lu=!1,uu=!1,su=null,cu=so.unstable_now(),fu=1073741822-(cu/10|0),du=fu,pu=50,hu=0,mu=null,yu=!1;ea=function(e,t,n){switch(t){case"input":if(de(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t=t;)n=r,r=r._next;e._next=r,null!==n&&(n._next=e)}return e},B=qr,V=Yr,W=function(){tu||0===ou||(Ur(ou,!1),ou=0)};var vu={createPortal:oo,findDOMNode:function(e){if(null==e)return null;if(1===e.nodeType)return e;var t=e._reactInternalFiber;return void 0===t&&("function"==typeof e.render?o("188"):o("268",Object.keys(e))),e=Le(t),e=null===e?null:e.stateNode},hydrate:function(e,t,n){return to(t)||o("200"),ro(null,e,t,!0,n)},render:function(e,t,n){return to(t)||o("200"),ro(null,e,t,!1,n)},unstable_renderSubtreeIntoContainer:function(e,t,n,r){return to(n)||o("200"),(null==e||void 0===e._reactInternalFiber)&&o("38"),ro(e,t,n,!1,r)},unmountComponentAtNode:function(e){return to(e)||o("40"),!!e._reactRootContainer&&(Qr(function(){ro(null,null,e,!1,function(){e._reactRootContainer=null})}),!0)},unstable_createPortal:function(){return oo.apply(void 0,arguments)},unstable_batchedUpdates:qr,unstable_interactiveUpdates:Yr,flushSync:function(e,t){tu&&o("187");var n=lu;lu=!0;try{return Cr(e,t)}finally{lu=n,Ur(1073741823,!1)}},unstable_createRoot:ao,unstable_flushControlled:function(e){var t=lu;lu=!0;try{Cr(e)}finally{(lu=t)||tu||Ur(1073741823,!1)}},__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:{Events:[v,g,b,Eo.injectEventPluginsByName,bo,O,function(e){d(e,S)},U,z,je,m]}};!function(e){var t=e.findFiberByHostInstance;xt(uo({},e,{overrideProps:null,currentDispatcherRef:aa.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return e=Le(e),null===e?null:e.stateNode},findFiberByHostInstance:function(e){return t?t(e):null}}))}({findFiberByHostInstance:y,bundleType:0,version:"16.8.3",rendererPackageName:"react-dom"});var gu={default:vu},bu=gu&&vu||gu;e.exports=bu.default||bu},function(e,t,n){"use strict";e.exports=n(33)},function(e,t,n){"use strict";(function(e){function n(){if(!m){var e=c.expirationTime;y?S():y=!0,w(a,e)}}function r(){var e=c,t=c.next;if(c===t)c=null;else{var r=c.previous;c=r.next=t,t.previous=r}e.next=e.previous=null,r=e.callback,t=e.expirationTime,e=e.priorityLevel;var o=d,a=h;d=e,h=t;try{var i=r()}finally{d=o,h=a}if("function"==typeof i)if(i={callback:i,priorityLevel:e,expirationTime:t,next:null,previous:null},null===c)c=i.next=i.previous=i;else{r=null,e=c;do{if(e.expirationTime>=t){r=e;break}e=e.next}while(e!==c);null===r?r=c:r===c&&(c=i,n()),t=r.previous,t.next=r.previous=i,i.next=r,i.previous=t}}function o(){if(-1===p&&null!==c&&1===c.priorityLevel){m=!0;try{do{r()}while(null!==c&&1===c.priorityLevel)}finally{m=!1,null!==c?n():y=!1}}}function a(e){m=!0;var a=f;f=e;try{if(e)for(;null!==c;){var i=t.unstable_now();if(!(c.expirationTime<=i))break;do{r()}while(null!==c&&c.expirationTime<=i)}else if(null!==c)do{r()}while(null!==c&&!O())}finally{m=!1,f=a,null!==c?n():y=!1,o()}}function i(e){u=k(function(t){b(s),e(t)}),s=g(function(){_(u),e(t.unstable_now())},100)}var l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};Object.defineProperty(t,"__esModule",{value:!0});var u,s,c=null,f=!1,d=3,p=-1,h=-1,m=!1,y=!1,v=Date,g="function"==typeof setTimeout?setTimeout:void 0,b="function"==typeof clearTimeout?clearTimeout:void 0,k="function"==typeof requestAnimationFrame?requestAnimationFrame:void 0,_="function"==typeof cancelAnimationFrame?cancelAnimationFrame:void 0;if("object"===("undefined"==typeof performance?"undefined":l(performance))&&"function"==typeof performance.now){var T=performance;t.unstable_now=function(){return T.now()}}else t.unstable_now=function(){return v.now()};var w,S,O,E=null;if("undefined"!=typeof window?E=window:void 0!==e&&(E=e),E&&E._schedMock){var P=E._schedMock;w=P[0],S=P[1],O=P[2],t.unstable_now=P[3]}else if("undefined"==typeof window||"function"!=typeof MessageChannel){var x=null,C=function(e){if(null!==x)try{x(e)}finally{x=null}};w=function(e){null!==x?setTimeout(w,0,e):(x=e,setTimeout(C,0,!1))},S=function(){x=null},O=function(){return!1}}else{var M=null,N=!1,L=-1,R=!1,I=!1,A=0,D=33,F=33;O=function(){return A<=t.unstable_now()};var H=new MessageChannel,j=H.port2;H.port1.onmessage=function(){N=!1;var e=M,n=L;M=null,L=-1;var r=t.unstable_now(),o=!1;if(0>=A-r){if(!(-1!==n&&n<=r))return R||(R=!0,i(U)),M=e,void(L=n);o=!0}if(null!==e){I=!0;try{e(o)}finally{I=!1}}};var U=function e(t){if(null!==M){i(e);var n=t-A+F;nn&&(n=8),F=nt?j.postMessage(void 0):R||(R=!0,i(U))},S=function(){M=null,N=!1,L=-1}}t.unstable_ImmediatePriority=1,t.unstable_UserBlockingPriority=2,t.unstable_NormalPriority=3,t.unstable_IdlePriority=5,t.unstable_LowPriority=4,t.unstable_runWithPriority=function(e,n){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var r=d,a=p;d=e,p=t.unstable_now();try{return n()}finally{d=r,p=a,o()}},t.unstable_next=function(e){switch(d){case 1:case 2:case 3:var n=3;break;default:n=d}var r=d,a=p;d=n,p=t.unstable_now();try{return e()}finally{d=r,p=a,o()}},t.unstable_scheduleCallback=function(e,r){var o=-1!==p?p:t.unstable_now();if("object"===(void 0===r?"undefined":l(r))&&null!==r&&"number"==typeof r.timeout)r=o+r.timeout;else switch(d){case 1:r=o+-1;break;case 2:r=o+250;break;case 5:r=o+1073741823;break;case 4:r=o+1e4;break;default:r=o+5e3}if(e={callback:e,priorityLevel:d,expirationTime:r,next:null,previous:null},null===c)c=e.next=e.previous=e,n();else{o=null;var a=c;do{if(a.expirationTime>r){o=a;break}a=a.next}while(a!==c);null===o?o=c:o===c&&(c=e,n()),r=o.previous,r.next=o.previous=e,e.next=o,e.previous=r}return e},t.unstable_cancelCallback=function(e){var t=e.next;if(null!==t){if(t===e)c=null;else{e===c&&(c=t);var n=e.previous;n.next=t,t.previous=n}e.next=e.previous=null}},t.unstable_wrapCallback=function(e){var n=d;return function(){var r=d,a=p;d=n,p=t.unstable_now();try{return e.apply(this,arguments)}finally{d=r,p=a,o()}}},t.unstable_getCurrentPriorityLevel=function(){return d},t.unstable_shouldYield=function(){return!f&&(null!==c&&c.expirationTime-1?t:e}function c(e,t){t=t||{};var n=t.body;if(c.prototype.isPrototypeOf(e)){if(e.bodyUsed)throw new TypeError("Already read");this.url=e.url,this.credentials=e.credentials,t.headers||(this.headers=new r(e.headers)),this.method=e.method,this.mode=e.mode,n||(n=e._bodyInit,e.bodyUsed=!0)}else this.url=e;if(this.credentials=t.credentials||this.credentials||"omit",!t.headers&&this.headers||(this.headers=new r(t.headers)),this.method=s(t.method||this.method||"GET"),this.mode=t.mode||this.mode||null,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&n)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(n)}function f(e){var t=new FormData;return e.trim().split("&").forEach(function(e){if(e){var n=e.split("="),r=n.shift().replace(/\+/g," "),o=n.join("=").replace(/\+/g," ");t.append(decodeURIComponent(r),decodeURIComponent(o))}}),t}function d(e){var t=new r;return(e.getAllResponseHeaders()||"").trim().split("\n").forEach(function(e){var n=e.trim().split(":"),r=n.shift().trim(),o=n.join(":").trim();t.append(r,o)}),t}function p(e,t){t||(t={}),this.type="default",this.status=t.status,this.ok=this.status>=200&&this.status<300,this.statusText=t.statusText,this.headers=t.headers instanceof r?t.headers:new r(t.headers),this.url=t.url||"",this._initBody(e)}if(!e.fetch){r.prototype.append=function(e,r){e=t(e),r=n(r);var o=this.map[e];o||(o=[],this.map[e]=o),o.push(r)},r.prototype.delete=function(e){delete this.map[t(e)]},r.prototype.get=function(e){var n=this.map[t(e)];return n?n[0]:null},r.prototype.getAll=function(e){return this.map[t(e)]||[]},r.prototype.has=function(e){return this.map.hasOwnProperty(t(e))},r.prototype.set=function(e,r){this.map[t(e)]=[n(r)]},r.prototype.forEach=function(e,t){Object.getOwnPropertyNames(this.map).forEach(function(n){this.map[n].forEach(function(r){e.call(t,r,n,this)},this)},this)};var h={blob:"FileReader"in e&&"Blob"in e&&function(){try{return new Blob,!0}catch(e){return!1}}(),formData:"FormData"in e,arrayBuffer:"ArrayBuffer"in e},m=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];c.prototype.clone=function(){return new c(this)},u.call(c.prototype),u.call(p.prototype),p.prototype.clone=function(){return new p(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new r(this.headers),url:this.url})},p.error=function(){var e=new p(null,{status:0,statusText:""});return e.type="error",e};var y=[301,302,303,307,308];p.redirect=function(e,t){if(-1===y.indexOf(t))throw new RangeError("Invalid status code");return new p(null,{status:t,headers:{location:e}})},e.Headers=r,e.Request=c,e.Response=p,e.fetch=function(e,t){return new Promise(function(n,r){function o(){return"responseURL"in i?i.responseURL:/^X-Request-URL:/m.test(i.getAllResponseHeaders())?i.getResponseHeader("X-Request-URL"):void 0}var a;a=c.prototype.isPrototypeOf(e)&&!t?e:new c(e,t);var i=new XMLHttpRequest;i.onload=function(){var e=1223===i.status?204:i.status;if(e<100||e>599)return void r(new TypeError("Network request failed"));var t={status:e,statusText:i.statusText,headers:d(i),url:o()},a="response"in i?i.response:i.responseText;n(new p(a,t))},i.onerror=function(){r(new TypeError("Network request failed"))},i.ontimeout=function(){r(new TypeError("Network request failed"))},i.open(a.method,a.url,!0),"include"===a.credentials&&(i.withCredentials=!0),"responseType"in i&&h.blob&&(i.responseType="blob"),a.headers.forEach(function(e,t){i.setRequestHeader(t,e)}),i.send(void 0===a._bodyInit?null:a._bodyInit)})},e.fetch.polyfill=!0}}("undefined"!=typeof self?self:void 0)},function(e,t,n){"use strict";function r(){}function o(){}var a=n(39);o.resetWarningCache=r,e.exports=function(){function e(e,t,n,r,o,i){if(i!==a){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:r};return n.PropTypes=n,n}},function(e,t,n){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var l=function(){function e(e,t){for(var n=0;n480}},{key:"toggleTracklist",value:function(){this.setState(function(e){return{isTrackListOpen:!e.isTrackListOpen}})}},{key:"render",value:function(){var e=this,t=this.state.isTrackListOpen,n=this.props,r=n.tracks,o=n.playStatus,a=n.activeIndex,i=n.volume,l=n.position,c=n.duration,f=n.playbackRate,d=n.shuffle,m=n.shuffleEnabled,v=n.currentTrack,b=n.playTrack,_=n.togglePlay,w=n.nextTrack,O=n.prevTrack,P=n.setPosition,M=n.setVolume,N=n.setPlaybackRate,R=n.toggleTracklistCycling,A=n.cycleTracks,D=n.toggleShuffle,F=n.allowTracklistToggle,H=n.allowTracklistLoop,j=n.allowPlaybackRate,U=n.allowTrackLoop,z=n.setTrackCycling,B=n.reverseTrackOrder,V=n.displayTrackNo,W=n.displayTracklistCovers,q=n.displayActiveCover,Q=n.displayCredits,Y=n.limitTracklistHeight,$=n.tracklistHeight,G=n.displayBuyButtons,K=n.buyButtonsTarget,X=n.displayArtistNames,J=n.maxWidth,Z=n.repeatingTrackIndex,ee=n.skipAmount,te=n.skipPosition,ne=n.countdownTimerByDefault,re=n.buffering,oe=(0,y.default)({"ai-wrap":!0,"ai-type-full":!0,"ai-is-loading":!r.length,"ai-narrow":this.isNarrowContext(),"ai-with-typography":!(0,I.default)()}),ae=(0,y.default)({"ai-audio-control":!0,"ai-audio-playing":o===p.default.status.PLAYING,"ai-audio-loading":re});return s.default.createElement("div",{ref:function(t){return e.root=t},className:oe,style:{maxWidth:J}},s.default.createElement("div",{className:"ai-control-wrap"},q&&s.default.createElement(x.default,{className:"ai-thumb ai-control-wrap-thumb",src:v.cover,alt:v.title}),s.default.createElement("div",{className:"ai-control-wrap-controls"},s.default.createElement("div",{className:"ai-audio-controls-main"},s.default.createElement(E.default,{onClick:_,className:ae,ariaLabel:o===p.default.status.PLAYING?(0,h.sprintf)(aiStrings.pause_title,v.title):(0,h.sprintf)(aiStrings.play_title,v.title),ariaPressed:o===p.default.status.PLAYING},o===p.default.status.PLAYING?s.default.createElement(C.PauseIcon,null):s.default.createElement(C.PlayIcon,null),s.default.createElement("span",{className:"ai-control-spinner"})),s.default.createElement("div",{className:"ai-track-info"},s.default.createElement("p",{className:"ai-track-title"},s.default.createElement("span",null,v.title)),(0===r.length||v.subtitle)&&X&&s.default.createElement("p",{className:"ai-track-subtitle"},s.default.createElement("span",null,v.subtitle)))),s.default.createElement("div",{className:"ai-audio-controls-progress"},s.default.createElement(k.default,{setPosition:P,duration:c,position:l}),s.default.createElement(T.default,{duration:c,position:l,countdown:ne})),s.default.createElement("div",{className:"ai-audio-controls-meta"},r.length>1&&s.default.createElement(E.default,{className:"ai-btn ai-tracklist-prev",onClick:O,ariaLabel:aiStrings.previous,title:aiStrings.previous},s.default.createElement(C.PreviousIcon,null)),r.length>1&&s.default.createElement(E.default,{className:"ai-btn ai-tracklist-next",onClick:w,ariaLabel:aiStrings.next,title:aiStrings.next},s.default.createElement(C.NextIcon,null)),s.default.createElement(S.default,{volume:i,setVolume:M}),H&&s.default.createElement(E.default,{className:"ai-btn ai-btn-repeat "+(A&&"ai-btn-active"),onClick:R,ariaLabel:aiStrings.toggle_list_repeat},s.default.createElement(C.RefreshIcon,null)),m&&s.default.createElement(E.default,{className:"ai-btn ai-btn-shuffle "+(d&&"ai-btn-active"),onClick:D,ariaLabel:aiStrings.shuffle},s.default.createElement(C.ShuffleIcon,null)),j&&s.default.createElement(E.default,{className:"ai-btn ai-btn-playback-rate",onClick:N,ariaLabel:aiStrings.set_playback_rate},s.default.createElement(u.Fragment,null,"×",f)),ee>0&&s.default.createElement(u.Fragment,null,s.default.createElement(E.default,{className:"ai-btn ai-btn-skip-position",onClick:function(){return te(-1)},ariaLabel:aiStrings.skip_backward},"-",ee,"s"),s.default.createElement(E.default,{className:"ai-btn ai-btn-skip-position",onClick:function(){return te(1)},ariaLabel:aiStrings.skip_forward},"+",ee,"s")),v&&v.lyrics&&!t&&s.default.createElement(L.AppContext.Consumer,null,function(e){var t=e.toggleLyricsModal;return s.default.createElement(E.default,{className:"ai-btn ai-lyrics",onClick:function(){return t(!0,v)},ariaLabel:aiStrings.open_track_lyrics,title:aiStrings.open_track_lyrics},s.default.createElement(C.LyricsIcon,null))}),F&&s.default.createElement(E.default,{className:"ai-btn ai-tracklist-toggle",onClick:this.toggleTracklist,ariaLabel:aiStrings.toggle_list_visible,ariaExpanded:t},s.default.createElement(C.PlaylistIcon,null))))),s.default.createElement("div",{className:"ai-tracklist-wrap "+(t?"ai-tracklist-open":"")},s.default.createElement(g.default,{className:"ai-tracklist",trackClassName:"ai-track",tracks:r,activeTrackIndex:a,isOpen:t,displayTrackNo:V,displayCovers:W,displayBuyButtons:G,buyButtonsTarget:K,displayArtistNames:X,reverseTrackOrder:B,limitTracklistHeight:Y,tracklistHeight:$,onTrackClick:b,onTrackLoop:U?z:void 0,repeatingTrackIndex:Z})),Q&&s.default.createElement("div",{className:"ai-footer"},s.default.createElement("p",null,"Powered by"," ",s.default.createElement("a",{href:"https://www.cssigniter.com/plugins/audioigniter?utm_source=player&utm_medium=link&utm_content=audioigniter&utm_campaign=footer-link",target:"_blank",rel:"noopener noreferrer"},"AudioIgniter"))))}}]),t}(s.default.Component);A.propTypes={tracks:f.default.arrayOf(f.default.object),playStatus:f.default.oneOf([p.default.status.PLAYING,p.default.status.PAUSED,p.default.status.STOPPED]),activeIndex:f.default.number,volume:f.default.number,position:f.default.number,duration:f.default.number,currentTrack:f.default.object.isRequired,playTrack:f.default.func.isRequired,togglePlay:f.default.func.isRequired,nextTrack:f.default.func.isRequired,prevTrack:f.default.func.isRequired,setPosition:f.default.func.isRequired,setVolume:f.default.func.isRequired,toggleTracklistCycling:f.default.func.isRequired,setTrackCycling:f.default.func.isRequired,cycleTracks:f.default.bool.isRequired,displayTracklist:f.default.bool,allowTracklistToggle:f.default.bool,allowTracklistLoop:f.default.bool,allowTrackLoop:f.default.bool,reverseTrackOrder:f.default.bool,displayTrackNo:f.default.bool,displayCredits:f.default.bool,displayActiveCover:f.default.bool,displayTracklistCovers:f.default.bool,limitTracklistHeight:f.default.bool,tracklistHeight:f.default.number,displayBuyButtons:f.default.bool,buyButtonsTarget:f.default.bool,displayArtistNames:f.default.bool,maxWidth:f.default.string,repeatingTrackIndex:f.default.number,playbackRate:f.default.number,setPlaybackRate:f.default.func,skipAmount:f.default.number,skipPosition:f.default.func.isRequired,countdownTimerByDefault:f.default.bool,allowPlaybackRate:f.default.bool,buffering:f.default.bool,shuffleEnabled:f.default.bool,shuffle:f.default.bool,toggleShuffle:f.default.func.isRequired},t.default=(0,N.default)(A,{onFinishedPlaying:function(e){var t=e.repeatingTrackIndex,n=e.cycleTracks,r=e.nextTrack,o=e.activeIndex,a=e.playTrack,i=e.trackQueue;return null!=t?void a(t):n?void r():void(o!==i[i.length-1]&&r())}})},function(e,t,n){"use strict";"function"==typeof Symbol&&Symbol.iterator;e.exports=n(42)()},function(e,t,n){"use strict";var r=n(8),o=n(9);e.exports=function(){function e(){o(!1,"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types")}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t};return n.checkPropTypes=r,n.PropTypes=n,n}},function(e,t,n){"use strict";(function(e){var r,o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};!function(a,i){function l(e,t){function n(e){return de.preferFlash&&ie&&!de.ignoreFlash&&de.flash[e]!==i&&de.flash[e]}function r(e){return function(t){var n=this._s;return n&&n._a?e.call(this,t):null}}this.setupOptions={url:e||null,flashVersion:8,debugMode:!0,debugFlash:!1,useConsole:!0,consoleOnly:!0,waitForWindowLoad:!1,bgColor:"#ffffff",useHighPerformance:!1,flashPollingInterval:null,html5PollingInterval:null,flashLoadTimeout:1e3,wmode:null,allowScriptAccess:"always",useFlashBlock:!1,useHTML5Audio:!0,forceUseGlobalHTML5Audio:!1,ignoreMobileRestrictions:!1,html5Test:/^(probably|maybe)$/i,preferFlash:!1,noSWFCache:!1,idPrefix:"sound"},this.defaultOptions={autoLoad:!1,autoPlay:!1,from:null,loops:1,onid3:null,onerror:null,onload:null,whileloading:null,onplay:null,onpause:null,onresume:null,whileplaying:null,onposition:null,onstop:null,onfinish:null,multiShot:!0,multiShotEvents:!1,position:null,pan:0,playbackRate:1,stream:!0,to:null,type:null,usePolicyFile:!1,volume:100},this.flash9Options={onfailure:null,isMovieStar:null,usePeakData:!1,useWaveformData:!1,useEQData:!1,onbufferchange:null,ondataerror:null},this.movieStarOptions={bufferTime:3,serverURL:null,onconnect:null,duration:null},this.audioFormats={mp3:{type:['audio/mpeg; codecs="mp3"',"audio/mpeg","audio/mp3","audio/MPA","audio/mpa-robust"],required:!0},mp4:{related:["aac","m4a","m4b"],type:['audio/mp4; codecs="mp4a.40.2"',"audio/aac","audio/x-m4a","audio/MP4A-LATM","audio/mpeg4-generic"],required:!1},ogg:{type:["audio/ogg; codecs=vorbis"],required:!1},opus:{type:["audio/ogg; codecs=opus","audio/opus"],required:!1},wav:{type:['audio/wav; codecs="1"',"audio/wav","audio/wave","audio/x-wav"],required:!1},flac:{type:["audio/flac"],required:!1}},this.movieID="sm2-container",this.id=t||"sm2movie",this.debugID="soundmanager-debug",this.debugURLParam=/([#?&])debug=1/i,this.versionNumber="V2.97a.20170601",this.version=null,this.movieURL=null,this.altURL=null,this.swfLoaded=!1,this.enabled=!1,this.oMC=null,this.sounds={},this.soundIDs=[],this.muted=!1,this.didFlashBlock=!1,this.filePattern=null,this.filePatterns={flash8:/\.mp3(\?.*)?$/i,flash9:/\.mp3(\?.*)?$/i},this.features={buffering:!1,peakData:!1,waveformData:!1,eqData:!1,movieStar:!1},this.sandbox={},this.html5={usingFlash:null},this.flash={},this.html5Only=!1,this.ignoreFlash=!1;var l,u,s,c,f,d,p,h,m,y,v,g,b,k,_,T,w,S,O,E,P,x,C,M,N,L,R,I,A,D,F,H,j,U,z,B,V,W,q,Q,Y,$,G,K,X,J,Z,ee,te,ne,re,oe,ae,ie,le,ue,se,ce,fe,de=this,pe=null,he=null,me=navigator.userAgent,ye=a.location.href.toString(),ve=document,ge=[],be=!1,ke=!1,_e=!1,Te=!1,we=!1,Se=null,Oe=null,Ee=!1,Pe=!1,xe=0,Ce=null,Me=[],Ne=null,Le=Array.prototype.slice,Re=!1,Ie=0,Ae=me.match(/(ipad|iphone|ipod)/i),De=me.match(/android/i),Fe=me.match(/msie|trident/i),He=me.match(/webkit/i),je=me.match(/safari/i)&&!me.match(/chrome/i),Ue=me.match(/opera/i),ze=me.match(/(mobile|pre\/|xoom)/i)||Ae||De,Be=!ye.match(/usehtml5audio/i)&&!ye.match(/sm2-ignorebadua/i)&&je&&!me.match(/silk/i)&&me.match(/OS\sX\s10_6_([3-7])/i),Ve=(a.console!==i&&console.log,ve.hasFocus!==i?ve.hasFocus():null),We=je&&(ve.hasFocus===i||!ve.hasFocus()),qe=!We,Qe=/(mp3|mp4|mpa|m4a|m4b)/i,Ye=ve.location?ve.location.protocol.match(/http/i):null,$e=Ye?"":"//",Ge=/^\s*audio\/(?:x-)?(?:mpeg4|aac|flv|mov|mp4|m4v|m4a|m4b|mp4v|3gp|3g2)\s*(?:$|;)/i,Ke=["mpeg4","aac","flv","mov","mp4","m4v","f4v","m4a","m4b","mp4v","3gp","3g2"],Xe=new RegExp("\\.("+Ke.join("|")+")(\\?.*)?$","i");this.mimePattern=/^\s*audio\/(?:x-)?(?:mp(?:eg|3))\s*(?:$|;)/i,this.useAltURL=!Ye,z={swfBox:"sm2-object-box",swfDefault:"movieContainer",swfError:"swf_error",swfTimedout:"swf_timedout",swfLoaded:"swf_loaded",swfUnblocked:"swf_unblocked",sm2Debug:"sm2_debug",highPerf:"high_performance",flashDebug:"flash_debug"},Z=[null,"MEDIA_ERR_ABORTED","MEDIA_ERR_NETWORK","MEDIA_ERR_DECODE","MEDIA_ERR_SRC_NOT_SUPPORTED"],this.hasHTML5=function(){try{return Audio!==i&&(Ue&&opera!==i&&opera.version()<10?new Audio(null):new Audio).canPlayType!==i}catch(e){return!1}}(),this.setup=function(e){var t=!de.url;return e!==i&&_e&&Ne&&de.ok()&&(e.flashVersion!==i||e.url!==i||e.html5Test),m(e),Re||(ze?de.setupOptions.ignoreMobileRestrictions&&!de.setupOptions.forceUseGlobalHTML5Audio||(Me.push(O.globalHTML5),Re=!0):de.setupOptions.forceUseGlobalHTML5Audio&&(Me.push(O.globalHTML5),Re=!0)),!fe&&ze&&(de.setupOptions.ignoreMobileRestrictions?Me.push(O.ignoreMobile):(de.setupOptions.useHTML5Audio=!0,de.setupOptions.preferFlash=!1,Ae?de.ignoreFlash=!0:(De&&!me.match(/android\s2\.3/i)||!De)&&(Re=!0))),e&&(t&&C&&e.url!==i&&de.beginDelayedInit(),C||e.url===i||"complete"!==ve.readyState||setTimeout(P,1)),fe=!0,de},this.ok=function(){return Ne?_e&&!Te:de.useHTML5Audio&&de.hasHTML5},this.supported=this.ok,this.getMovie=function(e){return u(e)||ve[e]||a[e]},this.createSound=function(e,t){function n(){return r=B(r),de.sounds[r.id]=new l(r),de.soundIDs.push(r.id),de.sounds[r.id]}var r,o=null;if(!_e||!de.ok())return!1;if(t!==i&&(e={id:e,url:t}),r=h(e),r.url=$(r.url),r.id===i&&(r.id=de.setupOptions.idPrefix+Ie++),W(r.id,!0))return de.sounds[r.id];if(X(r))o=n(),o._setup_html5(r);else{if(de.html5Only)return n();if(de.html5.usingFlash&&r.url&&r.url.match(/data:/i))return n();d>8&&null===r.isMovieStar&&(r.isMovieStar=!!(r.serverURL||r.type&&r.type.match(Ge)||r.url&&r.url.match(Xe))),r=V(r,void 0),o=n(),8===d?he._createSound(r.id,r.loops||1,r.usePolicyFile):(he._createSound(r.id,r.url,r.usePeakData,r.useWaveformData,r.useEQData,r.isMovieStar,!!r.isMovieStar&&r.bufferTime,r.loops||1,r.serverURL,r.duration||null,r.autoPlay,!0,r.autoLoad,r.usePolicyFile),r.serverURL||(o.connected=!0,r.onconnect&&r.onconnect.apply(o))),r.serverURL||!r.autoLoad&&!r.autoPlay||o.load(r)}return!r.serverURL&&r.autoPlay&&o.play(),o},this.destroySound=function(e,t){if(!W(e))return!1;var n,r=de.sounds[e];for(r.stop(),r._iO={},r.unload(),n=0;n=0;e--)de.sounds[de.soundIDs[e]].pause()},this.resume=function(e){return!!W(e)&&de.sounds[e].resume()},this.resumeAll=function(){var e;for(e=de.soundIDs.length-1;e>=0;e--)de.sounds[de.soundIDs[e]].resume()},this.togglePause=function(e){return!!W(e)&&de.sounds[e].togglePause()},this.setPan=function(e,t){return!!W(e)&&de.sounds[e].setPan(t)},this.setVolume=function(e,t){var n,r;if(e!==i&&!isNaN(e)&&t===i){for(n=0,r=de.soundIDs.length;n=0;t--)de.sounds[de.soundIDs[t]].mute();return de.muted=!0,!0},this.muteAll=function(){de.mute()},this.unmute=function(e){var t;if(e instanceof String&&(e=null),e)return!!W(e)&&de.sounds[e].unmute();for(t=de.soundIDs.length-1;t>=0;t--)de.sounds[de.soundIDs[t]].unmute();return de.muted=!1,!0},this.unmuteAll=function(){de.unmute()},this.toggleMute=function(e){return!!W(e)&&de.sounds[e].toggleMute()},this.getMemoryUse=function(){var e=0;return he&&8!==d&&(e=parseInt(he._getMemoryUse(),10)),e},this.disable=function(e){var t;if(e===i&&(e=!1),Te)return!1;for(Te=!0,t=de.soundIDs.length-1;t>=0;t--)A(de.sounds[de.soundIDs[t]]);return A(de),p(e),oe.remove(a,"load",b),!0},this.canPlayMIME=function(e){var t;return de.hasHTML5&&(t=J({type:e})),!t&&Ne&&(t=e&&de.ok()?!!((d>8?e.match(Ge):null)||e.match(de.mimePattern)):null),t},this.canPlayURL=function(e){var t;return de.hasHTML5&&(t=J({url:e})),!t&&Ne&&(t=e&&de.ok()?!!e.match(de.filePattern):null),t},this.canPlayLink=function(e){return!(e.type===i||!e.type||!de.canPlayMIME(e.type))||de.canPlayURL(e.href)},this.getSoundById=function(e,t){return e?de.sounds[e]:null},this.onready=function(e,t){var n=!1;if("function"!=typeof e)throw H("needFunction","onready");return t||(t=a),v("onready",e,t),g(),n=!0,n},this.ontimeout=function(e,t){var n=!1;if("function"!=typeof e)throw H("needFunction","ontimeout");return t||(t=a),v("ontimeout",e,t),g({type:"ontimeout"}),n=!0,n},this._writeDebug=function(e,t){return!0},this._wD=this._writeDebug,this._debug=function(){},this.reboot=function(e,t){var n,r,o;for(n=de.soundIDs.length-1;n>=0;n--)de.sounds[de.soundIDs[n]].destruct();if(he)try{Fe&&(Oe=he.innerHTML),Se=he.parentNode.removeChild(he)}catch(e){}if(Oe=Se=Ne=he=null,de.enabled=C=_e=Ee=Pe=be=ke=Te=Re=de.swfLoaded=!1,de.soundIDs=[],de.sounds={},Ie=0,fe=!1,e)ge=[];else for(n in ge)if(ge.hasOwnProperty(n))for(r=0,o=ge[n].length;r0&&p.position===p.duration&&(e.position=0),p.paused&&p.position>=0&&(!p._iO.serverURL||p.position>0)?p.resume():(p._iO=h(e,p._iO),(!p.isHTML5&&null!==p._iO.position&&p._iO.position>0||null!==p._iO.from&&p._iO.from>0||null!==p._iO.to)&&0===p.instanceCount&&0===p.playState&&!p._iO.serverURL&&(r=function(){p._iO=h(e,p._iO),p.play(p._iO)},p.isHTML5&&!p._html5_canplay?p.load({_oncanplay:r}):p.isHTML5||p.loaded||p.readyState&&2===p.readyState||p.load({onload:r}),p._iO=s()),(!p.instanceCount||p._iO.multiShotEvents||p.isHTML5&&p._iO.multiShot&&!Re||!p.isHTML5&&d>8&&!p.getAutoPlay())&&p.instanceCount++,p._iO.onposition&&0===p.playState&&l(p),p.playState=1,p.paused=!1,p.position=p._iO.position===i||isNaN(p._iO.position)?0:p._iO.position,p.isHTML5||(p._iO=V(B(p._iO))),p._iO.onplay&&t&&(p._iO.onplay.apply(p),m=!0),p.setVolume(p._iO.volume,!0),p.setPan(p._iO.pan,!0),1!==p._iO.playbackRate&&p.setPlaybackRate(p._iO.playbackRate),p.isHTML5?p.instanceCount<2?(a(),n=p._setup_html5(),p.setPosition(p._iO.position),n.play()):(o=new Audio(p._iO.url),u=function(){oe.remove(o,"ended",u),p._onfinish(p),te(o),o=null},c=function(){oe.remove(o,"canplay",c);try{o.currentTime=p._iO.position/1e3}catch(e){}o.play()},oe.add(o,"ended",u),p._iO.volume!==i&&(o.volume=Math.max(0,Math.min(1,p._iO.volume/100))),p.muted&&(o.muted=!0),p._iO.position?oe.add(o,"canplay",c):o.play()):(y=he._start(p.id,p._iO.loops||1,9===d?p.position:p.position/1e3,p._iO.multiShot||!1),9!==d||y||p._iO.onplayerror&&p._iO.onplayerror.apply(p))),p},this.start=this.play,this.stop=function(e){var t,n=p._iO;return 1===p.playState&&(p._onbufferchange(0),p._resetOnPosition(0),p.paused=!1,p.isHTML5||(p.playState=0),u(),n.to&&p.clearOnPosition(n.to),p.isHTML5?p._a&&(t=p.position,p.setPosition(0),p.position=t,p._a.pause(),p.playState=0,p._onTimer(),o()):(he._stop(p.id,e),n.serverURL&&p.unload()),p.instanceCount=0,p._iO={},n.onstop&&n.onstop.apply(p)),p},this.setAutoPlay=function(e){p._iO.autoPlay=e,p.isHTML5||(he._setAutoPlay(p.id,e),e&&(p.instanceCount||1!==p.readyState||p.instanceCount++))},this.getAutoPlay=function(){return p._iO.autoPlay},this.setPlaybackRate=function(e){var t=Math.max(.5,Math.min(4,e));if(p.isHTML5)try{p._iO.playbackRate=t,p._a.playbackRate=t}catch(e){}return p},this.setPosition=function(e){e===i&&(e=0);var t,n,r=p.isHTML5?Math.max(e,0):Math.min(p.duration||p._iO.duration,Math.max(e,0));if(p.position=r,n=p.position/1e3,p._resetOnPosition(p.position),p._iO.position=r,p.isHTML5){if(p._a){if(p._html5_canplay){if(p._a.currentTime.toFixed(3)!==n.toFixed(3))try{p._a.currentTime=n,(0===p.playState||p.paused)&&p._a.pause()}catch(e){}}else if(n)return p;p.paused&&p._onTimer(!0)}}else t=9===d?p.position:n,p.readyState&&2!==p.readyState&&he._setPosition(p.id,t,p.paused||!p.playState,p._iO.multiShot);return p},this.pause=function(e){return p.paused||0===p.playState&&1!==p.readyState?p:(p.paused=!0,p.isHTML5?(p._setup_html5().pause(),o()):(e||e===i)&&he._pause(p.id,p._iO.multiShot),p._iO.onpause&&p._iO.onpause.apply(p),p)},this.resume=function(){var e=p._iO;return p.paused?(p.paused=!1,p.playState=1,p.isHTML5?(p._setup_html5().play(),a()):(e.isMovieStar&&!e.serverURL&&p.setPosition(p.position),he._pause(p.id,e.multiShot)),!m&&e.onplay?(e.onplay.apply(p),m=!0):e.onresume&&e.onresume.apply(p),p):p},this.togglePause=function(){return 0===p.playState?(p.play({position:9!==d||p.isHTML5?p.position/1e3:p.position}),p):(p.paused?p.resume():p.pause(),p)},this.setPan=function(e,t){return e===i&&(e=0),t===i&&(t=!1),p.isHTML5||he._setPan(p.id,e),p._iO.pan=e,t||(p.pan=e,p.options.pan=e),p},this.setVolume=function(e,t){return e===i&&(e=100),t===i&&(t=!1),p.isHTML5?p._a&&(de.muted&&!p.muted&&(p.muted=!0,p._a.muted=!0),p._a.volume=Math.max(0,Math.min(1,e/100))):he._setVolume(p.id,de.muted&&!p.muted||p.muted?0:e),p._iO.volume=e,t||(p.volume=e,p.options.volume=e),p},this.mute=function(){return p.muted=!0,p.isHTML5?p._a&&(p._a.muted=!0):he._setVolume(p.id,0),p},this.unmute=function(){p.muted=!1;var e=p._iO.volume!==i;return p.isHTML5?p._a&&(p._a.muted=!1):he._setVolume(p.id,e?p._iO.volume:p.options.volume),p},this.toggleMute=function(){return p.muted?p.unmute():p.mute()},this.onPosition=function(e,t,n){return y.push({position:parseInt(e,10),method:t,scope:n!==i?n:p,fired:!1}),p},this.onposition=this.onPosition,this.clearOnPosition=function(e,t){var n;if(e=parseInt(e,10),!isNaN(e))for(n=0;n=n)return!1;for(e=n-1;e>=0;e--)t=y[e],!t.fired&&p.position>=t.position&&(t.fired=!0,v++,t.method.apply(t.scope,[t.position]),n=y.length);return!0},this._resetOnPosition=function(e){var t,n,r=y.length;if(!r)return!1;for(t=r-1;t>=0;t--)n=y[t],n.fired&&e<=n.position&&(n.fired=!1,v--);return!0},s=function(){var e,t,n=p._iO,r=n.from,o=n.to;return t=function(){p.clearOnPosition(o,t),p.stop()},e=function(){null===o||isNaN(o)||p.onPosition(o,t)},null===r||isNaN(r)||(n.position=r,n.multiShot=!1,e()),n},l=function(){var e,t=p._iO.onposition;if(t)for(e in t)t.hasOwnProperty(e)&&p.onPosition(parseInt(e,10),t[e])},u=function(){var e,t=p._iO.onposition;if(t)for(e in t)t.hasOwnProperty(e)&&p.clearOnPosition(parseInt(e,10))},a=function(){p.isHTML5&&q(p)},o=function(){p.isHTML5&&Q(p)},t=function(e){e||(y=[],v=0),m=!1,p._hasTimer=null,p._a=null,p._html5_canplay=!1,p.bytesLoaded=null,p.bytesTotal=null,p.duration=p._iO&&p._iO.duration?p._iO.duration:null,p.durationEstimate=null,p.buffered=[],p.eqData=[],p.eqData.left=[],p.eqData.right=[],p.failures=0,p.isBuffering=!1,p.instanceOptions={},p.instanceCount=0,p.loaded=!1,p.metadata={},p.readyState=0,p.muted=!1,p.paused=!1,p.peakData={left:0,right:0},p.waveformData={left:[],right:[]},p.playState=0,p.position=null,p.id3={}},t(),this._onTimer=function(e){var t,n,r=!1,o={};return(p._hasTimer||e)&&p._a&&(e||(p.playState>0||1===p.readyState)&&!p.paused)&&(t=p._get_html5_duration(),t!==c.duration&&(c.duration=t,p.duration=t,r=!0),p.durationEstimate=p.duration,n=1e3*p._a.currentTime||0,n!==c.time&&(c.time=n,r=!0),(r||e)&&p._whileplaying(n,o,o,o,o)),r},this._get_html5_duration=function(){var e=p._iO,t=p._a&&p._a.duration?1e3*p._a.duration:e&&e.duration?e.duration:null;return t&&!isNaN(t)&&t!==1/0?t:null},this._apply_loop=function(e,t){e.loop=t>1?"loop":""},this._setup_html5=function(e){var r,o=h(p._iO,e),a=Re?pe:p._a,i=decodeURI(o.url);if(Re?i===decodeURI(ae)&&(r=!0):i===decodeURI(g)&&(r=!0),a){if(a._s)if(Re)a._s&&a._s.playState&&!r&&a._s.stop();else if(!Re&&i===decodeURI(g))return p._apply_loop(a,o.loops),a;r||(g&&t(!1),a.src=o.url,p.url=o.url,g=o.url,ae=o.url,a._called_load=!1)}else o.autoLoad||o.autoPlay?(p._a=new Audio(o.url),p._a.load()):p._a=Ue&&opera.version()<10?new Audio(null):new Audio,a=p._a,a._called_load=!1,Re&&(pe=a);return p.isHTML5=!0,p._a=a,a._s=p,n(),p._apply_loop(a,o.loops),o.autoLoad||o.autoPlay?p.load():(a.autobuffer=!1,a.preload="auto"),a},n=function(){if(p._a._added_events)return!1;var e;p._a._added_events=!0;for(e in se)se.hasOwnProperty(e)&&function(e,t,n){p._a&&p._a.addEventListener(e,t,n||!1)}(e,se[e]);return!0},r=function(){var e;p._a._added_events=!1;for(e in se)se.hasOwnProperty(e)&&function(e,t,n){p._a&&p._a.removeEventListener(e,t,n||!1)}(e,se[e])},this._onload=function(e){var t=!!e||!p.isHTML5&&8===d&&p.duration;return p.loaded=t,p.readyState=t?3:2,p._onbufferchange(0),t||p.isHTML5||p._onerror(),p._iO.onload&&ce(p,function(){p._iO.onload.apply(p,[t])}),!0},this._onerror=function(e,t){p._iO.onerror&&ce(p,function(){p._iO.onerror.apply(p,[e,t])})},this._onbufferchange=function(e){return 0!==p.playState&&(!(e&&p.isBuffering||!e&&!p.isBuffering)&&(p.isBuffering=1===e,p._iO.onbufferchange&&p._iO.onbufferchange.apply(p,[e]),!0))},this._onsuspend=function(){return p._iO.onsuspend&&p._iO.onsuspend.apply(p),!0},this._onfailure=function(e,t,n){p.failures++,p._iO.onfailure&&1===p.failures&&p._iO.onfailure(e,t,n)},this._onwarning=function(e,t,n){p._iO.onwarning&&p._iO.onwarning(e,t,n)},this._onfinish=function(){var e=p._iO.onfinish;p._onbufferchange(0),p._resetOnPosition(0),p.instanceCount&&(p.instanceCount--,p.instanceCount||(u(),p.playState=0,p.paused=!1,p.instanceCount=0,p.instanceOptions={},p._iO={},o(),p.isHTML5&&(p.position=0)),p.instanceCount&&!p._iO.multiShotEvents||e&&ce(p,function(){e.apply(p)}))},this._whileloading=function(e,t,n,r){var o=p._iO;p.bytesLoaded=e,p.bytesTotal=t,p.duration=Math.floor(n),p.bufferLength=r,p.isHTML5||o.isMovieStar?p.durationEstimate=p.duration:o.duration?p.durationEstimate=p.duration>o.duration?p.duration:o.duration:p.durationEstimate=parseInt(p.bytesTotal/p.bytesLoaded*p.duration,10),p.isHTML5||(p.buffered=[{start:0,end:p.duration}]),(3!==p.readyState||p.isHTML5)&&o.whileloading&&o.whileloading.apply(p)},this._whileplaying=function(e,t,n,r,o){var a,l=p._iO;return!isNaN(e)&&null!==e&&(p.position=Math.max(0,e),p._processOnPosition(),!p.isHTML5&&d>8&&(l.usePeakData&&t!==i&&t&&(p.peakData={left:t.leftPeak,right:t.rightPeak}),l.useWaveformData&&n!==i&&n&&(p.waveformData={left:n.split(","),right:r.split(",")}),l.useEQData&&o!==i&&o&&o.leftEQ&&(a=o.leftEQ.split(","),p.eqData=a,p.eqData.left=a,o.rightEQ!==i&&o.rightEQ&&(p.eqData.right=o.rightEQ.split(",")))),1===p.playState&&(p.isHTML5||8!==d||p.position||!p.isBuffering||p._onbufferchange(0),l.whileplaying&&l.whileplaying.apply(p)),!0)},this._oncaptiondata=function(e){p.captiondata=e,p._iO.oncaptiondata&&p._iO.oncaptiondata.apply(p,[e])},this._onmetadata=function(e,t){var n,r,o={};for(n=0,r=e.length;n0&&p._iO.ondataerror&&p._iO.ondataerror.apply(p)}},M=function(){return ve.body||ve.getElementsByTagName("div")[0]},u=function(e){return ve.getElementById(e)},h=function(e,t){var n,r,a=e||{};n=t===i?de.defaultOptions:t;for(r in n)n.hasOwnProperty(r)&&a[r]===i&&("object"!==o(n[r])||null===n[r]?a[r]=n[r]:a[r]=h(a[r],n[r]));return a},ce=function(e,t){e.isHTML5||8!==d?t():a.setTimeout(t,0)},y={onready:1,ontimeout:1,defaultOptions:1,flash9Options:1,movieStarOptions:1},m=function(e,t){var n,r=!0,a=t!==i,l=de.setupOptions,u=y;for(n in e)if(e.hasOwnProperty(n))if("object"!==o(e[n])||null===e[n]||e[n]instanceof Array||e[n]instanceof RegExp)a&&u[t]!==i?de[t][n]=e[n]:l[n]!==i?(de.setupOptions[n]=e[n],de[n]=e[n]):u[n]===i?r=!1:de[n]instanceof Function?de[n].apply(de,e[n]instanceof Array?e[n]:[e[n]]):de[n]=e[n];else{if(u[n]!==i)return m(e[n],n);r=!1}return r},oe=function(){function e(e){var t=Le.call(e),n=t.length;return o?(t[1]="on"+t[1],n>3&&t.pop()):3===n&&t.push(!1),t}function t(e,t){var n=e.shift(),r=[i[t]];o?n[r](e[0],e[1]):n[r].apply(n,e)}function n(){t(e(arguments),"add")}function r(){t(e(arguments),"remove")}var o=a.attachEvent,i={add:o?"attachEvent":"addEventListener",remove:o?"detachEvent":"removeEventListener"};return{add:n,remove:r}}(),se={abort:r(function(){}),canplay:r(function(){var e,t=this._s;if(!t._html5_canplay){if(t._html5_canplay=!0,t._onbufferchange(0),e=t._iO.position===i||isNaN(t._iO.position)?null:t._iO.position/1e3,this.currentTime!==e)try{this.currentTime=e}catch(e){}t._iO._oncanplay&&t._iO._oncanplay()}}),canplaythrough:r(function(){var e=this._s;e.loaded||(e._onbufferchange(0),e._whileloading(e.bytesLoaded,e.bytesTotal,e._get_html5_duration()),e._onload(!0))}),durationchange:r(function(){var e,t=this._s;e=t._get_html5_duration(),isNaN(e)||e===t.duration||(t.durationEstimate=t.duration=e)}),ended:r(function(){this._s._onfinish()}),error:r(function(){var e=Z[this.error.code]||null;this._s._onload(!1),this._s._onerror(this.error.code,e)}),loadeddata:r(function(){var e=this._s;e._loaded||je||(e.duration=e._get_html5_duration())}),loadedmetadata:r(function(){}),loadstart:r(function(){this._s._onbufferchange(1)}),play:r(function(){this._s._onbufferchange(0)}),playing:r(function(){this._s._onbufferchange(0)}),progress:r(function(e){var t,n,r=this._s,o=0,a=(e.type,e.target.buffered),i=e.loaded||0,l=e.total||1;if(r.buffered=[],a&&a.length){for(t=0,n=a.length;t=0;o--)l["audio/"+r[t].related[o]]=l[t],de.html5[r[t].related[o]]=l[t],de.flash[r[t].related[o]]=l[t];return l.canPlayType=a?e:null,de.html5=h(de.html5,l),de.html5.usingFlash=K(),Ne=de.html5.usingFlash,!0},O={},H=function(){},B=function(e){return 8===d&&e.loops>1&&e.stream&&(e.stream=!1),e},V=function(e,t){return e&&!e.usePolicyFile&&(e.onid3||e.usePeakData||e.useWaveformData||e.useEQData)&&(e.usePolicyFile=!0),e},s=function(){return!1},A=function(e){var t;for(t in e)e.hasOwnProperty(t)&&"function"==typeof e[t]&&(e[t]=s);t=null},D=function(e){e===i&&(e=!1),(Te||e)&&de.disable(e)},F=function(e){var t;if(e)if(e.match(/\.swf(\?.*)?$/i)){if(e.substr(e.toLowerCase().lastIndexOf(".swf?")+4))return e}else e.lastIndexOf("/")!==e.length-1&&(e+="/");return t=(e&&-1!==e.lastIndexOf("/")?e.substr(0,e.lastIndexOf("/")+1):"./")+de.movieURL,de.noSWFCache&&(t+="?ts="+(new Date).getTime()),t},w=function(){8!==(d=parseInt(de.flashVersion,10))&&9!==d&&(de.flashVersion=d=8);var e=de.debugMode||de.debugFlash?"_debug.swf":".swf";de.useHTML5Audio&&!de.html5Only&&de.audioFormats.mp4.required&&d<9&&(de.flashVersion=d=9),de.version=de.versionNumber+(de.html5Only?" (HTML5-only mode)":9===d?" (AS3/Flash 9)":" (AS2/Flash 8)"),d>8?(de.defaultOptions=h(de.defaultOptions,de.flash9Options),de.features.buffering=!0,de.defaultOptions=h(de.defaultOptions,de.movieStarOptions),de.filePatterns.flash9=new RegExp("\\.(mp3|"+Ke.join("|")+")(\\?.*)?$","i"),de.features.movieStar=!0):de.features.movieStar=!1,de.filePattern=de.filePatterns[8!==d?"flash9":"flash8"],de.movieURL=(8===d?"soundmanager2.swf":"soundmanager2_flash9.swf").replace(".swf",e),de.features.peakData=de.features.waveformData=de.features.eqData=d>8},R=function(e,t){he&&he._setPolling(e,t)},I=function(){},W=this.getSoundById,U=function(){var e=[];return de.debugMode&&e.push(z.sm2Debug),de.debugFlash&&e.push(z.flashDebug),de.useHighPerformance&&e.push(z.highPerf),e.join(" ")},j=function(){var e=(H("fbHandler"),de.getMoviePercent()),t=z,n={type:"FLASHBLOCK"};de.html5Only||(de.ok()?de.oMC&&(de.oMC.className=[U(),t.swfDefault,t.swfLoaded+(de.didFlashBlock?" "+t.swfUnblocked:"")].join(" ")):(Ne&&(de.oMC.className=U()+" "+t.swfDefault+" "+(null===e?t.swfTimedout:t.swfError)),de.didFlashBlock=!0,g({type:"ontimeout",ignoreInit:!0,error:n}),L(n)))},v=function(e,t,n){ge[e]===i&&(ge[e]=[]),ge[e].push({method:t,scope:n||null,fired:!1})},g=function(e){if(e||(e={type:de.ok()?"onready":"ontimeout"}),!_e&&e&&!e.ignoreInit)return!1;if("ontimeout"===e.type&&(de.ok()||Te&&!e.ignoreInit))return!1;var t,n,r={success:e&&e.ignoreInit?de.ok():!Te},o=e&&e.type?ge[e.type]||[]:[],a=[],i=[r],l=Ne&&!de.ok();for(e.error&&(i[0].error=e.error),t=0,n=o.length;t=0;e--)de.sounds[de.soundIDs[e]].isHTML5&&de.sounds[de.soundIDs[e]]._hasTimer&&de.sounds[de.soundIDs[e]]._onTimer()},L=function(e){e=e!==i?e:{},"function"==typeof de.onerror&&de.onerror.apply(a,[{type:e.type!==i?e.type:null}]),e.fatal!==i&&e.fatal&&de.disable()},ue=function(){if(Be&&le()){var e,t,n=de.audioFormats;for(t in n)if(n.hasOwnProperty(t)&&("mp3"===t||"mp4"===t)&&(de.html5[t]=!1,n[t]&&n[t].related))for(e=n[t].related.length-1;e>=0;e--)de.html5[n[t].related[e]]=!1}},this._setSandboxType=function(e){},this._externalInterfaceOK=function(e){if(!de.swfLoaded){de.swfLoaded=!0,We=!1,Be&&ue(),setTimeout(f,Fe?100:1)}},N=function(e,t){function n(e,t){return''}if(be&&ke)return!1;if(de.html5Only)return w(),de.oMC=u(de.movieID),f(),be=!0,ke=!0,!1;var r,o,a,l,s,c,d,p,h=t||de.url,m=de.altURL||h,y=M(),v=U(),g=null,b=ve.getElementsByTagName("html")[0];if(g=b&&b.dir&&b.dir.match(/rtl/i),e=e===i?de.id:e,w(),de.url=F(Ye?h:m),t=de.url,de.wmode=!de.wmode&&de.useHighPerformance?"transparent":de.wmode,null!==de.wmode&&(me.match(/msie 8/i)||!Fe&&!de.useHighPerformance)&&navigator.platform.match(/win32|win64/i)&&(Me.push(O.spcWmode),de.wmode=null),r={name:e,id:e,src:t,quality:"high",allowScriptAccess:de.allowScriptAccess,bgcolor:de.bgColor,pluginspage:$e+"www.macromedia.com/go/getflashplayer",title:"JS/Flash audio component (SoundManager 2)",type:"application/x-shockwave-flash",wmode:de.wmode,hasPriority:"true"},de.debugFlash&&(r.FlashVars="debug=1"),de.wmode||delete r.wmode,Fe)o=ve.createElement("div"),l=['',n("movie",t),n("AllowScriptAccess",de.allowScriptAccess),n("quality",r.quality),de.wmode?n("wmode",de.wmode):"",n("bgcolor",de.bgColor),n("hasPriority","true"),de.debugFlash?n("FlashVars",r.FlashVars):"",""].join("");else{o=ve.createElement("embed");for(a in r)r.hasOwnProperty(a)&&o.setAttribute(a,r[a])}if(I(),v=U(),y=M())if(de.oMC=u(de.movieID)||ve.createElement("div"),de.oMC.id)p=de.oMC.className,de.oMC.className=(p?p+" ":z.swfDefault)+(v?" "+v:""),de.oMC.appendChild(o),Fe&&(s=de.oMC.appendChild(ve.createElement("div")),s.className=z.swfBox,s.innerHTML=l),ke=!0;else{if(de.oMC.id=de.movieID,de.oMC.className=z.swfDefault+" "+v,c=null,s=null,de.useFlashBlock||(de.useHighPerformance?c={position:"fixed",width:"8px",height:"8px",bottom:"0px",left:"0px",overflow:"hidden"}:(c={position:"absolute",width:"6px",height:"6px",top:"-9999px",left:"-9999px"},g&&(c.left=Math.abs(parseInt(c.left,10))+"px"))),He&&(de.oMC.style.zIndex=1e4),!de.debugFlash)for(d in c)c.hasOwnProperty(d)&&(de.oMC.style[d]=c[d]);try{Fe||de.oMC.appendChild(o),y.appendChild(de.oMC),Fe&&(s=de.oMC.appendChild(ve.createElement("div")),s.className=z.swfBox,s.innerHTML=l),ke=!0}catch(e){throw new Error(H("domError")+" \n"+e.toString())}}return be=!0,!0},E=function(){return de.html5Only?(N(),!1):!he&&(!!de.url&&(he=de.getMovie(de.id),he||(Se?(Fe?de.oMC.innerHTML=Oe:de.oMC.appendChild(Se),Se=null,be=!0):N(de.id,de.url),he=de.getMovie(de.id)),"function"==typeof de.oninitmovie&&setTimeout(de.oninitmovie,1),!0))},k=function(){setTimeout(_,1e3)},T=function(){a.setTimeout(function(){de.setup({preferFlash:!1}).reboot(),de.didFlashBlock=!0,de.beginDelayedInit()},1)},_=function(){var e,t=!1;de.url&&(Ee||(Ee=!0,oe.remove(a,"load",k),ie&&We&&!Ve||(_e||(e=de.getMoviePercent())>0&&e<100&&(t=!0),setTimeout(function(){if(e=de.getMoviePercent(),t)return Ee=!1,void a.setTimeout(k,1);!_e&&qe&&(null===e?de.useFlashBlock||0===de.flashLoadTimeout?de.useFlashBlock&&j():!de.useFlashBlock&&G?T():g({type:"ontimeout",ignoreInit:!0,error:{type:"INIT_FLASHBLOCK"}}):0===de.flashLoadTimeout||(!de.useFlashBlock&&G?T():D(!0)))},de.flashLoadTimeout))))},S=function(){function e(){oe.remove(a,"focus",S)}return Ve||!We?(e(),!0):(qe=!0,Ve=!0,Ee=!1,k(),e(),!0)},p=function(e){if(_e)return!1;if(de.html5Only)return _e=!0,b(),!0;var t,n=de.useFlashBlock&&de.flashLoadTimeout&&!de.getMoviePercent(),r=!0;return n||(_e=!0),t={type:!ie&&Ne?"NO_FLASH":"INIT_TIMEOUT"},(Te||e)&&(de.useFlashBlock&&de.oMC&&(de.oMC.className=U()+" "+(null===de.getMoviePercent()?z.swfTimedout:z.swfError)),g({type:"ontimeout",error:t,ignoreInit:!0}),L(t),r=!1),Te||(de.waitForWindowLoad&&!we?oe.add(a,"load",b):b()),r},c=function(){var e,t=de.setupOptions;for(e in t)t.hasOwnProperty(e)&&(de[e]===i?de[e]=t[e]:de[e]!==t[e]&&(de.setupOptions[e]=de[e]))},f=function(){function e(){oe.remove(a,"load",de.beginDelayedInit)}if(_e)return!1;if(de.html5Only)return _e||(e(),de.enabled=!0,p()),!0;E();try{he._externalInterfaceTest(!1),R(!0,de.flashPollingInterval||(de.useHighPerformance?10:50)),de.debugMode||he._disableDebug(),de.enabled=!0,de.html5Only||oe.add(a,"unload",s)}catch(e){return L({type:"JS_TO_FLASH_EXCEPTION",fatal:!0}),D(!0),p(),!1}return p(),e(),!0},P=function(){return!C&&(C=!0,c(),I(),!ie&&de.hasHTML5&&de.setup({useHTML5Audio:!0,preferFlash:!1}),re(),!ie&&Ne&&(Me.push(O.needFlash),de.setup({flashLoadTimeout:1})),ve.removeEventListener&&ve.removeEventListener("DOMContentLoaded",P,!1),E(),!0)},ne=function(){return"complete"===ve.readyState&&(P(),ve.detachEvent("onreadystatechange",ne)),!0},x=function(){we=!0,P(),oe.remove(a,"load",x)},le(),oe.add(a,"focus",S),oe.add(a,"load",k),oe.add(a,"load",x),ve.addEventListener?ve.addEventListener("DOMContentLoaded",P,!1):ve.attachEvent?ve.attachEvent("onreadystatechange",ne):L({type:"NO_DOM2_EVENTS",fatal:!0})}if(!a||!a.document)throw new Error("SoundManager requires a browser with window and document objects.");var u=null;a.SM2_DEFER!==i&&SM2_DEFER||(u=new l),"object"===o(e)&&e&&"object"===o(e.exports)?(e.exports.SoundManager=l,e.exports.soundManager=u):void 0!==(r=function(){function e(e){if(!a.soundManager&&e instanceof Function){var t=e(l);t instanceof l&&(a.soundManager=t)}return a.soundManager}return{constructor:l,getInstance:e}}.call(t,n,t,e))&&(e.exports=r),a.SoundManager=l,a.soundManager=u}(window)}).call(t,n(44)(e))},function(e,t,n){"use strict";e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Scrollbars=void 0;var r=n(46),o=function(e){return e&&e.__esModule?e:{default:e}}(r);t.default=o.default,t.Scrollbars=o.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==(void 0===t?"undefined":u(t))&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+(void 0===t?"undefined":u(t)));e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};Object.defineProperty(t,"__esModule",{value:!0});var s=Object.assign||function(e){for(var t=1;t1?r-1:0),l=1;l0&&void 0!==arguments[0]?arguments[0]:0;this.view.scrollLeft=e}},{key:"scrollTop",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;this.view.scrollTop=e}},{key:"scrollToLeft",value:function(){this.view.scrollLeft=0}},{key:"scrollToTop",value:function(){this.view.scrollTop=0}},{key:"scrollToRight",value:function(){this.view.scrollLeft=this.view.scrollWidth}},{key:"scrollToBottom",value:function(){this.view.scrollTop=this.view.scrollHeight}},{key:"addListeners",value:function(){if("undefined"!=typeof document){var e=this.view,t=this.trackHorizontal,n=this.trackVertical,r=this.thumbHorizontal,o=this.thumbVertical;e.addEventListener("scroll",this.handleScroll),(0,_.default)()&&(t.addEventListener("mouseenter",this.handleTrackMouseEnter),t.addEventListener("mouseleave",this.handleTrackMouseLeave),t.addEventListener("mousedown",this.handleHorizontalTrackMouseDown),n.addEventListener("mouseenter",this.handleTrackMouseEnter),n.addEventListener("mouseleave",this.handleTrackMouseLeave),n.addEventListener("mousedown",this.handleVerticalTrackMouseDown),r.addEventListener("mousedown",this.handleHorizontalThumbMouseDown),o.addEventListener("mousedown",this.handleVerticalThumbMouseDown),window.addEventListener("resize",this.handleWindowResize))}}},{key:"removeListeners",value:function(){if("undefined"!=typeof document){var e=this.view,t=this.trackHorizontal,n=this.trackVertical,r=this.thumbHorizontal,o=this.thumbVertical;e.removeEventListener("scroll",this.handleScroll),(0,_.default)()&&(t.removeEventListener("mouseenter",this.handleTrackMouseEnter),t.removeEventListener("mouseleave",this.handleTrackMouseLeave),t.removeEventListener("mousedown",this.handleHorizontalTrackMouseDown),n.removeEventListener("mouseenter",this.handleTrackMouseEnter),n.removeEventListener("mouseleave",this.handleTrackMouseLeave),n.removeEventListener("mousedown",this.handleVerticalTrackMouseDown),r.removeEventListener("mousedown",this.handleHorizontalThumbMouseDown),o.removeEventListener("mousedown",this.handleVerticalThumbMouseDown),window.removeEventListener("resize",this.handleWindowResize),this.teardownDragging())}}},{key:"handleScroll",value:function(e){var t=this,n=this.props,r=n.onScroll,o=n.onScrollFrame;r&&r(e),this.update(function(e){var n=e.scrollLeft,r=e.scrollTop;t.viewScrollLeft=n,t.viewScrollTop=r,o&&o(e)}),this.detectScrolling()}},{key:"handleScrollStart",value:function(){var e=this.props.onScrollStart;e&&e(),this.handleScrollStartAutoHide()}},{key:"handleScrollStartAutoHide",value:function(){this.props.autoHide&&this.showTracks()}},{key:"handleScrollStop",value:function(){var e=this.props.onScrollStop;e&&e(),this.handleScrollStopAutoHide()}},{key:"handleScrollStopAutoHide",value:function(){this.props.autoHide&&this.hideTracks()}},{key:"handleWindowResize",value:function(){this.update()}},{key:"handleHorizontalTrackMouseDown",value:function(e){e.preventDefault();var t=e.target,n=e.clientX,r=t.getBoundingClientRect(),o=r.left,a=this.getThumbHorizontalWidth(),i=Math.abs(o-n)-a/2;this.view.scrollLeft=this.getScrollLeftForOffset(i)}},{key:"handleVerticalTrackMouseDown",value:function(e){e.preventDefault();var t=e.target,n=e.clientY,r=t.getBoundingClientRect(),o=r.top,a=this.getThumbVerticalHeight(),i=Math.abs(o-n)-a/2;this.view.scrollTop=this.getScrollTopForOffset(i)}},{key:"handleHorizontalThumbMouseDown",value:function(e){e.preventDefault(),this.handleDragStart(e);var t=e.target,n=e.clientX,r=t.offsetWidth,o=t.getBoundingClientRect(),a=o.left;this.prevPageX=r-(n-a)}},{key:"handleVerticalThumbMouseDown",value:function(e){e.preventDefault(),this.handleDragStart(e);var t=e.target,n=e.clientY,r=t.offsetHeight,o=t.getBoundingClientRect(),a=o.top;this.prevPageY=r-(n-a)}},{key:"setupDragging",value:function(){(0,h.default)(document.body,x.disableSelectStyle),document.addEventListener("mousemove",this.handleDrag),document.addEventListener("mouseup",this.handleDragEnd),document.onselectstart=w.default}},{key:"teardownDragging",value:function(){(0,h.default)(document.body,x.disableSelectStyleReset),document.removeEventListener("mousemove",this.handleDrag),document.removeEventListener("mouseup",this.handleDragEnd),document.onselectstart=void 0}},{key:"handleDragStart",value:function(e){this.dragging=!0,e.stopImmediatePropagation(),this.setupDragging()}},{key:"handleDrag",value:function(e){if(this.prevPageX){var t=e.clientX,n=this.trackHorizontal.getBoundingClientRect(),r=n.left,o=this.getThumbHorizontalWidth(),a=o-this.prevPageX,i=-r+t-a;this.view.scrollLeft=this.getScrollLeftForOffset(i)}if(this.prevPageY){var l=e.clientY,u=this.trackVertical.getBoundingClientRect(),s=u.top,c=this.getThumbVerticalHeight(),f=c-this.prevPageY,d=-s+l-f;this.view.scrollTop=this.getScrollTopForOffset(d)}return!1}},{key:"handleDragEnd",value:function(){this.dragging=!1,this.prevPageX=this.prevPageY=0,this.teardownDragging(),this.handleDragEndAutoHide()}},{key:"handleDragEndAutoHide",value:function(){this.props.autoHide&&this.hideTracks()}},{key:"handleTrackMouseEnter",value:function(){this.trackMouseOver=!0,this.handleTrackMouseEnterAutoHide()}},{key:"handleTrackMouseEnterAutoHide",value:function(){this.props.autoHide&&this.showTracks()}},{key:"handleTrackMouseLeave",value:function(){this.trackMouseOver=!1,this.handleTrackMouseLeaveAutoHide()}},{key:"handleTrackMouseLeaveAutoHide",value:function(){this.props.autoHide&&this.hideTracks()}},{key:"showTracks",value:function(){clearTimeout(this.hideTracksTimeout),(0,h.default)(this.trackHorizontal,{opacity:1}),(0,h.default)(this.trackVertical,{opacity:1})}},{key:"hideTracks",value:function(){var e=this;if(!this.dragging&&!this.scrolling&&!this.trackMouseOver){var t=this.props.autoHideTimeout;clearTimeout(this.hideTracksTimeout),this.hideTracksTimeout=setTimeout(function(){(0,h.default)(e.trackHorizontal,{opacity:0}),(0,h.default)(e.trackVertical,{opacity:0})},t)}}},{key:"detectScrolling",value:function(){var e=this;this.scrolling||(this.scrolling=!0,this.handleScrollStart(),this.detectScrollingInterval=setInterval(function(){e.lastViewScrollLeft===e.viewScrollLeft&&e.lastViewScrollTop===e.viewScrollTop&&(clearInterval(e.detectScrollingInterval),e.scrolling=!1,e.handleScrollStop()),e.lastViewScrollLeft=e.viewScrollLeft,e.lastViewScrollTop=e.viewScrollTop},100))}},{key:"raf",value:function(e){var t=this;this.requestFrame&&d.default.cancel(this.requestFrame),this.requestFrame=(0,d.default)(function(){t.requestFrame=void 0,e()})}},{key:"update",value:function(e){var t=this;this.raf(function(){return t._update(e)})}},{key:"_update",value:function(e){var t=this.props,n=t.onUpdate,r=t.hideTracksWhenNotNeeded,o=this.getValues();if((0,_.default)()){var a=o.scrollLeft,i=o.clientWidth,l=o.scrollWidth,u=(0,O.default)(this.trackHorizontal),s=this.getThumbHorizontalWidth(),c=a/(l-i)*(u-s),f={width:s,transform:"translateX("+c+"px)"},d=o.scrollTop,p=o.clientHeight,m=o.scrollHeight,y=(0,P.default)(this.trackVertical),v=this.getThumbVerticalHeight(),g=d/(m-p)*(y-v),b={height:v,transform:"translateY("+g+"px)"};if(r){var k={visibility:l>i?"visible":"hidden"},T={visibility:m>p?"visible":"hidden"};(0,h.default)(this.trackHorizontal,k),(0,h.default)(this.trackVertical,T)}(0,h.default)(this.thumbHorizontal,f),(0,h.default)(this.thumbVertical,b)}n&&n(o),"function"==typeof e&&e(o)}},{key:"render",value:function(){var e=this,t=(0,_.default)(),n=this.props,r=(n.onScroll,n.onScrollFrame,n.onScrollStart,n.onScrollStop,n.onUpdate,n.renderView),a=n.renderTrackHorizontal,i=n.renderTrackVertical,l=n.renderThumbHorizontal,u=n.renderThumbVertical,c=n.tagName,f=(n.hideTracksWhenNotNeeded,n.autoHide),d=(n.autoHideTimeout,n.autoHideDuration),p=(n.thumbSize,n.thumbMinSize,n.universal),h=n.autoHeight,y=n.autoHeightMin,v=n.autoHeightMax,g=n.style,k=n.children,T=o(n,["onScroll","onScrollFrame","onScrollStart","onScrollStop","onUpdate","renderView","renderTrackHorizontal","renderTrackVertical","renderThumbHorizontal","renderThumbVertical","tagName","hideTracksWhenNotNeeded","autoHide","autoHideTimeout","autoHideDuration","thumbSize","thumbMinSize","universal","autoHeight","autoHeightMin","autoHeightMax","style","children"]),w=this.state.didMountUniversal,S=s({},x.containerStyleDefault,h&&s({},x.containerStyleAutoHeight,{minHeight:y,maxHeight:v}),g),O=s({},x.viewStyleDefault,{marginRight:t?-t:0,marginBottom:t?-t:0},h&&s({},x.viewStyleAutoHeight,{minHeight:(0,b.default)(y)?"calc("+y+" + "+t+"px)":y+t,maxHeight:(0,b.default)(v)?"calc("+v+" + "+t+"px)":v+t}),h&&p&&!w&&{minHeight:y,maxHeight:v},p&&!w&&x.viewStyleUniversalInitial),E={transition:"opacity "+d+"ms",opacity:0},P=s({},x.trackHorizontalStyleDefault,f&&E,(!t||p&&!w)&&{display:"none"}),C=s({},x.trackVerticalStyleDefault,f&&E,(!t||p&&!w)&&{display:"none"});return(0,m.createElement)(c,s({},T,{style:S,ref:function(t){e.container=t}}),[(0,m.cloneElement)(r({style:O}),{key:"view",ref:function(t){e.view=t}},k),(0,m.cloneElement)(a({style:P}),{key:"trackHorizontal",ref:function(t){e.trackHorizontal=t}},(0,m.cloneElement)(l({style:x.thumbHorizontalStyleDefault}),{ref:function(t){e.thumbHorizontal=t}})),(0,m.cloneElement)(i({style:C}),{key:"trackVertical",ref:function(t){e.trackVertical=t}},(0,m.cloneElement)(u({style:x.thumbVerticalStyleDefault}),{ref:function(t){e.thumbVertical=t}}))])}}]),t}(m.Component);t.default=M,M.propTypes={onScroll:v.default.func,onScrollFrame:v.default.func,onScrollStart:v.default.func,onScrollStop:v.default.func,onUpdate:v.default.func,renderView:v.default.func,renderTrackHorizontal:v.default.func,renderTrackVertical:v.default.func,renderThumbHorizontal:v.default.func,renderThumbVertical:v.default.func,tagName:v.default.string,thumbSize:v.default.number,thumbMinSize:v.default.number,hideTracksWhenNotNeeded:v.default.bool,autoHide:v.default.bool,autoHideTimeout:v.default.number,autoHideDuration:v.default.number,autoHeight:v.default.bool,autoHeightMin:v.default.oneOfType([v.default.number,v.default.string]),autoHeightMax:v.default.oneOfType([v.default.number,v.default.string]),universal:v.default.bool,style:v.default.object,children:v.default.node},M.defaultProps={renderView:C.renderViewDefault,renderTrackHorizontal:C.renderTrackHorizontalDefault,renderTrackVertical:C.renderTrackVerticalDefault,renderThumbHorizontal:C.renderThumbHorizontalDefault,renderThumbVertical:C.renderThumbVerticalDefault,tagName:"div",thumbMinSize:30,hideTracksWhenNotNeeded:!1,autoHide:!1,autoHideTimeout:1e3,autoHideDuration:200,autoHeight:!1,autoHeightMin:0,autoHeightMax:200,universal:!1}},function(e,t,n){"use strict";(function(t){for(var r=n(48),o="undefined"==typeof window?t:window,a=["moz","webkit"],i="AnimationFrame",l=o["request"+i],u=o["cancel"+i]||o["cancelRequest"+i],s=0;!l&&s=0;a--){var i=o[a]+n;if(i in t)return i}return!1}},function(e,t,n){"use strict";function r(e){return o(e).replace(/\s(\w)/g,function(e,t){return t.toUpperCase()})}var o=n(51);e.exports=r},function(e,t,n){"use strict";function r(e){return o(e).replace(/[\W_]+(.|$)/g,function(e,t){return t?" "+t:""}).trim()}var o=n(52);e.exports=r},function(e,t,n){"use strict";function r(e){return i.test(e)?e.toLowerCase():l.test(e)?(o(e)||e).toLowerCase():u.test(e)?a(e).toLowerCase():e.toLowerCase()}function o(e){return e.replace(s,function(e,t){return t?" "+t:""})}function a(e){return e.replace(c,function(e,t,n){return t+" "+n.toLowerCase().split("").join(" ")})}e.exports=r;var i=/\s/,l=/(_|-|\.|:)/,u=/([a-z][A-Z]|[A-Z][a-z])/,s=/[\W_]+(.|$)/g,c=/(.)([A-Z]+)/g},function(e,t,n){"use strict";var r={animationIterationCount:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridRow:!0,gridColumn:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,stopOpacity:!0,strokeDashoffset:!0,strokeOpacity:!0,strokeWidth:!0};e.exports=function(e,t){return"number"!=typeof t||r[e]?t:t+"px"}},function(e,t,n){"use strict";"function"==typeof Symbol&&Symbol.iterator;e.exports=n(55)()},function(e,t,n){"use strict";var r=n(8),o=n(9),a=n(56);e.exports=function(){function e(e,t,n,r,i,l){l!==a&&o(!1,"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types")}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t};return n.checkPropTypes=r,n.PropTypes=n,n}},function(e,t,n){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},function(e,t,n){"use strict";function r(e){return"string"==typeof e}Object.defineProperty(t,"__esModule",{value:!0}),t.default=r},function(e,t,n){"use strict";function r(){if(!1!==i)return i;if("undefined"!=typeof document){var e=document.createElement("div");(0,a.default)(e,{width:100,height:100,position:"absolute",top:-9999,overflow:"scroll",MsOverflowStyle:"scrollbar"}),document.body.appendChild(e),i=e.offsetWidth-e.clientWidth,document.body.removeChild(e)}else i=0;return i||0}Object.defineProperty(t,"__esModule",{value:!0}),t.default=r;var o=n(21),a=function(e){return e&&e.__esModule?e:{default:e}}(o),i=!1},function(e,t,n){"use strict";function r(){return!1}Object.defineProperty(t,"__esModule",{value:!0}),t.default=r},function(e,t,n){"use strict";function r(e){var t=e.clientWidth,n=getComputedStyle(e),r=n.paddingLeft,o=n.paddingRight;return t-parseFloat(r)-parseFloat(o)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=r},function(e,t,n){"use strict";function r(e){var t=e.clientHeight,n=getComputedStyle(e),r=n.paddingTop,o=n.paddingBottom;return t-parseFloat(r)-parseFloat(o)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.containerStyleDefault={position:"relative",overflow:"hidden",width:"100%",height:"100%"},t.containerStyleAutoHeight={height:"auto"},t.viewStyleDefault={position:"absolute",top:0,left:0,right:0,bottom:0,overflow:"scroll",WebkitOverflowScrolling:"touch"},t.viewStyleAutoHeight={position:"relative",top:void 0,left:void 0,right:void 0,bottom:void 0},t.viewStyleUniversalInitial={overflow:"hidden",marginRight:0,marginBottom:0},t.trackHorizontalStyleDefault={position:"absolute",height:6},t.trackVerticalStyleDefault={position:"absolute",width:6},t.thumbHorizontalStyleDefault={position:"relative",display:"block",height:"100%"},t.thumbVerticalStyleDefault={position:"relative",display:"block",width:"100%"},t.disableSelectStyle={userSelect:"none"},t.disableSelectStyleReset={userSelect:""}},function(e,t,n){"use strict";function r(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function o(e){return f.default.createElement("div",e)}function a(e){var t=e.style,n=r(e,["style"]),o=s({},t,{right:2,bottom:2,left:2,borderRadius:3});return f.default.createElement("div",s({style:o},n))}function i(e){var t=e.style,n=r(e,["style"]),o=s({},t,{right:2,bottom:2,top:2,borderRadius:3});return f.default.createElement("div",s({style:o},n))}function l(e){var t=e.style,n=r(e,["style"]),o=s({},t,{cursor:"pointer",borderRadius:"inherit",backgroundColor:"rgba(0,0,0,.2)"});return f.default.createElement("div",s({style:o},n))}function u(e){var t=e.style,n=r(e,["style"]),o=s({},t,{cursor:"pointer",borderRadius:"inherit",backgroundColor:"rgba(0,0,0,.2)"});return f.default.createElement("div",s({style:o},n))}Object.defineProperty(t,"__esModule",{value:!0});var s=Object.assign||function(e){for(var t=1;t-1}}]),e}();t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return window.ai_pro_front_scripts&&!!window.ai_pro_front_scripts.multi_sound_disabled};t.default=r},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.getInitialTrackQueueAndIndex=t.getInitialTrackIndex=void 0;var o=n(70),a=r(o),i=n(71),l=r(i),u=t.getInitialTrackIndex=function(e){var t=e.tracks,n=void 0===t?[]:t,r=e.initialTrack,o=void 0===r?1:r,a=e.reverseTrackOrder,i=void 0!==a&&a,l=o-1;return!n.length||!o||o>n.length?0:i?Math.max(n.length-o,0):l};t.getInitialTrackQueueAndIndex=function(e){var t=e.tracks,n=void 0===t?[]:t,r=e.initialTrack,o=void 0===r?1:r,i=e.reverseTrackOrder,s=void 0!==i&&i,c=e.shuffle,f=void 0!==c&&c,d=u({tracks:n,initialTrack:o,reverseTrackOrder:s}),p=n.map(function(e,t){return t});if(!f){var h=p.indexOf(d);return{activeIndex:d,trackQueue:(0,l.default)(p,0,h)}}var m=(0,a.default)(p);return m.splice(m.indexOf(d),1),m.unshift(d),{activeIndex:d,trackQueue:m}};t.default=u},function(e,t,n){"use strict";function r(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t0;n--){var o=Math.floor(Math.random()*(n+1)),a=[t[o],t[n]];t[n]=a[0],t[o]=a[1]}return t};t.default=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e,t,n){var r=n>e.length?n%e.length:n;return e.concat(e.splice(0,t>0?e.length-r:r))};t.default=r},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=n(0),a=r(o),i=n(1),l=r(i),u=n(2),s=r(u),c=n(5),f=r(c),d=n(14),p=r(d),h=n(22),m=r(h),y=n(15),v=r(y),g=function(e){var t=e.playStatus,n=t===s.default.status.PLAYING||t===s.default.status.PAUSED?e.activeIndex:void 0,r=(0,f.default)({"ai-wrap":!0,"ai-type-simple":!0,"ai-with-typography":!(0,v.default)()});return a.default.createElement("div",{className:r,style:{maxWidth:e.maxWidth}},a.default.createElement("div",{className:"ai-tracklist ai-tracklist-open"},a.default.createElement(m.default,{tracks:e.tracks,playStatus:e.playStatus,activeTrackIndex:n,onTrackClick:e.togglePlay,setPosition:e.setPosition,duration:e.duration,position:e.position,playbackRate:e.playbackRate,className:"ai-tracklist",trackClassName:"ai-track",reverseTrackOrder:e.reverseTrackOrder,displayTrackNo:e.displayTrackNo,displayBuyButtons:e.displayBuyButtons,buyButtonsTarget:e.buyButtonsTarget,displayArtistNames:e.displayArtistNames,standaloneTracks:!0,onTrackLoop:e.allowTrackLoop?e.setTrackCycling:void 0,repeatingTrackIndex:e.repeatingTrackIndex,setPlaybackRate:e.setPlaybackRate,allowPlaybackRate:e.allowPlaybackRate,buffering:e.buffering})),e.displayCredits&&a.default.createElement("div",{className:"ai-footer"},a.default.createElement("p",null,"Powered by"," ",a.default.createElement("a",{href:"https://www.cssigniter.com/plugins/audioigniter?utm_source=player&utm_medium=link&utm_content=audioigniter&utm_campaign=footer-link",target:"_blank",rel:"noopener noreferrer"},"AudioIgniter"))))};g.propTypes={tracks:l.default.arrayOf(l.default.object),playStatus:l.default.oneOf([s.default.status.PLAYING,s.default.status.PAUSED,s.default.status.STOPPED]),activeIndex:l.default.number,position:l.default.number,duration:l.default.number,setPosition:l.default.func.isRequired,togglePlay:l.default.func.isRequired,setTrackCycling:l.default.func.isRequired,allowTrackLoop:l.default.bool,maxWidth:l.default.string,reverseTrackOrder:l.default.bool,displayTrackNo:l.default.bool,buyButtonsTarget:l.default.bool,displayArtistNames:l.default.bool,displayBuyButtons:l.default.bool,displayCredits:l.default.bool,repeatingTrackIndex:l.default.number,playbackRate:l.default.number,setPlaybackRate:l.default.func,allowPlaybackRate:l.default.bool,buffering:l.default.bool},t.default=(0,p.default)(g,{onFinishedPlaying:function(e){var t=e.repeatingTrackIndex,n=e.cycleTracks,r=e.nextTrack,o=e.activeIndex,a=e.playTrack,i=e.trackQueue;return null!=t?void a(t):n?void r():void(o!==i[i.length-1]&&r())}})},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var l=function(){function e(e,t){for(var n=0;n1&&s.default.createElement(T.default,{className:"ai-btn ai-tracklist-prev",onClick:b,ariaLabel:aiStrings.previous},s.default.createElement(N.PreviousIcon,null)),r.length>1&&s.default.createElement(T.default,{className:"ai-btn ai-tracklist-next",onClick:g,ariaLabel:aiStrings.next},s.default.createElement(N.NextIcon,null)),s.default.createElement(x.default,{volume:i,setVolume:w}),F&&s.default.createElement(T.default,{className:"ai-btn ai-btn-repeat "+(P&&"ai-btn-active"),onClick:O,ariaLabel:aiStrings.toggle_list_repeat},s.default.createElement(N.RefreshIcon,null)),A&&s.default.createElement(T.default,{className:"ai-btn ai-btn-playback-rate",onClick:R,ariaLabel:aiStrings.set_playback_rate},s.default.createElement(u.Fragment,null,"×",f)),G>0&&s.default.createElement(u.Fragment,null,s.default.createElement(T.default,{className:"ai-btn ai-btn-skip-position",onClick:function(){return K(-1)},ariaLabel:aiStrings.skip_backward},"-",G,"s"),s.default.createElement(T.default,{className:"ai-btn ai-btn-skip-position",onClick:function(){return K(1)},ariaLabel:aiStrings.skip_forward},"+",G,"s")),d&&d.lyrics&&!t&&s.default.createElement(L.AppContext.Consumer,null,function(e){var t=e.toggleLyricsModal;return s.default.createElement(T.default,{className:"ai-btn ai-lyrics",onClick:function(){return t(!0,d)},ariaLabel:aiStrings.open_track_lyrics,title:aiStrings.open_track_lyrics},s.default.createElement(N.LyricsIcon,null))})),s.default.createElement("div",{className:"ai-track-info"},s.default.createElement("p",{className:"ai-track-title"},s.default.createElement("span",null,d.title)),(0===r.length||d.subtitle)&&Y&&s.default.createElement("p",{className:"ai-track-subtitle"},s.default.createElement("span",null,d.subtitle))),s.default.createElement("div",{className:"ai-audio-controls-meta-right"},s.default.createElement(E.default,{duration:c,position:l,countdown:X}),D&&s.default.createElement(T.default,{className:"ai-btn ai-tracklist-toggle",onClick:this.toggleTracklist,ariaLabel:aiStrings.toggle_list_visible},s.default.createElement(N.PlaylistIcon,null)))))),s.default.createElement("div",{className:"ai-tracklist-wrap "+(t?"ai-tracklist-open":""),style:{display:t?"block":"none"}},s.default.createElement(M.default,{className:"ai-tracklist",trackClassName:"ai-track",tracks:r,activeTrackIndex:a,isOpen:t,displayTrackNo:U,displayCovers:z,displayBuyButtons:q,buyButtonsTarget:Q,displayArtistNames:Y,reverseTrackOrder:j,limitTracklistHeight:V,tracklistHeight:W,onTrackClick:m,onTrackLoop:H?C:void 0,repeatingTrackIndex:$})))}}]),t}(s.default.Component);A.propTypes={tracks:f.default.arrayOf(f.default.object),playStatus:f.default.oneOf([p.default.status.PLAYING,p.default.status.PAUSED,p.default.status.STOPPED]),activeIndex:f.default.number,volume:f.default.number,position:f.default.number,duration:f.default.number,currentTrack:f.default.object.isRequired,playTrack:f.default.func.isRequired,togglePlay:f.default.func.isRequired,nextTrack:f.default.func.isRequired,prevTrack:f.default.func.isRequired,setPosition:f.default.func.isRequired,setVolume:f.default.func.isRequired,toggleTracklistCycling:f.default.func.isRequired,cycleTracks:f.default.bool.isRequired,displayTracklist:f.default.bool,allowTracklistToggle:f.default.bool,allowTracklistLoop:f.default.bool,reverseTrackOrder:f.default.bool,displayTrackNo:f.default.bool,displayActiveCover:f.default.bool,displayTracklistCovers:f.default.bool,limitTracklistHeight:f.default.bool,tracklistHeight:f.default.number,displayBuyButtons:f.default.bool,buyButtonsTarget:f.default.bool,displayArtistNames:f.default.bool,setTrackCycling:f.default.func.isRequired,repeatingTrackIndex:f.default.number,allowTrackLoop:f.default.bool,playbackRate:f.default.number,setPlaybackRate:f.default.func,skipAmount:f.default.number,skipPosition:f.default.func.isRequired,countdownTimerByDefault:f.default.bool,allowPlaybackRate:f.default.bool,buffering:f.default.bool},t.default=(0,g.default)(A,{onFinishedPlaying:function(e){var t=e.repeatingTrackIndex,n=e.cycleTracks,r=e.nextTrack,o=e.activeIndex,a=e.playTrack,i=e.trackQueue;return null!=t?void a(t):n?void r():void(o!==i[i.length-1]&&r())}})},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=n(0),a=r(o),i=n(1),l=r(i),u=n(75),s=r(u);document.querySelector(".audioigniter-root")&&s.default.setAppElement(".audioigniter-root");var c=function(e){var t=e.isOpen,n=e.closeModal,r=e.children;return a.default.createElement(s.default,{isOpen:t,closeModal:n,onRequestClose:n,overlayClassName:"ai-modal-overlay",className:"ai-modal"},a.default.createElement("div",{className:"ai-modal-wrap"},a.default.createElement("div",{className:"ai-modal-header"},a.default.createElement("button",{className:"ai-modal-dismiss",type:"button",onClick:n},"×")),a.default.createElement("div",{className:"ai-modal-content"},r)))};c.propTypes={isOpen:l.default.bool,closeModal:l.default.func.isRequired,children:l.default.any},t.default=c},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(76),o=function(e){return e&&e.__esModule?e:{default:e}}(r);t.default=o.default,e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==(void 0===t?"undefined":u(t))&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+(void 0===t?"undefined":u(t)));e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function l(e){return e()}var u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};Object.defineProperty(t,"__esModule",{value:!0}),t.bodyOpenClassName=t.portalClassName=void 0;var s=Object.assign||function(e){for(var t=1;t0&&0===(C-=1)&&_.show(t),n.props.shouldFocusAfterRender&&(n.props.shouldReturnFocusAfterClose?(v.returnFocus(),v.teardownScopedFocus()):v.popWithoutFocus()),n.props.onAfterClose&&n.props.onAfterClose()},n.open=function(){n.beforeOpen(),n.state.afterOpen&&n.state.beforeClose?(clearTimeout(n.closeTimer),n.setState({beforeClose:!1})):(n.props.shouldFocusAfterRender&&(v.setupScopedFocus(n.node),v.markForFocusLater()),n.setState({isOpen:!0},function(){n.setState({afterOpen:!0}),n.props.isOpen&&n.props.onAfterOpen&&n.props.onAfterOpen()}))},n.close=function(){n.props.closeTimeoutMS>0?n.closeWithTimeout():n.closeWithoutTimeout()},n.focusContent=function(){return n.content&&!n.contentHasFocus()&&n.content.focus()},n.closeWithTimeout=function(){var e=Date.now()+n.props.closeTimeoutMS;n.setState({beforeClose:!0,closesAt:e},function(){n.closeTimer=setTimeout(n.closeWithoutTimeout,n.state.closesAt-Date.now())})},n.closeWithoutTimeout=function(){n.setState({beforeClose:!1,isOpen:!1,afterOpen:!1,closesAt:null},n.afterClose)},n.handleKeyDown=function(e){e.keyCode===P&&(0,b.default)(n.content,e),n.props.shouldCloseOnEsc&&e.keyCode===x&&(e.stopPropagation(),n.requestClose(e))},n.handleOverlayOnClick=function(e){null===n.shouldClose&&(n.shouldClose=!0),n.shouldClose&&n.props.shouldCloseOnOverlayClick&&(n.ownerHandlesClose()?n.requestClose(e):n.focusContent()),n.shouldClose=null},n.handleContentOnMouseUp=function(){n.shouldClose=!1},n.handleOverlayOnMouseDown=function(e){n.props.shouldCloseOnOverlayClick||e.target!=n.overlay||e.preventDefault()},n.handleContentOnClick=function(){n.shouldClose=!1},n.handleContentOnMouseDown=function(){n.shouldClose=!1},n.requestClose=function(e){return n.ownerHandlesClose()&&n.props.onRequestClose(e)},n.ownerHandlesClose=function(){return n.props.onRequestClose},n.shouldBeClosed=function(){return!n.state.isOpen&&!n.state.beforeClose},n.contentHasFocus=function(){return document.activeElement===n.content||n.content.contains(document.activeElement)},n.buildClassName=function(e,t){var r="object"===(void 0===t?"undefined":c(t))?t:{base:E[e],afterOpen:E[e]+"--after-open",beforeClose:E[e]+"--before-close"},o=r.base;return n.state.afterOpen&&(o=o+" "+r.afterOpen),n.state.beforeClose&&(o=o+" "+r.beforeClose),"string"==typeof t&&t?o+" "+t:o},n.attributesFromObject=function(e,t){return Object.keys(t).reduce(function(n,r){return n[e+"-"+r]=t[r],n},{})},n.state={afterOpen:!1,beforeClose:!1},n.shouldClose=null,n.moveFromContentToOverlay=null,n}return l(t,e),f(t,[{key:"componentDidMount",value:function(){this.props.isOpen&&this.open()}},{key:"componentDidUpdate",value:function(e,t){this.props.isOpen&&!e.isOpen?this.open():!this.props.isOpen&&e.isOpen&&this.close(),this.props.shouldFocusAfterRender&&this.state.isOpen&&!t.isOpen&&this.focusContent()}},{key:"componentWillUnmount",value:function(){this.afterClose(),clearTimeout(this.closeTimer)}},{key:"beforeOpen",value:function(){var e=this.props,t=e.appElement,n=e.ariaHideApp,r=e.htmlOpenClassName,o=e.bodyOpenClassName;o&&w.add(document.body,o),r&&w.add(document.getElementsByTagName("html")[0],r),n&&(C+=1,_.hide(t))}},{key:"render",value:function(){var e=this.props,t=e.className,n=e.overlayClassName,r=e.defaultStyles,o=t?{}:r.content,a=n?{}:r.overlay;return this.shouldBeClosed()?null:p.default.createElement("div",{ref:this.setOverlayRef,className:this.buildClassName("overlay",n),style:s({},a,this.props.style.overlay),onClick:this.handleOverlayOnClick,onMouseDown:this.handleOverlayOnMouseDown},p.default.createElement("div",s({ref:this.setContentRef,style:s({},o,this.props.style.content),className:this.buildClassName("content",t),tabIndex:"-1",onKeyDown:this.handleKeyDown,onMouseDown:this.handleContentOnMouseDown,onMouseUp:this.handleContentOnMouseUp,onClick:this.handleContentOnClick,role:this.props.role,"aria-label":this.props.contentLabel},this.attributesFromObject("aria",this.props.aria||{}),this.attributesFromObject("data",this.props.data||{}),{"data-testid":this.props.testId}),this.props.children))}}]),t}(d.Component);M.defaultProps={style:{overlay:{},content:{}},defaultStyles:{}},M.propTypes={isOpen:m.default.bool.isRequired,defaultStyles:m.default.shape({content:m.default.object,overlay:m.default.object}),style:m.default.shape({content:m.default.object,overlay:m.default.object}),className:m.default.oneOfType([m.default.string,m.default.object]),overlayClassName:m.default.oneOfType([m.default.string,m.default.object]),bodyOpenClassName:m.default.string,htmlOpenClassName:m.default.string,ariaHideApp:m.default.bool,appElement:m.default.instanceOf(O.default),onAfterOpen:m.default.func,onAfterClose:m.default.func,onRequestClose:m.default.func,closeTimeoutMS:m.default.number,shouldFocusAfterRender:m.default.bool,shouldCloseOnOverlayClick:m.default.bool,shouldReturnFocusAfterClose:m.default.bool,role:m.default.string,contentLabel:m.default.string,aria:m.default.object,data:m.default.object,children:m.default.node,shouldCloseOnEsc:m.default.bool,overlayRef:m.default.func,contentRef:m.default.func,testId:m.default.string},t.default=M,e.exports=t.default},function(e,t,n){"use strict";function r(){h=!0}function o(){if(h){if(h=!1,!p)return;setTimeout(function(){if(!p.contains(document.activeElement)){((0,f.default)(p)[0]||p).focus()}},0)}}function a(){d.push(document.activeElement)}function i(){var e=null;try{return void(0!==d.length&&(e=d.pop(),e.focus()))}catch(e){}}function l(){d.length>0&&d.pop()}function u(e){p=e,window.addEventListener?(window.addEventListener("blur",r,!1),document.addEventListener("focus",o,!0)):(window.attachEvent("onBlur",r),document.attachEvent("onFocus",o))}function s(){p=null,window.addEventListener?(window.removeEventListener("blur",r),document.removeEventListener("focus",o)):(window.detachEvent("onBlur",r),document.detachEvent("onFocus",o))}Object.defineProperty(t,"__esModule",{value:!0}),t.handleBlur=r,t.handleFocus=o,t.markForFocusLater=a,t.returnFocus=i,t.popWithoutFocus=l,t.setupScopedFocus=u,t.teardownScopedFocus=s;var c=n(26),f=function(e){return e&&e.__esModule?e:{default:e}}(c),d=[],p=null,h=!1},function(e,t,n){"use strict";function r(e,t){var n=(0,a.default)(e);if(!n.length)return void t.preventDefault();var r=t.shiftKey,o=n[0],i=n[n.length-1];if(e===document.activeElement){if(!r)return;l=i}var l;if(i!==document.activeElement||r||(l=o),o===document.activeElement&&r&&(l=i),l)return t.preventDefault(),void l.focus();var u=/(\bChrome\b|\bSafari\b)\//.exec(navigator.userAgent);if(null!=u&&"Chrome"!=u[1]&&null==/\biPod\b|\biPad\b/g.exec(navigator.userAgent)){var s=n.indexOf(document.activeElement);if(s>-1&&(s+=r?-1:1),void 0===n[s])return t.preventDefault(),l=r?i:o,void l.focus();t.preventDefault(),n[s].focus()}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=r;var o=n(26),a=function(e){return e&&e.__esModule?e:{default:e}}(o);e.exports=t.default},function(e,t,n){"use strict";var r=function(){};e.exports=r},function(e,t,n){"use strict";var r,o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};!function(){var a=!("undefined"==typeof window||!window.document||!window.document.createElement),i={canUseDOM:a,canUseWorkers:"undefined"!=typeof Worker,canUseEventListeners:a&&!(!window.addEventListener&&!window.attachEvent),canUseViewport:a&&!!window.screen};"object"===o(n(6))&&n(6)?void 0!==(r=function(){return i}.call(t,n,t,e))&&(e.exports=r):void 0!==e&&e.exports?e.exports=i:window.ExecutionEnvironment=i}()},function(e,t,n){"use strict";function r(){}Object.defineProperty(t,"__esModule",{value:!0}),t.dumpClassLists=r;var o={},a={},i=function(e,t){return e[t]||(e[t]=0),e[t]+=1,t},l=function(e,t){return e[t]&&(e[t]-=1),t},u=function(e,t,n){n.forEach(function(n){i(t,n),e.add(n)})},s=function(e,t,n){n.forEach(function(n){l(t,n),0===t[n]&&e.remove(n)})};t.add=function(e,t){return u(e.classList,"html"==e.nodeName.toLowerCase()?o:a,t.split(" "))},t.remove=function(e,t){return s(e.classList,"html"==e.nodeName.toLowerCase()?o:a,t.split(" "))}},function(e,t,n){"use strict";function r(){var e=this.constructor.getDerivedStateFromProps(this.props,this.state);null!==e&&void 0!==e&&this.setState(e)}function o(e){function t(t){var n=this.constructor.getDerivedStateFromProps(e,t);return null!==n&&void 0!==n?n:null}this.setState(t.bind(this))}function a(e,t){try{var n=this.props,r=this.state;this.props=e,this.state=t,this.__reactInternalSnapshotFlag=!0,this.__reactInternalSnapshot=this.getSnapshotBeforeUpdate(n,r)}finally{this.props=n,this.state=r}}function i(e){var t=e.prototype;if(!t||!t.isReactComponent)throw new Error("Can only polyfill class components");if("function"!=typeof e.getDerivedStateFromProps&&"function"!=typeof t.getSnapshotBeforeUpdate)return e;var n=null,i=null,l=null;if("function"==typeof t.componentWillMount?n="componentWillMount":"function"==typeof t.UNSAFE_componentWillMount&&(n="UNSAFE_componentWillMount"),"function"==typeof t.componentWillReceiveProps?i="componentWillReceiveProps":"function"==typeof t.UNSAFE_componentWillReceiveProps&&(i="UNSAFE_componentWillReceiveProps"),"function"==typeof t.componentWillUpdate?l="componentWillUpdate":"function"==typeof t.UNSAFE_componentWillUpdate&&(l="UNSAFE_componentWillUpdate"),null!==n||null!==i||null!==l){var u=e.displayName||e.name,s="function"==typeof e.getDerivedStateFromProps?"getDerivedStateFromProps()":"getSnapshotBeforeUpdate()";throw Error("Unsafe legacy lifecycles will not be called for components using new component APIs.\n\n"+u+" uses "+s+" but also contains the following legacy lifecycles:"+(null!==n?"\n "+n:"")+(null!==i?"\n "+i:"")+(null!==l?"\n "+l:"")+"\n\nThe above lifecycles should be removed. Learn more about this warning here:\nhttps://fb.me/react-async-component-lifecycle-hooks")}if("function"==typeof e.getDerivedStateFromProps&&(t.componentWillMount=r,t.componentWillReceiveProps=o),"function"==typeof t.getSnapshotBeforeUpdate){if("function"!=typeof t.componentDidUpdate)throw new Error("Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype");t.componentWillUpdate=a;var c=t.componentDidUpdate;t.componentDidUpdate=function(e,t,n){var r=this.__reactInternalSnapshotFlag?this.__reactInternalSnapshot:n;c.call(this,e,t,r)}}return e}Object.defineProperty(t,"__esModule",{value:!0}),r.__suppressDeprecationWarning=!0,o.__suppressDeprecationWarning=!0,a.__suppressDeprecationWarning=!0,t.polyfill=i}]); \ No newline at end of file diff --git a/wp-content/plugins/audioigniter/player/build/index.html b/wp-content/plugins/audioigniter/player/build/index.html new file mode 100644 index 00000000..e07bc3e5 --- /dev/null +++ b/wp-content/plugins/audioigniter/player/build/index.html @@ -0,0 +1,100 @@ + + + + + + AudioIgniter + + + + +
+ +
+ +
+ + diff --git a/wp-content/plugins/audioigniter/player/build/style.css b/wp-content/plugins/audioigniter/player/build/style.css new file mode 100644 index 00000000..b5d0a00f --- /dev/null +++ b/wp-content/plugins/audioigniter/player/build/style.css @@ -0,0 +1 @@ +@-webkit-keyframes ai-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes ai-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@-webkit-keyframes backgroundPosition{0%{background-position:-140px 0}to{background-position:140px 0}}@keyframes backgroundPosition{0%{background-position:-140px 0}to{background-position:140px 0}}.ai-wrap{padding:20px;background-color:#202020;color:#fff;max-width:100%;margin-bottom:20px}.ai-wrap,.ai-wrap *,.ai-wrap:after,.ai-wrap :after,.ai-wrap:before,.ai-wrap :before{box-sizing:border-box}.ai-wrap img{max-width:100%;height:auto;border:0;box-shadow:none;margin:0;padding:0}.ai-wrap p,.ai-wrap span{margin:0;padding:0;font-weight:400;line-height:normal}.ai-wrap a{font-weight:400;box-shadow:none;border:0;text-decoration:none;text-transform:none}.ai-wrap svg{display:inline-block}.ai-wrap .ai-audio-control,.ai-wrap .ai-btn{display:inline-block;font-weight:400;margin:0;padding:0;line-height:normal;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;text-align:center;box-shadow:none;vertical-align:middle;cursor:pointer;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border-radius:0;min-width:0;max-width:100%;min-height:0;width:auto;height:auto;background-image:none;background-color:transparent}.ai-wrap .ai-audio-control:after,.ai-wrap .ai-audio-control:before,.ai-wrap .ai-btn:after,.ai-wrap .ai-btn:before{display:none}.ai-wrap .ai-control-wrap{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;min-height:130px}.ai-wrap .ai-control-wrap-thumb{width:130px;height:100%;-webkit-box-flex:0;-webkit-flex:none;-ms-flex:none;flex:none;overflow:hidden;margin-right:20px;position:relative;line-height:0}.ai-wrap .ai-control-wrap-thumb:after{bottom:0;right:0;-webkit-transition:opacity 1.5s ease;transition:opacity 1.5s ease;content:"";width:300%;height:100%;background:-webkit-linear-gradient(left,#3e3e3e 8%,#4d4d4d 18%,#3e3e3e 33%);background:linear-gradient(90deg,#3e3e3e 8%,#4d4d4d 18%,#3e3e3e 33%);background-size:500px;position:absolute;top:0;left:0;opacity:1;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-name:backgroundPosition;animation-name:backgroundPosition;-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:0}.ai-wrap .ai-control-wrap-thumb img{margin:0;border:0;box-shadow:none}.ai-wrap .ai-control-wrap-controls{position:relative;width:100%}.ai-wrap .ai-audio-controls-main{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;width:100%;margin-bottom:16px}.ai-wrap .ai-audio-control{width:50px;height:50px;border-radius:50%;display:block;-webkit-box-flex:0;-webkit-flex:none;-ms-flex:none;flex:none;vertical-align:middle;color:#fff;background-color:#f70f5d;opacity:1;-webkit-transition:opacity 1.5s ease;transition:opacity 1.5s ease;padding:0;position:relative}.ai-wrap .ai-audio-control:focus,.ai-wrap .ai-audio-control:hover{border:0;background-color:#f70f5d}.ai-wrap .ai-audio-control:active,.ai-wrap .ai-audio-control:focus{outline:0}.ai-wrap .ai-audio-control.ai-audio-playing svg{left:0}.ai-wrap .ai-audio-control svg{fill:#fff;height:16px;position:relative;left:2px;top:1px}.ai-wrap .ai-track-info{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;padding-left:20px;-webkit-box-flex:1;-webkit-flex:auto;-ms-flex:auto;flex:auto;width:0}.ai-wrap .ai-track-title{margin:0 0 4px;line-height:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:20px}.ai-wrap .ai-track-title span{opacity:1;-webkit-transition:opacity 1.5s ease;transition:opacity 1.5s ease}.ai-wrap .ai-track-subtitle{margin:0;line-height:normal;opacity:.7;font-size:.8125em}.ai-wrap .ai-track-subtitle span{opacity:1;-webkit-transition:opacity 1.5s ease;transition:opacity 1.5s ease}.ai-wrap .ai-audio-controls-progress{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;margin-bottom:15px}.ai-wrap .ai-track-progress-bar{display:block;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;position:relative;height:5px;cursor:pointer;background-color:#3e3e3e}.ai-wrap .ai-track .ai-track-progress-bar{position:absolute;top:auto;bottom:0;left:0;width:100%;height:3px;background-color:transparent}.ai-wrap .ai-track .ai-track-progress-bar:hover{background-color:hsla(0,0%,100%,.3)}.ai-wrap .ai-track-progress{position:absolute;top:0;left:0;height:100%;pointer-events:none;background-color:#f70f5d;-webkit-transition:width .28s ease;transition:width .28s ease}.ai-wrap .ai-track .ai-track-progress{background-color:#fff;opacity:.5}.ai-wrap .ai-waveform-bar{display:block;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;position:relative;height:30px;cursor:pointer}.ai-wrap .ai-waveform{pointer-events:none}.ai-wrap .ai-track-time{-webkit-box-flex:0;-webkit-flex:none;-ms-flex:none;flex:none;font-size:13px;opacity:.7;width:65px;text-align:right;cursor:pointer}.ai-wrap .ai-audio-volume-control{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.ai-wrap .ai-audio-volume-bars{float:left;margin-right:3px;height:34px}.ai-wrap .ai-audio-volume-bars:after{content:"";display:table;clear:both}.ai-wrap .ai-volume-bar{float:left;position:relative;width:4px;height:100%;background-color:#3e3e3e;cursor:pointer;border-right:1px solid #202020}.ai-wrap .ai-volume-bar:before{content:"";position:absolute;bottom:0;left:0;right:0;-webkit-transition:background-color .18s ease;transition:background-color .18s ease}.ai-wrap .ai-volume-bar.ai-volume-bar-active:before{background-color:#f70f5d}.ai-wrap .ai-volume-bar:first-child::before{height:0%}.ai-wrap .ai-volume-bar:nth-child(2):before{height:10%}.ai-wrap .ai-volume-bar:nth-child(3):before{height:20%}.ai-wrap .ai-volume-bar:nth-child(4):before{height:30%}.ai-wrap .ai-volume-bar:nth-child(5):before{height:40%}.ai-wrap .ai-volume-bar:nth-child(6):before{height:50%}.ai-wrap .ai-volume-bar:nth-child(7):before{height:60%}.ai-wrap .ai-volume-bar:nth-child(8):before{height:70%}.ai-wrap .ai-volume-bar:nth-child(9):before{height:80%}.ai-wrap .ai-volume-bar:nth-child(10):before{height:90%}.ai-wrap .ai-volume-bar:nth-child(11):before{height:100%}.ai-wrap .ai-audio-volume-control-btns{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;height:100%}.ai-wrap .ai-audio-volume-control-btns .ai-btn{height:50%;font-size:10px}.ai-wrap .ai-audio-volume-control-btns .ai-btn:first-child{margin-bottom:1px}.ai-wrap .ai-audio-volume-control-btns .ai-btn:last-child{margin-top:1px}.ai-wrap .ai-audio-volume-control-btns .ai-btn svg{height:6px}.ai-wrap .ai-audio-controls-meta{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;opacity:1;-webkit-transition:opacity .36s ease;transition:opacity .36s ease}.ai-wrap .ai-audio-controls-meta:after{content:"";display:table;clear:both}.ai-wrap .ai-audio-controls-meta .ai-btn{margin-right:4px}.ai-wrap .ai-btn{width:32px;height:34px;font-size:14px;padding:0;background-image:none;background-color:#3e3e3e;color:#fff;-webkit-transition:color .18s ease;transition:color .18s ease;box-shadow:none;text-decoration:none;font-style:normal;text-transform:none}.ai-wrap .ai-btn svg{position:relative;fill:#fff;height:10px;-webkit-transition:fill .18s ease;transition:fill .18s ease}.ai-wrap .ai-btn:hover{background-color:#3e3e3e;border:0}.ai-wrap .ai-btn.ai-btn-active{color:#fff;background-color:#f70f5d}.ai-wrap .ai-btn.ai-btn-active svg{fill:#fff}.ai-wrap .ai-btn-repeat svg{height:17px;top:2px}.ai-wrap .ai-btn-shuffle svg{height:14px;top:2px;left:-1px}.ai-wrap .ai-tracklist-toggle{margin-left:auto;margin-right:0}.ai-wrap .ai-tracklist-toggle svg{height:16px;top:2px}.ai-wrap .ai-btn-playback-rate,.ai-wrap .ai-btn-skip-position{font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:11px;font-weight:700;letter-spacing:-.05em}.ai-wrap .ai-tracklist-wrap{opacity:1;-webkit-transition:opacity 1.5s ease;transition:opacity 1.5s ease}.ai-wrap .ai-tracklist-open{margin-top:20px}.ai-wrap .ai-tracklist-open+.ai-footer{margin-top:-1px;border-top:0}.ai-wrap .ai-tracklist{margin:0;padding:0;list-style:none}.ai-wrap .ai-track{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;position:relative;margin:0 0 1px;padding:0;list-style:none;height:40px;cursor:pointer;background-color:#3e3e3e;-webkit-transition:background-color .18s ease;transition:background-color .18s ease}.ai-wrap .ai-track.ai-track-active,.ai-wrap .ai-track:hover{background-color:#f70f5d;color:#fff}.ai-wrap .ai-track.ai-track-active .ai-track-btn,.ai-wrap .ai-track:hover .ai-track-btn{color:#fff}.ai-wrap .ai-track.ai-track-active .ai-track-btn svg,.ai-wrap .ai-track:hover .ai-track-btn svg{fill:#fff}.ai-wrap .ai-track-control{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;height:100%;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;overflow:hidden;border-left:1px solid #202020}.ai-wrap .ai-track-control:first-child{border-left:0}.ai-wrap .ai-track-thumb{display:inline-block;width:40px;max-height:100%;margin:0;overflow:hidden}.ai-wrap .ai-track-thumb img{width:40px;max-height:100%;box-shadow:none;border:0;margin:0}.ai-wrap .ai-track-no-thumb{display:block;width:130px;height:130px;line-height:150px;text-align:center;background-color:#3e3e3e}.ai-wrap .ai-track-no-thumb svg{fill:#fff;height:40px;opacity:.6}.ai-wrap .ai-track-no-thumb.ai-track-thumb{width:40px;height:40px;line-height:50px}.ai-wrap .ai-track-no-thumb.ai-track-thumb svg{height:16px}.ai-wrap .ai-track-name{display:inline-block;padding:0 10px;font-size:13px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;line-height:normal}.ai-wrap .ai-track-control-buttons{margin-left:auto;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.ai-wrap .ai-track-btn{display:inline-block;width:40px;height:40px;text-align:center;font-size:13px;line-height:40px;box-shadow:none;border:0;border-left:1px solid #202020;color:#fff;background:none;cursor:pointer;margin:0;padding:0}.ai-wrap .ai-track-btn svg{position:relative;fill:#fff;height:15px;-webkit-transition:fill .18s ease;transition:fill .18s ease;top:3px}.ai-wrap .ai-track-btn-repeat:hover span{opacity:1!important}.ai-wrap .ai-track-inline-play-btn{position:relative}.ai-wrap .ai-track-inline-play-btn:first-child{border-left:0}.ai-wrap .ai-track-inline-play-btn.ai-is-loading svg{opacity:0}.ai-wrap .ai-footer{border-top:1px solid #3e3e3e;margin-top:20px;padding-top:20px;text-align:center;font-size:11px}.ai-wrap .ai-footer a{text-decoration:none;box-shadow:none}.ai-wrap .ai-footer a,.ai-wrap .ai-footer a:hover{color:#f70f5d;border:0;opacity:1}.ai-wrap .ai-footer p{opacity:.7;margin:0;font-size:12px}.ai-wrap.ai-is-loading .ai-track-title{position:relative}.ai-wrap.ai-is-loading .ai-track-title span{opacity:0}.ai-wrap.ai-is-loading .ai-track-title:after{content:"";width:140px;height:8px;background:-webkit-linear-gradient(left,#3e3e3e 8%,#4d4d4d 18%,#3e3e3e 33%);background:linear-gradient(90deg,#3e3e3e 8%,#4d4d4d 18%,#3e3e3e 33%);background-size:500px;position:absolute;top:-10px;left:0;opacity:1;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-name:backgroundPosition;animation-name:backgroundPosition;-webkit-animation-timing-function:linear;animation-timing-function:linear}.ai-wrap.ai-is-loading .ai-track-subtitle{position:relative}.ai-wrap.ai-is-loading .ai-track-subtitle span{opacity:0}.ai-wrap.ai-is-loading .ai-track-subtitle:after{content:"";width:100px;height:6px;background:-webkit-linear-gradient(left,#3e3e3e 8%,#4d4d4d 18%,#3e3e3e 33%);background:linear-gradient(90deg,#3e3e3e 8%,#4d4d4d 18%,#3e3e3e 33%);background-size:500px;position:absolute;top:2px;left:0;opacity:1;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-name:backgroundPosition;animation-name:backgroundPosition;-webkit-animation-timing-function:linear;animation-timing-function:linear}.ai-wrap.ai-is-loading .ai-audio-controls-meta{opacity:0}.ai-wrap.ai-is-loading .ai-audio-control{opacity:.5}.ai-wrap.ai-is-loading .ai-control-wrap-thumb:after,.ai-wrap.ai-is-loading .ai-tracklist-wrap{opacity:1}.ai-wrap .ai-tracklist-enter{opacity:0}.ai-wrap .ai-tracklist-enter.ai-tracklist-enter-active{opacity:1;-webkit-transition:opacity .5s ease-in;transition:opacity .5s ease-in}.ai-wrap .ai-scroll-wrap .ai-tracklist{margin-right:15px}.ai-wrap .ai-scroll-wrap>div:last-child{top:0!important;bottom:0!important;background-color:rgba(62,62,62,.5)}.ai-wrap .ai-scroll-wrap>div:last-child div{background-color:#f70f5d!important}.ai-wrap.ai-type-global-footer{width:100%;position:fixed;bottom:0;left:0;right:0;padding:0;margin:0;z-index:999}.ai-wrap.ai-type-global-footer .ai-control-wrap{min-height:70px}.ai-wrap.ai-type-global-footer .ai-control-wrap-thumb{width:80px;height:80px;margin:0;line-height:115px}.ai-wrap.ai-type-global-footer .ai-control-wrap-controls{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ai-wrap.ai-type-global-footer .ai-audio-controls-main{padding:0 25px;margin:0;-webkit-box-flex:1;-webkit-flex:auto;-ms-flex:auto;flex:auto}.ai-wrap.ai-type-global-footer .ai-audio-controls-meta{width:auto;margin-left:20px;-webkit-box-flex:0;-webkit-flex:none;-ms-flex:none;flex:none}.ai-wrap.ai-type-global-footer .ai-audio-controls-meta-right{margin-left:auto}.ai-wrap.ai-type-global-footer .ai-track-progress-bar{-webkit-box-flex:initial;-webkit-flex:initial;-ms-flex:initial;flex:initial}.ai-wrap.ai-type-global-footer .ai-tracklist-toggle{margin-left:15px}.ai-wrap.ai-type-global-footer .ai-audio-controls-progress{margin-bottom:0}.ai-wrap.ai-type-global-footer .ai-tracklist-wrap{position:absolute;bottom:100%;width:100%;padding:20px;background-color:inherit;margin:0}.ai-control-spinner{border-radius:50%;position:absolute;top:-5px;left:-5px;width:calc(100% + 10px);height:calc(100% + 10px);font-size:10px;text-indent:-9999em;border-top:5px solid hsla(0,0%,100%,.2);border-right:5px solid hsla(0,0%,100%,.2);border-bottom:5px solid hsla(0,0%,100%,.2);border-left:5px solid currentColor;-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-animation:ai-spin 1.1s infinite linear;animation:ai-spin 1.1s infinite linear;z-index:1;opacity:0;-webkit-transition:opacity .18s ease;transition:opacity .18s ease;-webkit-transition-delay:.2s;transition-delay:.2s}.ai-audio-loading .ai-control-spinner{opacity:.8}.ai-control-spinner:after{border-radius:50%;position:absolute;width:100%;height:100%}.ai-track-spinner{border-radius:50%;position:absolute;top:50%;left:50%;margin-left:-10px!important;margin-top:-10px!important;width:20px;height:20px;font-size:10px;text-indent:-9999em;border-top:3px solid hsla(0,0%,100%,.2);border-right:3px solid hsla(0,0%,100%,.2);border-bottom:3px solid hsla(0,0%,100%,.2);border-left:3px solid currentColor;-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-animation:ai-spin 1.1s infinite linear;animation:ai-spin 1.1s infinite linear;z-index:1;opacity:0}.ai-track-loading .ai-track-spinner{opacity:.8}.ai-track-spinner:after{border-radius:50%;position:absolute;width:100%;height:100%}.ReactModal__Body--open{overflow:hidden}.ai-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;z-index:9999;background-color:rgba(0,0,0,.3)}.ai-modal{position:absolute;top:40px;width:460px;max-width:calc(100% - 30px);left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);background-color:#fff;color:#000;border-radius:4px;border:1px solid rgba(62,62,62,.4);outline:0;max-height:calc(100vh - 50px);overflow-y:auto;box-sizing:border-box}.ai-modal-header{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding:5px;margin-bottom:10px}.ai-modal-dismiss{display:inline-block;font-weight:400;margin:0;padding:0;line-height:normal;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;text-align:center;box-shadow:none;vertical-align:middle;cursor:pointer;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border-radius:0;min-width:0;max-width:100%;min-height:0;width:auto;height:auto;background-image:none;background-color:transparent;font-size:30px;margin-left:auto;padding-left:5px;padding-right:5px;line-height:1;color:#000}.ai-modal-dismiss:after,.ai-modal-dismiss:before{display:none}.ai-modal-dismiss:active,.ai-modal-dismiss:focus,.ai-modal-dismiss:hover{background:none;box-shadow:none;border:0;color:#000}.ai-modal-content{padding:0 20px 20px;white-space:pre-wrap}.ai-with-typography{font-family:sans-serif;font-weight:400;line-height:normal;letter-spacing:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ai-with-typography .ai-track-subtitle{font-size:13px}.ai-with-typography .ai-track-title{font-size:16px}.ai-modal-with-typography{font-family:sans-serif;font-weight:400;font-size:15px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.45;letter-spacing:0}.ai-narrow .ai-control-wrap{height:auto;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.ai-narrow .ai-control-wrap-thumb{width:100%;margin:0 0 20px}.ai-narrow .ai-audio-controls-meta{position:relative}.ai-narrow .ai-track-thumb{display:none}@media (max-width:767px){.ai-wrap.ai-type-global-footer .ai-audio-volume-control,.ai-wrap.ai-type-global-footer .ai-btn-repeat,.ai-wrap.ai-type-global-footer .ai-btn-skip-position,.ai-wrap.ai-type-global-footer .ai-thumb,.ai-wrap.ai-type-global-footer .ai-track-time{display:none}.ai-wrap.ai-type-global-footer .ai-track-title{font-size:15px}.ai-wrap.ai-type-global-footer .ai-audio-controls-main{padding-left:10px;padding-right:10px}.ai-wrap.ai-type-global-footer .ai-track-info{padding-left:10px}.ai-wrap.ai-type-global-footer .ai-audio-controls-meta{margin-left:10px}.ai-wrap .ai-audio-volume-control .ai-btn{display:none}}@media (max-width:480px){.ai-wrap .ai-control-wrap{height:auto;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.ai-wrap .ai-control-wrap-thumb{width:100%;margin:0 0 20px}.ai-wrap .ai-audio-controls-meta{position:relative}.ai-wrap .ai-audio-volume-control{display:none}.ai-wrap .ai-scroll-wrap .ai-tracklist{margin-right:0}}@media (max-width:320px){.ai-wrap .ai-track-thumb{display:none}} \ No newline at end of file diff --git a/wp-content/plugins/audioigniter/player/build/style.js b/wp-content/plugins/audioigniter/player/build/style.js new file mode 100644 index 00000000..7378fe18 --- /dev/null +++ b/wp-content/plugins/audioigniter/player/build/style.js @@ -0,0 +1 @@ +!function(n){function r(e){if(t[e])return t[e].exports;var o=t[e]={i:e,l:!1,exports:{}};return n[e].call(o.exports,o,o.exports,r),o.l=!0,o.exports}var t={};r.m=n,r.c=t,r.d=function(n,t,e){r.o(n,t)||Object.defineProperty(n,t,{configurable:!1,enumerable:!0,get:e})},r.n=function(n){var t=n&&n.__esModule?function(){return n.default}:function(){return n};return r.d(t,"a",t),t},r.o=function(n,r){return Object.prototype.hasOwnProperty.call(n,r)},r.p="",r(r.s=28)}({28:function(n,r){}}); \ No newline at end of file diff --git a/wp-content/plugins/audioigniter/player/dev-tracks.json b/wp-content/plugins/audioigniter/player/dev-tracks.json new file mode 100644 index 00000000..88816fe4 --- /dev/null +++ b/wp-content/plugins/audioigniter/player/dev-tracks.json @@ -0,0 +1,64 @@ +[ + { + "title": "Sunrise", + "subtitle": "Thoribass", + "audio": "https://www.cssigniter.com/assets/audioigniter/sunrise.mp3", + "buyUrl": "https://www.cssigniter.com", + "downloadUrl": "https:\/\/www.cssigniter.com\/assets\/audioigniter\/sunrise.mp3", + "cover": "https:\/\/www.cssigniter.com\/preview\/audioigniter\/files\/2016\/08\/Thoribass-Sunrise.jpg", + "lyrics": "Here in my mind\nYou know you might find\nSomething that you\n\nYou thought you once knew\nBut now it's all gone\nAnd you know it's no fun\n\nYeah I know it's no fun\nOh I know it's no fun\nI'm free to be whatever I\nWhatever I choose\nAnd I'll sing the blues if I want\nI'm free to be whatever I\nWhatever I choose\nAnd I'll sing the blues if I want\nWhatever you do\nWhatever you say\nYeah I know it's alright" + }, + { + "title": "Seriously long title lorem ipsum dolor sit amet, consectetur adipiscing elit. Non est enim.", + "subtitle": "The Fisherman", + "audio": "https://www.cssigniter.com/assets/audioigniter/sunrise.mp3", + "buyUrl": "https://www.cssigniter.com", + "downloadUrl": "https:\/\/www.cssigniter.com\/assets\/audioigniter\/sunrise.mp3", + "cover": "https:\/\/www.cssigniter.com\/preview\/audioigniter\/files\/2016\/08\/The-Fisherman-Another-Day.jpg" + }, + { + "title": "Remix Safety Guide", + "subtitle": "Rocavaco", + "audio": "https:\/\/www.cssigniter.com\/assets\/audioigniter\/remix.mp3", + "buyUrl": "https://www.cssigniter.com", + "cover": "https:\/\/www.cssigniter.com\/preview\/audioigniter\/files\/2016\/08\/Rocavaco-Remix-Safety-Guide.jpg", + "lyrics": "Lorem ipsum dolor sit amet, consectetur adipisicing elit. At eius hic illo natus vitae. Assumenda commodi eaque eos est eum excepturi fugiat provident, quidem saepe? Aut doloremque, unde? Delectus, dolorum." + }, + { + "title": "Tomorrow", + "subtitle": "MegaEnx", + "audio": "https:\/\/www.cssigniter.com\/assets\/audioigniter\/tomorrow.mp3", + "buyUrl": "", + "downloadUrl": "https:\/\/www.cssigniter.com\/assets\/audioigniter\/sunrise.mp3", + "cover": "" + }, + { + "title": "Is It Because I'm Black (David August Reconstruction)", + "subtitle": "Syl Johnson (SoundCloud)", + "audio": "https://soundcloud.com/enterofficial/maceo-plex-b2b-richie-hawtin-enterweek-11-sake-bar-space-ibiza-september-10th-2015", + "buyUrl": "", + "cover": "https://www.cssigniter.com/preview/audioigniter/files/2016/08/artworks-000103551140-ez6k4x-t500x500.jpg" + }, + { + "title": "Deep House Radio", + "subtitle": "", + "audio": "https://deephouseradio.radioca.st/stream/1/", + "buyUrl": "https://www.cssigniter.com", + "cover": "https://www.cssigniter.com/preview/audioigniter/files/2016/08/Rocavaco-Remix-Safety-Guide.jpg" + }, + { + "title": "Flash of Light", + "subtitle": "Kxmode", + "audio": "https:\/\/www.cssigniter.com\/assets\/audioigniter\/flashlight.mp3", + "buyUrl": "https://www.cssigniter.com", + "cover": "https:\/\/www.cssigniter.com\/preview\/audioigniter\/files\/2016\/08\/Kxmode-Flash-of-Light.jpg", + "lyrics": "Lorem ipsum dolor sit amet, consectetur adipisicing elit. At eius hic illo natus vitae. Assumenda commodi eaque eos est eum excepturi fugiat provident, quidem saepe? Aut doloremque, unde? Delectus, dolorum." + }, + { + "title": "We Get Mental", + "subtitle": "BitBurner", + "audio": "https:\/\/www.cssigniter.com\/assets\/audioigniter\/mental.mp3", + "buyUrl": "", + "cover": "https:\/\/www.cssigniter.com\/preview\/audioigniter\/files\/2016\/08\/BitBurner-We-Get-Mental.jpg" + } +] diff --git a/wp-content/plugins/audioigniter/player/package.json b/wp-content/plugins/audioigniter/player/package.json new file mode 100644 index 00000000..d2f88239 --- /dev/null +++ b/wp-content/plugins/audioigniter/player/package.json @@ -0,0 +1,62 @@ +{ + "name": "audioigniter", + "version": "1.6.1", + "description": "React audio player", + "main": "index.js", + "scripts": { + "start": "webpack-dev-server", + "build": "rm -rf ./build && webpack", + "lint": "eslint ./src --ext .js --ext .jsx --cache || true", + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [ + "audio", + "audio player", + "react" + ], + "author": "vmasto", + "license": "ISC", + "devDependencies": { + "autoprefixer": "^7.1.2", + "babel-core": "^6.25.0", + "babel-loader": "^7.1.1", + "babel-preset-es2015": "^6.24.1", + "babel-preset-react": "^6.24.1", + "babel-preset-react-hmre": "1.1.1", + "babel-preset-stage-1": "^6.24.1", + "babel-preset-stage-2": "^6.24.1", + "css-loader": "^0.28.4", + "eslint": "3.19.0", + "eslint-config-airbnb": "15.0.2", + "eslint-config-airbnb-base": "^11.2.0", + "eslint-config-prettier": "^4.1.0", + "eslint-plugin-import": "2.7.0", + "eslint-plugin-jsx-a11y": "5.1.1", + "eslint-plugin-prettier": "^3.0.1", + "eslint-plugin-react": "7.1.0", + "extract-text-webpack-plugin": "^3.0.0", + "html-webpack-plugin": "^2.29.0", + "node-sass": "^4.5.3", + "postcss-loader": "^2.0.6", + "precss": "^2.0.0", + "prettier": "^1.16.4", + "sass-loader": "^6.0.6", + "style-loader": "^0.18.2", + "webpack": "^3.2.0", + "webpack-dev-server": "^2.5.1", + "webpack-merge": "^4.1.0" + }, + "dependencies": { + "classnames": "2.3.0", + "es6-promise": "^4.1.1", + "prop-types": "^15.7.2", + "react": "^16.8.3", + "react-custom-scrollbars": "^4.1.2", + "react-dom": "^16.8.3", + "react-modal": "^3.8.1", + "react-sound": "^1.2.0", + "soundmanager2": "^2.97.20170602", + "sprintf-js": "1.1.1", + "whatwg-fetch": "0.11.1" + } +} diff --git a/wp-content/plugins/audioigniter/player/src/App.js b/wp-content/plugins/audioigniter/player/src/App.js new file mode 100644 index 00000000..35560d13 --- /dev/null +++ b/wp-content/plugins/audioigniter/player/src/App.js @@ -0,0 +1,64 @@ +import React, { Fragment, useState, createContext } from 'react'; +import PropTypes from 'prop-types'; + +import Player from './player/Player'; +import SimplePlayer from './player/SimplePlayer'; +import GlobalFooterPlayer from './player/GlobalFooterPlayer'; +import TrackLyricsModal from './player/components/TrackLyricsModal'; + +export const AppContext = createContext(); + +const App = ({ type, ...props }) => { + const [modal, setModalState] = useState({ + open: false, + track: null, + }); + + const toggleLyricsModal = (open, track) => + setModalState(prevState => ({ + ...prevState, + track, + open, + })); + + const { track, open } = modal; + + const PlayerActual = (() => { + if (type === 'simple') { + return SimplePlayer; + } + + if (type === 'global-footer') { + return GlobalFooterPlayer; + } + + return Player; + })(); + + return ( + + + + + + {track && track.lyrics && ( + toggleLyricsModal(false)} + > + {track && track.lyrics} + + )} + + ); +}; + +App.propTypes = { + type: PropTypes.string, +}; + +export default App; diff --git a/wp-content/plugins/audioigniter/player/src/index.ejs b/wp-content/plugins/audioigniter/player/src/index.ejs new file mode 100644 index 00000000..77991a00 --- /dev/null +++ b/wp-content/plugins/audioigniter/player/src/index.ejs @@ -0,0 +1,100 @@ + + + + + + <%= htmlWebpackPlugin.options.title %> + + + + +
+ +
+ +
+ + diff --git a/wp-content/plugins/audioigniter/player/src/index.js b/wp-content/plugins/audioigniter/player/src/index.js new file mode 100644 index 00000000..a82ab227 --- /dev/null +++ b/wp-content/plugins/audioigniter/player/src/index.js @@ -0,0 +1,97 @@ +import React from 'react'; +import { render } from 'react-dom'; +import 'es6-promise/auto'; +import 'whatwg-fetch'; + +import App from './App'; + +// Set up translatable strings here +// for development purposes only. The production build +// gets them from WordPress's injection +if (process.env.NODE_ENV !== 'production') { + window.aiStrings = { + play_title: 'Play %s', + pause_title: 'Pause %s', + previous: 'Previous track', + next: 'Next track', + toggle_list_repeat: 'Toggle track listing repeat', + toggle_list_visible: 'Toggle track listing visibility', + toggle_track_repeat: 'Toggle track repeat', + buy_track: 'Buy this track', + download_track: 'Download this track', + volume_up: 'Volume Up', + volume_down: 'Volume Down', + open_track_lyrics: 'Open track lyrics', + set_playback_rate: 'Set playback rate', + skip_forward: 'Skip forward', + skip_backward: 'Skip backward', + shuffle: 'Shuffle', + }; +} + +const nodes = document.getElementsByClassName('audioigniter-root'); + +function renderApp(node) { + const type = node.getAttribute('data-player-type'); + + const props = { + tracksUrl: node.getAttribute('data-tracks-url'), + displayTracklistCovers: JSON.parse( + node.getAttribute('data-display-tracklist-covers'), + ), + displayActiveCover: JSON.parse( + node.getAttribute('data-display-active-cover'), + ), + displayCredits: JSON.parse(node.getAttribute('data-display-credits')), + displayTracklist: JSON.parse(node.getAttribute('data-display-tracklist')), + allowTracklistToggle: JSON.parse( + node.getAttribute('data-allow-tracklist-toggle'), + ), + allowPlaybackRate: JSON.parse( + node.getAttribute('data-allow-playback-rate'), + ), + allowTracklistLoop: JSON.parse( + node.getAttribute('data-allow-tracklist-loop'), + ), + allowTrackLoop: JSON.parse(node.getAttribute('data-allow-track-loop')), + displayTrackNo: JSON.parse(node.getAttribute('data-display-track-no')), + displayBuyButtons: JSON.parse( + node.getAttribute('data-display-buy-buttons'), + ), + buyButtonsTarget: JSON.parse(node.getAttribute('data-buy-buttons-target')), + volume: parseInt(node.getAttribute('data-volume'), 10), + displayArtistNames: JSON.parse( + node.getAttribute('data-display-artist-names'), + ), + cycleTracks: JSON.parse(node.getAttribute('data-cycle-tracks')), + limitTracklistHeight: JSON.parse( + node.getAttribute('data-limit-tracklist-height'), + ), + tracklistHeight: parseInt(node.getAttribute('data-tracklist-height'), 10), + reverseTrackOrder: JSON.parse( + node.getAttribute('data-reverse-track-order'), + ), + maxWidth: node.getAttribute('data-max-width'), + soundcloudClientId: node.getAttribute('data-soundcloud-client-id'), + skipAmount: parseInt(node.getAttribute('data-skip-amount'), 10), + initialTrack: parseInt(node.getAttribute('data-initial-track'), 10), + delayBetweenTracks: parseInt(node.getAttribute('data-tracks-delay'), 10), + stopOnTrackFinish: JSON.parse(node.getAttribute('data-stop-on-finish')), + defaultShuffle: JSON.parse(node.getAttribute('data-shuffle')), + shuffleEnabled: JSON.parse(node.getAttribute('data-shuffle')), + countdownTimerByDefault: JSON.parse( + node.getAttribute('data-timer-countdown'), + ), + }; + + render(, node); +} + +Array.prototype.slice.call(nodes).forEach(node => { + renderApp(node); +}); + +// eslint-disable-next-line no-underscore-dangle +window.__CI_AUDIOIGNITER_MANUAL_INIT__ = node => { + renderApp(node); +}; diff --git a/wp-content/plugins/audioigniter/player/src/player/GlobalFooterPlayer.js b/wp-content/plugins/audioigniter/player/src/player/GlobalFooterPlayer.js new file mode 100644 index 00000000..bb30cbcc --- /dev/null +++ b/wp-content/plugins/audioigniter/player/src/player/GlobalFooterPlayer.js @@ -0,0 +1,357 @@ +import React, { Fragment } from 'react'; +import PropTypes from 'prop-types'; +import Sound from 'react-sound'; +import { sprintf } from 'sprintf-js'; +import classNames from 'classnames'; + +import soundProvider from './soundProvider'; +import Cover from './components/Cover'; +import Button from './components/Button'; +import ProgressBar from './components/ProgressBar'; +import Time from './components/Time'; +import VolumeControl from './components/VolumeControl'; +import TracklistWrap from './components/TracklistWrap'; +import { + PlayIcon, + PauseIcon, + NextIcon, + PreviousIcon, + PlaylistIcon, + RefreshIcon, + LyricsIcon, +} from './components/Icons'; +import { AppContext } from '../App'; +import typographyDisabled from '../utils/typography-disabled'; + +class GlobalFooterPlayer extends React.Component { + constructor(props) { + super(props); + + this.state = { + isTrackListOpen: this.props.displayTracklist, + }; + + this.toggleTracklist = this.toggleTracklist.bind(this); + } + + toggleTracklist() { + this.setState(state => ({ + isTrackListOpen: !state.isTrackListOpen, + })); + } + + render() { + const { isTrackListOpen } = this.state; + + const { + tracks, + playStatus, + activeIndex, + volume, + position, + duration, + playbackRate, + + currentTrack, + playTrack, + togglePlay, + nextTrack, + prevTrack, + setPosition, + setVolume, + toggleTracklistCycling, + cycleTracks, + setTrackCycling, + setPlaybackRate, + + allowPlaybackRate, + allowTracklistToggle, + allowTracklistLoop, + allowTrackLoop, + reverseTrackOrder, + displayTrackNo, + displayTracklistCovers, + displayActiveCover, + limitTracklistHeight, + tracklistHeight, + displayBuyButtons, + buyButtonsTarget, + displayArtistNames, + repeatingTrackIndex, + skipAmount, + skipPosition, + countdownTimerByDefault, + buffering, + } = this.props; + + const classes = classNames({ + 'ai-wrap': true, + 'ai-type-global-footer': true, + 'ai-is-loading': !tracks.length, + 'ai-with-typography': !typographyDisabled(), + }); + + const audioControlClasses = classNames({ + 'ai-audio-control': true, + 'ai-audio-playing': playStatus === Sound.status.PLAYING, + 'ai-audio-loading': buffering, + }); + + return ( +
(this.root = ref)} // eslint-disable-line no-return-assign + className={classes} + > +
+ {displayActiveCover && ( + + )} + +
+ + +
+ + +
+ {tracks.length > 1 && ( + + )} + + {tracks.length > 1 && ( + + )} + + + + {allowTracklistLoop && ( + + )} + + {allowPlaybackRate && ( + + )} + + {skipAmount > 0 && ( + + + + + )} + + {currentTrack && currentTrack.lyrics && !isTrackListOpen && ( + + {({ toggleLyricsModal }) => ( + + )} + + )} +
+ +
+

+ {currentTrack.title} +

+ {(tracks.length === 0 || currentTrack.subtitle) && + displayArtistNames && ( +

+ {currentTrack.subtitle} +

+ )} +
+ +
+
+
+
+
+ +
+ +
+
+ ); + } +} + +GlobalFooterPlayer.propTypes = { + tracks: PropTypes.arrayOf(PropTypes.object), + playStatus: PropTypes.oneOf([ + Sound.status.PLAYING, + Sound.status.PAUSED, + Sound.status.STOPPED, + ]), + activeIndex: PropTypes.number, + volume: PropTypes.number, + position: PropTypes.number, + duration: PropTypes.number, + currentTrack: PropTypes.object.isRequired, // eslint-disable-line react/forbid-prop-types + playTrack: PropTypes.func.isRequired, + togglePlay: PropTypes.func.isRequired, + nextTrack: PropTypes.func.isRequired, + prevTrack: PropTypes.func.isRequired, + setPosition: PropTypes.func.isRequired, + setVolume: PropTypes.func.isRequired, + toggleTracklistCycling: PropTypes.func.isRequired, + cycleTracks: PropTypes.bool.isRequired, + displayTracklist: PropTypes.bool, + allowTracklistToggle: PropTypes.bool, + allowTracklistLoop: PropTypes.bool, + reverseTrackOrder: PropTypes.bool, + displayTrackNo: PropTypes.bool, + displayActiveCover: PropTypes.bool, + displayTracklistCovers: PropTypes.bool, + limitTracklistHeight: PropTypes.bool, + tracklistHeight: PropTypes.number, + displayBuyButtons: PropTypes.bool, + buyButtonsTarget: PropTypes.bool, + displayArtistNames: PropTypes.bool, + setTrackCycling: PropTypes.func.isRequired, + repeatingTrackIndex: PropTypes.number, + allowTrackLoop: PropTypes.bool, + playbackRate: PropTypes.number, + setPlaybackRate: PropTypes.func, + skipAmount: PropTypes.number, + skipPosition: PropTypes.func.isRequired, + countdownTimerByDefault: PropTypes.bool, + allowPlaybackRate: PropTypes.bool, + buffering: PropTypes.bool, +}; + +export default soundProvider(GlobalFooterPlayer, { + onFinishedPlaying(props) { + const { + repeatingTrackIndex, + cycleTracks, + nextTrack, + activeIndex, + playTrack, + trackQueue, + } = props; + + if (repeatingTrackIndex != null) { + playTrack(repeatingTrackIndex); + return; + } + + if (cycleTracks) { + nextTrack(); + return; + } + + // Check if not the last track + if (activeIndex !== trackQueue[trackQueue.length - 1]) { + nextTrack(); + } + }, +}); diff --git a/wp-content/plugins/audioigniter/player/src/player/Player.js b/wp-content/plugins/audioigniter/player/src/player/Player.js new file mode 100644 index 00000000..0affca78 --- /dev/null +++ b/wp-content/plugins/audioigniter/player/src/player/Player.js @@ -0,0 +1,403 @@ +import React, { Fragment } from 'react'; +import PropTypes from 'prop-types'; +import Sound from 'react-sound'; +import { sprintf } from 'sprintf-js'; +import classNames from 'classnames'; + +import TracklistWrap from './components/TracklistWrap'; +import ProgressBar from './components/ProgressBar'; +import Time from './components/Time'; +import VolumeControl from './components/VolumeControl'; +import Button from './components/Button'; +import Cover from './components/Cover'; +import { + PlayIcon, + PauseIcon, + NextIcon, + PreviousIcon, + PlaylistIcon, + RefreshIcon, + LyricsIcon, + ShuffleIcon, +} from './components/Icons'; +import soundProvider from './soundProvider'; +import { AppContext } from '../App'; +import typographyDisabled from '../utils/typography-disabled'; + +class Player extends React.Component { + constructor(props) { + super(props); + + this.state = { + isTrackListOpen: this.props.displayTracklist, + }; + + this.toggleTracklist = this.toggleTracklist.bind(this); + this.isNarrowContext = this.isNarrowContext.bind(this); + } + + isNarrowContext() { + return this.root && this.root.offsetWidth < 480 && window.innerWidth > 480; + } + + toggleTracklist() { + this.setState(state => ({ + isTrackListOpen: !state.isTrackListOpen, + })); + } + + render() { + const { isTrackListOpen } = this.state; + + const { + tracks, + playStatus, + activeIndex, + volume, + position, + duration, + playbackRate, + shuffle, + shuffleEnabled, + + currentTrack, + playTrack, + togglePlay, + nextTrack, + prevTrack, + setPosition, + setVolume, + setPlaybackRate, + toggleTracklistCycling, + cycleTracks, + toggleShuffle, + + allowTracklistToggle, + allowTracklistLoop, + allowPlaybackRate, + allowTrackLoop, + setTrackCycling, + reverseTrackOrder, + displayTrackNo, + displayTracklistCovers, + displayActiveCover, + displayCredits, + limitTracklistHeight, + tracklistHeight, + displayBuyButtons, + buyButtonsTarget, + displayArtistNames, + maxWidth, + repeatingTrackIndex, + skipAmount, + skipPosition, + countdownTimerByDefault, + buffering, + } = this.props; + + const classes = classNames({ + 'ai-wrap': true, + 'ai-type-full': true, + 'ai-is-loading': !tracks.length, + 'ai-narrow': this.isNarrowContext(), + 'ai-with-typography': !typographyDisabled(), + }); + + const audioControlClasses = classNames({ + 'ai-audio-control': true, + 'ai-audio-playing': playStatus === Sound.status.PLAYING, + 'ai-audio-loading': buffering, + }); + + return ( +
(this.root = ref)} // eslint-disable-line no-return-assign + className={classes} + style={{ maxWidth }} + > +
+ {displayActiveCover && ( + + )} + +
+
+ + +
+

+ {currentTrack.title} +

+ {(tracks.length === 0 || currentTrack.subtitle) && + displayArtistNames && ( +

+ {currentTrack.subtitle} +

+ )} +
+
+ +
+ + +
+ +
+ {tracks.length > 1 && ( + + )} + + {tracks.length > 1 && ( + + )} + + + + {allowTracklistLoop && ( + + )} + + {shuffleEnabled && ( + + )} + + {allowPlaybackRate && ( + + )} + + {skipAmount > 0 && ( + + + + + )} + + {currentTrack && currentTrack.lyrics && !isTrackListOpen && ( + + {({ toggleLyricsModal }) => ( + + )} + + )} + + {allowTracklistToggle && ( + + )} +
+
+
+ +
+ +
+ + {displayCredits && ( +
+

+ Powered by{' '} + + AudioIgniter + +

+
+ )} +
+ ); + } +} + +Player.propTypes = { + tracks: PropTypes.arrayOf(PropTypes.object), + playStatus: PropTypes.oneOf([ + Sound.status.PLAYING, + Sound.status.PAUSED, + Sound.status.STOPPED, + ]), + activeIndex: PropTypes.number, + volume: PropTypes.number, + position: PropTypes.number, + duration: PropTypes.number, + currentTrack: PropTypes.object.isRequired, // eslint-disable-line react/forbid-prop-types + playTrack: PropTypes.func.isRequired, + togglePlay: PropTypes.func.isRequired, + nextTrack: PropTypes.func.isRequired, + prevTrack: PropTypes.func.isRequired, + setPosition: PropTypes.func.isRequired, + setVolume: PropTypes.func.isRequired, + toggleTracklistCycling: PropTypes.func.isRequired, + setTrackCycling: PropTypes.func.isRequired, + cycleTracks: PropTypes.bool.isRequired, + displayTracklist: PropTypes.bool, + allowTracklistToggle: PropTypes.bool, + allowTracklistLoop: PropTypes.bool, + allowTrackLoop: PropTypes.bool, + reverseTrackOrder: PropTypes.bool, + displayTrackNo: PropTypes.bool, + displayCredits: PropTypes.bool, + displayActiveCover: PropTypes.bool, + displayTracklistCovers: PropTypes.bool, + limitTracklistHeight: PropTypes.bool, + tracklistHeight: PropTypes.number, + displayBuyButtons: PropTypes.bool, + buyButtonsTarget: PropTypes.bool, + displayArtistNames: PropTypes.bool, + maxWidth: PropTypes.string, + repeatingTrackIndex: PropTypes.number, + playbackRate: PropTypes.number, + setPlaybackRate: PropTypes.func, + skipAmount: PropTypes.number, + skipPosition: PropTypes.func.isRequired, + countdownTimerByDefault: PropTypes.bool, + allowPlaybackRate: PropTypes.bool, + buffering: PropTypes.bool, + shuffleEnabled: PropTypes.bool, + shuffle: PropTypes.bool, + toggleShuffle: PropTypes.func.isRequired, +}; + +export default soundProvider(Player, { + onFinishedPlaying(props) { + const { + repeatingTrackIndex, + cycleTracks, + nextTrack, + activeIndex, + playTrack, + trackQueue, + } = props; + + if (repeatingTrackIndex != null) { + playTrack(repeatingTrackIndex); + return; + } + + if (cycleTracks) { + nextTrack(); + return; + } + + // Check if not the last track + if (activeIndex !== trackQueue[trackQueue.length - 1]) { + nextTrack(); + } + }, +}); diff --git a/wp-content/plugins/audioigniter/player/src/player/SimplePlayer.js b/wp-content/plugins/audioigniter/player/src/player/SimplePlayer.js new file mode 100644 index 00000000..31818afb --- /dev/null +++ b/wp-content/plugins/audioigniter/player/src/player/SimplePlayer.js @@ -0,0 +1,124 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import Sound from 'react-sound'; +import classNames from 'classnames'; + +import soundProvider from './soundProvider'; +import Tracklist from './components/Tracklist'; +import typographyDisabled from '../utils/typography-disabled'; + +const SimplePlayer = props => { + const { playStatus } = props; + const activeIndex = + playStatus === Sound.status.PLAYING || playStatus === Sound.status.PAUSED + ? props.activeIndex + : undefined; + + const classes = classNames({ + 'ai-wrap': true, + 'ai-type-simple': true, + 'ai-with-typography': !typographyDisabled(), + }); + + return ( +
+
+ +
+ + {props.displayCredits && ( +
+

+ Powered by{' '} + + AudioIgniter + +

+
+ )} +
+ ); +}; + +SimplePlayer.propTypes = { + tracks: PropTypes.arrayOf(PropTypes.object), + playStatus: PropTypes.oneOf([ + Sound.status.PLAYING, + Sound.status.PAUSED, + Sound.status.STOPPED, + ]), + activeIndex: PropTypes.number, + position: PropTypes.number, + duration: PropTypes.number, + setPosition: PropTypes.func.isRequired, + togglePlay: PropTypes.func.isRequired, + setTrackCycling: PropTypes.func.isRequired, + allowTrackLoop: PropTypes.bool, + + maxWidth: PropTypes.string, + reverseTrackOrder: PropTypes.bool, + displayTrackNo: PropTypes.bool, + buyButtonsTarget: PropTypes.bool, + displayArtistNames: PropTypes.bool, + displayBuyButtons: PropTypes.bool, + displayCredits: PropTypes.bool, + repeatingTrackIndex: PropTypes.number, + playbackRate: PropTypes.number, + setPlaybackRate: PropTypes.func, + allowPlaybackRate: PropTypes.bool, + buffering: PropTypes.bool, +}; + +export default soundProvider(SimplePlayer, { + onFinishedPlaying(props) { + const { + repeatingTrackIndex, + cycleTracks, + nextTrack, + activeIndex, + playTrack, + trackQueue, + } = props; + + if (repeatingTrackIndex != null) { + playTrack(repeatingTrackIndex); + return; + } + + if (cycleTracks) { + nextTrack(); + return; + } + + // Check if not the last track + if (activeIndex !== trackQueue[trackQueue.length - 1]) { + nextTrack(); + } + }, +}); diff --git a/wp-content/plugins/audioigniter/player/src/player/components/Button.js b/wp-content/plugins/audioigniter/player/src/player/components/Button.js new file mode 100644 index 00000000..a2cdb427 --- /dev/null +++ b/wp-content/plugins/audioigniter/player/src/player/components/Button.js @@ -0,0 +1,35 @@ +import React from 'react'; +import PropTypes from 'prop-types'; + +const Button = ({ + className, + onClick, + children, + ariaLabel, + ariaPressed, + ariaExpanded, + ariaControls, +}) => ( + +); + +Button.propTypes = { + className: PropTypes.string, + onClick: PropTypes.func, + children: PropTypes.node, + ariaLabel: PropTypes.string, + ariaPressed: PropTypes.bool, + ariaExpanded: PropTypes.bool, + ariaControls: PropTypes.string, +}; + +export default Button; diff --git a/wp-content/plugins/audioigniter/player/src/player/components/Cover.js b/wp-content/plugins/audioigniter/player/src/player/components/Cover.js new file mode 100644 index 00000000..1f8b9a3a --- /dev/null +++ b/wp-content/plugins/audioigniter/player/src/player/components/Cover.js @@ -0,0 +1,21 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import { MusicNoteIcon } from './Icons'; + +const Cover = ({ className, title, src, onClick }) => ( +
+ {src ? {title : } +
+); + +Cover.propTypes = { + className: PropTypes.string, + title: PropTypes.string, + src: PropTypes.string, + onClick: PropTypes.func, +}; + +export default Cover; diff --git a/wp-content/plugins/audioigniter/player/src/player/components/Icons.js b/wp-content/plugins/audioigniter/player/src/player/components/Icons.js new file mode 100644 index 00000000..0bbc7001 --- /dev/null +++ b/wp-content/plugins/audioigniter/player/src/player/components/Icons.js @@ -0,0 +1,105 @@ +import React from 'react'; + +export const PlayIcon = () => { + return ( + + + + ); +}; + +export const PauseIcon = () => { + return ( + + + + ); +}; + +export const NextIcon = () => { + return ( + + + + ); +}; + +export const PreviousIcon = () => { + return ( + + + + ); +}; + +export const PlaylistIcon = () => { + return ( + + + + ); +}; + +export const VolumeUpIcon = () => { + return ( + + + + ); +}; + +export const VolumeDownIcon = () => { + return ( + + + + ); +}; + +export const MusicNoteIcon = () => { + return ( + + + + ); +}; + +export const CartIcon = () => { + return ( + + + + ); +}; + +export const RefreshIcon = () => { + return ( + + + + ); +}; + +export const DownloadIcon = () => { + return ( + + + + ); +}; + +export const LyricsIcon = () => { + return ( + + + + ); +}; + +export const ShuffleIcon = () => { + return ( + + + + ); +}; diff --git a/wp-content/plugins/audioigniter/player/src/player/components/ProgressBar.js b/wp-content/plugins/audioigniter/player/src/player/components/ProgressBar.js new file mode 100644 index 00000000..eff32f49 --- /dev/null +++ b/wp-content/plugins/audioigniter/player/src/player/components/ProgressBar.js @@ -0,0 +1,42 @@ +import React from 'react'; +import PropTypes from 'prop-types'; + +export default class ProgressBar extends React.Component { + constructor() { + super(); + this.handleClick = this.handleClick.bind(this); + } + + handleClick(event) { + const { duration, setPosition } = this.props; + + if (setPosition == null) { + return; + } + + const offsetX = + event.pageX - event.currentTarget.getBoundingClientRect().left; + const posX = offsetX / event.currentTarget.offsetWidth; + + setPosition(posX * duration); + } + + render() { + const { position, duration } = this.props; + + return ( + + + + ); + } +} + +ProgressBar.propTypes = { + setPosition: PropTypes.func, + position: PropTypes.number.isRequired, + duration: PropTypes.number.isRequired, +}; diff --git a/wp-content/plugins/audioigniter/player/src/player/components/Time.js b/wp-content/plugins/audioigniter/player/src/player/components/Time.js new file mode 100644 index 00000000..786b1e88 --- /dev/null +++ b/wp-content/plugins/audioigniter/player/src/player/components/Time.js @@ -0,0 +1,68 @@ +import React from 'react'; +import PropTypes from 'prop-types'; + +export default class Time extends React.Component { + constructor(props) { + super(props); + + const { countdown } = this.props; + + this.state = { + showRemaining: countdown || false, + }; + + this.handleClick = this.handleClick.bind(this); + } + + /** + * Pretty prints time remaining/elapsed + * + * @param {number} position - Track position in milliseconds + * @param {number} duration - Track duration in milliseconds + * @returns {string} - Time pretty formatted + */ + formatTime(position, duration) { + const { showRemaining } = this.state; + const positionInSeconds = showRemaining + ? (duration - position) / 1000 + : position / 1000; + const hours = Math.floor(positionInSeconds / 3600); + let min = Math.floor((positionInSeconds % 3600) / 60); + let sec = Math.floor(positionInSeconds % 60); + let time = '00:00'; + + min = min >= 10 ? min : `0${min}`; + sec = sec >= 10 ? sec : `0${sec}`; + + if (!isNaN(sec)) { + if (hours) { + time = `${hours}:${min}:${sec}`; + } else { + time = `${min}:${sec}`; + } + } + + return showRemaining ? `-${time}` : time; + } + + handleClick() { + const { showRemaining } = this.state; + this.setState({ showRemaining: !showRemaining }); + } + + render() { + const { position, duration } = this.props; + + return ( + + {this.formatTime(position, duration)} + + ); + } +} + +Time.propTypes = { + position: PropTypes.number.isRequired, + duration: PropTypes.number.isRequired, + countdown: PropTypes.bool.isRequired, +}; diff --git a/wp-content/plugins/audioigniter/player/src/player/components/Track.js b/wp-content/plugins/audioigniter/player/src/player/components/Track.js new file mode 100644 index 00000000..2c1a7c60 --- /dev/null +++ b/wp-content/plugins/audioigniter/player/src/player/components/Track.js @@ -0,0 +1,153 @@ +import React, { useContext } from 'react'; +import PropTypes from 'prop-types'; +import Sound from 'react-sound'; +import { sprintf } from 'sprintf-js'; +import classNames from 'classnames'; + +import TrackTitle from './TrackTitle'; +import Cover from './Cover'; +import TrackButtons from './TrackButtons'; +import ProgressBar from './ProgressBar'; +import { PlayIcon, PauseIcon } from './Icons'; +import { AppContext } from '../../App'; + +const Track = ({ + track, + index, + trackNo, + isActive, + playStatus, + duration, + position, + setPosition, + isStandalone, + buyButtonsTarget, + displayArtistNames, + displayCovers, + displayBuyButtons, + onTrackClick, + onTrackLoop, + className, + isLooping, + playbackRate, + setPlaybackRate, + allowPlaybackRate, + buffering, +}) => { + const { toggleLyricsModal } = useContext(AppContext); + const isPlaying = isActive && playStatus === Sound.status.PLAYING; + const hasProgressBar = + typeof position !== 'undefined' && + typeof duration !== 'undefined' && + isActive && + isStandalone; + const classes = classNames({ + [className]: !!className, + 'ai-track-active': isActive, + 'ai-track-loading': isActive && buffering, + }); + + return ( +
  • + {displayCovers && ( + onTrackClick(index)} + /> + )} + + {isStandalone && ( + + )} + +
    onTrackClick(index)}> + +
    + + onTrackLoop(index))} + isLooping={isLooping} + displayBuyButtons={displayBuyButtons} + onOpenTrackLyrics={ + track.lyrics && (() => toggleLyricsModal(true, track)) + } + playbackRate={playbackRate} + setPlaybackRate={setPlaybackRate} + allowPlaybackRate={allowPlaybackRate} + isPlaying={isPlaying} + /> + + {hasProgressBar && ( + + )} +
  • + ); +}; + +Track.propTypes = { + track: PropTypes.shape({ + audio: PropTypes.string, + buyUrl: PropTypes.string, + cover: PropTypes.string, + title: PropTypes.string, + subtitle: PropTypes.string, + lyrics: PropTypes.string, + downloadUrl: PropTypes.string, + }), + index: PropTypes.number.isRequired, + trackNo: PropTypes.number, + isActive: PropTypes.bool, + position: PropTypes.number, + duration: PropTypes.number, + setPosition: PropTypes.func, + playStatus: PropTypes.oneOf([ + Sound.status.PLAYING, + Sound.status.PAUSED, + Sound.status.STOPPED, + ]), + onTrackClick: PropTypes.func.isRequired, + onTrackLoop: PropTypes.func, + className: PropTypes.string.isRequired, + isStandalone: PropTypes.bool, + buyButtonsTarget: PropTypes.bool, + displayArtistNames: PropTypes.bool, + displayCovers: PropTypes.bool, + displayBuyButtons: PropTypes.bool, + isLooping: PropTypes.bool, + playbackRate: PropTypes.number, + setPlaybackRate: PropTypes.func, + allowPlaybackRate: PropTypes.bool, + buffering: PropTypes.bool, +}; + +export default Track; diff --git a/wp-content/plugins/audioigniter/player/src/player/components/TrackButtons.js b/wp-content/plugins/audioigniter/player/src/player/components/TrackButtons.js new file mode 100644 index 00000000..a420fd9f --- /dev/null +++ b/wp-content/plugins/audioigniter/player/src/player/components/TrackButtons.js @@ -0,0 +1,131 @@ +import React, { Fragment } from 'react'; +import PropTypes from 'prop-types'; +import { CartIcon, DownloadIcon, LyricsIcon, RefreshIcon } from './Icons'; + +const TrackButtons = ({ + buyButtonsTarget, + buyUrl, + downloadUrl, + downloadFilename, + onTrackLoop, + isLooping, + displayBuyButtons, + onOpenTrackLyrics, + setPlaybackRate, + playbackRate, + allowPlaybackRate, + isPlaying, +}) => { + if ( + buyUrl == null && + downloadUrl == null && + !onTrackLoop && + !onOpenTrackLyrics + ) { + return null; + } + + return ( +
    + {buyUrl && displayBuyButtons && ( + + + + )} + + {downloadUrl && downloadFilename && displayBuyButtons && ( + + + + )} + + {onOpenTrackLyrics && ( + // eslint-disable-next-line + { + event.preventDefault(); + onOpenTrackLyrics(); + }} + > + + + )} + + {allowPlaybackRate && isPlaying && ( + { + event.preventDefault(); + setPlaybackRate(); + }} + > + ×{playbackRate} + + )} + + {onTrackLoop && ( + // eslint-disable-next-line + { + event.preventDefault(); + onTrackLoop(); + }} + > + + + + + )} +
    + ); +}; + +TrackButtons.propTypes = { + buyButtonsTarget: PropTypes.bool, + buyUrl: PropTypes.string, + downloadUrl: PropTypes.string, + downloadFilename: PropTypes.string, + onTrackLoop: PropTypes.func, + isLooping: PropTypes.bool, + displayBuyButtons: PropTypes.bool, + onOpenTrackLyrics: PropTypes.func, + playbackRate: PropTypes.number, + setPlaybackRate: PropTypes.func, + allowPlaybackRate: PropTypes.bool, + isPlaying: PropTypes.bool, +}; + +export default TrackButtons; diff --git a/wp-content/plugins/audioigniter/player/src/player/components/TrackLyricsModal.js b/wp-content/plugins/audioigniter/player/src/player/components/TrackLyricsModal.js new file mode 100644 index 00000000..1e261716 --- /dev/null +++ b/wp-content/plugins/audioigniter/player/src/player/components/TrackLyricsModal.js @@ -0,0 +1,43 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import Modal from 'react-modal'; + +if (document.querySelector('.audioigniter-root')) { + Modal.setAppElement('.audioigniter-root'); +} + +const TrackLyricsModal = ({ isOpen, closeModal, children }) => { + return ( + +
    +
    + +
    + +
    {children}
    +
    +
    + ); +}; + +const propTypes = { + isOpen: PropTypes.bool, + closeModal: PropTypes.func.isRequired, + children: PropTypes.any, +}; + +TrackLyricsModal.propTypes = propTypes; + +export default TrackLyricsModal; diff --git a/wp-content/plugins/audioigniter/player/src/player/components/TrackTitle.js b/wp-content/plugins/audioigniter/player/src/player/components/TrackTitle.js new file mode 100644 index 00000000..8eceaca2 --- /dev/null +++ b/wp-content/plugins/audioigniter/player/src/player/components/TrackTitle.js @@ -0,0 +1,36 @@ +import React from 'react'; +import PropTypes from 'prop-types'; + +const TrackTitle = ({ + className, + style, + track, + trackNo, + displayArtistNames, +}) => { + let trackTitle = track.title; + + if (displayArtistNames && track.subtitle) { + trackTitle = `${track.title} - ${track.subtitle}`; + } + + if (trackNo != null) { + trackTitle = `${trackNo}. ${trackTitle}`; + } + + return ( + + {trackTitle} + + ); +}; + +TrackTitle.propTypes = { + track: PropTypes.object.isRequired, // eslint-disable-line react/forbid-prop-types + trackNo: PropTypes.number, + style: PropTypes.object, // eslint-disable-line react/forbid-prop-types + className: PropTypes.string, + displayArtistNames: PropTypes.bool, +}; + +export default TrackTitle; diff --git a/wp-content/plugins/audioigniter/player/src/player/components/Tracklist.js b/wp-content/plugins/audioigniter/player/src/player/components/Tracklist.js new file mode 100644 index 00000000..8a25d6e5 --- /dev/null +++ b/wp-content/plugins/audioigniter/player/src/player/components/Tracklist.js @@ -0,0 +1,77 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import Sound from 'react-sound'; +import Track from './Track'; + +const Tracklist = ({ ...props }) => { + const { tracks } = props; + + return ( +
      + {tracks && + tracks.map((track, index) => { + const trackNo = props.reverseTrackOrder + ? tracks.length - index + : index + 1; + const isLooping = index === props.repeatingTrackIndex; + + return ( + + ); + })} +
    + ); +}; + +Tracklist.propTypes = { + tracks: PropTypes.arrayOf(PropTypes.object).isRequired, + playStatus: PropTypes.oneOf([ + Sound.status.PLAYING, + Sound.status.PAUSED, + Sound.status.STOPPED, + ]), + activeTrackIndex: PropTypes.number, + position: PropTypes.number, + duration: PropTypes.number, + setPosition: PropTypes.func, + standaloneTracks: PropTypes.bool, + onTrackClick: PropTypes.func.isRequired, + onTrackLoop: PropTypes.func, + className: PropTypes.string, + trackClassName: PropTypes.string, + reverseTrackOrder: PropTypes.bool, + displayTrackNo: PropTypes.bool, + displayBuyButtons: PropTypes.bool, + buyButtonsTarget: PropTypes.bool, + displayCovers: PropTypes.bool, + displayArtistNames: PropTypes.bool, + playbackRate: PropTypes.number, + setPlaybackRate: PropTypes.func, + allowPlaybackRate: PropTypes.bool, + buffering: PropTypes.bool, +}; + +export default Tracklist; diff --git a/wp-content/plugins/audioigniter/player/src/player/components/TracklistWrap.js b/wp-content/plugins/audioigniter/player/src/player/components/TracklistWrap.js new file mode 100644 index 00000000..331b2c59 --- /dev/null +++ b/wp-content/plugins/audioigniter/player/src/player/components/TracklistWrap.js @@ -0,0 +1,95 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import { Scrollbars } from 'react-custom-scrollbars'; +import Tracklist from './Tracklist'; + +export default class TracklistWrap extends React.Component { + componentWillReceiveProps(nextProps) { + const { activeTrackIndex, limitTracklistHeight } = this.props; + + if ( + activeTrackIndex !== nextProps.activeTrackIndex && + limitTracklistHeight + ) { + this.scrollToTrack(nextProps.activeTrackIndex); + } + } + + scrollToTrack(trackIndex) { + const { tracks } = this.props; + const trackHeight = this.scrollbarsRef.getScrollHeight() / tracks.length; + + if (!this.isTrackVisible(trackIndex)) { + this.scrollbarsRef.scrollTop(trackHeight * trackIndex); + } + } + + isTrackVisible(trackIndex) { + const { tracks } = this.props; + const trackHeight = this.scrollbarsRef.getScrollHeight() / tracks.length; + const trackPosition = trackHeight * trackIndex; + const scrollTop = this.scrollbarsRef.getScrollTop(); + const scrollBottom = scrollTop + this.scrollbarsRef.getClientHeight(); + + return !(trackPosition < scrollTop || trackPosition > scrollBottom); + } + + renderTracklist() { + return ( + + ); + } + + render() { + const { isOpen, limitTracklistHeight, tracklistHeight } = this.props; + + return ( +
    + {limitTracklistHeight ? ( + (this.scrollbarsRef = ref)} // eslint-disable-line no-return-assign + style={{ height: tracklistHeight }} + > + {this.renderTracklist()} + + ) : ( + this.renderTracklist() + )} +
    + ); + } +} + +TracklistWrap.propTypes = { + tracks: PropTypes.arrayOf(PropTypes.object).isRequired, + activeTrackIndex: PropTypes.number.isRequired, + onTrackClick: PropTypes.func.isRequired, + isOpen: PropTypes.bool, + className: PropTypes.string, + trackClassName: PropTypes.string, + reverseTrackOrder: PropTypes.bool, + displayTrackNo: PropTypes.bool, + limitTracklistHeight: PropTypes.bool, + tracklistHeight: PropTypes.number, + displayBuyButtons: PropTypes.bool, + buyButtonsTarget: PropTypes.bool, + displayCovers: PropTypes.bool, + displayArtistNames: PropTypes.bool, + onTrackLoop: PropTypes.func, + repeatingTrackIndex: PropTypes.number, +}; diff --git a/wp-content/plugins/audioigniter/player/src/player/components/VolumeControl.js b/wp-content/plugins/audioigniter/player/src/player/components/VolumeControl.js new file mode 100644 index 00000000..141fd5e7 --- /dev/null +++ b/wp-content/plugins/audioigniter/player/src/player/components/VolumeControl.js @@ -0,0 +1,52 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import Button from './Button'; +import { VolumeUpIcon, VolumeDownIcon } from './Icons'; + +export default class VolumeControl extends React.Component { + renderVolumeBars() { + const { volume, setVolume } = this.props; + + return Array(...Array(11)).map((bar, i) => ( + setVolume(i * 10)} + /> + )); + } + + render() { + const { volume, setVolume } = this.props; + + return ( +
    +
    {this.renderVolumeBars()}
    + +
    + + +
    +
    + ); + } +} + +VolumeControl.propTypes = { + volume: PropTypes.number.isRequired, + setVolume: PropTypes.func.isRequired, +}; diff --git a/wp-content/plugins/audioigniter/player/src/player/components/WaveformProgressBar.js b/wp-content/plugins/audioigniter/player/src/player/components/WaveformProgressBar.js new file mode 100644 index 00000000..6b3e8bf1 --- /dev/null +++ b/wp-content/plugins/audioigniter/player/src/player/components/WaveformProgressBar.js @@ -0,0 +1,82 @@ +import React, { useRef, useEffect } from 'react'; +import PropTypes from 'prop-types'; +import WaveSurfer from 'wavesurfer.js'; + +const propTypes = { + position: PropTypes.number.isRequired, + duration: PropTypes.number.isRequired, + audio: PropTypes.string, + setPosition: PropTypes.func.isRequired, +}; + +const WaveformProgressBar = ({ audio, position, duration, setPosition }) => { + const waveFormDomRef = useRef(null); + const wavesurfer = useRef(null); + + useEffect(() => { + if (waveFormDomRef.current && audio) { + wavesurfer.current = WaveSurfer.create({ + container: waveFormDomRef.current, + mediaControls: false, + height: 40, + barWidth: 2, + barGap: 2, + barRadius: 3, + responsive: true, + cursorWidth: 0, + backgroundColor: 'transparent', + progressColor: '#f70f5d', + waveColor: '#fff', + xhr: { + mode: 'no-cors', + }, + }); + wavesurfer.current.load(audio); + wavesurfer.current.on('ready', () => { + console.log('wavesurfer loaded'); + }); + } + + return () => { + if (wavesurfer.current) { + wavesurfer.current.destroy(); + } + }; + }, [audio, waveFormDomRef.current]); + + useEffect(() => { + // Sync wavesurfer with current playing position + const progress = position / duration; + + if (wavesurfer.current && !Number.isNaN(progress)) { + wavesurfer.current.seekTo(progress || 0); + } + }, [position]); + + const handleClick = event => { + if (setPosition == null) { + return; + } + + const offsetX = + event.pageX - event.currentTarget.getBoundingClientRect().left; + const posX = offsetX / event.currentTarget.offsetWidth; + + setPosition(posX * duration); + }; + + if (!audio) { + return null; + } + + return ( +
    +
    +
    +
    + ); +}; + +WaveformProgressBar.propTypes = propTypes; + +export default WaveformProgressBar; diff --git a/wp-content/plugins/audioigniter/player/src/player/soundProvider.js b/wp-content/plugins/audioigniter/player/src/player/soundProvider.js new file mode 100644 index 00000000..38e53ded --- /dev/null +++ b/wp-content/plugins/audioigniter/player/src/player/soundProvider.js @@ -0,0 +1,418 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import Sound from 'react-sound'; + +import SoundCloud from '../utils/soundcloud'; +import multiSoundDisabled from '../utils/multi-sound-disabled'; +import { getInitialTrackQueueAndIndex } from '../utils/getInitialTrackIndex'; + +const PLAYBACK_RATES = [0.5, 0.75, 1, 1.25, 1.5, 2, 3]; + +const soundProvider = (Player, events) => { + class EnhancedPlayer extends React.Component { + constructor(props) { + super(props); + + const { + volume, + cycleTracks, + defaultShuffle, + shuffleEnabled, + } = this.props; + + this.state = { + tracks: [], + activeIndex: 0, // Determine active track by index + + // trackQueue: List of track indexes that represents the order of the playlist + // i.e. [0, 1, 2, 3, 4] will play the 1st, 2nd, 3rd, etc track. + // [5, 4, 3, 2, 1] will play the tracks reversed. + // [4, 2, 0, ...] will play the 5th track first, 3rd second, then the 1st, etc. + trackQueue: [], + playStatus: Sound.status.STOPPED, + position: 0, + duration: 0, + playbackRate: 1, + volume: volume == null ? 100 : volume, + cycleTracks, + repeatingTrackIndex: null, + isMultiSoundDisabled: multiSoundDisabled(), + buffering: false, + shuffle: shuffleEnabled && defaultShuffle, + }; + + this.playTrack = this.playTrack.bind(this); + this.pauseTrack = this.pauseTrack.bind(this); + this.togglePlay = this.togglePlay.bind(this); + this.nextTrack = this.nextTrack.bind(this); + this.prevTrack = this.prevTrack.bind(this); + this.setPosition = this.setPosition.bind(this); + this.setVolume = this.setVolume.bind(this); + this.skipPosition = this.skipPosition.bind(this); + this.setPlaybackRate = this.setPlaybackRate.bind(this); + this.toggleTracklistCycling = this.toggleTracklistCycling.bind(this); + this.toggleShuffle = this.toggleShuffle.bind(this); + this.setTrackCycling = this.setTrackCycling.bind(this); + this.reverseTracks = this.reverseTracks.bind(this); + this.getFinalProps = this.getFinalProps.bind(this); + this.onPlaying = this.onPlaying.bind(this); + this.onFinishedPlaying = this.onFinishedPlaying.bind(this); + } + + componentDidMount() { + const { + tracksUrl, + soundcloudClientId, + reverseTrackOrder, + initialTrack, + } = this.props; + const { shuffle } = this.state; + const tracksPromised = fetch(tracksUrl).then(res => res.json()); + + if (!soundcloudClientId) { + tracksPromised.then(tracks => { + const { trackQueue, activeIndex } = getInitialTrackQueueAndIndex({ + tracks, + initialTrack, + reverseTrackOrder, + shuffle, + }); + + this.setState( + { + tracks, + activeIndex, + trackQueue, + }, + () => { + if (reverseTrackOrder) { + this.reverseTracks(); + } + }, + ); + }); + + return; + } + + const sc = new SoundCloud(soundcloudClientId); + const scTracks = tracksPromised + .then(tracks => sc.fetchSoundCloudStreams(tracks)) + .catch(err => console.error(err)); // eslint-disable-line no-console + + // Make sure if SoundCloud fetching fails + // we delegate and load our tracks anyway + const promiseArray = [tracksPromised, scTracks].map(p => + p.catch(error => ({ + status: 'error', + error, + })), + ); + + Promise.all(promiseArray).then(res => { + if (res[1].status === 'error') { + return this.setState({ tracks: res[0] }); + } + + const tracks = sc.mapStreamsToTracks(...res); + const { trackQueue, activeIndex } = getInitialTrackQueueAndIndex({ + tracks, + initialTrack, + reverseTrackOrder, + shuffle, + }); + + return this.setState( + () => ({ + tracks, + activeIndex, + trackQueue, + }), + () => { + if (reverseTrackOrder) { + this.reverseTracks(); + } + }, + ); + }); + } + + // Events + onPlaying({ duration, position }) { + this.setState( + () => ({ duration, position }), + () => { + if (events && events.onPlaying) { + events.onPlaying(this.getFinalProps()); + } + }, + ); + } + + onFinishedPlaying() { + const { stopOnTrackFinish, delayBetweenTracks = 0 } = this.props; + const delayBetweenTracksMs = delayBetweenTracks * 1000; + this.setState(() => ({ playStatus: Sound.status.STOPPED })); + + if (stopOnTrackFinish) { + return; + } + + if (events && events.onFinishedPlaying) { + setTimeout(() => { + events.onFinishedPlaying(this.getFinalProps()); + }, delayBetweenTracksMs); + } + } + + getFinalProps() { + const { tracks, activeIndex } = this.state; + const currentTrack = tracks[activeIndex] || {}; + + return { + playTrack: this.playTrack, + pauseTrack: this.pauseTrack, + togglePlay: this.togglePlay, + nextTrack: this.nextTrack, + prevTrack: this.prevTrack, + setPosition: this.setPosition, + skipPosition: this.skipPosition, + setPlaybackRate: this.setPlaybackRate, + setVolume: this.setVolume, + toggleTracklistCycling: this.toggleTracklistCycling, + setTrackCycling: this.setTrackCycling, + toggleShuffle: this.toggleShuffle, + currentTrack, + ...this.props, + ...this.state, + }; + } + + setVolume(volume) { + this.setState(() => ({ volume })); + } + + setPosition(position) { + this.setState(() => ({ position })); + } + + setTrackCycling(index, event) { + if (event) { + event.preventDefault(); + } + + const { activeIndex, cycleTracks } = this.state; + + if (cycleTracks && index != null) { + this.toggleTracklistCycling(); + } + + this.setState( + ({ repeatingTrackIndex }) => ({ + repeatingTrackIndex: repeatingTrackIndex === index ? null : index, + }), + () => { + if (index != null && activeIndex !== index) { + this.playTrack(index); + } + }, + ); + } + + setPlaybackRate() { + this.setState(({ playbackRate }) => { + const currentIndex = PLAYBACK_RATES.findIndex( + rate => rate === playbackRate, + ); + const nextIndex = + (PLAYBACK_RATES.length + (currentIndex + 1)) % PLAYBACK_RATES.length; + + return { + playbackRate: PLAYBACK_RATES[nextIndex], + }; + }); + } + + toggleShuffle() { + const { initialTrack, reverseTrackOrder } = this.props; + const { tracks } = this.state; + + this.setState( + prev => ({ + shuffle: !prev.shuffle, + }), + () => { + this.setState(() => { + const { trackQueue } = getInitialTrackQueueAndIndex({ + tracks, + initialTrack, + reverseTrackOrder, + shuffle: this.state.shuffle, + }); + + return { + trackQueue, + }; + }); + + if (this.state.shuffle) { + // Shuffle track queue + } else { + // Unshuffle track queue + } + }, + ); + } + + skipPosition(direction = 1) { + const { position } = this.state; + const { skipAmount } = this.props; + const amount = parseInt(skipAmount, 10) * 1000; + + this.setPosition(position + amount * direction); + } + + playTrack(index, event) { + if (event) { + event.preventDefault(); + } + + const { repeatingTrackIndex, isMultiSoundDisabled } = this.state; + + if (isMultiSoundDisabled) { + window.soundManager.pauseAll(); + } + + this.setState(() => ({ + activeIndex: index, + position: 0, + playStatus: Sound.status.PLAYING, + })); + + // Reset repating track index if the track is not the active one. + if (index !== repeatingTrackIndex && repeatingTrackIndex != null) { + this.setTrackCycling(null); + } + } + + pauseTrack(event) { + if (event) { + event.preventDefault(); + } + + const { playStatus } = this.state; + + if (playStatus === Sound.status.PLAYING) { + this.setState(() => ({ playStatus: Sound.status.PAUSED })); + } + } + + togglePlay(index, event) { + if (event) { + event.preventDefault(); + } + + const { activeIndex } = this.state; + + if (typeof index === 'number' && index !== activeIndex) { + this.playTrack(index); + return; + } + + this.setState(({ playStatus, isMultiSoundDisabled }) => { + if (playStatus !== Sound.status.PLAYING && isMultiSoundDisabled) { + window.soundManager.pauseAll(); + } + + return { + playStatus: + playStatus === Sound.status.PLAYING + ? Sound.status.PAUSED + : Sound.status.PLAYING, + }; + }); + } + + nextTrack() { + const { trackQueue, activeIndex } = this.state; + const currentQueueIndex = trackQueue.indexOf(activeIndex); + const nextQueueIndex = (currentQueueIndex + 1) % trackQueue.length; + const nextTrackIndex = trackQueue[nextQueueIndex]; + + this.playTrack(nextTrackIndex); + } + + prevTrack() { + const { trackQueue, activeIndex } = this.state; + const currentQueueIndex = trackQueue.indexOf(activeIndex); + const prevQueueIndex = + (currentQueueIndex + trackQueue.length - 1) % trackQueue.length; + const prevTrackIndex = trackQueue[prevQueueIndex]; + + this.playTrack(prevTrackIndex); + } + + toggleTracklistCycling() { + const { repeatingTrackIndex } = this.state; + + if (repeatingTrackIndex !== null) { + this.setTrackCycling(null); + } + + this.setState(state => ({ + cycleTracks: !state.cycleTracks, + })); + } + + reverseTracks() { + this.setState(state => ({ + tracks: state.tracks.slice().reverse(), + })); + } + + render() { + const { tracks, playStatus, position, volume, playbackRate } = this.state; + const finalProps = this.getFinalProps(); + + return ( +
    + + + {tracks.length > 0 && ( + this.pauseTrack()} + playbackRate={playbackRate} + onBufferChange={buffering => { + this.setState({ buffering }); + }} + /> + )} +
    + ); + } + } + + EnhancedPlayer.propTypes = { + volume: PropTypes.number, + cycleTracks: PropTypes.bool, + tracksUrl: PropTypes.string, + soundcloudClientId: PropTypes.string, + reverseTrackOrder: PropTypes.bool, + skipAmount: PropTypes.number, + stopOnTrackFinish: PropTypes.bool, + delayBetweenTracks: PropTypes.number, + initialTrack: PropTypes.number, + shuffleEnabled: PropTypes.bool, + defaultShuffle: PropTypes.bool, + }; + + return EnhancedPlayer; +}; + +export default soundProvider; diff --git a/wp-content/plugins/audioigniter/player/src/utils/array-shift.js b/wp-content/plugins/audioigniter/player/src/utils/array-shift.js new file mode 100644 index 00000000..014deb52 --- /dev/null +++ b/wp-content/plugins/audioigniter/player/src/utils/array-shift.js @@ -0,0 +1,14 @@ +/** + * Shifts an array to right / left by n positions. + * + * @param {Array} arr The array. + * @param {number} direction The direction - 0 for left 1 for right. + * @param {number} n Number of positions to shift by. + * @returns {any[]} + */ +const arrayShift = (arr, direction, n) => { + const times = n > arr.length ? n % arr.length : n; + return arr.concat(arr.splice(0, direction > 0 ? arr.length - times : times)); +}; + +export default arrayShift; diff --git a/wp-content/plugins/audioigniter/player/src/utils/array-shuffle.js b/wp-content/plugins/audioigniter/player/src/utils/array-shuffle.js new file mode 100644 index 00000000..34f13d17 --- /dev/null +++ b/wp-content/plugins/audioigniter/player/src/utils/array-shuffle.js @@ -0,0 +1,24 @@ +/** + * Shuffles an array. + * Copied from https://github.com/sindresorhus/array-shuffle + * + * @param {Array} array The array to be shuffled. + * @returns {*[]|*} + */ +const arrayShuffle = array => { + if (!Array.isArray(array)) { + return array; + } + + const clone = [...array]; + + // eslint-disable-next-line no-plusplus + for (let index = clone.length - 1; index > 0; index--) { + const newIndex = Math.floor(Math.random() * (index + 1)); + [clone[index], clone[newIndex]] = [clone[newIndex], clone[index]]; + } + + return clone; +}; + +export default arrayShuffle; diff --git a/wp-content/plugins/audioigniter/player/src/utils/getInitialTrackIndex.js b/wp-content/plugins/audioigniter/player/src/utils/getInitialTrackIndex.js new file mode 100644 index 00000000..d2c62a9f --- /dev/null +++ b/wp-content/plugins/audioigniter/player/src/utils/getInitialTrackIndex.js @@ -0,0 +1,76 @@ +import arrayShuffle from './array-shuffle'; +import arrayShift from './array-shift'; + +/** + * Fetches the initial track index. + * + * @param {Object} options The options. + * @param {Array} options.tracks The tracks. + * @param {number} [options.initialTrack] The initial track index. + * @param {boolean} options.reverseTrackOrder Whether the track order is reversed. + * @returns {number} + */ +export const getInitialTrackIndex = ({ + tracks = [], + initialTrack = 1, + reverseTrackOrder = false, +}) => { + // The user provides a 1-index value. + const initialTrackIndex = initialTrack - 1; + + if (!tracks.length || !initialTrack || initialTrack > tracks.length) { + return 0; + } + + if (reverseTrackOrder) { + return Math.max(tracks.length - initialTrack, 0); + } + + return initialTrackIndex; +}; + +/** + * Fetches the initial track index and the initial track queue. + * + * @param {Object} options The options. + * @param {Array} options.tracks The tracks. + * @param {Number} options.initialTrack The initial track number (1-indexed). + * @param {Boolean} reverseTrackOrder Whether the track order is reversed. + * @param {Boolean} shuffle Whether the track queue is shuffled. + * @returns {{activeIndex: number, trackQueue: (*[]|*)}|{activeIndex: number, trackQueue: *}} + */ +export const getInitialTrackQueueAndIndex = ({ + tracks = [], + initialTrack = 1, + reverseTrackOrder = false, + shuffle = false, +}) => { + const activeIndex = getInitialTrackIndex({ + tracks, + initialTrack, + reverseTrackOrder, + }); + + const orderedTrackIndexes = tracks.map((_, index) => index); + + if (!shuffle) { + const shiftAmount = orderedTrackIndexes.indexOf(activeIndex); + return { + activeIndex, + trackQueue: arrayShift(orderedTrackIndexes, 0, shiftAmount), + }; + } + + const shuffledQueue = arrayShuffle(orderedTrackIndexes); + + // Always bring the initial track (activeIndex) to the front of the queue. + shuffledQueue.splice(shuffledQueue.indexOf(activeIndex), 1); + shuffledQueue.unshift(activeIndex); + + return { + activeIndex, + trackQueue: shuffledQueue, + }; +}; + +export default getInitialTrackIndex; diff --git a/wp-content/plugins/audioigniter/player/src/utils/multi-sound-disabled.js b/wp-content/plugins/audioigniter/player/src/utils/multi-sound-disabled.js new file mode 100644 index 00000000..d5fe7e44 --- /dev/null +++ b/wp-content/plugins/audioigniter/player/src/utils/multi-sound-disabled.js @@ -0,0 +1,8 @@ +const multiSoundDisabled = () => { + return ( + window.ai_pro_front_scripts && + !!window.ai_pro_front_scripts.multi_sound_disabled + ); +}; + +export default multiSoundDisabled; diff --git a/wp-content/plugins/audioigniter/player/src/utils/soundcloud.js b/wp-content/plugins/audioigniter/player/src/utils/soundcloud.js new file mode 100644 index 00000000..4b7c40c1 --- /dev/null +++ b/wp-content/plugins/audioigniter/player/src/utils/soundcloud.js @@ -0,0 +1,88 @@ +export default class SoundCloud { + constructor(clientId) { + if (!clientId) { + throw new Error('SoundCloud client ID is required'); + } + + this.clientId = clientId; + this.baseUrl = 'https://api.soundcloud.com'; + } + + /** + * Checks if a URL is from SoundCloud + * + * @param {string} url - URL to be checked + * + * @returns {boolean} + */ + static isSoundCloudUrl(url) { + return url.indexOf('soundcloud.com') > -1; + } + + /** + * Resolves a SoundCloud URL into a track object + * + * @param {string} url - URL to be resolved + * + * @returns {Promise.<*>} + */ + resolve(url) { + /* + * Tell the SoundCloud API not to serve a redirect. This is to get around + * CORS issues on Safari 7+, which likes to send pre-flight requests + * before following redirects, which has problems. + * + * https://github.com/soundcloud/soundcloud-javascript/issues/27 + */ + const statusCodeMap = encodeURIComponent('_status_code_map[302]=200'); + + return fetch( + `${this.baseUrl}/resolve?url=${url}&client_id=${ + this.clientId + }&${statusCodeMap}`, + ) + .then(res => res.json()) + .then(res => fetch(res.location)) + .then(res => res.json()); + } + + /** + * Resolves and fetches SoundCloud track objects + * + * @param {Object[]} tracks - Tracks object + * + * @returns {Promise.<*>} + */ + fetchSoundCloudStreams(tracks) { + const scTracks = tracks + .filter(track => SoundCloud.isSoundCloudUrl(track.audio)) + .map(track => this.resolve(track.audio)); + + return Promise.all(scTracks); + } + + /** + * Maps a SoundCloud tracks object into an AudioIgniter one + * by replacing `track.audio` with `sctrack.stream_url`. + * + * Works *in order* of appearance in the `tracks` object. + * + * @param {Object[]} tracks - AudioIgniter tracks object + * @param {Object[]} scTracks - SoundCloud tracks object + * + * @returns {Object[]} + */ + mapStreamsToTracks(tracks, scTracks) { + let i = 0; + + return tracks.map(track => { + if (SoundCloud.isSoundCloudUrl(track.audio)) { + // eslint-disable-next-line no-param-reassign + track.audio = `${scTracks[i].stream_url}?client_id=${this.clientId}`; + i++; // eslint-disable-line no-plusplus + } + + return track; + }); + } +} diff --git a/wp-content/plugins/audioigniter/player/src/utils/typography-disabled.js b/wp-content/plugins/audioigniter/player/src/utils/typography-disabled.js new file mode 100644 index 00000000..d1d18c7a --- /dev/null +++ b/wp-content/plugins/audioigniter/player/src/utils/typography-disabled.js @@ -0,0 +1,8 @@ +const typographyDisabled = () => { + return ( + window.ai_pro_front_scripts && + !!window.ai_pro_front_scripts.typography_disabled + ); +}; + +export default typographyDisabled; diff --git a/wp-content/plugins/audioigniter/player/styles/style.scss b/wp-content/plugins/audioigniter/player/styles/style.scss new file mode 100644 index 00000000..8d054e5c --- /dev/null +++ b/wp-content/plugins/audioigniter/player/styles/style.scss @@ -0,0 +1,1023 @@ +@import '../../assets/css/mixins'; + +// +// Variables +// +$black: #000 !default; +$white: #fff !default; +$bg-color: #202020 !default; +$primary-color: #f70f5d !default; +$text-on-primary: #ffffff !default; +$text-color: #ffffff !default; +$control-color: #3e3e3e !default; + +$player-height: 130px !default; +$transition-time: .18s !default; +$loading-transition-time: 1.5s !default; +$text-opacity: .7 !default; +$spacing: 20px !default; + +$screen-md-max: 767px !default; +$screen-sm-max: 480px !default; +$screen-xs-max: 320px !default; + +.ai-wrap { + padding: $spacing; + background-color: $bg-color; + color: $text-color; + max-width: 100%; + box-sizing: border-box; + margin-bottom: $spacing; + + &::after, + &::before { + box-sizing: border-box; + } + + * { + box-sizing: border-box; + + &::after, + &::before { + box-sizing: border-box;; + } + } + + img { + max-width: 100%; + height: auto; + border: 0; + box-shadow: none; + margin: 0; + padding: 0; + } + + p { + margin: 0; + padding: 0; + font-weight: normal; + line-height: normal; + } + + span { + margin: 0; + padding: 0; + font-weight: normal; + line-height: normal; + } + + a { + font-weight: normal; + box-shadow: none; + border: 0; + text-decoration: none; + text-transform: none; + } + + svg { + display: inline-block; + } + + .ai-btn, + .ai-audio-control { + @include btn-reset; + } + + // + // Structure & Size + // + .ai-control-wrap { + display: flex; + min-height: $player-height; + } + + .ai-control-wrap-thumb { + width: 130px; + height: 100%; + flex: none; + overflow: hidden; + margin-right: $spacing; + position: relative; + line-height: 0; + + &::after { + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + transition: opacity $loading-transition-time ease; + @include animatedBackground($width: 300%, $height: 100%, $top: 0); + opacity: 0; + } + + img { + margin: 0; + border: 0; + box-shadow: none; + } + } + + .ai-control-wrap-controls { + position: relative; + width: 100%; + } + + // + // Play/pause button & track title/subtitle + // + .ai-audio-controls-main { + display: flex; + align-items: center; + width: 100%; + margin-bottom: $spacing - 4px; + } + + .ai-audio-control { + width: 50px; + height: 50px; + border-radius: 50%; + display: block; + flex: none; + vertical-align: middle; + color: $text-on-primary; + background-color: $primary-color; + opacity: 1; + transition: opacity $loading-transition-time ease; + padding: 0; + position: relative; + + &:hover, + &:focus { + border: 0; + background-color: $primary-color; + } + + &:focus, + &:active { + outline: 0; + } + + &.ai-audio-playing { + svg { + left: 0; + } + } + + svg { + fill: $text-on-primary; + height: 16px; + position: relative; + left: 2px; + top: 1px; + } + } + + .ai-track-info { + display: flex; + flex-direction: column; + justify-content: center; + padding-left: $spacing; + flex: auto; + width: 0; + } + + .ai-track-title { + margin: 0 0 4px; + line-height: normal; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + padding-right: $spacing; + + span { + opacity: 1; + transition: opacity $loading-transition-time ease; + } + } + + .ai-track-subtitle { + margin: 0; + line-height: normal; + opacity: $text-opacity; + font-size: .8125em; + + span { + opacity: 1; + transition: opacity $loading-transition-time ease; + } + } + + // + // Track Progress + // + .ai-audio-controls-progress { + display: flex; + align-items: center; + margin-bottom: $spacing - 5px; + } + + .ai-track-progress-bar { + display: block; + flex: 1; + position: relative; + height: 5px; + cursor: pointer; + background-color: $control-color; + + @at-root .ai-wrap .ai-track .ai-track-progress-bar { + position: absolute; + top: auto; + bottom: 0; + left: 0; + width: 100%; + height: 3px; + background-color: transparent; + + &:hover { + background-color: rgba(white, .3); + } + } + } + + .ai-track-progress { + position: absolute; + top: 0; + left: 0; + height: 100%; + pointer-events: none; + background-color: $primary-color; + transition: width .28s ease; + + @at-root .ai-wrap .ai-track .ai-track-progress { + background-color: #fff; + opacity: .5; + } + } + + .ai-waveform-bar { + display: block; + flex: 1; + position: relative; + height: 30px; + cursor: pointer; + } + + .ai-waveform { + pointer-events: none; + } + + .ai-track-time { + flex: none; + font-size: 13px; + opacity: $text-opacity; + width: 65px; + text-align: right; + cursor: pointer; + } + + // + // Volume Controls + // + .ai-audio-volume-control { + display: flex; + align-items: center; + } + + .ai-audio-volume-bars { + @include clearfix; + float: left; + margin-right: 3px; + height: 34px; + } + + .ai-volume-bar { + float: left; + position: relative; + width: 4px; + height: 100%; + background-color: $control-color; + cursor: pointer; + border-right: 1px solid $bg-color; + + &::before { + content: ""; + position: absolute; + bottom: 0; + left: 0; + right: 0; + transition: background-color $transition-time ease; + } + + &.ai-volume-bar-active { + &::before { + background-color: $primary-color; + } + } + } + + @for $i from 1 through 11 { + .ai-volume-bar:nth-child(#{$i}) { + &::before { + height: 10% * ($i - 1); + } + } + } + + .ai-audio-volume-control-btns { + display: flex; + flex-direction: column; + height: 100%; + + .ai-btn { + height: 50%; + font-size: 10px; + + &:first-child { + margin-bottom: 1px; + } + + &:last-child { + margin-top: 1px; + } + + svg { + height: 6px; + } + } + } + + // + // Audio Controls + // + .ai-audio-controls-meta { + @include clearfix; + display: flex; + width: 100%; + opacity: 1; + transition: opacity $transition-time*2 ease; + + .ai-btn { + margin-right: 4px; + } + } + + .ai-btn { + width: 32px; + height: 34px; + font-size: 14px; + padding: 0; + background-image: none; + background-color: $control-color; + color: $text-color; + transition: color $transition-time ease; + box-shadow: none; + text-decoration: none; + font-style: normal; + text-transform: none; + + svg { + position: relative; + fill: $text-color; + height: 10px; + transition: fill $transition-time ease; + } + + &:hover { + background-color: $control-color; + border: 0; + } + + &.ai-btn-active { + color: $text-on-primary; + background-color: $primary-color; + + svg { + fill: $text-on-primary; + } + } + } + + .ai-btn-repeat { + svg { + height: 17px; + top: 2px; + } + } + + .ai-btn-shuffle { + svg { + height: 14px; + top: 2px; + left: -1px; + } + } + + .ai-tracklist-toggle { + margin-left: auto; + margin-right: 0; + + svg { + height: 16px; + top: 2px; + } + } + + .ai-btn-skip-position, + .ai-btn-playback-rate { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 11px; + font-weight: bold; + letter-spacing: -.05em; + } + + // + // Playlist + // + .ai-tracklist-wrap { + opacity: 1; + transition: opacity $loading-transition-time ease; + } + + .ai-tracklist-open { + margin-top: $spacing; + + + .ai-footer { + margin-top: -1px; + border-top: 0; + } + } + + .ai-tracklist { + margin: 0; + padding: 0; + list-style: none; + } + + .ai-track { + display: flex; + position: relative; + margin: 0 0 1px; + padding: 0; + list-style: none; + height: 40px; + cursor: pointer; + background-color: $control-color; + transition: background-color $transition-time ease; + + &:hover, + &.ai-track-active { + background-color: $primary-color; + color: $text-on-primary; + + .ai-track-btn { + color: $text-on-primary; + + svg { + fill: $text-on-primary; + } + } + } + } + + .ai-track-control { + display: flex; + height: 100%; + align-items: center; + flex: 1; + overflow: hidden; + border-left: 1px solid $bg-color; + + &:first-child { + border-left: 0; + } + } + + .ai-track-thumb { + display: inline-block; + width: 40px; + max-height: 100%; + margin: 0; + overflow: hidden; + + img { + width: 40px; + max-height: 100%; + box-shadow: none; + border: 0; + margin: 0; + } + } + + .ai-track-no-thumb { + display: block; + width: 130px; + height: 130px; + line-height: 150px; + text-align: center; + background-color: $control-color; + + svg { + fill: $text-color; + height: 40px; + opacity: 0.6; + } + + &.ai-track-thumb { + width: 40px; + height: 40px; + line-height: 50px; + + svg { + height: 16px; + } + } + } + + .ai-track-name { + display: inline-block; + padding: 0 10px; + font-size: 13px; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + line-height: normal; + } + + .ai-track-control-buttons { + margin-left: auto; + display: flex; + align-items: center; + } + + .ai-track-btn { + display: inline-block; + width: 40px; + height: 40px; + text-align: center; + font-size: 13px; + line-height: 40px; + box-shadow: none; + border: 0; + border-left: 1px solid $bg-color; + color: $text-color; + background: none; + cursor: pointer; + margin: 0; + padding: 0; + + svg { + position: relative; + fill: $text-color; + height: 15px; + transition: fill $transition-time ease; + top: 3px; + } + } + + .ai-track-btn-repeat { + &:hover { + span { + opacity: 1 !important; + } + } + } + + .ai-track-inline-play-btn { + position: relative; + + &:first-child { + border-left: 0; + } + + &.ai-is-loading { + svg { + opacity: 0; + } + } + } + + // + // Footer + // + .ai-footer { + border-top: 1px solid $control-color; + margin-top: $spacing; + padding-top: $spacing; + text-align: center; + font-size: 11px; + + a { + color: $primary-color; + text-decoration: none; + box-shadow: none; + border: 0; + opacity: 1; + + &:hover { + color: $primary-color; + border: 0; + opacity: 1; + } + } + + p { + opacity: $text-opacity; + margin: 0; + font-size: 12px; + } + } + + // + // Loading Animations + // + &.ai-is-loading { + .ai-track-title { + position: relative; + + span { + opacity: 0; + } + + &::after { + @include animatedBackground($top: -10px); + } + } + + .ai-track-subtitle { + position: relative; + + span { + opacity: 0; + } + + &::after { + @include animatedBackground($width: 100px, $height: 6px, $top: 2px); + } + } + + .ai-audio-controls-meta { + opacity: 0; + } + + .ai-audio-control { + opacity: 0.5; + } + + .ai-control-wrap-thumb { + &::after { + opacity: 1; + } + } + + .ai-tracklist-wrap { + opacity: 1; + } + } + + .ai-tracklist-enter { + opacity: 0; + + &.ai-tracklist-enter-active { + opacity: 1; + transition: opacity .5s ease-in; + } + } + + // + // Scroll specific styles + // + .ai-scroll-wrap { + .ai-tracklist { + margin-right: 15px; + } + + > div:last-child { + top: 0 !important; + bottom: 0 !important; + background-color: rgba($control-color, .5); + + div { + background-color: $primary-color !important; + } + } + } + + // + // Global Footer Player + // + &.ai-type-global-footer { + width: 100%; + position: fixed; + bottom: 0; + left: 0; + right: 0; + padding: 0; + margin: 0; + z-index: 999; + + .ai-control-wrap { + min-height: 70px; + } + + .ai-control-wrap-thumb { + width: 80px; + height: 80px; + margin: 0; + line-height: 115px; + } + + .ai-control-wrap-controls { + display: flex; + flex-direction: column; + } + + .ai-audio-controls-main { + padding: 0 25px; + margin: 0; + flex: auto; + } + + .ai-audio-controls-meta { + width: auto; + margin-left: $spacing; + flex: none; + } + + .ai-audio-controls-meta-right { + margin-left: auto; + } + + .ai-track-progress-bar { + flex: initial; + } + + .ai-tracklist-toggle { + margin-left: 15px; + } + + .ai-audio-controls-progress { + margin-bottom: 0; + } + + .ai-tracklist-wrap { + position: absolute; + bottom: 100%; + width: 100%; + padding: $spacing; + background-color: inherit; + margin: 0; + } + } +} + +// +// Loading spinners +// +.ai-control-spinner { + border-radius: 50%; + position: absolute; + top: -5px; + left: -5px; + width: calc(100% + 10px); + height: calc(100% + 10px); + font-size: 10px; + text-indent: -9999em; + border-top: 5px solid rgba($white, 0.2); + border-right: 5px solid rgba($white, 0.2); + border-bottom: 5px solid rgba($white, 0.2); + border-left: 5px solid currentColor; + transform: translateZ(0); + animation: ai-spin 1.1s infinite linear; + z-index: 1; + opacity: 0; + transition: opacity .18s ease; + transition-delay: .2s; + + .ai-audio-loading & { + opacity: .8; + } + + &::after { + border-radius: 50%; + position: absolute; + width: 100%; + height: 100%; + } +} + +.ai-track-spinner { + border-radius: 50%; + position: absolute; + top: 50%; + left: 50%; + margin-left: -10px !important; + margin-top: -10px !important; + width: 20px; + height: 20px; + font-size: 10px; + text-indent: -9999em; + border-top: 3px solid rgba($white, 0.2); + border-right: 3px solid rgba($white, 0.2); + border-bottom: 3px solid rgba($white, 0.2); + border-left: 3px solid currentColor; + transform: translateZ(0); + animation: ai-spin 1.1s infinite linear; + z-index: 1; + opacity: 0; + + .ai-track-loading & { + opacity: .8; + } + + &::after { + border-radius: 50%; + position: absolute; + width: 100%; + height: 100%; + } +} + +// +// Modal +// +.ReactModal__Body--open { + overflow: hidden; +} + +.ai-modal-overlay { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + z-index: 9999; + background-color: rgba($black, .3); +} + +.ai-modal { + position: absolute; + top: 40px; + width: 460px; + max-width: calc(100% - 30px); + left: 50%; + transform: translateX(-50%); + background-color: $white; + color: $black; + border-radius: 4px; + border: 1px solid rgba($control-color, .4); + outline: 0; + max-height: calc(100vh - 50px); + overflow-y: auto; + box-sizing: border-box; +} + +.ai-modal-header { + display: flex; + padding: 5px; + margin-bottom: 10px; +} + +.ai-modal-dismiss { + @include btn-reset; + font-size: 30px; + margin-left: auto; + padding-left: 5px; + padding-right: 5px; + line-height: 1; + color: $black; + + &:hover, + &:active, + &:focus { + background: none; + box-shadow: none; + border: 0; + color: $black; + } +} + +.ai-modal-content { + padding: 0 20px 20px; + white-space: pre-wrap; +} + +// +// Typography +// +.ai-with-typography { + font-family: sans-serif; + font-weight: normal; + line-height: normal; + letter-spacing: 0; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + + .ai-track-subtitle { + font-size: 13px; + } + + .ai-track-title { + font-size: 16px; + } +} + +.ai-modal-with-typography { + font-family: sans-serif; + font-weight: normal; + font-size: 15px; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + line-height: 1.45; + letter-spacing: 0; +} + +// +// Mediaqueries +// + +@mixin sm-max() { + .ai-control-wrap { + height: auto; + flex-wrap: wrap; + } + + .ai-control-wrap-thumb { + width: 100%; + margin: 0 0 $spacing; + } + + .ai-audio-controls-meta { + position: relative; + } +} + +@mixin xs-max() { + .ai-track-thumb { + display: none; + } +} + +.ai-narrow { + @include sm-max; + @include xs-max; +} + +@media (max-width: $screen-md-max) { + .ai-wrap { + &.ai-type-global-footer { + .ai-track-time, + .ai-thumb, + .ai-btn-repeat, + .ai-audio-volume-control, + .ai-btn-skip-position { + display: none; + } + + .ai-track-title { + font-size: 15px; + } + + .ai-audio-controls-main { + padding-left: $spacing / 2; + padding-right: $spacing / 2; + } + + .ai-track-info { + padding-left: $spacing / 2; + } + + .ai-audio-controls-meta { + margin-left: $spacing / 2; + } + } + + .ai-audio-volume-control { + .ai-btn { + display: none; + } + } + } +} + +@media (max-width: $screen-sm-max) { + .ai-wrap { + @include sm-max; + + .ai-audio-volume-control { + display: none; + } + + .ai-scroll-wrap { + .ai-tracklist { + margin-right: 0; + } + } + } +} + +@media (max-width: $screen-xs-max) { + .ai-wrap { + @include xs-max; + } +} diff --git a/wp-content/plugins/audioigniter/player/webpack.config.js b/wp-content/plugins/audioigniter/player/webpack.config.js new file mode 100644 index 00000000..759f0f66 --- /dev/null +++ b/wp-content/plugins/audioigniter/player/webpack.config.js @@ -0,0 +1,80 @@ +const path = require('path'); +const merge = require('webpack-merge'); +const HtmlWebpackPlugin = require('html-webpack-plugin'); +const parts = require('./webpack.parts'); + +const TARGET = process.env.npm_lifecycle_event; +process.env.BABEL_ENV = TARGET; + +const PATHS = { + app: path.join(__dirname, 'src'), + build: path.join(__dirname, 'build'), + style: path.join(__dirname, 'styles', 'style.scss'), +}; + +const common = { + entry: { + style: PATHS.style, + app: PATHS.app, + }, + output: { + path: PATHS.build, + filename: '[name].js', + }, + plugins: [ + new HtmlWebpackPlugin({ + title: 'AudioIgniter', + template: `${PATHS.app}/index.ejs`, + }), + ], + devServer: { + contentBase: path.resolve('assets'), + }, + resolve: { + extensions: ['.js', '.jsx'], + }, + module: { + rules: [ + { + test: /\.jsx?$/, + use: ['babel-loader?cacheDirectory'], + }, + ], + }, +}; + +let config; + +// Detect how npm is run and branch based on that +switch (TARGET) { + case 'build': { + config = merge( + common, + { + resolve: { + modules: [path.resolve(__dirname), 'node_modules'], + extensions: ['.js', '.jsx'], + }, + }, + parts.minify(), + parts.extractCSS(PATHS.style), + parts.setFreeVariable('process.env.NODE_ENV', 'production'), + ); + break; + } + default: { + config = merge( + common, + { + devtool: 'eval-source-map', + }, + parts.setupSass(PATHS.style), + parts.devServer({ + host: process.env.HOST, + port: process.env.PORT, + }), + ); + } +} + +module.exports = config; diff --git a/wp-content/plugins/audioigniter/player/webpack.parts.js b/wp-content/plugins/audioigniter/player/webpack.parts.js new file mode 100644 index 00000000..a4b47d51 --- /dev/null +++ b/wp-content/plugins/audioigniter/player/webpack.parts.js @@ -0,0 +1,107 @@ +const webpack = require('webpack'); +const ExtractTextPlugin = require('extract-text-webpack-plugin'); +const autoprefixer = require('autoprefixer'); + +exports.setupSass = paths => ({ + module: { + rules: [ + { + test: /\.scss$/, + use: ['style-loader', 'css-loader', 'sass-loader'], + include: paths, + }, + ], + }, +}); + +exports.extractCSS = paths => ({ + module: { + rules: [ + { + test: /\.scss$/, + use: ExtractTextPlugin.extract({ + fallback: 'style-loader', + use: [ + { + loader: 'css-loader', + options: { + minimize: true, + }, + }, + { + loader: 'postcss-loader', + options: { + plugins: () => [ + autoprefixer({ + browsers: [ + 'Chrome >= 46', + 'Firefox ESR', + 'Edge >= 12', + 'Explorer >= 9', + 'iOS >= 8', + 'Safari >= 8', + 'Android >= 4', + ], + cascade: false, + }), + ], + }, + }, + { + loader: 'sass-loader', + options: { + outputStyle: 'expanded', + }, + }, + ], + }), + include: paths, + }, + ], + }, + plugins: [ + new ExtractTextPlugin({ + filename: '[name].css', + }), + ], +}); + +exports.devServer = options => ({ + devServer: { + contentBase: __dirname, + historyApiFallback: true, + hot: false, + inline: true, + stats: 'errors-only', + host: options.host, + port: options.port, + overlay: { + warnings: true, + errors: true, + }, + }, +}); + +exports.minify = () => ({ + plugins: [ + new webpack.optimize.UglifyJsPlugin({ + compress: { + warnings: false, + drop_console: true, + screw_ie8: true, + }, + output: { + comments: false, + }, + }), + ], +}); + +exports.setFreeVariable = (key, value) => { + const env = {}; + env[key] = JSON.stringify(value); + + return { + plugins: [new webpack.DefinePlugin(env)], + }; +}; diff --git a/wp-content/plugins/audioigniter/player/yarn.lock b/wp-content/plugins/audioigniter/player/yarn.lock new file mode 100644 index 00000000..120b1d0f --- /dev/null +++ b/wp-content/plugins/audioigniter/player/yarn.lock @@ -0,0 +1,5831 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +abbrev@1: + version "1.0.9" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135" + +accepts@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.3.tgz#c3ca7434938648c3e0d9c1e328dd68b622c284ca" + dependencies: + mime-types "~2.1.11" + negotiator "0.6.1" + +acorn-dynamic-import@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-2.0.1.tgz#23f671eb6e650dab277fef477c321b1178a8cca2" + dependencies: + acorn "^4.0.3" + +acorn-jsx@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" + dependencies: + acorn "^3.0.4" + +acorn@^3.0.4: + version "3.3.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" + +acorn@^4.0.3: + version "4.0.4" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.4.tgz#17a8d6a7a6c4ef538b814ec9abac2779293bf30a" + +acorn@^5.0.0: + version "5.0.3" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.0.3.tgz#c460df08491463f028ccb82eab3730bf01087b3d" + +acorn@^5.0.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.1.1.tgz#53fe161111f912ab999ee887a90a0bc52822fd75" + +add-px-to-style@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/add-px-to-style/-/add-px-to-style-1.0.0.tgz#d0c135441fa8014a8137904531096f67f28f263a" + +ajv-keywords@^1.0.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c" + +ajv-keywords@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.0.tgz#a296e17f7bfae7c1ce4f7e0de53d29cb32162df0" + +ajv@^4.7.0: + version "4.11.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.2.tgz#f166c3c11cbc6cb9dcc102a5bcfe5b72c95287e6" + dependencies: + co "^4.6.0" + json-stable-stringify "^1.0.1" + +ajv@^5.0.0, ajv@^5.1.5: + version "5.2.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.2.2.tgz#47c68d69e86f5d953103b0074a9430dc63da5e39" + dependencies: + co "^4.6.0" + fast-deep-equal "^1.0.0" + json-schema-traverse "^0.3.0" + json-stable-stringify "^1.0.1" + +align-text@^0.1.1, align-text@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" + dependencies: + kind-of "^3.0.2" + longest "^1.0.1" + repeat-string "^1.5.2" + +alphanum-sort@^1.0.1, alphanum-sort@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" + +ansi-escapes@^1.1.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" + +ansi-html@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + +ansi-styles@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.1.0.tgz#09c202d5c917ec23188caa5c9cb9179cd9547750" + dependencies: + color-convert "^1.0.0" + +anymatch@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.0.tgz#a3e52fa39168c825ff57b0248126ce5a8ff95507" + dependencies: + arrify "^1.0.0" + micromatch "^2.1.5" + +aproba@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.0.4.tgz#2713680775e7614c8ba186c065d4e2e52d1072c0" + +are-we-there-yet@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz#80e470e95a084794fe1899262c5667c6e88de1b3" + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.0 || ^1.1.13" + +argparse@^1.0.7: + version "1.0.9" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86" + dependencies: + sprintf-js "~1.0.2" + +aria-query@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-0.7.0.tgz#4af10a1e61573ddea0cf3b99b51c52c05b424d24" + dependencies: + ast-types-flow "0.0.7" + +arr-diff@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" + dependencies: + arr-flatten "^1.0.1" + +arr-flatten@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.0.1.tgz#e5ffe54d45e19f32f216e91eb99c8ce892bb604b" + +array-find-index@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + +array-flatten@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.1.tgz#426bb9da84090c1838d812c8150af20a8331e296" + +array-includes@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.7.0" + +array-union@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + dependencies: + array-uniq "^1.0.1" + +array-uniq@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + +array-unique@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" + +arrify@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + +asap@~2.0.3: + version "2.0.5" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.5.tgz#522765b50c3510490e52d7dcfe085ef9ba96958f" + +asn1.js@^4.0.0: + version "4.9.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.9.1.tgz#48ba240b45a9280e94748990ba597d216617fd40" + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +asn1@~0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" + +assert-plus@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" + +assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + +assert@^1.1.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" + dependencies: + util "0.10.3" + +ast-types-flow@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" + +async-each@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" + +async-foreach@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542" + +async@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" + +async@^2.1.2: + version "2.1.4" + resolved "https://registry.yarnpkg.com/async/-/async-2.1.4.tgz#2d2160c7788032e4dd6cbe2502f1f9a2c8f6cde4" + dependencies: + lodash "^4.14.0" + +async@^2.1.5: + version "2.2.0" + resolved "https://registry.yarnpkg.com/async/-/async-2.2.0.tgz#c324eba010a237e4fbd55a12dee86367d5c0ef32" + dependencies: + lodash "^4.14.0" + +async@^2.4.1: + version "2.5.0" + resolved "https://registry.yarnpkg.com/async/-/async-2.5.0.tgz#843190fd6b7357a0b9e1c956edddd5ec8462b54d" + dependencies: + lodash "^4.14.0" + +async@~0.2.6: + version "0.2.10" + resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + +autoprefixer@^6.3.1: + version "6.7.7" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-6.7.7.tgz#1dbd1c835658e35ce3f9984099db00585c782014" + dependencies: + browserslist "^1.7.6" + caniuse-db "^1.0.30000634" + normalize-range "^0.1.2" + num2fraction "^1.2.2" + postcss "^5.2.16" + postcss-value-parser "^3.2.3" + +autoprefixer@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-7.1.2.tgz#fbeaf07d48fd878e0682bf7cbeeade728adb2b18" + dependencies: + browserslist "^2.1.5" + caniuse-lite "^1.0.30000697" + normalize-range "^0.1.2" + num2fraction "^1.2.2" + postcss "^6.0.6" + postcss-value-parser "^3.2.3" + +aws-sign2@~0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" + +aws4@^1.2.1: + version "1.5.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.5.0.tgz#0a29ffb79c31c9e712eeb087e8e7a64b4a56d755" + +axobject-query@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-0.1.0.tgz#62f59dbc59c9f9242759ca349960e7a2fe3c36c0" + dependencies: + ast-types-flow "0.0.7" + +babel-code-frame@^6.11.0, babel-code-frame@^6.16.0, babel-code-frame@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.22.0.tgz#027620bee567a88c32561574e7fd0801d33118e4" + dependencies: + chalk "^1.1.0" + esutils "^2.0.2" + js-tokens "^3.0.0" + +babel-core@^6.24.1, babel-core@^6.25.0: + version "6.25.0" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.25.0.tgz#7dd42b0463c742e9d5296deb3ec67a9322dad729" + dependencies: + babel-code-frame "^6.22.0" + babel-generator "^6.25.0" + babel-helpers "^6.24.1" + babel-messages "^6.23.0" + babel-register "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.25.0" + babel-traverse "^6.25.0" + babel-types "^6.25.0" + babylon "^6.17.2" + convert-source-map "^1.1.0" + debug "^2.1.1" + json5 "^0.5.0" + lodash "^4.2.0" + minimatch "^3.0.2" + path-is-absolute "^1.0.0" + private "^0.1.6" + slash "^1.0.0" + source-map "^0.5.0" + +babel-generator@^6.25.0: + version "6.25.0" + resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.25.0.tgz#33a1af70d5f2890aeb465a4a7793c1df6a9ea9fc" + dependencies: + babel-messages "^6.23.0" + babel-runtime "^6.22.0" + babel-types "^6.25.0" + detect-indent "^4.0.0" + jsesc "^1.3.0" + lodash "^4.2.0" + source-map "^0.5.0" + trim-right "^1.0.1" + +babel-helper-bindify-decorators@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz#14c19e5f142d7b47f19a52431e52b1ccbc40a330" + dependencies: + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" + dependencies: + babel-helper-explode-assignable-expression "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-builder-react-jsx@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.24.1.tgz#0ad7917e33c8d751e646daca4e77cc19377d2cbc" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + esutils "^2.0.0" + +babel-helper-call-delegate@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" + dependencies: + babel-helper-hoist-variables "^6.24.1" + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-define-map@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.24.1.tgz#7a9747f258d8947d32d515f6aa1c7bd02204a080" + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + lodash "^4.2.0" + +babel-helper-explode-assignable-expression@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" + dependencies: + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-explode-class@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-explode-class/-/babel-helper-explode-class-6.24.1.tgz#7dc2a3910dee007056e1e31d640ced3d54eaa9eb" + dependencies: + babel-helper-bindify-decorators "^6.24.1" + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-function-name@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" + dependencies: + babel-helper-get-function-arity "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-get-function-arity@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-hoist-variables@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-optimise-call-expression@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-regex@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.24.1.tgz#d36e22fab1008d79d88648e32116868128456ce8" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + lodash "^4.2.0" + +babel-helper-remap-async-to-generator@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-replace-supers@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" + dependencies: + babel-helper-optimise-call-expression "^6.24.1" + babel-messages "^6.23.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helpers@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-loader@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-7.1.1.tgz#b87134c8b12e3e4c2a94e0546085bc680a2b8488" + dependencies: + find-cache-dir "^1.0.0" + loader-utils "^1.0.2" + mkdirp "^0.5.1" + +babel-messages@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-check-es2015-constants@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-react-transform@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/babel-plugin-react-transform/-/babel-plugin-react-transform-2.0.2.tgz#515bbfa996893981142d90b1f9b1635de2995109" + dependencies: + lodash "^4.6.1" + +babel-plugin-syntax-async-functions@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" + +babel-plugin-syntax-async-generators@^6.5.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz#6bc963ebb16eccbae6b92b596eb7f35c342a8b9a" + +babel-plugin-syntax-class-constructor-call@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-constructor-call/-/babel-plugin-syntax-class-constructor-call-6.18.0.tgz#9cb9d39fe43c8600bec8146456ddcbd4e1a76416" + integrity sha1-nLnTn+Q8hgC+yBRkVt3L1OGnZBY= + +babel-plugin-syntax-class-properties@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz#d7eb23b79a317f8543962c505b827c7d6cac27de" + +babel-plugin-syntax-decorators@^6.13.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz#312563b4dbde3cc806cee3e416cceeaddd11ac0b" + +babel-plugin-syntax-dynamic-import@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz#8d6a26229c83745a9982a441051572caa179b1da" + +babel-plugin-syntax-exponentiation-operator@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" + +babel-plugin-syntax-export-extensions@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-export-extensions/-/babel-plugin-syntax-export-extensions-6.13.0.tgz#70a1484f0f9089a4e84ad44bac353c95b9b12721" + integrity sha1-cKFITw+QiaToStRLrDU8lbmxJyE= + +babel-plugin-syntax-flow@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz#4c3ab20a2af26aa20cd25995c398c4eb70310c8d" + +babel-plugin-syntax-jsx@^6.3.13, babel-plugin-syntax-jsx@^6.8.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" + +babel-plugin-syntax-object-rest-spread@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" + +babel-plugin-syntax-trailing-function-commas@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" + +babel-plugin-transform-async-generator-functions@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz#f058900145fd3e9907a6ddf28da59f215258a5db" + dependencies: + babel-helper-remap-async-to-generator "^6.24.1" + babel-plugin-syntax-async-generators "^6.5.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-async-to-generator@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" + dependencies: + babel-helper-remap-async-to-generator "^6.24.1" + babel-plugin-syntax-async-functions "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-class-constructor-call@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-constructor-call/-/babel-plugin-transform-class-constructor-call-6.24.1.tgz#80dc285505ac067dcb8d6c65e2f6f11ab7765ef9" + integrity sha1-gNwoVQWsBn3LjWxl4vbxGrd2Xvk= + dependencies: + babel-plugin-syntax-class-constructor-call "^6.18.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-class-properties@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz#6a79763ea61d33d36f37b611aa9def81a81b46ac" + dependencies: + babel-helper-function-name "^6.24.1" + babel-plugin-syntax-class-properties "^6.8.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-decorators@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz#788013d8f8c6b5222bdf7b344390dfd77569e24d" + dependencies: + babel-helper-explode-class "^6.24.1" + babel-plugin-syntax-decorators "^6.13.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-arrow-functions@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-block-scoping@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.24.1.tgz#76c295dc3a4741b1665adfd3167215dcff32a576" + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + lodash "^4.2.0" + +babel-plugin-transform-es2015-classes@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" + dependencies: + babel-helper-define-map "^6.24.1" + babel-helper-function-name "^6.24.1" + babel-helper-optimise-call-expression "^6.24.1" + babel-helper-replace-supers "^6.24.1" + babel-messages "^6.23.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-computed-properties@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-destructuring@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.22.0.tgz#8e0af2f885a0b2cf999d47c4c1dd23ce88cfa4c6" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-duplicate-keys@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-for-of@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.22.0.tgz#180467ad63aeea592a1caeee4bf1c8b3e2616265" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-function-name@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-literals@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-modules-amd@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" + dependencies: + babel-plugin-transform-es2015-modules-commonjs "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-modules-commonjs@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.24.1.tgz#d3e310b40ef664a36622200097c6d440298f2bfe" + dependencies: + babel-plugin-transform-strict-mode "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-modules-systemjs@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" + dependencies: + babel-helper-hoist-variables "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-modules-umd@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" + dependencies: + babel-plugin-transform-es2015-modules-amd "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-object-super@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" + dependencies: + babel-helper-replace-supers "^6.24.1" + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-parameters@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" + dependencies: + babel-helper-call-delegate "^6.24.1" + babel-helper-get-function-arity "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-shorthand-properties@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-spread@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-sticky-regex@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" + dependencies: + babel-helper-regex "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-template-literals@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-typeof-symbol@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.22.0.tgz#87faf2336d3b6a97f68c4d906b0cd0edeae676e1" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-unicode-regex@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" + dependencies: + babel-helper-regex "^6.24.1" + babel-runtime "^6.22.0" + regexpu-core "^2.0.0" + +babel-plugin-transform-exponentiation-operator@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" + dependencies: + babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" + babel-plugin-syntax-exponentiation-operator "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-export-extensions@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-export-extensions/-/babel-plugin-transform-export-extensions-6.22.0.tgz#53738b47e75e8218589eea946cbbd39109bbe653" + integrity sha1-U3OLR+deghhYnuqUbLvTkQm75lM= + dependencies: + babel-plugin-syntax-export-extensions "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-flow-strip-types@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz#84cb672935d43714fdc32bce84568d87441cf7cf" + dependencies: + babel-plugin-syntax-flow "^6.18.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-object-rest-spread@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.22.0.tgz#1d419b55e68d2e4f64a5ff3373bd67d73c8e83bc" + dependencies: + babel-plugin-syntax-object-rest-spread "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-react-display-name@^6.23.0: + version "6.25.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz#67e2bf1f1e9c93ab08db96792e05392bf2cc28d1" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-react-jsx-self@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz#df6d80a9da2612a121e6ddd7558bcbecf06e636e" + dependencies: + babel-plugin-syntax-jsx "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-react-jsx-source@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz#66ac12153f5cd2d17b3c19268f4bf0197f44ecd6" + dependencies: + babel-plugin-syntax-jsx "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-react-jsx@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz#840a028e7df460dfc3a2d29f0c0d91f6376e66a3" + dependencies: + babel-helper-builder-react-jsx "^6.24.1" + babel-plugin-syntax-jsx "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-regenerator@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.24.1.tgz#b8da305ad43c3c99b4848e4fe4037b770d23c418" + dependencies: + regenerator-transform "0.9.11" + +babel-plugin-transform-strict-mode@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-preset-es2015@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz#d44050d6bc2c9feea702aaf38d727a0210538939" + dependencies: + babel-plugin-check-es2015-constants "^6.22.0" + babel-plugin-transform-es2015-arrow-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoping "^6.24.1" + babel-plugin-transform-es2015-classes "^6.24.1" + babel-plugin-transform-es2015-computed-properties "^6.24.1" + babel-plugin-transform-es2015-destructuring "^6.22.0" + babel-plugin-transform-es2015-duplicate-keys "^6.24.1" + babel-plugin-transform-es2015-for-of "^6.22.0" + babel-plugin-transform-es2015-function-name "^6.24.1" + babel-plugin-transform-es2015-literals "^6.22.0" + babel-plugin-transform-es2015-modules-amd "^6.24.1" + babel-plugin-transform-es2015-modules-commonjs "^6.24.1" + babel-plugin-transform-es2015-modules-systemjs "^6.24.1" + babel-plugin-transform-es2015-modules-umd "^6.24.1" + babel-plugin-transform-es2015-object-super "^6.24.1" + babel-plugin-transform-es2015-parameters "^6.24.1" + babel-plugin-transform-es2015-shorthand-properties "^6.24.1" + babel-plugin-transform-es2015-spread "^6.22.0" + babel-plugin-transform-es2015-sticky-regex "^6.24.1" + babel-plugin-transform-es2015-template-literals "^6.22.0" + babel-plugin-transform-es2015-typeof-symbol "^6.22.0" + babel-plugin-transform-es2015-unicode-regex "^6.24.1" + babel-plugin-transform-regenerator "^6.24.1" + +babel-preset-flow@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz#e71218887085ae9a24b5be4169affb599816c49d" + dependencies: + babel-plugin-transform-flow-strip-types "^6.22.0" + +babel-preset-react-hmre@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/babel-preset-react-hmre/-/babel-preset-react-hmre-1.1.1.tgz#d216e60cb5b8d4c873e19ed0f54eaff1437bc492" + dependencies: + babel-plugin-react-transform "^2.0.2" + react-transform-catch-errors "^1.0.2" + react-transform-hmr "^1.0.3" + redbox-react "^1.2.2" + +babel-preset-react@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-preset-react/-/babel-preset-react-6.24.1.tgz#ba69dfaea45fc3ec639b6a4ecea6e17702c91380" + dependencies: + babel-plugin-syntax-jsx "^6.3.13" + babel-plugin-transform-react-display-name "^6.23.0" + babel-plugin-transform-react-jsx "^6.24.1" + babel-plugin-transform-react-jsx-self "^6.22.0" + babel-plugin-transform-react-jsx-source "^6.22.0" + babel-preset-flow "^6.23.0" + +babel-preset-stage-1@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-preset-stage-1/-/babel-preset-stage-1-6.24.1.tgz#7692cd7dcd6849907e6ae4a0a85589cfb9e2bfb0" + integrity sha1-dpLNfc1oSZB+auSgqFWJz7niv7A= + dependencies: + babel-plugin-transform-class-constructor-call "^6.24.1" + babel-plugin-transform-export-extensions "^6.22.0" + babel-preset-stage-2 "^6.24.1" + +babel-preset-stage-2@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz#d9e2960fb3d71187f0e64eec62bc07767219bdc1" + dependencies: + babel-plugin-syntax-dynamic-import "^6.18.0" + babel-plugin-transform-class-properties "^6.24.1" + babel-plugin-transform-decorators "^6.24.1" + babel-preset-stage-3 "^6.24.1" + +babel-preset-stage-3@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz#836ada0a9e7a7fa37cb138fb9326f87934a48395" + dependencies: + babel-plugin-syntax-trailing-function-commas "^6.22.0" + babel-plugin-transform-async-generator-functions "^6.24.1" + babel-plugin-transform-async-to-generator "^6.24.1" + babel-plugin-transform-exponentiation-operator "^6.24.1" + babel-plugin-transform-object-rest-spread "^6.22.0" + +babel-register@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.24.1.tgz#7e10e13a2f71065bdfad5a1787ba45bca6ded75f" + dependencies: + babel-core "^6.24.1" + babel-runtime "^6.22.0" + core-js "^2.4.0" + home-or-tmp "^2.0.0" + lodash "^4.2.0" + mkdirp "^0.5.1" + source-map-support "^0.4.2" + +babel-runtime@^6.18.0, babel-runtime@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.22.0.tgz#1cf8b4ac67c77a4ddb0db2ae1f74de52ac4ca611" + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.10.0" + +babel-template@^6.24.1, babel-template@^6.25.0: + version "6.25.0" + resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.25.0.tgz#665241166b7c2aa4c619d71e192969552b10c071" + dependencies: + babel-runtime "^6.22.0" + babel-traverse "^6.25.0" + babel-types "^6.25.0" + babylon "^6.17.2" + lodash "^4.2.0" + +babel-traverse@^6.24.1, babel-traverse@^6.25.0: + version "6.25.0" + resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.25.0.tgz#2257497e2fcd19b89edc13c4c91381f9512496f1" + dependencies: + babel-code-frame "^6.22.0" + babel-messages "^6.23.0" + babel-runtime "^6.22.0" + babel-types "^6.25.0" + babylon "^6.17.2" + debug "^2.2.0" + globals "^9.0.0" + invariant "^2.2.0" + lodash "^4.2.0" + +babel-types@^6.19.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.22.0.tgz#2a447e8d0ea25d2512409e4175479fd78cc8b1db" + dependencies: + babel-runtime "^6.22.0" + esutils "^2.0.2" + lodash "^4.2.0" + to-fast-properties "^1.0.1" + +babel-types@^6.24.1, babel-types@^6.25.0: + version "6.25.0" + resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.25.0.tgz#70afb248d5660e5d18f811d91c8303b54134a18e" + dependencies: + babel-runtime "^6.22.0" + esutils "^2.0.2" + lodash "^4.2.0" + to-fast-properties "^1.0.1" + +babylon@^6.17.2: + version "6.17.4" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.17.4.tgz#3e8b7402b88d22c3423e137a1577883b15ff869a" + +balanced-match@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.1.0.tgz#b504bd05869b39259dd0c5efc35d843176dccc4a" + +balanced-match@^0.4.1, balanced-match@^0.4.2: + version "0.4.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + +base64-js@^1.0.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.0.tgz#a39992d723584811982be5e290bb6a53d86700f1" + +batch@0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/batch/-/batch-0.5.3.tgz#3f3414f380321743bfc1042f9a83ff1d5824d464" + +bcrypt-pbkdf@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.0.tgz#3ca76b85241c7170bf7d9703e7b9aa74630040d4" + dependencies: + tweetnacl "^0.14.3" + +big.js@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.1.3.tgz#4cada2193652eb3ca9ec8e55c9015669c9806978" + +binary-extensions@^1.0.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.8.0.tgz#48ec8d16df4377eae5fa5884682480af4d95c774" + +block-stream@*: + version "0.0.9" + resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" + dependencies: + inherits "~2.0.0" + +bluebird@^3.4.7: + version "3.4.7" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.4.7.tgz#f72d760be09b7f76d08ed8fae98b289a8d05fab3" + +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: + version "4.11.6" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215" + +bonjour@^3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" + dependencies: + array-flatten "^2.1.0" + deep-equal "^1.0.1" + dns-equal "^1.0.0" + dns-txt "^2.0.2" + multicast-dns "^6.0.1" + multicast-dns-service-types "^1.1.0" + +boolbase@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + +boom@2.x.x: + version "2.10.1" + resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" + dependencies: + hoek "2.x.x" + +brace-expansion@^1.0.0: + version "1.1.6" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.6.tgz#7197d7eaa9b87e648390ea61fc66c84427420df9" + dependencies: + balanced-match "^0.4.1" + concat-map "0.0.1" + +brace-expansion@^1.1.7: + version "1.1.8" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292" + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^1.8.2: + version "1.8.5" + resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" + dependencies: + expand-range "^1.8.1" + preserve "^0.2.0" + repeat-element "^1.1.2" + +brorand@^1.0.1: + version "1.0.6" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.0.6.tgz#4028706b915f91f7b349a2e0bf3c376039d216e5" + +browserify-aes@^1.0.0, browserify-aes@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.0.6.tgz#5e7725dbdef1fd5930d4ebab48567ce451c48a0a" + dependencies: + buffer-xor "^1.0.2" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.0" + inherits "^2.0.1" + +browserify-cipher@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.0.tgz#9988244874bf5ed4e28da95666dcd66ac8fc363a" + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.0.tgz#daa277717470922ed2fe18594118a175439721dd" + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + +browserify-rsa@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" + dependencies: + bn.js "^4.1.0" + randombytes "^2.0.1" + +browserify-sign@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.0.tgz#10773910c3c206d5420a46aad8694f820b85968f" + dependencies: + bn.js "^4.1.1" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.2" + elliptic "^6.0.0" + inherits "^2.0.1" + parse-asn1 "^5.0.0" + +browserify-zlib@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.1.4.tgz#bb35f8a519f600e0fa6b8485241c979d0141fb2d" + dependencies: + pako "~0.2.0" + +browserslist@^1.0.1, browserslist@^1.5.2, browserslist@^1.7.6: + version "1.7.7" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.7.7.tgz#0bd76704258be829b2398bb50e4b62d1a166b0b9" + dependencies: + caniuse-db "^1.0.30000639" + electron-to-chromium "^1.2.7" + +browserslist@^2.1.5: + version "2.1.5" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.1.5.tgz#e882550df3d1cd6d481c1a3e0038f2baf13a4711" + dependencies: + caniuse-lite "^1.0.30000684" + electron-to-chromium "^1.3.14" + +buffer-indexof@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.0.tgz#f54f647c4f4e25228baa656a2e57e43d5f270982" + +buffer-shims@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" + +buffer-xor@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + +buffer@^4.3.0: + version "4.9.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" + +builtin-modules@^1.0.0, builtin-modules@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" + +builtin-status-codes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + +bytes@2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-2.3.0.tgz#d5b680a165b6201739acb611542aabc2d8ceb070" + +caller-path@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" + dependencies: + callsites "^0.2.0" + +callsites@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" + +camel-case@3.0.x: + version "3.0.0" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" + dependencies: + no-case "^2.2.0" + upper-case "^1.1.1" + +camelcase-css@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-1.0.1.tgz#157c4238265f5cf94a1dffde86446552cbf3f705" + +camelcase-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" + dependencies: + camelcase "^2.0.0" + map-obj "^1.0.0" + +camelcase@^1.0.2: + version "1.2.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" + +camelcase@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" + +camelcase@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" + +caniuse-api@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-1.5.2.tgz#8f393c682f661c0a997b77bba6e826483fb3600e" + dependencies: + browserslist "^1.0.1" + caniuse-db "^1.0.30000346" + lodash.memoize "^4.1.0" + lodash.uniq "^4.3.0" + shelljs "^0.7.0" + +caniuse-db@^1.0.30000346, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639: + version "1.0.30000644" + resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000644.tgz#9d7eccf1ef1d11cbd6741b9fb390f9923ff42261" + +caniuse-lite@^1.0.30000684, caniuse-lite@^1.0.30000697: + version "1.0.30000700" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000700.tgz#6084871ec75c6fa62327de97622514f95d9db26a" + +caseless@~0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7" + +center-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" + dependencies: + align-text "^0.1.3" + lazy-cache "^1.0.3" + +chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +chalk@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.0.1.tgz#dbec49436d2ae15f536114e76d14656cdbc0f44d" + dependencies: + ansi-styles "^3.1.0" + escape-string-regexp "^1.0.5" + supports-color "^4.0.0" + +chokidar@^1.4.3, chokidar@^1.6.0: + version "1.6.1" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.6.1.tgz#2f4447ab5e96e50fb3d789fd90d4c72e0e4c70c2" + dependencies: + anymatch "^1.3.0" + async-each "^1.0.0" + glob-parent "^2.0.0" + inherits "^2.0.1" + is-binary-path "^1.0.0" + is-glob "^2.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.0.0" + optionalDependencies: + fsevents "^1.0.0" + +cipher-base@^1.0.0, cipher-base@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.3.tgz#eeabf194419ce900da3018c207d212f2a6df0a07" + dependencies: + inherits "^2.0.1" + +circular-json@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.1.tgz#be8b36aefccde8b3ca7aa2d6afc07a37242c0d2d" + +clap@^1.0.9: + version "1.1.2" + resolved "https://registry.yarnpkg.com/clap/-/clap-1.1.2.tgz#316545bf22229225a2cecaa6824cd2f56a9709ed" + dependencies: + chalk "^1.1.3" + +classnames@2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.0.tgz#19524334bad47ccd99793936b67f9be0860fe835" + +clean-css@4.0.x: + version "4.0.3" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.0.3.tgz#9da7b59301d940c345757f175e6dfa6872c7de8e" + dependencies: + source-map "0.5.x" + +cli-cursor@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" + dependencies: + restore-cursor "^1.0.1" + +cli-width@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a" + +cliui@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" + dependencies: + center-align "^0.1.1" + right-align "^0.1.1" + wordwrap "0.0.2" + +cliui@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + wrap-ansi "^2.0.0" + +clone-deep@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-0.3.0.tgz#348c61ae9cdbe0edfe053d91ff4cc521d790ede8" + dependencies: + for-own "^1.0.0" + is-plain-object "^2.0.1" + kind-of "^3.2.2" + shallow-clone "^0.1.2" + +clone@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.2.tgz#260b7a99ebb1edfe247538175f783243cb19d149" + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + +coa@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/coa/-/coa-1.0.1.tgz#7f959346cfc8719e3f7233cd6852854a7c67d8a3" + dependencies: + q "^1.1.2" + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + +color-convert@^1.0.0, color-convert@^1.3.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.0.tgz#1accf97dd739b983bf994d56fec8f95853641b7a" + dependencies: + color-name "^1.1.1" + +color-name@^1.0.0, color-name@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.1.tgz#4b1415304cf50028ea81643643bd82ea05803689" + +color-string@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-0.3.0.tgz#27d46fb67025c5c2fa25993bfbf579e47841b991" + dependencies: + color-name "^1.0.0" + +color@^0.11.0: + version "0.11.4" + resolved "https://registry.yarnpkg.com/color/-/color-0.11.4.tgz#6d7b5c74fb65e841cd48792ad1ed5e07b904d764" + dependencies: + clone "^1.0.2" + color-convert "^1.3.0" + color-string "^0.3.0" + +colormin@^1.0.5: + version "1.1.2" + resolved "https://registry.yarnpkg.com/colormin/-/colormin-1.1.2.tgz#ea2f7420a72b96881a38aae59ec124a6f7298133" + dependencies: + color "^0.11.0" + css-color-names "0.0.4" + has "^1.0.1" + +colors@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" + +combined-stream@^1.0.5, combined-stream@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" + dependencies: + delayed-stream "~1.0.0" + +commander@2.9.x, commander@^2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" + dependencies: + graceful-readlink ">= 1.0.0" + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + +compressible@~2.0.8: + version "2.0.9" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.9.tgz#6daab4e2b599c2770dd9e21e7a891b1c5a755425" + dependencies: + mime-db ">= 1.24.0 < 2" + +compression@^1.5.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.6.2.tgz#cceb121ecc9d09c52d7ad0c3350ea93ddd402bc3" + dependencies: + accepts "~1.3.3" + bytes "2.3.0" + compressible "~2.0.8" + debug "~2.2.0" + on-headers "~1.0.1" + vary "~1.1.0" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + +concat-stream@^1.5.2: + version "1.6.0" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" + dependencies: + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +connect-history-api-fallback@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.3.0.tgz#e51d17f8f0ef0db90a64fdb47de3051556e9f169" + +console-browserify@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" + dependencies: + date-now "^0.1.4" + +console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + +constants-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + +contains-path@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" + +content-disposition@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" + +content-type@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.2.tgz#b7d113aee7a8dd27bd21133c4dc2529df1721eed" + +convert-source-map@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.3.0.tgz#e9f3e9c6e2728efc2676696a70eb382f73106a67" + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + +cookie@0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" + +core-js@^1.0.0: + version "1.2.7" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" + +core-js@^2.4.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e" + +core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + +cosmiconfig@^2.1.0, cosmiconfig@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-2.1.1.tgz#817f2c2039347a1e9bf7d090c0923e53f749ca82" + dependencies: + js-yaml "^3.4.3" + minimist "^1.2.0" + object-assign "^4.1.0" + os-homedir "^1.0.1" + parse-json "^2.2.0" + require-from-string "^1.1.0" + +create-ecdh@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.0.tgz#888c723596cdf7612f6498233eebd7a35301737d" + dependencies: + bn.js "^4.1.0" + elliptic "^6.0.0" + +create-hash@^1.1.0, create-hash@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.1.2.tgz#51210062d7bb7479f6c65bb41a92208b1d61abad" + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + ripemd160 "^1.0.0" + sha.js "^2.3.6" + +create-hmac@^1.1.0, create-hmac@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.4.tgz#d3fb4ba253eb8b3f56e39ea2fbcb8af747bd3170" + dependencies: + create-hash "^1.1.0" + inherits "^2.0.1" + +cross-spawn@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-3.0.1.tgz#1256037ecb9f0c5f79e3d6ef135e30770184b982" + dependencies: + lru-cache "^4.0.1" + which "^1.2.9" + +cryptiles@2.x.x: + version "2.0.5" + resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" + dependencies: + boom "2.x.x" + +crypto-browserify@^3.11.0: + version "3.11.0" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.11.0.tgz#3652a0906ab9b2a7e0c3ce66a408e957a2485522" + dependencies: + browserify-cipher "^1.0.0" + browserify-sign "^4.0.0" + create-ecdh "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.0" + diffie-hellman "^5.0.0" + inherits "^2.0.1" + pbkdf2 "^3.0.3" + public-encrypt "^4.0.0" + randombytes "^2.0.0" + +css-color-function@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/css-color-function/-/css-color-function-1.3.0.tgz#72c767baf978f01b8a8a94f42f17ba5d22a776fc" + dependencies: + balanced-match "0.1.0" + color "^0.11.0" + debug "~0.7.4" + rgb "~0.1.0" + +css-color-names@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" + +css-loader@^0.28.4: + version "0.28.4" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-0.28.4.tgz#6cf3579192ce355e8b38d5f42dd7a1f2ec898d0f" + dependencies: + babel-code-frame "^6.11.0" + css-selector-tokenizer "^0.7.0" + cssnano ">=2.6.1 <4" + icss-utils "^2.1.0" + loader-utils "^1.0.2" + lodash.camelcase "^4.3.0" + object-assign "^4.0.1" + postcss "^5.0.6" + postcss-modules-extract-imports "^1.0.0" + postcss-modules-local-by-default "^1.0.1" + postcss-modules-scope "^1.0.0" + postcss-modules-values "^1.1.0" + postcss-value-parser "^3.3.0" + source-list-map "^0.1.7" + +css-select@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" + dependencies: + boolbase "~1.0.0" + css-what "2.1" + domutils "1.5.1" + nth-check "~1.0.1" + +css-selector-tokenizer@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.6.0.tgz#6445f582c7930d241dcc5007a43d6fcb8f073152" + dependencies: + cssesc "^0.1.0" + fastparse "^1.1.1" + regexpu-core "^1.0.0" + +css-selector-tokenizer@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz#e6988474ae8c953477bf5e7efecfceccd9cf4c86" + dependencies: + cssesc "^0.1.0" + fastparse "^1.1.1" + regexpu-core "^1.0.0" + +css-what@2.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.0.tgz#9467d032c38cfaefb9f2d79501253062f87fa1bd" + +cssesc@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4" + +"cssnano@>=2.6.1 <4": + version "3.10.0" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-3.10.0.tgz#4f38f6cea2b9b17fa01490f23f1dc68ea65c1c38" + dependencies: + autoprefixer "^6.3.1" + decamelize "^1.1.2" + defined "^1.0.0" + has "^1.0.1" + object-assign "^4.0.1" + postcss "^5.0.14" + postcss-calc "^5.2.0" + postcss-colormin "^2.1.8" + postcss-convert-values "^2.3.4" + postcss-discard-comments "^2.0.4" + postcss-discard-duplicates "^2.0.1" + postcss-discard-empty "^2.0.1" + postcss-discard-overridden "^0.1.1" + postcss-discard-unused "^2.2.1" + postcss-filter-plugins "^2.0.0" + postcss-merge-idents "^2.1.5" + postcss-merge-longhand "^2.0.1" + postcss-merge-rules "^2.0.3" + postcss-minify-font-values "^1.0.2" + postcss-minify-gradients "^1.0.1" + postcss-minify-params "^1.0.4" + postcss-minify-selectors "^2.0.4" + postcss-normalize-charset "^1.1.0" + postcss-normalize-url "^3.0.7" + postcss-ordered-values "^2.1.0" + postcss-reduce-idents "^2.2.2" + postcss-reduce-initial "^1.0.0" + postcss-reduce-transforms "^1.0.3" + postcss-svgo "^2.1.1" + postcss-unique-selectors "^2.0.2" + postcss-value-parser "^3.2.3" + postcss-zindex "^2.0.1" + +csso@~2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/csso/-/csso-2.3.1.tgz#4f8d91a156f2f1c2aebb40b8fb1b5eb83d94d3b9" + dependencies: + clap "^1.0.9" + source-map "^0.5.3" + +currently-unhandled@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" + dependencies: + array-find-index "^1.0.1" + +d@^0.1.1, d@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/d/-/d-0.1.1.tgz#da184c535d18d8ee7ba2aa229b914009fae11309" + dependencies: + es5-ext "~0.10.2" + +damerau-levenshtein@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.3.tgz#ae4f4ce0b62acae10ff63a01bb08f652f5213af2" + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + dependencies: + assert-plus "^1.0.0" + +date-now@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" + +debug@^2.1.1, debug@^2.2.0, debug@~2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da" + dependencies: + ms "0.7.1" + +debug@^2.6.8: + version "2.6.8" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc" + dependencies: + ms "2.0.0" + +debug@~0.7.4: + version "0.7.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-0.7.4.tgz#06e1ea8082c2cb14e39806e22e2f6f757f92af39" + +decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + +deep-equal@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" + +deep-extend@~0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.1.tgz#efe4113d08085f4e6f9687759810f807469e2253" + +deep-is@~0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + +define-properties@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94" + dependencies: + foreach "^2.0.5" + object-keys "^1.0.8" + +defined@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" + +del@^2.0.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" + dependencies: + globby "^5.0.0" + is-path-cwd "^1.0.0" + is-path-in-cwd "^1.0.0" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + rimraf "^2.2.8" + +del@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/del/-/del-3.0.0.tgz#53ecf699ffcbcb39637691ab13baf160819766e5" + dependencies: + globby "^6.1.0" + is-path-cwd "^1.0.0" + is-path-in-cwd "^1.0.0" + p-map "^1.1.1" + pify "^3.0.0" + rimraf "^2.2.8" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + +depd@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.0.tgz#e1bd82c6aab6ced965b97b88b17ed3e528ca18c3" + +des.js@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + +detect-indent@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" + dependencies: + repeating "^2.0.0" + +diffie-hellman@^5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.2.tgz#b5835739270cfe26acf632099fded2a07f209e5e" + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + +dns-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" + +dns-packet@^1.0.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.1.1.tgz#2369d45038af045f3898e6fa56862aed3f40296c" + dependencies: + ip "^1.1.0" + safe-buffer "^5.0.1" + +dns-txt@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" + dependencies: + buffer-indexof "^1.0.0" + +doctrine@1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" + dependencies: + esutils "^2.0.2" + isarray "^1.0.0" + +doctrine@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.0.0.tgz#c73d8d2909d22291e1a007a395804da8b665fe63" + dependencies: + esutils "^2.0.2" + isarray "^1.0.0" + +dom-converter@~0.1: + version "0.1.4" + resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.1.4.tgz#a45ef5727b890c9bffe6d7c876e7b19cb0e17f3b" + dependencies: + utila "~0.3" + +dom-css@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/dom-css/-/dom-css-2.1.0.tgz#fdbc2d5a015d0a3e1872e11472bbd0e7b9e6a202" + dependencies: + add-px-to-style "1.0.0" + prefix-style "2.0.1" + to-camel-case "1.0.0" + +dom-serializer@0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82" + dependencies: + domelementtype "~1.1.1" + entities "~1.1.1" + +dom-walk@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.1.tgz#672226dc74c8f799ad35307df936aba11acd6018" + +domain-browser@^1.1.1: + version "1.1.7" + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.1.7.tgz#867aa4b093faa05f1de08c06f4d7b21fdf8698bc" + +domelementtype@1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.0.tgz#b17aed82e8ab59e52dd9c19b1756e0fc187204c2" + +domelementtype@~1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b" + +domhandler@2.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.1.0.tgz#d2646f5e57f6c3bab11cf6cb05d3c0acf7412594" + dependencies: + domelementtype "1" + +domutils@1.1: + version "1.1.6" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.1.6.tgz#bddc3de099b9a2efacc51c623f28f416ecc57485" + dependencies: + domelementtype "1" + +domutils@1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" + dependencies: + dom-serializer "0" + domelementtype "1" + +ecc-jsbn@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" + dependencies: + jsbn "~0.1.0" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + +electron-to-chromium@^1.2.7: + version "1.3.2" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.2.tgz#b8ce5c93b308db0e92f6d0435c46ddec8f6363ab" + +electron-to-chromium@^1.3.14: + version "1.3.15" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.15.tgz#08397934891cbcfaebbd18b82a95b5a481138369" + +elliptic@^6.0.0: + version "6.3.2" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.3.2.tgz#e4c81e0829cf0a65ab70e998b8232723b5c1bc48" + dependencies: + bn.js "^4.4.0" + brorand "^1.0.1" + hash.js "^1.0.0" + inherits "^2.0.1" + +emoji-regex@^6.1.0: + version "6.4.3" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-6.4.3.tgz#6ac2ac58d4b78def5e39b33fcbf395688af3076c" + +emojis-list@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" + +encodeurl@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.1.tgz#79e3d58655346909fe6f0f45a5de68103b294d20" + +encoding@^0.1.11: + version "0.1.12" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" + dependencies: + iconv-lite "~0.4.13" + +enhanced-resolve@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.3.0.tgz#950964ecc7f0332a42321b673b38dc8ff15535b3" + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.4.0" + object-assign "^4.0.1" + tapable "^0.2.5" + +entities@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" + +errno@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.4.tgz#b896e23a9e5e8ba33871fc996abd3635fc9a1c7d" + dependencies: + prr "~0.0.0" + +error-ex@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.0.tgz#e67b43f3e82c96ea3a584ffee0b9fc3325d802d9" + dependencies: + is-arrayish "^0.2.1" + +error-stack-parser@^1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-1.3.6.tgz#e0e73b93e417138d1cd7c0b746b1a4a14854c292" + dependencies: + stackframe "^0.3.1" + +es-abstract@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.7.0.tgz#dfade774e01bfcd97f96180298c449c8623fb94c" + dependencies: + es-to-primitive "^1.1.1" + function-bind "^1.1.0" + is-callable "^1.1.3" + is-regex "^1.0.3" + +es-to-primitive@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d" + dependencies: + is-callable "^1.1.1" + is-date-object "^1.0.1" + is-symbol "^1.0.1" + +es5-ext@^0.10.7, es5-ext@^0.10.8, es5-ext@~0.10.11, es5-ext@~0.10.2, es5-ext@~0.10.7: + version "0.10.12" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.12.tgz#aa84641d4db76b62abba5e45fd805ecbab140047" + dependencies: + es6-iterator "2" + es6-symbol "~3.1" + +es6-iterator@2: + version "2.0.0" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.0.tgz#bd968567d61635e33c0b80727613c9cb4b096bac" + dependencies: + d "^0.1.1" + es5-ext "^0.10.7" + es6-symbol "3" + +es6-map@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.4.tgz#a34b147be224773a4d7da8072794cefa3632b897" + dependencies: + d "~0.1.1" + es5-ext "~0.10.11" + es6-iterator "2" + es6-set "~0.1.3" + es6-symbol "~3.1.0" + event-emitter "~0.3.4" + +es6-promise@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.1.1.tgz#8811e90915d9a0dba36274f0b242dbda78f9c92a" + +es6-set@~0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.4.tgz#9516b6761c2964b92ff479456233a247dc707ce8" + dependencies: + d "~0.1.1" + es5-ext "~0.10.11" + es6-iterator "2" + es6-symbol "3" + event-emitter "~0.3.4" + +es6-symbol@3, es6-symbol@~3.1, es6-symbol@~3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.0.tgz#94481c655e7a7cad82eba832d97d5433496d7ffa" + dependencies: + d "~0.1.1" + es5-ext "~0.10.11" + +es6-weak-map@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.1.tgz#0d2bbd8827eb5fb4ba8f97fbfea50d43db21ea81" + dependencies: + d "^0.1.1" + es5-ext "^0.10.8" + es6-iterator "2" + es6-symbol "3" + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + +escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + +escope@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" + dependencies: + es6-map "^0.1.3" + es6-weak-map "^2.0.1" + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-config-airbnb-base@^11.2.0: + version "11.2.0" + resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-11.2.0.tgz#19a9dc4481a26f70904545ec040116876018f853" + +eslint-config-airbnb@15.0.2: + version "15.0.2" + resolved "https://registry.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-15.0.2.tgz#7b99fa421d0c15aee3310d647644315b02ea24da" + dependencies: + eslint-config-airbnb-base "^11.2.0" + +eslint-config-prettier@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-4.1.0.tgz#181364895899fff9fd3605fecb5c4f20e7d5f395" + dependencies: + get-stdin "^6.0.0" + +eslint-import-resolver-node@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.1.tgz#4422574cde66a9a7b099938ee4d508a199e0e3cc" + dependencies: + debug "^2.6.8" + resolve "^1.2.0" + +eslint-module-utils@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.1.1.tgz#abaec824177613b8a95b299639e1b6facf473449" + dependencies: + debug "^2.6.8" + pkg-dir "^1.0.0" + +eslint-plugin-import@2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.7.0.tgz#21de33380b9efb55f5ef6d2e210ec0e07e7fa69f" + dependencies: + builtin-modules "^1.1.1" + contains-path "^0.1.0" + debug "^2.6.8" + doctrine "1.5.0" + eslint-import-resolver-node "^0.3.1" + eslint-module-utils "^2.1.1" + has "^1.0.1" + lodash.cond "^4.3.0" + minimatch "^3.0.3" + read-pkg-up "^2.0.0" + +eslint-plugin-jsx-a11y@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-5.1.1.tgz#5c96bb5186ca14e94db1095ff59b3e2bd94069b1" + dependencies: + aria-query "^0.7.0" + array-includes "^3.0.3" + ast-types-flow "0.0.7" + axobject-query "^0.1.0" + damerau-levenshtein "^1.0.0" + emoji-regex "^6.1.0" + jsx-ast-utils "^1.4.0" + +eslint-plugin-prettier@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.0.1.tgz#19d521e3981f69dd6d14f64aec8c6a6ac6eb0b0d" + dependencies: + prettier-linter-helpers "^1.0.0" + +eslint-plugin-react@7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.1.0.tgz#27770acf39f5fd49cd0af4083ce58104eb390d4c" + dependencies: + doctrine "^2.0.0" + has "^1.0.1" + jsx-ast-utils "^1.4.1" + +eslint@3.19.0: + version "3.19.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-3.19.0.tgz#c8fc6201c7f40dd08941b87c085767386a679acc" + dependencies: + babel-code-frame "^6.16.0" + chalk "^1.1.3" + concat-stream "^1.5.2" + debug "^2.1.1" + doctrine "^2.0.0" + escope "^3.6.0" + espree "^3.4.0" + esquery "^1.0.0" + estraverse "^4.2.0" + esutils "^2.0.2" + file-entry-cache "^2.0.0" + glob "^7.0.3" + globals "^9.14.0" + ignore "^3.2.0" + imurmurhash "^0.1.4" + inquirer "^0.12.0" + is-my-json-valid "^2.10.0" + is-resolvable "^1.0.0" + js-yaml "^3.5.1" + json-stable-stringify "^1.0.0" + levn "^0.3.0" + lodash "^4.0.0" + mkdirp "^0.5.0" + natural-compare "^1.4.0" + optionator "^0.8.2" + path-is-inside "^1.0.1" + pluralize "^1.2.1" + progress "^1.1.8" + require-uncached "^1.0.2" + shelljs "^0.7.5" + strip-bom "^3.0.0" + strip-json-comments "~2.0.1" + table "^3.7.8" + text-table "~0.2.0" + user-home "^2.0.0" + +espree@^3.4.0: + version "3.4.3" + resolved "https://registry.yarnpkg.com/espree/-/espree-3.4.3.tgz#2910b5ccd49ce893c2ffffaab4fd8b3a31b82374" + dependencies: + acorn "^5.0.1" + acorn-jsx "^3.0.0" + +esprima@^2.6.0: + version "2.7.3" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" + +esprima@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" + +esquery@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.0.tgz#cfba8b57d7fba93f17298a8a006a04cda13d80fa" + dependencies: + estraverse "^4.0.0" + +esrecurse@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.1.0.tgz#4713b6536adf7f2ac4f327d559e7756bff648220" + dependencies: + estraverse "~4.1.0" + object-assign "^4.0.1" + +estraverse@^4.0.0, estraverse@^4.1.1, estraverse@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" + +estraverse@~4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.1.1.tgz#f6caca728933a850ef90661d0e17982ba47111a2" + +esutils@^2.0.0, esutils@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" + +etag@~1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.7.0.tgz#03d30b5f67dd6e632d2945d30d6652731a34d5d8" + +event-emitter@~0.3.4: + version "0.3.4" + resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.4.tgz#8d63ddfb4cfe1fae3b32ca265c4c720222080bb5" + dependencies: + d "~0.1.1" + es5-ext "~0.10.7" + +eventemitter3@1.x.x: + version "1.2.0" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-1.2.0.tgz#1c86991d816ad1e504750e73874224ecf3bec508" + +events@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" + +eventsource@0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-0.1.6.tgz#0acede849ed7dd1ccc32c811bb11b944d4f29232" + dependencies: + original ">=0.0.5" + +evp_bytestokey@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz#497b66ad9fef65cd7c08a6180824ba1476b66e53" + dependencies: + create-hash "^1.1.1" + +exenv@^1.2.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/exenv/-/exenv-1.2.2.tgz#2ae78e85d9894158670b03d47bec1f03bd91bb9d" + +exit-hook@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" + +expand-brackets@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" + dependencies: + is-posix-bracket "^0.1.0" + +expand-range@^1.8.1: + version "1.8.2" + resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" + dependencies: + fill-range "^2.1.0" + +express@^4.13.3: + version "4.14.1" + resolved "https://registry.yarnpkg.com/express/-/express-4.14.1.tgz#646c237f766f148c2120aff073817b9e4d7e0d33" + dependencies: + accepts "~1.3.3" + array-flatten "1.1.1" + content-disposition "0.5.2" + content-type "~1.0.2" + cookie "0.3.1" + cookie-signature "1.0.6" + debug "~2.2.0" + depd "~1.1.0" + encodeurl "~1.0.1" + escape-html "~1.0.3" + etag "~1.7.0" + finalhandler "0.5.1" + fresh "0.3.0" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.1" + path-to-regexp "0.1.7" + proxy-addr "~1.1.3" + qs "6.2.0" + range-parser "~1.2.0" + send "0.14.2" + serve-static "~1.11.2" + type-is "~1.6.14" + utils-merge "1.0.0" + vary "~1.1.0" + +extend@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.0.tgz#5a474353b9f3353ddd8176dfd37b91c83a46f1d4" + +extglob@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" + dependencies: + is-extglob "^1.0.0" + +extract-text-webpack-plugin@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/extract-text-webpack-plugin/-/extract-text-webpack-plugin-3.0.0.tgz#90caa7907bc449f335005e3ac7532b41b00de612" + dependencies: + async "^2.4.1" + loader-utils "^1.1.0" + schema-utils "^0.3.0" + webpack-sources "^1.0.1" + +extsprintf@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550" + +fast-deep-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff" + +fast-diff@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" + +fast-levenshtein@~2.0.4: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + +fastparse@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.1.tgz#d1e2643b38a94d7583b479060e6c4affc94071f8" + +faye-websocket@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" + dependencies: + websocket-driver ">=0.5.1" + +faye-websocket@~0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.1.tgz#f0efe18c4f56e4f40afc7e06c719fd5ee6188f38" + dependencies: + websocket-driver ">=0.5.1" + +fbjs@^0.8.9: + version "0.8.12" + resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.12.tgz#10b5d92f76d45575fd63a217d4ea02bea2f8ed04" + dependencies: + core-js "^1.0.0" + isomorphic-fetch "^2.1.1" + loose-envify "^1.0.0" + object-assign "^4.1.0" + promise "^7.1.1" + setimmediate "^1.0.5" + ua-parser-js "^0.7.9" + +figures@^1.3.5: + version "1.7.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" + dependencies: + escape-string-regexp "^1.0.5" + object-assign "^4.1.0" + +file-entry-cache@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" + dependencies: + flat-cache "^1.2.1" + object-assign "^4.0.1" + +filename-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.0.tgz#996e3e80479b98b9897f15a8a58b3d084e926775" + +fill-range@^2.1.0: + version "2.2.3" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" + dependencies: + is-number "^2.1.0" + isobject "^2.0.0" + randomatic "^1.1.3" + repeat-element "^1.1.2" + repeat-string "^1.5.2" + +finalhandler@0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-0.5.1.tgz#2c400d8d4530935bc232549c5fa385ec07de6fcd" + dependencies: + debug "~2.2.0" + escape-html "~1.0.3" + on-finished "~2.3.0" + statuses "~1.3.1" + unpipe "~1.0.0" + +find-cache-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f" + dependencies: + commondir "^1.0.1" + make-dir "^1.0.0" + pkg-dir "^2.0.0" + +find-up@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + dependencies: + path-exists "^2.0.0" + pinkie-promise "^2.0.0" + +find-up@^2.0.0, find-up@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + dependencies: + locate-path "^2.0.0" + +flat-cache@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.2.2.tgz#fa86714e72c21db88601761ecf2f555d1abc6b96" + dependencies: + circular-json "^0.3.1" + del "^2.0.2" + graceful-fs "^4.1.2" + write "^0.2.1" + +flatten@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782" + +for-in@^0.1.3, for-in@^0.1.5: + version "0.1.6" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.6.tgz#c9f96e89bfad18a545af5ec3ed352a1d9e5b4dc8" + +for-in@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + +for-own@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.4.tgz#0149b41a39088c7515f51ebe1c1386d45f935072" + dependencies: + for-in "^0.1.5" + +for-own@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b" + dependencies: + for-in "^1.0.1" + +foreach@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + +form-data@~2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.2.tgz#89c3534008b97eada4cbb157d58f6f5df025eae4" + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.5" + mime-types "^2.1.12" + +forwarded@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.0.tgz#19ef9874c4ae1c297bcf078fde63a09b66a84363" + +fresh@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.3.0.tgz#651f838e22424e7566de161d8358caa199f83d4f" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + +fsevents@^1.0.0: + version "1.0.17" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.0.17.tgz#8537f3f12272678765b4fd6528c0f1f66f8f4558" + dependencies: + nan "^2.3.0" + node-pre-gyp "^0.6.29" + +fstream-ignore@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" + dependencies: + fstream "^1.0.0" + inherits "2" + minimatch "^3.0.0" + +fstream@^1.0.0, fstream@^1.0.2, fstream@~1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.10.tgz#604e8a92fe26ffd9f6fae30399d4984e1ab22822" + dependencies: + graceful-fs "^4.1.2" + inherits "~2.0.0" + mkdirp ">=0.5 0" + rimraf "2" + +function-bind@^1.0.2, function-bind@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.0.tgz#16176714c801798e4e8f2cf7f7529467bb4a5771" + +gauge@~2.7.1: + version "2.7.2" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.2.tgz#15cecc31b02d05345a5d6b0e171cdb3ad2307774" + dependencies: + aproba "^1.0.3" + console-control-strings "^1.0.0" + has-unicode "^2.0.0" + object-assign "^4.1.0" + signal-exit "^3.0.0" + string-width "^1.0.1" + strip-ansi "^3.0.1" + supports-color "^0.2.0" + wide-align "^1.1.0" + +gaze@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/gaze/-/gaze-1.1.2.tgz#847224677adb8870d679257ed3388fdb61e40105" + dependencies: + globule "^1.0.0" + +generate-function@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74" + +generate-object-property@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" + dependencies: + is-property "^1.0.0" + +get-caller-file@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" + +get-stdin@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" + +get-stdin@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" + +getpass@^0.1.1: + version "0.1.6" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.6.tgz#283ffd9fc1256840875311c1b60e8c40187110e6" + dependencies: + assert-plus "^1.0.0" + +glob-base@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" + dependencies: + glob-parent "^2.0.0" + is-glob "^2.0.0" + +glob-parent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" + dependencies: + is-glob "^2.0.0" + +glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@~7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.2" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.1.1: + version "7.1.2" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +global@^4.3.0: + version "4.3.1" + resolved "https://registry.yarnpkg.com/global/-/global-4.3.1.tgz#5f757908c7cbabce54f386ae440e11e26b7916df" + dependencies: + min-document "^2.19.0" + process "~0.5.1" + +globals@^9.0.0: + version "9.14.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-9.14.0.tgz#8859936af0038741263053b39d0e76ca241e4034" + +globals@^9.14.0: + version "9.18.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" + +globby@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" + dependencies: + array-union "^1.0.1" + arrify "^1.0.0" + glob "^7.0.3" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +globby@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" + dependencies: + array-union "^1.0.1" + glob "^7.0.3" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +globule@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/globule/-/globule-1.1.0.tgz#c49352e4dc183d85893ee825385eb994bb6df45f" + dependencies: + glob "~7.1.1" + lodash "~4.16.4" + minimatch "~3.0.2" + +graceful-fs@^4.1.2: + version "4.1.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" + +"graceful-readlink@>= 1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" + +handle-thing@^1.2.4: + version "1.2.5" + resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-1.2.5.tgz#fd7aad726bf1a5fd16dfc29b2f7a6601d27139c4" + +har-validator@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d" + dependencies: + chalk "^1.1.1" + commander "^2.9.0" + is-my-json-valid "^2.12.4" + pinkie-promise "^2.0.0" + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + dependencies: + ansi-regex "^2.0.0" + +has-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" + +has-flag@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" + +has-unicode@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + +has@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28" + dependencies: + function-bind "^1.0.2" + +hash.js@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.0.3.tgz#1332ff00156c0a0ffdd8236013d07b77a0451573" + dependencies: + inherits "^2.0.1" + +hawk@~3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" + dependencies: + boom "2.x.x" + cryptiles "2.x.x" + hoek "2.x.x" + sntp "1.x.x" + +he@1.1.x: + version "1.1.1" + resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" + +hoek@2.x.x: + version "2.16.3" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" + +home-or-tmp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.1" + +hosted-git-info@^2.1.4: + version "2.1.5" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.1.5.tgz#0ba81d90da2e25ab34a332e6ec77936e1598118b" + +hpack.js@^2.1.6: + version "2.1.6" + resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" + dependencies: + inherits "^2.0.1" + obuf "^1.0.0" + readable-stream "^2.0.1" + wbuf "^1.1.0" + +html-comment-regex@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.1.tgz#668b93776eaae55ebde8f3ad464b307a4963625e" + +html-entities@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.0.tgz#41948caf85ce82fed36e4e6a0ed371a6664379e2" + +html-minifier@^3.2.3: + version "3.3.0" + resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.3.0.tgz#a9b5b8eda501362d4c5699db02a8dc72013d1fab" + dependencies: + camel-case "3.0.x" + clean-css "4.0.x" + commander "2.9.x" + he "1.1.x" + ncname "1.0.x" + param-case "2.1.x" + relateurl "0.2.x" + uglify-js "2.7.x" + +html-webpack-plugin@^2.29.0: + version "2.29.0" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-2.29.0.tgz#e987f421853d3b6938c8c4c8171842e5fd17af23" + dependencies: + bluebird "^3.4.7" + html-minifier "^3.2.3" + loader-utils "^0.2.16" + lodash "^4.17.3" + pretty-error "^2.0.2" + toposort "^1.0.0" + +htmlparser2@~3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.3.0.tgz#cc70d05a59f6542e43f0e685c982e14c924a9efe" + dependencies: + domelementtype "1" + domhandler "2.1" + domutils "1.1" + readable-stream "1.0" + +http-deceiver@^1.2.4: + version "1.2.7" + resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" + +http-errors@~1.5.0, http-errors@~1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.5.1.tgz#788c0d2c1de2c81b9e6e8c01843b6b97eb920750" + dependencies: + inherits "2.0.3" + setprototypeof "1.0.2" + statuses ">= 1.3.1 < 2" + +http-proxy-middleware@~0.17.4: + version "0.17.4" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz#642e8848851d66f09d4f124912846dbaeb41b833" + dependencies: + http-proxy "^1.16.2" + is-glob "^3.1.0" + lodash "^4.17.2" + micromatch "^2.3.11" + +http-proxy@^1.16.2: + version "1.16.2" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.16.2.tgz#06dff292952bf64dbe8471fa9df73066d4f37742" + dependencies: + eventemitter3 "1.x.x" + requires-port "1.x.x" + +http-signature@~1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" + dependencies: + assert-plus "^0.2.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +https-browserify@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-0.0.1.tgz#3f91365cabe60b77ed0ebba24b454e3e09d95a82" + +iconv-lite@~0.4.13: + version "0.4.15" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.15.tgz#fe265a218ac6a57cfe854927e9d04c19825eddeb" + +icss-replace-symbols@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.0.2.tgz#cb0b6054eb3af6edc9ab1d62d01933e2d4c8bfa5" + +icss-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-2.1.0.tgz#83f0a0ec378bf3246178b6c2ad9136f135b1c962" + dependencies: + postcss "^6.0.1" + +ieee754@^1.1.4: + version "1.1.8" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" + +ignore@^3.2.0: + version "3.3.3" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.3.tgz#432352e57accd87ab3110e82d3fea0e47812156d" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + +in-publish@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/in-publish/-/in-publish-2.0.0.tgz#e20ff5e3a2afc2690320b6dc552682a9c7fadf51" + +indent-string@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" + dependencies: + repeating "^2.0.0" + +indexes-of@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" + +indexof@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + +inherits@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + +ini@~1.3.0: + version "1.3.4" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" + +inquirer@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-0.12.0.tgz#1ef2bfd63504df0bc75785fff8c2c41df12f077e" + dependencies: + ansi-escapes "^1.1.0" + ansi-regex "^2.0.0" + chalk "^1.0.0" + cli-cursor "^1.0.1" + cli-width "^2.0.0" + figures "^1.3.5" + lodash "^4.3.0" + readline2 "^1.0.1" + run-async "^0.1.0" + rx-lite "^3.1.2" + string-width "^1.0.1" + strip-ansi "^3.0.0" + through "^2.3.6" + +internal-ip@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-1.2.0.tgz#ae9fbf93b984878785d50a8de1b356956058cf5c" + dependencies: + meow "^3.3.0" + +interpret@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.1.tgz#d579fb7f693b858004947af39fa0db49f795602c" + +invariant@^2.2.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" + dependencies: + loose-envify "^1.0.0" + +invert-kv@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" + +ip@^1.1.0: + version "1.1.5" + resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" + +ipaddr.js@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.2.0.tgz#8aba49c9192799585bdd643e0ccb50e8ae777ba4" + +is-absolute-url@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + dependencies: + binary-extensions "^1.0.0" + +is-buffer@^1.0.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.4.tgz#cfc86ccd5dc5a52fa80489111c6920c457e2d98b" + +is-buffer@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc" + +is-builtin-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" + dependencies: + builtin-modules "^1.0.0" + +is-callable@^1.1.1, is-callable@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2" + +is-date-object@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" + +is-dotfile@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.2.tgz#2c132383f39199f8edc268ca01b9b007d205cc4d" + +is-equal-shallow@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" + dependencies: + is-primitive "^2.0.0" + +is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + +is-extglob@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" + +is-extglob@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + +is-finite@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + +is-glob@^2.0.0, is-glob@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" + dependencies: + is-extglob "^1.0.0" + +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + dependencies: + is-extglob "^2.1.0" + +is-my-json-valid@^2.10.0: + version "2.16.0" + resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz#f079dd9bfdae65ee2038aae8acbc86ab109e3693" + dependencies: + generate-function "^2.0.0" + generate-object-property "^1.1.0" + jsonpointer "^4.0.0" + xtend "^4.0.0" + +is-my-json-valid@^2.12.4: + version "2.15.0" + resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz#936edda3ca3c211fd98f3b2d3e08da43f7b2915b" + dependencies: + generate-function "^2.0.0" + generate-object-property "^1.1.0" + jsonpointer "^4.0.0" + xtend "^4.0.0" + +is-number@^2.0.2, is-number@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" + dependencies: + kind-of "^3.0.2" + +is-path-cwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" + +is-path-in-cwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc" + dependencies: + is-path-inside "^1.0.0" + +is-path-inside@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.0.tgz#fc06e5a1683fbda13de667aff717bbc10a48f37f" + dependencies: + path-is-inside "^1.0.1" + +is-plain-obj@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + +is-plain-object@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.1.tgz#4d7ca539bc9db9b737b8acb612f2318ef92f294f" + dependencies: + isobject "^1.0.0" + +is-posix-bracket@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" + +is-primitive@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" + +is-property@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" + +is-regex@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.3.tgz#0d55182bddf9f2fde278220aec3a75642c908637" + +is-resolvable@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.0.0.tgz#8df57c61ea2e3c501408d100fb013cf8d6e0cc62" + dependencies: + tryit "^1.0.1" + +is-stream@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + +is-svg@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-2.1.0.tgz#cf61090da0d9efbcab8722deba6f032208dbb0e9" + dependencies: + html-comment-regex "^1.1.0" + +is-symbol@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572" + +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + +is-utf8@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + +isexe@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-1.1.2.tgz#36f3e22e60750920f5e7241a476a8c6a42275ad0" + +isobject@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-1.0.2.tgz#f0f9b8ce92dd540fa0740882e3835a2e022ec78a" + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + dependencies: + isarray "1.0.0" + +isomorphic-fetch@^2.1.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" + dependencies: + node-fetch "^1.0.1" + whatwg-fetch ">=0.10.0" + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + +jodid25519@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/jodid25519/-/jodid25519-1.0.2.tgz#06d4912255093419477d425633606e0e90782967" + dependencies: + jsbn "~0.1.0" + +js-base64@^2.1.9: + version "2.1.9" + resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.1.9.tgz#f0e80ae039a4bd654b5f281fc93f04a914a7fcce" + +js-tokens@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.0.tgz#a2f2a969caae142fb3cd56228358c89366957bd1" + +"js-tokens@^3.0.0 || ^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + +js-yaml@^3.4.3, js-yaml@~3.7.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80" + dependencies: + argparse "^1.0.7" + esprima "^2.6.0" + +js-yaml@^3.5.1: + version "3.9.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.9.0.tgz#4ffbbf25c2ac963b8299dc74da7e3740de1c18ce" + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +jsbn@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.0.tgz#650987da0dd74f4ebf5a11377a2aa2d273e97dfd" + +jsesc@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + +json-loader@^0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.4.tgz#8baa1365a632f58a3c46d20175fc6002c96e37de" + +json-schema-traverse@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + +json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" + dependencies: + jsonify "~0.0.0" + +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + +json3@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" + +json5@^0.5.0, json5@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" + +jsonify@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" + +jsonpointer@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" + +jsprim@^1.2.2: + version "1.3.1" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.3.1.tgz#2a7256f70412a29ee3670aaca625994c4dcff252" + dependencies: + extsprintf "1.0.2" + json-schema "0.2.3" + verror "1.3.6" + +jsx-ast-utils@^1.4.0, jsx-ast-utils@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-1.4.1.tgz#3867213e8dd79bf1e8f2300c0cfc1efb182c0df1" + +kind-of@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-2.0.1.tgz#018ec7a4ce7e3a86cb9141be519d24c8faa981b5" + dependencies: + is-buffer "^1.0.2" + +kind-of@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.1.0.tgz#475d698a5e49ff5e53d14e3e732429dc8bf4cf47" + dependencies: + is-buffer "^1.0.2" + +kind-of@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + dependencies: + is-buffer "^1.1.5" + +lazy-cache@^0.2.3: + version "0.2.7" + resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-0.2.7.tgz#7feddf2dcb6edb77d11ef1d117ab5ffdf0ab1b65" + +lazy-cache@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" + +lcid@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" + dependencies: + invert-kv "^1.0.0" + +levn@^0.3.0, levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +load-json-file@^1.0.0, load-json-file@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + pinkie-promise "^2.0.0" + strip-bom "^2.0.0" + +load-json-file@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + strip-bom "^3.0.0" + +loader-runner@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.0.tgz#f482aea82d543e07921700d5a46ef26fdac6b8a2" + +loader-utils@^0.2.16: + version "0.2.16" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.16.tgz#f08632066ed8282835dff88dfb52704765adee6d" + dependencies: + big.js "^3.1.3" + emojis-list "^2.0.0" + json5 "^0.5.0" + object-assign "^4.0.1" + +loader-utils@^1.0.1, loader-utils@^1.0.2, loader-utils@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd" + dependencies: + big.js "^3.1.3" + emojis-list "^2.0.0" + json5 "^0.5.0" + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + +lodash.assign@^4.0.3, lodash.assign@^4.0.6, lodash.assign@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" + +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + +lodash.clonedeep@^4.3.2: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" + +lodash.cond@^4.3.0: + version "4.5.2" + resolved "https://registry.yarnpkg.com/lodash.cond/-/lodash.cond-4.5.2.tgz#f471a1da486be60f6ab955d17115523dd1d255d5" + +lodash.indexof@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/lodash.indexof/-/lodash.indexof-4.0.5.tgz#53714adc2cddd6ed87638f893aa9b6c24e31ef3c" + +lodash.memoize@^4.1.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + +lodash.mergewith@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.0.tgz#150cf0a16791f5903b8891eab154609274bdea55" + +lodash.tail@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.tail/-/lodash.tail-4.1.1.tgz#d2333a36d9e7717c8ad2f7cacafec7c32b444664" + +lodash.uniq@^4.3.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + +lodash@^4.0.0, lodash@^4.14.0, lodash@^4.17.2, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.3.0, lodash@^4.6.1: + version "4.17.4" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" + +lodash@~4.16.4: + version "4.16.6" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.16.6.tgz#d22c9ac660288f3843e16ba7d2b5d06cca27d777" + +longest@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" + +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" + dependencies: + js-tokens "^3.0.0" + +loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +loud-rejection@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" + dependencies: + currently-unhandled "^0.4.1" + signal-exit "^3.0.0" + +lower-case@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.3.tgz#c92393d976793eee5ba4edb583cf8eae35bd9bfb" + +lru-cache@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.0.2.tgz#1d17679c069cda5d040991a09dbc2c0db377e55e" + dependencies: + pseudomap "^1.0.1" + yallist "^2.0.0" + +macaddress@^0.2.8: + version "0.2.8" + resolved "https://registry.yarnpkg.com/macaddress/-/macaddress-0.2.8.tgz#5904dc537c39ec6dbefeae902327135fa8511f12" + +make-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.0.0.tgz#97a011751e91dd87cfadef58832ebb04936de978" + dependencies: + pify "^2.3.0" + +map-obj@^1.0.0, map-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + +math-expression-evaluator@^1.2.14: + version "1.2.15" + resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.2.15.tgz#38dc5f0194c5bf5ff1c690ad4c4b64df71ac0187" + dependencies: + lodash.indexof "^4.0.5" + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + +memory-fs@^0.4.0, memory-fs@~0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +meow@^3.3.0, meow@^3.7.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" + dependencies: + camelcase-keys "^2.0.0" + decamelize "^1.1.2" + loud-rejection "^1.0.0" + map-obj "^1.0.1" + minimist "^1.1.3" + normalize-package-data "^2.3.4" + object-assign "^4.0.1" + read-pkg-up "^1.0.1" + redent "^1.0.0" + trim-newlines "^1.0.0" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + +micromatch@^2.1.5, micromatch@^2.3.11: + version "2.3.11" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" + dependencies: + arr-diff "^2.0.0" + array-unique "^0.2.1" + braces "^1.8.2" + expand-brackets "^0.1.4" + extglob "^0.3.1" + filename-regex "^2.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.1" + kind-of "^3.0.2" + normalize-path "^2.0.1" + object.omit "^2.0.0" + parse-glob "^3.0.4" + regex-cache "^0.4.2" + +miller-rabin@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.0.tgz#4a62fb1d42933c05583982f4c716f6fb9e6c6d3d" + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + +"mime-db@>= 1.24.0 < 2", mime-db@~1.26.0: + version "1.26.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.26.0.tgz#eaffcd0e4fc6935cf8134da246e2e6c35305adff" + +mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.13, mime-types@~2.1.7: + version "2.1.14" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.14.tgz#f7ef7d97583fcaf3b7d282b6f8b5679dab1e94ee" + dependencies: + mime-db "~1.26.0" + +mime@1.3.4, mime@^1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53" + +min-document@^2.19.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" + dependencies: + dom-walk "^0.1.0" + +minimalistic-assert@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz#702be2dda6b37f4836bcb3f5db56641b64a1d3d3" + +minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@~3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774" + dependencies: + brace-expansion "^1.0.0" + +minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + dependencies: + brace-expansion "^1.1.7" + +minimist@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + +minimist@^1.1.3, minimist@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + +mixin-object@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/mixin-object/-/mixin-object-2.0.1.tgz#4fb949441dab182540f1fe035ba60e1947a5e57e" + dependencies: + for-in "^0.1.3" + is-extendable "^0.1.1" + +mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + dependencies: + minimist "0.0.8" + +ms@0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098" + +ms@0.7.2: + version "0.7.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + +multicast-dns-service-types@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" + +multicast-dns@^6.0.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.1.1.tgz#6e7de86a570872ab17058adea7160bbeca814dde" + dependencies: + dns-packet "^1.0.1" + thunky "^0.1.0" + +mute-stream@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0" + +nan@^2.3.0, nan@^2.3.2: + version "2.5.1" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.5.1.tgz#d5b01691253326a97a2bbee9e61c55d8d60351e2" + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + +ncname@1.0.x: + version "1.0.0" + resolved "https://registry.yarnpkg.com/ncname/-/ncname-1.0.0.tgz#5b57ad18b1ca092864ef62b0b1ed8194f383b71c" + dependencies: + xml-char-classes "^1.0.0" + +negotiator@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" + +no-case@^2.2.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.1.tgz#7aeba1c73a52184265554b7dc03baf720df80081" + dependencies: + lower-case "^1.1.1" + +node-fetch@^1.0.1: + version "1.6.3" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.6.3.tgz#dc234edd6489982d58e8f0db4f695029abcd8c04" + dependencies: + encoding "^0.1.11" + is-stream "^1.0.1" + +node-forge@0.6.33: + version "0.6.33" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.6.33.tgz#463811879f573d45155ad6a9f43dc296e8e85ebc" + +node-gyp@^3.3.1: + version "3.5.0" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.5.0.tgz#a8fe5e611d079ec16348a3eb960e78e11c85274a" + dependencies: + fstream "^1.0.0" + glob "^7.0.3" + graceful-fs "^4.1.2" + minimatch "^3.0.2" + mkdirp "^0.5.0" + nopt "2 || 3" + npmlog "0 || 1 || 2 || 3 || 4" + osenv "0" + request "2" + rimraf "2" + semver "2.x || 3.x || 4 || 5" + tar "^2.0.0" + which "1" + +node-libs-browser@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.0.0.tgz#a3a59ec97024985b46e958379646f96c4b616646" + dependencies: + assert "^1.1.1" + browserify-zlib "^0.1.4" + buffer "^4.3.0" + console-browserify "^1.1.0" + constants-browserify "^1.0.0" + crypto-browserify "^3.11.0" + domain-browser "^1.1.1" + events "^1.0.0" + https-browserify "0.0.1" + os-browserify "^0.2.0" + path-browserify "0.0.0" + process "^0.11.0" + punycode "^1.2.4" + querystring-es3 "^0.2.0" + readable-stream "^2.0.5" + stream-browserify "^2.0.1" + stream-http "^2.3.1" + string_decoder "^0.10.25" + timers-browserify "^2.0.2" + tty-browserify "0.0.0" + url "^0.11.0" + util "^0.10.3" + vm-browserify "0.0.4" + +node-pre-gyp@^0.6.29: + version "0.6.32" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.32.tgz#fc452b376e7319b3d255f5f34853ef6fd8fe1fd5" + dependencies: + mkdirp "~0.5.1" + nopt "~3.0.6" + npmlog "^4.0.1" + rc "~1.1.6" + request "^2.79.0" + rimraf "~2.5.4" + semver "~5.3.0" + tar "~2.2.1" + tar-pack "~3.3.0" + +node-sass@^4.5.3: + version "4.5.3" + resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.5.3.tgz#d09c9d1179641239d1b97ffc6231fdcec53e1568" + dependencies: + async-foreach "^0.1.3" + chalk "^1.1.1" + cross-spawn "^3.0.0" + gaze "^1.0.0" + get-stdin "^4.0.1" + glob "^7.0.3" + in-publish "^2.0.0" + lodash.assign "^4.2.0" + lodash.clonedeep "^4.3.2" + lodash.mergewith "^4.6.0" + meow "^3.7.0" + mkdirp "^0.5.1" + nan "^2.3.2" + node-gyp "^3.3.1" + npmlog "^4.0.0" + request "^2.79.0" + sass-graph "^2.1.1" + stdout-stream "^1.4.0" + +"nopt@2 || 3", nopt@~3.0.6: + version "3.0.6" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" + dependencies: + abbrev "1" + +normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: + version "2.3.5" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.3.5.tgz#8d924f142960e1777e7ffe170543631cc7cb02df" + dependencies: + hosted-git-info "^2.1.4" + is-builtin-module "^1.0.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-path@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.0.1.tgz#47886ac1662760d4261b7d979d241709d3ce3f7a" + +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + +normalize-url@^1.4.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.0.tgz#c2bb50035edee62cd81edb2d45da68dc25e3423e" + dependencies: + object-assign "^4.0.1" + prepend-http "^1.0.0" + query-string "^4.1.0" + sort-keys "^1.0.0" + +"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.0.2.tgz#d03950e0e78ce1527ba26d2a7592e9348ac3e75f" + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.1" + set-blocking "~2.0.0" + +nth-check@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.1.tgz#9929acdf628fc2c41098deab82ac580cf149aae4" + dependencies: + boolbase "~1.0.0" + +num2fraction@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + +oauth-sign@~0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" + +object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + +object-keys@^1.0.8: + version "1.0.11" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" + +object.omit@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" + dependencies: + for-own "^0.1.4" + is-extendable "^0.1.1" + +obuf@^1.0.0, obuf@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.1.tgz#104124b6c602c6796881a042541d36db43a5264e" + +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + dependencies: + ee-first "1.1.1" + +on-headers@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.1.tgz#928f5d0f470d49342651ea6794b0857c100693f7" + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + dependencies: + wrappy "1" + +once@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/once/-/once-1.3.3.tgz#b2e261557ce4c314ec8304f3fa82663e4297ca20" + dependencies: + wrappy "1" + +onetime@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" + +opn@4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/opn/-/opn-4.0.2.tgz#7abc22e644dff63b0a96d5ab7f2790c0f01abc95" + dependencies: + object-assign "^4.0.1" + pinkie-promise "^2.0.0" + +optionator@^0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.4" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + wordwrap "~1.0.0" + +original@>=0.0.5: + version "1.0.0" + resolved "https://registry.yarnpkg.com/original/-/original-1.0.0.tgz#9147f93fa1696d04be61e01bd50baeaca656bd3b" + dependencies: + url-parse "1.0.x" + +os-browserify@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.2.1.tgz#63fc4ccee5d2d7763d26bbf8601078e6c2e0044f" + +os-homedir@^1.0.0, os-homedir@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + +os-locale@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" + dependencies: + lcid "^1.0.0" + +os-tmpdir@^1.0.0, os-tmpdir@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + +osenv@0: + version "0.1.4" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644" + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + +p-limit@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.1.0.tgz#b07ff2d9a5d88bec806035895a2bab66a27988bc" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + dependencies: + p-limit "^1.1.0" + +p-map@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.1.1.tgz#05f5e4ae97a068371bc2a5cc86bfbdbc19c4ae7a" + +pako@~0.2.0: + version "0.2.9" + resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" + +param-case@2.1.x: + version "2.1.0" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.0.tgz#2619f90fd6c829ed0b958f1c84ed03a745a6d70a" + dependencies: + no-case "^2.2.0" + +parse-asn1@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.0.0.tgz#35060f6d5015d37628c770f4e091a0b5a278bc23" + dependencies: + asn1.js "^4.0.0" + browserify-aes "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.0" + pbkdf2 "^3.0.3" + +parse-glob@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" + dependencies: + glob-base "^0.3.0" + is-dotfile "^1.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.0" + +parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + dependencies: + error-ex "^1.2.0" + +parseurl@~1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.1.tgz#c8ab8c9223ba34888aa64a297b28853bec18da56" + +path-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" + +path-exists@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + dependencies: + pinkie-promise "^2.0.0" + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + +path-is-inside@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + +path-parse@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + +path-type@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + dependencies: + graceful-fs "^4.1.2" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +path-type@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" + dependencies: + pify "^2.0.0" + +pbkdf2@^3.0.3: + version "3.0.9" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.9.tgz#f2c4b25a600058b3c3773c086c37dbbee1ffe693" + dependencies: + create-hmac "^1.1.2" + +performance-now@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" + +pify@^2.0.0, pify@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + +pkg-conf@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/pkg-conf/-/pkg-conf-1.1.3.tgz#378e56d6fd13e88bfb6f4a25df7a83faabddba5b" + dependencies: + find-up "^1.0.0" + load-json-file "^1.1.0" + object-assign "^4.0.1" + symbol "^0.2.1" + +pkg-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" + dependencies: + find-up "^1.0.0" + +pkg-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" + dependencies: + find-up "^2.1.0" + +pluralize@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45" + +portfinder@^1.0.9: + version "1.0.12" + resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.12.tgz#94a65114bec64433f9ce2116da33158238ce7ab4" + dependencies: + async "^1.5.2" + debug "^2.2.0" + mkdirp "0.5.x" + +postcss-advanced-variables@1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/postcss-advanced-variables/-/postcss-advanced-variables-1.2.2.tgz#90a6213262e66a050a368b4a9c5d4778d72dbd74" + dependencies: + postcss "^5.0.10" + +postcss-atroot@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/postcss-atroot/-/postcss-atroot-0.1.3.tgz#6752c0230c745140549345b2b0e30ebeda01a405" + dependencies: + postcss "^5.0.5" + +postcss-calc@^5.2.0: + version "5.3.1" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-5.3.1.tgz#77bae7ca928ad85716e2fda42f261bf7c1d65b5e" + dependencies: + postcss "^5.0.2" + postcss-message-helpers "^2.0.0" + reduce-css-calc "^1.2.6" + +postcss-color-function@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-color-function/-/postcss-color-function-4.0.0.tgz#7e0106f4f6a1ecb1ad5b3a8553ace5e828aae187" + dependencies: + css-color-function "^1.3.0" + postcss "^6.0.1" + postcss-message-helpers "^2.0.0" + postcss-value-parser "^3.3.0" + +postcss-colormin@^2.1.8: + version "2.2.1" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-2.2.1.tgz#dc5421b6ae6f779ef6bfd47352b94abe59d0316b" + dependencies: + colormin "^1.0.5" + postcss "^5.0.13" + postcss-value-parser "^3.2.3" + +postcss-convert-values@^2.3.4: + version "2.6.0" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-2.6.0.tgz#08c6d06130fe58a91a21ff50829e1aad6a3a1acc" + dependencies: + postcss "^5.0.11" + postcss-value-parser "^3.1.2" + +postcss-custom-media@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-6.0.0.tgz#be532784110ecb295044fb5395a18006eb21a737" + dependencies: + postcss "^6.0.1" + +postcss-custom-properties@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-6.1.0.tgz#9caf1151ac41b1e9e64d3a2ff9ece996ca18977d" + dependencies: + balanced-match "^1.0.0" + postcss "^6.0.3" + +postcss-custom-selectors@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-custom-selectors/-/postcss-custom-selectors-4.0.1.tgz#781382f94c52e727ef5ca4776ea2adf49a611382" + dependencies: + postcss "^6.0.1" + postcss-selector-matches "^3.0.0" + +postcss-discard-comments@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz#befe89fafd5b3dace5ccce51b76b81514be00e3d" + dependencies: + postcss "^5.0.14" + +postcss-discard-duplicates@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-2.0.2.tgz#02be520e91571ffb10738766a981d5770989bb32" + dependencies: + postcss "^5.0.4" + +postcss-discard-empty@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz#d2b4bd9d5ced5ebd8dcade7640c7d7cd7f4f92b5" + dependencies: + postcss "^5.0.14" + +postcss-discard-overridden@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz#8b1eaf554f686fb288cd874c55667b0aa3668d58" + dependencies: + postcss "^5.0.16" + +postcss-discard-unused@^2.2.1: + version "2.2.3" + resolved "https://registry.yarnpkg.com/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz#bce30b2cc591ffc634322b5fb3464b6d934f4433" + dependencies: + postcss "^5.0.14" + uniqs "^2.0.0" + +postcss-extend@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/postcss-extend/-/postcss-extend-1.0.5.tgz#5ea98bf787ba3cacf4df4609743f80a833b1d0e7" + dependencies: + postcss "^5.0.4" + +postcss-filter-plugins@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/postcss-filter-plugins/-/postcss-filter-plugins-2.0.2.tgz#6d85862534d735ac420e4a85806e1f5d4286d84c" + dependencies: + postcss "^5.0.4" + uniqid "^4.0.0" + +postcss-import@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-10.0.0.tgz#4c85c97b099136cc5ea0240dc1dfdbfde4e2ebbe" + dependencies: + object-assign "^4.0.1" + postcss "^6.0.1" + postcss-value-parser "^3.2.3" + read-cache "^1.0.0" + resolve "^1.1.7" + +postcss-js@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-1.0.0.tgz#ccee5aa3b1970dd457008e79438165f66919ba30" + dependencies: + camelcase-css "^1.0.1" + postcss "^6.0.1" + +postcss-load-config@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-1.2.0.tgz#539e9afc9ddc8620121ebf9d8c3673e0ce50d28a" + dependencies: + cosmiconfig "^2.1.0" + object-assign "^4.1.0" + postcss-load-options "^1.2.0" + postcss-load-plugins "^2.3.0" + +postcss-load-options@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/postcss-load-options/-/postcss-load-options-1.2.0.tgz#b098b1559ddac2df04bc0bb375f99a5cfe2b6d8c" + dependencies: + cosmiconfig "^2.1.0" + object-assign "^4.1.0" + +postcss-load-plugins@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/postcss-load-plugins/-/postcss-load-plugins-2.3.0.tgz#745768116599aca2f009fad426b00175049d8d92" + dependencies: + cosmiconfig "^2.1.1" + object-assign "^4.1.0" + +postcss-loader@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-2.0.6.tgz#8c7e0055a3df1889abc6bad52dd45b2f41bbc6fc" + dependencies: + loader-utils "^1.1.0" + postcss "^6.0.2" + postcss-load-config "^1.2.0" + schema-utils "^0.3.0" + +postcss-media-minmax@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-media-minmax/-/postcss-media-minmax-3.0.0.tgz#675256037a43ef40bc4f0760bfd06d4dc69d48d2" + dependencies: + postcss "^6.0.1" + +postcss-merge-idents@^2.1.5: + version "2.1.7" + resolved "https://registry.yarnpkg.com/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz#4c5530313c08e1d5b3bbf3d2bbc747e278eea270" + dependencies: + has "^1.0.1" + postcss "^5.0.10" + postcss-value-parser "^3.1.1" + +postcss-merge-longhand@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz#23d90cd127b0a77994915332739034a1a4f3d658" + dependencies: + postcss "^5.0.4" + +postcss-merge-rules@^2.0.3: + version "2.1.1" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-2.1.1.tgz#5e5640020ce43cddd343c73bba91c9a358d1fe0f" + dependencies: + browserslist "^1.5.2" + caniuse-api "^1.5.2" + postcss "^5.0.4" + postcss-selector-parser "^2.2.2" + vendors "^1.0.0" + +postcss-message-helpers@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz#a4f2f4fab6e4fe002f0aed000478cdf52f9ba60e" + +postcss-minify-font-values@^1.0.2: + version "1.0.5" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz#4b58edb56641eba7c8474ab3526cafd7bbdecb69" + dependencies: + object-assign "^4.0.1" + postcss "^5.0.4" + postcss-value-parser "^3.0.2" + +postcss-minify-gradients@^1.0.1: + version "1.0.5" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz#5dbda11373703f83cfb4a3ea3881d8d75ff5e6e1" + dependencies: + postcss "^5.0.12" + postcss-value-parser "^3.3.0" + +postcss-minify-params@^1.0.4: + version "1.2.2" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz#ad2ce071373b943b3d930a3fa59a358c28d6f1f3" + dependencies: + alphanum-sort "^1.0.1" + postcss "^5.0.2" + postcss-value-parser "^3.0.2" + uniqs "^2.0.0" + +postcss-minify-selectors@^2.0.4: + version "2.1.1" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz#b2c6a98c0072cf91b932d1a496508114311735bf" + dependencies: + alphanum-sort "^1.0.2" + has "^1.0.1" + postcss "^5.0.14" + postcss-selector-parser "^2.0.0" + +postcss-mixins@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss-mixins/-/postcss-mixins-6.0.1.tgz#f5c9726259a6103733b43daa6a8b67dd0ed7aa47" + dependencies: + globby "^6.1.0" + postcss "^6.0.3" + postcss-js "^1.0.0" + postcss-simple-vars "^4.0.0" + sugarss "^1.0.0" + +postcss-modules-extract-imports@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.0.1.tgz#8fb3fef9a6dd0420d3f6d4353cf1ff73f2b2a341" + dependencies: + postcss "^5.0.4" + +postcss-modules-local-by-default@^1.0.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.1.1.tgz#29a10673fa37d19251265ca2ba3150d9040eb4ce" + dependencies: + css-selector-tokenizer "^0.6.0" + postcss "^5.0.4" + +postcss-modules-scope@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-1.0.2.tgz#ff977395e5e06202d7362290b88b1e8cd049de29" + dependencies: + css-selector-tokenizer "^0.6.0" + postcss "^5.0.4" + +postcss-modules-values@^1.1.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-1.2.2.tgz#f0e7d476fe1ed88c5e4c7f97533a3e772ad94ca1" + dependencies: + icss-replace-symbols "^1.0.2" + postcss "^5.0.14" + +postcss-nested@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-2.0.3.tgz#7ee9dc547e02bc7e4f71dccff12ad4ef4c0f1888" + dependencies: + postcss "^6.0.6" + postcss-selector-parser "^2.2.3" + +postcss-nesting@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-4.0.1.tgz#8fc2ce40cbfcfab7ee24e7b68fb6ebe84b641469" + dependencies: + postcss "^6.0.1" + +postcss-normalize-charset@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz#ef9ee71212d7fe759c78ed162f61ed62b5cb93f1" + dependencies: + postcss "^5.0.5" + +postcss-normalize-url@^3.0.7: + version "3.0.8" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz#108f74b3f2fcdaf891a2ffa3ea4592279fc78222" + dependencies: + is-absolute-url "^2.0.0" + normalize-url "^1.4.0" + postcss "^5.0.14" + postcss-value-parser "^3.2.3" + +postcss-ordered-values@^2.1.0: + version "2.2.3" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz#eec6c2a67b6c412a8db2042e77fe8da43f95c11d" + dependencies: + postcss "^5.0.4" + postcss-value-parser "^3.0.1" + +postcss-partial-import@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/postcss-partial-import/-/postcss-partial-import-4.1.0.tgz#f6c3e78e7bbeda4d9dab96d360367b90b353f9a4" + dependencies: + glob "^7.1.1" + postcss-import "^10.0.0" + +postcss-property-lookup@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/postcss-property-lookup/-/postcss-property-lookup-1.2.1.tgz#30450a1361b7aae758bbedd5201fbe057bb8270b" + dependencies: + object-assign "^4.0.1" + postcss "^5.0.4" + tcomb "^2.5.1" + +postcss-reduce-idents@^2.2.2: + version "2.4.0" + resolved "https://registry.yarnpkg.com/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz#c2c6d20cc958284f6abfbe63f7609bf409059ad3" + dependencies: + postcss "^5.0.4" + postcss-value-parser "^3.0.2" + +postcss-reduce-initial@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz#68f80695f045d08263a879ad240df8dd64f644ea" + dependencies: + postcss "^5.0.4" + +postcss-reduce-transforms@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz#ff76f4d8212437b31c298a42d2e1444025771ae1" + dependencies: + has "^1.0.1" + postcss "^5.0.8" + postcss-value-parser "^3.0.1" + +postcss-selector-matches@^3.0.0, postcss-selector-matches@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/postcss-selector-matches/-/postcss-selector-matches-3.0.1.tgz#e5634011e13950881861bbdd58c2d0111ffc96ab" + dependencies: + balanced-match "^0.4.2" + postcss "^6.0.1" + +postcss-selector-not@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/postcss-selector-not/-/postcss-selector-not-3.0.1.tgz#2e4db2f0965336c01e7cec7db6c60dff767335d9" + dependencies: + balanced-match "^0.4.2" + postcss "^6.0.1" + +postcss-selector-parser@^2.0.0, postcss-selector-parser@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-2.2.2.tgz#3d70f5adda130da51c7c0c2fc023f56b1374fe08" + dependencies: + flatten "^1.0.2" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-selector-parser@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz#f9437788606c3c9acee16ffe8d8b16297f27bb90" + dependencies: + flatten "^1.0.2" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-simple-vars@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-simple-vars/-/postcss-simple-vars-4.0.0.tgz#d49e082897d9a4824f2268fa91d969d943e2ea76" + dependencies: + postcss "^6.0.1" + +postcss-svgo@^2.1.1: + version "2.1.6" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-2.1.6.tgz#b6df18aa613b666e133f08adb5219c2684ac108d" + dependencies: + is-svg "^2.0.0" + postcss "^5.0.14" + postcss-value-parser "^3.2.3" + svgo "^0.7.0" + +postcss-unique-selectors@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz#981d57d29ddcb33e7b1dfe1fd43b8649f933ca1d" + dependencies: + alphanum-sort "^1.0.1" + postcss "^5.0.4" + uniqs "^2.0.0" + +postcss-value-parser@^3.0.1, postcss-value-parser@^3.0.2, postcss-value-parser@^3.1.1, postcss-value-parser@^3.1.2, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz#87f38f9f18f774a4ab4c8a232f5c5ce8872a9d15" + +postcss-zindex@^2.0.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/postcss-zindex/-/postcss-zindex-2.2.0.tgz#d2109ddc055b91af67fc4cb3b025946639d2af22" + dependencies: + has "^1.0.1" + postcss "^5.0.4" + uniqs "^2.0.0" + +postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.2, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.6, postcss@^5.0.8, postcss@^5.2.16: + version "5.2.16" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.16.tgz#732b3100000f9ff8379a48a53839ed097376ad57" + dependencies: + chalk "^1.1.3" + js-base64 "^2.1.9" + source-map "^0.5.6" + supports-color "^3.2.3" + +postcss@^6.0.0, postcss@^6.0.1, postcss@^6.0.2, postcss@^6.0.3, postcss@^6.0.6: + version "6.0.6" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.6.tgz#bba4d58e884fc78c840d1539e10eddaabb8f73bd" + dependencies: + chalk "^2.0.1" + source-map "^0.5.6" + supports-color "^4.1.0" + +precss@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/precss/-/precss-2.0.0.tgz#7f567e3318e06d44c8fdbf9e58452e8358bf4b71" + dependencies: + postcss "^6.0.3" + postcss-advanced-variables "1.2.2" + postcss-atroot "^0.1.3" + postcss-color-function "^4.0.0" + postcss-custom-media "^6.0.0" + postcss-custom-properties "^6.1.0" + postcss-custom-selectors "^4.0.1" + postcss-extend "^1.0.5" + postcss-media-minmax "^3.0.0" + postcss-mixins "^6.0.1" + postcss-nested "^2.0.2" + postcss-nesting "^4.0.1" + postcss-partial-import "^4.1.0" + postcss-property-lookup "^1.2.1" + postcss-selector-matches "^3.0.1" + postcss-selector-not "^3.0.1" + +prefix-style@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/prefix-style/-/prefix-style-2.0.1.tgz#66bba9a870cfda308a5dc20e85e9120932c95a06" + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + +prepend-http@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + +preserve@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" + +prettier-linter-helpers@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" + dependencies: + fast-diff "^1.1.2" + +prettier@^1.16.4: + version "1.16.4" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.16.4.tgz#73e37e73e018ad2db9c76742e2647e21790c9717" + +pretty-error@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.0.2.tgz#a7db19cbb529ca9f0af3d3a2f77d5caf8e5dec23" + dependencies: + renderkid "~2.0.0" + utila "~0.4" + +private@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/private/-/private-0.1.6.tgz#55c6a976d0f9bafb9924851350fe47b9b5fbb7c1" + +process-nextick-args@~1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" + +process@^0.11.0: + version "0.11.9" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.9.tgz#7bd5ad21aa6253e7da8682264f1e11d11c0318c1" + +process@~0.5.1: + version "0.5.2" + resolved "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz#1638d8a8e34c2f440a91db95ab9aeb677fc185cf" + +progress@^1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" + +promise@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/promise/-/promise-7.1.1.tgz#489654c692616b8aa55b0724fa809bb7db49c5bf" + dependencies: + asap "~2.0.3" + +prop-types@^15.5.10: + version "15.5.10" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.10.tgz#2797dfc3126182e3a95e3dfbb2e893ddd7456154" + dependencies: + fbjs "^0.8.9" + loose-envify "^1.3.1" + +prop-types@^15.5.7: + version "15.5.8" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.8.tgz#6b7b2e141083be38c8595aa51fc55775c7199394" + dependencies: + fbjs "^0.8.9" + +prop-types@^15.6.2, prop-types@^15.7.2: + version "15.7.2" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.8.1" + +proxy-addr@~1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-1.1.3.tgz#dc97502f5722e888467b3fa2297a7b1ff47df074" + dependencies: + forwarded "~0.1.0" + ipaddr.js "1.2.0" + +prr@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a" + +pseudomap@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + +public-encrypt@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.0.tgz#39f699f3a46560dd5ebacbca693caf7c65c18cc6" + dependencies: + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + +punycode@^1.2.4, punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + +q@^1.1.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/q/-/q-1.4.1.tgz#55705bcd93c5f3673530c2c2cbc0c2b3addc286e" + +qs@6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.2.0.tgz#3b7848c03c2dece69a9522b0fae8c4126d745f3b" + +qs@~6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.0.tgz#f403b264f23bc01228c74131b407f18d5ea5d442" + +query-string@^4.1.0: + version "4.3.1" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.1.tgz#54baada6713eafc92be75c47a731f2ebd09cd11d" + dependencies: + object-assign "^4.1.0" + strict-uri-encode "^1.0.0" + +querystring-es3@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + +querystring@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + +querystringify@0.0.x: + version "0.0.4" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-0.0.4.tgz#0cf7f84f9463ff0ae51c4c4b142d95be37724d9c" + +raf@^3.1.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/raf/-/raf-3.3.0.tgz#93845eeffc773f8129039f677f80a36044eee2c3" + dependencies: + performance-now "~0.2.0" + +randomatic@^1.1.3: + version "1.1.6" + resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.6.tgz#110dcabff397e9dcff7c0789ccc0a49adf1ec5bb" + dependencies: + is-number "^2.0.2" + kind-of "^3.0.2" + +randombytes@^2.0.0, randombytes@^2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.3.tgz#674c99760901c3c4112771a31e521dc349cc09ec" + +range-parser@^1.0.3, range-parser@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" + +rc@~1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.1.6.tgz#43651b76b6ae53b5c802f1151fa3fc3b059969c9" + dependencies: + deep-extend "~0.4.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~1.0.4" + +react-custom-scrollbars@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/react-custom-scrollbars/-/react-custom-scrollbars-4.1.2.tgz#0e60c4a46c4a61f9e4994a7663e2b9cbbc5187a3" + dependencies: + dom-css "^2.0.0" + prop-types "^15.5.10" + raf "^3.1.0" + +react-deep-force-update@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/react-deep-force-update/-/react-deep-force-update-1.0.1.tgz#f911b5be1d2a6fe387507dd6e9a767aa2924b4c7" + +react-dom@^16.8.3: + version "16.8.3" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.8.3.tgz#ae236029e66210783ac81999d3015dfc475b9c32" + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + prop-types "^15.6.2" + scheduler "^0.13.3" + +react-is@^16.8.1: + version "16.8.3" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.8.3.tgz#4ad8b029c2a718fc0cfc746c8d4e1b7221e5387d" + +react-lifecycles-compat@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" + +react-modal@^3.8.1: + version "3.8.1" + resolved "https://registry.yarnpkg.com/react-modal/-/react-modal-3.8.1.tgz#7300f94a6f92a2e17994de0be6ccb61734464c9e" + dependencies: + exenv "^1.2.0" + prop-types "^15.5.10" + react-lifecycles-compat "^3.0.0" + warning "^3.0.0" + +react-proxy@^1.1.7: + version "1.1.8" + resolved "https://registry.yarnpkg.com/react-proxy/-/react-proxy-1.1.8.tgz#9dbfd9d927528c3aa9f444e4558c37830ab8c26a" + dependencies: + lodash "^4.6.1" + react-deep-force-update "^1.0.0" + +react-sound@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/react-sound/-/react-sound-1.2.0.tgz#1bb7e1ec8494ecc57b03dbdecd1496b10f6541f2" + dependencies: + prop-types "^15.5.7" + soundmanager2 "^2.97.20170602" + +react-transform-catch-errors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/react-transform-catch-errors/-/react-transform-catch-errors-1.0.2.tgz#1b4d4a76e97271896fc16fe3086c793ec88a9eeb" + +react-transform-hmr@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/react-transform-hmr/-/react-transform-hmr-1.0.4.tgz#e1a40bd0aaefc72e8dfd7a7cda09af85066397bb" + dependencies: + global "^4.3.0" + react-proxy "^1.1.7" + +react@^16.8.3: + version "16.8.3" + resolved "https://registry.yarnpkg.com/react/-/react-16.8.3.tgz#c6f988a2ce895375de216edcfaedd6b9a76451d9" + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + prop-types "^15.6.2" + scheduler "^0.13.3" + +read-cache@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" + dependencies: + pify "^2.3.0" + +read-pkg-up@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" + dependencies: + find-up "^1.0.0" + read-pkg "^1.0.0" + +read-pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" + dependencies: + find-up "^2.0.0" + read-pkg "^2.0.0" + +read-pkg@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + dependencies: + load-json-file "^1.0.0" + normalize-package-data "^2.3.2" + path-type "^1.0.0" + +read-pkg@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" + dependencies: + load-json-file "^2.0.0" + normalize-package-data "^2.3.2" + path-type "^2.0.0" + +readable-stream@1.0: + version "1.0.34" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +"readable-stream@^2.0.0 || ^1.1.13", readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.1.0, readable-stream@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.2.tgz#a9e6fec3c7dda85f8bb1b3ba7028604556fc825e" + dependencies: + buffer-shims "^1.0.0" + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "~1.0.0" + process-nextick-args "~1.0.6" + string_decoder "~0.10.x" + util-deprecate "~1.0.1" + +readable-stream@~2.1.4: + version "2.1.5" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.1.5.tgz#66fa8b720e1438b364681f2ad1a63c618448c9d0" + dependencies: + buffer-shims "^1.0.0" + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "~1.0.0" + process-nextick-args "~1.0.6" + string_decoder "~0.10.x" + util-deprecate "~1.0.1" + +readdirp@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" + dependencies: + graceful-fs "^4.1.2" + minimatch "^3.0.2" + readable-stream "^2.0.2" + set-immediate-shim "^1.0.1" + +readline2@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/readline2/-/readline2-1.0.1.tgz#41059608ffc154757b715d9989d199ffbf372e35" + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + mute-stream "0.0.5" + +rechoir@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + dependencies: + resolve "^1.1.6" + +redbox-react@^1.2.2: + version "1.3.3" + resolved "https://registry.yarnpkg.com/redbox-react/-/redbox-react-1.3.3.tgz#63ec9c2cb9c620c46e2b9f8543b4898f1b787e41" + dependencies: + error-stack-parser "^1.3.6" + object-assign "^4.0.1" + +redent@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" + dependencies: + indent-string "^2.1.0" + strip-indent "^1.0.1" + +reduce-css-calc@^1.2.6: + version "1.3.0" + resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz#747c914e049614a4c9cfbba629871ad1d2927716" + dependencies: + balanced-match "^0.4.2" + math-expression-evaluator "^1.2.14" + reduce-function-call "^1.0.1" + +reduce-function-call@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/reduce-function-call/-/reduce-function-call-1.0.2.tgz#5a200bf92e0e37751752fe45b0ab330fd4b6be99" + dependencies: + balanced-match "^0.4.2" + +regenerate@^1.2.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.2.tgz#d1941c67bad437e1be76433add5b385f95b19260" + +regenerator-runtime@^0.10.0: + version "0.10.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.1.tgz#257f41961ce44558b18f7814af48c17559f9faeb" + +regenerator-transform@0.9.11: + version "0.9.11" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.9.11.tgz#3a7d067520cb7b7176769eb5ff868691befe1283" + dependencies: + babel-runtime "^6.18.0" + babel-types "^6.19.0" + private "^0.1.6" + +regex-cache@^0.4.2: + version "0.4.3" + resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145" + dependencies: + is-equal-shallow "^0.1.3" + is-primitive "^2.0.0" + +regexpu-core@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-1.0.0.tgz#86a763f58ee4d7c2f6b102e4764050de7ed90c6b" + dependencies: + regenerate "^1.2.1" + regjsgen "^0.2.0" + regjsparser "^0.1.4" + +regexpu-core@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" + dependencies: + regenerate "^1.2.1" + regjsgen "^0.2.0" + regjsparser "^0.1.4" + +regjsgen@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" + +regjsparser@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" + dependencies: + jsesc "~0.5.0" + +relateurl@0.2.x: + version "0.2.7" + resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" + +renderkid@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.0.tgz#1859753e7a5adbf35443aba0d4e4579e78abee85" + dependencies: + css-select "^1.1.0" + dom-converter "~0.1" + htmlparser2 "~3.3.0" + strip-ansi "^3.0.0" + utila "~0.3" + +repeat-element@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" + +repeat-string@^1.5.2: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + +repeating@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + dependencies: + is-finite "^1.0.0" + +request@2, request@^2.79.0: + version "2.79.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de" + dependencies: + aws-sign2 "~0.6.0" + aws4 "^1.2.1" + caseless "~0.11.0" + combined-stream "~1.0.5" + extend "~3.0.0" + forever-agent "~0.6.1" + form-data "~2.1.1" + har-validator "~2.0.6" + hawk "~3.1.3" + http-signature "~1.1.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.7" + oauth-sign "~0.8.1" + qs "~6.3.0" + stringstream "~0.0.4" + tough-cookie "~2.3.0" + tunnel-agent "~0.4.1" + uuid "^3.0.0" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + +require-from-string@^1.1.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-1.2.1.tgz#529c9ccef27380adfec9a2f965b649bbee636418" + +require-main-filename@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" + +require-uncached@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" + dependencies: + caller-path "^0.1.0" + resolve-from "^1.0.0" + +requires-port@1.0.x, requires-port@1.x.x: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + +resolve-from@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" + +resolve@^1.1.6: + version "1.2.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.2.0.tgz#9589c3f2f6149d1417a40becc1663db6ec6bc26c" + +resolve@^1.1.7, resolve@^1.2.0: + version "1.3.3" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.3.3.tgz#655907c3469a8680dc2de3a275a8fdd69691f0e5" + dependencies: + path-parse "^1.0.5" + +restore-cursor@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" + dependencies: + exit-hook "^1.0.0" + onetime "^1.0.0" + +rgb@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/rgb/-/rgb-0.1.0.tgz#be27b291e8feffeac1bd99729721bfa40fc037b5" + +right-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" + dependencies: + align-text "^0.1.1" + +rimraf@2, rimraf@^2.2.8, rimraf@~2.5.1, rimraf@~2.5.4: + version "2.5.4" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.5.4.tgz#96800093cbf1a0c86bd95b4625467535c29dfa04" + dependencies: + glob "^7.0.5" + +ripemd160@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-1.0.1.tgz#93a4bbd4942bc574b69a8fa57c71de10ecca7d6e" + +run-async@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389" + dependencies: + once "^1.3.0" + +rx-lite@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102" + +safe-buffer@^5.0.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" + +sass-graph@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.1.2.tgz#965104be23e8103cb7e5f710df65935b317da57b" + dependencies: + glob "^7.0.0" + lodash "^4.0.0" + yargs "^4.7.1" + +sass-loader@^6.0.6: + version "6.0.6" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-6.0.6.tgz#e9d5e6c1f155faa32a4b26d7a9b7107c225e40f9" + dependencies: + async "^2.1.5" + clone-deep "^0.3.0" + loader-utils "^1.0.1" + lodash.tail "^4.1.1" + pify "^3.0.0" + +sax@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a" + +scheduler@^0.13.3: + version "0.13.3" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.13.3.tgz#bed3c5850f62ea9c716a4d781f9daeb9b2a58896" + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + +schema-utils@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.3.0.tgz#f5877222ce3e931edae039f17eb3716e7137f8cf" + dependencies: + ajv "^5.0.0" + +select-hose@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" + +selfsigned@^1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.9.1.tgz#cdda4492d70d486570f87c65546023558e1dfa5a" + dependencies: + node-forge "0.6.33" + +"semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", semver@~5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" + +send@0.14.2: + version "0.14.2" + resolved "https://registry.yarnpkg.com/send/-/send-0.14.2.tgz#39b0438b3f510be5dc6f667a11f71689368cdeef" + dependencies: + debug "~2.2.0" + depd "~1.1.0" + destroy "~1.0.4" + encodeurl "~1.0.1" + escape-html "~1.0.3" + etag "~1.7.0" + fresh "0.3.0" + http-errors "~1.5.1" + mime "1.3.4" + ms "0.7.2" + on-finished "~2.3.0" + range-parser "~1.2.0" + statuses "~1.3.1" + +serve-index@^1.7.2: + version "1.8.0" + resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.8.0.tgz#7c5d96c13fb131101f93c1c5774f8516a1e78d3b" + dependencies: + accepts "~1.3.3" + batch "0.5.3" + debug "~2.2.0" + escape-html "~1.0.3" + http-errors "~1.5.0" + mime-types "~2.1.11" + parseurl "~1.3.1" + +serve-static@~1.11.2: + version "1.11.2" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.11.2.tgz#2cf9889bd4435a320cc36895c9aa57bd662e6ac7" + dependencies: + encodeurl "~1.0.1" + escape-html "~1.0.3" + parseurl "~1.3.1" + send "0.14.2" + +set-blocking@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-1.0.0.tgz#cd5e5d938048df1ac92dfe92e1f16add656f5ec5" + +set-blocking@^2.0.0, set-blocking@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + +set-immediate-shim@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" + +setimmediate@^1.0.4, setimmediate@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + +setprototypeof@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.2.tgz#81a552141ec104b88e89ce383103ad5c66564d08" + +sha.js@^2.3.6: + version "2.4.8" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.8.tgz#37068c2c476b6baf402d14a49c67f597921f634f" + dependencies: + inherits "^2.0.1" + +shallow-clone@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-0.1.2.tgz#5909e874ba77106d73ac414cfec1ffca87d97060" + dependencies: + is-extendable "^0.1.1" + kind-of "^2.0.1" + lazy-cache "^0.2.3" + mixin-object "^2.0.1" + +shelljs@^0.7.0: + version "0.7.6" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.6.tgz#379cccfb56b91c8601e4793356eb5382924de9ad" + dependencies: + glob "^7.0.0" + interpret "^1.0.0" + rechoir "^0.6.2" + +shelljs@^0.7.5: + version "0.7.8" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.8.tgz#decbcf874b0d1e5fb72e14b164a9683048e9acb3" + dependencies: + glob "^7.0.0" + interpret "^1.0.0" + rechoir "^0.6.2" + +signal-exit@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + +slash@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + +slice-ansi@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" + +sntp@1.x.x: + version "1.0.9" + resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" + dependencies: + hoek "2.x.x" + +sockjs-client@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.1.2.tgz#f0212a8550e4c9468c8cceaeefd2e3493c033ad5" + dependencies: + debug "^2.2.0" + eventsource "0.1.6" + faye-websocket "~0.11.0" + inherits "^2.0.1" + json3 "^3.3.2" + url-parse "^1.1.1" + +sockjs@0.3.18: + version "0.3.18" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.18.tgz#d9b289316ca7df77595ef299e075f0f937eb4207" + dependencies: + faye-websocket "^0.10.0" + uuid "^2.0.2" + +sort-keys@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" + dependencies: + is-plain-obj "^1.0.0" + +soundmanager2@^2.97.20170602: + version "2.97.20170602" + resolved "https://registry.yarnpkg.com/soundmanager2/-/soundmanager2-2.97.20170602.tgz#fe3bc731bfc4d54c1364e71980263e6816981879" + +source-list-map@^0.1.7: + version "0.1.8" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-0.1.8.tgz#c550b2ab5427f6b3f21f5afead88c4f5587b2106" + +source-list-map@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz#aaa47403f7b245a92fbc97ea08f250d6087ed085" + +source-map-support@^0.4.2: + version "0.4.11" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.11.tgz#647f939978b38535909530885303daf23279f322" + dependencies: + source-map "^0.5.3" + +source-map@0.5.x, source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.1, source-map@~0.5.3: + version "0.5.6" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" + +spdx-correct@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" + dependencies: + spdx-license-ids "^1.0.2" + +spdx-expression-parse@~1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c" + +spdx-license-ids@^1.0.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" + +spdy-transport@^2.0.15: + version "2.0.18" + resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-2.0.18.tgz#43fc9c56be2cccc12bb3e2754aa971154e836ea6" + dependencies: + debug "^2.2.0" + hpack.js "^2.1.6" + obuf "^1.1.0" + readable-stream "^2.0.1" + wbuf "^1.4.0" + +spdy@^3.4.1: + version "3.4.4" + resolved "https://registry.yarnpkg.com/spdy/-/spdy-3.4.4.tgz#e0406407ca90ff01b553eb013505442649f5a819" + dependencies: + debug "^2.2.0" + handle-thing "^1.2.4" + http-deceiver "^1.2.4" + select-hose "^2.0.0" + spdy-transport "^2.0.15" + +sprintf-js@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.1.tgz#36be78320afe5801f6cea3ee78b6e5aab940ea0c" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + +sshpk@^1.7.0: + version "1.10.2" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.10.2.tgz#d5a804ce22695515638e798dbe23273de070a5fa" + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + dashdash "^1.12.0" + getpass "^0.1.1" + optionalDependencies: + bcrypt-pbkdf "^1.0.0" + ecc-jsbn "~0.1.1" + jodid25519 "^1.0.0" + jsbn "~0.1.0" + tweetnacl "~0.14.0" + +stackframe@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-0.3.1.tgz#33aa84f1177a5548c8935533cbfeb3420975f5a4" + +"statuses@>= 1.3.1 < 2", statuses@~1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" + +stdout-stream@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/stdout-stream/-/stdout-stream-1.4.0.tgz#a2c7c8587e54d9427ea9edb3ac3f2cd522df378b" + dependencies: + readable-stream "^2.0.1" + +stream-browserify@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db" + dependencies: + inherits "~2.0.1" + readable-stream "^2.0.2" + +stream-http@^2.3.1: + version "2.6.3" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.6.3.tgz#4c3ddbf9635968ea2cfd4e48d43de5def2625ac3" + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.1" + readable-stream "^2.1.0" + to-arraybuffer "^1.0.0" + xtend "^4.0.0" + +strict-uri-encode@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" + +string-width@^1.0.1, string-width@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +string-width@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.0.0.tgz#635c5436cc72a6e0c387ceca278d4e2eec52687e" + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^3.0.0" + +string_decoder@^0.10.25, string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + +stringstream@~0.0.4: + version "0.0.5" + resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + dependencies: + ansi-regex "^2.0.0" + +strip-bom@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + dependencies: + is-utf8 "^0.2.0" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + +strip-indent@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" + dependencies: + get-stdin "^4.0.1" + +strip-json-comments@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-1.0.4.tgz#1e15fbcac97d3ee99bf2d73b4c656b082bbafb91" + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + +style-loader@^0.18.2: + version "0.18.2" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.18.2.tgz#cc31459afbcd6d80b7220ee54b291a9fd66ff5eb" + dependencies: + loader-utils "^1.0.2" + schema-utils "^0.3.0" + +sugarss@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/sugarss/-/sugarss-1.0.0.tgz#65e51b3958432fb70d5451a68bb33e32d0cf1ef7" + dependencies: + postcss "^6.0.0" + +supports-color@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-0.2.0.tgz#d92de2694eb3f67323973d7ae3d8b55b4c22190a" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + +supports-color@^3.1.0, supports-color@^3.1.1, supports-color@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" + dependencies: + has-flag "^1.0.0" + +supports-color@^4.0.0, supports-color@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.2.0.tgz#ad986dc7eb2315d009b4d77c8169c2231a684037" + dependencies: + has-flag "^2.0.0" + +svgo@^0.7.0: + version "0.7.2" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-0.7.2.tgz#9f5772413952135c6fefbf40afe6a4faa88b4bb5" + dependencies: + coa "~1.0.1" + colors "~1.1.2" + csso "~2.3.1" + js-yaml "~3.7.0" + mkdirp "~0.5.1" + sax "~1.2.1" + whet.extend "~0.9.9" + +symbol@^0.2.1: + version "0.2.3" + resolved "https://registry.yarnpkg.com/symbol/-/symbol-0.2.3.tgz#3b9873b8a901e47c6efe21526a3ac372ef28bbc7" + +table@^3.7.8: + version "3.8.3" + resolved "https://registry.yarnpkg.com/table/-/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f" + dependencies: + ajv "^4.7.0" + ajv-keywords "^1.0.0" + chalk "^1.1.1" + lodash "^4.0.0" + slice-ansi "0.0.4" + string-width "^2.0.0" + +tapable@^0.2.5, tapable@~0.2.5: + version "0.2.6" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.6.tgz#206be8e188860b514425375e6f1ae89bfb01fd8d" + +tar-pack@~3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.3.0.tgz#30931816418f55afc4d21775afdd6720cee45dae" + dependencies: + debug "~2.2.0" + fstream "~1.0.10" + fstream-ignore "~1.0.5" + once "~1.3.3" + readable-stream "~2.1.4" + rimraf "~2.5.1" + tar "~2.2.1" + uid-number "~0.0.6" + +tar@^2.0.0, tar@~2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" + dependencies: + block-stream "*" + fstream "^1.0.2" + inherits "2" + +tcomb@^2.5.1: + version "2.7.0" + resolved "https://registry.yarnpkg.com/tcomb/-/tcomb-2.7.0.tgz#10d62958041669a5d53567b9a4ee8cde22b1c2b0" + +text-table@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + +through@^2.3.6: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + +thunky@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/thunky/-/thunky-0.1.0.tgz#bf30146824e2b6e67b0f2d7a4ac8beb26908684e" + +timers-browserify@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.2.tgz#ab4883cf597dcd50af211349a00fbca56ac86b86" + dependencies: + setimmediate "^1.0.4" + +to-arraybuffer@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" + +to-camel-case@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/to-camel-case/-/to-camel-case-1.0.0.tgz#1a56054b2f9d696298ce66a60897322b6f423e46" + dependencies: + to-space-case "^1.0.0" + +to-fast-properties@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.2.tgz#f3f5c0c3ba7299a7ef99427e44633257ade43320" + +to-no-case@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/to-no-case/-/to-no-case-1.0.2.tgz#c722907164ef6b178132c8e69930212d1b4aa16a" + +to-space-case@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/to-space-case/-/to-space-case-1.0.0.tgz#b052daafb1b2b29dc770cea0163e5ec0ebc9fc17" + dependencies: + to-no-case "^1.0.0" + +toposort@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/toposort/-/toposort-1.0.2.tgz#be1de72431320fcefe35a7b539c1c336cbcfd32c" + +tough-cookie@~2.3.0: + version "2.3.2" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a" + dependencies: + punycode "^1.4.1" + +trim-newlines@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" + +trim-right@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" + +tryit@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb" + +tty-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + +tunnel-agent@~0.4.1: + version "0.4.3" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + dependencies: + prelude-ls "~1.1.2" + +type-is@~1.6.14: + version "1.6.14" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.14.tgz#e219639c17ded1ca0789092dd54a03826b817cb2" + dependencies: + media-typer "0.3.0" + mime-types "~2.1.13" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + +ua-parser-js@^0.7.9: + version "0.7.12" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.12.tgz#04c81a99bdd5dc52263ea29d24c6bf8d4818a4bb" + +uglify-js@2.7.x: + version "2.7.5" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.7.5.tgz#4612c0c7baaee2ba7c487de4904ae122079f2ca8" + dependencies: + async "~0.2.6" + source-map "~0.5.1" + uglify-to-browserify "~1.0.0" + yargs "~3.10.0" + +uglify-js@^2.8.29: + version "2.8.29" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" + dependencies: + source-map "~0.5.1" + yargs "~3.10.0" + optionalDependencies: + uglify-to-browserify "~1.0.0" + +uglify-to-browserify@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" + +uglifyjs-webpack-plugin@^0.4.6: + version "0.4.6" + resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz#b951f4abb6bd617e66f63eb891498e391763e309" + dependencies: + source-map "^0.5.6" + uglify-js "^2.8.29" + webpack-sources "^1.0.1" + +uid-number@~0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" + +uniq@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + +uniqid@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/uniqid/-/uniqid-4.1.1.tgz#89220ddf6b751ae52b5f72484863528596bb84c1" + dependencies: + macaddress "^0.2.8" + +uniqs@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" + +unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + +upper-case@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" + +url-parse@1.0.x: + version "1.0.5" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.0.5.tgz#0854860422afdcfefeb6c965c662d4800169927b" + dependencies: + querystringify "0.0.x" + requires-port "1.0.x" + +url-parse@^1.1.1: + version "1.1.7" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.1.7.tgz#025cff999653a459ab34232147d89514cc87d74a" + dependencies: + querystringify "0.0.x" + requires-port "1.0.x" + +url@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + dependencies: + punycode "1.3.2" + querystring "0.2.0" + +user-home@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f" + dependencies: + os-homedir "^1.0.0" + +util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + +util@0.10.3, util@^0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + dependencies: + inherits "2.0.1" + +utila@~0.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/utila/-/utila-0.3.3.tgz#d7e8e7d7e309107092b05f8d9688824d633a4226" + +utila@~0.4: + version "0.4.0" + resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" + +utils-merge@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.0.tgz#0294fb922bb9375153541c4f7096231f287c8af8" + +uuid@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" + +uuid@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.1.tgz#6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1" + +validate-npm-package-license@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc" + dependencies: + spdx-correct "~1.0.0" + spdx-expression-parse "~1.0.0" + +vary@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.0.tgz#e1e5affbbd16ae768dd2674394b9ad3022653140" + +vendors@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.1.tgz#37ad73c8ee417fb3d580e785312307d274847f22" + +verror@1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.3.6.tgz#cff5df12946d297d2baaefaa2689e25be01c005c" + dependencies: + extsprintf "1.0.2" + +vm-browserify@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" + dependencies: + indexof "0.0.1" + +warning@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/warning/-/warning-3.0.0.tgz#32e5377cb572de4ab04753bdf8821c01ed605b7c" + dependencies: + loose-envify "^1.0.0" + +watchpack@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.3.1.tgz#7d8693907b28ce6013e7f3610aa2a1acf07dad87" + dependencies: + async "^2.1.2" + chokidar "^1.4.3" + graceful-fs "^4.1.2" + +wbuf@^1.1.0, wbuf@^1.4.0: + version "1.7.2" + resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.2.tgz#d697b99f1f59512df2751be42769c1580b5801fe" + dependencies: + minimalistic-assert "^1.0.0" + +webpack-dev-middleware@^1.11.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-1.11.0.tgz#09691d0973a30ad1f82ac73a12e2087f0a4754f9" + dependencies: + memory-fs "~0.4.1" + mime "^1.3.4" + path-is-absolute "^1.0.0" + range-parser "^1.0.3" + +webpack-dev-server@^2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-2.5.1.tgz#a02e726a87bb603db5d71abb7d6d2649bf10c769" + dependencies: + ansi-html "0.0.7" + bonjour "^3.5.0" + chokidar "^1.6.0" + compression "^1.5.2" + connect-history-api-fallback "^1.3.0" + del "^3.0.0" + express "^4.13.3" + html-entities "^1.2.0" + http-proxy-middleware "~0.17.4" + internal-ip "^1.2.0" + opn "4.0.2" + portfinder "^1.0.9" + selfsigned "^1.9.1" + serve-index "^1.7.2" + sockjs "0.3.18" + sockjs-client "1.1.2" + spdy "^3.4.1" + strip-ansi "^3.0.0" + supports-color "^3.1.1" + webpack-dev-middleware "^1.11.0" + yargs "^6.0.0" + +webpack-merge@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.1.0.tgz#6ad72223b3e0b837e531e4597c199f909361511e" + dependencies: + lodash "^4.17.4" + +webpack-sources@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.0.1.tgz#c7356436a4d13123be2e2426a05d1dad9cbe65cf" + dependencies: + source-list-map "^2.0.0" + source-map "~0.5.3" + +webpack@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.2.0.tgz#8b0cae0e1a9fd76bfbf0eab61a8c2ada848c312f" + dependencies: + acorn "^5.0.0" + acorn-dynamic-import "^2.0.0" + ajv "^5.1.5" + ajv-keywords "^2.0.0" + async "^2.1.2" + enhanced-resolve "^3.3.0" + escope "^3.6.0" + interpret "^1.0.0" + json-loader "^0.5.4" + json5 "^0.5.1" + loader-runner "^2.3.0" + loader-utils "^1.1.0" + memory-fs "~0.4.1" + mkdirp "~0.5.0" + node-libs-browser "^2.0.0" + source-map "^0.5.3" + supports-color "^3.1.0" + tapable "~0.2.5" + uglifyjs-webpack-plugin "^0.4.6" + watchpack "^1.3.1" + webpack-sources "^1.0.1" + yargs "^6.0.0" + +websocket-driver@>=0.5.1: + version "0.6.5" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.6.5.tgz#5cb2556ceb85f4373c6d8238aa691c8454e13a36" + dependencies: + websocket-extensions ">=0.1.1" + +websocket-extensions@>=0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.1.tgz#76899499c184b6ef754377c2dbb0cd6cb55d29e7" + +whatwg-fetch@0.11.1, whatwg-fetch@>=0.10.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-0.11.1.tgz#6d3ded245fdd97cd728e0e2587b54b733949e663" + +whet.extend@~0.9.9: + version "0.9.9" + resolved "https://registry.yarnpkg.com/whet.extend/-/whet.extend-0.9.9.tgz#f877d5bf648c97e5aa542fadc16d6a259b9c11a1" + +which-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" + +which@1, which@^1.2.9: + version "1.2.12" + resolved "https://registry.yarnpkg.com/which/-/which-1.2.12.tgz#de67b5e450269f194909ef23ece4ebe416fa1192" + dependencies: + isexe "^1.1.1" + +wide-align@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.0.tgz#40edde802a71fea1f070da3e62dcda2e7add96ad" + dependencies: + string-width "^1.0.1" + +window-size@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" + +window-size@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.2.0.tgz#b4315bb4214a3d7058ebeee892e13fa24d98b075" + +wordwrap@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" + +wordwrap@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + +wrap-ansi@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + +write@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" + dependencies: + mkdirp "^0.5.1" + +xml-char-classes@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/xml-char-classes/-/xml-char-classes-1.0.0.tgz#64657848a20ffc5df583a42ad8a277b4512bbc4d" + +xtend@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" + +y18n@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" + +yallist@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.0.0.tgz#306c543835f09ee1a4cb23b7bce9ab341c91cdd4" + +yargs-parser@^2.4.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-2.4.1.tgz#85568de3cf150ff49fa51825f03a8c880ddcc5c4" + dependencies: + camelcase "^3.0.0" + lodash.assign "^4.0.6" + +yargs-parser@^4.2.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-4.2.1.tgz#29cceac0dc4f03c6c87b4a9f217dd18c9f74871c" + dependencies: + camelcase "^3.0.0" + +yargs@^4.7.1: + version "4.7.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-4.7.1.tgz#e60432658a3387ff269c028eacde4a512e438dff" + dependencies: + camelcase "^3.0.0" + cliui "^3.2.0" + decamelize "^1.1.1" + lodash.assign "^4.0.3" + os-locale "^1.4.0" + pkg-conf "^1.1.2" + read-pkg-up "^1.0.1" + require-main-filename "^1.0.1" + set-blocking "^1.0.0" + string-width "^1.0.1" + window-size "^0.2.0" + y18n "^3.2.1" + yargs-parser "^2.4.0" + +yargs@^6.0.0: + version "6.6.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-6.6.0.tgz#782ec21ef403345f830a808ca3d513af56065208" + dependencies: + camelcase "^3.0.0" + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + os-locale "^1.4.0" + read-pkg-up "^1.0.1" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^1.0.2" + which-module "^1.0.0" + y18n "^3.2.1" + yargs-parser "^4.2.0" + +yargs@~3.10.0: + version "3.10.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" + dependencies: + camelcase "^1.0.2" + cliui "^2.1.0" + decamelize "^1.0.0" + window-size "0.1.0" diff --git a/wp-content/plugins/audioigniter/readme.txt b/wp-content/plugins/audioigniter/readme.txt new file mode 100644 index 00000000..671e8d60 --- /dev/null +++ b/wp-content/plugins/audioigniter/readme.txt @@ -0,0 +1,185 @@ +=== AudioIgniter Music Player === +Contributors: cssigniterteam, anastis, silencerius, tsiger +Tags: audio, podcast, audio player, html5 player, mp3 player, music player, music, radio stream, radio player, sound player, player, podcast player +Requires at least: 5.0 +Tested up to: 5.9 +Stable tag: 1.7.3 +License: GPLv2 or later +License URI: http://www.gnu.org/licenses/gpl-2.0.html + +AudioIgniter lets you create music playlists and embed them in your WordPress posts, pages or custom post types and serve your audio content in style! + +== Description == +Looking for an MP3 music player? AudioIgniter lets you create music playlists and embed them in your WordPress posts, pages or custom post types. By using the standard WordPress media upload functionality, you can create new audio playlists in minutes. Oh, you can use AudioIgniter to stream your radio show too! + +https://www.youtube.com/watch?v=AmRDYlVW_3M + +Check out [the demo](https://www.cssigniter.com/preview/audioigniter/) now! + +**Selling digital music?** + +You can combine [AudioIgniter with WooCommerce to easily sell individual tracks](https://www.cssigniter.com/sell-individual-tracks-using-audioigniter-with-woocommerce/). + +**Features:** + +* Supports audio and radio streaming +* Unlimited playlists +* Unlimited tracks +* 100% Compatible with Elementor +* 100% Compatible with Visual Composer +* 100% Compatible with Gutenberg Block Editor +* Responsive layout +* Embed through shortcode +* Flexible settings per playlist +* Show/Hide track listing +* Show/Hide track numbers in tracklist +* Show numbers in reverse order +* Show/Hide track covers in playlist +* Show/Hide active track’s cover +* Show/Hide artist name +* Custom "Buy track" URL field +* Custom "Download" URL field +* "Full" or "Simple" player mode (Great for podcasts) +* Limit track listing height +* Repeat track listing option +* Maximum player width +* Automatic ID3 Tag extraction from MP3 files +* Heavily tested on the 150 most popular free themes on WordPress.org + +**Supported Services:** + +* Acast +* Amazon S3 +* Anchor +* Art19 +* AudioBoom +* Castbox +* Captivate +* Icecast +* Podbean +* Radiojar +* Shoutcast +* Speaker +* Stitcher +* Libsyn + +**But wait, there's more!** + +A [Pro version](https://www.cssigniter.com/plugins/audioigniter) is also available! Here's what you get if you decide to upgrade: + +* Bulk upload functionality +* Rearrange tracks functionality +* Stop Tracks From Other Players (Multiple Players In One Page) +* Track skipping functionality (You can adjust the number of seconds) +* Playback rate (1x, 1.5x, 2x) +* Lyrics per track +* Individual Track Repeat Mode +* Non-continuous playback (Stop each track after playing) +* Optional customizable delay between tracks +* Shuffle playlist mode +* Starting track option +* Default track timer to countdown mode +* Fixed position player (Continuous play must be supported by your theme) +* Internal taxonomy for archiving purposes +* Customize the colors through the Customizer +* Custom block for the Gutenberg Block Editor (With the ability to change colors per player) +* Widget & Shortcode available + +**PREMIUM SUPPORT** +You can expect the same level of support for both the free and pro version of our plugin. Average response time: 24 hours. + + +== Installation == +1. Upload the plugin files to the `/wp-content/plugins/audioigniter` directory, or install the plugin through the WordPress plugins screen directly. +2. Activate the plugin through the "Plugins" screen in WordPress +3. In the WordPress admin dashboard you should see a new post type named "Playlists" +4. Navigate to the new Playlists post type and add your tracks! + +== Screenshots == +1. The AudioIgniter player +2. Managing your playlists via an intuitive and user friendly interface +3. Advanced player customization + +== Changelog == + += 1.7.3 = +* Top "Add Track" prepends a track, and bottom "Add Track" appends a track. + += 1.7.2 = +* Provide minimized and optimized stylesheet. +* Updated shortcode to support HTML classes via the class="" parameter. + += 1.7.1 = +* Added support for x3 playback rate. +* Added base support for user controlled shuffle button, in playlists that shuffle mode is enabled (Pro feature). +* Fixed a deprecation warning "Required parameter follows optional parameter" that would appear in PHP 8. +* Fixed spinner positioning on simple track listing. +* Introduced method AudioIgniter_Sanitizer::rgba_color() + += 1.7.0 = +* Added a loading spinner while the track is buffering. +* Developer note - Changed: Static property AudioIgniter::$version is now non-static and should be accessed as such. + += 1.6.3 = +* Fixed SVG appearance in TwentyTwenty theme. + += 1.6.2 = +* Fixed an issue where the download buttons would suggest an ugly filename consisting of the URL in a sanitized form. + += 1.6.1 = +* Fixed an issue where reverse track order would not work correctly under some particular option configurations. + += 1.6.0 = +* Change the layout of volume controls to be a bit more spacey. +* Hidden volume controls in mobile devices (improves player appearance in mobile). + += 1.5.1 = +* Minor performance improvements. + += 1.5.0 = +* Added new filters: 'aiStrings', 'audioigniter_get_playlist_data_attributes_array'. +* Added new actions: 'audioigniter_metabox_tracks_repeatable_track_fields_column_1', 'audioigniter_metabox_tracks_repeatable_track_fields_column_2', 'audioigniter_metabox_settings_group_player_track_listing_fields', 'audioigniter_metabox_settings_group_tracks_fields', 'audioigniter_metabox_settings_group_player_track_track_listing_repeat_fields'. +* Upgraded React / ReactDOM and dependencies to latest versions. +* Fixed issue with viewing buy/download buttons vs track repeat button. +* Fixed some untranslatable strings. +* Added base support for per-track Lyrics (requires Pro version). +* Added base support for single track looping (requires Pro version). +* Rearranged track listing settings layout. + += 1.4.2 = +* Accessibility enhancements. + += 1.4.1 = +* Developer enhancements. + += 1.4.0 = +* Code changes to accommodate a new player type, Global Footer Player, available in AudioIgniter Pro. +* Introduced AudioIgniter::is_playlist() for easier playlist ID validation. +* Added some translators comments. + += 1.3.0 = +* Added a new player type! From now on you can use a simpler playlist type if you don't need the full fledged player. +* Player type can now be selected via a simple dropdown. +* Updated some settings' labels to reflect the setting's function more accurately. +* Fixed an issue which prevented the player from working in IE11 sometimes. +* Fixed an issue where reversing a playlist would result in playing the incorrect tracks. +* Dropped IE9 support. + += 1.2.0 = +* Added support for initial volume setting. +* Show the tracklist toggle button when the tracklist is hidden by default. +* Added support for downloading tracks. +* Fixed issue where tracklist wouldn't display when there was only one track. + += 1.1.0 = +* Updated CSSIgniter links to https +* Added a button to enable repeating the playlist. Added admin option for the default state of the repeat button. +* Fixed a bug where the playlist would not get shown if it contained only one track. +* Added option to choose whether track links should open in a new window or not. + += 1.0.1 = +* Stop looping over the tracklist when the player finishes playing the last track. +* A couple of strings could not be translated. + += 1.0.0 = +* Initial release. diff --git a/wp-content/plugins/audioigniter/uninstall.php b/wp-content/plugins/audioigniter/uninstall.php new file mode 100644 index 00000000..0a259ad6 --- /dev/null +++ b/wp-content/plugins/audioigniter/uninstall.php @@ -0,0 +1,11 @@ +