Socket
Socket
Sign inDemoInstall

ngx-audio-player

Package Overview
Dependencies
11
Maintainers
1
Versions
64
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 11.0.3 to 11.0.4

5

bundles/ngx-audio-player.umd.js

@@ -118,2 +118,3 @@ (function (global, factory) {

_this.isPlaying = true;
_this.duration = Math.floor(_this.player.nativeElement.duration);
});

@@ -335,4 +336,4 @@ this.player.nativeElement.addEventListener('pause', function () {

selector: 'mat-advanced-audio-player,ngx-audio-player',
template: "<mat-card class=\"ngx-d-flex ngx-justify-content-center ngx-audio-player z-depth-1 mat-elevation-z2\"\n style=\"margin: 0px;\">\n\n <audio #audioPlayer [src]=\"tracks[currentIndex]?.link\"></audio>\n\n <button *ngIf=\"tracks.length > 1\" (click)='previousSong();' [disabled]=\"loaderDisplay\" class=\"ngx-p-1\" mat-button>\n <mat-icon aria-hidden=\"true\">\n <!-- Skip previous icon (skip_previous) -->\n <svg height=\"32\" viewBox=\"0 0 24 24\" width=\"32\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6 6h2v12H6zm3.5 6l8.5 6V6z\" />\n <path d=\"M0 0h32v32H0z\" fill=\"none\" />\n </svg>\n </mat-icon>\n </button>\n <button (click)='playBtnHandler();' [disabled]=\"loaderDisplay\" class=\"ngx-p-1 play-pause\" mat-button>\n\n <svg *ngIf=\"loaderDisplay\" height=\"34px\" preserveAspectRatio=\"xMidYMid\"\n style=\"margin: auto; display: block; shape-rendering: auto;\" viewBox=\"0 0 100 100\" width=\"34px\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <g transform=\"rotate(0 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.9166666666666666s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(30 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.8333333333333334s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(60 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.75s\" dur=\"1s\" keyTimes=\"0;1\" repeatCount=\"indefinite\"\n values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(90 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.6666666666666666s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(120 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.5833333333333334s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(150 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.5s\" dur=\"1s\" keyTimes=\"0;1\" repeatCount=\"indefinite\"\n values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(180 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.4166666666666667s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(210 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.3333333333333333s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(240 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.25s\" dur=\"1s\" keyTimes=\"0;1\" repeatCount=\"indefinite\"\n values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(270 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.16666666666666666s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(300 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.08333333333333333s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(330 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"0s\" dur=\"1s\" keyTimes=\"0;1\" repeatCount=\"indefinite\"\n values=\"1;0\" />\n </rect>\n </g>\n </svg>\n\n <mat-icon *ngIf=\"!loaderDisplay && !isPlaying\" aria-hidden=\"true\" class=\"play-track\">\n <!-- Play icon (play_arrow) -->\n <svg height=\"32\" viewBox=\"0 0 24 24\" width=\"32\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M8 5v14l11-7z\" />\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n </svg>\n </mat-icon>\n <mat-icon *ngIf=\"!loaderDisplay && isPlaying\" aria-hidden=\"true\" class=\"pause-track\">\n <!-- Pause icon (pause) -->\n <svg height=\"32\" viewBox=\"0 0 24 24\" width=\"32\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6 19h4V5H6v14zm8-14v14h4V5h-4z\" />\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n </svg>\n </mat-icon>\n </button>\n <button *ngIf=\"tracks.length > 1\" (click)='nextSong();' [disabled]=\"loaderDisplay\" class=\"ngx-p-1 skip-next\"\n mat-button>\n <mat-icon aria-hidden=\"true\" class=\"next-track\">\n <!-- Skip next icon (skip_next) -->\n <svg height=\"32\" viewBox=\"0 0 24 24\" width=\"32\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6 18l8.5-6L6 6v12zM16 6v12h2V6h-2z\" />\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n </svg>\n </mat-icon>\n </button>\n\n <div class=\"ngx-col\">\n <div class=\"ngx-d-flex ngx-flex-fill ngx-justify-content-center\">\n <div class=\"ngx-d-none ngx-d-sm-block ngx-py-3 ngx-px-1\" style=\"font-size: 12px\">\n <span *ngIf=\"duration !== 0.01\">\n {{currentTime | secondsToMinutes}}\n </span>\n </div>\n <mat-slider [disabled]=\"disablePositionSlider\" (change)=\"currTimePosChanged($event)\" [min]=\"startOffset\"\n class=\"ngx-d-none ngx-d-sm-block ngx-flex-fill ngx-p-1\" max=\"{{duration-endOffset}}\" style=\"width: 100%\"\n value=\"{{currentTime}}\"></mat-slider>\n <div class=\"ngx-py-3 ngx-px-1\" style=\"font-size: 12px; text-align: right\">\n <span *ngIf=\"duration !== 0.01\">\n -{{duration-currentTime | secondsToMinutes }}\n </span>\n </div>\n </div>\n </div>\n <button (click)='toggleRepeat();' *ngIf=\"displayRepeatControls\" class=\"ngx-p-1 volume justify-content-center\" mat-button>\n <mat-icon *ngIf=\"repeat === 'none'\" aria-hidden=\"true\" class=\"volume-mute justify-content-center\">\n <!-- Repeat None -->\n <svg height=\"24\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 22 22\">\n <g>\n <g>\n <path d=\"m0,0l24,0l0,24l-24,0l0,-24z\" fill=\"none\" />\n <path d=\"m8,20l0,1.932a0.5,0.5 0 0 1 -0.82,0.385l-4.12,-3.433a0.5,0.5 0 0 1 0.322,-0.884l14.618,0a2,2 0 0 0 2,-2l0,-8l2,0l0,8a4,4 0 0 1 -4,4l-10,0zm8,-16l0,-1.932a0.5,0.5 0 0 1 0.82,-0.385l4.12,3.433a0.5,0.5 0 0 1 -0.321,0.884l-14.619,0a2,2 0 0 0 -2,2l0,8l-2,0l0,-8a4,4 0 0 1 4,-4l10,0z\" />\n <path d=\"M 3 0 L 22.4164 22.2706 L 21 24 L 1.5836 1.8128 L 3 0\"></path>\n </g>\n <!-- <line xmlns=\"http://www.w3.org/2000/svg\" id=\"svg_4\" y2=\"22.27056\" x2=\"22.41638\" y1=\"1.81276\" x1=\"1.58362\" stroke-width=\"2\" fill=\"none\"/> -->\n </g>\n </svg>\n </mat-icon>\n <mat-icon *ngIf=\"repeat === 'all'\" aria-hidden=\"true\" class=\"volume-mute\">\n <!-- Repeat All -->\n <svg height=\"24\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 22 22\">\n <g>\n <path fill=\"none\" d=\"M0 0h24v24H0z\" />\n <path\n d=\"M8 20v1.932a.5.5 0 0 1-.82.385l-4.12-3.433A.5.5 0 0 1 3.382 18H18a2 2 0 0 0 2-2V8h2v8a4 4 0 0 1-4 4H8zm8-16V2.068a.5.5 0 0 1 .82-.385l4.12 3.433a.5.5 0 0 1-.321.884H6a2 2 0 0 0-2 2v8H2V8a4 4 0 0 1 4-4h10z\" />\n </g>\n </svg>\n </mat-icon>\n <mat-icon *ngIf=\"repeat === 'one'\" aria-hidden=\"true\" class=\"volume-up\">\n <!-- Repeat ONE -->\n <svg height=\"24\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 22 22\">\n <g>\n <path fill=\"none\" d=\"M0 0h24v24H0z\" />\n <path\n d=\"M8 20v1.932a.5.5 0 0 1-.82.385l-4.12-3.433A.5.5 0 0 1 3.382 18H18a2 2 0 0 0 2-2V8h2v8a4 4 0 0 1-4 4H8zm8-16V2.068a.5.5 0 0 1 .82-.385l4.12 3.433a.5.5 0 0 1-.321.884H6a2 2 0 0 0-2 2v8H2V8a4 4 0 0 1 4-4h10zm-5 4h2v8h-2v-6H9V9l2-1z\" />\n </g>\n </svg>\n </mat-icon>\n </button>\n <button (click)='toggleVolume();' *ngIf=\"displayVolumeControls\" class=\"ngx-p-1 volume\" mat-button>\n <mat-icon *ngIf=\"volume === 0\" aria-hidden=\"true\" class=\"volume-mute\">\n <!-- Volume mute icon (volume_off) -->\n <svg height=\"28\" viewBox=\"0 0 24 24\" width=\"28\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M16.5 12c0-1.77-1.02-3.29-2.5-4.03v2.21l2.45 2.45c.03-.2.05-.41.05-.63zm2.5 0c0 .94-.2 1.82-.54 2.64l1.51 1.51C20.63 14.91 21 13.5 21 12c0-4.28-2.99-7.86-7-8.77v2.06c2.89.86 5 3.54 5 6.71zM4.27 3L3 4.27 7.73 9H3v6h4l5 5v-6.73l4.25 4.25c-.67.52-1.42.93-2.25 1.18v2.06c1.38-.31 2.63-.95 3.69-1.81L19.73 21 21 19.73l-9-9L4.27 3zM12 4L9.91 6.09 12 8.18V4z\" />\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n </svg>\n </mat-icon>\n <mat-icon *ngIf=\"volume > 0\" aria-hidden=\"true\" class=\"volume-up\">\n <!-- Volume up icon (volume_up) -->\n <svg height=\"28\" viewBox=\"0 0 24 24\" width=\"28\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M3 9v6h4l5 5V4L7 9H3zm13.5 3c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02zM14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77s-2.99-7.86-7-8.77z\" />\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n </svg>\n </mat-icon>\n </button>\n</mat-card>\n\n<mat-card *ngIf=\"displayTitle\" class=\"mat-elevation-z1\">\n <div style=\"text-align: center;\">\n <div style=\"margin: 1px 2px; padding: 1em\">\n <span *ngIf=\"!isPlaying\">{{ tracks[currentIndex]?.title }}{{ displayArtist && tracks[currentIndex]?.artist ?\n ' | ' + tracks[currentIndex]?.artist : ''}}</span>\n <marquee *ngIf=\"isPlaying\" behavior=\"scroll\" direction=\"left\">{{ tracks[currentIndex]?.title\n }}{{ displayArtist && tracks[currentIndex]?.artist ? ' | ' + tracks[currentIndex]?.artist : ''}}\n </marquee>\n </div>\n <div class=\"clear\"></div>\n </div>\n</mat-card>\n\n<mat-accordion *ngIf=\"displayPlaylist && tracks.length > 1\">\n <mat-expansion-panel [expanded]=\"expanded\">\n <mat-expansion-panel-header>\n {{tableHeader}}\n </mat-expansion-panel-header>\n <table [dataSource]=\"dataSource\" class=\"mat-elevation-z6\" mat-table>\n <ng-container matColumnDef=\"title\">\n <th *matHeaderCellDef mat-header-cell>{{titleHeader}}</th>\n <td (click)=\"selectTrack(element.index)\" *matCellDef=\"let element\" mat-cell>\n {{element.title}}\n </td>\n </ng-container>\n <ng-container matColumnDef=\"artist\">\n <th *matHeaderCellDef mat-header-cell>{{artistHeader}}</th>\n <td (click)=\"selectTrack(element.index)\" *matCellDef=\"let element\" mat-cell>\n {{element?.artist ? element?.artist : ''}}\n </td>\n </ng-container>\n <ng-container matColumnDef=\"duration\">\n <th *matHeaderCellDef mat-header-cell>{{durationHeader}}</th>\n <td (click)=\"selectTrack(element.index)\" *matCellDef=\"let element\" mat-cell>\n {{element?.duration ? (element?.duration | secondsToMinutes) : ''}}\n </td>\n </ng-container>\n <ng-container matColumnDef=\"status\">\n <th *matHeaderCellDef mat-header-cell></th>\n <td *matCellDef=\"let element\" mat-cell>\n <div *ngIf=\"tracks[currentIndex]?.title === element.title\">\n <!-- <mat-icon *ngIf=\"isPlaying\" aria-hidden=\"true\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M6 19h4V5H6v14zm8-14v14h4V5h-4z\"/><path d=\"M0 0h24v24H0z\" fill=\"none\"/></svg>\n </mat-icon> -->\n <mat-icon *ngIf=\"isPlaying\" aria-hidden=\"true\" class=\"currently-playing\">\n <!-- Play icon (play_arrow) -->\n <svg height=\"24\" viewBox=\"0 0 24 24\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n <path\n d=\"M12 3v9.28c-.47-.17-.97-.28-1.5-.28C8.01 12 6 14.01 6 16.5S8.01 21 10.5 21c2.31 0 4.2-1.75 4.45-4H15V6h4V3h-7z\" />\n </svg>\n </mat-icon>\n </div>\n </td>\n </ng-container>\n <tr *matHeaderRowDef=\"displayedColumns\" mat-header-row></tr>\n <tr *matRowDef=\"let row; columns: displayedColumns;\" class=\"mat-select-content\" mat-row></tr>\n </table>\n <mat-paginator [pageSizeOptions]=\"pageSizeOptions\" showFirstLastButtons></mat-paginator>\n </mat-expansion-panel>\n</mat-accordion>",
styles: ["mat-card,mat-slider{padding:0!important}button:focus,button:hover{outline:0!important}svg{vertical-align:top}.mat-icon{height:32px!important;width:32px!important}mat-icon>.currently-playing{height:16px!important;width:16px!important}table{width:100%}.ngx-advanced-audio-player{min-width:325px}.material-icons{font-size:16px!important}.play-pause{border-right:1px solid rgba(0,0,0,.1)}.play-pause,.volume{border-left:1px solid rgba(0,0,0,.1)}.skip-next{border-right:1px solid rgba(0,0,0,.1)}*,:after,:before{box-sizing:inherit}.ngx-p-1{padding:.25rem!important}.ngx-col,.ngx-col-1,.ngx-col-2,.ngx-col-3,.ngx-col-4,.ngx-col-5,.ngx-col-6,.ngx-col-7,.ngx-col-8,.ngx-col-9,.ngx-col-10,.ngx-col-11,.ngx-col-12,.ngx-col-auto,.ngx-col-lg,.ngx-col-lg-1,.ngx-col-lg-2,.ngx-col-lg-3,.ngx-col-lg-4,.ngx-col-lg-5,.ngx-col-lg-6,.ngx-col-lg-7,.ngx-col-lg-8,.ngx-col-lg-9,.ngx-col-lg-10,.ngx-col-lg-11,.ngx-col-lg-12,.ngx-col-lg-auto,.ngx-col-md,.ngx-col-md-1,.ngx-col-md-2,.ngx-col-md-3,.ngx-col-md-4,.ngx-col-md-5,.ngx-col-md-6,.ngx-col-md-7,.ngx-col-md-8,.ngx-col-md-9,.ngx-col-md-10,.ngx-col-md-11,.ngx-col-md-12,.ngx-col-md-auto,.ngx-col-sm,.ngx-col-sm-1,.ngx-col-sm-2,.ngx-col-sm-3,.ngx-col-sm-4,.ngx-col-sm-5,.ngx-col-sm-6,.ngx-col-sm-7,.ngx-col-sm-8,.ngx-col-sm-9,.ngx-col-sm-10,.ngx-col-sm-11,.ngx-col-sm-12,.ngx-col-sm-auto,.ngx-col-xl,.ngx-col-xl-1,.ngx-col-xl-2,.ngx-col-xl-3,.ngx-col-xl-4,.ngx-col-xl-5,.ngx-col-xl-6,.ngx-col-xl-7,.ngx-col-xl-8,.ngx-col-xl-9,.ngx-col-xl-10,.ngx-col-xl-11,.ngx-col-xl-12,.ngx-col-xl-auto{padding-left:15px;padding-right:15px;position:relative;width:100%}.ngx-col{flex-basis:0;flex-grow:1;max-width:100%}.ngx-justify-content-center{justify-content:center!important}.ngx-flex-fill{flex:1 1 auto!important}.ngx-d-flex{display:flex!important}.ngx-pb-3,.ngx-py-3{padding-bottom:1rem!important}.ngx-pt-3,.ngx-py-3{padding-top:1rem!important}.ngx-pl-1,.ngx-px-1{padding-left:.25rem!important}.ngx-pr-1,.ngx-px-1{padding-right:.25rem!important}@media (max-width:768px){.ngx-sm-block{display:block!important}.ngx-d-none{display:none!important}}"]
template: "<mat-card class=\"ngx-d-flex ngx-justify-content-center ngx-audio-player z-depth-1 mat-elevation-z2\"\n style=\"margin: 0px;\">\n\n <audio #audioPlayer [src]=\"tracks[currentIndex]?.link\"></audio>\n\n <button *ngIf=\"tracks.length > 1\" (click)='previousSong();' [disabled]=\"loaderDisplay\" class=\"ngx-p-1\" mat-button>\n <mat-icon aria-hidden=\"true\">\n <!-- Skip previous icon (skip_previous) -->\n <svg height=\"32\" viewBox=\"0 0 24 24\" width=\"32\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6 6h2v12H6zm3.5 6l8.5 6V6z\" />\n <path d=\"M0 0h32v32H0z\" fill=\"none\" />\n </svg>\n </mat-icon>\n </button>\n <button (click)='playBtnHandler();' [disabled]=\"loaderDisplay\" class=\"ngx-p-1 play-pause\" mat-button>\n\n <svg *ngIf=\"loaderDisplay\" height=\"34px\" preserveAspectRatio=\"xMidYMid\"\n style=\"margin: auto; display: block; shape-rendering: auto;\" viewBox=\"0 0 100 100\" width=\"34px\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <g transform=\"rotate(0 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.9166666666666666s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(30 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.8333333333333334s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(60 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.75s\" dur=\"1s\" keyTimes=\"0;1\" repeatCount=\"indefinite\"\n values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(90 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.6666666666666666s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(120 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.5833333333333334s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(150 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.5s\" dur=\"1s\" keyTimes=\"0;1\" repeatCount=\"indefinite\"\n values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(180 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.4166666666666667s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(210 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.3333333333333333s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(240 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.25s\" dur=\"1s\" keyTimes=\"0;1\" repeatCount=\"indefinite\"\n values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(270 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.16666666666666666s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(300 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.08333333333333333s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(330 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"0s\" dur=\"1s\" keyTimes=\"0;1\" repeatCount=\"indefinite\"\n values=\"1;0\" />\n </rect>\n </g>\n </svg>\n\n <mat-icon *ngIf=\"!loaderDisplay && !isPlaying\" aria-hidden=\"true\" class=\"play-track\">\n <!-- Play icon (play_arrow) -->\n <svg height=\"32\" viewBox=\"0 0 24 24\" width=\"32\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M8 5v14l11-7z\" />\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n </svg>\n </mat-icon>\n <mat-icon *ngIf=\"!loaderDisplay && isPlaying\" aria-hidden=\"true\" class=\"pause-track\">\n <!-- Pause icon (pause) -->\n <svg height=\"32\" viewBox=\"0 0 24 24\" width=\"32\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6 19h4V5H6v14zm8-14v14h4V5h-4z\" />\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n </svg>\n </mat-icon>\n </button>\n <button *ngIf=\"tracks.length > 1\" (click)='nextSong();' [disabled]=\"loaderDisplay\" class=\"ngx-p-1 skip-next\"\n mat-button>\n <mat-icon aria-hidden=\"true\" class=\"next-track\">\n <!-- Skip next icon (skip_next) -->\n <svg height=\"32\" viewBox=\"0 0 24 24\" width=\"32\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6 18l8.5-6L6 6v12zM16 6v12h2V6h-2z\" />\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n </svg>\n </mat-icon>\n </button>\n\n <div class=\"ngx-col\">\n <div class=\"ngx-d-flex ngx-flex-fill ngx-justify-content-center\">\n <div class=\"ngx-d-none ngx-d-sm-block ngx-py-3 ngx-px-1\" style=\"font-size: 12px\">\n <span *ngIf=\"duration !== 0.01\">\n {{currentTime | secondsToMinutes}}\n </span>\n </div>\n <mat-slider [disabled]=\"disablePositionSlider\" (change)=\"currTimePosChanged($event)\" [min]=\"startOffset\"\n class=\"ngx-d-none ngx-d-sm-block ngx-flex-fill ngx-p-1\" max=\"{{duration-endOffset}}\" style=\"width: 100%\"\n value=\"{{currentTime}}\"></mat-slider>\n\n <div class=\"ngx-py-3 ngx-px-1\" style=\"font-size: 12px; text-align: right\">\n <span *ngIf=\"duration !== 0.01\">\n -{{duration-currentTime | secondsToMinutes }}\n </span>\n </div>\n </div>\n </div>\n <button (click)='toggleRepeat();' *ngIf=\"displayRepeatControls\" class=\"ngx-p-1 volume justify-content-center\"\n mat-button>\n <mat-icon *ngIf=\"repeat === 'none'\" aria-hidden=\"true\" class=\"volume-mute justify-content-center\">\n <!-- Repeat None -->\n <svg height=\"24\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 22 22\">\n <g>\n <g>\n <path d=\"m0,0l24,0l0,24l-24,0l0,-24z\" fill=\"none\" />\n <path\n d=\"m8,20l0,1.932a0.5,0.5 0 0 1 -0.82,0.385l-4.12,-3.433a0.5,0.5 0 0 1 0.322,-0.884l14.618,0a2,2 0 0 0 2,-2l0,-8l2,0l0,8a4,4 0 0 1 -4,4l-10,0zm8,-16l0,-1.932a0.5,0.5 0 0 1 0.82,-0.385l4.12,3.433a0.5,0.5 0 0 1 -0.321,0.884l-14.619,0a2,2 0 0 0 -2,2l0,8l-2,0l0,-8a4,4 0 0 1 4,-4l10,0z\" />\n <path d=\"M 3 0 L 22.4164 22.2706 L 21 24 L 1.5836 1.8128 L 3 0\"></path>\n </g>\n <!-- <line xmlns=\"http://www.w3.org/2000/svg\" id=\"svg_4\" y2=\"22.27056\" x2=\"22.41638\" y1=\"1.81276\" x1=\"1.58362\" stroke-width=\"2\" fill=\"none\"/> -->\n </g>\n </svg>\n </mat-icon>\n <mat-icon *ngIf=\"repeat === 'all'\" aria-hidden=\"true\" class=\"volume-mute\">\n <!-- Repeat All -->\n <svg height=\"24\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 22 22\">\n <g>\n <path fill=\"none\" d=\"M0 0h24v24H0z\" />\n <path\n d=\"M8 20v1.932a.5.5 0 0 1-.82.385l-4.12-3.433A.5.5 0 0 1 3.382 18H18a2 2 0 0 0 2-2V8h2v8a4 4 0 0 1-4 4H8zm8-16V2.068a.5.5 0 0 1 .82-.385l4.12 3.433a.5.5 0 0 1-.321.884H6a2 2 0 0 0-2 2v8H2V8a4 4 0 0 1 4-4h10z\" />\n </g>\n </svg>\n </mat-icon>\n <mat-icon *ngIf=\"repeat === 'one'\" aria-hidden=\"true\" class=\"volume-up\">\n <!-- Repeat ONE -->\n <svg height=\"24\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 22 22\">\n <g>\n <path fill=\"none\" d=\"M0 0h24v24H0z\" />\n <path\n d=\"M8 20v1.932a.5.5 0 0 1-.82.385l-4.12-3.433A.5.5 0 0 1 3.382 18H18a2 2 0 0 0 2-2V8h2v8a4 4 0 0 1-4 4H8zm8-16V2.068a.5.5 0 0 1 .82-.385l4.12 3.433a.5.5 0 0 1-.321.884H6a2 2 0 0 0-2 2v8H2V8a4 4 0 0 1 4-4h10zm-5 4h2v8h-2v-6H9V9l2-1z\" />\n </g>\n </svg>\n </mat-icon>\n </button>\n <button (click)='toggleVolume();' *ngIf=\"displayVolumeControls\" class=\"ngx-p-1 volume\" mat-button>\n <mat-icon *ngIf=\"volume === 0\" aria-hidden=\"true\" class=\"volume-mute\">\n <!-- Volume mute icon (volume_off) -->\n <svg height=\"28\" viewBox=\"0 0 24 24\" width=\"28\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M16.5 12c0-1.77-1.02-3.29-2.5-4.03v2.21l2.45 2.45c.03-.2.05-.41.05-.63zm2.5 0c0 .94-.2 1.82-.54 2.64l1.51 1.51C20.63 14.91 21 13.5 21 12c0-4.28-2.99-7.86-7-8.77v2.06c2.89.86 5 3.54 5 6.71zM4.27 3L3 4.27 7.73 9H3v6h4l5 5v-6.73l4.25 4.25c-.67.52-1.42.93-2.25 1.18v2.06c1.38-.31 2.63-.95 3.69-1.81L19.73 21 21 19.73l-9-9L4.27 3zM12 4L9.91 6.09 12 8.18V4z\" />\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n </svg>\n </mat-icon>\n <mat-icon *ngIf=\"volume > 0\" aria-hidden=\"true\" class=\"volume-up\">\n <!-- Volume up icon (volume_up) -->\n <svg height=\"28\" viewBox=\"0 0 24 24\" width=\"28\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M3 9v6h4l5 5V4L7 9H3zm13.5 3c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02zM14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77s-2.99-7.86-7-8.77z\" />\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n </svg>\n </mat-icon>\n </button>\n</mat-card>\n\n<mat-card *ngIf=\"displayTitle\" class=\"mat-elevation-z1 ngx-audio-player\">\n <div style=\"text-align: center;\">\n <div style=\"margin: 1px 2px; padding: 1em\">\n <span *ngIf=\"!isPlaying\">{{ tracks[currentIndex]?.title }}{{ displayArtist && tracks[currentIndex]?.artist ?\n ' | ' + tracks[currentIndex]?.artist : ''}}</span>\n <marquee *ngIf=\"isPlaying\" behavior=\"scroll\" direction=\"left\">{{ tracks[currentIndex]?.title\n }}{{ displayArtist && tracks[currentIndex]?.artist ? ' | ' + tracks[currentIndex]?.artist : ''}}\n </marquee>\n </div>\n <div class=\"clear\"></div>\n </div>\n</mat-card>\n\n<mat-accordion class=\"ngx-audio-player\" *ngIf=\"displayPlaylist && tracks.length > 1\">\n <mat-expansion-panel [expanded]=\"expanded\">\n <mat-expansion-panel-header>\n {{tableHeader}}\n </mat-expansion-panel-header>\n <table [dataSource]=\"dataSource\" class=\"mat-elevation-z6\" mat-table>\n <ng-container matColumnDef=\"title\">\n <th *matHeaderCellDef mat-header-cell>{{titleHeader}}</th>\n <td (click)=\"selectTrack(element.index)\" *matCellDef=\"let element\" mat-cell>\n {{element.title}}\n </td>\n </ng-container>\n <ng-container matColumnDef=\"artist\">\n <th *matHeaderCellDef mat-header-cell>{{artistHeader}}</th>\n <td (click)=\"selectTrack(element.index)\" *matCellDef=\"let element\" mat-cell>\n {{element?.artist ? element?.artist : ''}}\n </td>\n </ng-container>\n <ng-container matColumnDef=\"duration\">\n <th *matHeaderCellDef mat-header-cell>{{durationHeader}}</th>\n <td (click)=\"selectTrack(element.index)\" *matCellDef=\"let element\" mat-cell>\n {{element?.duration ? (element?.duration | secondsToMinutes) : ''}}\n </td>\n </ng-container>\n <ng-container matColumnDef=\"status\">\n <th *matHeaderCellDef mat-header-cell></th>\n <td *matCellDef=\"let element\" mat-cell>\n <div *ngIf=\"tracks[currentIndex]?.title === element.title\">\n <!-- <mat-icon *ngIf=\"isPlaying\" aria-hidden=\"true\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M6 19h4V5H6v14zm8-14v14h4V5h-4z\"/><path d=\"M0 0h24v24H0z\" fill=\"none\"/></svg>\n </mat-icon> -->\n <mat-icon *ngIf=\"isPlaying\" aria-hidden=\"true\" class=\"currently-playing\">\n <!-- Play icon (play_arrow) -->\n <svg height=\"24\" viewBox=\"0 0 24 24\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n <path\n d=\"M12 3v9.28c-.47-.17-.97-.28-1.5-.28C8.01 12 6 14.01 6 16.5S8.01 21 10.5 21c2.31 0 4.2-1.75 4.45-4H15V6h4V3h-7z\" />\n </svg>\n </mat-icon>\n </div>\n </td>\n </ng-container>\n <tr *matHeaderRowDef=\"displayedColumns\" mat-header-row></tr>\n <tr *matRowDef=\"let row; columns: displayedColumns;\" class=\"mat-select-content\" mat-row></tr>\n </table>\n <mat-paginator [pageSizeOptions]=\"pageSizeOptions\" showFirstLastButtons></mat-paginator>\n </mat-expansion-panel>\n</mat-accordion>",
styles: ["mat-card,mat-slider{padding:0!important}button:focus,button:hover{outline:0!important}svg{vertical-align:top}.mat-icon{height:32px!important;width:32px!important}mat-icon>.currently-playing{height:16px!important;width:16px!important}table{width:100%}.mat-expansion-panel,::ng-deep .ngx-audio-player{min-width:375px}::ng-deep .mat-paginator-container{justify-content:space-between!important}.material-icons{font-size:16px!important}.play-pause{border-right:1px solid rgba(0,0,0,.1)}.play-pause,.volume{border-left:1px solid rgba(0,0,0,.1)}.skip-next{border-right:1px solid rgba(0,0,0,.1)}*,:after,:before{box-sizing:inherit}.ngx-p-1{padding:.25rem!important}.ngx-col,.ngx-col-1,.ngx-col-2,.ngx-col-3,.ngx-col-4,.ngx-col-5,.ngx-col-6,.ngx-col-7,.ngx-col-8,.ngx-col-9,.ngx-col-10,.ngx-col-11,.ngx-col-12,.ngx-col-auto,.ngx-col-lg,.ngx-col-lg-1,.ngx-col-lg-2,.ngx-col-lg-3,.ngx-col-lg-4,.ngx-col-lg-5,.ngx-col-lg-6,.ngx-col-lg-7,.ngx-col-lg-8,.ngx-col-lg-9,.ngx-col-lg-10,.ngx-col-lg-11,.ngx-col-lg-12,.ngx-col-lg-auto,.ngx-col-md,.ngx-col-md-1,.ngx-col-md-2,.ngx-col-md-3,.ngx-col-md-4,.ngx-col-md-5,.ngx-col-md-6,.ngx-col-md-7,.ngx-col-md-8,.ngx-col-md-9,.ngx-col-md-10,.ngx-col-md-11,.ngx-col-md-12,.ngx-col-md-auto,.ngx-col-sm,.ngx-col-sm-1,.ngx-col-sm-2,.ngx-col-sm-3,.ngx-col-sm-4,.ngx-col-sm-5,.ngx-col-sm-6,.ngx-col-sm-7,.ngx-col-sm-8,.ngx-col-sm-9,.ngx-col-sm-10,.ngx-col-sm-11,.ngx-col-sm-12,.ngx-col-sm-auto,.ngx-col-xl,.ngx-col-xl-1,.ngx-col-xl-2,.ngx-col-xl-3,.ngx-col-xl-4,.ngx-col-xl-5,.ngx-col-xl-6,.ngx-col-xl-7,.ngx-col-xl-8,.ngx-col-xl-9,.ngx-col-xl-10,.ngx-col-xl-11,.ngx-col-xl-12,.ngx-col-xl-auto{padding-left:15px;padding-right:15px;position:relative;width:100%}.ngx-col{flex-basis:0;flex-grow:1;max-width:100%}.ngx-justify-content-center{justify-content:center!important}.ngx-flex-fill{flex:1 1 auto!important}.ngx-d-flex{display:flex!important}.ngx-pb-3,.ngx-py-3{padding-bottom:1rem!important}.ngx-pt-3,.ngx-py-3{padding-top:1rem!important}.ngx-pl-1,.ngx-px-1{padding-left:.25rem!important}.ngx-pr-1,.ngx-px-1{padding-right:.25rem!important}@media (max-width:768px){.ngx-sm-block{display:block!important}.ngx-d-none{display:none!important}}"]
},] }

@@ -339,0 +340,0 @@ ];

2

bundles/ngx-audio-player.umd.min.js

@@ -1,2 +0,2 @@

!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("@angular/material/table"),require("@angular/material/paginator"),require("rxjs"),require("@angular/material/slider"),require("@angular/material/form-field"),require("@angular/material/expansion"),require("@angular/material/card"),require("@angular/material/button"),require("@angular/common"),require("@angular/forms"),require("@angular/material/icon")):"function"==typeof define&&define.amd?define("ngx-audio-player",["exports","@angular/core","@angular/material/table","@angular/material/paginator","rxjs","@angular/material/slider","@angular/material/form-field","@angular/material/expansion","@angular/material/card","@angular/material/button","@angular/common","@angular/forms","@angular/material/icon"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self)["ngx-audio-player"]={},t.ng.core,t.ng.material.table,t.ng.material.paginator,t.rxjs,t.ng.material.slider,t.ng.material.formField,t.ng.material.expansion,t.ng.material.card,t.ng.material.button,t.ng.common,t.ng.forms,t.ng.material.icon)}(this,(function(t,e,n,a,i,r,l,o,s,c,d,u,p){"use strict";var g=function(){function t(){this.tracks=[],this.playlistSubject$=new i.BehaviorSubject(this.tracks),this.currentTrack=null,this.currentTrackSubject$=new i.BehaviorSubject(this.currentTrack),this.currentTime=null,this.currentTimeSubject$=new i.BehaviorSubject(this.currentTime)}return t.prototype.setPlaylist=function(t){this.tracks=t,this.playlistSubject$.next(this.tracks)},t.prototype.getPlaylist=function(){return this.playlistSubject$.asObservable()},t.prototype.setCurrentTrack=function(t){this.currentTrack=t,this.currentTrackSubject$.next(this.currentTrack)},t.prototype.getCurrentTrack=function(){return this.currentTrackSubject$.asObservable()},t.prototype.setCurrentTime=function(t){this.currentTime=t,this.currentTimeSubject$.next(this.currentTime)},t.prototype.getCurrentTime=function(){return this.currentTimeSubject$.asObservable()},t}();g.ɵprov=e.ɵɵdefineInjectable({factory:function(){return new g},token:g,providedIn:"root"}),g.decorators=[{type:e.Injectable,args:[{providedIn:"root"}]}];var m=function(){function t(t){this.repeat="all",this.dataSource=new n.MatTableDataSource,this.tracks=[],this.displayTitle=!0,this.displayPlaylist=!0,this.displayVolumeControls=!0,this.displayRepeatControls=!0,this.pageSizeOptions=[10,20,30],this.expanded=!0,this.autoPlay=!1,this.disablePositionSlider=!1,this.displayArtist=!1,this.displayDuration=!1,this.tableHeader="Playlist",this.titleHeader="Title",this.artistHeader="Artist",this.durationHeader="Duration",this.currentIndex=0,this.trackEnded=new i.Subject,this.iOS=/iPad|iPhone|iPod/.test(navigator.platform)||"MacIntel"===navigator.platform&&navigator.maxTouchPoints>1,this.loaderDisplay=!1,this.isPlaying=!1,this.currentTime=0,this.volume=.1,this.duration=.01,this.startOffsetValue=0,this.endOffset=0,"mat-advanced-audio-player"===t.nativeElement.tagName.toLowerCase()&&console.warn("'mat-advanced-audio-player' selector is deprecated; use 'ngx-audio-player' instead."),this.audioPlayerService=new g}return Object.defineProperty(t.prototype,"playlist",{set:function(t){this.audioPlayerService.setPlaylist(t)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"matPaginator",{set:function(t){this.paginator=t,this.setDataSourceAttributes()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"startOffset",{get:function(){return this.startOffsetValue},set:function(t){this.startOffsetValue=t,this.player.nativeElement.currentTime=t},enumerable:!1,configurable:!0}),t.prototype.currTimePosChanged=function(t){this.player.nativeElement.currentTime=t.value},t.prototype.bindPlayerEvent=function(){var t=this;this.player.nativeElement.addEventListener("playing",(function(){t.isPlaying=!0})),this.player.nativeElement.addEventListener("pause",(function(){t.isPlaying=!1})),this.player.nativeElement.addEventListener("timeupdate",(function(){t.currentTime=Math.floor(t.player.nativeElement.currentTime)})),this.player.nativeElement.addEventListener("volume",(function(){t.volume=Math.floor(t.player.nativeElement.volume)})),this.iOS||this.player.nativeElement.addEventListener("loadstart",(function(){t.loaderDisplay=!0})),this.player.nativeElement.addEventListener("loadedmetadata",(function(){t.loaderDisplay=!1,t.duration=Math.floor(t.player.nativeElement.duration)})),this.player.nativeElement.addEventListener("ended",(function(){t.trackEnded.next("ended")}))},t.prototype.playBtnHandler=function(){this.loaderDisplay||(this.player.nativeElement.paused?(this.currentTime>=this.duration-this.endOffset?this.player.nativeElement.currentTime=this.startOffset:this.player.nativeElement.currentTime=this.currentTime,this.player.nativeElement.play()):(this.currentTime=this.player.nativeElement.currentTime,this.player.nativeElement.pause()))},t.prototype.play=function(t){var e=this;t&&(this.startOffset=t.startOffset||0,this.endOffset=t.endOffset||0),setTimeout((function(){e.player.nativeElement.play()}),50)},t.prototype.toggleVolume=function(){0===this.volume?this.setVolume(1):this.setVolume(0)},t.prototype.toggleRepeat=function(){"none"===this.repeat?this.repeat="all":"all"===this.repeat?this.tracks.length>1?this.repeat="one":this.repeat="none":"one"===this.repeat&&this.tracks.length>1&&(this.repeat="none")},t.prototype.setVolume=function(t){this.volume=t,this.player.nativeElement.volume=this.volume},t.prototype.ngOnInit=function(){var t=this;this.bindPlayerEvent(),this.player.nativeElement.addEventListener("ended",(function(){t.checkIfSongHasStartedSinceAtleastTwoSeconds()&&("all"===t.repeat?t.nextSong():"one"===t.repeat?t.play():t.repeat)})),this.player.nativeElement.addEventListener("timeupdate",(function(){t.audioPlayerService.setCurrentTime(t.player.nativeElement.currentTime)})),this.audioPlayerService.getPlaylist().subscribe((function(e){null!==e&&e!==[]&&(t.tracks=e,t.initialize())}))},t.prototype.ngOnChanges=function(t){(t.hasOwnProperty("displayArtist")||t.hasOwnProperty("displayDuration"))&&this.buildDisplayedColumns()},t.prototype.buildDisplayedColumns=function(){this.displayedColumns=["title"],this.displayArtist&&this.displayedColumns.push("artist"),this.displayDuration&&this.displayedColumns.push("duration"),this.displayedColumns.push("status")},t.prototype.initialize=function(){this.buildDisplayedColumns(),this.setDataSourceAttributes(),this.player.nativeElement.currentTime=this.startOffset,this.updateCurrentTrack(),this.autoPlay&&this.play()},t.prototype.setDataSourceAttributes=function(){var t=1;this.tracks&&(this.tracks.forEach((function(e){e.index=t++})),this.dataSource=new n.MatTableDataSource(this.tracks),this.dataSource.paginator=this.paginator)},t.prototype.nextSong=function(){!0!==this.displayPlaylist||(this.currentIndex+1)%this.paginator.pageSize!=0&&this.currentIndex+1!==this.paginator.length||(this.paginator.hasNextPage()?this.paginator.nextPage():this.paginator.hasNextPage()||this.paginator.firstPage()),this.currentTime=0,this.duration=.01,this.currentIndex+1>=this.tracks.length?this.currentIndex=0:this.currentIndex++,this.updateCurrentTrack(),this.play()},t.prototype.previousSong=function(){this.currentTime=0,this.duration=.01,this.checkIfSongHasStartedSinceAtleastTwoSeconds()?this.resetSong():(!0!==this.displayPlaylist||this.currentIndex%this.paginator.pageSize!=0&&0!==this.currentIndex||(this.paginator.hasPreviousPage()?this.paginator.previousPage():this.paginator.hasPreviousPage()||this.paginator.lastPage()),this.currentIndex-1<0?this.currentIndex=this.tracks.length-1:this.currentIndex--),this.updateCurrentTrack(),this.play()},t.prototype.resetSong=function(){this.player.nativeElement.src=this.tracks[this.currentIndex].link},t.prototype.selectTrack=function(t){this.currentIndex=t-1,this.updateCurrentTrack(),this.play()},t.prototype.checkIfSongHasStartedSinceAtleastTwoSeconds=function(){return this.player.nativeElement.currentTime>2},t.prototype.updateCurrentTrack=function(){this.audioPlayerService.setCurrentTrack(this.tracks[this.currentIndex])},t}();m.decorators=[{type:e.Component,args:[{selector:"mat-advanced-audio-player,ngx-audio-player",template:'<mat-card class="ngx-d-flex ngx-justify-content-center ngx-audio-player z-depth-1 mat-elevation-z2"\n style="margin: 0px;">\n\n <audio #audioPlayer [src]="tracks[currentIndex]?.link"></audio>\n\n <button *ngIf="tracks.length > 1" (click)=\'previousSong();\' [disabled]="loaderDisplay" class="ngx-p-1" mat-button>\n <mat-icon aria-hidden="true">\n \x3c!-- Skip previous icon (skip_previous) --\x3e\n <svg height="32" viewBox="0 0 24 24" width="32" xmlns="http://www.w3.org/2000/svg">\n <path d="M6 6h2v12H6zm3.5 6l8.5 6V6z" />\n <path d="M0 0h32v32H0z" fill="none" />\n </svg>\n </mat-icon>\n </button>\n <button (click)=\'playBtnHandler();\' [disabled]="loaderDisplay" class="ngx-p-1 play-pause" mat-button>\n\n <svg *ngIf="loaderDisplay" height="34px" preserveAspectRatio="xMidYMid"\n style="margin: auto; display: block; shape-rendering: auto;" viewBox="0 0 100 100" width="34px"\n xmlns="http://www.w3.org/2000/svg">\n <g transform="rotate(0 50 50)">\n <rect fill="#7a7a7a" height="12" rx="3" ry="6" width="6" x="47" y="20">\n <animate attributeName="opacity" begin="-0.9166666666666666s" dur="1s" keyTimes="0;1"\n repeatCount="indefinite" values="1;0" />\n </rect>\n </g>\n <g transform="rotate(30 50 50)">\n <rect fill="#7a7a7a" height="12" rx="3" ry="6" width="6" x="47" y="20">\n <animate attributeName="opacity" begin="-0.8333333333333334s" dur="1s" keyTimes="0;1"\n repeatCount="indefinite" values="1;0" />\n </rect>\n </g>\n <g transform="rotate(60 50 50)">\n <rect fill="#7a7a7a" height="12" rx="3" ry="6" width="6" x="47" y="20">\n <animate attributeName="opacity" begin="-0.75s" dur="1s" keyTimes="0;1" repeatCount="indefinite"\n values="1;0" />\n </rect>\n </g>\n <g transform="rotate(90 50 50)">\n <rect fill="#7a7a7a" height="12" rx="3" ry="6" width="6" x="47" y="20">\n <animate attributeName="opacity" begin="-0.6666666666666666s" dur="1s" keyTimes="0;1"\n repeatCount="indefinite" values="1;0" />\n </rect>\n </g>\n <g transform="rotate(120 50 50)">\n <rect fill="#7a7a7a" height="12" rx="3" ry="6" width="6" x="47" y="20">\n <animate attributeName="opacity" begin="-0.5833333333333334s" dur="1s" keyTimes="0;1"\n repeatCount="indefinite" values="1;0" />\n </rect>\n </g>\n <g transform="rotate(150 50 50)">\n <rect fill="#7a7a7a" height="12" rx="3" ry="6" width="6" x="47" y="20">\n <animate attributeName="opacity" begin="-0.5s" dur="1s" keyTimes="0;1" repeatCount="indefinite"\n values="1;0" />\n </rect>\n </g>\n <g transform="rotate(180 50 50)">\n <rect fill="#7a7a7a" height="12" rx="3" ry="6" width="6" x="47" y="20">\n <animate attributeName="opacity" begin="-0.4166666666666667s" dur="1s" keyTimes="0;1"\n repeatCount="indefinite" values="1;0" />\n </rect>\n </g>\n <g transform="rotate(210 50 50)">\n <rect fill="#7a7a7a" height="12" rx="3" ry="6" width="6" x="47" y="20">\n <animate attributeName="opacity" begin="-0.3333333333333333s" dur="1s" keyTimes="0;1"\n repeatCount="indefinite" values="1;0" />\n </rect>\n </g>\n <g transform="rotate(240 50 50)">\n <rect fill="#7a7a7a" height="12" rx="3" ry="6" width="6" x="47" y="20">\n <animate attributeName="opacity" begin="-0.25s" dur="1s" keyTimes="0;1" repeatCount="indefinite"\n values="1;0" />\n </rect>\n </g>\n <g transform="rotate(270 50 50)">\n <rect fill="#7a7a7a" height="12" rx="3" ry="6" width="6" x="47" y="20">\n <animate attributeName="opacity" begin="-0.16666666666666666s" dur="1s" keyTimes="0;1"\n repeatCount="indefinite" values="1;0" />\n </rect>\n </g>\n <g transform="rotate(300 50 50)">\n <rect fill="#7a7a7a" height="12" rx="3" ry="6" width="6" x="47" y="20">\n <animate attributeName="opacity" begin="-0.08333333333333333s" dur="1s" keyTimes="0;1"\n repeatCount="indefinite" values="1;0" />\n </rect>\n </g>\n <g transform="rotate(330 50 50)">\n <rect fill="#7a7a7a" height="12" rx="3" ry="6" width="6" x="47" y="20">\n <animate attributeName="opacity" begin="0s" dur="1s" keyTimes="0;1" repeatCount="indefinite"\n values="1;0" />\n </rect>\n </g>\n </svg>\n\n <mat-icon *ngIf="!loaderDisplay && !isPlaying" aria-hidden="true" class="play-track">\n \x3c!-- Play icon (play_arrow) --\x3e\n <svg height="32" viewBox="0 0 24 24" width="32" xmlns="http://www.w3.org/2000/svg">\n <path d="M8 5v14l11-7z" />\n <path d="M0 0h24v24H0z" fill="none" />\n </svg>\n </mat-icon>\n <mat-icon *ngIf="!loaderDisplay && isPlaying" aria-hidden="true" class="pause-track">\n \x3c!-- Pause icon (pause) --\x3e\n <svg height="32" viewBox="0 0 24 24" width="32" xmlns="http://www.w3.org/2000/svg">\n <path d="M6 19h4V5H6v14zm8-14v14h4V5h-4z" />\n <path d="M0 0h24v24H0z" fill="none" />\n </svg>\n </mat-icon>\n </button>\n <button *ngIf="tracks.length > 1" (click)=\'nextSong();\' [disabled]="loaderDisplay" class="ngx-p-1 skip-next"\n mat-button>\n <mat-icon aria-hidden="true" class="next-track">\n \x3c!-- Skip next icon (skip_next) --\x3e\n <svg height="32" viewBox="0 0 24 24" width="32" xmlns="http://www.w3.org/2000/svg">\n <path d="M6 18l8.5-6L6 6v12zM16 6v12h2V6h-2z" />\n <path d="M0 0h24v24H0z" fill="none" />\n </svg>\n </mat-icon>\n </button>\n\n <div class="ngx-col">\n <div class="ngx-d-flex ngx-flex-fill ngx-justify-content-center">\n <div class="ngx-d-none ngx-d-sm-block ngx-py-3 ngx-px-1" style="font-size: 12px">\n <span *ngIf="duration !== 0.01">\n {{currentTime | secondsToMinutes}}\n </span>\n </div>\n <mat-slider [disabled]="disablePositionSlider" (change)="currTimePosChanged($event)" [min]="startOffset"\n class="ngx-d-none ngx-d-sm-block ngx-flex-fill ngx-p-1" max="{{duration-endOffset}}" style="width: 100%"\n value="{{currentTime}}"></mat-slider>\n <div class="ngx-py-3 ngx-px-1" style="font-size: 12px; text-align: right">\n <span *ngIf="duration !== 0.01">\n -{{duration-currentTime | secondsToMinutes }}\n </span>\n </div>\n </div>\n </div>\n <button (click)=\'toggleRepeat();\' *ngIf="displayRepeatControls" class="ngx-p-1 volume justify-content-center" mat-button>\n <mat-icon *ngIf="repeat === \'none\'" aria-hidden="true" class="volume-mute justify-content-center">\n \x3c!-- Repeat None --\x3e\n <svg height="24" width="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22">\n <g>\n <g>\n <path d="m0,0l24,0l0,24l-24,0l0,-24z" fill="none" />\n <path d="m8,20l0,1.932a0.5,0.5 0 0 1 -0.82,0.385l-4.12,-3.433a0.5,0.5 0 0 1 0.322,-0.884l14.618,0a2,2 0 0 0 2,-2l0,-8l2,0l0,8a4,4 0 0 1 -4,4l-10,0zm8,-16l0,-1.932a0.5,0.5 0 0 1 0.82,-0.385l4.12,3.433a0.5,0.5 0 0 1 -0.321,0.884l-14.619,0a2,2 0 0 0 -2,2l0,8l-2,0l0,-8a4,4 0 0 1 4,-4l10,0z" />\n <path d="M 3 0 L 22.4164 22.2706 L 21 24 L 1.5836 1.8128 L 3 0"></path>\n </g>\n \x3c!-- <line xmlns="http://www.w3.org/2000/svg" id="svg_4" y2="22.27056" x2="22.41638" y1="1.81276" x1="1.58362" stroke-width="2" fill="none"/> --\x3e\n </g>\n </svg>\n </mat-icon>\n <mat-icon *ngIf="repeat === \'all\'" aria-hidden="true" class="volume-mute">\n \x3c!-- Repeat All --\x3e\n <svg height="24" width="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22">\n <g>\n <path fill="none" d="M0 0h24v24H0z" />\n <path\n d="M8 20v1.932a.5.5 0 0 1-.82.385l-4.12-3.433A.5.5 0 0 1 3.382 18H18a2 2 0 0 0 2-2V8h2v8a4 4 0 0 1-4 4H8zm8-16V2.068a.5.5 0 0 1 .82-.385l4.12 3.433a.5.5 0 0 1-.321.884H6a2 2 0 0 0-2 2v8H2V8a4 4 0 0 1 4-4h10z" />\n </g>\n </svg>\n </mat-icon>\n <mat-icon *ngIf="repeat === \'one\'" aria-hidden="true" class="volume-up">\n \x3c!-- Repeat ONE --\x3e\n <svg height="24" width="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22">\n <g>\n <path fill="none" d="M0 0h24v24H0z" />\n <path\n d="M8 20v1.932a.5.5 0 0 1-.82.385l-4.12-3.433A.5.5 0 0 1 3.382 18H18a2 2 0 0 0 2-2V8h2v8a4 4 0 0 1-4 4H8zm8-16V2.068a.5.5 0 0 1 .82-.385l4.12 3.433a.5.5 0 0 1-.321.884H6a2 2 0 0 0-2 2v8H2V8a4 4 0 0 1 4-4h10zm-5 4h2v8h-2v-6H9V9l2-1z" />\n </g>\n </svg>\n </mat-icon>\n </button>\n <button (click)=\'toggleVolume();\' *ngIf="displayVolumeControls" class="ngx-p-1 volume" mat-button>\n <mat-icon *ngIf="volume === 0" aria-hidden="true" class="volume-mute">\n \x3c!-- Volume mute icon (volume_off) --\x3e\n <svg height="28" viewBox="0 0 24 24" width="28" xmlns="http://www.w3.org/2000/svg">\n <path\n d="M16.5 12c0-1.77-1.02-3.29-2.5-4.03v2.21l2.45 2.45c.03-.2.05-.41.05-.63zm2.5 0c0 .94-.2 1.82-.54 2.64l1.51 1.51C20.63 14.91 21 13.5 21 12c0-4.28-2.99-7.86-7-8.77v2.06c2.89.86 5 3.54 5 6.71zM4.27 3L3 4.27 7.73 9H3v6h4l5 5v-6.73l4.25 4.25c-.67.52-1.42.93-2.25 1.18v2.06c1.38-.31 2.63-.95 3.69-1.81L19.73 21 21 19.73l-9-9L4.27 3zM12 4L9.91 6.09 12 8.18V4z" />\n <path d="M0 0h24v24H0z" fill="none" />\n </svg>\n </mat-icon>\n <mat-icon *ngIf="volume > 0" aria-hidden="true" class="volume-up">\n \x3c!-- Volume up icon (volume_up) --\x3e\n <svg height="28" viewBox="0 0 24 24" width="28" xmlns="http://www.w3.org/2000/svg">\n <path\n d="M3 9v6h4l5 5V4L7 9H3zm13.5 3c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02zM14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77s-2.99-7.86-7-8.77z" />\n <path d="M0 0h24v24H0z" fill="none" />\n </svg>\n </mat-icon>\n </button>\n</mat-card>\n\n<mat-card *ngIf="displayTitle" class="mat-elevation-z1">\n <div style="text-align: center;">\n <div style="margin: 1px 2px; padding: 1em">\n <span *ngIf="!isPlaying">{{ tracks[currentIndex]?.title }}{{ displayArtist && tracks[currentIndex]?.artist ?\n \' | \' + tracks[currentIndex]?.artist : \'\'}}</span>\n <marquee *ngIf="isPlaying" behavior="scroll" direction="left">{{ tracks[currentIndex]?.title\n }}{{ displayArtist && tracks[currentIndex]?.artist ? \' | \' + tracks[currentIndex]?.artist : \'\'}}\n </marquee>\n </div>\n <div class="clear"></div>\n </div>\n</mat-card>\n\n<mat-accordion *ngIf="displayPlaylist && tracks.length > 1">\n <mat-expansion-panel [expanded]="expanded">\n <mat-expansion-panel-header>\n {{tableHeader}}\n </mat-expansion-panel-header>\n <table [dataSource]="dataSource" class="mat-elevation-z6" mat-table>\n <ng-container matColumnDef="title">\n <th *matHeaderCellDef mat-header-cell>{{titleHeader}}</th>\n <td (click)="selectTrack(element.index)" *matCellDef="let element" mat-cell>\n {{element.title}}\n </td>\n </ng-container>\n <ng-container matColumnDef="artist">\n <th *matHeaderCellDef mat-header-cell>{{artistHeader}}</th>\n <td (click)="selectTrack(element.index)" *matCellDef="let element" mat-cell>\n {{element?.artist ? element?.artist : \'\'}}\n </td>\n </ng-container>\n <ng-container matColumnDef="duration">\n <th *matHeaderCellDef mat-header-cell>{{durationHeader}}</th>\n <td (click)="selectTrack(element.index)" *matCellDef="let element" mat-cell>\n {{element?.duration ? (element?.duration | secondsToMinutes) : \'\'}}\n </td>\n </ng-container>\n <ng-container matColumnDef="status">\n <th *matHeaderCellDef mat-header-cell></th>\n <td *matCellDef="let element" mat-cell>\n <div *ngIf="tracks[currentIndex]?.title === element.title">\n \x3c!-- <mat-icon *ngIf="isPlaying" aria-hidden="true">\n <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6 19h4V5H6v14zm8-14v14h4V5h-4z"/><path d="M0 0h24v24H0z" fill="none"/></svg>\n </mat-icon> --\x3e\n <mat-icon *ngIf="isPlaying" aria-hidden="true" class="currently-playing">\n \x3c!-- Play icon (play_arrow) --\x3e\n <svg height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg">\n <path d="M0 0h24v24H0z" fill="none" />\n <path\n d="M12 3v9.28c-.47-.17-.97-.28-1.5-.28C8.01 12 6 14.01 6 16.5S8.01 21 10.5 21c2.31 0 4.2-1.75 4.45-4H15V6h4V3h-7z" />\n </svg>\n </mat-icon>\n </div>\n </td>\n </ng-container>\n <tr *matHeaderRowDef="displayedColumns" mat-header-row></tr>\n <tr *matRowDef="let row; columns: displayedColumns;" class="mat-select-content" mat-row></tr>\n </table>\n <mat-paginator [pageSizeOptions]="pageSizeOptions" showFirstLastButtons></mat-paginator>\n </mat-expansion-panel>\n</mat-accordion>',styles:["mat-card,mat-slider{padding:0!important}button:focus,button:hover{outline:0!important}svg{vertical-align:top}.mat-icon{height:32px!important;width:32px!important}mat-icon>.currently-playing{height:16px!important;width:16px!important}table{width:100%}.ngx-advanced-audio-player{min-width:325px}.material-icons{font-size:16px!important}.play-pause{border-right:1px solid rgba(0,0,0,.1)}.play-pause,.volume{border-left:1px solid rgba(0,0,0,.1)}.skip-next{border-right:1px solid rgba(0,0,0,.1)}*,:after,:before{box-sizing:inherit}.ngx-p-1{padding:.25rem!important}.ngx-col,.ngx-col-1,.ngx-col-2,.ngx-col-3,.ngx-col-4,.ngx-col-5,.ngx-col-6,.ngx-col-7,.ngx-col-8,.ngx-col-9,.ngx-col-10,.ngx-col-11,.ngx-col-12,.ngx-col-auto,.ngx-col-lg,.ngx-col-lg-1,.ngx-col-lg-2,.ngx-col-lg-3,.ngx-col-lg-4,.ngx-col-lg-5,.ngx-col-lg-6,.ngx-col-lg-7,.ngx-col-lg-8,.ngx-col-lg-9,.ngx-col-lg-10,.ngx-col-lg-11,.ngx-col-lg-12,.ngx-col-lg-auto,.ngx-col-md,.ngx-col-md-1,.ngx-col-md-2,.ngx-col-md-3,.ngx-col-md-4,.ngx-col-md-5,.ngx-col-md-6,.ngx-col-md-7,.ngx-col-md-8,.ngx-col-md-9,.ngx-col-md-10,.ngx-col-md-11,.ngx-col-md-12,.ngx-col-md-auto,.ngx-col-sm,.ngx-col-sm-1,.ngx-col-sm-2,.ngx-col-sm-3,.ngx-col-sm-4,.ngx-col-sm-5,.ngx-col-sm-6,.ngx-col-sm-7,.ngx-col-sm-8,.ngx-col-sm-9,.ngx-col-sm-10,.ngx-col-sm-11,.ngx-col-sm-12,.ngx-col-sm-auto,.ngx-col-xl,.ngx-col-xl-1,.ngx-col-xl-2,.ngx-col-xl-3,.ngx-col-xl-4,.ngx-col-xl-5,.ngx-col-xl-6,.ngx-col-xl-7,.ngx-col-xl-8,.ngx-col-xl-9,.ngx-col-xl-10,.ngx-col-xl-11,.ngx-col-xl-12,.ngx-col-xl-auto{padding-left:15px;padding-right:15px;position:relative;width:100%}.ngx-col{flex-basis:0;flex-grow:1;max-width:100%}.ngx-justify-content-center{justify-content:center!important}.ngx-flex-fill{flex:1 1 auto!important}.ngx-d-flex{display:flex!important}.ngx-pb-3,.ngx-py-3{padding-bottom:1rem!important}.ngx-pt-3,.ngx-py-3{padding-top:1rem!important}.ngx-pl-1,.ngx-px-1{padding-left:.25rem!important}.ngx-pr-1,.ngx-px-1{padding-right:.25rem!important}@media (max-width:768px){.ngx-sm-block{display:block!important}.ngx-d-none{display:none!important}}"]}]}],m.ctorParameters=function(){return[{type:e.ElementRef}]},m.propDecorators={playlist:[{type:e.Input}],matPaginator:[{type:e.ViewChild,args:[a.MatPaginator,{static:!1}]}],displayTitle:[{type:e.Input}],displayPlaylist:[{type:e.Input}],displayVolumeControls:[{type:e.Input}],displayRepeatControls:[{type:e.Input}],pageSizeOptions:[{type:e.Input}],expanded:[{type:e.Input}],autoPlay:[{type:e.Input}],disablePositionSlider:[{type:e.Input}],displayArtist:[{type:e.Input}],displayDuration:[{type:e.Input}],tableHeader:[{type:e.Input}],titleHeader:[{type:e.Input}],artistHeader:[{type:e.Input}],durationHeader:[{type:e.Input}],trackEnded:[{type:e.Output}],player:[{type:e.ViewChild,args:["audioPlayer",{static:!0}]}],startOffset:[{type:e.Input}],endOffset:[{type:e.Input}]};var h=function(){function t(){}return t.prototype.transform=function(t){var e=("0"+Math.floor(t/3600)).slice(-2),n=("0"+Math.floor(t%3600/60)).slice(-2),a=("0"+t%60).slice(-2);return"00"!==e?e+":"+n+":"+a:n+":"+a},t}();h.decorators=[{type:e.Pipe,args:[{name:"secondsToMinutes"}]}];var x=function(){};x.decorators=[{type:e.NgModule,args:[{declarations:[h,m],imports:[d.CommonModule,u.FormsModule,c.MatButtonModule,s.MatCardModule,n.MatTableModule,l.MatFormFieldModule,r.MatSliderModule,o.MatExpansionModule,a.MatPaginatorModule,p.MatIconModule],exports:[m]}]}];var y=function(){var t=this;this.toString=function(){return"Track (index: "+t.index+", title: "+t.title+")"}};t.AudioPlayerComponent=m,t.NgxAudioPlayerModule=x,t.Track=y,t.ɵa=h,Object.defineProperty(t,"__esModule",{value:!0})}));
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("@angular/material/table"),require("@angular/material/paginator"),require("rxjs"),require("@angular/material/slider"),require("@angular/material/form-field"),require("@angular/material/expansion"),require("@angular/material/card"),require("@angular/material/button"),require("@angular/common"),require("@angular/forms"),require("@angular/material/icon")):"function"==typeof define&&define.amd?define("ngx-audio-player",["exports","@angular/core","@angular/material/table","@angular/material/paginator","rxjs","@angular/material/slider","@angular/material/form-field","@angular/material/expansion","@angular/material/card","@angular/material/button","@angular/common","@angular/forms","@angular/material/icon"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self)["ngx-audio-player"]={},t.ng.core,t.ng.material.table,t.ng.material.paginator,t.rxjs,t.ng.material.slider,t.ng.material.formField,t.ng.material.expansion,t.ng.material.card,t.ng.material.button,t.ng.common,t.ng.forms,t.ng.material.icon)}(this,(function(t,e,n,a,i,r,l,o,s,c,d,u,p){"use strict";var g=function(){function t(){this.tracks=[],this.playlistSubject$=new i.BehaviorSubject(this.tracks),this.currentTrack=null,this.currentTrackSubject$=new i.BehaviorSubject(this.currentTrack),this.currentTime=null,this.currentTimeSubject$=new i.BehaviorSubject(this.currentTime)}return t.prototype.setPlaylist=function(t){this.tracks=t,this.playlistSubject$.next(this.tracks)},t.prototype.getPlaylist=function(){return this.playlistSubject$.asObservable()},t.prototype.setCurrentTrack=function(t){this.currentTrack=t,this.currentTrackSubject$.next(this.currentTrack)},t.prototype.getCurrentTrack=function(){return this.currentTrackSubject$.asObservable()},t.prototype.setCurrentTime=function(t){this.currentTime=t,this.currentTimeSubject$.next(this.currentTime)},t.prototype.getCurrentTime=function(){return this.currentTimeSubject$.asObservable()},t}();g.ɵprov=e.ɵɵdefineInjectable({factory:function(){return new g},token:g,providedIn:"root"}),g.decorators=[{type:e.Injectable,args:[{providedIn:"root"}]}];var m=function(){function t(t){this.repeat="all",this.dataSource=new n.MatTableDataSource,this.tracks=[],this.displayTitle=!0,this.displayPlaylist=!0,this.displayVolumeControls=!0,this.displayRepeatControls=!0,this.pageSizeOptions=[10,20,30],this.expanded=!0,this.autoPlay=!1,this.disablePositionSlider=!1,this.displayArtist=!1,this.displayDuration=!1,this.tableHeader="Playlist",this.titleHeader="Title",this.artistHeader="Artist",this.durationHeader="Duration",this.currentIndex=0,this.trackEnded=new i.Subject,this.iOS=/iPad|iPhone|iPod/.test(navigator.platform)||"MacIntel"===navigator.platform&&navigator.maxTouchPoints>1,this.loaderDisplay=!1,this.isPlaying=!1,this.currentTime=0,this.volume=.1,this.duration=.01,this.startOffsetValue=0,this.endOffset=0,"mat-advanced-audio-player"===t.nativeElement.tagName.toLowerCase()&&console.warn("'mat-advanced-audio-player' selector is deprecated; use 'ngx-audio-player' instead."),this.audioPlayerService=new g}return Object.defineProperty(t.prototype,"playlist",{set:function(t){this.audioPlayerService.setPlaylist(t)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"matPaginator",{set:function(t){this.paginator=t,this.setDataSourceAttributes()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"startOffset",{get:function(){return this.startOffsetValue},set:function(t){this.startOffsetValue=t,this.player.nativeElement.currentTime=t},enumerable:!1,configurable:!0}),t.prototype.currTimePosChanged=function(t){this.player.nativeElement.currentTime=t.value},t.prototype.bindPlayerEvent=function(){var t=this;this.player.nativeElement.addEventListener("playing",(function(){t.isPlaying=!0,t.duration=Math.floor(t.player.nativeElement.duration)})),this.player.nativeElement.addEventListener("pause",(function(){t.isPlaying=!1})),this.player.nativeElement.addEventListener("timeupdate",(function(){t.currentTime=Math.floor(t.player.nativeElement.currentTime)})),this.player.nativeElement.addEventListener("volume",(function(){t.volume=Math.floor(t.player.nativeElement.volume)})),this.iOS||this.player.nativeElement.addEventListener("loadstart",(function(){t.loaderDisplay=!0})),this.player.nativeElement.addEventListener("loadedmetadata",(function(){t.loaderDisplay=!1,t.duration=Math.floor(t.player.nativeElement.duration)})),this.player.nativeElement.addEventListener("ended",(function(){t.trackEnded.next("ended")}))},t.prototype.playBtnHandler=function(){this.loaderDisplay||(this.player.nativeElement.paused?(this.currentTime>=this.duration-this.endOffset?this.player.nativeElement.currentTime=this.startOffset:this.player.nativeElement.currentTime=this.currentTime,this.player.nativeElement.play()):(this.currentTime=this.player.nativeElement.currentTime,this.player.nativeElement.pause()))},t.prototype.play=function(t){var e=this;t&&(this.startOffset=t.startOffset||0,this.endOffset=t.endOffset||0),setTimeout((function(){e.player.nativeElement.play()}),50)},t.prototype.toggleVolume=function(){0===this.volume?this.setVolume(1):this.setVolume(0)},t.prototype.toggleRepeat=function(){"none"===this.repeat?this.repeat="all":"all"===this.repeat?this.tracks.length>1?this.repeat="one":this.repeat="none":"one"===this.repeat&&this.tracks.length>1&&(this.repeat="none")},t.prototype.setVolume=function(t){this.volume=t,this.player.nativeElement.volume=this.volume},t.prototype.ngOnInit=function(){var t=this;this.bindPlayerEvent(),this.player.nativeElement.addEventListener("ended",(function(){t.checkIfSongHasStartedSinceAtleastTwoSeconds()&&("all"===t.repeat?t.nextSong():"one"===t.repeat?t.play():t.repeat)})),this.player.nativeElement.addEventListener("timeupdate",(function(){t.audioPlayerService.setCurrentTime(t.player.nativeElement.currentTime)})),this.audioPlayerService.getPlaylist().subscribe((function(e){null!==e&&e!==[]&&(t.tracks=e,t.initialize())}))},t.prototype.ngOnChanges=function(t){(t.hasOwnProperty("displayArtist")||t.hasOwnProperty("displayDuration"))&&this.buildDisplayedColumns()},t.prototype.buildDisplayedColumns=function(){this.displayedColumns=["title"],this.displayArtist&&this.displayedColumns.push("artist"),this.displayDuration&&this.displayedColumns.push("duration"),this.displayedColumns.push("status")},t.prototype.initialize=function(){this.buildDisplayedColumns(),this.setDataSourceAttributes(),this.player.nativeElement.currentTime=this.startOffset,this.updateCurrentTrack(),this.autoPlay&&this.play()},t.prototype.setDataSourceAttributes=function(){var t=1;this.tracks&&(this.tracks.forEach((function(e){e.index=t++})),this.dataSource=new n.MatTableDataSource(this.tracks),this.dataSource.paginator=this.paginator)},t.prototype.nextSong=function(){!0!==this.displayPlaylist||(this.currentIndex+1)%this.paginator.pageSize!=0&&this.currentIndex+1!==this.paginator.length||(this.paginator.hasNextPage()?this.paginator.nextPage():this.paginator.hasNextPage()||this.paginator.firstPage()),this.currentTime=0,this.duration=.01,this.currentIndex+1>=this.tracks.length?this.currentIndex=0:this.currentIndex++,this.updateCurrentTrack(),this.play()},t.prototype.previousSong=function(){this.currentTime=0,this.duration=.01,this.checkIfSongHasStartedSinceAtleastTwoSeconds()?this.resetSong():(!0!==this.displayPlaylist||this.currentIndex%this.paginator.pageSize!=0&&0!==this.currentIndex||(this.paginator.hasPreviousPage()?this.paginator.previousPage():this.paginator.hasPreviousPage()||this.paginator.lastPage()),this.currentIndex-1<0?this.currentIndex=this.tracks.length-1:this.currentIndex--),this.updateCurrentTrack(),this.play()},t.prototype.resetSong=function(){this.player.nativeElement.src=this.tracks[this.currentIndex].link},t.prototype.selectTrack=function(t){this.currentIndex=t-1,this.updateCurrentTrack(),this.play()},t.prototype.checkIfSongHasStartedSinceAtleastTwoSeconds=function(){return this.player.nativeElement.currentTime>2},t.prototype.updateCurrentTrack=function(){this.audioPlayerService.setCurrentTrack(this.tracks[this.currentIndex])},t}();m.decorators=[{type:e.Component,args:[{selector:"mat-advanced-audio-player,ngx-audio-player",template:'<mat-card class="ngx-d-flex ngx-justify-content-center ngx-audio-player z-depth-1 mat-elevation-z2"\n style="margin: 0px;">\n\n <audio #audioPlayer [src]="tracks[currentIndex]?.link"></audio>\n\n <button *ngIf="tracks.length > 1" (click)=\'previousSong();\' [disabled]="loaderDisplay" class="ngx-p-1" mat-button>\n <mat-icon aria-hidden="true">\n \x3c!-- Skip previous icon (skip_previous) --\x3e\n <svg height="32" viewBox="0 0 24 24" width="32" xmlns="http://www.w3.org/2000/svg">\n <path d="M6 6h2v12H6zm3.5 6l8.5 6V6z" />\n <path d="M0 0h32v32H0z" fill="none" />\n </svg>\n </mat-icon>\n </button>\n <button (click)=\'playBtnHandler();\' [disabled]="loaderDisplay" class="ngx-p-1 play-pause" mat-button>\n\n <svg *ngIf="loaderDisplay" height="34px" preserveAspectRatio="xMidYMid"\n style="margin: auto; display: block; shape-rendering: auto;" viewBox="0 0 100 100" width="34px"\n xmlns="http://www.w3.org/2000/svg">\n <g transform="rotate(0 50 50)">\n <rect fill="#7a7a7a" height="12" rx="3" ry="6" width="6" x="47" y="20">\n <animate attributeName="opacity" begin="-0.9166666666666666s" dur="1s" keyTimes="0;1"\n repeatCount="indefinite" values="1;0" />\n </rect>\n </g>\n <g transform="rotate(30 50 50)">\n <rect fill="#7a7a7a" height="12" rx="3" ry="6" width="6" x="47" y="20">\n <animate attributeName="opacity" begin="-0.8333333333333334s" dur="1s" keyTimes="0;1"\n repeatCount="indefinite" values="1;0" />\n </rect>\n </g>\n <g transform="rotate(60 50 50)">\n <rect fill="#7a7a7a" height="12" rx="3" ry="6" width="6" x="47" y="20">\n <animate attributeName="opacity" begin="-0.75s" dur="1s" keyTimes="0;1" repeatCount="indefinite"\n values="1;0" />\n </rect>\n </g>\n <g transform="rotate(90 50 50)">\n <rect fill="#7a7a7a" height="12" rx="3" ry="6" width="6" x="47" y="20">\n <animate attributeName="opacity" begin="-0.6666666666666666s" dur="1s" keyTimes="0;1"\n repeatCount="indefinite" values="1;0" />\n </rect>\n </g>\n <g transform="rotate(120 50 50)">\n <rect fill="#7a7a7a" height="12" rx="3" ry="6" width="6" x="47" y="20">\n <animate attributeName="opacity" begin="-0.5833333333333334s" dur="1s" keyTimes="0;1"\n repeatCount="indefinite" values="1;0" />\n </rect>\n </g>\n <g transform="rotate(150 50 50)">\n <rect fill="#7a7a7a" height="12" rx="3" ry="6" width="6" x="47" y="20">\n <animate attributeName="opacity" begin="-0.5s" dur="1s" keyTimes="0;1" repeatCount="indefinite"\n values="1;0" />\n </rect>\n </g>\n <g transform="rotate(180 50 50)">\n <rect fill="#7a7a7a" height="12" rx="3" ry="6" width="6" x="47" y="20">\n <animate attributeName="opacity" begin="-0.4166666666666667s" dur="1s" keyTimes="0;1"\n repeatCount="indefinite" values="1;0" />\n </rect>\n </g>\n <g transform="rotate(210 50 50)">\n <rect fill="#7a7a7a" height="12" rx="3" ry="6" width="6" x="47" y="20">\n <animate attributeName="opacity" begin="-0.3333333333333333s" dur="1s" keyTimes="0;1"\n repeatCount="indefinite" values="1;0" />\n </rect>\n </g>\n <g transform="rotate(240 50 50)">\n <rect fill="#7a7a7a" height="12" rx="3" ry="6" width="6" x="47" y="20">\n <animate attributeName="opacity" begin="-0.25s" dur="1s" keyTimes="0;1" repeatCount="indefinite"\n values="1;0" />\n </rect>\n </g>\n <g transform="rotate(270 50 50)">\n <rect fill="#7a7a7a" height="12" rx="3" ry="6" width="6" x="47" y="20">\n <animate attributeName="opacity" begin="-0.16666666666666666s" dur="1s" keyTimes="0;1"\n repeatCount="indefinite" values="1;0" />\n </rect>\n </g>\n <g transform="rotate(300 50 50)">\n <rect fill="#7a7a7a" height="12" rx="3" ry="6" width="6" x="47" y="20">\n <animate attributeName="opacity" begin="-0.08333333333333333s" dur="1s" keyTimes="0;1"\n repeatCount="indefinite" values="1;0" />\n </rect>\n </g>\n <g transform="rotate(330 50 50)">\n <rect fill="#7a7a7a" height="12" rx="3" ry="6" width="6" x="47" y="20">\n <animate attributeName="opacity" begin="0s" dur="1s" keyTimes="0;1" repeatCount="indefinite"\n values="1;0" />\n </rect>\n </g>\n </svg>\n\n <mat-icon *ngIf="!loaderDisplay && !isPlaying" aria-hidden="true" class="play-track">\n \x3c!-- Play icon (play_arrow) --\x3e\n <svg height="32" viewBox="0 0 24 24" width="32" xmlns="http://www.w3.org/2000/svg">\n <path d="M8 5v14l11-7z" />\n <path d="M0 0h24v24H0z" fill="none" />\n </svg>\n </mat-icon>\n <mat-icon *ngIf="!loaderDisplay && isPlaying" aria-hidden="true" class="pause-track">\n \x3c!-- Pause icon (pause) --\x3e\n <svg height="32" viewBox="0 0 24 24" width="32" xmlns="http://www.w3.org/2000/svg">\n <path d="M6 19h4V5H6v14zm8-14v14h4V5h-4z" />\n <path d="M0 0h24v24H0z" fill="none" />\n </svg>\n </mat-icon>\n </button>\n <button *ngIf="tracks.length > 1" (click)=\'nextSong();\' [disabled]="loaderDisplay" class="ngx-p-1 skip-next"\n mat-button>\n <mat-icon aria-hidden="true" class="next-track">\n \x3c!-- Skip next icon (skip_next) --\x3e\n <svg height="32" viewBox="0 0 24 24" width="32" xmlns="http://www.w3.org/2000/svg">\n <path d="M6 18l8.5-6L6 6v12zM16 6v12h2V6h-2z" />\n <path d="M0 0h24v24H0z" fill="none" />\n </svg>\n </mat-icon>\n </button>\n\n <div class="ngx-col">\n <div class="ngx-d-flex ngx-flex-fill ngx-justify-content-center">\n <div class="ngx-d-none ngx-d-sm-block ngx-py-3 ngx-px-1" style="font-size: 12px">\n <span *ngIf="duration !== 0.01">\n {{currentTime | secondsToMinutes}}\n </span>\n </div>\n <mat-slider [disabled]="disablePositionSlider" (change)="currTimePosChanged($event)" [min]="startOffset"\n class="ngx-d-none ngx-d-sm-block ngx-flex-fill ngx-p-1" max="{{duration-endOffset}}" style="width: 100%"\n value="{{currentTime}}"></mat-slider>\n\n <div class="ngx-py-3 ngx-px-1" style="font-size: 12px; text-align: right">\n <span *ngIf="duration !== 0.01">\n -{{duration-currentTime | secondsToMinutes }}\n </span>\n </div>\n </div>\n </div>\n <button (click)=\'toggleRepeat();\' *ngIf="displayRepeatControls" class="ngx-p-1 volume justify-content-center"\n mat-button>\n <mat-icon *ngIf="repeat === \'none\'" aria-hidden="true" class="volume-mute justify-content-center">\n \x3c!-- Repeat None --\x3e\n <svg height="24" width="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22">\n <g>\n <g>\n <path d="m0,0l24,0l0,24l-24,0l0,-24z" fill="none" />\n <path\n d="m8,20l0,1.932a0.5,0.5 0 0 1 -0.82,0.385l-4.12,-3.433a0.5,0.5 0 0 1 0.322,-0.884l14.618,0a2,2 0 0 0 2,-2l0,-8l2,0l0,8a4,4 0 0 1 -4,4l-10,0zm8,-16l0,-1.932a0.5,0.5 0 0 1 0.82,-0.385l4.12,3.433a0.5,0.5 0 0 1 -0.321,0.884l-14.619,0a2,2 0 0 0 -2,2l0,8l-2,0l0,-8a4,4 0 0 1 4,-4l10,0z" />\n <path d="M 3 0 L 22.4164 22.2706 L 21 24 L 1.5836 1.8128 L 3 0"></path>\n </g>\n \x3c!-- <line xmlns="http://www.w3.org/2000/svg" id="svg_4" y2="22.27056" x2="22.41638" y1="1.81276" x1="1.58362" stroke-width="2" fill="none"/> --\x3e\n </g>\n </svg>\n </mat-icon>\n <mat-icon *ngIf="repeat === \'all\'" aria-hidden="true" class="volume-mute">\n \x3c!-- Repeat All --\x3e\n <svg height="24" width="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22">\n <g>\n <path fill="none" d="M0 0h24v24H0z" />\n <path\n d="M8 20v1.932a.5.5 0 0 1-.82.385l-4.12-3.433A.5.5 0 0 1 3.382 18H18a2 2 0 0 0 2-2V8h2v8a4 4 0 0 1-4 4H8zm8-16V2.068a.5.5 0 0 1 .82-.385l4.12 3.433a.5.5 0 0 1-.321.884H6a2 2 0 0 0-2 2v8H2V8a4 4 0 0 1 4-4h10z" />\n </g>\n </svg>\n </mat-icon>\n <mat-icon *ngIf="repeat === \'one\'" aria-hidden="true" class="volume-up">\n \x3c!-- Repeat ONE --\x3e\n <svg height="24" width="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22">\n <g>\n <path fill="none" d="M0 0h24v24H0z" />\n <path\n d="M8 20v1.932a.5.5 0 0 1-.82.385l-4.12-3.433A.5.5 0 0 1 3.382 18H18a2 2 0 0 0 2-2V8h2v8a4 4 0 0 1-4 4H8zm8-16V2.068a.5.5 0 0 1 .82-.385l4.12 3.433a.5.5 0 0 1-.321.884H6a2 2 0 0 0-2 2v8H2V8a4 4 0 0 1 4-4h10zm-5 4h2v8h-2v-6H9V9l2-1z" />\n </g>\n </svg>\n </mat-icon>\n </button>\n <button (click)=\'toggleVolume();\' *ngIf="displayVolumeControls" class="ngx-p-1 volume" mat-button>\n <mat-icon *ngIf="volume === 0" aria-hidden="true" class="volume-mute">\n \x3c!-- Volume mute icon (volume_off) --\x3e\n <svg height="28" viewBox="0 0 24 24" width="28" xmlns="http://www.w3.org/2000/svg">\n <path\n d="M16.5 12c0-1.77-1.02-3.29-2.5-4.03v2.21l2.45 2.45c.03-.2.05-.41.05-.63zm2.5 0c0 .94-.2 1.82-.54 2.64l1.51 1.51C20.63 14.91 21 13.5 21 12c0-4.28-2.99-7.86-7-8.77v2.06c2.89.86 5 3.54 5 6.71zM4.27 3L3 4.27 7.73 9H3v6h4l5 5v-6.73l4.25 4.25c-.67.52-1.42.93-2.25 1.18v2.06c1.38-.31 2.63-.95 3.69-1.81L19.73 21 21 19.73l-9-9L4.27 3zM12 4L9.91 6.09 12 8.18V4z" />\n <path d="M0 0h24v24H0z" fill="none" />\n </svg>\n </mat-icon>\n <mat-icon *ngIf="volume > 0" aria-hidden="true" class="volume-up">\n \x3c!-- Volume up icon (volume_up) --\x3e\n <svg height="28" viewBox="0 0 24 24" width="28" xmlns="http://www.w3.org/2000/svg">\n <path\n d="M3 9v6h4l5 5V4L7 9H3zm13.5 3c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02zM14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77s-2.99-7.86-7-8.77z" />\n <path d="M0 0h24v24H0z" fill="none" />\n </svg>\n </mat-icon>\n </button>\n</mat-card>\n\n<mat-card *ngIf="displayTitle" class="mat-elevation-z1 ngx-audio-player">\n <div style="text-align: center;">\n <div style="margin: 1px 2px; padding: 1em">\n <span *ngIf="!isPlaying">{{ tracks[currentIndex]?.title }}{{ displayArtist && tracks[currentIndex]?.artist ?\n \' | \' + tracks[currentIndex]?.artist : \'\'}}</span>\n <marquee *ngIf="isPlaying" behavior="scroll" direction="left">{{ tracks[currentIndex]?.title\n }}{{ displayArtist && tracks[currentIndex]?.artist ? \' | \' + tracks[currentIndex]?.artist : \'\'}}\n </marquee>\n </div>\n <div class="clear"></div>\n </div>\n</mat-card>\n\n<mat-accordion class="ngx-audio-player" *ngIf="displayPlaylist && tracks.length > 1">\n <mat-expansion-panel [expanded]="expanded">\n <mat-expansion-panel-header>\n {{tableHeader}}\n </mat-expansion-panel-header>\n <table [dataSource]="dataSource" class="mat-elevation-z6" mat-table>\n <ng-container matColumnDef="title">\n <th *matHeaderCellDef mat-header-cell>{{titleHeader}}</th>\n <td (click)="selectTrack(element.index)" *matCellDef="let element" mat-cell>\n {{element.title}}\n </td>\n </ng-container>\n <ng-container matColumnDef="artist">\n <th *matHeaderCellDef mat-header-cell>{{artistHeader}}</th>\n <td (click)="selectTrack(element.index)" *matCellDef="let element" mat-cell>\n {{element?.artist ? element?.artist : \'\'}}\n </td>\n </ng-container>\n <ng-container matColumnDef="duration">\n <th *matHeaderCellDef mat-header-cell>{{durationHeader}}</th>\n <td (click)="selectTrack(element.index)" *matCellDef="let element" mat-cell>\n {{element?.duration ? (element?.duration | secondsToMinutes) : \'\'}}\n </td>\n </ng-container>\n <ng-container matColumnDef="status">\n <th *matHeaderCellDef mat-header-cell></th>\n <td *matCellDef="let element" mat-cell>\n <div *ngIf="tracks[currentIndex]?.title === element.title">\n \x3c!-- <mat-icon *ngIf="isPlaying" aria-hidden="true">\n <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6 19h4V5H6v14zm8-14v14h4V5h-4z"/><path d="M0 0h24v24H0z" fill="none"/></svg>\n </mat-icon> --\x3e\n <mat-icon *ngIf="isPlaying" aria-hidden="true" class="currently-playing">\n \x3c!-- Play icon (play_arrow) --\x3e\n <svg height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg">\n <path d="M0 0h24v24H0z" fill="none" />\n <path\n d="M12 3v9.28c-.47-.17-.97-.28-1.5-.28C8.01 12 6 14.01 6 16.5S8.01 21 10.5 21c2.31 0 4.2-1.75 4.45-4H15V6h4V3h-7z" />\n </svg>\n </mat-icon>\n </div>\n </td>\n </ng-container>\n <tr *matHeaderRowDef="displayedColumns" mat-header-row></tr>\n <tr *matRowDef="let row; columns: displayedColumns;" class="mat-select-content" mat-row></tr>\n </table>\n <mat-paginator [pageSizeOptions]="pageSizeOptions" showFirstLastButtons></mat-paginator>\n </mat-expansion-panel>\n</mat-accordion>',styles:["mat-card,mat-slider{padding:0!important}button:focus,button:hover{outline:0!important}svg{vertical-align:top}.mat-icon{height:32px!important;width:32px!important}mat-icon>.currently-playing{height:16px!important;width:16px!important}table{width:100%}.mat-expansion-panel,::ng-deep .ngx-audio-player{min-width:375px}::ng-deep .mat-paginator-container{justify-content:space-between!important}.material-icons{font-size:16px!important}.play-pause{border-right:1px solid rgba(0,0,0,.1)}.play-pause,.volume{border-left:1px solid rgba(0,0,0,.1)}.skip-next{border-right:1px solid rgba(0,0,0,.1)}*,:after,:before{box-sizing:inherit}.ngx-p-1{padding:.25rem!important}.ngx-col,.ngx-col-1,.ngx-col-2,.ngx-col-3,.ngx-col-4,.ngx-col-5,.ngx-col-6,.ngx-col-7,.ngx-col-8,.ngx-col-9,.ngx-col-10,.ngx-col-11,.ngx-col-12,.ngx-col-auto,.ngx-col-lg,.ngx-col-lg-1,.ngx-col-lg-2,.ngx-col-lg-3,.ngx-col-lg-4,.ngx-col-lg-5,.ngx-col-lg-6,.ngx-col-lg-7,.ngx-col-lg-8,.ngx-col-lg-9,.ngx-col-lg-10,.ngx-col-lg-11,.ngx-col-lg-12,.ngx-col-lg-auto,.ngx-col-md,.ngx-col-md-1,.ngx-col-md-2,.ngx-col-md-3,.ngx-col-md-4,.ngx-col-md-5,.ngx-col-md-6,.ngx-col-md-7,.ngx-col-md-8,.ngx-col-md-9,.ngx-col-md-10,.ngx-col-md-11,.ngx-col-md-12,.ngx-col-md-auto,.ngx-col-sm,.ngx-col-sm-1,.ngx-col-sm-2,.ngx-col-sm-3,.ngx-col-sm-4,.ngx-col-sm-5,.ngx-col-sm-6,.ngx-col-sm-7,.ngx-col-sm-8,.ngx-col-sm-9,.ngx-col-sm-10,.ngx-col-sm-11,.ngx-col-sm-12,.ngx-col-sm-auto,.ngx-col-xl,.ngx-col-xl-1,.ngx-col-xl-2,.ngx-col-xl-3,.ngx-col-xl-4,.ngx-col-xl-5,.ngx-col-xl-6,.ngx-col-xl-7,.ngx-col-xl-8,.ngx-col-xl-9,.ngx-col-xl-10,.ngx-col-xl-11,.ngx-col-xl-12,.ngx-col-xl-auto{padding-left:15px;padding-right:15px;position:relative;width:100%}.ngx-col{flex-basis:0;flex-grow:1;max-width:100%}.ngx-justify-content-center{justify-content:center!important}.ngx-flex-fill{flex:1 1 auto!important}.ngx-d-flex{display:flex!important}.ngx-pb-3,.ngx-py-3{padding-bottom:1rem!important}.ngx-pt-3,.ngx-py-3{padding-top:1rem!important}.ngx-pl-1,.ngx-px-1{padding-left:.25rem!important}.ngx-pr-1,.ngx-px-1{padding-right:.25rem!important}@media (max-width:768px){.ngx-sm-block{display:block!important}.ngx-d-none{display:none!important}}"]}]}],m.ctorParameters=function(){return[{type:e.ElementRef}]},m.propDecorators={playlist:[{type:e.Input}],matPaginator:[{type:e.ViewChild,args:[a.MatPaginator,{static:!1}]}],displayTitle:[{type:e.Input}],displayPlaylist:[{type:e.Input}],displayVolumeControls:[{type:e.Input}],displayRepeatControls:[{type:e.Input}],pageSizeOptions:[{type:e.Input}],expanded:[{type:e.Input}],autoPlay:[{type:e.Input}],disablePositionSlider:[{type:e.Input}],displayArtist:[{type:e.Input}],displayDuration:[{type:e.Input}],tableHeader:[{type:e.Input}],titleHeader:[{type:e.Input}],artistHeader:[{type:e.Input}],durationHeader:[{type:e.Input}],trackEnded:[{type:e.Output}],player:[{type:e.ViewChild,args:["audioPlayer",{static:!0}]}],startOffset:[{type:e.Input}],endOffset:[{type:e.Input}]};var h=function(){function t(){}return t.prototype.transform=function(t){var e=("0"+Math.floor(t/3600)).slice(-2),n=("0"+Math.floor(t%3600/60)).slice(-2),a=("0"+t%60).slice(-2);return"00"!==e?e+":"+n+":"+a:n+":"+a},t}();h.decorators=[{type:e.Pipe,args:[{name:"secondsToMinutes"}]}];var x=function(){};x.decorators=[{type:e.NgModule,args:[{declarations:[h,m],imports:[d.CommonModule,u.FormsModule,c.MatButtonModule,s.MatCardModule,n.MatTableModule,l.MatFormFieldModule,r.MatSliderModule,o.MatExpansionModule,a.MatPaginatorModule,p.MatIconModule],exports:[m]}]}];var y=function(){var t=this;this.toString=function(){return"Track (index: "+t.index+", title: "+t.title+")"}};t.AudioPlayerComponent=m,t.NgxAudioPlayerModule=x,t.Track=y,t.ɵa=h,Object.defineProperty(t,"__esModule",{value:!0})}));
//# sourceMappingURL=ngx-audio-player.umd.min.js.map

@@ -62,2 +62,3 @@ import { Component, Input, ViewChild, Output, ElementRef } from '@angular/core';

this.isPlaying = true;
this.duration = Math.floor(this.player.nativeElement.duration);
});

@@ -276,4 +277,4 @@ this.player.nativeElement.addEventListener('pause', () => {

selector: 'mat-advanced-audio-player,ngx-audio-player',
template: "<mat-card class=\"ngx-d-flex ngx-justify-content-center ngx-audio-player z-depth-1 mat-elevation-z2\"\n style=\"margin: 0px;\">\n\n <audio #audioPlayer [src]=\"tracks[currentIndex]?.link\"></audio>\n\n <button *ngIf=\"tracks.length > 1\" (click)='previousSong();' [disabled]=\"loaderDisplay\" class=\"ngx-p-1\" mat-button>\n <mat-icon aria-hidden=\"true\">\n <!-- Skip previous icon (skip_previous) -->\n <svg height=\"32\" viewBox=\"0 0 24 24\" width=\"32\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6 6h2v12H6zm3.5 6l8.5 6V6z\" />\n <path d=\"M0 0h32v32H0z\" fill=\"none\" />\n </svg>\n </mat-icon>\n </button>\n <button (click)='playBtnHandler();' [disabled]=\"loaderDisplay\" class=\"ngx-p-1 play-pause\" mat-button>\n\n <svg *ngIf=\"loaderDisplay\" height=\"34px\" preserveAspectRatio=\"xMidYMid\"\n style=\"margin: auto; display: block; shape-rendering: auto;\" viewBox=\"0 0 100 100\" width=\"34px\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <g transform=\"rotate(0 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.9166666666666666s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(30 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.8333333333333334s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(60 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.75s\" dur=\"1s\" keyTimes=\"0;1\" repeatCount=\"indefinite\"\n values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(90 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.6666666666666666s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(120 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.5833333333333334s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(150 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.5s\" dur=\"1s\" keyTimes=\"0;1\" repeatCount=\"indefinite\"\n values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(180 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.4166666666666667s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(210 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.3333333333333333s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(240 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.25s\" dur=\"1s\" keyTimes=\"0;1\" repeatCount=\"indefinite\"\n values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(270 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.16666666666666666s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(300 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.08333333333333333s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(330 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"0s\" dur=\"1s\" keyTimes=\"0;1\" repeatCount=\"indefinite\"\n values=\"1;0\" />\n </rect>\n </g>\n </svg>\n\n <mat-icon *ngIf=\"!loaderDisplay && !isPlaying\" aria-hidden=\"true\" class=\"play-track\">\n <!-- Play icon (play_arrow) -->\n <svg height=\"32\" viewBox=\"0 0 24 24\" width=\"32\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M8 5v14l11-7z\" />\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n </svg>\n </mat-icon>\n <mat-icon *ngIf=\"!loaderDisplay && isPlaying\" aria-hidden=\"true\" class=\"pause-track\">\n <!-- Pause icon (pause) -->\n <svg height=\"32\" viewBox=\"0 0 24 24\" width=\"32\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6 19h4V5H6v14zm8-14v14h4V5h-4z\" />\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n </svg>\n </mat-icon>\n </button>\n <button *ngIf=\"tracks.length > 1\" (click)='nextSong();' [disabled]=\"loaderDisplay\" class=\"ngx-p-1 skip-next\"\n mat-button>\n <mat-icon aria-hidden=\"true\" class=\"next-track\">\n <!-- Skip next icon (skip_next) -->\n <svg height=\"32\" viewBox=\"0 0 24 24\" width=\"32\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6 18l8.5-6L6 6v12zM16 6v12h2V6h-2z\" />\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n </svg>\n </mat-icon>\n </button>\n\n <div class=\"ngx-col\">\n <div class=\"ngx-d-flex ngx-flex-fill ngx-justify-content-center\">\n <div class=\"ngx-d-none ngx-d-sm-block ngx-py-3 ngx-px-1\" style=\"font-size: 12px\">\n <span *ngIf=\"duration !== 0.01\">\n {{currentTime | secondsToMinutes}}\n </span>\n </div>\n <mat-slider [disabled]=\"disablePositionSlider\" (change)=\"currTimePosChanged($event)\" [min]=\"startOffset\"\n class=\"ngx-d-none ngx-d-sm-block ngx-flex-fill ngx-p-1\" max=\"{{duration-endOffset}}\" style=\"width: 100%\"\n value=\"{{currentTime}}\"></mat-slider>\n <div class=\"ngx-py-3 ngx-px-1\" style=\"font-size: 12px; text-align: right\">\n <span *ngIf=\"duration !== 0.01\">\n -{{duration-currentTime | secondsToMinutes }}\n </span>\n </div>\n </div>\n </div>\n <button (click)='toggleRepeat();' *ngIf=\"displayRepeatControls\" class=\"ngx-p-1 volume justify-content-center\" mat-button>\n <mat-icon *ngIf=\"repeat === 'none'\" aria-hidden=\"true\" class=\"volume-mute justify-content-center\">\n <!-- Repeat None -->\n <svg height=\"24\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 22 22\">\n <g>\n <g>\n <path d=\"m0,0l24,0l0,24l-24,0l0,-24z\" fill=\"none\" />\n <path d=\"m8,20l0,1.932a0.5,0.5 0 0 1 -0.82,0.385l-4.12,-3.433a0.5,0.5 0 0 1 0.322,-0.884l14.618,0a2,2 0 0 0 2,-2l0,-8l2,0l0,8a4,4 0 0 1 -4,4l-10,0zm8,-16l0,-1.932a0.5,0.5 0 0 1 0.82,-0.385l4.12,3.433a0.5,0.5 0 0 1 -0.321,0.884l-14.619,0a2,2 0 0 0 -2,2l0,8l-2,0l0,-8a4,4 0 0 1 4,-4l10,0z\" />\n <path d=\"M 3 0 L 22.4164 22.2706 L 21 24 L 1.5836 1.8128 L 3 0\"></path>\n </g>\n <!-- <line xmlns=\"http://www.w3.org/2000/svg\" id=\"svg_4\" y2=\"22.27056\" x2=\"22.41638\" y1=\"1.81276\" x1=\"1.58362\" stroke-width=\"2\" fill=\"none\"/> -->\n </g>\n </svg>\n </mat-icon>\n <mat-icon *ngIf=\"repeat === 'all'\" aria-hidden=\"true\" class=\"volume-mute\">\n <!-- Repeat All -->\n <svg height=\"24\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 22 22\">\n <g>\n <path fill=\"none\" d=\"M0 0h24v24H0z\" />\n <path\n d=\"M8 20v1.932a.5.5 0 0 1-.82.385l-4.12-3.433A.5.5 0 0 1 3.382 18H18a2 2 0 0 0 2-2V8h2v8a4 4 0 0 1-4 4H8zm8-16V2.068a.5.5 0 0 1 .82-.385l4.12 3.433a.5.5 0 0 1-.321.884H6a2 2 0 0 0-2 2v8H2V8a4 4 0 0 1 4-4h10z\" />\n </g>\n </svg>\n </mat-icon>\n <mat-icon *ngIf=\"repeat === 'one'\" aria-hidden=\"true\" class=\"volume-up\">\n <!-- Repeat ONE -->\n <svg height=\"24\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 22 22\">\n <g>\n <path fill=\"none\" d=\"M0 0h24v24H0z\" />\n <path\n d=\"M8 20v1.932a.5.5 0 0 1-.82.385l-4.12-3.433A.5.5 0 0 1 3.382 18H18a2 2 0 0 0 2-2V8h2v8a4 4 0 0 1-4 4H8zm8-16V2.068a.5.5 0 0 1 .82-.385l4.12 3.433a.5.5 0 0 1-.321.884H6a2 2 0 0 0-2 2v8H2V8a4 4 0 0 1 4-4h10zm-5 4h2v8h-2v-6H9V9l2-1z\" />\n </g>\n </svg>\n </mat-icon>\n </button>\n <button (click)='toggleVolume();' *ngIf=\"displayVolumeControls\" class=\"ngx-p-1 volume\" mat-button>\n <mat-icon *ngIf=\"volume === 0\" aria-hidden=\"true\" class=\"volume-mute\">\n <!-- Volume mute icon (volume_off) -->\n <svg height=\"28\" viewBox=\"0 0 24 24\" width=\"28\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M16.5 12c0-1.77-1.02-3.29-2.5-4.03v2.21l2.45 2.45c.03-.2.05-.41.05-.63zm2.5 0c0 .94-.2 1.82-.54 2.64l1.51 1.51C20.63 14.91 21 13.5 21 12c0-4.28-2.99-7.86-7-8.77v2.06c2.89.86 5 3.54 5 6.71zM4.27 3L3 4.27 7.73 9H3v6h4l5 5v-6.73l4.25 4.25c-.67.52-1.42.93-2.25 1.18v2.06c1.38-.31 2.63-.95 3.69-1.81L19.73 21 21 19.73l-9-9L4.27 3zM12 4L9.91 6.09 12 8.18V4z\" />\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n </svg>\n </mat-icon>\n <mat-icon *ngIf=\"volume > 0\" aria-hidden=\"true\" class=\"volume-up\">\n <!-- Volume up icon (volume_up) -->\n <svg height=\"28\" viewBox=\"0 0 24 24\" width=\"28\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M3 9v6h4l5 5V4L7 9H3zm13.5 3c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02zM14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77s-2.99-7.86-7-8.77z\" />\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n </svg>\n </mat-icon>\n </button>\n</mat-card>\n\n<mat-card *ngIf=\"displayTitle\" class=\"mat-elevation-z1\">\n <div style=\"text-align: center;\">\n <div style=\"margin: 1px 2px; padding: 1em\">\n <span *ngIf=\"!isPlaying\">{{ tracks[currentIndex]?.title }}{{ displayArtist && tracks[currentIndex]?.artist ?\n ' | ' + tracks[currentIndex]?.artist : ''}}</span>\n <marquee *ngIf=\"isPlaying\" behavior=\"scroll\" direction=\"left\">{{ tracks[currentIndex]?.title\n }}{{ displayArtist && tracks[currentIndex]?.artist ? ' | ' + tracks[currentIndex]?.artist : ''}}\n </marquee>\n </div>\n <div class=\"clear\"></div>\n </div>\n</mat-card>\n\n<mat-accordion *ngIf=\"displayPlaylist && tracks.length > 1\">\n <mat-expansion-panel [expanded]=\"expanded\">\n <mat-expansion-panel-header>\n {{tableHeader}}\n </mat-expansion-panel-header>\n <table [dataSource]=\"dataSource\" class=\"mat-elevation-z6\" mat-table>\n <ng-container matColumnDef=\"title\">\n <th *matHeaderCellDef mat-header-cell>{{titleHeader}}</th>\n <td (click)=\"selectTrack(element.index)\" *matCellDef=\"let element\" mat-cell>\n {{element.title}}\n </td>\n </ng-container>\n <ng-container matColumnDef=\"artist\">\n <th *matHeaderCellDef mat-header-cell>{{artistHeader}}</th>\n <td (click)=\"selectTrack(element.index)\" *matCellDef=\"let element\" mat-cell>\n {{element?.artist ? element?.artist : ''}}\n </td>\n </ng-container>\n <ng-container matColumnDef=\"duration\">\n <th *matHeaderCellDef mat-header-cell>{{durationHeader}}</th>\n <td (click)=\"selectTrack(element.index)\" *matCellDef=\"let element\" mat-cell>\n {{element?.duration ? (element?.duration | secondsToMinutes) : ''}}\n </td>\n </ng-container>\n <ng-container matColumnDef=\"status\">\n <th *matHeaderCellDef mat-header-cell></th>\n <td *matCellDef=\"let element\" mat-cell>\n <div *ngIf=\"tracks[currentIndex]?.title === element.title\">\n <!-- <mat-icon *ngIf=\"isPlaying\" aria-hidden=\"true\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M6 19h4V5H6v14zm8-14v14h4V5h-4z\"/><path d=\"M0 0h24v24H0z\" fill=\"none\"/></svg>\n </mat-icon> -->\n <mat-icon *ngIf=\"isPlaying\" aria-hidden=\"true\" class=\"currently-playing\">\n <!-- Play icon (play_arrow) -->\n <svg height=\"24\" viewBox=\"0 0 24 24\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n <path\n d=\"M12 3v9.28c-.47-.17-.97-.28-1.5-.28C8.01 12 6 14.01 6 16.5S8.01 21 10.5 21c2.31 0 4.2-1.75 4.45-4H15V6h4V3h-7z\" />\n </svg>\n </mat-icon>\n </div>\n </td>\n </ng-container>\n <tr *matHeaderRowDef=\"displayedColumns\" mat-header-row></tr>\n <tr *matRowDef=\"let row; columns: displayedColumns;\" class=\"mat-select-content\" mat-row></tr>\n </table>\n <mat-paginator [pageSizeOptions]=\"pageSizeOptions\" showFirstLastButtons></mat-paginator>\n </mat-expansion-panel>\n</mat-accordion>",
styles: ["mat-card,mat-slider{padding:0!important}button:focus,button:hover{outline:0!important}svg{vertical-align:top}.mat-icon{height:32px!important;width:32px!important}mat-icon>.currently-playing{height:16px!important;width:16px!important}table{width:100%}.ngx-advanced-audio-player{min-width:325px}.material-icons{font-size:16px!important}.play-pause{border-right:1px solid rgba(0,0,0,.1)}.play-pause,.volume{border-left:1px solid rgba(0,0,0,.1)}.skip-next{border-right:1px solid rgba(0,0,0,.1)}*,:after,:before{box-sizing:inherit}.ngx-p-1{padding:.25rem!important}.ngx-col,.ngx-col-1,.ngx-col-2,.ngx-col-3,.ngx-col-4,.ngx-col-5,.ngx-col-6,.ngx-col-7,.ngx-col-8,.ngx-col-9,.ngx-col-10,.ngx-col-11,.ngx-col-12,.ngx-col-auto,.ngx-col-lg,.ngx-col-lg-1,.ngx-col-lg-2,.ngx-col-lg-3,.ngx-col-lg-4,.ngx-col-lg-5,.ngx-col-lg-6,.ngx-col-lg-7,.ngx-col-lg-8,.ngx-col-lg-9,.ngx-col-lg-10,.ngx-col-lg-11,.ngx-col-lg-12,.ngx-col-lg-auto,.ngx-col-md,.ngx-col-md-1,.ngx-col-md-2,.ngx-col-md-3,.ngx-col-md-4,.ngx-col-md-5,.ngx-col-md-6,.ngx-col-md-7,.ngx-col-md-8,.ngx-col-md-9,.ngx-col-md-10,.ngx-col-md-11,.ngx-col-md-12,.ngx-col-md-auto,.ngx-col-sm,.ngx-col-sm-1,.ngx-col-sm-2,.ngx-col-sm-3,.ngx-col-sm-4,.ngx-col-sm-5,.ngx-col-sm-6,.ngx-col-sm-7,.ngx-col-sm-8,.ngx-col-sm-9,.ngx-col-sm-10,.ngx-col-sm-11,.ngx-col-sm-12,.ngx-col-sm-auto,.ngx-col-xl,.ngx-col-xl-1,.ngx-col-xl-2,.ngx-col-xl-3,.ngx-col-xl-4,.ngx-col-xl-5,.ngx-col-xl-6,.ngx-col-xl-7,.ngx-col-xl-8,.ngx-col-xl-9,.ngx-col-xl-10,.ngx-col-xl-11,.ngx-col-xl-12,.ngx-col-xl-auto{padding-left:15px;padding-right:15px;position:relative;width:100%}.ngx-col{flex-basis:0;flex-grow:1;max-width:100%}.ngx-justify-content-center{justify-content:center!important}.ngx-flex-fill{flex:1 1 auto!important}.ngx-d-flex{display:flex!important}.ngx-pb-3,.ngx-py-3{padding-bottom:1rem!important}.ngx-pt-3,.ngx-py-3{padding-top:1rem!important}.ngx-pl-1,.ngx-px-1{padding-left:.25rem!important}.ngx-pr-1,.ngx-px-1{padding-right:.25rem!important}@media (max-width:768px){.ngx-sm-block{display:block!important}.ngx-d-none{display:none!important}}"]
template: "<mat-card class=\"ngx-d-flex ngx-justify-content-center ngx-audio-player z-depth-1 mat-elevation-z2\"\n style=\"margin: 0px;\">\n\n <audio #audioPlayer [src]=\"tracks[currentIndex]?.link\"></audio>\n\n <button *ngIf=\"tracks.length > 1\" (click)='previousSong();' [disabled]=\"loaderDisplay\" class=\"ngx-p-1\" mat-button>\n <mat-icon aria-hidden=\"true\">\n <!-- Skip previous icon (skip_previous) -->\n <svg height=\"32\" viewBox=\"0 0 24 24\" width=\"32\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6 6h2v12H6zm3.5 6l8.5 6V6z\" />\n <path d=\"M0 0h32v32H0z\" fill=\"none\" />\n </svg>\n </mat-icon>\n </button>\n <button (click)='playBtnHandler();' [disabled]=\"loaderDisplay\" class=\"ngx-p-1 play-pause\" mat-button>\n\n <svg *ngIf=\"loaderDisplay\" height=\"34px\" preserveAspectRatio=\"xMidYMid\"\n style=\"margin: auto; display: block; shape-rendering: auto;\" viewBox=\"0 0 100 100\" width=\"34px\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <g transform=\"rotate(0 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.9166666666666666s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(30 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.8333333333333334s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(60 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.75s\" dur=\"1s\" keyTimes=\"0;1\" repeatCount=\"indefinite\"\n values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(90 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.6666666666666666s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(120 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.5833333333333334s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(150 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.5s\" dur=\"1s\" keyTimes=\"0;1\" repeatCount=\"indefinite\"\n values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(180 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.4166666666666667s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(210 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.3333333333333333s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(240 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.25s\" dur=\"1s\" keyTimes=\"0;1\" repeatCount=\"indefinite\"\n values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(270 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.16666666666666666s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(300 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.08333333333333333s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(330 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"0s\" dur=\"1s\" keyTimes=\"0;1\" repeatCount=\"indefinite\"\n values=\"1;0\" />\n </rect>\n </g>\n </svg>\n\n <mat-icon *ngIf=\"!loaderDisplay && !isPlaying\" aria-hidden=\"true\" class=\"play-track\">\n <!-- Play icon (play_arrow) -->\n <svg height=\"32\" viewBox=\"0 0 24 24\" width=\"32\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M8 5v14l11-7z\" />\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n </svg>\n </mat-icon>\n <mat-icon *ngIf=\"!loaderDisplay && isPlaying\" aria-hidden=\"true\" class=\"pause-track\">\n <!-- Pause icon (pause) -->\n <svg height=\"32\" viewBox=\"0 0 24 24\" width=\"32\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6 19h4V5H6v14zm8-14v14h4V5h-4z\" />\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n </svg>\n </mat-icon>\n </button>\n <button *ngIf=\"tracks.length > 1\" (click)='nextSong();' [disabled]=\"loaderDisplay\" class=\"ngx-p-1 skip-next\"\n mat-button>\n <mat-icon aria-hidden=\"true\" class=\"next-track\">\n <!-- Skip next icon (skip_next) -->\n <svg height=\"32\" viewBox=\"0 0 24 24\" width=\"32\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6 18l8.5-6L6 6v12zM16 6v12h2V6h-2z\" />\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n </svg>\n </mat-icon>\n </button>\n\n <div class=\"ngx-col\">\n <div class=\"ngx-d-flex ngx-flex-fill ngx-justify-content-center\">\n <div class=\"ngx-d-none ngx-d-sm-block ngx-py-3 ngx-px-1\" style=\"font-size: 12px\">\n <span *ngIf=\"duration !== 0.01\">\n {{currentTime | secondsToMinutes}}\n </span>\n </div>\n <mat-slider [disabled]=\"disablePositionSlider\" (change)=\"currTimePosChanged($event)\" [min]=\"startOffset\"\n class=\"ngx-d-none ngx-d-sm-block ngx-flex-fill ngx-p-1\" max=\"{{duration-endOffset}}\" style=\"width: 100%\"\n value=\"{{currentTime}}\"></mat-slider>\n\n <div class=\"ngx-py-3 ngx-px-1\" style=\"font-size: 12px; text-align: right\">\n <span *ngIf=\"duration !== 0.01\">\n -{{duration-currentTime | secondsToMinutes }}\n </span>\n </div>\n </div>\n </div>\n <button (click)='toggleRepeat();' *ngIf=\"displayRepeatControls\" class=\"ngx-p-1 volume justify-content-center\"\n mat-button>\n <mat-icon *ngIf=\"repeat === 'none'\" aria-hidden=\"true\" class=\"volume-mute justify-content-center\">\n <!-- Repeat None -->\n <svg height=\"24\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 22 22\">\n <g>\n <g>\n <path d=\"m0,0l24,0l0,24l-24,0l0,-24z\" fill=\"none\" />\n <path\n d=\"m8,20l0,1.932a0.5,0.5 0 0 1 -0.82,0.385l-4.12,-3.433a0.5,0.5 0 0 1 0.322,-0.884l14.618,0a2,2 0 0 0 2,-2l0,-8l2,0l0,8a4,4 0 0 1 -4,4l-10,0zm8,-16l0,-1.932a0.5,0.5 0 0 1 0.82,-0.385l4.12,3.433a0.5,0.5 0 0 1 -0.321,0.884l-14.619,0a2,2 0 0 0 -2,2l0,8l-2,0l0,-8a4,4 0 0 1 4,-4l10,0z\" />\n <path d=\"M 3 0 L 22.4164 22.2706 L 21 24 L 1.5836 1.8128 L 3 0\"></path>\n </g>\n <!-- <line xmlns=\"http://www.w3.org/2000/svg\" id=\"svg_4\" y2=\"22.27056\" x2=\"22.41638\" y1=\"1.81276\" x1=\"1.58362\" stroke-width=\"2\" fill=\"none\"/> -->\n </g>\n </svg>\n </mat-icon>\n <mat-icon *ngIf=\"repeat === 'all'\" aria-hidden=\"true\" class=\"volume-mute\">\n <!-- Repeat All -->\n <svg height=\"24\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 22 22\">\n <g>\n <path fill=\"none\" d=\"M0 0h24v24H0z\" />\n <path\n d=\"M8 20v1.932a.5.5 0 0 1-.82.385l-4.12-3.433A.5.5 0 0 1 3.382 18H18a2 2 0 0 0 2-2V8h2v8a4 4 0 0 1-4 4H8zm8-16V2.068a.5.5 0 0 1 .82-.385l4.12 3.433a.5.5 0 0 1-.321.884H6a2 2 0 0 0-2 2v8H2V8a4 4 0 0 1 4-4h10z\" />\n </g>\n </svg>\n </mat-icon>\n <mat-icon *ngIf=\"repeat === 'one'\" aria-hidden=\"true\" class=\"volume-up\">\n <!-- Repeat ONE -->\n <svg height=\"24\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 22 22\">\n <g>\n <path fill=\"none\" d=\"M0 0h24v24H0z\" />\n <path\n d=\"M8 20v1.932a.5.5 0 0 1-.82.385l-4.12-3.433A.5.5 0 0 1 3.382 18H18a2 2 0 0 0 2-2V8h2v8a4 4 0 0 1-4 4H8zm8-16V2.068a.5.5 0 0 1 .82-.385l4.12 3.433a.5.5 0 0 1-.321.884H6a2 2 0 0 0-2 2v8H2V8a4 4 0 0 1 4-4h10zm-5 4h2v8h-2v-6H9V9l2-1z\" />\n </g>\n </svg>\n </mat-icon>\n </button>\n <button (click)='toggleVolume();' *ngIf=\"displayVolumeControls\" class=\"ngx-p-1 volume\" mat-button>\n <mat-icon *ngIf=\"volume === 0\" aria-hidden=\"true\" class=\"volume-mute\">\n <!-- Volume mute icon (volume_off) -->\n <svg height=\"28\" viewBox=\"0 0 24 24\" width=\"28\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M16.5 12c0-1.77-1.02-3.29-2.5-4.03v2.21l2.45 2.45c.03-.2.05-.41.05-.63zm2.5 0c0 .94-.2 1.82-.54 2.64l1.51 1.51C20.63 14.91 21 13.5 21 12c0-4.28-2.99-7.86-7-8.77v2.06c2.89.86 5 3.54 5 6.71zM4.27 3L3 4.27 7.73 9H3v6h4l5 5v-6.73l4.25 4.25c-.67.52-1.42.93-2.25 1.18v2.06c1.38-.31 2.63-.95 3.69-1.81L19.73 21 21 19.73l-9-9L4.27 3zM12 4L9.91 6.09 12 8.18V4z\" />\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n </svg>\n </mat-icon>\n <mat-icon *ngIf=\"volume > 0\" aria-hidden=\"true\" class=\"volume-up\">\n <!-- Volume up icon (volume_up) -->\n <svg height=\"28\" viewBox=\"0 0 24 24\" width=\"28\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M3 9v6h4l5 5V4L7 9H3zm13.5 3c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02zM14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77s-2.99-7.86-7-8.77z\" />\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n </svg>\n </mat-icon>\n </button>\n</mat-card>\n\n<mat-card *ngIf=\"displayTitle\" class=\"mat-elevation-z1 ngx-audio-player\">\n <div style=\"text-align: center;\">\n <div style=\"margin: 1px 2px; padding: 1em\">\n <span *ngIf=\"!isPlaying\">{{ tracks[currentIndex]?.title }}{{ displayArtist && tracks[currentIndex]?.artist ?\n ' | ' + tracks[currentIndex]?.artist : ''}}</span>\n <marquee *ngIf=\"isPlaying\" behavior=\"scroll\" direction=\"left\">{{ tracks[currentIndex]?.title\n }}{{ displayArtist && tracks[currentIndex]?.artist ? ' | ' + tracks[currentIndex]?.artist : ''}}\n </marquee>\n </div>\n <div class=\"clear\"></div>\n </div>\n</mat-card>\n\n<mat-accordion class=\"ngx-audio-player\" *ngIf=\"displayPlaylist && tracks.length > 1\">\n <mat-expansion-panel [expanded]=\"expanded\">\n <mat-expansion-panel-header>\n {{tableHeader}}\n </mat-expansion-panel-header>\n <table [dataSource]=\"dataSource\" class=\"mat-elevation-z6\" mat-table>\n <ng-container matColumnDef=\"title\">\n <th *matHeaderCellDef mat-header-cell>{{titleHeader}}</th>\n <td (click)=\"selectTrack(element.index)\" *matCellDef=\"let element\" mat-cell>\n {{element.title}}\n </td>\n </ng-container>\n <ng-container matColumnDef=\"artist\">\n <th *matHeaderCellDef mat-header-cell>{{artistHeader}}</th>\n <td (click)=\"selectTrack(element.index)\" *matCellDef=\"let element\" mat-cell>\n {{element?.artist ? element?.artist : ''}}\n </td>\n </ng-container>\n <ng-container matColumnDef=\"duration\">\n <th *matHeaderCellDef mat-header-cell>{{durationHeader}}</th>\n <td (click)=\"selectTrack(element.index)\" *matCellDef=\"let element\" mat-cell>\n {{element?.duration ? (element?.duration | secondsToMinutes) : ''}}\n </td>\n </ng-container>\n <ng-container matColumnDef=\"status\">\n <th *matHeaderCellDef mat-header-cell></th>\n <td *matCellDef=\"let element\" mat-cell>\n <div *ngIf=\"tracks[currentIndex]?.title === element.title\">\n <!-- <mat-icon *ngIf=\"isPlaying\" aria-hidden=\"true\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M6 19h4V5H6v14zm8-14v14h4V5h-4z\"/><path d=\"M0 0h24v24H0z\" fill=\"none\"/></svg>\n </mat-icon> -->\n <mat-icon *ngIf=\"isPlaying\" aria-hidden=\"true\" class=\"currently-playing\">\n <!-- Play icon (play_arrow) -->\n <svg height=\"24\" viewBox=\"0 0 24 24\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n <path\n d=\"M12 3v9.28c-.47-.17-.97-.28-1.5-.28C8.01 12 6 14.01 6 16.5S8.01 21 10.5 21c2.31 0 4.2-1.75 4.45-4H15V6h4V3h-7z\" />\n </svg>\n </mat-icon>\n </div>\n </td>\n </ng-container>\n <tr *matHeaderRowDef=\"displayedColumns\" mat-header-row></tr>\n <tr *matRowDef=\"let row; columns: displayedColumns;\" class=\"mat-select-content\" mat-row></tr>\n </table>\n <mat-paginator [pageSizeOptions]=\"pageSizeOptions\" showFirstLastButtons></mat-paginator>\n </mat-expansion-panel>\n</mat-accordion>",
styles: ["mat-card,mat-slider{padding:0!important}button:focus,button:hover{outline:0!important}svg{vertical-align:top}.mat-icon{height:32px!important;width:32px!important}mat-icon>.currently-playing{height:16px!important;width:16px!important}table{width:100%}.mat-expansion-panel,::ng-deep .ngx-audio-player{min-width:375px}::ng-deep .mat-paginator-container{justify-content:space-between!important}.material-icons{font-size:16px!important}.play-pause{border-right:1px solid rgba(0,0,0,.1)}.play-pause,.volume{border-left:1px solid rgba(0,0,0,.1)}.skip-next{border-right:1px solid rgba(0,0,0,.1)}*,:after,:before{box-sizing:inherit}.ngx-p-1{padding:.25rem!important}.ngx-col,.ngx-col-1,.ngx-col-2,.ngx-col-3,.ngx-col-4,.ngx-col-5,.ngx-col-6,.ngx-col-7,.ngx-col-8,.ngx-col-9,.ngx-col-10,.ngx-col-11,.ngx-col-12,.ngx-col-auto,.ngx-col-lg,.ngx-col-lg-1,.ngx-col-lg-2,.ngx-col-lg-3,.ngx-col-lg-4,.ngx-col-lg-5,.ngx-col-lg-6,.ngx-col-lg-7,.ngx-col-lg-8,.ngx-col-lg-9,.ngx-col-lg-10,.ngx-col-lg-11,.ngx-col-lg-12,.ngx-col-lg-auto,.ngx-col-md,.ngx-col-md-1,.ngx-col-md-2,.ngx-col-md-3,.ngx-col-md-4,.ngx-col-md-5,.ngx-col-md-6,.ngx-col-md-7,.ngx-col-md-8,.ngx-col-md-9,.ngx-col-md-10,.ngx-col-md-11,.ngx-col-md-12,.ngx-col-md-auto,.ngx-col-sm,.ngx-col-sm-1,.ngx-col-sm-2,.ngx-col-sm-3,.ngx-col-sm-4,.ngx-col-sm-5,.ngx-col-sm-6,.ngx-col-sm-7,.ngx-col-sm-8,.ngx-col-sm-9,.ngx-col-sm-10,.ngx-col-sm-11,.ngx-col-sm-12,.ngx-col-sm-auto,.ngx-col-xl,.ngx-col-xl-1,.ngx-col-xl-2,.ngx-col-xl-3,.ngx-col-xl-4,.ngx-col-xl-5,.ngx-col-xl-6,.ngx-col-xl-7,.ngx-col-xl-8,.ngx-col-xl-9,.ngx-col-xl-10,.ngx-col-xl-11,.ngx-col-xl-12,.ngx-col-xl-auto{padding-left:15px;padding-right:15px;position:relative;width:100%}.ngx-col{flex-basis:0;flex-grow:1;max-width:100%}.ngx-justify-content-center{justify-content:center!important}.ngx-flex-fill{flex:1 1 auto!important}.ngx-d-flex{display:flex!important}.ngx-pb-3,.ngx-py-3{padding-bottom:1rem!important}.ngx-pt-3,.ngx-py-3{padding-top:1rem!important}.ngx-pl-1,.ngx-px-1{padding-left:.25rem!important}.ngx-pr-1,.ngx-px-1{padding-right:.25rem!important}@media (max-width:768px){.ngx-sm-block{display:block!important}.ngx-d-none{display:none!important}}"]
},] }

@@ -306,2 +307,2 @@ ];

};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWF1ZGlvLXBsYXllci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vcHJvamVjdHMvbmd4LWF1ZGlvLXBsYXllci9zcmMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50L25neC1hdWRpby1wbGF5ZXIvbmd4LWF1ZGlvLXBsYXllci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQTRCLE1BQU0sZUFBZSxDQUFDO0FBR2xILE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUM3RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBUS9CLE1BQU0sT0FBTyxvQkFBb0I7SUFJN0IsWUFBWSxJQUFnQjtRQUQ1QixXQUFNLEdBQVcsS0FBSyxDQUFDO1FBbUJ2QixlQUFVLEdBQUcsSUFBSSxrQkFBa0IsRUFBUyxDQUFDO1FBSzdDLFdBQU0sR0FBWSxFQUFFLENBQUM7UUFFWixpQkFBWSxHQUFHLElBQUksQ0FBQztRQUNwQixvQkFBZSxHQUFHLElBQUksQ0FBQztRQUN2QiwwQkFBcUIsR0FBRyxJQUFJLENBQUM7UUFDN0IsMEJBQXFCLEdBQUcsSUFBSSxDQUFDO1FBQzdCLG9CQUFlLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQy9CLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFDaEIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQiwwQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFDOUIsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFDdEIsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFFakMsbUNB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QyxLQUFLO3dCQVNMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIFZpZXdDaGlsZCwgT3V0cHV0LCBFbGVtZW50UmVmLCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYWNrIH0gZnJvbSAnLi4vLi4vbW9kZWwvdHJhY2subW9kZWwnO1xuaW1wb3J0IHsgTWF0U2xpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2xpZGVyJztcbmltcG9ydCB7IE1hdFRhYmxlRGF0YVNvdXJjZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcbmltcG9ydCB7IE1hdFBhZ2luYXRvciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XG5pbXBvcnQgeyBBdWRpb1BsYXllclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2F1ZGlvLXBsYXllci1zZXJ2aWNlL2F1ZGlvLXBsYXllci5zZXJ2aWNlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdtYXQtYWR2YW5jZWQtYXVkaW8tcGxheWVyLG5neC1hdWRpby1wbGF5ZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9uZ3gtYXVkaW8tcGxheWVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9uZ3gtYXVkaW8tcGxheWVyLmNvbXBvbmVudC5jc3MnXVxufSlcblxuZXhwb3J0IGNsYXNzIEF1ZGlvUGxheWVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuXG4gICAgYXVkaW9QbGF5ZXJTZXJ2aWNlOiBBdWRpb1BsYXllclNlcnZpY2U7XG4gICAgcmVwZWF0OiBzdHJpbmcgPSAnYWxsJztcbiAgICBjb25zdHJ1Y3RvcihlbGVtOiBFbGVtZW50UmVmKSB7XG4gICAgICAgIGlmIChlbGVtLm5hdGl2ZUVsZW1lbnQudGFnTmFtZS50b0xvd2VyQ2FzZSgpID09PSAnbWF0LWFkdmFuY2VkLWF1ZGlvLXBsYXllcicpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihgJ21hdC1hZHZhbmNlZC1hdWRpby1wbGF5ZXInIHNlbGVjdG9yIGlzIGRlcHJlY2F0ZWQ7IHVzZSAnbmd4LWF1ZGlvLXBsYXllcicgaW5zdGVhZC5gKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmF1ZGlvUGxheWVyU2VydmljZSA9IG5ldyBBdWRpb1BsYXllclNlcnZpY2UoKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBwbGF5bGlzdChwbGF5bGlzdDogVHJhY2tbXSkge1xuICAgICAgICB0aGlzLmF1ZGlvUGxheWVyU2VydmljZS5zZXRQbGF5bGlzdChwbGF5bGlzdCk7XG4gICAgfVxuXG4gICAgQFZpZXdDaGlsZChNYXRQYWdpbmF0b3IsIHsgc3RhdGljOiBmYWxzZSB9KSBzZXQgbWF0UGFnaW5hdG9yKG1wOiBNYXRQYWdpbmF0b3IpIHtcbiAgICAgICAgdGhpcy5wYWdpbmF0b3IgPSBtcDtcbiAgICAgICAgdGhpcy5zZXREYXRhU291cmNlQXR0cmlidXRlcygpO1xuICAgIH1cblxuICAgIGRpc3BsYXllZENvbHVtbnM6IHN0cmluZ1tdO1xuICAgIGRhdGFTb3VyY2UgPSBuZXcgTWF0VGFibGVEYXRhU291cmNlPFRyYWNrPigpO1xuICAgIHBhZ2luYXRvcjogTWF0UGFnaW5hdG9yO1xuXG4gICAgdGltZUxpbmVEdXJhdGlvbjogTWF0U2xpZGVyO1xuXG4gICAgdHJhY2tzOiBUcmFja1tdID0gW107XG5cbiAgICBASW5wdXQoKSBkaXNwbGF5VGl0bGUgPSB0cnVlO1xuICAgIEBJbnB1dCgpIGRpc3BsYXlQbGF5bGlzdCA9IHRydWU7XG4gICAgQElucHV0KCkgZGlzcGxheVZvbHVtZUNvbnRyb2xzID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBkaXNwbGF5UmVwZWF0Q29udHJvbHMgPSB0cnVlO1xuICAgIEBJbnB1dCgpIHBhZ2VTaXplT3B0aW9ucyA9IFsxMCwgMjAsIDMwXTtcbiAgICBASW5wdXQoKSBleHBhbmRlZCA9IHRydWU7XG4gICAgQElucHV0KCkgYXV0b1BsYXkgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBkaXNhYmxlUG9zaXRpb25TbGlkZXIgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBkaXNwbGF5QXJ0aXN0ID0gZmFsc2U7XG4gICAgQElucHV0KCkgZGlzcGxheUR1cmF0aW9uID0gZmFsc2U7XG5cbiAgICAvLyBTdXBwb3J0IGZvciBpbnRlcm5hdGlvbmFsaXphdGlvblxuICAgIEBJbnB1dCgpIHRhYmxlSGVhZGVyID0gJ1BsYXlsaXN0JztcbiAgICBASW5wdXQoKSB0aXRsZUhlYWRlciA9ICdUaXRsZSc7XG4gICAgQElucHV0KCkgYXJ0aXN0SGVhZGVyID0gJ0FydGlzdCc7XG4gICAgQElucHV0KCkgZHVyYXRpb25IZWFkZXIgPSAnRHVyYXRpb24nO1xuXG4gICAgY3VycmVudEluZGV4ID0gMDtcblxuICAgIEBPdXRwdXQoKVxuICAgIHRyYWNrRW5kZWQ6IFN1YmplY3Q8c3RyaW5nPiA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcblxuICAgIEBWaWV3Q2hpbGQoJ2F1ZGlvUGxheWVyJywgeyBzdGF0aWM6IHRydWUgfSkgcGxheWVyOiBFbGVtZW50UmVmO1xuXG4gICAgaU9TID0gKC9pUGFkfGlQaG9uZXxpUG9kLy50ZXN0KG5hdmlnYXRvci5wbGF0Zm9ybSlcbiAgICAgICAgfHwgKG5hdmlnYXRvci5wbGF0Zm9ybSA9PT0gJ01hY0ludGVsJyAmJiBuYXZpZ2F0b3IubWF4VG91Y2hQb2ludHMgPiAxKSk7XG5cbiAgICBsb2FkZXJEaXNwbGF5ID0gZmFsc2U7XG4gICAgaXNQbGF5aW5nID0gZmFsc2U7XG4gICAgY3VycmVudFRpbWUgPSAwO1xuICAgIHZvbHVtZSA9IDAuMTtcbiAgICBkdXJhdGlvbiA9IDAuMDE7XG5cbiAgICBwcml2YXRlIHN0YXJ0T2Zmc2V0VmFsdWUgPSAwO1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHN0YXJ0T2Zmc2V0KHNlY29uZHM6IG51bWJlcikge1xuICAgICAgICB0aGlzLnN0YXJ0T2Zmc2V0VmFsdWUgPSBzZWNvbmRzO1xuICAgICAgICB0aGlzLnBsYXllci5uYXRpdmVFbGVtZW50LmN1cnJlbnRUaW1lID0gc2Vjb25kcztcbiAgICB9XG4gICAgZ2V0IHN0YXJ0T2Zmc2V0KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0YXJ0T2Zmc2V0VmFsdWU7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZW5kT2Zmc2V0ID0gMDtcblxuICAgIGN1cnJUaW1lUG9zQ2hhbmdlZChldmVudCkge1xuICAgICAgICB0aGlzLnBsYXllci5uYXRpdmVFbGVtZW50LmN1cnJlbnRUaW1lID0gZXZlbnQudmFsdWU7XG4gICAgfVxuXG4gICAgYmluZFBsYXllckV2ZW50KCk6IHZvaWQge1xuXG4gICAgICAgIHRoaXMucGxheWVyLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigncGxheWluZycsICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaXNQbGF5aW5nID0gdHJ1ZTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucGxheWVyLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigncGF1c2UnLCAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmlzUGxheWluZyA9IGZhbHNlO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5wbGF5ZXIubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCd0aW1ldXBkYXRlJywgKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50VGltZSA9IE1hdGguZmxvb3IodGhpcy5wbGF5ZXIubmF0aXZlRWxlbWVudC5jdXJyZW50VGltZSk7XG4gICAgICAgICAgICAvLyBCVUc6IENvbW1lbnRpbmcgZm9yIGBlbmRlZGAgZXZlbnQgbm90IGZpcmluZyAjNjZcbiAgICAgICAgICAgIC8vIGlmICh0aGlzLmN1cnJlbnRUaW1lID49IHRoaXMuZHVyYXRpb24gLSB0aGlzLmVuZE9mZnNldCkge1xuICAgICAgICAgICAgLy8gICAgIHRoaXMucGxheWVyLm5hdGl2ZUVsZW1lbnQucGF1c2UoKTtcbiAgICAgICAgICAgIC8vIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucGxheWVyLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndm9sdW1lJywgKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy52b2x1bWUgPSBNYXRoLmZsb29yKHRoaXMucGxheWVyLm5hdGl2ZUVsZW1lbnQudm9sdW1lKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICghdGhpcy5pT1MpIHtcbiAgICAgICAgICAgIHRoaXMucGxheWVyLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbG9hZHN0YXJ0JywgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubG9hZGVyRGlzcGxheSA9IHRydWU7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnBsYXllci5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWRlZG1ldGFkYXRhJywgKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5sb2FkZXJEaXNwbGF5ID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmR1cmF0aW9uID0gTWF0aC5mbG9vcih0aGlzLnBsYXllci5uYXRpdmVFbGVtZW50LmR1cmF0aW9uKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucGxheWVyLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignZW5kZWQnLCAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnRyYWNrRW5kZWQubmV4dCgnZW5kZWQnKTtcbiAgICAgICAgfSk7XG5cbiAgICB9XG5cbiAgICBwbGF5QnRuSGFuZGxlcigpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMubG9hZGVyRGlzcGxheSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnBsYXllci5uYXRpdmVFbGVtZW50LnBhdXNlZCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuY3VycmVudFRpbWUgPj0gdGhpcy5kdXJhdGlvbiAtIHRoaXMuZW5kT2Zmc2V0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wbGF5ZXIubmF0aXZlRWxlbWVudC5jdXJyZW50VGltZSA9IHRoaXMuc3RhcnRPZmZzZXQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMucGxheWVyLm5hdGl2ZUVsZW1lbnQuY3VycmVudFRpbWUgPSB0aGlzLmN1cnJlbnRUaW1lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLnBsYXllci5uYXRpdmVFbGVtZW50LnBsYXkoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFRpbWUgPSB0aGlzLnBsYXllci5uYXRpdmVFbGVtZW50LmN1cnJlbnRUaW1lO1xuICAgICAgICAgICAgdGhpcy5wbGF5ZXIubmF0aXZlRWxlbWVudC5wYXVzZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcGxheSh0cmFjaz86IFRyYWNrKTogdm9pZCB7XG5cbiAgICAgICAgaWYgKHRyYWNrKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXJ0T2Zmc2V0ID0gdHJhY2suc3RhcnRPZmZzZXQgfHwgMDtcbiAgICAgICAgICAgIHRoaXMuZW5kT2Zmc2V0ID0gdHJhY2suZW5kT2Zmc2V0IHx8IDA7XG4gICAgICAgIH1cblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucGxheWVyLm5hdGl2ZUVsZW1lbnQucGxheSgpO1xuICAgICAgICB9LCA1MCk7XG5cbiAgICB9XG5cbiAgICB0b2dnbGVWb2x1bWUoKSB7XG4gICAgICAgIGlmICh0aGlzLnZvbHVtZSA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5zZXRWb2x1bWUoMS4wKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2V0Vm9sdW1lKDApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdG9nZ2xlUmVwZWF0KCkge1xuICAgICAgICBpZiAodGhpcy5yZXBlYXQgPT09ICdub25lJykge1xuICAgICAgICAgICAgdGhpcy5yZXBlYXQgPSAnYWxsJztcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnJlcGVhdCA9PT0gJ2FsbCcpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnRyYWNrcy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXBlYXQgPSAnb25lJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXBlYXQgPSAnbm9uZSc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5yZXBlYXQgPT09ICdvbmUnICYmIHRoaXMudHJhY2tzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgIHRoaXMucmVwZWF0ID0gJ25vbmUnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRWb2x1bWUodm9sKSB7XG4gICAgICAgIHRoaXMudm9sdW1lID0gdm9sO1xuICAgICAgICB0aGlzLnBsYXllci5uYXRpdmVFbGVtZW50LnZvbHVtZSA9IHRoaXMudm9sdW1lO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuXG4gICAgICAgIHRoaXMuYmluZFBsYXllckV2ZW50KCk7XG5cbiAgICAgICAgLy8gYXV0byBwbGF5IG5leHQgdHJhY2tcbiAgICAgICAgdGhpcy5wbGF5ZXIubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdlbmRlZCcsICgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmNoZWNrSWZTb25nSGFzU3RhcnRlZFNpbmNlQXRsZWFzdFR3b1NlY29uZHMoKSkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnJlcGVhdCA9PT0gJ2FsbCcpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5uZXh0U29uZygpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5yZXBlYXQgPT09ICdvbmUnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGxheSgpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5yZXBlYXQgPT09ICdub25lJykge1xuICAgICAgICAgICAgICAgICAgICAvLyBEbyBub3RoaW5nXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnBsYXllci5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3RpbWV1cGRhdGUnLCAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmF1ZGlvUGxheWVyU2VydmljZS5zZXRDdXJyZW50VGltZSh0aGlzLnBsYXllci5uYXRpdmVFbGVtZW50LmN1cnJlbnRUaW1lKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gU3Vic2NyaWJlIHRvIHBsYXlsaXN0IG9ic2VydmVyIGZyb20gQXVkaW9QbGF5ZXJTZXJ2aWNlIGFuZFxuICAgICAgICAvLyB1cGRhdGUgdGhlIHBsYXlsaXN0IHdpdGhpbiBNYXRBZHZhbmNlZEF1ZGlvUGxheWVyQ29tcG9uZW50XG4gICAgICAgIHRoaXMuYXVkaW9QbGF5ZXJTZXJ2aWNlLmdldFBsYXlsaXN0KCkuc3Vic2NyaWJlKHRyYWNrcyA9PiB7XG4gICAgICAgICAgICBpZiAodHJhY2tzICE9PSBudWxsICYmIHRyYWNrcyAhPT0gW10pIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRyYWNrcyA9IHRyYWNrcztcbiAgICAgICAgICAgICAgICB0aGlzLmluaXRpYWxpemUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgICAgIGlmIChjaGFuZ2VzLmhhc093blByb3BlcnR5KCdkaXNwbGF5QXJ0aXN0JykgfHwgY2hhbmdlcy5oYXNPd25Qcm9wZXJ0eSgnZGlzcGxheUR1cmF0aW9uJykpIHtcbiAgICAgICAgICAgIHRoaXMuYnVpbGREaXNwbGF5ZWRDb2x1bW5zKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGJ1aWxkRGlzcGxheWVkQ29sdW1ucygpIHtcbiAgICAgICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zID0gWyd0aXRsZSddO1xuICAgICAgICBpZiAodGhpcy5kaXNwbGF5QXJ0aXN0KSB7XG4gICAgICAgICAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMucHVzaCgnYXJ0aXN0Jyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuZGlzcGxheUR1cmF0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMucHVzaCgnZHVyYXRpb24nKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMucHVzaCgnc3RhdHVzJyk7XG4gICAgfVxuXG4gICAgaW5pdGlhbGl6ZSgpIHtcbiAgICAgICAgdGhpcy5idWlsZERpc3BsYXllZENvbHVtbnMoKTtcblxuICAgICAgICAvLyBwb3B1bGF0ZSBpbmRleHMgZm9yIHRoZSB0cmFjayBhbmQgY29uZmlndXJlXG4gICAgICAgIC8vIG1hdGVyaWFsIHRhYmxlIGRhdGEgc291cmNlIGFuZCBwYWdpbmF0b3JcbiAgICAgICAgdGhpcy5zZXREYXRhU291cmNlQXR0cmlidXRlcygpO1xuXG5cbiAgICAgICAgdGhpcy5wbGF5ZXIubmF0aXZlRWxlbWVudC5jdXJyZW50VGltZSA9IHRoaXMuc3RhcnRPZmZzZXQ7XG4gICAgICAgIHRoaXMudXBkYXRlQ3VycmVudFRyYWNrKCk7XG5cbiAgICAgICAgaWYgKHRoaXMuYXV0b1BsYXkpIHtcbiAgICAgICAgICAgIHRoaXMucGxheSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2V0RGF0YVNvdXJjZUF0dHJpYnV0ZXMoKSB7XG4gICAgICAgIGxldCBpbmRleCA9IDE7XG4gICAgICAgIGlmICh0aGlzLnRyYWNrcykge1xuICAgICAgICAgICAgdGhpcy50cmFja3MuZm9yRWFjaCgodHJhY2s6IFRyYWNrKSA9PiB7XG4gICAgICAgICAgICAgICAgdHJhY2suaW5kZXggPSBpbmRleCsrO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLmRhdGFTb3VyY2UgPSBuZXcgTWF0VGFibGVEYXRhU291cmNlPFRyYWNrPih0aGlzLnRyYWNrcyk7XG4gICAgICAgICAgICB0aGlzLmRhdGFTb3VyY2UucGFnaW5hdG9yID0gdGhpcy5wYWdpbmF0b3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZXh0U29uZygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzcGxheVBsYXlsaXN0ID09PSB0cnVlXG4gICAgICAgICAgICAmJiAoKCh0aGlzLmN1cnJlbnRJbmRleCArIDEpICUgdGhpcy5wYWdpbmF0b3IucGFnZVNpemUpID09PSAwXG4gICAgICAgICAgICAgICAgfHwgKHRoaXMuY3VycmVudEluZGV4ICsgMSkgPT09IHRoaXMucGFnaW5hdG9yLmxlbmd0aCkpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnBhZ2luYXRvci5oYXNOZXh0UGFnZSgpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wYWdpbmF0b3IubmV4dFBhZ2UoKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIXRoaXMucGFnaW5hdG9yLmhhc05leHRQYWdlKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBhZ2luYXRvci5maXJzdFBhZ2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmN1cnJlbnRUaW1lID0gMDtcbiAgICAgICAgdGhpcy5kdXJhdGlvbiA9IDAuMDE7XG4gICAgICAgIGlmICgodGhpcy5jdXJyZW50SW5kZXggKyAxKSA+PSB0aGlzLnRyYWNrcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudEluZGV4ID0gMDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudEluZGV4Kys7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy51cGRhdGVDdXJyZW50VHJhY2soKTtcbiAgICAgICAgdGhpcy5wbGF5KCk7XG4gICAgfVxuXG4gICAgcHJldmlvdXNTb25nKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmN1cnJlbnRUaW1lID0gMDtcbiAgICAgICAgdGhpcy5kdXJhdGlvbiA9IDAuMDE7XG4gICAgICAgIGlmICghdGhpcy5jaGVja0lmU29uZ0hhc1N0YXJ0ZWRTaW5jZUF0bGVhc3RUd29TZWNvbmRzKCkpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmRpc3BsYXlQbGF5bGlzdCA9PT0gdHJ1ZVxuICAgICAgICAgICAgICAgICYmICgoKHRoaXMuY3VycmVudEluZGV4KSAlIHRoaXMucGFnaW5hdG9yLnBhZ2VTaXplKSA9PT0gMFxuICAgICAgICAgICAgICAgICAgICB8fCAodGhpcy5jdXJyZW50SW5kZXggPT09IDApKSkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnBhZ2luYXRvci5oYXNQcmV2aW91c1BhZ2UoKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnBhZ2luYXRvci5wcmV2aW91c1BhZ2UoKTsgICAgICAgXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICghdGhpcy5wYWdpbmF0b3IuaGFzUHJldmlvdXNQYWdlKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYWdpbmF0b3IubGFzdFBhZ2UoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoKHRoaXMuY3VycmVudEluZGV4IC0gMSkgPCAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50SW5kZXggPSAodGhpcy50cmFja3MubGVuZ3RoIC0gMSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEluZGV4LS07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnJlc2V0U29uZygpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudXBkYXRlQ3VycmVudFRyYWNrKCk7XG4gICAgICAgIHRoaXMucGxheSgpO1xuICAgIH1cblxuICAgIHJlc2V0U29uZygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wbGF5ZXIubmF0aXZlRWxlbWVudC5zcmMgPSB0aGlzLnRyYWNrc1t0aGlzLmN1cnJlbnRJbmRleF0ubGluaztcbiAgICB9XG5cbiAgICBzZWxlY3RUcmFjayhpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY3VycmVudEluZGV4ID0gaW5kZXggLSAxO1xuICAgICAgICB0aGlzLnVwZGF0ZUN1cnJlbnRUcmFjaygpO1xuICAgICAgICB0aGlzLnBsYXkoKTtcbiAgICB9XG5cbiAgICBjaGVja0lmU29uZ0hhc1N0YXJ0ZWRTaW5jZUF0bGVhc3RUd29TZWNvbmRzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wbGF5ZXIubmF0aXZlRWxlbWVudC5jdXJyZW50VGltZSA+IDI7XG4gICAgfVxuXG4gICAgdXBkYXRlQ3VycmVudFRyYWNrKCkge1xuICAgICAgICB0aGlzLmF1ZGlvUGxheWVyU2VydmljZS5zZXRDdXJyZW50VHJhY2sodGhpcy50cmFja3NbdGhpcy5jdXJyZW50SW5kZXhdKTtcbiAgICB9XG5cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWF1ZGlvLXBsYXllci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtYXVkaW8tcGxheWVyL3NyYy9saWIvY29tcG9uZW50L25neC1hdWRpby1wbGF5ZXIvbmd4LWF1ZGlvLXBsYXllci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQTRCLE1BQU0sZUFBZSxDQUFDO0FBR2xILE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUM3RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBTy9CLE1BQU0sT0FBTyxvQkFBb0I7SUFJN0IsWUFBWSxJQUFnQjtRQUQ1QixXQUFNLEdBQVcsS0FBSyxDQUFDO1FBb0J2QixlQUFVLEdBQUcsSUFBSSxrQkFBa0IsRUFBUyxDQUFDO1FBSzdDLFdBQU0sR0FBWSxFQUFFLENBQUM7UUFFWixpQkFBWSxHQUFHLElBQUksQ0FBQztRQUNwQixvQkFBZSxHQUFHLElBQUksQ0FBQztRQUN2QiwwQkFBcUIsR0FBRyxJQUFJLENBQUM7UUFDN0IsMEJBQXFCLEdBQUcsSUFBSSxDQUFDO1FBQzdCLG9CQUFlLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQy9CLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFDaEIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQiwwQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFDOUIsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFDdEIsb0JBQWUsR0FBRyxLQUFLLENBQUM7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MEJBQ0wsS0FBSzsyQkFDTCxLQUFLOzZCQUNMLEtBQUs7eUJBS0wsTUFBTTtxQkFHTixTQUFTLFNBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTswQkFZekMsS0FBSzt3QkFTTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIFZpZXdDaGlsZCwgT3V0cHV0LCBFbGVtZW50UmVmLCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYWNrIH0gZnJvbSAnLi4vLi4vbW9kZWwvdHJhY2subW9kZWwnO1xuaW1wb3J0IHsgTWF0U2xpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2xpZGVyJztcbmltcG9ydCB7IE1hdFRhYmxlRGF0YVNvdXJjZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcbmltcG9ydCB7IE1hdFBhZ2luYXRvciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XG5pbXBvcnQgeyBBdWRpb1BsYXllclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2F1ZGlvLXBsYXllci1zZXJ2aWNlL2F1ZGlvLXBsYXllci5zZXJ2aWNlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdtYXQtYWR2YW5jZWQtYXVkaW8tcGxheWVyLG5neC1hdWRpby1wbGF5ZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9uZ3gtYXVkaW8tcGxheWVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9uZ3gtYXVkaW8tcGxheWVyLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBBdWRpb1BsYXllckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcblxuICAgIGF1ZGlvUGxheWVyU2VydmljZTogQXVkaW9QbGF5ZXJTZXJ2aWNlO1xuICAgIHJlcGVhdDogc3RyaW5nID0gJ2FsbCc7XG4gICAgY29uc3RydWN0b3IoZWxlbTogRWxlbWVudFJlZikge1xuICAgICAgICBpZiAoZWxlbS5uYXRpdmVFbGVtZW50LnRhZ05hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ21hdC1hZHZhbmNlZC1hdWRpby1wbGF5ZXInKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oYCdtYXQtYWR2YW5jZWQtYXVkaW8tcGxheWVyJyBzZWxlY3RvciBpcyBkZXByZWNhdGVkOyB1c2UgJ25neC1hdWRpby1wbGF5ZXInIGluc3RlYWQuYCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hdWRpb1BsYXllclNlcnZpY2UgPSBuZXcgQXVkaW9QbGF5ZXJTZXJ2aWNlKCk7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBzZXQgcGxheWxpc3QocGxheWxpc3Q6IFRyYWNrW10pIHtcbiAgICAgICAgdGhpcy5hdWRpb1BsYXllclNlcnZpY2Uuc2V0UGxheWxpc3QocGxheWxpc3QpO1xuICAgIH1cblxuICAgIEBWaWV3Q2hpbGQoTWF0UGFnaW5hdG9yLCB7IHN0YXRpYzogZmFsc2UgfSkgc2V0IG1hdFBhZ2luYXRvcihtcDogTWF0UGFnaW5hdG9yKSB7XG4gICAgICAgIHRoaXMucGFnaW5hdG9yID0gbXA7XG4gICAgICAgIHRoaXMuc2V0RGF0YVNvdXJjZUF0dHJpYnV0ZXMoKTtcbiAgICB9XG5cblxuICAgIGRpc3BsYXllZENvbHVtbnM6IHN0cmluZ1tdO1xuICAgIGRhdGFTb3VyY2UgPSBuZXcgTWF0VGFibGVEYXRhU291cmNlPFRyYWNrPigpO1xuICAgIHBhZ2luYXRvcjogTWF0UGFnaW5hdG9yO1xuXG4gICAgdGltZUxpbmVEdXJhdGlvbjogTWF0U2xpZGVyO1xuXG4gICAgdHJhY2tzOiBUcmFja1tdID0gW107XG5cbiAgICBASW5wdXQoKSBkaXNwbGF5VGl0bGUgPSB0cnVlO1xuICAgIEBJbnB1dCgpIGRpc3BsYXlQbGF5bGlzdCA9IHRydWU7XG4gICAgQElucHV0KCkgZGlzcGxheVZvbHVtZUNvbnRyb2xzID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBkaXNwbGF5UmVwZWF0Q29udHJvbHMgPSB0cnVlO1xuICAgIEBJbnB1dCgpIHBhZ2VTaXplT3B0aW9ucyA9IFsxMCwgMjAsIDMwXTtcbiAgICBASW5wdXQoKSBleHBhbmRlZCA9IHRydWU7XG4gICAgQElucHV0KCkgYXV0b1BsYXkgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBkaXNhYmxlUG9zaXRpb25TbGlkZXIgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBkaXNwbGF5QXJ0aXN0ID0gZmFsc2U7XG4gICAgQElucHV0KCkgZGlzcGxheUR1cmF0aW9uID0gZmFsc2U7XG5cbiAgICAvLyBTdXBwb3J0IGZvciBpbnRlcm5hdGlvbmFsaXphdGlvblxuICAgIEBJbnB1dCgpIHRhYmxlSGVhZGVyID0gJ1BsYXlsaXN0JztcbiAgICBASW5wdXQoKSB0aXRsZUhlYWRlciA9ICdUaXRsZSc7XG4gICAgQElucHV0KCkgYXJ0aXN0SGVhZGVyID0gJ0FydGlzdCc7XG4gICAgQElucHV0KCkgZHVyYXRpb25IZWFkZXIgPSAnRHVyYXRpb24nO1xuXG5cbiAgICBjdXJyZW50SW5kZXggPSAwO1xuXG4gICAgQE91dHB1dCgpXG4gICAgdHJhY2tFbmRlZDogU3ViamVjdDxzdHJpbmc+ID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xuXG4gICAgQFZpZXdDaGlsZCgnYXVkaW9QbGF5ZXInLCB7IHN0YXRpYzogdHJ1ZSB9KSBwbGF5ZXI6IEVsZW1lbnRSZWY7XG5cbiAgICBpT1MgPSAoL2lQYWR8aVBob25lfGlQb2QvLnRlc3QobmF2aWdhdG9yLnBsYXRmb3JtKVxuICAgICAgICB8fCAobmF2aWdhdG9yLnBsYXRmb3JtID09PSAnTWFjSW50ZWwnICYmIG5hdmlnYXRvci5tYXhUb3VjaFBvaW50cyA+IDEpKTtcblxuICAgIGxvYWRlckRpc3BsYXkgPSBmYWxzZTtcbiAgICBpc1BsYXlpbmcgPSBmYWxzZTtcbiAgICBjdXJyZW50VGltZSA9IDA7XG4gICAgdm9sdW1lID0gMC4xO1xuICAgIGR1cmF0aW9uID0gMC4wMTtcblxuICAgIHByaXZhdGUgc3RhcnRPZmZzZXRWYWx1ZSA9IDA7XG4gICAgQElucHV0KClcbiAgICBzZXQgc3RhcnRPZmZzZXQoc2Vjb25kczogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc3RhcnRPZmZzZXRWYWx1ZSA9IHNlY29uZHM7XG4gICAgICAgIHRoaXMucGxheWVyLm5hdGl2ZUVsZW1lbnQuY3VycmVudFRpbWUgPSBzZWNvbmRzO1xuICAgIH1cbiAgICBnZXQgc3RhcnRPZmZzZXQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhcnRPZmZzZXRWYWx1ZTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBlbmRPZmZzZXQgPSAwO1xuXG4gICAgY3VyclRpbWVQb3NDaGFuZ2VkKGV2ZW50KSB7XG4gICAgICAgIHRoaXMucGxheWVyLm5hdGl2ZUVsZW1lbnQuY3VycmVudFRpbWUgPSBldmVudC52YWx1ZTtcbiAgICB9XG5cbiAgICBiaW5kUGxheWVyRXZlbnQoKTogdm9pZCB7XG5cbiAgICAgICAgdGhpcy5wbGF5ZXIubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdwbGF5aW5nJywgKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5pc1BsYXlpbmcgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5kdXJhdGlvbiA9IE1hdGguZmxvb3IodGhpcy5wbGF5ZXIubmF0aXZlRWxlbWVudC5kdXJhdGlvbik7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnBsYXllci5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3BhdXNlJywgKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5pc1BsYXlpbmcgPSBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucGxheWVyLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndGltZXVwZGF0ZScsICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFRpbWUgPSBNYXRoLmZsb29yKHRoaXMucGxheWVyLm5hdGl2ZUVsZW1lbnQuY3VycmVudFRpbWUpO1xuICAgICAgICAgICAgLy8gQlVHOiBDb21tZW50aW5nIGZvciBgZW5kZWRgIGV2ZW50IG5vdCBmaXJpbmcgIzY2XG4gICAgICAgICAgICAvLyBpZiAodGhpcy5jdXJyZW50VGltZSA+PSB0aGlzLmR1cmF0aW9uIC0gdGhpcy5lbmRPZmZzZXQpIHtcbiAgICAgICAgICAgIC8vICAgICB0aGlzLnBsYXllci5uYXRpdmVFbGVtZW50LnBhdXNlKCk7XG4gICAgICAgICAgICAvLyB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnBsYXllci5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3ZvbHVtZScsICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMudm9sdW1lID0gTWF0aC5mbG9vcih0aGlzLnBsYXllci5uYXRpdmVFbGVtZW50LnZvbHVtZSk7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoIXRoaXMuaU9TKSB7XG4gICAgICAgICAgICB0aGlzLnBsYXllci5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWRzdGFydCcsICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRlckRpc3BsYXkgPSB0cnVlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wbGF5ZXIubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdsb2FkZWRtZXRhZGF0YScsICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMubG9hZGVyRGlzcGxheSA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5kdXJhdGlvbiA9IE1hdGguZmxvb3IodGhpcy5wbGF5ZXIubmF0aXZlRWxlbWVudC5kdXJhdGlvbik7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnBsYXllci5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2VuZGVkJywgKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy50cmFja0VuZGVkLm5leHQoJ2VuZGVkJyk7XG4gICAgICAgIH0pO1xuXG4gICAgfVxuXG4gICAgcGxheUJ0bkhhbmRsZXIoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmxvYWRlckRpc3BsYXkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5wbGF5ZXIubmF0aXZlRWxlbWVudC5wYXVzZWQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmN1cnJlbnRUaW1lID49IHRoaXMuZHVyYXRpb24gLSB0aGlzLmVuZE9mZnNldCkge1xuICAgICAgICAgICAgICAgIHRoaXMucGxheWVyLm5hdGl2ZUVsZW1lbnQuY3VycmVudFRpbWUgPSB0aGlzLnN0YXJ0T2Zmc2V0O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBsYXllci5uYXRpdmVFbGVtZW50LmN1cnJlbnRUaW1lID0gdGhpcy5jdXJyZW50VGltZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5wbGF5ZXIubmF0aXZlRWxlbWVudC5wbGF5KCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRUaW1lID0gdGhpcy5wbGF5ZXIubmF0aXZlRWxlbWVudC5jdXJyZW50VGltZTtcbiAgICAgICAgICAgIHRoaXMucGxheWVyLm5hdGl2ZUVsZW1lbnQucGF1c2UoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHBsYXkodHJhY2s/OiBUcmFjayk6IHZvaWQge1xuXG4gICAgICAgIGlmICh0cmFjaykge1xuICAgICAgICAgICAgdGhpcy5zdGFydE9mZnNldCA9IHRyYWNrLnN0YXJ0T2Zmc2V0IHx8IDA7XG4gICAgICAgICAgICB0aGlzLmVuZE9mZnNldCA9IHRyYWNrLmVuZE9mZnNldCB8fCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnBsYXllci5uYXRpdmVFbGVtZW50LnBsYXkoKTtcbiAgICAgICAgfSwgNTApO1xuXG4gICAgfVxuXG4gICAgdG9nZ2xlVm9sdW1lKCkge1xuICAgICAgICBpZiAodGhpcy52b2x1bWUgPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMuc2V0Vm9sdW1lKDEuMCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNldFZvbHVtZSgwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRvZ2dsZVJlcGVhdCgpIHtcbiAgICAgICAgaWYgKHRoaXMucmVwZWF0ID09PSAnbm9uZScpIHtcbiAgICAgICAgICAgIHRoaXMucmVwZWF0ID0gJ2FsbCc7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5yZXBlYXQgPT09ICdhbGwnKSB7XG4gICAgICAgICAgICBpZiAodGhpcy50cmFja3MubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVwZWF0ID0gJ29uZSc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMucmVwZWF0ID0gJ25vbmUnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMucmVwZWF0ID09PSAnb25lJyAmJiB0aGlzLnRyYWNrcy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICB0aGlzLnJlcGVhdCA9ICdub25lJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0Vm9sdW1lKHZvbCkge1xuICAgICAgICB0aGlzLnZvbHVtZSA9IHZvbDtcbiAgICAgICAgdGhpcy5wbGF5ZXIubmF0aXZlRWxlbWVudC52b2x1bWUgPSB0aGlzLnZvbHVtZTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcblxuICAgICAgICB0aGlzLmJpbmRQbGF5ZXJFdmVudCgpO1xuXG4gICAgICAgIC8vIGF1dG8gcGxheSBuZXh0IHRyYWNrXG4gICAgICAgIHRoaXMucGxheWVyLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignZW5kZWQnLCAoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5jaGVja0lmU29uZ0hhc1N0YXJ0ZWRTaW5jZUF0bGVhc3RUd29TZWNvbmRzKCkpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5yZXBlYXQgPT09ICdhbGwnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubmV4dFNvbmcoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMucmVwZWF0ID09PSAnb25lJykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnBsYXkoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMucmVwZWF0ID09PSAnbm9uZScpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gRG8gbm90aGluZ1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5wbGF5ZXIubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCd0aW1ldXBkYXRlJywgKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5hdWRpb1BsYXllclNlcnZpY2Uuc2V0Q3VycmVudFRpbWUodGhpcy5wbGF5ZXIubmF0aXZlRWxlbWVudC5jdXJyZW50VGltZSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIFN1YnNjcmliZSB0byBwbGF5bGlzdCBvYnNlcnZlciBmcm9tIEF1ZGlvUGxheWVyU2VydmljZSBhbmRcbiAgICAgICAgLy8gdXBkYXRlIHRoZSBwbGF5bGlzdCB3aXRoaW4gTWF0QWR2YW5jZWRBdWRpb1BsYXllckNvbXBvbmVudFxuICAgICAgICB0aGlzLmF1ZGlvUGxheWVyU2VydmljZS5nZXRQbGF5bGlzdCgpLnN1YnNjcmliZSh0cmFja3MgPT4ge1xuICAgICAgICAgICAgaWYgKHRyYWNrcyAhPT0gbnVsbCAmJiB0cmFja3MgIT09IFtdKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50cmFja3MgPSB0cmFja3M7XG4gICAgICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBpZiAoY2hhbmdlcy5oYXNPd25Qcm9wZXJ0eSgnZGlzcGxheUFydGlzdCcpIHx8IGNoYW5nZXMuaGFzT3duUHJvcGVydHkoJ2Rpc3BsYXlEdXJhdGlvbicpKSB7XG4gICAgICAgICAgICB0aGlzLmJ1aWxkRGlzcGxheWVkQ29sdW1ucygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBidWlsZERpc3BsYXllZENvbHVtbnMoKSB7XG4gICAgICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucyA9IFsndGl0bGUnXTtcbiAgICAgICAgaWYgKHRoaXMuZGlzcGxheUFydGlzdCkge1xuICAgICAgICAgICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLnB1c2goJ2FydGlzdCcpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmRpc3BsYXlEdXJhdGlvbikge1xuICAgICAgICAgICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLnB1c2goJ2R1cmF0aW9uJyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLnB1c2goJ3N0YXR1cycpO1xuICAgIH1cblxuICAgIGluaXRpYWxpemUoKSB7XG4gICAgICAgIHRoaXMuYnVpbGREaXNwbGF5ZWRDb2x1bW5zKCk7XG5cbiAgICAgICAgLy8gcG9wdWxhdGUgaW5kZXhzIGZvciB0aGUgdHJhY2sgYW5kIGNvbmZpZ3VyZVxuICAgICAgICAvLyBtYXRlcmlhbCB0YWJsZSBkYXRhIHNvdXJjZSBhbmQgcGFnaW5hdG9yXG4gICAgICAgIHRoaXMuc2V0RGF0YVNvdXJjZUF0dHJpYnV0ZXMoKTtcblxuXG4gICAgICAgIHRoaXMucGxheWVyLm5hdGl2ZUVsZW1lbnQuY3VycmVudFRpbWUgPSB0aGlzLnN0YXJ0T2Zmc2V0O1xuICAgICAgICB0aGlzLnVwZGF0ZUN1cnJlbnRUcmFjaygpO1xuXG4gICAgICAgIGlmICh0aGlzLmF1dG9QbGF5KSB7XG4gICAgICAgICAgICB0aGlzLnBsYXkoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldERhdGFTb3VyY2VBdHRyaWJ1dGVzKCkge1xuICAgICAgICBsZXQgaW5kZXggPSAxO1xuICAgICAgICBpZiAodGhpcy50cmFja3MpIHtcbiAgICAgICAgICAgIHRoaXMudHJhY2tzLmZvckVhY2goKHRyYWNrOiBUcmFjaykgPT4ge1xuICAgICAgICAgICAgICAgIHRyYWNrLmluZGV4ID0gaW5kZXgrKztcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5kYXRhU291cmNlID0gbmV3IE1hdFRhYmxlRGF0YVNvdXJjZTxUcmFjaz4odGhpcy50cmFja3MpO1xuICAgICAgICAgICAgdGhpcy5kYXRhU291cmNlLnBhZ2luYXRvciA9IHRoaXMucGFnaW5hdG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmV4dFNvbmcoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmRpc3BsYXlQbGF5bGlzdCA9PT0gdHJ1ZVxuICAgICAgICAgICAgJiYgKCgodGhpcy5jdXJyZW50SW5kZXggKyAxKSAlIHRoaXMucGFnaW5hdG9yLnBhZ2VTaXplKSA9PT0gMFxuICAgICAgICAgICAgICAgIHx8ICh0aGlzLmN1cnJlbnRJbmRleCArIDEpID09PSB0aGlzLnBhZ2luYXRvci5sZW5ndGgpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5wYWdpbmF0b3IuaGFzTmV4dFBhZ2UoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMucGFnaW5hdG9yLm5leHRQYWdlKCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLnBhZ2luYXRvci5oYXNOZXh0UGFnZSgpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wYWdpbmF0b3IuZmlyc3RQYWdlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jdXJyZW50VGltZSA9IDA7XG4gICAgICAgIHRoaXMuZHVyYXRpb24gPSAwLjAxO1xuICAgICAgICBpZiAoKHRoaXMuY3VycmVudEluZGV4ICsgMSkgPj0gdGhpcy50cmFja3MubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRJbmRleCA9IDA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRJbmRleCsrO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudXBkYXRlQ3VycmVudFRyYWNrKCk7XG4gICAgICAgIHRoaXMucGxheSgpO1xuICAgIH1cblxuICAgIHByZXZpb3VzU29uZygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jdXJyZW50VGltZSA9IDA7XG4gICAgICAgIHRoaXMuZHVyYXRpb24gPSAwLjAxO1xuICAgICAgICBpZiAoIXRoaXMuY2hlY2tJZlNvbmdIYXNTdGFydGVkU2luY2VBdGxlYXN0VHdvU2Vjb25kcygpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5kaXNwbGF5UGxheWxpc3QgPT09IHRydWVcbiAgICAgICAgICAgICAgICAmJiAoKCh0aGlzLmN1cnJlbnRJbmRleCkgJSB0aGlzLnBhZ2luYXRvci5wYWdlU2l6ZSkgPT09IDBcbiAgICAgICAgICAgICAgICAgICAgfHwgKHRoaXMuY3VycmVudEluZGV4ID09PSAwKSkpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5wYWdpbmF0b3IuaGFzUHJldmlvdXNQYWdlKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYWdpbmF0b3IucHJldmlvdXNQYWdlKCk7ICAgICAgIFxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIXRoaXMucGFnaW5hdG9yLmhhc1ByZXZpb3VzUGFnZSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGFnaW5hdG9yLmxhc3RQYWdlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCh0aGlzLmN1cnJlbnRJbmRleCAtIDEpIDwgMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEluZGV4ID0gKHRoaXMudHJhY2tzLmxlbmd0aCAtIDEpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRJbmRleC0tO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5yZXNldFNvbmcoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVwZGF0ZUN1cnJlbnRUcmFjaygpO1xuICAgICAgICB0aGlzLnBsYXkoKTtcbiAgICB9XG5cbiAgICByZXNldFNvbmcoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucGxheWVyLm5hdGl2ZUVsZW1lbnQuc3JjID0gdGhpcy50cmFja3NbdGhpcy5jdXJyZW50SW5kZXhdLmxpbms7XG4gICAgfVxuXG4gICAgc2VsZWN0VHJhY2soaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLmN1cnJlbnRJbmRleCA9IGluZGV4IC0gMTtcbiAgICAgICAgdGhpcy51cGRhdGVDdXJyZW50VHJhY2soKTtcbiAgICAgICAgdGhpcy5wbGF5KCk7XG4gICAgfVxuXG4gICAgY2hlY2tJZlNvbmdIYXNTdGFydGVkU2luY2VBdGxlYXN0VHdvU2Vjb25kcygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGxheWVyLm5hdGl2ZUVsZW1lbnQuY3VycmVudFRpbWUgPiAyO1xuICAgIH1cblxuICAgIHVwZGF0ZUN1cnJlbnRUcmFjaygpIHtcbiAgICAgICAgdGhpcy5hdWRpb1BsYXllclNlcnZpY2Uuc2V0Q3VycmVudFRyYWNrKHRoaXMudHJhY2tzW3RoaXMuY3VycmVudEluZGV4XSk7XG4gICAgfVxuXG59XG4iXX0=

@@ -8,2 +8,2 @@ export class Track {

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2subW9kZWwuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vcHJvamVjdHMvbmd4LWF1ZGlvLXBsYXllci9zcmMvIiwic291cmNlcyI6WyJsaWIvbW9kZWwvdHJhY2subW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLEtBQUs7SUFBbEI7UUFRUyxhQUFRLEdBQUcsR0FBVyxFQUFFO1lBQzdCLE9BQU8saUJBQWlCLElBQUksQ0FBQyxLQUFLLFlBQVksSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDO1FBQzlELENBQUMsQ0FBQTtJQUNILENBQUM7Q0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBUcmFjayB7XG4gIGluZGV4PzogbnVtYmVyO1xuICBsaW5rOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHN0YXJ0T2Zmc2V0PzogbnVtYmVyO1xuICBlbmRPZmZzZXQ/OiBudW1iZXI7XG4gIGR1cmF0aW9uPzogbnVtYmVyO1xuICBhcnRpc3Q/OiBzdHJpbmc7XG4gIHB1YmxpYyB0b1N0cmluZyA9ICgpOiBzdHJpbmcgPT4ge1xuICAgIHJldHVybiBgVHJhY2sgKGluZGV4OiAke3RoaXMuaW5kZXh9LCB0aXRsZTogJHt0aGlzLnRpdGxlfSlgO1xuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2subW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtYXVkaW8tcGxheWVyL3NyYy9saWIvbW9kZWwvdHJhY2subW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLEtBQUs7SUFBbEI7UUFRUyxhQUFRLEdBQUcsR0FBVyxFQUFFO1lBQzdCLE9BQU8saUJBQWlCLElBQUksQ0FBQyxLQUFLLFlBQVksSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDO1FBQzlELENBQUMsQ0FBQTtJQUNILENBQUM7Q0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBUcmFjayB7XG4gIGluZGV4PzogbnVtYmVyO1xuICBsaW5rOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHN0YXJ0T2Zmc2V0PzogbnVtYmVyO1xuICBlbmRPZmZzZXQ/OiBudW1iZXI7XG4gIGR1cmF0aW9uPzogbnVtYmVyO1xuICBhcnRpc3Q/OiBzdHJpbmc7XG4gIHB1YmxpYyB0b1N0cmluZyA9ICgpOiBzdHJpbmcgPT4ge1xuICAgIHJldHVybiBgVHJhY2sgKGluZGV4OiAke3RoaXMuaW5kZXh9LCB0aXRsZTogJHt0aGlzLnRpdGxlfSlgO1xuICB9XG59XG4iXX0=

@@ -24,2 +24,2 @@ import { NgModule } from '@angular/core';

];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWF1ZGlvLXBsYXllci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vcHJvamVjdHMvbmd4LWF1ZGlvLXBsYXllci9zcmMvIiwic291cmNlcyI6WyJsaWIvbmd4LWF1ZGlvLXBsYXllci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRWpFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seURBQXlELENBQUM7QUFRL0YsTUFBTSxPQUFPLG9CQUFvQjs7O1lBTmhDLFFBQVEsU0FBQztnQkFDUixZQUFZLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSxvQkFBb0IsQ0FBQztnQkFDMUQsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxrQkFBa0I7b0JBQ3JHLGVBQWUsRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxhQUFhLENBQUM7Z0JBQ3pFLE9BQU8sRUFBRSxDQUFDLG9CQUFvQixDQUFDO2FBQ2hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTWF0U2xpZGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2xpZGVyJztcbmltcG9ydCB7IE1hdFBhZ2luYXRvck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XG5pbXBvcnQgeyBNYXRUYWJsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0RXhwYW5zaW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZXhwYW5zaW9uJztcbmltcG9ydCB7IE1hdENhcmRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jYXJkJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5cbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBTZWNvbmRzVG9NaW51dGVzUGlwZSB9IGZyb20gJy4vcGlwZS9zZWNvbmRzLXRvLW1pbnV0ZXMnO1xuXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IEF1ZGlvUGxheWVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnQvbmd4LWF1ZGlvLXBsYXllci9uZ3gtYXVkaW8tcGxheWVyLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1NlY29uZHNUb01pbnV0ZXNQaXBlLCBBdWRpb1BsYXllckNvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBNYXRCdXR0b25Nb2R1bGUsIE1hdENhcmRNb2R1bGUsIE1hdFRhYmxlTW9kdWxlLCBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgTWF0U2xpZGVyTW9kdWxlLCBNYXRFeHBhbnNpb25Nb2R1bGUsIE1hdFBhZ2luYXRvck1vZHVsZSwgTWF0SWNvbk1vZHVsZV0sXG4gIGV4cG9ydHM6IFtBdWRpb1BsYXllckNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgTmd4QXVkaW9QbGF5ZXJNb2R1bGUge1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWF1ZGlvLXBsYXllci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtYXVkaW8tcGxheWVyL3NyYy9saWIvbmd4LWF1ZGlvLXBsYXllci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRWpFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seURBQXlELENBQUM7QUFRL0YsTUFBTSxPQUFPLG9CQUFvQjs7O1lBTmhDLFFBQVEsU0FBQztnQkFDUixZQUFZLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSxvQkFBb0IsQ0FBQztnQkFDMUQsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxrQkFBa0I7b0JBQ3JHLGVBQWUsRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxhQUFhLENBQUM7Z0JBQ3pFLE9BQU8sRUFBRSxDQUFDLG9CQUFvQixDQUFDO2FBQ2hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTWF0U2xpZGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2xpZGVyJztcbmltcG9ydCB7IE1hdFBhZ2luYXRvck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XG5pbXBvcnQgeyBNYXRUYWJsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0RXhwYW5zaW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZXhwYW5zaW9uJztcbmltcG9ydCB7IE1hdENhcmRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jYXJkJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5cbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBTZWNvbmRzVG9NaW51dGVzUGlwZSB9IGZyb20gJy4vcGlwZS9zZWNvbmRzLXRvLW1pbnV0ZXMnO1xuXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IEF1ZGlvUGxheWVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnQvbmd4LWF1ZGlvLXBsYXllci9uZ3gtYXVkaW8tcGxheWVyLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1NlY29uZHNUb01pbnV0ZXNQaXBlLCBBdWRpb1BsYXllckNvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBNYXRCdXR0b25Nb2R1bGUsIE1hdENhcmRNb2R1bGUsIE1hdFRhYmxlTW9kdWxlLCBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgTWF0U2xpZGVyTW9kdWxlLCBNYXRFeHBhbnNpb25Nb2R1bGUsIE1hdFBhZ2luYXRvck1vZHVsZSwgTWF0SWNvbk1vZHVsZV0sXG4gIGV4cG9ydHM6IFtBdWRpb1BsYXllckNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgTmd4QXVkaW9QbGF5ZXJNb2R1bGUge1xufVxuIl19

@@ -20,2 +20,2 @@ import { Pipe } from '@angular/core';

];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vjb25kcy10by1taW51dGVzLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uL3Byb2plY3RzL25neC1hdWRpby1wbGF5ZXIvc3JjLyIsInNvdXJjZXMiOlsibGliL3BpcGUvc2Vjb25kcy10by1taW51dGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3BEOzs7RUFHRTtBQUVGLE1BQU0sT0FBTyxvQkFBb0I7SUFDN0IsU0FBUyxDQUFDLElBQVk7UUFDbEIsTUFBTSxLQUFLLEdBQUcsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4RCxNQUFNLE9BQU8sR0FBRyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakUsTUFBTSxPQUFPLEdBQUcsQ0FBQyxHQUFHLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVDLElBQUksS0FBSyxLQUFLLElBQUksRUFBQztZQUFFLE9BQU8sR0FBRyxLQUFLLElBQUksT0FBTyxJQUFJLE9BQU8sRUFBRSxDQUFDO1NBQUU7UUFDL0QsT0FBTyxHQUFHLE9BQU8sSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUNuQyxDQUFDOzs7WUFSSixJQUFJLFNBQUMsRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG4vKlxuICogVHJhbnNmb3JtIHNlY29uZHMgdG8gbWludXRlczpzZWNvbmRzXG4gKiBFeGFtcGxlIDogMjcwIC0+IDAyOjMwXG4qL1xuQFBpcGUoeyBuYW1lOiAnc2Vjb25kc1RvTWludXRlcycgfSlcbmV4cG9ydCBjbGFzcyBTZWNvbmRzVG9NaW51dGVzUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIHRyYW5zZm9ybSh0aW1lOiBudW1iZXIpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBob3VycyA9ICgnMCcgKyBNYXRoLmZsb29yKHRpbWUgLyAzNjAwKSkuc2xpY2UoLTIpO1xuICAgICAgICBjb25zdCBtaW51dGVzID0gKCcwJyArIE1hdGguZmxvb3IoKHRpbWUgJSAzNjAwKSAvIDYwKSkuc2xpY2UoLTIpO1xuICAgICAgICBjb25zdCBzZWNvbmRzID0gKCcwJyArIHRpbWUgJSA2MCkuc2xpY2UoLTIpO1xuICAgICAgICBpZiAoaG91cnMgIT09ICcwMCcpeyByZXR1cm4gYCR7aG91cnN9OiR7bWludXRlc306JHtzZWNvbmRzfWA7IH1cbiAgICAgICAgcmV0dXJuIGAke21pbnV0ZXN9OiR7c2Vjb25kc31gO1xuICAgIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vjb25kcy10by1taW51dGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWF1ZGlvLXBsYXllci9zcmMvbGliL3BpcGUvc2Vjb25kcy10by1taW51dGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3BEOzs7RUFHRTtBQUVGLE1BQU0sT0FBTyxvQkFBb0I7SUFDN0IsU0FBUyxDQUFDLElBQVk7UUFDbEIsTUFBTSxLQUFLLEdBQUcsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4RCxNQUFNLE9BQU8sR0FBRyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakUsTUFBTSxPQUFPLEdBQUcsQ0FBQyxHQUFHLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVDLElBQUksS0FBSyxLQUFLLElBQUksRUFBRTtZQUFFLE9BQU8sR0FBRyxLQUFLLElBQUksT0FBTyxJQUFJLE9BQU8sRUFBRSxDQUFDO1NBQUU7UUFDaEUsT0FBTyxHQUFHLE9BQU8sSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUNuQyxDQUFDOzs7WUFSSixJQUFJLFNBQUMsRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG4vKlxuICogVHJhbnNmb3JtIHNlY29uZHMgdG8gbWludXRlczpzZWNvbmRzXG4gKiBFeGFtcGxlIDogMjcwIC0+IDAyOjMwXG4qL1xuQFBpcGUoeyBuYW1lOiAnc2Vjb25kc1RvTWludXRlcycgfSlcbmV4cG9ydCBjbGFzcyBTZWNvbmRzVG9NaW51dGVzUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIHRyYW5zZm9ybSh0aW1lOiBudW1iZXIpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBob3VycyA9ICgnMCcgKyBNYXRoLmZsb29yKHRpbWUgLyAzNjAwKSkuc2xpY2UoLTIpO1xuICAgICAgICBjb25zdCBtaW51dGVzID0gKCcwJyArIE1hdGguZmxvb3IoKHRpbWUgJSAzNjAwKSAvIDYwKSkuc2xpY2UoLTIpO1xuICAgICAgICBjb25zdCBzZWNvbmRzID0gKCcwJyArIHRpbWUgJSA2MCkuc2xpY2UoLTIpO1xuICAgICAgICBpZiAoaG91cnMgIT09ICcwMCcpIHsgcmV0dXJuIGAke2hvdXJzfToke21pbnV0ZXN9OiR7c2Vjb25kc31gOyB9XG4gICAgICAgIHJldHVybiBgJHttaW51dGVzfToke3NlY29uZHN9YDtcbiAgICB9XG59XG4iXX0=

@@ -44,2 +44,2 @@ import { Injectable } from '@angular/core';

];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaW8tcGxheWVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vcHJvamVjdHMvbmd4LWF1ZGlvLXBsYXllci9zcmMvIiwic291cmNlcyI6WyJsaWIvc2VydmljZS9hdWRpby1wbGF5ZXItc2VydmljZS9hdWRpby1wbGF5ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7O0FBTW5ELE1BQU0sT0FBTyxrQkFBa0I7SUFIL0I7UUFLRSw2QkFBNkI7UUFDN0IsV0FBTSxHQUFZLEVBQUUsQ0FBQztRQUNyQixxQkFBZ0IsR0FDZCxJQUFJLGVBQWUsQ0FBVSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFNUMsd0JBQXdCO1FBQ3hCLGlCQUFZLEdBQVUsSUFBSSxDQUFDO1FBQzNCLHlCQUFvQixHQUNsQixJQUFJLGVBQWUsQ0FBUSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFaEQsdUJBQXVCO1FBQ3ZCLGdCQUFXLEdBQVEsSUFBSSxDQUFDO1FBQ3hCLHdCQUFtQixHQUNqQixJQUFJLGVBQWUsQ0FBTSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7S0E2QjlDO0lBM0JDLFdBQVcsQ0FBQyxNQUFlO1FBQ3pCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDOUMsQ0FBQztJQUVELGVBQWUsQ0FBQyxZQUFtQjtRQUNqQyxJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztRQUNqQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ2xELENBQUM7SUFFRCxjQUFjLENBQUMsV0FBZ0I7UUFDN0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDL0IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNqRCxDQUFDOzs7O1lBN0NGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVHJhY2sgfSBmcm9tICcuLi8uLi9tb2RlbC90cmFjay5tb2RlbCc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBBdWRpb1BsYXllclNlcnZpY2Uge1xuXG4gIC8vIER5bmFtaWMgdXBkYXRlIG9mIHBsYXlsaXN0XG4gIHRyYWNrczogVHJhY2tbXSA9IFtdO1xuICBwbGF5bGlzdFN1YmplY3QkOiBCZWhhdmlvclN1YmplY3Q8VHJhY2tbXT4gPVxuICAgIG5ldyBCZWhhdmlvclN1YmplY3Q8VHJhY2tbXT4odGhpcy50cmFja3MpO1xuXG4gIC8vIEdldCB0aGUgY3VycmVudCB0cmFja1xuICBjdXJyZW50VHJhY2s6IFRyYWNrID0gbnVsbDtcbiAgY3VycmVudFRyYWNrU3ViamVjdCQ6IEJlaGF2aW9yU3ViamVjdDxUcmFjaz4gPVxuICAgIG5ldyBCZWhhdmlvclN1YmplY3Q8VHJhY2s+KHRoaXMuY3VycmVudFRyYWNrKTtcblxuICAvLyBHZXQgdGhlIGN1cnJlbnQgdGltZVxuICBjdXJyZW50VGltZTogYW55ID0gbnVsbDtcbiAgY3VycmVudFRpbWVTdWJqZWN0JDogQmVoYXZpb3JTdWJqZWN0PGFueT4gPVxuICAgIG5ldyBCZWhhdmlvclN1YmplY3Q8YW55Pih0aGlzLmN1cnJlbnRUaW1lKTtcblxuICBzZXRQbGF5bGlzdCh0cmFja3M6IFRyYWNrW10pIHtcbiAgICB0aGlzLnRyYWNrcyA9IHRyYWNrcztcbiAgICB0aGlzLnBsYXlsaXN0U3ViamVjdCQubmV4dCh0aGlzLnRyYWNrcyk7XG4gIH1cblxuICBnZXRQbGF5bGlzdCgpOiBPYnNlcnZhYmxlPFRyYWNrW10+IHtcbiAgICByZXR1cm4gdGhpcy5wbGF5bGlzdFN1YmplY3QkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgc2V0Q3VycmVudFRyYWNrKGN1cnJlbnRUcmFjazogVHJhY2spIHtcbiAgICB0aGlzLmN1cnJlbnRUcmFjayA9IGN1cnJlbnRUcmFjaztcbiAgICB0aGlzLmN1cnJlbnRUcmFja1N1YmplY3QkLm5leHQodGhpcy5jdXJyZW50VHJhY2spO1xuICB9XG5cbiAgZ2V0Q3VycmVudFRyYWNrKCk6IE9ic2VydmFibGU8VHJhY2s+IHtcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50VHJhY2tTdWJqZWN0JC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHNldEN1cnJlbnRUaW1lKGN1cnJlbnRUaW1lOiBhbnkpIHtcbiAgICB0aGlzLmN1cnJlbnRUaW1lID0gY3VycmVudFRpbWU7XG4gICAgdGhpcy5jdXJyZW50VGltZVN1YmplY3QkLm5leHQodGhpcy5jdXJyZW50VGltZSk7XG4gIH1cblxuICBnZXRDdXJyZW50VGltZSgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRUaW1lU3ViamVjdCQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaW8tcGxheWVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtYXVkaW8tcGxheWVyL3NyYy9saWIvc2VydmljZS9hdWRpby1wbGF5ZXItc2VydmljZS9hdWRpby1wbGF5ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7O0FBTW5ELE1BQU0sT0FBTyxrQkFBa0I7SUFIL0I7UUFLRSw2QkFBNkI7UUFDN0IsV0FBTSxHQUFZLEVBQUUsQ0FBQztRQUNyQixxQkFBZ0IsR0FDZCxJQUFJLGVBQWUsQ0FBVSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFNUMsd0JBQXdCO1FBQ3hCLGlCQUFZLEdBQVUsSUFBSSxDQUFDO1FBQzNCLHlCQUFvQixHQUNsQixJQUFJLGVBQWUsQ0FBUSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFaEQsdUJBQXVCO1FBQ3ZCLGdCQUFXLEdBQVEsSUFBSSxDQUFDO1FBQ3hCLHdCQUFtQixHQUNqQixJQUFJLGVBQWUsQ0FBTSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7S0E2QjlDO0lBM0JDLFdBQVcsQ0FBQyxNQUFlO1FBQ3pCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDOUMsQ0FBQztJQUVELGVBQWUsQ0FBQyxZQUFtQjtRQUNqQyxJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztRQUNqQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ2xELENBQUM7SUFFRCxjQUFjLENBQUMsV0FBZ0I7UUFDN0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDL0IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNqRCxDQUFDOzs7O1lBN0NGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVHJhY2sgfSBmcm9tICcuLi8uLi9tb2RlbC90cmFjay5tb2RlbCc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBBdWRpb1BsYXllclNlcnZpY2Uge1xuXG4gIC8vIER5bmFtaWMgdXBkYXRlIG9mIHBsYXlsaXN0XG4gIHRyYWNrczogVHJhY2tbXSA9IFtdO1xuICBwbGF5bGlzdFN1YmplY3QkOiBCZWhhdmlvclN1YmplY3Q8VHJhY2tbXT4gPVxuICAgIG5ldyBCZWhhdmlvclN1YmplY3Q8VHJhY2tbXT4odGhpcy50cmFja3MpO1xuXG4gIC8vIEdldCB0aGUgY3VycmVudCB0cmFja1xuICBjdXJyZW50VHJhY2s6IFRyYWNrID0gbnVsbDtcbiAgY3VycmVudFRyYWNrU3ViamVjdCQ6IEJlaGF2aW9yU3ViamVjdDxUcmFjaz4gPVxuICAgIG5ldyBCZWhhdmlvclN1YmplY3Q8VHJhY2s+KHRoaXMuY3VycmVudFRyYWNrKTtcblxuICAvLyBHZXQgdGhlIGN1cnJlbnQgdGltZVxuICBjdXJyZW50VGltZTogYW55ID0gbnVsbDtcbiAgY3VycmVudFRpbWVTdWJqZWN0JDogQmVoYXZpb3JTdWJqZWN0PGFueT4gPVxuICAgIG5ldyBCZWhhdmlvclN1YmplY3Q8YW55Pih0aGlzLmN1cnJlbnRUaW1lKTtcblxuICBzZXRQbGF5bGlzdCh0cmFja3M6IFRyYWNrW10pIHtcbiAgICB0aGlzLnRyYWNrcyA9IHRyYWNrcztcbiAgICB0aGlzLnBsYXlsaXN0U3ViamVjdCQubmV4dCh0aGlzLnRyYWNrcyk7XG4gIH1cblxuICBnZXRQbGF5bGlzdCgpOiBPYnNlcnZhYmxlPFRyYWNrW10+IHtcbiAgICByZXR1cm4gdGhpcy5wbGF5bGlzdFN1YmplY3QkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgc2V0Q3VycmVudFRyYWNrKGN1cnJlbnRUcmFjazogVHJhY2spIHtcbiAgICB0aGlzLmN1cnJlbnRUcmFjayA9IGN1cnJlbnRUcmFjaztcbiAgICB0aGlzLmN1cnJlbnRUcmFja1N1YmplY3QkLm5leHQodGhpcy5jdXJyZW50VHJhY2spO1xuICB9XG5cbiAgZ2V0Q3VycmVudFRyYWNrKCk6IE9ic2VydmFibGU8VHJhY2s+IHtcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50VHJhY2tTdWJqZWN0JC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHNldEN1cnJlbnRUaW1lKGN1cnJlbnRUaW1lOiBhbnkpIHtcbiAgICB0aGlzLmN1cnJlbnRUaW1lID0gY3VycmVudFRpbWU7XG4gICAgdGhpcy5jdXJyZW50VGltZVN1YmplY3QkLm5leHQodGhpcy5jdXJyZW50VGltZSk7XG4gIH1cblxuICBnZXRDdXJyZW50VGltZSgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRUaW1lU3ViamVjdCQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxufVxuIl19

@@ -6,2 +6,2 @@ /**

export { SecondsToMinutesPipe as ɵa } from './lib/pipe/seconds-to-minutes';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWF1ZGlvLXBsYXllci5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi9wcm9qZWN0cy9uZ3gtYXVkaW8tcGxheWVyL3NyYy8iLCJzb3VyY2VzIjpbIm5neC1hdWRpby1wbGF5ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQztBQUU3QixPQUFPLEVBQUMsb0JBQW9CLElBQUksRUFBRSxFQUFDLE1BQU0sK0JBQStCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljX2FwaSc7XG5cbmV4cG9ydCB7U2Vjb25kc1RvTWludXRlc1BpcGUgYXMgybVhfSBmcm9tICcuL2xpYi9waXBlL3NlY29uZHMtdG8tbWludXRlcyc7Il19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWF1ZGlvLXBsYXllci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25neC1hdWRpby1wbGF5ZXIvc3JjL25neC1hdWRpby1wbGF5ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQztBQUU3QixPQUFPLEVBQUMsb0JBQW9CLElBQUksRUFBRSxFQUFDLE1BQU0sK0JBQStCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljX2FwaSc7XG5cbmV4cG9ydCB7U2Vjb25kc1RvTWludXRlc1BpcGUgYXMgybVhfSBmcm9tICcuL2xpYi9waXBlL3NlY29uZHMtdG8tbWludXRlcyc7Il19

@@ -7,2 +7,2 @@ /*

export * from './lib/model/track.model';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi9wcm9qZWN0cy9uZ3gtYXVkaW8tcGxheWVyL3NyYy8iLCJzb3VyY2VzIjpbInB1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLDZEQUE2RCxDQUFDO0FBQzVFLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygbmd4LWF1ZGlvLXBsYXllclxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudC9uZ3gtYXVkaW8tcGxheWVyL25neC1hdWRpby1wbGF5ZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL25neC1hdWRpby1wbGF5ZXIubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVsL3RyYWNrLm1vZGVsJztcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25neC1hdWRpby1wbGF5ZXIvc3JjL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLDZEQUE2RCxDQUFDO0FBQzVFLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygbmd4LWF1ZGlvLXBsYXllclxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudC9uZ3gtYXVkaW8tcGxheWVyL25neC1hdWRpby1wbGF5ZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL25neC1hdWRpby1wbGF5ZXIubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVsL3RyYWNrLm1vZGVsJztcbiJdfQ==

@@ -111,2 +111,3 @@ import { ɵɵdefineInjectable, Injectable, Component, ElementRef, Input, ViewChild, Output, Pipe, NgModule } from '@angular/core';

this.isPlaying = true;
this.duration = Math.floor(this.player.nativeElement.duration);
});

@@ -325,4 +326,4 @@ this.player.nativeElement.addEventListener('pause', () => {

selector: 'mat-advanced-audio-player,ngx-audio-player',
template: "<mat-card class=\"ngx-d-flex ngx-justify-content-center ngx-audio-player z-depth-1 mat-elevation-z2\"\n style=\"margin: 0px;\">\n\n <audio #audioPlayer [src]=\"tracks[currentIndex]?.link\"></audio>\n\n <button *ngIf=\"tracks.length > 1\" (click)='previousSong();' [disabled]=\"loaderDisplay\" class=\"ngx-p-1\" mat-button>\n <mat-icon aria-hidden=\"true\">\n <!-- Skip previous icon (skip_previous) -->\n <svg height=\"32\" viewBox=\"0 0 24 24\" width=\"32\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6 6h2v12H6zm3.5 6l8.5 6V6z\" />\n <path d=\"M0 0h32v32H0z\" fill=\"none\" />\n </svg>\n </mat-icon>\n </button>\n <button (click)='playBtnHandler();' [disabled]=\"loaderDisplay\" class=\"ngx-p-1 play-pause\" mat-button>\n\n <svg *ngIf=\"loaderDisplay\" height=\"34px\" preserveAspectRatio=\"xMidYMid\"\n style=\"margin: auto; display: block; shape-rendering: auto;\" viewBox=\"0 0 100 100\" width=\"34px\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <g transform=\"rotate(0 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.9166666666666666s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(30 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.8333333333333334s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(60 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.75s\" dur=\"1s\" keyTimes=\"0;1\" repeatCount=\"indefinite\"\n values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(90 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.6666666666666666s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(120 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.5833333333333334s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(150 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.5s\" dur=\"1s\" keyTimes=\"0;1\" repeatCount=\"indefinite\"\n values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(180 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.4166666666666667s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(210 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.3333333333333333s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(240 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.25s\" dur=\"1s\" keyTimes=\"0;1\" repeatCount=\"indefinite\"\n values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(270 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.16666666666666666s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(300 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.08333333333333333s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(330 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"0s\" dur=\"1s\" keyTimes=\"0;1\" repeatCount=\"indefinite\"\n values=\"1;0\" />\n </rect>\n </g>\n </svg>\n\n <mat-icon *ngIf=\"!loaderDisplay && !isPlaying\" aria-hidden=\"true\" class=\"play-track\">\n <!-- Play icon (play_arrow) -->\n <svg height=\"32\" viewBox=\"0 0 24 24\" width=\"32\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M8 5v14l11-7z\" />\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n </svg>\n </mat-icon>\n <mat-icon *ngIf=\"!loaderDisplay && isPlaying\" aria-hidden=\"true\" class=\"pause-track\">\n <!-- Pause icon (pause) -->\n <svg height=\"32\" viewBox=\"0 0 24 24\" width=\"32\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6 19h4V5H6v14zm8-14v14h4V5h-4z\" />\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n </svg>\n </mat-icon>\n </button>\n <button *ngIf=\"tracks.length > 1\" (click)='nextSong();' [disabled]=\"loaderDisplay\" class=\"ngx-p-1 skip-next\"\n mat-button>\n <mat-icon aria-hidden=\"true\" class=\"next-track\">\n <!-- Skip next icon (skip_next) -->\n <svg height=\"32\" viewBox=\"0 0 24 24\" width=\"32\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6 18l8.5-6L6 6v12zM16 6v12h2V6h-2z\" />\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n </svg>\n </mat-icon>\n </button>\n\n <div class=\"ngx-col\">\n <div class=\"ngx-d-flex ngx-flex-fill ngx-justify-content-center\">\n <div class=\"ngx-d-none ngx-d-sm-block ngx-py-3 ngx-px-1\" style=\"font-size: 12px\">\n <span *ngIf=\"duration !== 0.01\">\n {{currentTime | secondsToMinutes}}\n </span>\n </div>\n <mat-slider [disabled]=\"disablePositionSlider\" (change)=\"currTimePosChanged($event)\" [min]=\"startOffset\"\n class=\"ngx-d-none ngx-d-sm-block ngx-flex-fill ngx-p-1\" max=\"{{duration-endOffset}}\" style=\"width: 100%\"\n value=\"{{currentTime}}\"></mat-slider>\n <div class=\"ngx-py-3 ngx-px-1\" style=\"font-size: 12px; text-align: right\">\n <span *ngIf=\"duration !== 0.01\">\n -{{duration-currentTime | secondsToMinutes }}\n </span>\n </div>\n </div>\n </div>\n <button (click)='toggleRepeat();' *ngIf=\"displayRepeatControls\" class=\"ngx-p-1 volume justify-content-center\" mat-button>\n <mat-icon *ngIf=\"repeat === 'none'\" aria-hidden=\"true\" class=\"volume-mute justify-content-center\">\n <!-- Repeat None -->\n <svg height=\"24\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 22 22\">\n <g>\n <g>\n <path d=\"m0,0l24,0l0,24l-24,0l0,-24z\" fill=\"none\" />\n <path d=\"m8,20l0,1.932a0.5,0.5 0 0 1 -0.82,0.385l-4.12,-3.433a0.5,0.5 0 0 1 0.322,-0.884l14.618,0a2,2 0 0 0 2,-2l0,-8l2,0l0,8a4,4 0 0 1 -4,4l-10,0zm8,-16l0,-1.932a0.5,0.5 0 0 1 0.82,-0.385l4.12,3.433a0.5,0.5 0 0 1 -0.321,0.884l-14.619,0a2,2 0 0 0 -2,2l0,8l-2,0l0,-8a4,4 0 0 1 4,-4l10,0z\" />\n <path d=\"M 3 0 L 22.4164 22.2706 L 21 24 L 1.5836 1.8128 L 3 0\"></path>\n </g>\n <!-- <line xmlns=\"http://www.w3.org/2000/svg\" id=\"svg_4\" y2=\"22.27056\" x2=\"22.41638\" y1=\"1.81276\" x1=\"1.58362\" stroke-width=\"2\" fill=\"none\"/> -->\n </g>\n </svg>\n </mat-icon>\n <mat-icon *ngIf=\"repeat === 'all'\" aria-hidden=\"true\" class=\"volume-mute\">\n <!-- Repeat All -->\n <svg height=\"24\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 22 22\">\n <g>\n <path fill=\"none\" d=\"M0 0h24v24H0z\" />\n <path\n d=\"M8 20v1.932a.5.5 0 0 1-.82.385l-4.12-3.433A.5.5 0 0 1 3.382 18H18a2 2 0 0 0 2-2V8h2v8a4 4 0 0 1-4 4H8zm8-16V2.068a.5.5 0 0 1 .82-.385l4.12 3.433a.5.5 0 0 1-.321.884H6a2 2 0 0 0-2 2v8H2V8a4 4 0 0 1 4-4h10z\" />\n </g>\n </svg>\n </mat-icon>\n <mat-icon *ngIf=\"repeat === 'one'\" aria-hidden=\"true\" class=\"volume-up\">\n <!-- Repeat ONE -->\n <svg height=\"24\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 22 22\">\n <g>\n <path fill=\"none\" d=\"M0 0h24v24H0z\" />\n <path\n d=\"M8 20v1.932a.5.5 0 0 1-.82.385l-4.12-3.433A.5.5 0 0 1 3.382 18H18a2 2 0 0 0 2-2V8h2v8a4 4 0 0 1-4 4H8zm8-16V2.068a.5.5 0 0 1 .82-.385l4.12 3.433a.5.5 0 0 1-.321.884H6a2 2 0 0 0-2 2v8H2V8a4 4 0 0 1 4-4h10zm-5 4h2v8h-2v-6H9V9l2-1z\" />\n </g>\n </svg>\n </mat-icon>\n </button>\n <button (click)='toggleVolume();' *ngIf=\"displayVolumeControls\" class=\"ngx-p-1 volume\" mat-button>\n <mat-icon *ngIf=\"volume === 0\" aria-hidden=\"true\" class=\"volume-mute\">\n <!-- Volume mute icon (volume_off) -->\n <svg height=\"28\" viewBox=\"0 0 24 24\" width=\"28\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M16.5 12c0-1.77-1.02-3.29-2.5-4.03v2.21l2.45 2.45c.03-.2.05-.41.05-.63zm2.5 0c0 .94-.2 1.82-.54 2.64l1.51 1.51C20.63 14.91 21 13.5 21 12c0-4.28-2.99-7.86-7-8.77v2.06c2.89.86 5 3.54 5 6.71zM4.27 3L3 4.27 7.73 9H3v6h4l5 5v-6.73l4.25 4.25c-.67.52-1.42.93-2.25 1.18v2.06c1.38-.31 2.63-.95 3.69-1.81L19.73 21 21 19.73l-9-9L4.27 3zM12 4L9.91 6.09 12 8.18V4z\" />\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n </svg>\n </mat-icon>\n <mat-icon *ngIf=\"volume > 0\" aria-hidden=\"true\" class=\"volume-up\">\n <!-- Volume up icon (volume_up) -->\n <svg height=\"28\" viewBox=\"0 0 24 24\" width=\"28\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M3 9v6h4l5 5V4L7 9H3zm13.5 3c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02zM14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77s-2.99-7.86-7-8.77z\" />\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n </svg>\n </mat-icon>\n </button>\n</mat-card>\n\n<mat-card *ngIf=\"displayTitle\" class=\"mat-elevation-z1\">\n <div style=\"text-align: center;\">\n <div style=\"margin: 1px 2px; padding: 1em\">\n <span *ngIf=\"!isPlaying\">{{ tracks[currentIndex]?.title }}{{ displayArtist && tracks[currentIndex]?.artist ?\n ' | ' + tracks[currentIndex]?.artist : ''}}</span>\n <marquee *ngIf=\"isPlaying\" behavior=\"scroll\" direction=\"left\">{{ tracks[currentIndex]?.title\n }}{{ displayArtist && tracks[currentIndex]?.artist ? ' | ' + tracks[currentIndex]?.artist : ''}}\n </marquee>\n </div>\n <div class=\"clear\"></div>\n </div>\n</mat-card>\n\n<mat-accordion *ngIf=\"displayPlaylist && tracks.length > 1\">\n <mat-expansion-panel [expanded]=\"expanded\">\n <mat-expansion-panel-header>\n {{tableHeader}}\n </mat-expansion-panel-header>\n <table [dataSource]=\"dataSource\" class=\"mat-elevation-z6\" mat-table>\n <ng-container matColumnDef=\"title\">\n <th *matHeaderCellDef mat-header-cell>{{titleHeader}}</th>\n <td (click)=\"selectTrack(element.index)\" *matCellDef=\"let element\" mat-cell>\n {{element.title}}\n </td>\n </ng-container>\n <ng-container matColumnDef=\"artist\">\n <th *matHeaderCellDef mat-header-cell>{{artistHeader}}</th>\n <td (click)=\"selectTrack(element.index)\" *matCellDef=\"let element\" mat-cell>\n {{element?.artist ? element?.artist : ''}}\n </td>\n </ng-container>\n <ng-container matColumnDef=\"duration\">\n <th *matHeaderCellDef mat-header-cell>{{durationHeader}}</th>\n <td (click)=\"selectTrack(element.index)\" *matCellDef=\"let element\" mat-cell>\n {{element?.duration ? (element?.duration | secondsToMinutes) : ''}}\n </td>\n </ng-container>\n <ng-container matColumnDef=\"status\">\n <th *matHeaderCellDef mat-header-cell></th>\n <td *matCellDef=\"let element\" mat-cell>\n <div *ngIf=\"tracks[currentIndex]?.title === element.title\">\n <!-- <mat-icon *ngIf=\"isPlaying\" aria-hidden=\"true\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M6 19h4V5H6v14zm8-14v14h4V5h-4z\"/><path d=\"M0 0h24v24H0z\" fill=\"none\"/></svg>\n </mat-icon> -->\n <mat-icon *ngIf=\"isPlaying\" aria-hidden=\"true\" class=\"currently-playing\">\n <!-- Play icon (play_arrow) -->\n <svg height=\"24\" viewBox=\"0 0 24 24\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n <path\n d=\"M12 3v9.28c-.47-.17-.97-.28-1.5-.28C8.01 12 6 14.01 6 16.5S8.01 21 10.5 21c2.31 0 4.2-1.75 4.45-4H15V6h4V3h-7z\" />\n </svg>\n </mat-icon>\n </div>\n </td>\n </ng-container>\n <tr *matHeaderRowDef=\"displayedColumns\" mat-header-row></tr>\n <tr *matRowDef=\"let row; columns: displayedColumns;\" class=\"mat-select-content\" mat-row></tr>\n </table>\n <mat-paginator [pageSizeOptions]=\"pageSizeOptions\" showFirstLastButtons></mat-paginator>\n </mat-expansion-panel>\n</mat-accordion>",
styles: ["mat-card,mat-slider{padding:0!important}button:focus,button:hover{outline:0!important}svg{vertical-align:top}.mat-icon{height:32px!important;width:32px!important}mat-icon>.currently-playing{height:16px!important;width:16px!important}table{width:100%}.ngx-advanced-audio-player{min-width:325px}.material-icons{font-size:16px!important}.play-pause{border-right:1px solid rgba(0,0,0,.1)}.play-pause,.volume{border-left:1px solid rgba(0,0,0,.1)}.skip-next{border-right:1px solid rgba(0,0,0,.1)}*,:after,:before{box-sizing:inherit}.ngx-p-1{padding:.25rem!important}.ngx-col,.ngx-col-1,.ngx-col-2,.ngx-col-3,.ngx-col-4,.ngx-col-5,.ngx-col-6,.ngx-col-7,.ngx-col-8,.ngx-col-9,.ngx-col-10,.ngx-col-11,.ngx-col-12,.ngx-col-auto,.ngx-col-lg,.ngx-col-lg-1,.ngx-col-lg-2,.ngx-col-lg-3,.ngx-col-lg-4,.ngx-col-lg-5,.ngx-col-lg-6,.ngx-col-lg-7,.ngx-col-lg-8,.ngx-col-lg-9,.ngx-col-lg-10,.ngx-col-lg-11,.ngx-col-lg-12,.ngx-col-lg-auto,.ngx-col-md,.ngx-col-md-1,.ngx-col-md-2,.ngx-col-md-3,.ngx-col-md-4,.ngx-col-md-5,.ngx-col-md-6,.ngx-col-md-7,.ngx-col-md-8,.ngx-col-md-9,.ngx-col-md-10,.ngx-col-md-11,.ngx-col-md-12,.ngx-col-md-auto,.ngx-col-sm,.ngx-col-sm-1,.ngx-col-sm-2,.ngx-col-sm-3,.ngx-col-sm-4,.ngx-col-sm-5,.ngx-col-sm-6,.ngx-col-sm-7,.ngx-col-sm-8,.ngx-col-sm-9,.ngx-col-sm-10,.ngx-col-sm-11,.ngx-col-sm-12,.ngx-col-sm-auto,.ngx-col-xl,.ngx-col-xl-1,.ngx-col-xl-2,.ngx-col-xl-3,.ngx-col-xl-4,.ngx-col-xl-5,.ngx-col-xl-6,.ngx-col-xl-7,.ngx-col-xl-8,.ngx-col-xl-9,.ngx-col-xl-10,.ngx-col-xl-11,.ngx-col-xl-12,.ngx-col-xl-auto{padding-left:15px;padding-right:15px;position:relative;width:100%}.ngx-col{flex-basis:0;flex-grow:1;max-width:100%}.ngx-justify-content-center{justify-content:center!important}.ngx-flex-fill{flex:1 1 auto!important}.ngx-d-flex{display:flex!important}.ngx-pb-3,.ngx-py-3{padding-bottom:1rem!important}.ngx-pt-3,.ngx-py-3{padding-top:1rem!important}.ngx-pl-1,.ngx-px-1{padding-left:.25rem!important}.ngx-pr-1,.ngx-px-1{padding-right:.25rem!important}@media (max-width:768px){.ngx-sm-block{display:block!important}.ngx-d-none{display:none!important}}"]
template: "<mat-card class=\"ngx-d-flex ngx-justify-content-center ngx-audio-player z-depth-1 mat-elevation-z2\"\n style=\"margin: 0px;\">\n\n <audio #audioPlayer [src]=\"tracks[currentIndex]?.link\"></audio>\n\n <button *ngIf=\"tracks.length > 1\" (click)='previousSong();' [disabled]=\"loaderDisplay\" class=\"ngx-p-1\" mat-button>\n <mat-icon aria-hidden=\"true\">\n <!-- Skip previous icon (skip_previous) -->\n <svg height=\"32\" viewBox=\"0 0 24 24\" width=\"32\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6 6h2v12H6zm3.5 6l8.5 6V6z\" />\n <path d=\"M0 0h32v32H0z\" fill=\"none\" />\n </svg>\n </mat-icon>\n </button>\n <button (click)='playBtnHandler();' [disabled]=\"loaderDisplay\" class=\"ngx-p-1 play-pause\" mat-button>\n\n <svg *ngIf=\"loaderDisplay\" height=\"34px\" preserveAspectRatio=\"xMidYMid\"\n style=\"margin: auto; display: block; shape-rendering: auto;\" viewBox=\"0 0 100 100\" width=\"34px\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <g transform=\"rotate(0 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.9166666666666666s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(30 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.8333333333333334s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(60 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.75s\" dur=\"1s\" keyTimes=\"0;1\" repeatCount=\"indefinite\"\n values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(90 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.6666666666666666s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(120 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.5833333333333334s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(150 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.5s\" dur=\"1s\" keyTimes=\"0;1\" repeatCount=\"indefinite\"\n values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(180 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.4166666666666667s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(210 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.3333333333333333s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(240 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.25s\" dur=\"1s\" keyTimes=\"0;1\" repeatCount=\"indefinite\"\n values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(270 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.16666666666666666s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(300 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.08333333333333333s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(330 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"0s\" dur=\"1s\" keyTimes=\"0;1\" repeatCount=\"indefinite\"\n values=\"1;0\" />\n </rect>\n </g>\n </svg>\n\n <mat-icon *ngIf=\"!loaderDisplay && !isPlaying\" aria-hidden=\"true\" class=\"play-track\">\n <!-- Play icon (play_arrow) -->\n <svg height=\"32\" viewBox=\"0 0 24 24\" width=\"32\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M8 5v14l11-7z\" />\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n </svg>\n </mat-icon>\n <mat-icon *ngIf=\"!loaderDisplay && isPlaying\" aria-hidden=\"true\" class=\"pause-track\">\n <!-- Pause icon (pause) -->\n <svg height=\"32\" viewBox=\"0 0 24 24\" width=\"32\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6 19h4V5H6v14zm8-14v14h4V5h-4z\" />\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n </svg>\n </mat-icon>\n </button>\n <button *ngIf=\"tracks.length > 1\" (click)='nextSong();' [disabled]=\"loaderDisplay\" class=\"ngx-p-1 skip-next\"\n mat-button>\n <mat-icon aria-hidden=\"true\" class=\"next-track\">\n <!-- Skip next icon (skip_next) -->\n <svg height=\"32\" viewBox=\"0 0 24 24\" width=\"32\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6 18l8.5-6L6 6v12zM16 6v12h2V6h-2z\" />\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n </svg>\n </mat-icon>\n </button>\n\n <div class=\"ngx-col\">\n <div class=\"ngx-d-flex ngx-flex-fill ngx-justify-content-center\">\n <div class=\"ngx-d-none ngx-d-sm-block ngx-py-3 ngx-px-1\" style=\"font-size: 12px\">\n <span *ngIf=\"duration !== 0.01\">\n {{currentTime | secondsToMinutes}}\n </span>\n </div>\n <mat-slider [disabled]=\"disablePositionSlider\" (change)=\"currTimePosChanged($event)\" [min]=\"startOffset\"\n class=\"ngx-d-none ngx-d-sm-block ngx-flex-fill ngx-p-1\" max=\"{{duration-endOffset}}\" style=\"width: 100%\"\n value=\"{{currentTime}}\"></mat-slider>\n\n <div class=\"ngx-py-3 ngx-px-1\" style=\"font-size: 12px; text-align: right\">\n <span *ngIf=\"duration !== 0.01\">\n -{{duration-currentTime | secondsToMinutes }}\n </span>\n </div>\n </div>\n </div>\n <button (click)='toggleRepeat();' *ngIf=\"displayRepeatControls\" class=\"ngx-p-1 volume justify-content-center\"\n mat-button>\n <mat-icon *ngIf=\"repeat === 'none'\" aria-hidden=\"true\" class=\"volume-mute justify-content-center\">\n <!-- Repeat None -->\n <svg height=\"24\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 22 22\">\n <g>\n <g>\n <path d=\"m0,0l24,0l0,24l-24,0l0,-24z\" fill=\"none\" />\n <path\n d=\"m8,20l0,1.932a0.5,0.5 0 0 1 -0.82,0.385l-4.12,-3.433a0.5,0.5 0 0 1 0.322,-0.884l14.618,0a2,2 0 0 0 2,-2l0,-8l2,0l0,8a4,4 0 0 1 -4,4l-10,0zm8,-16l0,-1.932a0.5,0.5 0 0 1 0.82,-0.385l4.12,3.433a0.5,0.5 0 0 1 -0.321,0.884l-14.619,0a2,2 0 0 0 -2,2l0,8l-2,0l0,-8a4,4 0 0 1 4,-4l10,0z\" />\n <path d=\"M 3 0 L 22.4164 22.2706 L 21 24 L 1.5836 1.8128 L 3 0\"></path>\n </g>\n <!-- <line xmlns=\"http://www.w3.org/2000/svg\" id=\"svg_4\" y2=\"22.27056\" x2=\"22.41638\" y1=\"1.81276\" x1=\"1.58362\" stroke-width=\"2\" fill=\"none\"/> -->\n </g>\n </svg>\n </mat-icon>\n <mat-icon *ngIf=\"repeat === 'all'\" aria-hidden=\"true\" class=\"volume-mute\">\n <!-- Repeat All -->\n <svg height=\"24\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 22 22\">\n <g>\n <path fill=\"none\" d=\"M0 0h24v24H0z\" />\n <path\n d=\"M8 20v1.932a.5.5 0 0 1-.82.385l-4.12-3.433A.5.5 0 0 1 3.382 18H18a2 2 0 0 0 2-2V8h2v8a4 4 0 0 1-4 4H8zm8-16V2.068a.5.5 0 0 1 .82-.385l4.12 3.433a.5.5 0 0 1-.321.884H6a2 2 0 0 0-2 2v8H2V8a4 4 0 0 1 4-4h10z\" />\n </g>\n </svg>\n </mat-icon>\n <mat-icon *ngIf=\"repeat === 'one'\" aria-hidden=\"true\" class=\"volume-up\">\n <!-- Repeat ONE -->\n <svg height=\"24\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 22 22\">\n <g>\n <path fill=\"none\" d=\"M0 0h24v24H0z\" />\n <path\n d=\"M8 20v1.932a.5.5 0 0 1-.82.385l-4.12-3.433A.5.5 0 0 1 3.382 18H18a2 2 0 0 0 2-2V8h2v8a4 4 0 0 1-4 4H8zm8-16V2.068a.5.5 0 0 1 .82-.385l4.12 3.433a.5.5 0 0 1-.321.884H6a2 2 0 0 0-2 2v8H2V8a4 4 0 0 1 4-4h10zm-5 4h2v8h-2v-6H9V9l2-1z\" />\n </g>\n </svg>\n </mat-icon>\n </button>\n <button (click)='toggleVolume();' *ngIf=\"displayVolumeControls\" class=\"ngx-p-1 volume\" mat-button>\n <mat-icon *ngIf=\"volume === 0\" aria-hidden=\"true\" class=\"volume-mute\">\n <!-- Volume mute icon (volume_off) -->\n <svg height=\"28\" viewBox=\"0 0 24 24\" width=\"28\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M16.5 12c0-1.77-1.02-3.29-2.5-4.03v2.21l2.45 2.45c.03-.2.05-.41.05-.63zm2.5 0c0 .94-.2 1.82-.54 2.64l1.51 1.51C20.63 14.91 21 13.5 21 12c0-4.28-2.99-7.86-7-8.77v2.06c2.89.86 5 3.54 5 6.71zM4.27 3L3 4.27 7.73 9H3v6h4l5 5v-6.73l4.25 4.25c-.67.52-1.42.93-2.25 1.18v2.06c1.38-.31 2.63-.95 3.69-1.81L19.73 21 21 19.73l-9-9L4.27 3zM12 4L9.91 6.09 12 8.18V4z\" />\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n </svg>\n </mat-icon>\n <mat-icon *ngIf=\"volume > 0\" aria-hidden=\"true\" class=\"volume-up\">\n <!-- Volume up icon (volume_up) -->\n <svg height=\"28\" viewBox=\"0 0 24 24\" width=\"28\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M3 9v6h4l5 5V4L7 9H3zm13.5 3c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02zM14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77s-2.99-7.86-7-8.77z\" />\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n </svg>\n </mat-icon>\n </button>\n</mat-card>\n\n<mat-card *ngIf=\"displayTitle\" class=\"mat-elevation-z1 ngx-audio-player\">\n <div style=\"text-align: center;\">\n <div style=\"margin: 1px 2px; padding: 1em\">\n <span *ngIf=\"!isPlaying\">{{ tracks[currentIndex]?.title }}{{ displayArtist && tracks[currentIndex]?.artist ?\n ' | ' + tracks[currentIndex]?.artist : ''}}</span>\n <marquee *ngIf=\"isPlaying\" behavior=\"scroll\" direction=\"left\">{{ tracks[currentIndex]?.title\n }}{{ displayArtist && tracks[currentIndex]?.artist ? ' | ' + tracks[currentIndex]?.artist : ''}}\n </marquee>\n </div>\n <div class=\"clear\"></div>\n </div>\n</mat-card>\n\n<mat-accordion class=\"ngx-audio-player\" *ngIf=\"displayPlaylist && tracks.length > 1\">\n <mat-expansion-panel [expanded]=\"expanded\">\n <mat-expansion-panel-header>\n {{tableHeader}}\n </mat-expansion-panel-header>\n <table [dataSource]=\"dataSource\" class=\"mat-elevation-z6\" mat-table>\n <ng-container matColumnDef=\"title\">\n <th *matHeaderCellDef mat-header-cell>{{titleHeader}}</th>\n <td (click)=\"selectTrack(element.index)\" *matCellDef=\"let element\" mat-cell>\n {{element.title}}\n </td>\n </ng-container>\n <ng-container matColumnDef=\"artist\">\n <th *matHeaderCellDef mat-header-cell>{{artistHeader}}</th>\n <td (click)=\"selectTrack(element.index)\" *matCellDef=\"let element\" mat-cell>\n {{element?.artist ? element?.artist : ''}}\n </td>\n </ng-container>\n <ng-container matColumnDef=\"duration\">\n <th *matHeaderCellDef mat-header-cell>{{durationHeader}}</th>\n <td (click)=\"selectTrack(element.index)\" *matCellDef=\"let element\" mat-cell>\n {{element?.duration ? (element?.duration | secondsToMinutes) : ''}}\n </td>\n </ng-container>\n <ng-container matColumnDef=\"status\">\n <th *matHeaderCellDef mat-header-cell></th>\n <td *matCellDef=\"let element\" mat-cell>\n <div *ngIf=\"tracks[currentIndex]?.title === element.title\">\n <!-- <mat-icon *ngIf=\"isPlaying\" aria-hidden=\"true\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M6 19h4V5H6v14zm8-14v14h4V5h-4z\"/><path d=\"M0 0h24v24H0z\" fill=\"none\"/></svg>\n </mat-icon> -->\n <mat-icon *ngIf=\"isPlaying\" aria-hidden=\"true\" class=\"currently-playing\">\n <!-- Play icon (play_arrow) -->\n <svg height=\"24\" viewBox=\"0 0 24 24\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n <path\n d=\"M12 3v9.28c-.47-.17-.97-.28-1.5-.28C8.01 12 6 14.01 6 16.5S8.01 21 10.5 21c2.31 0 4.2-1.75 4.45-4H15V6h4V3h-7z\" />\n </svg>\n </mat-icon>\n </div>\n </td>\n </ng-container>\n <tr *matHeaderRowDef=\"displayedColumns\" mat-header-row></tr>\n <tr *matRowDef=\"let row; columns: displayedColumns;\" class=\"mat-select-content\" mat-row></tr>\n </table>\n <mat-paginator [pageSizeOptions]=\"pageSizeOptions\" showFirstLastButtons></mat-paginator>\n </mat-expansion-panel>\n</mat-accordion>",
styles: ["mat-card,mat-slider{padding:0!important}button:focus,button:hover{outline:0!important}svg{vertical-align:top}.mat-icon{height:32px!important;width:32px!important}mat-icon>.currently-playing{height:16px!important;width:16px!important}table{width:100%}.mat-expansion-panel,::ng-deep .ngx-audio-player{min-width:375px}::ng-deep .mat-paginator-container{justify-content:space-between!important}.material-icons{font-size:16px!important}.play-pause{border-right:1px solid rgba(0,0,0,.1)}.play-pause,.volume{border-left:1px solid rgba(0,0,0,.1)}.skip-next{border-right:1px solid rgba(0,0,0,.1)}*,:after,:before{box-sizing:inherit}.ngx-p-1{padding:.25rem!important}.ngx-col,.ngx-col-1,.ngx-col-2,.ngx-col-3,.ngx-col-4,.ngx-col-5,.ngx-col-6,.ngx-col-7,.ngx-col-8,.ngx-col-9,.ngx-col-10,.ngx-col-11,.ngx-col-12,.ngx-col-auto,.ngx-col-lg,.ngx-col-lg-1,.ngx-col-lg-2,.ngx-col-lg-3,.ngx-col-lg-4,.ngx-col-lg-5,.ngx-col-lg-6,.ngx-col-lg-7,.ngx-col-lg-8,.ngx-col-lg-9,.ngx-col-lg-10,.ngx-col-lg-11,.ngx-col-lg-12,.ngx-col-lg-auto,.ngx-col-md,.ngx-col-md-1,.ngx-col-md-2,.ngx-col-md-3,.ngx-col-md-4,.ngx-col-md-5,.ngx-col-md-6,.ngx-col-md-7,.ngx-col-md-8,.ngx-col-md-9,.ngx-col-md-10,.ngx-col-md-11,.ngx-col-md-12,.ngx-col-md-auto,.ngx-col-sm,.ngx-col-sm-1,.ngx-col-sm-2,.ngx-col-sm-3,.ngx-col-sm-4,.ngx-col-sm-5,.ngx-col-sm-6,.ngx-col-sm-7,.ngx-col-sm-8,.ngx-col-sm-9,.ngx-col-sm-10,.ngx-col-sm-11,.ngx-col-sm-12,.ngx-col-sm-auto,.ngx-col-xl,.ngx-col-xl-1,.ngx-col-xl-2,.ngx-col-xl-3,.ngx-col-xl-4,.ngx-col-xl-5,.ngx-col-xl-6,.ngx-col-xl-7,.ngx-col-xl-8,.ngx-col-xl-9,.ngx-col-xl-10,.ngx-col-xl-11,.ngx-col-xl-12,.ngx-col-xl-auto{padding-left:15px;padding-right:15px;position:relative;width:100%}.ngx-col{flex-basis:0;flex-grow:1;max-width:100%}.ngx-justify-content-center{justify-content:center!important}.ngx-flex-fill{flex:1 1 auto!important}.ngx-d-flex{display:flex!important}.ngx-pb-3,.ngx-py-3{padding-bottom:1rem!important}.ngx-pt-3,.ngx-py-3{padding-top:1rem!important}.ngx-pl-1,.ngx-px-1{padding-left:.25rem!important}.ngx-pr-1,.ngx-px-1{padding-right:.25rem!important}@media (max-width:768px){.ngx-sm-block{display:block!important}.ngx-d-none{display:none!important}}"]
},] }

@@ -329,0 +330,0 @@ ];

@@ -1,1 +0,1 @@

{"__symbolic":"module","version":4,"metadata":{"AudioPlayerComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":8,"character":1},"arguments":[{"selector":"mat-advanced-audio-player,ngx-audio-player","template":"<mat-card class=\"ngx-d-flex ngx-justify-content-center ngx-audio-player z-depth-1 mat-elevation-z2\"\n style=\"margin: 0px;\">\n\n <audio #audioPlayer [src]=\"tracks[currentIndex]?.link\"></audio>\n\n <button *ngIf=\"tracks.length > 1\" (click)='previousSong();' [disabled]=\"loaderDisplay\" class=\"ngx-p-1\" mat-button>\n <mat-icon aria-hidden=\"true\">\n <!-- Skip previous icon (skip_previous) -->\n <svg height=\"32\" viewBox=\"0 0 24 24\" width=\"32\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6 6h2v12H6zm3.5 6l8.5 6V6z\" />\n <path d=\"M0 0h32v32H0z\" fill=\"none\" />\n </svg>\n </mat-icon>\n </button>\n <button (click)='playBtnHandler();' [disabled]=\"loaderDisplay\" class=\"ngx-p-1 play-pause\" mat-button>\n\n <svg *ngIf=\"loaderDisplay\" height=\"34px\" preserveAspectRatio=\"xMidYMid\"\n style=\"margin: auto; display: block; shape-rendering: auto;\" viewBox=\"0 0 100 100\" width=\"34px\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <g transform=\"rotate(0 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.9166666666666666s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(30 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.8333333333333334s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(60 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.75s\" dur=\"1s\" keyTimes=\"0;1\" repeatCount=\"indefinite\"\n values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(90 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.6666666666666666s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(120 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.5833333333333334s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(150 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.5s\" dur=\"1s\" keyTimes=\"0;1\" repeatCount=\"indefinite\"\n values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(180 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.4166666666666667s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(210 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.3333333333333333s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(240 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.25s\" dur=\"1s\" keyTimes=\"0;1\" repeatCount=\"indefinite\"\n values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(270 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.16666666666666666s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(300 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.08333333333333333s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(330 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"0s\" dur=\"1s\" keyTimes=\"0;1\" repeatCount=\"indefinite\"\n values=\"1;0\" />\n </rect>\n </g>\n </svg>\n\n <mat-icon *ngIf=\"!loaderDisplay && !isPlaying\" aria-hidden=\"true\" class=\"play-track\">\n <!-- Play icon (play_arrow) -->\n <svg height=\"32\" viewBox=\"0 0 24 24\" width=\"32\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M8 5v14l11-7z\" />\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n </svg>\n </mat-icon>\n <mat-icon *ngIf=\"!loaderDisplay && isPlaying\" aria-hidden=\"true\" class=\"pause-track\">\n <!-- Pause icon (pause) -->\n <svg height=\"32\" viewBox=\"0 0 24 24\" width=\"32\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6 19h4V5H6v14zm8-14v14h4V5h-4z\" />\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n </svg>\n </mat-icon>\n </button>\n <button *ngIf=\"tracks.length > 1\" (click)='nextSong();' [disabled]=\"loaderDisplay\" class=\"ngx-p-1 skip-next\"\n mat-button>\n <mat-icon aria-hidden=\"true\" class=\"next-track\">\n <!-- Skip next icon (skip_next) -->\n <svg height=\"32\" viewBox=\"0 0 24 24\" width=\"32\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6 18l8.5-6L6 6v12zM16 6v12h2V6h-2z\" />\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n </svg>\n </mat-icon>\n </button>\n\n <div class=\"ngx-col\">\n <div class=\"ngx-d-flex ngx-flex-fill ngx-justify-content-center\">\n <div class=\"ngx-d-none ngx-d-sm-block ngx-py-3 ngx-px-1\" style=\"font-size: 12px\">\n <span *ngIf=\"duration !== 0.01\">\n {{currentTime | secondsToMinutes}}\n </span>\n </div>\n <mat-slider [disabled]=\"disablePositionSlider\" (change)=\"currTimePosChanged($event)\" [min]=\"startOffset\"\n class=\"ngx-d-none ngx-d-sm-block ngx-flex-fill ngx-p-1\" max=\"{{duration-endOffset}}\" style=\"width: 100%\"\n value=\"{{currentTime}}\"></mat-slider>\n <div class=\"ngx-py-3 ngx-px-1\" style=\"font-size: 12px; text-align: right\">\n <span *ngIf=\"duration !== 0.01\">\n -{{duration-currentTime | secondsToMinutes }}\n </span>\n </div>\n </div>\n </div>\n <button (click)='toggleRepeat();' *ngIf=\"displayRepeatControls\" class=\"ngx-p-1 volume justify-content-center\" mat-button>\n <mat-icon *ngIf=\"repeat === 'none'\" aria-hidden=\"true\" class=\"volume-mute justify-content-center\">\n <!-- Repeat None -->\n <svg height=\"24\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 22 22\">\n <g>\n <g>\n <path d=\"m0,0l24,0l0,24l-24,0l0,-24z\" fill=\"none\" />\n <path d=\"m8,20l0,1.932a0.5,0.5 0 0 1 -0.82,0.385l-4.12,-3.433a0.5,0.5 0 0 1 0.322,-0.884l14.618,0a2,2 0 0 0 2,-2l0,-8l2,0l0,8a4,4 0 0 1 -4,4l-10,0zm8,-16l0,-1.932a0.5,0.5 0 0 1 0.82,-0.385l4.12,3.433a0.5,0.5 0 0 1 -0.321,0.884l-14.619,0a2,2 0 0 0 -2,2l0,8l-2,0l0,-8a4,4 0 0 1 4,-4l10,0z\" />\n <path d=\"M 3 0 L 22.4164 22.2706 L 21 24 L 1.5836 1.8128 L 3 0\"></path>\n </g>\n <!-- <line xmlns=\"http://www.w3.org/2000/svg\" id=\"svg_4\" y2=\"22.27056\" x2=\"22.41638\" y1=\"1.81276\" x1=\"1.58362\" stroke-width=\"2\" fill=\"none\"/> -->\n </g>\n </svg>\n </mat-icon>\n <mat-icon *ngIf=\"repeat === 'all'\" aria-hidden=\"true\" class=\"volume-mute\">\n <!-- Repeat All -->\n <svg height=\"24\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 22 22\">\n <g>\n <path fill=\"none\" d=\"M0 0h24v24H0z\" />\n <path\n d=\"M8 20v1.932a.5.5 0 0 1-.82.385l-4.12-3.433A.5.5 0 0 1 3.382 18H18a2 2 0 0 0 2-2V8h2v8a4 4 0 0 1-4 4H8zm8-16V2.068a.5.5 0 0 1 .82-.385l4.12 3.433a.5.5 0 0 1-.321.884H6a2 2 0 0 0-2 2v8H2V8a4 4 0 0 1 4-4h10z\" />\n </g>\n </svg>\n </mat-icon>\n <mat-icon *ngIf=\"repeat === 'one'\" aria-hidden=\"true\" class=\"volume-up\">\n <!-- Repeat ONE -->\n <svg height=\"24\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 22 22\">\n <g>\n <path fill=\"none\" d=\"M0 0h24v24H0z\" />\n <path\n d=\"M8 20v1.932a.5.5 0 0 1-.82.385l-4.12-3.433A.5.5 0 0 1 3.382 18H18a2 2 0 0 0 2-2V8h2v8a4 4 0 0 1-4 4H8zm8-16V2.068a.5.5 0 0 1 .82-.385l4.12 3.433a.5.5 0 0 1-.321.884H6a2 2 0 0 0-2 2v8H2V8a4 4 0 0 1 4-4h10zm-5 4h2v8h-2v-6H9V9l2-1z\" />\n </g>\n </svg>\n </mat-icon>\n </button>\n <button (click)='toggleVolume();' *ngIf=\"displayVolumeControls\" class=\"ngx-p-1 volume\" mat-button>\n <mat-icon *ngIf=\"volume === 0\" aria-hidden=\"true\" class=\"volume-mute\">\n <!-- Volume mute icon (volume_off) -->\n <svg height=\"28\" viewBox=\"0 0 24 24\" width=\"28\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M16.5 12c0-1.77-1.02-3.29-2.5-4.03v2.21l2.45 2.45c.03-.2.05-.41.05-.63zm2.5 0c0 .94-.2 1.82-.54 2.64l1.51 1.51C20.63 14.91 21 13.5 21 12c0-4.28-2.99-7.86-7-8.77v2.06c2.89.86 5 3.54 5 6.71zM4.27 3L3 4.27 7.73 9H3v6h4l5 5v-6.73l4.25 4.25c-.67.52-1.42.93-2.25 1.18v2.06c1.38-.31 2.63-.95 3.69-1.81L19.73 21 21 19.73l-9-9L4.27 3zM12 4L9.91 6.09 12 8.18V4z\" />\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n </svg>\n </mat-icon>\n <mat-icon *ngIf=\"volume > 0\" aria-hidden=\"true\" class=\"volume-up\">\n <!-- Volume up icon (volume_up) -->\n <svg height=\"28\" viewBox=\"0 0 24 24\" width=\"28\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M3 9v6h4l5 5V4L7 9H3zm13.5 3c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02zM14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77s-2.99-7.86-7-8.77z\" />\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n </svg>\n </mat-icon>\n </button>\n</mat-card>\n\n<mat-card *ngIf=\"displayTitle\" class=\"mat-elevation-z1\">\n <div style=\"text-align: center;\">\n <div style=\"margin: 1px 2px; padding: 1em\">\n <span *ngIf=\"!isPlaying\">{{ tracks[currentIndex]?.title }}{{ displayArtist && tracks[currentIndex]?.artist ?\n ' | ' + tracks[currentIndex]?.artist : ''}}</span>\n <marquee *ngIf=\"isPlaying\" behavior=\"scroll\" direction=\"left\">{{ tracks[currentIndex]?.title\n }}{{ displayArtist && tracks[currentIndex]?.artist ? ' | ' + tracks[currentIndex]?.artist : ''}}\n </marquee>\n </div>\n <div class=\"clear\"></div>\n </div>\n</mat-card>\n\n<mat-accordion *ngIf=\"displayPlaylist && tracks.length > 1\">\n <mat-expansion-panel [expanded]=\"expanded\">\n <mat-expansion-panel-header>\n {{tableHeader}}\n </mat-expansion-panel-header>\n <table [dataSource]=\"dataSource\" class=\"mat-elevation-z6\" mat-table>\n <ng-container matColumnDef=\"title\">\n <th *matHeaderCellDef mat-header-cell>{{titleHeader}}</th>\n <td (click)=\"selectTrack(element.index)\" *matCellDef=\"let element\" mat-cell>\n {{element.title}}\n </td>\n </ng-container>\n <ng-container matColumnDef=\"artist\">\n <th *matHeaderCellDef mat-header-cell>{{artistHeader}}</th>\n <td (click)=\"selectTrack(element.index)\" *matCellDef=\"let element\" mat-cell>\n {{element?.artist ? element?.artist : ''}}\n </td>\n </ng-container>\n <ng-container matColumnDef=\"duration\">\n <th *matHeaderCellDef mat-header-cell>{{durationHeader}}</th>\n <td (click)=\"selectTrack(element.index)\" *matCellDef=\"let element\" mat-cell>\n {{element?.duration ? (element?.duration | secondsToMinutes) : ''}}\n </td>\n </ng-container>\n <ng-container matColumnDef=\"status\">\n <th *matHeaderCellDef mat-header-cell></th>\n <td *matCellDef=\"let element\" mat-cell>\n <div *ngIf=\"tracks[currentIndex]?.title === element.title\">\n <!-- <mat-icon *ngIf=\"isPlaying\" aria-hidden=\"true\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M6 19h4V5H6v14zm8-14v14h4V5h-4z\"/><path d=\"M0 0h24v24H0z\" fill=\"none\"/></svg>\n </mat-icon> -->\n <mat-icon *ngIf=\"isPlaying\" aria-hidden=\"true\" class=\"currently-playing\">\n <!-- Play icon (play_arrow) -->\n <svg height=\"24\" viewBox=\"0 0 24 24\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n <path\n d=\"M12 3v9.28c-.47-.17-.97-.28-1.5-.28C8.01 12 6 14.01 6 16.5S8.01 21 10.5 21c2.31 0 4.2-1.75 4.45-4H15V6h4V3h-7z\" />\n </svg>\n </mat-icon>\n </div>\n </td>\n </ng-container>\n <tr *matHeaderRowDef=\"displayedColumns\" mat-header-row></tr>\n <tr *matRowDef=\"let row; columns: displayedColumns;\" class=\"mat-select-content\" mat-row></tr>\n </table>\n <mat-paginator [pageSizeOptions]=\"pageSizeOptions\" showFirstLastButtons></mat-paginator>\n </mat-expansion-panel>\n</mat-accordion>","styles":["mat-card,mat-slider{padding:0!important}button:focus,button:hover{outline:0!important}svg{vertical-align:top}.mat-icon{height:32px!important;width:32px!important}mat-icon>.currently-playing{height:16px!important;width:16px!important}table{width:100%}.ngx-advanced-audio-player{min-width:325px}.material-icons{font-size:16px!important}.play-pause{border-right:1px solid rgba(0,0,0,.1)}.play-pause,.volume{border-left:1px solid rgba(0,0,0,.1)}.skip-next{border-right:1px solid rgba(0,0,0,.1)}*,:after,:before{box-sizing:inherit}.ngx-p-1{padding:.25rem!important}.ngx-col,.ngx-col-1,.ngx-col-2,.ngx-col-3,.ngx-col-4,.ngx-col-5,.ngx-col-6,.ngx-col-7,.ngx-col-8,.ngx-col-9,.ngx-col-10,.ngx-col-11,.ngx-col-12,.ngx-col-auto,.ngx-col-lg,.ngx-col-lg-1,.ngx-col-lg-2,.ngx-col-lg-3,.ngx-col-lg-4,.ngx-col-lg-5,.ngx-col-lg-6,.ngx-col-lg-7,.ngx-col-lg-8,.ngx-col-lg-9,.ngx-col-lg-10,.ngx-col-lg-11,.ngx-col-lg-12,.ngx-col-lg-auto,.ngx-col-md,.ngx-col-md-1,.ngx-col-md-2,.ngx-col-md-3,.ngx-col-md-4,.ngx-col-md-5,.ngx-col-md-6,.ngx-col-md-7,.ngx-col-md-8,.ngx-col-md-9,.ngx-col-md-10,.ngx-col-md-11,.ngx-col-md-12,.ngx-col-md-auto,.ngx-col-sm,.ngx-col-sm-1,.ngx-col-sm-2,.ngx-col-sm-3,.ngx-col-sm-4,.ngx-col-sm-5,.ngx-col-sm-6,.ngx-col-sm-7,.ngx-col-sm-8,.ngx-col-sm-9,.ngx-col-sm-10,.ngx-col-sm-11,.ngx-col-sm-12,.ngx-col-sm-auto,.ngx-col-xl,.ngx-col-xl-1,.ngx-col-xl-2,.ngx-col-xl-3,.ngx-col-xl-4,.ngx-col-xl-5,.ngx-col-xl-6,.ngx-col-xl-7,.ngx-col-xl-8,.ngx-col-xl-9,.ngx-col-xl-10,.ngx-col-xl-11,.ngx-col-xl-12,.ngx-col-xl-auto{padding-left:15px;padding-right:15px;position:relative;width:100%}.ngx-col{flex-basis:0;flex-grow:1;max-width:100%}.ngx-justify-content-center{justify-content:center!important}.ngx-flex-fill{flex:1 1 auto!important}.ngx-d-flex{display:flex!important}.ngx-pb-3,.ngx-py-3{padding-bottom:1rem!important}.ngx-pt-3,.ngx-py-3{padding-top:1rem!important}.ngx-pl-1,.ngx-px-1{padding-left:.25rem!important}.ngx-pr-1,.ngx-px-1{padding-right:.25rem!important}@media (max-width:768px){.ngx-sm-block{display:block!important}.ngx-d-none{display:none!important}}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":18,"character":22}]}],"playlist":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":25,"character":5}}]}],"matPaginator":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":30,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/material/paginator","name":"MatPaginator","line":30,"character":15},{"static":false}]}]}],"displayTitle":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":43,"character":5}}]}],"displayPlaylist":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":44,"character":5}}]}],"displayVolumeControls":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":45,"character":5}}]}],"displayRepeatControls":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":46,"character":5}}]}],"pageSizeOptions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":47,"character":5}}]}],"expanded":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":48,"character":5}}]}],"autoPlay":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":49,"character":5}}]}],"disablePositionSlider":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":50,"character":5}}]}],"displayArtist":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":51,"character":5}}]}],"displayDuration":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":52,"character":5}}]}],"tableHeader":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":55,"character":5}}]}],"titleHeader":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":56,"character":5}}]}],"artistHeader":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":57,"character":5}}]}],"durationHeader":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":58,"character":5}}]}],"trackEnded":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":62,"character":5}}]}],"player":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":65,"character":5},"arguments":["audioPlayer",{"static":true}]}]}],"startOffset":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":77,"character":5}}]}],"endOffset":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":86,"character":5}}]}],"currTimePosChanged":[{"__symbolic":"method"}],"bindPlayerEvent":[{"__symbolic":"method"}],"playBtnHandler":[{"__symbolic":"method"}],"play":[{"__symbolic":"method"}],"toggleVolume":[{"__symbolic":"method"}],"toggleRepeat":[{"__symbolic":"method"}],"setVolume":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"buildDisplayedColumns":[{"__symbolic":"method"}],"initialize":[{"__symbolic":"method"}],"setDataSourceAttributes":[{"__symbolic":"method"}],"nextSong":[{"__symbolic":"method"}],"previousSong":[{"__symbolic":"method"}],"resetSong":[{"__symbolic":"method"}],"selectTrack":[{"__symbolic":"method"}],"checkIfSongHasStartedSinceAtleastTwoSeconds":[{"__symbolic":"method"}],"updateCurrentTrack":[{"__symbolic":"method"}]}},"NgxAudioPlayerModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":17,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"AudioPlayerComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":19,"character":12},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":19,"character":26},{"__symbolic":"reference","module":"@angular/material/button","name":"MatButtonModule","line":19,"character":39},{"__symbolic":"reference","module":"@angular/material/card","name":"MatCardModule","line":19,"character":56},{"__symbolic":"reference","module":"@angular/material/table","name":"MatTableModule","line":19,"character":71},{"__symbolic":"reference","module":"@angular/material/form-field","name":"MatFormFieldModule","line":19,"character":87},{"__symbolic":"reference","module":"@angular/material/slider","name":"MatSliderModule","line":20,"character":4},{"__symbolic":"reference","module":"@angular/material/expansion","name":"MatExpansionModule","line":20,"character":21},{"__symbolic":"reference","module":"@angular/material/paginator","name":"MatPaginatorModule","line":20,"character":41},{"__symbolic":"reference","module":"@angular/material/icon","name":"MatIconModule","line":20,"character":61}],"exports":[{"__symbolic":"reference","name":"AudioPlayerComponent"}]}]}],"members":{}},"Track":{"__symbolic":"class","members":{}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":5,"character":1},"arguments":[{"name":"secondsToMinutes"}]}],"members":{"transform":[{"__symbolic":"method"}]}}},"origins":{"AudioPlayerComponent":"./lib/component/ngx-audio-player/ngx-audio-player.component","NgxAudioPlayerModule":"./lib/ngx-audio-player.module","Track":"./lib/model/track.model","ɵa":"./lib/pipe/seconds-to-minutes"},"importAs":"ngx-audio-player"}
{"__symbolic":"module","version":4,"metadata":{"AudioPlayerComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":9,"character":1},"arguments":[{"selector":"mat-advanced-audio-player,ngx-audio-player","template":"<mat-card class=\"ngx-d-flex ngx-justify-content-center ngx-audio-player z-depth-1 mat-elevation-z2\"\n style=\"margin: 0px;\">\n\n <audio #audioPlayer [src]=\"tracks[currentIndex]?.link\"></audio>\n\n <button *ngIf=\"tracks.length > 1\" (click)='previousSong();' [disabled]=\"loaderDisplay\" class=\"ngx-p-1\" mat-button>\n <mat-icon aria-hidden=\"true\">\n <!-- Skip previous icon (skip_previous) -->\n <svg height=\"32\" viewBox=\"0 0 24 24\" width=\"32\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6 6h2v12H6zm3.5 6l8.5 6V6z\" />\n <path d=\"M0 0h32v32H0z\" fill=\"none\" />\n </svg>\n </mat-icon>\n </button>\n <button (click)='playBtnHandler();' [disabled]=\"loaderDisplay\" class=\"ngx-p-1 play-pause\" mat-button>\n\n <svg *ngIf=\"loaderDisplay\" height=\"34px\" preserveAspectRatio=\"xMidYMid\"\n style=\"margin: auto; display: block; shape-rendering: auto;\" viewBox=\"0 0 100 100\" width=\"34px\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <g transform=\"rotate(0 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.9166666666666666s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(30 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.8333333333333334s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(60 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.75s\" dur=\"1s\" keyTimes=\"0;1\" repeatCount=\"indefinite\"\n values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(90 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.6666666666666666s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(120 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.5833333333333334s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(150 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.5s\" dur=\"1s\" keyTimes=\"0;1\" repeatCount=\"indefinite\"\n values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(180 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.4166666666666667s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(210 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.3333333333333333s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(240 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.25s\" dur=\"1s\" keyTimes=\"0;1\" repeatCount=\"indefinite\"\n values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(270 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.16666666666666666s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(300 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"-0.08333333333333333s\" dur=\"1s\" keyTimes=\"0;1\"\n repeatCount=\"indefinite\" values=\"1;0\" />\n </rect>\n </g>\n <g transform=\"rotate(330 50 50)\">\n <rect fill=\"#7a7a7a\" height=\"12\" rx=\"3\" ry=\"6\" width=\"6\" x=\"47\" y=\"20\">\n <animate attributeName=\"opacity\" begin=\"0s\" dur=\"1s\" keyTimes=\"0;1\" repeatCount=\"indefinite\"\n values=\"1;0\" />\n </rect>\n </g>\n </svg>\n\n <mat-icon *ngIf=\"!loaderDisplay && !isPlaying\" aria-hidden=\"true\" class=\"play-track\">\n <!-- Play icon (play_arrow) -->\n <svg height=\"32\" viewBox=\"0 0 24 24\" width=\"32\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M8 5v14l11-7z\" />\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n </svg>\n </mat-icon>\n <mat-icon *ngIf=\"!loaderDisplay && isPlaying\" aria-hidden=\"true\" class=\"pause-track\">\n <!-- Pause icon (pause) -->\n <svg height=\"32\" viewBox=\"0 0 24 24\" width=\"32\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6 19h4V5H6v14zm8-14v14h4V5h-4z\" />\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n </svg>\n </mat-icon>\n </button>\n <button *ngIf=\"tracks.length > 1\" (click)='nextSong();' [disabled]=\"loaderDisplay\" class=\"ngx-p-1 skip-next\"\n mat-button>\n <mat-icon aria-hidden=\"true\" class=\"next-track\">\n <!-- Skip next icon (skip_next) -->\n <svg height=\"32\" viewBox=\"0 0 24 24\" width=\"32\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6 18l8.5-6L6 6v12zM16 6v12h2V6h-2z\" />\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n </svg>\n </mat-icon>\n </button>\n\n <div class=\"ngx-col\">\n <div class=\"ngx-d-flex ngx-flex-fill ngx-justify-content-center\">\n <div class=\"ngx-d-none ngx-d-sm-block ngx-py-3 ngx-px-1\" style=\"font-size: 12px\">\n <span *ngIf=\"duration !== 0.01\">\n {{currentTime | secondsToMinutes}}\n </span>\n </div>\n <mat-slider [disabled]=\"disablePositionSlider\" (change)=\"currTimePosChanged($event)\" [min]=\"startOffset\"\n class=\"ngx-d-none ngx-d-sm-block ngx-flex-fill ngx-p-1\" max=\"{{duration-endOffset}}\" style=\"width: 100%\"\n value=\"{{currentTime}}\"></mat-slider>\n\n <div class=\"ngx-py-3 ngx-px-1\" style=\"font-size: 12px; text-align: right\">\n <span *ngIf=\"duration !== 0.01\">\n -{{duration-currentTime | secondsToMinutes }}\n </span>\n </div>\n </div>\n </div>\n <button (click)='toggleRepeat();' *ngIf=\"displayRepeatControls\" class=\"ngx-p-1 volume justify-content-center\"\n mat-button>\n <mat-icon *ngIf=\"repeat === 'none'\" aria-hidden=\"true\" class=\"volume-mute justify-content-center\">\n <!-- Repeat None -->\n <svg height=\"24\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 22 22\">\n <g>\n <g>\n <path d=\"m0,0l24,0l0,24l-24,0l0,-24z\" fill=\"none\" />\n <path\n d=\"m8,20l0,1.932a0.5,0.5 0 0 1 -0.82,0.385l-4.12,-3.433a0.5,0.5 0 0 1 0.322,-0.884l14.618,0a2,2 0 0 0 2,-2l0,-8l2,0l0,8a4,4 0 0 1 -4,4l-10,0zm8,-16l0,-1.932a0.5,0.5 0 0 1 0.82,-0.385l4.12,3.433a0.5,0.5 0 0 1 -0.321,0.884l-14.619,0a2,2 0 0 0 -2,2l0,8l-2,0l0,-8a4,4 0 0 1 4,-4l10,0z\" />\n <path d=\"M 3 0 L 22.4164 22.2706 L 21 24 L 1.5836 1.8128 L 3 0\"></path>\n </g>\n <!-- <line xmlns=\"http://www.w3.org/2000/svg\" id=\"svg_4\" y2=\"22.27056\" x2=\"22.41638\" y1=\"1.81276\" x1=\"1.58362\" stroke-width=\"2\" fill=\"none\"/> -->\n </g>\n </svg>\n </mat-icon>\n <mat-icon *ngIf=\"repeat === 'all'\" aria-hidden=\"true\" class=\"volume-mute\">\n <!-- Repeat All -->\n <svg height=\"24\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 22 22\">\n <g>\n <path fill=\"none\" d=\"M0 0h24v24H0z\" />\n <path\n d=\"M8 20v1.932a.5.5 0 0 1-.82.385l-4.12-3.433A.5.5 0 0 1 3.382 18H18a2 2 0 0 0 2-2V8h2v8a4 4 0 0 1-4 4H8zm8-16V2.068a.5.5 0 0 1 .82-.385l4.12 3.433a.5.5 0 0 1-.321.884H6a2 2 0 0 0-2 2v8H2V8a4 4 0 0 1 4-4h10z\" />\n </g>\n </svg>\n </mat-icon>\n <mat-icon *ngIf=\"repeat === 'one'\" aria-hidden=\"true\" class=\"volume-up\">\n <!-- Repeat ONE -->\n <svg height=\"24\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 22 22\">\n <g>\n <path fill=\"none\" d=\"M0 0h24v24H0z\" />\n <path\n d=\"M8 20v1.932a.5.5 0 0 1-.82.385l-4.12-3.433A.5.5 0 0 1 3.382 18H18a2 2 0 0 0 2-2V8h2v8a4 4 0 0 1-4 4H8zm8-16V2.068a.5.5 0 0 1 .82-.385l4.12 3.433a.5.5 0 0 1-.321.884H6a2 2 0 0 0-2 2v8H2V8a4 4 0 0 1 4-4h10zm-5 4h2v8h-2v-6H9V9l2-1z\" />\n </g>\n </svg>\n </mat-icon>\n </button>\n <button (click)='toggleVolume();' *ngIf=\"displayVolumeControls\" class=\"ngx-p-1 volume\" mat-button>\n <mat-icon *ngIf=\"volume === 0\" aria-hidden=\"true\" class=\"volume-mute\">\n <!-- Volume mute icon (volume_off) -->\n <svg height=\"28\" viewBox=\"0 0 24 24\" width=\"28\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M16.5 12c0-1.77-1.02-3.29-2.5-4.03v2.21l2.45 2.45c.03-.2.05-.41.05-.63zm2.5 0c0 .94-.2 1.82-.54 2.64l1.51 1.51C20.63 14.91 21 13.5 21 12c0-4.28-2.99-7.86-7-8.77v2.06c2.89.86 5 3.54 5 6.71zM4.27 3L3 4.27 7.73 9H3v6h4l5 5v-6.73l4.25 4.25c-.67.52-1.42.93-2.25 1.18v2.06c1.38-.31 2.63-.95 3.69-1.81L19.73 21 21 19.73l-9-9L4.27 3zM12 4L9.91 6.09 12 8.18V4z\" />\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n </svg>\n </mat-icon>\n <mat-icon *ngIf=\"volume > 0\" aria-hidden=\"true\" class=\"volume-up\">\n <!-- Volume up icon (volume_up) -->\n <svg height=\"28\" viewBox=\"0 0 24 24\" width=\"28\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M3 9v6h4l5 5V4L7 9H3zm13.5 3c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02zM14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77s-2.99-7.86-7-8.77z\" />\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n </svg>\n </mat-icon>\n </button>\n</mat-card>\n\n<mat-card *ngIf=\"displayTitle\" class=\"mat-elevation-z1 ngx-audio-player\">\n <div style=\"text-align: center;\">\n <div style=\"margin: 1px 2px; padding: 1em\">\n <span *ngIf=\"!isPlaying\">{{ tracks[currentIndex]?.title }}{{ displayArtist && tracks[currentIndex]?.artist ?\n ' | ' + tracks[currentIndex]?.artist : ''}}</span>\n <marquee *ngIf=\"isPlaying\" behavior=\"scroll\" direction=\"left\">{{ tracks[currentIndex]?.title\n }}{{ displayArtist && tracks[currentIndex]?.artist ? ' | ' + tracks[currentIndex]?.artist : ''}}\n </marquee>\n </div>\n <div class=\"clear\"></div>\n </div>\n</mat-card>\n\n<mat-accordion class=\"ngx-audio-player\" *ngIf=\"displayPlaylist && tracks.length > 1\">\n <mat-expansion-panel [expanded]=\"expanded\">\n <mat-expansion-panel-header>\n {{tableHeader}}\n </mat-expansion-panel-header>\n <table [dataSource]=\"dataSource\" class=\"mat-elevation-z6\" mat-table>\n <ng-container matColumnDef=\"title\">\n <th *matHeaderCellDef mat-header-cell>{{titleHeader}}</th>\n <td (click)=\"selectTrack(element.index)\" *matCellDef=\"let element\" mat-cell>\n {{element.title}}\n </td>\n </ng-container>\n <ng-container matColumnDef=\"artist\">\n <th *matHeaderCellDef mat-header-cell>{{artistHeader}}</th>\n <td (click)=\"selectTrack(element.index)\" *matCellDef=\"let element\" mat-cell>\n {{element?.artist ? element?.artist : ''}}\n </td>\n </ng-container>\n <ng-container matColumnDef=\"duration\">\n <th *matHeaderCellDef mat-header-cell>{{durationHeader}}</th>\n <td (click)=\"selectTrack(element.index)\" *matCellDef=\"let element\" mat-cell>\n {{element?.duration ? (element?.duration | secondsToMinutes) : ''}}\n </td>\n </ng-container>\n <ng-container matColumnDef=\"status\">\n <th *matHeaderCellDef mat-header-cell></th>\n <td *matCellDef=\"let element\" mat-cell>\n <div *ngIf=\"tracks[currentIndex]?.title === element.title\">\n <!-- <mat-icon *ngIf=\"isPlaying\" aria-hidden=\"true\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M6 19h4V5H6v14zm8-14v14h4V5h-4z\"/><path d=\"M0 0h24v24H0z\" fill=\"none\"/></svg>\n </mat-icon> -->\n <mat-icon *ngIf=\"isPlaying\" aria-hidden=\"true\" class=\"currently-playing\">\n <!-- Play icon (play_arrow) -->\n <svg height=\"24\" viewBox=\"0 0 24 24\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n <path\n d=\"M12 3v9.28c-.47-.17-.97-.28-1.5-.28C8.01 12 6 14.01 6 16.5S8.01 21 10.5 21c2.31 0 4.2-1.75 4.45-4H15V6h4V3h-7z\" />\n </svg>\n </mat-icon>\n </div>\n </td>\n </ng-container>\n <tr *matHeaderRowDef=\"displayedColumns\" mat-header-row></tr>\n <tr *matRowDef=\"let row; columns: displayedColumns;\" class=\"mat-select-content\" mat-row></tr>\n </table>\n <mat-paginator [pageSizeOptions]=\"pageSizeOptions\" showFirstLastButtons></mat-paginator>\n </mat-expansion-panel>\n</mat-accordion>","styles":["mat-card,mat-slider{padding:0!important}button:focus,button:hover{outline:0!important}svg{vertical-align:top}.mat-icon{height:32px!important;width:32px!important}mat-icon>.currently-playing{height:16px!important;width:16px!important}table{width:100%}.mat-expansion-panel,::ng-deep .ngx-audio-player{min-width:375px}::ng-deep .mat-paginator-container{justify-content:space-between!important}.material-icons{font-size:16px!important}.play-pause{border-right:1px solid rgba(0,0,0,.1)}.play-pause,.volume{border-left:1px solid rgba(0,0,0,.1)}.skip-next{border-right:1px solid rgba(0,0,0,.1)}*,:after,:before{box-sizing:inherit}.ngx-p-1{padding:.25rem!important}.ngx-col,.ngx-col-1,.ngx-col-2,.ngx-col-3,.ngx-col-4,.ngx-col-5,.ngx-col-6,.ngx-col-7,.ngx-col-8,.ngx-col-9,.ngx-col-10,.ngx-col-11,.ngx-col-12,.ngx-col-auto,.ngx-col-lg,.ngx-col-lg-1,.ngx-col-lg-2,.ngx-col-lg-3,.ngx-col-lg-4,.ngx-col-lg-5,.ngx-col-lg-6,.ngx-col-lg-7,.ngx-col-lg-8,.ngx-col-lg-9,.ngx-col-lg-10,.ngx-col-lg-11,.ngx-col-lg-12,.ngx-col-lg-auto,.ngx-col-md,.ngx-col-md-1,.ngx-col-md-2,.ngx-col-md-3,.ngx-col-md-4,.ngx-col-md-5,.ngx-col-md-6,.ngx-col-md-7,.ngx-col-md-8,.ngx-col-md-9,.ngx-col-md-10,.ngx-col-md-11,.ngx-col-md-12,.ngx-col-md-auto,.ngx-col-sm,.ngx-col-sm-1,.ngx-col-sm-2,.ngx-col-sm-3,.ngx-col-sm-4,.ngx-col-sm-5,.ngx-col-sm-6,.ngx-col-sm-7,.ngx-col-sm-8,.ngx-col-sm-9,.ngx-col-sm-10,.ngx-col-sm-11,.ngx-col-sm-12,.ngx-col-sm-auto,.ngx-col-xl,.ngx-col-xl-1,.ngx-col-xl-2,.ngx-col-xl-3,.ngx-col-xl-4,.ngx-col-xl-5,.ngx-col-xl-6,.ngx-col-xl-7,.ngx-col-xl-8,.ngx-col-xl-9,.ngx-col-xl-10,.ngx-col-xl-11,.ngx-col-xl-12,.ngx-col-xl-auto{padding-left:15px;padding-right:15px;position:relative;width:100%}.ngx-col{flex-basis:0;flex-grow:1;max-width:100%}.ngx-justify-content-center{justify-content:center!important}.ngx-flex-fill{flex:1 1 auto!important}.ngx-d-flex{display:flex!important}.ngx-pb-3,.ngx-py-3{padding-bottom:1rem!important}.ngx-pt-3,.ngx-py-3{padding-top:1rem!important}.ngx-pl-1,.ngx-px-1{padding-left:.25rem!important}.ngx-pr-1,.ngx-px-1{padding-right:.25rem!important}@media (max-width:768px){.ngx-sm-block{display:block!important}.ngx-d-none{display:none!important}}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":18,"character":22}]}],"playlist":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":25,"character":5}}]}],"matPaginator":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":30,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/material/paginator","name":"MatPaginator","line":30,"character":15},{"static":false}]}]}],"displayTitle":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":44,"character":5}}]}],"displayPlaylist":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":45,"character":5}}]}],"displayVolumeControls":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":46,"character":5}}]}],"displayRepeatControls":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":47,"character":5}}]}],"pageSizeOptions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":48,"character":5}}]}],"expanded":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":49,"character":5}}]}],"autoPlay":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":50,"character":5}}]}],"disablePositionSlider":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":51,"character":5}}]}],"displayArtist":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":52,"character":5}}]}],"displayDuration":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":53,"character":5}}]}],"tableHeader":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":56,"character":5}}]}],"titleHeader":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":57,"character":5}}]}],"artistHeader":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":58,"character":5}}]}],"durationHeader":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":59,"character":5}}]}],"trackEnded":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":64,"character":5}}]}],"player":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":67,"character":5},"arguments":["audioPlayer",{"static":true}]}]}],"startOffset":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":79,"character":5}}]}],"endOffset":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":88,"character":5}}]}],"currTimePosChanged":[{"__symbolic":"method"}],"bindPlayerEvent":[{"__symbolic":"method"}],"playBtnHandler":[{"__symbolic":"method"}],"play":[{"__symbolic":"method"}],"toggleVolume":[{"__symbolic":"method"}],"toggleRepeat":[{"__symbolic":"method"}],"setVolume":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"buildDisplayedColumns":[{"__symbolic":"method"}],"initialize":[{"__symbolic":"method"}],"setDataSourceAttributes":[{"__symbolic":"method"}],"nextSong":[{"__symbolic":"method"}],"previousSong":[{"__symbolic":"method"}],"resetSong":[{"__symbolic":"method"}],"selectTrack":[{"__symbolic":"method"}],"checkIfSongHasStartedSinceAtleastTwoSeconds":[{"__symbolic":"method"}],"updateCurrentTrack":[{"__symbolic":"method"}]}},"NgxAudioPlayerModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":17,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"AudioPlayerComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":19,"character":12},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":19,"character":26},{"__symbolic":"reference","module":"@angular/material/button","name":"MatButtonModule","line":19,"character":39},{"__symbolic":"reference","module":"@angular/material/card","name":"MatCardModule","line":19,"character":56},{"__symbolic":"reference","module":"@angular/material/table","name":"MatTableModule","line":19,"character":71},{"__symbolic":"reference","module":"@angular/material/form-field","name":"MatFormFieldModule","line":19,"character":87},{"__symbolic":"reference","module":"@angular/material/slider","name":"MatSliderModule","line":20,"character":4},{"__symbolic":"reference","module":"@angular/material/expansion","name":"MatExpansionModule","line":20,"character":21},{"__symbolic":"reference","module":"@angular/material/paginator","name":"MatPaginatorModule","line":20,"character":41},{"__symbolic":"reference","module":"@angular/material/icon","name":"MatIconModule","line":20,"character":61}],"exports":[{"__symbolic":"reference","name":"AudioPlayerComponent"}]}]}],"members":{}},"Track":{"__symbolic":"class","members":{}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":5,"character":1},"arguments":[{"name":"secondsToMinutes"}]}],"members":{"transform":[{"__symbolic":"method"}]}}},"origins":{"AudioPlayerComponent":"./lib/component/ngx-audio-player/ngx-audio-player.component","NgxAudioPlayerModule":"./lib/ngx-audio-player.module","Track":"./lib/model/track.model","ɵa":"./lib/pipe/seconds-to-minutes"},"importAs":"ngx-audio-player"}
{
"name": "ngx-audio-player",
"version": "11.0.3",
"version": "11.0.4",
"repository": {

@@ -57,2 +57,2 @@ "type": "git",

"sideEffects": false
}
}

@@ -6,3 +6,3 @@

[![Travis-CI](https://travis-ci.com/vmudigal/ngx-audio-player.svg?branch=master)](https://travis-ci.com/vmudigal/ngx-audio-player.svg?branch=master) [![npm](https://img.shields.io/badge/demo-online-ed1c46.svg?colorB=orange)](https://vmudigal.github.io/ngx-audio-player/) [![npm version](https://img.shields.io/npm/v/ngx-audio-player.svg?colorB=red)](https://www.npmjs.com/package/ngx-audio-player) [![Downloads](https://img.shields.io/npm/dm/ngx-audio-player.svg?colorB=48C9B0)](https://www.npmjs.com/package/ngx-audio-player) [![licence](https://img.shields.io/npm/l/ngx-audio-player.svg?colorB=yellow)](https://www.npmjs.com/package/ngx-audio-player) [![Support](https://img.shields.io/badge/support-Angular%207%2B-blue.svg)](https://www.npmjs.com/package/ngx-audio-player/v/7.2.0) [![Support](https://img.shields.io/badge/support-Angular%208+-brown.svg)](https://www.npmjs.com/package/ngx-audio-player/v/8.1.3) [![Support](https://img.shields.io/badge/support-Angular%209+-black.svg)](https://www.npmjs.com/package/ngx-audio-player/v/9.2.2) [![Support](https://img.shields.io/badge/support-Angular%2010+-teal.svg)](https://www.npmjs.com/package/ngx-audio-player/v/10.1.3) [![Support](https://img.shields.io/badge/support-Angular%2011+-grey.svg)](https://www.npmjs.com/package/ngx-audio-player/v/11.0.3)
[![Travis-CI](https://travis-ci.com/vmudigal/ngx-audio-player.svg?branch=master)](https://travis-ci.com/vmudigal/ngx-audio-player.svg?branch=master) [![npm](https://img.shields.io/badge/demo-online-ed1c46.svg?colorB=orange)](https://vmudigal.github.io/ngx-audio-player/) [![npm version](https://img.shields.io/npm/v/ngx-audio-player.svg?colorB=red)](https://www.npmjs.com/package/ngx-audio-player) [![Downloads](https://img.shields.io/npm/dm/ngx-audio-player.svg?colorB=48C9B0)](https://www.npmjs.com/package/ngx-audio-player) [![licence](https://img.shields.io/npm/l/ngx-audio-player.svg?colorB=yellow)](https://www.npmjs.com/package/ngx-audio-player) [![Support](https://img.shields.io/badge/support-Angular%207%2B-blue.svg)](https://www.npmjs.com/package/ngx-audio-player/v/7.2.0) [![Support](https://img.shields.io/badge/support-Angular%208+-brown.svg)](https://www.npmjs.com/package/ngx-audio-player/v/8.1.4) [![Support](https://img.shields.io/badge/support-Angular%209+-black.svg)](https://www.npmjs.com/package/ngx-audio-player/v/9.2.3) [![Support](https://img.shields.io/badge/support-Angular%2010+-teal.svg)](https://www.npmjs.com/package/ngx-audio-player/v/10.1.4) [![Support](https://img.shields.io/badge/support-Angular%2011+-grey.svg)](https://www.npmjs.com/package/ngx-audio-player/v/11.0.4)

@@ -9,0 +9,0 @@ ## Table of contents

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc