From e5482aabb71f82511daf38e775704a22e3a53852 Mon Sep 17 00:00:00 2001 From: Lai Power Date: Mon, 5 Jun 2023 11:21:12 +0000 Subject: [PATCH] updated plugin `AudioIgniter` version 2.0.0 --- .../audioigniter/assets/css/admin-styles.css | 2 +- .../assets/css/admin-styles.min.css | 2 +- .../assets/css/admin/settings.css | 44 ++++ .../assets/css/admin/settings.min.css | 1 + .../assets/css/admin/settings.scss | 48 +++++ .../plugins/audioigniter/audioigniter.php | 35 ++- wp-content/plugins/audioigniter/ignitefile.js | 2 +- .../class-audioigniter-admin-page-upsell.php | 169 +++++++++++++++ .../class-audioigniter-sanitizer.php | 0 .../audioigniter/languages/audioigniter.pot | 202 ++++++++++-------- .../plugins/audioigniter/player/build/app.js | 2 +- .../player/build/app.js.LICENSE.txt | 2 + .../player/build/fingerprintjs.js | 1 + .../audioigniter/player/build/index.html | 6 +- .../audioigniter/player/build/style.css | 2 +- .../audioigniter/player/dev-tracks.json | 9 +- .../plugins/audioigniter/player/package.json | 1 + .../plugins/audioigniter/player/src/index.ejs | 13 +- .../plugins/audioigniter/player/src/index.js | 6 +- .../player/src/player/GlobalFooterPlayer.js | 3 + .../audioigniter/player/src/player/Player.js | 3 + .../player/src/player/SimplePlayer.js | 2 + .../player/src/player/components/Time.js | 10 +- .../player/src/player/components/Track.js | 4 + .../src/player/components/TrackButtons.js | 14 ++ .../player/src/player/components/Tracklist.js | 2 + .../src/player/components/TracklistWrap.js | 3 + .../player/components/WaveformProgressBar.js | 82 ------- .../player/src/player/services/events.js | 144 +++++++++++++ .../player/src/player/soundProvider.js | 126 +++++++++-- .../player/src/utils/isStreamTrack.js | 12 ++ .../audioigniter/player/src/utils/throttle.js | 21 ++ .../audioigniter/player/styles/style.scss | 12 -- .../plugins/audioigniter/player/yarn.lock | 9 +- wp-content/plugins/audioigniter/readme.txt | 19 +- wp-content/plugins/audioigniter/uninstall.php | 5 +- 36 files changed, 776 insertions(+), 242 deletions(-) create mode 100644 wp-content/plugins/audioigniter/assets/css/admin/settings.css create mode 100644 wp-content/plugins/audioigniter/assets/css/admin/settings.min.css create mode 100644 wp-content/plugins/audioigniter/assets/css/admin/settings.scss create mode 100644 wp-content/plugins/audioigniter/inc/class-audioigniter-admin-page-upsell.php rename wp-content/plugins/audioigniter/{ => inc}/class-audioigniter-sanitizer.php (100%) create mode 100644 wp-content/plugins/audioigniter/player/build/fingerprintjs.js delete mode 100644 wp-content/plugins/audioigniter/player/src/player/components/WaveformProgressBar.js create mode 100644 wp-content/plugins/audioigniter/player/src/player/services/events.js create mode 100644 wp-content/plugins/audioigniter/player/src/utils/isStreamTrack.js create mode 100644 wp-content/plugins/audioigniter/player/src/utils/throttle.js diff --git a/wp-content/plugins/audioigniter/assets/css/admin-styles.css b/wp-content/plugins/audioigniter/assets/css/admin-styles.css index 43133a83..583d74ef 100644 --- a/wp-content/plugins/audioigniter/assets/css/admin-styles.css +++ b/wp-content/plugins/audioigniter/assets/css/admin-styles.css @@ -62,7 +62,7 @@ vertical-align: middle; cursor: pointer; white-space: nowrap; - -webkit-user-select: none; + -ms-user-select: none; user-select: none; border-radius: 2px; width: auto; diff --git a/wp-content/plugins/audioigniter/assets/css/admin-styles.min.css b/wp-content/plugins/audioigniter/assets/css/admin-styles.min.css index 22db16c1..71afa9a5 100644 --- a/wp-content/plugins/audioigniter/assets/css/admin-styles.min.css +++ b/wp-content/plugins/audioigniter/assets/css/admin-styles.min.css @@ -1 +1 @@ -@charset "UTF-8";@keyframes ai-spin{0%{transform:rotate(0)}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: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;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}.ai-footer-links a::after{content:"\007c";color:#fff;opacity:.5;margin:0 7px}.ai-footer-links li:last-child a::after{display:none}.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-container-links{display:flex;grid-gap:20px}.ai-field-container-links .ai-field-split{width:50%;float:none}.ai-field-head{padding:8px 15px 5px;line-height:normal;background-color:#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 select,.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-form-field-checkbox-secondary{margin-top:7px}.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:#fff;background-color:red;width:16px;height:16px;font-size:12px;cursor:pointer;position:absolute;top:0;right:0;opacity:.9;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{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-container-links{display:block}.ai-field-container-links .ai-field-split,.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 +@charset "UTF-8";@keyframes ai-spin{0%{transform:rotate(0)}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:400;margin:0;line-height:normal;border:0;box-shadow:none;text-align:center;vertical-align:middle;cursor:pointer;white-space:nowrap;-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}.ai-footer-links a::after{content:"\007c";color:#fff;opacity:.5;margin:0 7px}.ai-footer-links li:last-child a::after{display:none}.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-container-links{display:flex;grid-gap:20px}.ai-field-container-links .ai-field-split{width:50%;float:none}.ai-field-head{padding:8px 15px 5px;line-height:normal;background-color:#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 select,.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-form-field-checkbox-secondary{margin-top:7px}.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:#fff;background-color:red;width:16px;height:16px;font-size:12px;cursor:pointer;position:absolute;top:0;right:0;opacity:.9;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{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-container-links{display:block}.ai-field-container-links .ai-field-split,.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/settings.css b/wp-content/plugins/audioigniter/assets/css/admin/settings.css new file mode 100644 index 00000000..8af5559c --- /dev/null +++ b/wp-content/plugins/audioigniter/assets/css/admin/settings.css @@ -0,0 +1,44 @@ +/* General */ + +.ai-settings-box { + background-color: #ffffff; + padding: 25px; + border: 1px solid #D8D8D8; + box-shadow: 0px 2px 0px rgba(0, 0, 0, 0.04); +} + +.ai-settings-box > :last-child { + margin-bottom: 0; +} + +/* Header / Nav */ + +.ai-settings-main-content-nav-header { + margin: 15px 0 40px; + display: flex; + align-items: center; +} + +.ai-settings-main-content-nav { + display: flex; + grid-gap: 20px; +} + +.ai-settings-main-content-nav-link { + color: #646970; + text-decoration: none; + font-size: 16px; +} + +.ai-settings-main-content-nav-link.is-active { + font-weight: 700; +} + +.ai-settings-main-content-nav-link.is-active, +.ai-settings-main-content-nav-link:hover { + color: #1D2327; +} + +.ai-settings-main-content-nav-filters { + margin-left: auto; +} \ No newline at end of file diff --git a/wp-content/plugins/audioigniter/assets/css/admin/settings.min.css b/wp-content/plugins/audioigniter/assets/css/admin/settings.min.css new file mode 100644 index 00000000..bc7acbab --- /dev/null +++ b/wp-content/plugins/audioigniter/assets/css/admin/settings.min.css @@ -0,0 +1 @@ +.ai-settings-box{background-color:#fff;padding:25px;border:1px solid #d8d8d8;box-shadow:0 2px 0 rgba(0,0,0,.04)}.ai-settings-box>:last-child{margin-bottom:0}.ai-settings-main-content-nav-header{margin:15px 0 40px;display:flex;align-items:center}.ai-settings-main-content-nav{display:flex;grid-gap:20px}.ai-settings-main-content-nav-link{color:#646970;text-decoration:none;font-size:16px}.ai-settings-main-content-nav-link.is-active{font-weight:700}.ai-settings-main-content-nav-link.is-active,.ai-settings-main-content-nav-link:hover{color:#1d2327}.ai-settings-main-content-nav-filters{margin-left:auto} \ No newline at end of file diff --git a/wp-content/plugins/audioigniter/assets/css/admin/settings.scss b/wp-content/plugins/audioigniter/assets/css/admin/settings.scss new file mode 100644 index 00000000..56e1fba9 --- /dev/null +++ b/wp-content/plugins/audioigniter/assets/css/admin/settings.scss @@ -0,0 +1,48 @@ +$box-shadow-base: 0px 2px 0px rgba(0, 0, 0, 0.04); +$border-color-base: #D8D8D8; +$text-color-base: #646970; +$text-color-dark: #1D2327; +$background-color: #f2f2f2; + +/* General */ +.ai-settings-box { + background-color: #ffffff; + padding: 25px; + border: 1px solid $border-color-base; + box-shadow: $box-shadow-base; + + > :last-child { + margin-bottom: 0; + } +} + +/* Header / Nav */ +.ai-settings-main-content-nav-header { + margin: 15px 0 40px; + display: flex; + align-items: center; +} + +.ai-settings-main-content-nav { + display: flex; + grid-gap: 20px; +} + +.ai-settings-main-content-nav-link { + color: $text-color-base; + text-decoration: none; + font-size: 16px; + + &.is-active { + font-weight: 700; + } + + &.is-active, + &:hover { + color: $text-color-dark; + } +} + +.ai-settings-main-content-nav-filters { + margin-left: auto; +} diff --git a/wp-content/plugins/audioigniter/audioigniter.php b/wp-content/plugins/audioigniter/audioigniter.php index c0a61180..51ba5ccd 100644 --- a/wp-content/plugins/audioigniter/audioigniter.php +++ b/wp-content/plugins/audioigniter/audioigniter.php @@ -5,7 +5,7 @@ * Description: 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! * Author: The CSSIgniter Team * Author URI: https://www.cssigniter.com - * Version: 1.9.0 + * Version: 2.0.0 * Text Domain: audioigniter * Domain Path: languages * @@ -131,9 +131,14 @@ class AudioIgniter { load_plugin_textdomain( 'audioigniter', false, dirname( self::plugin_basename() ) . '/languages' ); - require_once 'class-audioigniter-sanitizer.php'; + require_once untrailingslashit( $this->plugin_path() ) . '/inc/class-audioigniter-sanitizer.php'; $this->sanitizer = new AudioIgniter_Sanitizer(); +// if ( ! class_exists( 'AudioIgniter_Pro', false ) ) { +// require_once untrailingslashit( $this->plugin_path() ) . '/inc/class-audioigniter-admin-page-upsell.php'; +// new AudioIgniter_Admin_Page_Upsell(); +// } + // Initialization needed in every request. $this->init(); @@ -205,11 +210,8 @@ class AudioIgniter { * @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_register_style( 'audioigniter', untrailingslashit( $this->plugin_url() ) . '/player/build/style.css', array(), $this->version ); + wp_register_script( 'audioigniter', untrailingslashit( $this->plugin_url() ) . '/player/build/app.js', array(), $this->version, true ); wp_localize_script( 'audioigniter', 'aiStrings', apply_filters( 'audioigniter_aiStrings', array( /* translators: %s is the track's title. */ @@ -232,6 +234,14 @@ class AudioIgniter { 'shuffle' => esc_html__( 'Shuffle', 'audioigniter' ), ) ) ); + wp_localize_script( 'audioigniter', 'aiStats', array( + 'enabled' => get_option( 'audioigniter_stats_enabled' ) && class_exists( 'AudioIgniter_Pro' ), + 'apiUrl' => get_rest_url( null, 'audioigniter/v1' ), + ) ); + + wp_register_style( 'audioigniter-admin', untrailingslashit( $this->plugin_url() ) . '/assets/css/admin-styles.css', array(), $this->version ); + wp_register_script( 'audioigniter-admin', untrailingslashit( $this->plugin_url() ) . '/assets/js/audioigniter.js', array(), $this->version, true ); + 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' ), @@ -239,6 +249,8 @@ class AudioIgniter { 'media_title_upload_cover' => esc_html__( 'Select a cover image', 'audioigniter' ), ), ) ); + + wp_register_style( 'audioigniter-admin-settings', untrailingslashit( $this->plugin_url() ) . '/assets/css/admin/settings.css', array(), $this->version ); } /** @@ -264,6 +276,10 @@ class AudioIgniter { wp_enqueue_style( 'audioigniter-admin' ); wp_enqueue_script( 'audioigniter-admin' ); } + +// if ( 'ai_playlist_page_audioigniter-upsell' === $screen->id ) { +// wp_enqueue_style( 'audioigniter-admin-settings' ); +// } } /** @@ -275,7 +291,8 @@ class AudioIgniter { $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' ), + 'menu_name' => esc_html_x( 'AudioIgniter', 'admin menu', 'audioigniter' ), + 'all_items' => esc_html_x( 'All 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' ), @@ -1273,7 +1290,7 @@ class AudioIgniter { $track_response['audio'] = $track['track_url']; $track_response['buyUrl'] = $track['buy_link']; $track_response['downloadUrl'] = $track['download_uses_track_url'] ? $track['track_url'] : $track['download_url']; - $track_response['downloadFilename'] = $this->get_filename_from_url( $track['download_url'] ); + $track_response['downloadFilename'] = $this->get_filename_from_url( $track_response['downloadUrl'] ); if ( ! $track_response['downloadFilename'] ) { $track_response['downloadFilename'] = $track_response['downloadUrl']; diff --git a/wp-content/plugins/audioigniter/ignitefile.js b/wp-content/plugins/audioigniter/ignitefile.js index cdeecbdb..a6aea43d 100644 --- a/wp-content/plugins/audioigniter/ignitefile.js +++ b/wp-content/plugins/audioigniter/ignitefile.js @@ -2,7 +2,7 @@ module.exports = { name: 'audioigniter', paths: { src: { - styles: ['./assets/css/*.scss'], + styles: ['./assets/css/**/*.scss'], }, }, }; diff --git a/wp-content/plugins/audioigniter/inc/class-audioigniter-admin-page-upsell.php b/wp-content/plugins/audioigniter/inc/class-audioigniter-admin-page-upsell.php new file mode 100644 index 00000000..5bb991a8 --- /dev/null +++ b/wp-content/plugins/audioigniter/inc/class-audioigniter-admin-page-upsell.php @@ -0,0 +1,169 @@ +tabs = array( + 'general' => array( + 'title' => _x( 'General', 'settings tab title', 'audioigniter' ), + 'callback' => array( $this, 'tab_general' ), + ), + ); + } + + /** + * Register the page + * + * @since 2.0.0 + * + * @return void + */ + public function register() { + $page_slug = 'edit.php?post_type=' . AudioIgniter()->post_type; + add_submenu_page( $page_slug, __( 'AudioIgniter Settings', 'audioigniter' ), __( 'Go Pro!', 'audioigniter' ), 'manage_options', self::$page_slug, array( $this, 'render_page' ) ); + } + + /** + * Renders the onboarding page. + * + * @since 2.0.0 + */ + public function render_page() { + $active_tab = isset( $_GET['tab'] ) ? sanitize_key( wp_unslash( $_GET['tab'] ) ) : ''; // phpcs:ignore WordPress.Security.NonceVerification + if ( ! array_key_exists( $active_tab, $this->tabs ) ) { + reset( $this->tabs ); + $active_tab = key( $this->tabs ); + } + + ?> +
+

+ +

+ +
+ +
+
+
+ +
+ generate_tabs( $active_tab ); ?> +
+
+
+ +
+
+ tabs as $tab => $tab_info ) : ?> + + + +
+
+ +
+ tabs[ $active_tab ]['callback'] ) ) { + call_user_func( $this->tabs[ $active_tab ]['callback'], $active_tab ); + } ?> +
+ +
+ +
+ TODO: Leave disabled option below and write some upsell stuff. Maybe add images. Or replace everything with upsell info. +
+ + + + + + +
+ +

+ +

+
+ + + +
+ 'ai_playlist', + 'page' => self::$page_slug, + ), admin_url( 'edit.php' ) ); + } + + /** + * Returns the URL of a specific tab. + * + * @since 2.0.0 + * + * @return string + */ + private function get_tab_url( $tab ) { + return add_query_arg( array( + 'tab' => $tab, + ), $this->get_page_url() ); + } + +} diff --git a/wp-content/plugins/audioigniter/class-audioigniter-sanitizer.php b/wp-content/plugins/audioigniter/inc/class-audioigniter-sanitizer.php similarity index 100% rename from wp-content/plugins/audioigniter/class-audioigniter-sanitizer.php rename to wp-content/plugins/audioigniter/inc/class-audioigniter-sanitizer.php diff --git a/wp-content/plugins/audioigniter/languages/audioigniter.pot b/wp-content/plugins/audioigniter/languages/audioigniter.pot index 15e9e0aa..7464859c 100644 --- a/wp-content/plugins/audioigniter/languages/audioigniter.pot +++ b/wp-content/plugins/audioigniter/languages/audioigniter.pot @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: AudioIgniter\n" -"POT-Creation-Date: 2022-06-28 14:39+0300\n" +"POT-Creation-Date: 2023-04-18 22:08+0300\n" "PO-Revision-Date: 2016-08-29 19:22+0300\n" "Last-Translator: Anastis Sourgoutsidis \n" "Language-Team: Anastis Sourgoutsidis \n" @@ -10,7 +10,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" -"X-Generator: Poedit 3.1\n" +"X-Generator: Poedit 3.2.2\n" "X-Poedit-Basepath: ..\n" "X-Poedit-WPHeader: audioigniter.php\n" "X-Poedit-SourceCharset: UTF-8\n" @@ -22,351 +22,383 @@ msgstr "" "X-Poedit-SearchPathExcluded-0: *.js\n" #. translators: %s is the track's title. -#: audioigniter.php:216 +#: audioigniter.php:218 #, php-format msgid "Play %s" msgstr "" #. translators: %s is the track's title. -#: audioigniter.php:218 +#: audioigniter.php:220 #, php-format msgid "Pause %s" msgstr "" -#: audioigniter.php:219 +#: audioigniter.php:221 msgid "Previous track" msgstr "" -#: audioigniter.php:220 +#: audioigniter.php:222 msgid "Next track" msgstr "" -#: audioigniter.php:221 +#: audioigniter.php:223 msgid "Toggle track listing repeat" msgstr "" -#: audioigniter.php:222 +#: audioigniter.php:224 msgid "Toggle track repeat" msgstr "" -#: audioigniter.php:223 +#: audioigniter.php:225 msgid "Toggle track listing visibility" msgstr "" -#: audioigniter.php:224 +#: audioigniter.php:226 msgid "Buy this track" msgstr "" -#: audioigniter.php:225 +#: audioigniter.php:227 msgid "Download this track" msgstr "" -#: audioigniter.php:226 +#: audioigniter.php:228 msgid "Volume Up" msgstr "" -#: audioigniter.php:227 +#: audioigniter.php:229 msgid "Volume Down" msgstr "" -#: audioigniter.php:228 +#: audioigniter.php:230 msgid "Open track lyrics" msgstr "" -#: audioigniter.php:229 +#: audioigniter.php:231 msgid "Set playback rate" msgstr "" -#: audioigniter.php:230 +#: audioigniter.php:232 msgid "Skip forward" msgstr "" -#: audioigniter.php:231 +#: audioigniter.php:233 msgid "Skip backward" msgstr "" -#: audioigniter.php:232 +#: audioigniter.php:234 msgid "Shuffle" msgstr "" -#: audioigniter.php:237 +#: audioigniter.php:247 msgid "" "Do you really want to remove all tracks? (This will not delete your audio " "files)." msgstr "" -#: audioigniter.php:238 +#: audioigniter.php:248 msgid "Select or upload audio media" msgstr "" -#: audioigniter.php:239 +#: audioigniter.php:249 msgid "Select a cover image" msgstr "" -#: audioigniter.php:276 +#: audioigniter.php:292 msgctxt "post type general name" msgid "Playlists" msgstr "" -#: audioigniter.php:277 audioigniter.php:292 +#: audioigniter.php:293 audioigniter.php:309 msgctxt "post type singular name" msgid "Playlist" msgstr "" -#: audioigniter.php:278 +#: audioigniter.php:294 msgctxt "admin menu" -msgid "Playlists" +msgid "AudioIgniter" msgstr "" -#: audioigniter.php:279 +#: audioigniter.php:295 +msgctxt "admin menu" +msgid "All Playlists" +msgstr "" + +#: audioigniter.php:296 msgctxt "add new on admin bar" msgid "Playlist" msgstr "" -#: audioigniter.php:280 audioigniter.php:281 +#: audioigniter.php:297 audioigniter.php:298 msgid "Add New Playlist" msgstr "" -#: audioigniter.php:282 +#: audioigniter.php:299 msgid "Edit Playlist" msgstr "" -#: audioigniter.php:283 +#: audioigniter.php:300 msgid "New Playlist" msgstr "" -#: audioigniter.php:284 +#: audioigniter.php:301 msgid "View Playlist" msgstr "" -#: audioigniter.php:285 +#: audioigniter.php:302 msgid "Search Playlists" msgstr "" -#: audioigniter.php:286 +#: audioigniter.php:303 msgid "No playlists found" msgstr "" -#: audioigniter.php:287 +#: audioigniter.php:304 msgid "No playlists found in the trash" msgstr "" -#: audioigniter.php:312 audioigniter.php:838 +#: audioigniter.php:329 audioigniter.php:855 msgid "Tracks" msgstr "" -#: audioigniter.php:313 +#: audioigniter.php:330 msgid "Settings" msgstr "" -#: audioigniter.php:314 audioigniter.php:1303 +#: audioigniter.php:331 audioigniter.php:1320 msgid "Shortcode" msgstr "" -#: audioigniter.php:372 +#: audioigniter.php:389 msgid "AudioIgniter Logo" msgstr "" -#: audioigniter.php:381 +#: audioigniter.php:398 msgid "Upgrade to Pro" msgstr "" -#: audioigniter.php:405 +#: audioigniter.php:422 msgid "Support" msgstr "" -#: audioigniter.php:409 +#: audioigniter.php:426 msgid "Documentation" msgstr "" -#: audioigniter.php:413 +#: audioigniter.php:430 msgid "Rate this plugin" msgstr "" #. translators: %s is a URL. -#: audioigniter.php:436 +#: audioigniter.php:453 #, php-format msgid "" "Thank you for creating with AudioIgniter" msgstr "" -#: audioigniter.php:482 +#: audioigniter.php:499 msgid "Toggle track visibility" msgstr "" -#: audioigniter.php:493 +#: audioigniter.php:510 msgid "Remove Cover Image" msgstr "" -#: audioigniter.php:506 +#: audioigniter.php:523 msgid "Upload Cover" msgstr "" -#: audioigniter.php:524 audioigniter.php:531 +#: audioigniter.php:541 audioigniter.php:548 msgid "Title" msgstr "" -#: audioigniter.php:539 audioigniter.php:546 +#: audioigniter.php:556 audioigniter.php:563 msgid "Artist" msgstr "" -#: audioigniter.php:555 audioigniter.php:562 +#: audioigniter.php:572 audioigniter.php:579 msgid "Buy link" msgstr "" -#: audioigniter.php:575 audioigniter.php:584 +#: audioigniter.php:592 audioigniter.php:601 msgid "Audio file or radio stream" msgstr "" -#: audioigniter.php:588 +#: audioigniter.php:605 msgid "Upload" msgstr "" -#: audioigniter.php:599 audioigniter.php:606 +#: audioigniter.php:616 audioigniter.php:623 msgid "Download URL" msgstr "" -#: audioigniter.php:620 +#: audioigniter.php:637 msgid "Remove Track" msgstr "" -#: audioigniter.php:635 +#: audioigniter.php:652 msgid "Add Track" msgstr "" -#: audioigniter.php:642 +#: audioigniter.php:659 msgid "Clear Playlist" msgstr "" -#: audioigniter.php:648 +#: audioigniter.php:665 msgid "Expand All" msgstr "" -#: audioigniter.php:651 +#: audioigniter.php:668 msgid "Collapse All" msgstr "" -#: audioigniter.php:690 +#: audioigniter.php:707 msgid "Player & Track listing" msgstr "" -#: audioigniter.php:695 +#: audioigniter.php:712 msgid "Player Type" msgstr "" -#: audioigniter.php:726 +#: audioigniter.php:743 msgid "Show track listing by default" msgstr "" -#: audioigniter.php:740 +#: audioigniter.php:757 msgid "Show track listing visibility toggle button" msgstr "" -#: audioigniter.php:754 +#: audioigniter.php:771 msgid "Reverse track order" msgstr "" -#: audioigniter.php:760 +#: audioigniter.php:777 msgid "Starting volume" msgstr "" -#: audioigniter.php:771 +#: audioigniter.php:788 msgid "0-100" msgstr "" -#: audioigniter.php:776 +#: audioigniter.php:793 msgid "Enter a value between 0 and 100 in increments of 10" msgstr "" -#: audioigniter.php:790 +#: audioigniter.php:807 msgid "Limit track listing height" msgstr "" -#: audioigniter.php:796 audioigniter.php:806 +#: audioigniter.php:813 audioigniter.php:823 msgid "Track listing height" msgstr "" -#: audioigniter.php:811 +#: audioigniter.php:828 msgid "Set a number of pixels" msgstr "" -#: audioigniter.php:817 +#: audioigniter.php:834 msgid "Maximum player width" msgstr "" -#: audioigniter.php:825 +#: audioigniter.php:842 msgid "Automatic width" msgstr "" -#: audioigniter.php:830 +#: audioigniter.php:847 #, php-format msgid "" "Set a number of pixels, or leave empty to automatically cover 100% of the " "available area (recommended)." msgstr "" -#: audioigniter.php:850 +#: audioigniter.php:867 msgid "Show track numbers in tracklist" msgstr "" -#: audioigniter.php:864 +#: audioigniter.php:881 msgid "Show track covers in tracklist" msgstr "" -#: audioigniter.php:878 +#: audioigniter.php:895 msgid "Show active track's cover" msgstr "" -#: audioigniter.php:892 +#: audioigniter.php:909 msgid "Show artist names" msgstr "" -#: audioigniter.php:906 +#: audioigniter.php:923 msgid "Show track extra buttons (buy link, download button etc)" msgstr "" -#: audioigniter.php:920 +#: audioigniter.php:937 msgid "Open buy links in new window" msgstr "" -#: audioigniter.php:928 +#: audioigniter.php:945 msgid "Track & Track listing repeat" msgstr "" -#: audioigniter.php:940 +#: audioigniter.php:957 msgid "Repeat track listing enabled by default" msgstr "" -#: audioigniter.php:954 +#: audioigniter.php:971 msgid "Show track listing repeat toggle button" msgstr "" -#: audioigniter.php:971 +#: audioigniter.php:988 msgid "Show \"Powered by AudioIgniter\" link" msgstr "" -#: audioigniter.php:975 +#: audioigniter.php:992 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:995 +#: audioigniter.php:1012 msgid "Grab the shortcode" msgstr "" -#: audioigniter.php:1029 +#: audioigniter.php:1046 msgid "Full Player" msgstr "" -#: audioigniter.php:1034 +#: audioigniter.php:1051 msgid "Simple Player" msgstr "" -#: audioigniter.php:1257 +#: audioigniter.php:1274 msgid "ID doesn't match a playlist" msgstr "" +#: inc/class-audioigniter-admin-page-upsell.php:32 +msgctxt "settings tab title" +msgid "General" +msgstr "" + +#: inc/class-audioigniter-admin-page-upsell.php:47 +#: inc/class-audioigniter-admin-page-upsell.php:65 +msgid "AudioIgniter Settings" +msgstr "" + +#: inc/class-audioigniter-admin-page-upsell.php:47 +msgid "Go Pro!" +msgstr "" + +#: inc/class-audioigniter-admin-page-upsell.php:123 +msgid "Analytics" +msgstr "" + +#: inc/class-audioigniter-admin-page-upsell.php:127 +msgid "Enable analytics" +msgstr "" + +#: inc/class-audioigniter-admin-page-upsell.php:130 +msgid "" +"When disabled, no new events will be logged and processed into the database." +msgstr "" + #. Plugin Name of the plugin/theme msgid "AudioIgniter" msgstr "" diff --git a/wp-content/plugins/audioigniter/player/build/app.js b/wp-content/plugins/audioigniter/player/build/app.js index fc531946..dd5a6235 100644 --- a/wp-content/plugins/audioigniter/player/build/app.js +++ b/wp-content/plugins/audioigniter/player/build/app.js @@ -1,2 +1,2 @@ /*! For license information please see app.js.LICENSE.txt */ -(()=>{var e={3379:e=>{var t={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,n){return"number"!=typeof n||t[e]?n:n+"px"}},4184:(e,t)=>{var n;!function(){"use strict";var r={}.hasOwnProperty;function a(){for(var e=[],t=0;t{var r=n(7236),a=n(6189),o={float:"cssFloat"},l=n(3379);function i(e,t,n){var i=o[t];if(void 0===i&&(i=function(e){var t=a(e),n=r(t);return o[t]=o[e]=o[n]=n,n}(t)),i){if(void 0===n)return e.style[i];e.style[i]=l(i,n)}}function u(e,t){for(var n in t)t.hasOwnProperty(n)&&i(e,n,t[n])}function s(){2===arguments.length?"string"==typeof arguments[1]?arguments[0].style.cssText=arguments[1]:u(arguments[0],arguments[1]):i(arguments[0],arguments[1],arguments[2])}e.exports=s,e.exports.set=s,e.exports.get=function(e,t){return Array.isArray(t)?t.reduce((function(t,n){return t[n]=i(e,n||""),t}),{}):i(e,t||"")}},8875:(e,t,n)=>{var r;!function(){"use strict";var a=!("undefined"==typeof window||!window.document||!window.document.createElement),o={canUseDOM:a,canUseWorkers:"undefined"!=typeof Worker,canUseEventListeners:a&&!(!window.addEventListener&&!window.attachEvent),canUseViewport:a&&!!window.screen};void 0===(r=function(){return o}.call(t,n,t,e))||(e.exports=r)}()},139:e=>{"use strict";function t(e){return function(){return e}}var n=function(){};n.thatReturns=t,n.thatReturnsFalse=t(!1),n.thatReturnsTrue=t(!0),n.thatReturnsNull=t(null),n.thatReturnsThis=function(){return this},n.thatReturnsArgument=function(e){return e},e.exports=n},3759:e=>{"use strict";e.exports=function(e,t,n,r,a,o,l,i){if(!e){var u;if(void 0===t)u=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var s=[n,r,a,o,l,i],c=0;(u=new Error(t.replace(/%s/g,(function(){return s[c++]})))).name="Invariant Violation"}throw u.framesToPop=1,u}}},75:function(e){(function(){var t,n,r;"undefined"!=typeof performance&&null!==performance&&performance.now?e.exports=function(){return performance.now()}:"undefined"!=typeof process&&null!==process&&process.hrtime?(e.exports=function(){return(t()-r)/1e6},n=process.hrtime,r=(t=function(){var e;return 1e9*(e=n())[0]+e[1]})()):Date.now?(e.exports=function(){return Date.now()-r},r=Date.now()):(e.exports=function(){return(new Date).getTime()-r},r=(new Date).getTime())}).call(this)},7236:e=>{var t=null,n=["Webkit","Moz","O","ms"];e.exports=function(e){t||(t=document.createElement("div"));var r=t.style;if(e in r)return e;for(var a=e.charAt(0).toUpperCase()+e.slice(1),o=n.length;o>=0;o--){var l=n[o]+a;if(l in r)return l}return!1}},2703:(e,t,n)=>{"use strict";var r=n(414);function a(){}function o(){}o.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,o,l){if(l!==r){var i=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 i.name="Invariant Violation",i}}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:a};return n.PropTypes=n,n}},5697:(e,t,n)=>{e.exports=n(2703)()},414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},4087:(e,t,n)=>{for(var r=n(75),a="undefined"==typeof window?n.g:window,o=["moz","webkit"],l="AnimationFrame",i=a["request"+l],u=a["cancel"+l]||a["cancelRequest"+l],s=0;!i&&s{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}},4608:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t1?r-1:0),o=1;o0&&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,a=this.thumbVertical;e.addEventListener("scroll",this.handleScroll),(0,f.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),a.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,a=this.thumbVertical;e.removeEventListener("scroll",this.handleScroll),(0,f.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),a.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,a=n.onScrollFrame;r&&r(e),this.update((function(e){var n=e.scrollLeft,r=e.scrollTop;t.viewScrollLeft=n,t.viewScrollTop=r,a&&a(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().left,a=this.getThumbHorizontalWidth(),o=Math.abs(r-n)-a/2;this.view.scrollLeft=this.getScrollLeftForOffset(o)}},{key:"handleVerticalTrackMouseDown",value:function(e){e.preventDefault();var t=e.target,n=e.clientY,r=t.getBoundingClientRect().top,a=this.getThumbVerticalHeight(),o=Math.abs(r-n)-a/2;this.view.scrollTop=this.getScrollTopForOffset(o)}},{key:"handleHorizontalThumbMouseDown",value:function(e){e.preventDefault(),this.handleDragStart(e);var t=e.target,n=e.clientX,r=t.offsetWidth,a=t.getBoundingClientRect().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,a=t.getBoundingClientRect().top;this.prevPageY=r-(n-a)}},{key:"setupDragging",value:function(){(0,i.default)(document.body,m.disableSelectStyle),document.addEventListener("mousemove",this.handleDrag),document.addEventListener("mouseup",this.handleDragEnd),document.onselectstart=d.default}},{key:"teardownDragging",value:function(){(0,i.default)(document.body,m.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().left+t-(this.getThumbHorizontalWidth()-this.prevPageX);this.view.scrollLeft=this.getScrollLeftForOffset(n)}if(this.prevPageY){var r=e.clientY,a=-this.trackVertical.getBoundingClientRect().top+r-(this.getThumbVerticalHeight()-this.prevPageY);this.view.scrollTop=this.getScrollTopForOffset(a)}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,i.default)(this.trackHorizontal,{opacity:1}),(0,i.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,i.default)(e.trackHorizontal,{opacity:0}),(0,i.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&&l.default.cancel(this.requestFrame),this.requestFrame=(0,l.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,a=this.getValues();if((0,f.default)()){var o=a.scrollLeft,l=a.clientWidth,u=a.scrollWidth,s=(0,p.default)(this.trackHorizontal),c=this.getThumbHorizontalWidth(),d={width:c,transform:"translateX("+o/(u-l)*(s-c)+"px)"},m=a.scrollTop,y=a.clientHeight,v=a.scrollHeight,g=(0,h.default)(this.trackVertical),b=this.getThumbVerticalHeight(),k={height:b,transform:"translateY("+m/(v-y)*(g-b)+"px)"};if(r){var w={visibility:u>l?"visible":"hidden"},S={visibility:v>y?"visible":"hidden"};(0,i.default)(this.trackHorizontal,w),(0,i.default)(this.trackVertical,S)}(0,i.default)(this.thumbHorizontal,d),(0,i.default)(this.thumbVertical,k)}n&&n(a),"function"==typeof e&&e(a)}},{key:"render",value:function(){var e=this,t=(0,f.default)(),n=this.props,a=(n.onScroll,n.onScrollFrame,n.onScrollStart,n.onScrollStop,n.onUpdate,n.renderView),o=n.renderTrackHorizontal,l=n.renderTrackVertical,i=n.renderThumbHorizontal,s=n.renderThumbVertical,d=n.tagName,p=(n.hideTracksWhenNotNeeded,n.autoHide),h=(n.autoHideTimeout,n.autoHideDuration),y=(n.thumbSize,n.thumbMinSize,n.universal),v=n.autoHeight,g=n.autoHeightMin,b=n.autoHeightMax,k=n.style,w=n.children,S=function(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}(n,["onScroll","onScrollFrame","onScrollStart","onScrollStop","onUpdate","renderView","renderTrackHorizontal","renderTrackVertical","renderThumbHorizontal","renderThumbVertical","tagName","hideTracksWhenNotNeeded","autoHide","autoHideTimeout","autoHideDuration","thumbSize","thumbMinSize","universal","autoHeight","autoHeightMin","autoHeightMax","style","children"]),_=this.state.didMountUniversal,T=r({},m.containerStyleDefault,v&&r({},m.containerStyleAutoHeight,{minHeight:g,maxHeight:b}),k),O=r({},m.viewStyleDefault,{marginRight:t?-t:0,marginBottom:t?-t:0},v&&r({},m.viewStyleAutoHeight,{minHeight:(0,c.default)(g)?"calc("+g+" + "+t+"px)":g+t,maxHeight:(0,c.default)(b)?"calc("+b+" + "+t+"px)":b+t}),v&&y&&!_&&{minHeight:g,maxHeight:b},y&&!_&&m.viewStyleUniversalInitial),E={transition:"opacity "+h+"ms",opacity:0},P=r({},m.trackHorizontalStyleDefault,p&&E,(!t||y&&!_)&&{display:"none"}),C=r({},m.trackVerticalStyleDefault,p&&E,(!t||y&&!_)&&{display:"none"});return(0,u.createElement)(d,r({},S,{style:T,ref:function(t){e.container=t}}),[(0,u.cloneElement)(a({style:O}),{key:"view",ref:function(t){e.view=t}},w),(0,u.cloneElement)(o({style:P}),{key:"trackHorizontal",ref:function(t){e.trackHorizontal=t}},(0,u.cloneElement)(i({style:m.thumbHorizontalStyleDefault}),{ref:function(t){e.thumbHorizontal=t}})),(0,u.cloneElement)(l({style:C}),{key:"trackVertical",ref:function(t){e.trackVertical=t}},(0,u.cloneElement)(s({style:m.thumbVerticalStyleDefault}),{ref:function(t){e.thumbVertical=t}}))])}}]),t}(u.Component);t.default=k,k.propTypes={onScroll:s.default.func,onScrollFrame:s.default.func,onScrollStart:s.default.func,onScrollStop:s.default.func,onUpdate:s.default.func,renderView:s.default.func,renderTrackHorizontal:s.default.func,renderTrackVertical:s.default.func,renderThumbHorizontal:s.default.func,renderThumbVertical:s.default.func,tagName:s.default.string,thumbSize:s.default.number,thumbMinSize:s.default.number,hideTracksWhenNotNeeded:s.default.bool,autoHide:s.default.bool,autoHideTimeout:s.default.number,autoHideDuration:s.default.number,autoHeight:s.default.bool,autoHeightMin:s.default.oneOfType([s.default.number,s.default.string]),autoHeightMax:s.default.oneOfType([s.default.number,s.default.string]),universal:s.default.bool,style:s.default.object,children:s.default.node},k.defaultProps={renderView:y.renderViewDefault,renderTrackHorizontal:y.renderTrackHorizontalDefault,renderTrackVertical:y.renderTrackVerticalDefault,renderThumbHorizontal:y.renderThumbHorizontalDefault,renderThumbVertical:y.renderThumbVerticalDefault,tagName:"div",thumbMinSize:30,hideTracksWhenNotNeeded:!1,autoHide:!1,autoHideTimeout:1e3,autoHideDuration:200,autoHeight:!1,autoHeightMin:0,autoHeightMax:200,universal:!1}},7679:(e,t)=>{"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:""}},1298:(e,t,n)=>{"use strict";t.$B=void 0;var r,a=n(4608),o=(r=a)&&r.__esModule?r:{default:r};o.default,t.$B=o.default},6839:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=e.clientHeight,n=getComputedStyle(e),r=n.paddingTop,a=n.paddingBottom;return t-parseFloat(r)-parseFloat(a)}},4749:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=e.clientWidth,n=getComputedStyle(e),r=n.paddingLeft,a=n.paddingRight;return t-parseFloat(r)-parseFloat(a)}},3305:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){if(!1!==l)return l;if("undefined"!=typeof document){var e=document.createElement("div");(0,o.default)(e,{width:100,height:100,position:"absolute",top:-9999,overflow:"scroll",MsOverflowStyle:"scrollbar"}),document.body.appendChild(e),l=e.offsetWidth-e.clientWidth,document.body.removeChild(e)}else l=0;return l||0};var r,a=n(3879),o=(r=a)&&r.__esModule?r:{default:r};var l=!1},5205:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return"string"==typeof e}},8669:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){return!1}},2496:(e,t,n)=>{"use strict";var r=n(139),a=n(3759),o=n(7288);e.exports=function(){function e(e,t,n,r,l,i){i!==o&&a(!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}},2196:(e,t,n)=>{e.exports=n(2496)()},7288:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},4448:(e,t,n)=>{"use strict";var r=n(7294),a=n(3840);function o(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n